diff --git a/README.md b/README.md
index ea6dc02..9c73ed8 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@
-> **开发状态:** 项目积极开发中,部分功能尚未完善(如评论换行显示、React 前台置顶等)。
+> **开发状态:** 项目积极开发中。管理后台已统一为 React SPA(`/admin`),欢迎参与共建。
> 查看 [路线图 ROADMAP.md](ROADMAP.md) · [Issues 反馈](https://git.iioio.com/freefire/jiang13-forum/issues)
@@ -235,9 +235,9 @@ data/
| 类型 | 示例 |
|------|------|
-| 🐛 已知缺陷 | 评论回复换行不显示 |
-| 📋 计划中 | React 前台帖子置顶(API 已有,缺 UI) |
| ✅ 已可用 | 三栏布局、暗色主题、虚拟滚动、楼层评论 |
+| ✅ 管理后台 | React SPA:`/admin/dashboard` 仪表盘、帖子置顶、用户禁言等 |
+| 📋 计划中 | 通知已读优化、邮件提醒 |
完整列表见 **[路线图 ROADMAP.md](ROADMAP.md)**。发现问题请提交 [Issues](https://git.iioio.com/freefire/jiang13-forum/issues),认领任务请参考 [CONTRIBUTING.md](CONTRIBUTING.md)。
diff --git a/ROADMAP.md b/ROADMAP.md
index 374511b..7098d9b 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -11,58 +11,39 @@
| 模块 | 状态 | 说明 |
|------|------|------|
-| 前台 SPA(React) | 🚧 | 核心浏览/发帖/回复可用,部分管理能力仍依赖旧版后台 |
-| 管理后台 | 🚧 | 旧版 HTML 后台功能较全;React 侧尚未统一 |
-| 评论系统 | 🐛 | 换行显示等问题待修复 |
-| 帖子管理 | 🐛 | 置顶 API 已有,React 前台缺操作入口 |
+| 前台 SPA(React) | ✅ | 浏览、发帖、回复、管理操作已统一在 SPA 内 |
+| 管理后台 | ✅ | React 后台 `/admin/*`,与前台风格一致 |
+| 评论系统 | ✅ | 换行显示已修复 |
---
## 🐛 已知缺陷(Bug)
-| 优先级 | 问题 | 说明 | Issue |
-|--------|------|------|-------|
-| 高 | 评论回复换行不显示 | 输入多行回复后,展示时合并为一行 | [创建 Issue](https://git.iioio.com/freefire/jiang13-forum/issues/new/choose) |
-| 中 | — | (欢迎补充) | — |
-
-### 评论换行不显示 · 详情
-
-- **现象**:在评论框输入带换行的内容,提交后页面上不保留换行
-- **相关代码**:`frontend/src/components/CommentContent.tsx`、`frontend/src/utils/content.ts`
-- **可能原因**:`\r\n` 未处理、`innerHTML` 与 `white-space: pre-wrap` 叠加异常
+_当前无已记录缺陷。发现新问题请提交 [Issue](https://git.iioio.com/freefire/jiang13-forum/issues/new/choose)。_
---
## 📋 计划中(Planned)
-| 优先级 | 功能 | 说明 | Issue |
-|--------|------|------|-------|
-| 高 | React 前台支持帖子置顶 | 后端 `pinned` 字段与 API 已存在,需在 SPA 管理入口暴露操作 | [创建 Issue](https://git.iioio.com/freefire/jiang13-forum/issues/new/choose) |
-| 中 | 管理后台 React 化 | 统一旧版 `/admin/*` 与新版 SPA 体验 | — |
-| 中 | 通知已读状态优化 | 右栏通知点击后的已读同步 | — |
-| 低 | 帖子搜索增强 | 标题/正文/作者组合筛选 | — |
-| 低 | 邮件通知 | 回复提醒(需 SMTP 配置) | — |
-
-### 帖子置顶 · 详情
-
-- **现状**:
- - ✅ 数据模型有 `pinned` 字段
- - ✅ 列表按 `pinned desc` 排序
- - ✅ 旧版管理后台 `/admin/posts` 可置顶
- - ✅ React 列表/详情可显示「置顶」徽章
- - ❌ React SPA 中管理员无法一键置顶/取消
-- **相关代码**:`service/post.go`、`handler/admin.go`、`frontend/src/pages/PostDetailPage.tsx`
+| 优先级 | 功能 | 说明 |
+|--------|------|------|
+| 中 | 通知已读状态优化 | 右栏通知点击后的已读同步 |
+| 低 | 帖子搜索增强 | 标题/正文/作者组合筛选 |
+| 低 | 邮件通知 | 回复提醒(需 SMTP 配置) |
---
## 🚧 进行中(In Progress)
-_当前无公开认领任务。若你正在开发某项,请在对应 Issue 留言认领。_
+_当前无公开认领任务。_
---
## ✅ 已完成(Done)
+- [x] React 管理后台(仪表盘、板块、帖子、评论、用户、设置)
+- [x] 帖子置顶(帖子详情 + 管理后台)
+- [x] 评论回复换行正确显示
- [x] 三栏布局 + 虚拟滚动帖列表
- [x] 浅色 / 暗色主题切换
- [x] 移动端响应式适配
diff --git a/embed_static/static/spa/assets/AdminCommentsPage-XNfj0Ldl.js b/embed_static/static/spa/assets/AdminCommentsPage-XNfj0Ldl.js
new file mode 100644
index 0000000..0cfc1bc
--- /dev/null
+++ b/embed_static/static/spa/assets/AdminCommentsPage-XNfj0Ldl.js
@@ -0,0 +1 @@
+import{e as A,r as i,j as e}from"./react-vendor-CFzzFOsg.js";import{b as D,S as C,B as d,a as m,n as c}from"./index-DurEdRMk.js";import{B as N}from"./badge-E7fnzaIj.js";import{A as y,a as b,b as k,c as S,d as _,e as z,f as B,g as E,h as P}from"./alert-dialog-CQ3zNojX.js";import"./ui-vendor-BLDO93FK.js";function G(){const j=A(),{ready:r}=D(),[o,g]=i.useState([]),[p,h]=i.useState(!0),[a,u]=i.useState(1),[l,f]=i.useState(1),n=(s=a)=>{h(!0),m.adminComments(s).then(t=>{g(t.comments??[]),u(t.page),f(t.total_pages)}).catch(t=>c.error(t.message)).finally(()=>h(!1))};i.useEffect(()=>{r&&n(1)},[r]);const v=async s=>{try{await m.adminDeleteComment(s),c.success("评论已删除"),n()}catch(t){c.error(t instanceof Error?t.message:"删除失败")}};return r?e.jsxs("div",{className:"admin-page",children:[e.jsxs("div",{className:"admin-page-head",children:[e.jsx("h1",{children:"评论管理"}),e.jsx("p",{children:"查看与删除楼层评论"})]}),e.jsx("div",{className:"admin-card",children:p?e.jsx("div",{className:"flex justify-center py-12",children:e.jsx(C,{size:"lg"})}):e.jsxs(e.Fragment,{children:[e.jsxs("table",{className:"admin-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"ID"}),e.jsx("th",{children:"楼层"}),e.jsx("th",{children:"帖子"}),e.jsx("th",{children:"作者"}),e.jsx("th",{children:"内容"}),e.jsx("th",{children:"私密"}),e.jsx("th",{children:"时间"}),e.jsx("th",{children:"操作"})]})}),e.jsx("tbody",{children:o.map(s=>{var t,x;return e.jsxs("tr",{children:[e.jsx("td",{children:s.id}),e.jsxs("td",{children:["#",s.floor]}),e.jsx("td",{children:e.jsx("button",{type:"button",className:"admin-text-link",onClick:()=>j(`/post/${s.post_id}`),children:((t=s.post)==null?void 0:t.title)??`#${s.post_id}`})}),e.jsx("td",{children:((x=s.user)==null?void 0:x.nickname)||s.guest_nick||"游客"}),e.jsx("td",{className:"max-w-[200px] truncate",children:s.content}),e.jsx("td",{children:s.is_private?e.jsx(N,{variant:"secondary",children:"是"}):"—"}),e.jsx("td",{children:new Date(s.created_at).toLocaleString("zh-CN")}),e.jsx("td",{children:e.jsxs(y,{children:[e.jsx(b,{asChild:!0,children:e.jsx(d,{size:"sm",variant:"ghost",className:"text-destructive",children:"删除"})}),e.jsxs(k,{children:[e.jsxs(S,{children:[e.jsx(_,{children:"确定删除该评论?"}),e.jsx(z,{children:"此操作不可恢复。"})]}),e.jsxs(B,{children:[e.jsx(E,{children:"取消"}),e.jsx(P,{onClick:()=>v(s.id),children:"删除"})]})]})]})})]},s.id)})})]}),o.length===0&&e.jsx("div",{className:"admin-empty",children:"暂无评论"}),l>1&&e.jsxs("div",{className:"admin-pagination",children:[e.jsx(d,{size:"sm",variant:"outline",disabled:a<=1,onClick:()=>n(a-1),children:"上一页"}),e.jsxs("span",{children:["第 ",a," / ",l," 页"]}),e.jsx(d,{size:"sm",variant:"outline",disabled:a>=l,onClick:()=>n(a+1),children:"下一页"})]})]})})]}):null}export{G as default};
diff --git a/embed_static/static/spa/assets/AdminDashboardPage-DPFKUnit.js b/embed_static/static/spa/assets/AdminDashboardPage-DPFKUnit.js
new file mode 100644
index 0000000..34b911b
--- /dev/null
+++ b/embed_static/static/spa/assets/AdminDashboardPage-DPFKUnit.js
@@ -0,0 +1 @@
+import{e as h,r as n,j as s}from"./react-vendor-CFzzFOsg.js";import{b as o,a as x,S as j}from"./index-DurEdRMk.js";import{B as u}from"./badge-E7fnzaIj.js";import"./ui-vendor-BLDO93FK.js";function f(){const l=h(),{ready:t}=o(),[e,d]=n.useState(null),[r,c]=n.useState(!0);if(n.useEffect(()=>{t&&x.adminDashboard().then(d).finally(()=>c(!1))},[t]),!t||r)return s.jsx("div",{className:"flex justify-center py-16",children:s.jsx(j,{size:"lg"})});if(!e)return null;const m=[{label:"注册用户",value:e.users,cls:"admin-stat-users"},{label:"帖子总数",value:e.posts,cls:"admin-stat-posts"},{label:"板块数量",value:e.boards,cls:"admin-stat-boards"},{label:"评论总数",value:e.comments,cls:"admin-stat-comments"},{label:"当前在线",value:e.online,cls:"admin-stat-online"}];return s.jsxs("div",{className:"admin-page",children:[s.jsxs("div",{className:"admin-page-head",children:[s.jsx("h1",{children:"仪表盘"}),s.jsx("p",{children:"论坛运行概览与最新帖子"})]}),s.jsx("div",{className:"admin-stat-grid",children:m.map(a=>s.jsxs("div",{className:`admin-stat-card ${a.cls}`,children:[s.jsx("div",{className:"admin-stat-value",children:a.value}),s.jsx("div",{className:"admin-stat-label",children:a.label})]},a.label))}),s.jsxs("div",{className:"admin-card",children:[s.jsxs("div",{className:"admin-card-head",children:[s.jsx("span",{children:"最新帖子"}),s.jsx("button",{type:"button",className:"admin-text-link",onClick:()=>l("/admin/posts"),children:"查看全部 →"})]}),s.jsxs("table",{className:"admin-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"ID"}),s.jsx("th",{children:"标题"}),s.jsx("th",{children:"作者"}),s.jsx("th",{children:"置顶"}),s.jsx("th",{children:"时间"})]})}),s.jsx("tbody",{children:e.recent_posts.map(a=>{var i;return s.jsxs("tr",{children:[s.jsx("td",{children:a.id}),s.jsx("td",{children:s.jsx("button",{type:"button",className:"admin-text-link",onClick:()=>l(`/post/${a.id}`),children:a.title})}),s.jsx("td",{children:((i=a.user)==null?void 0:i.nickname)??"—"}),s.jsx("td",{children:a.pinned?s.jsx(u,{variant:"orange",children:"是"}):"—"}),s.jsx("td",{children:new Date(a.created_at).toLocaleString("zh-CN")})]},a.id)})})]}),e.recent_posts.length===0&&s.jsx("div",{className:"admin-empty",children:"暂无帖子"})]})]})}export{f as default};
diff --git a/embed_static/static/spa/assets/AdminPostsPage-B9vFs1FY.js b/embed_static/static/spa/assets/AdminPostsPage-B9vFs1FY.js
new file mode 100644
index 0000000..85d1601
--- /dev/null
+++ b/embed_static/static/spa/assets/AdminPostsPage-B9vFs1FY.js
@@ -0,0 +1 @@
+import{e as k,r as i,j as e}from"./react-vendor-CFzzFOsg.js";import{b as S,B as r,S as C,a as x,n as c}from"./index-DurEdRMk.js";import{I as P}from"./input-BN5iO3BQ.js";import{B as w}from"./badge-E7fnzaIj.js";import{A as z,a as E,b as B,c as _,d as I,e as T,f as F,g as L,h as G}from"./alert-dialog-CQ3zNojX.js";import{k as H}from"./ui-vendor-BLDO93FK.js";function O(){const f=k(),{ready:o}=S(),[j,v]=i.useState([]),[y,m]=i.useState(!0),[n,b]=i.useState(1),[h,D]=i.useState(1),[g,u]=i.useState(""),[d,p]=i.useState(""),l=(s=n,t=d)=>{m(!0),x.adminPosts({page:s,keyword:t}).then(a=>{v(a.posts??[]),b(a.page),D(a.total_pages)}).catch(a=>c.error(a.message)).finally(()=>m(!1))};i.useEffect(()=>{o&&l(1,d)},[o,d]);const N=async s=>{try{const t=await x.adminPinPost(s.id,!s.pinned);c.success(t.message),l()}catch(t){c.error(t instanceof Error?t.message:"操作失败")}},A=async s=>{try{await x.adminDeletePost(s),c.success("帖子已删除"),l()}catch(t){c.error(t instanceof Error?t.message:"删除失败")}};return o?e.jsxs("div",{className:"admin-page",children:[e.jsxs("div",{className:"admin-page-head",children:[e.jsx("h1",{children:"帖子管理"}),e.jsx("p",{children:"置顶、删除帖子,搜索标题关键词"})]}),e.jsxs("form",{className:"admin-search-bar",onSubmit:s=>{s.preventDefault(),p(g.trim())},children:[e.jsx(P,{value:g,onChange:s=>u(s.target.value),placeholder:"搜索帖子标题…"}),e.jsxs(r,{type:"submit",children:[e.jsx(H,{size:16}),"搜索"]}),d&&e.jsx(r,{type:"button",variant:"outline",onClick:()=>{u(""),p("")},children:"清除"})]}),e.jsx("div",{className:"admin-card",children:y?e.jsx("div",{className:"flex justify-center py-12",children:e.jsx(C,{size:"lg"})}):e.jsxs(e.Fragment,{children:[e.jsxs("table",{className:"admin-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"ID"}),e.jsx("th",{children:"标题"}),e.jsx("th",{children:"板块"}),e.jsx("th",{children:"作者"}),e.jsx("th",{children:"置顶"}),e.jsx("th",{children:"点赞"}),e.jsx("th",{children:"浏览"}),e.jsx("th",{children:"时间"}),e.jsx("th",{children:"操作"})]})}),e.jsx("tbody",{children:j.map(s=>{var t,a;return e.jsxs("tr",{children:[e.jsx("td",{children:s.id}),e.jsx("td",{className:"max-w-[220px] truncate",children:e.jsx("button",{type:"button",className:"admin-text-link",onClick:()=>f(`/post/${s.id}`),children:s.title})}),e.jsx("td",{children:((t=s.board)==null?void 0:t.name)??"—"}),e.jsx("td",{children:((a=s.user)==null?void 0:a.nickname)??"—"}),e.jsx("td",{children:s.pinned?e.jsx(w,{variant:"orange",children:"是"}):"—"}),e.jsx("td",{children:s.like_count}),e.jsx("td",{children:s.view_count}),e.jsx("td",{children:new Date(s.created_at).toLocaleString("zh-CN")}),e.jsx("td",{children:e.jsxs("div",{className:"flex gap-1",children:[e.jsx(r,{size:"sm",variant:"outline",onClick:()=>N(s),children:s.pinned?"取消置顶":"置顶"}),e.jsxs(z,{children:[e.jsx(E,{asChild:!0,children:e.jsx(r,{size:"sm",variant:"ghost",className:"text-destructive",children:"删除"})}),e.jsxs(B,{children:[e.jsxs(_,{children:[e.jsx(I,{children:"确定删除该帖子?"}),e.jsx(T,{children:"相关评论也将一并删除,不可恢复。"})]}),e.jsxs(F,{children:[e.jsx(L,{children:"取消"}),e.jsx(G,{onClick:()=>A(s.id),children:"删除"})]})]})]})]})})]},s.id)})})]}),j.length===0&&e.jsx("div",{className:"admin-empty",children:"没有找到帖子"}),h>1&&e.jsxs("div",{className:"admin-pagination",children:[e.jsx(r,{size:"sm",variant:"outline",disabled:n<=1,onClick:()=>l(n-1),children:"上一页"}),e.jsxs("span",{children:["第 ",n," / ",h," 页"]}),e.jsx(r,{size:"sm",variant:"outline",disabled:n>=h,onClick:()=>l(n+1),children:"下一页"})]})]})})]}):null}export{O as default};
diff --git a/embed_static/static/spa/assets/AdminSettingsPage-Cm_HgtOQ.js b/embed_static/static/spa/assets/AdminSettingsPage-Cm_HgtOQ.js
new file mode 100644
index 0000000..639e138
--- /dev/null
+++ b/embed_static/static/spa/assets/AdminSettingsPage-Cm_HgtOQ.js
@@ -0,0 +1 @@
+import{r as d,j as s}from"./react-vendor-CFzzFOsg.js";import{b as j,a as c,S as m,B as u,n as r}from"./index-DurEdRMk.js";import{ag as f}from"./ui-vendor-BLDO93FK.js";function N(){const{ready:n}=j(),[e,t]=d.useState(null),[l,o]=d.useState(!0),[h,i]=d.useState(!1);d.useEffect(()=>{n&&c.adminSettings().then(t).finally(()=>o(!1))},[n]);const x=async()=>{i(!0);try{const a=await c.adminBackup();r.success(a.message),window.location.href=a.download}catch(a){r.error(a instanceof Error?a.message:"备份失败")}finally{i(!1)}};return!n||l?s.jsx("div",{className:"flex justify-center py-16",children:s.jsx(m,{size:"lg"})}):e?s.jsxs("div",{className:"admin-page",children:[s.jsxs("div",{className:"admin-page-head",children:[s.jsx("h1",{children:"系统设置"}),s.jsx("p",{children:"数据目录、敏感词配置与数据库备份"})]}),s.jsxs("div",{className:"admin-card",children:[s.jsx("div",{className:"admin-card-head",children:"运行信息"}),s.jsxs("dl",{className:"admin-dl",children:[s.jsx("dt",{children:"数据目录"}),s.jsx("dd",{children:s.jsx("code",{children:e.data_dir})}),s.jsx("dt",{children:"数据库路径"}),s.jsx("dd",{children:s.jsx("code",{children:e.db_path})}),s.jsx("dt",{children:"敏感词配置"}),s.jsx("dd",{children:s.jsx("code",{children:e.filter_path})}),s.jsx("dt",{children:"监听端口"}),s.jsx("dd",{children:e.port})]})]}),s.jsxs("div",{className:"admin-card",children:[s.jsx("div",{className:"admin-card-head",children:"数据备份"}),s.jsxs("p",{className:"admin-card-desc",children:["导出当前 SQLite 数据库副本,文件名格式为 ",s.jsx("code",{children:"jiang13_backup_YYYYMMDD_HHMMSS.db"})]}),s.jsxs(u,{onClick:x,loading:h,children:[s.jsx(f,{size:16}),"立即备份并下载"]})]})]}):null}export{N as default};
diff --git a/embed_static/static/spa/assets/AdminUsersPage-CCGcKbV7.js b/embed_static/static/spa/assets/AdminUsersPage-CCGcKbV7.js
new file mode 100644
index 0000000..178ed66
--- /dev/null
+++ b/embed_static/static/spa/assets/AdminUsersPage-CCGcKbV7.js
@@ -0,0 +1 @@
+import{r as i,j as e}from"./react-vendor-CFzzFOsg.js";import{b as v,S as y,B as l,a as j,n as r}from"./index-DurEdRMk.js";import{B as h}from"./badge-E7fnzaIj.js";import"./ui-vendor-BLDO93FK.js";function z(){const{ready:d}=v(),[o,m]=i.useState([]),[g,x]=i.useState(!0),[n,p]=i.useState(1),[c,f]=i.useState(1),t=(s=n)=>{x(!0),j.adminUsers(s).then(a=>{m(a.users??[]),p(a.page),f(a.total_pages)}).catch(a=>r.error(a.message)).finally(()=>x(!1))};i.useEffect(()=>{d&&t(1)},[d]);const u=async s=>{if(s.role==="admin"){r.warning("不能禁言管理员");return}try{const a=await j.adminBanUser(s.id,!s.banned);r.success(a.message),t()}catch(a){r.error(a instanceof Error?a.message:"操作失败")}};return d?e.jsxs("div",{className:"admin-page",children:[e.jsxs("div",{className:"admin-page-head",children:[e.jsx("h1",{children:"用户管理"}),e.jsx("p",{children:"查看注册用户,禁言或解除禁言"})]}),e.jsx("div",{className:"admin-card",children:g?e.jsx("div",{className:"flex justify-center py-12",children:e.jsx(y,{size:"lg"})}):e.jsxs(e.Fragment,{children:[e.jsxs("table",{className:"admin-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"ID"}),e.jsx("th",{children:"用户名"}),e.jsx("th",{children:"昵称"}),e.jsx("th",{children:"角色"}),e.jsx("th",{children:"状态"}),e.jsx("th",{children:"注册时间"}),e.jsx("th",{children:"操作"})]})}),e.jsx("tbody",{children:o.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:s.id}),e.jsx("td",{children:s.username}),e.jsx("td",{children:s.nickname}),e.jsx("td",{children:s.role==="admin"?e.jsx(h,{variant:"orange",children:"管理员"}):e.jsx(h,{variant:"secondary",children:"用户"})}),e.jsx("td",{children:s.banned?e.jsx(h,{variant:"destructive",children:"已禁言"}):"正常"}),e.jsx("td",{children:s.created_at?new Date(s.created_at).toLocaleString("zh-CN"):"—"}),e.jsx("td",{children:s.role!=="admin"&&e.jsx(l,{size:"sm",variant:"outline",onClick:()=>u(s),children:s.banned?"解除禁言":"禁言"})})]},s.id))})]}),o.length===0&&e.jsx("div",{className:"admin-empty",children:"暂无用户"}),c>1&&e.jsxs("div",{className:"admin-pagination",children:[e.jsx(l,{size:"sm",variant:"outline",disabled:n<=1,onClick:()=>t(n-1),children:"上一页"}),e.jsxs("span",{children:["第 ",n," / ",c," 页"]}),e.jsx(l,{size:"sm",variant:"outline",disabled:n>=c,onClick:()=>t(n+1),children:"下一页"})]})]})})]}):null}export{z as default};
diff --git a/embed_static/static/spa/assets/BoardsManagePage-BKaQrjKx.js b/embed_static/static/spa/assets/BoardsManagePage-BKaQrjKx.js
new file mode 100644
index 0000000..edf756a
--- /dev/null
+++ b/embed_static/static/spa/assets/BoardsManagePage-BKaQrjKx.js
@@ -0,0 +1 @@
+import{r as l,j as e,e as K}from"./react-vendor-CFzzFOsg.js";import{_ as Q,Z as U,u as W,a as Y,F as ee,b as g,c as b,d as y,e as N,f as w,o as se,s as R}from"./form-ScadC3tp.js";import{c as n,b as ae,S as F,B as h,a as f,n as c}from"./index-DurEdRMk.js";import{I as A}from"./input-BN5iO3BQ.js";import{B as te}from"./badge-E7fnzaIj.js";import{$ as re,a0 as le,a1 as S,a2 as ne,X as oe,a3 as _,a4 as k,a5 as B,l as ie}from"./ui-vendor-BLDO93FK.js";import{A as de,a as ce,b as me,c as xe,d as he,e as pe,f as fe,g as je,h as ue}from"./alert-dialog-CQ3zNojX.js";function ge(s){return Q(U,s)}const E=l.forwardRef(({className:s,...a},r)=>e.jsx("textarea",{className:n("flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:r,...a}));E.displayName="Textarea";const z=l.forwardRef(({className:s,...a},r)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:r,className:n("w-full caption-bottom text-sm",s),...a})}));z.displayName="Table";const H=l.forwardRef(({className:s,...a},r)=>e.jsx("thead",{ref:r,className:n("[&_tr]:border-b",s),...a}));H.displayName="TableHeader";const I=l.forwardRef(({className:s,...a},r)=>e.jsx("tbody",{ref:r,className:n("[&_tr:last-child]:border-0",s),...a}));I.displayName="TableBody";const v=l.forwardRef(({className:s,...a},r)=>e.jsx("tr",{ref:r,className:n("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",s),...a}));v.displayName="TableRow";const i=l.forwardRef(({className:s,...a},r)=>e.jsx("th",{ref:r,className:n("h-10 px-3 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",s),...a}));i.displayName="TableHead";const d=l.forwardRef(({className:s,...a},r)=>e.jsx("td",{ref:r,className:n("p-3 align-middle [&:has([role=checkbox])]:pr-0",s),...a}));d.displayName="TableCell";const be=re,ye=le,O=l.forwardRef(({className:s,...a},r)=>e.jsx(k,{ref:r,className:n("fixed inset-0 z-[110] bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a}));O.displayName=k.displayName;const L=l.forwardRef(({className:s,children:a,...r},j)=>e.jsxs(ye,{children:[e.jsx(O,{}),e.jsxs(S,{ref:j,className:n("fixed left-[50%] top-[50%] z-[110] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...r,children:[a,e.jsxs(ne,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(oe,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"关闭"})]})]})]}));L.displayName=S.displayName;const P=({className:s,...a})=>e.jsx("div",{className:n("flex flex-col space-y-1.5 text-center sm:text-left",s),...a});P.displayName="DialogHeader";const M=({className:s,...a})=>e.jsx("div",{className:n("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...a});M.displayName="DialogFooter";const Z=l.forwardRef(({className:s,...a},r)=>e.jsx(_,{ref:r,className:n("text-lg font-semibold leading-none tracking-tight",s),...a}));Z.displayName=_.displayName;const Ne=l.forwardRef(({className:s,...a},r)=>e.jsx(B,{ref:r,className:n("text-sm text-muted-foreground",s),...a}));Ne.displayName=B.displayName;const we=se({name:R().min(1,"请输入名称").max(64),description:R().max(500).optional(),sort_order:ge().min(0)});function Se(){K();const{ready:s}=ae(),[a,r]=l.useState([]),[j,D]=l.useState(!0),[G,m]=l.useState(!1),[p,T]=l.useState(null),[V,C]=l.useState(!1),o=W({resolver:Y(we),defaultValues:{name:"",description:"",sort_order:1}}),u=()=>{D(!0),f.boards().then(t=>r(t.boards??[])).catch(t=>c.error(t.message)).finally(()=>D(!1))};l.useEffect(()=>{s&&u()},[s]);const X=()=>{T(null),o.reset({name:"",description:"",sort_order:a.length+1}),m(!0)},$=t=>{T(t),o.reset({name:t.name,description:t.description??"",sort_order:t.sort_order}),m(!0)},q=async t=>{C(!0);try{p?(await f.updateBoard(p.id,t),c.success("板块已更新")):(await f.createBoard(t),c.success("板块已创建")),m(!1),u(),window.dispatchEvent(new Event("boards-refresh"))}catch(x){c.error(x instanceof Error?x.message:"操作失败")}finally{C(!1)}},J=async t=>{try{await f.deleteBoard(t),c.success("板块已删除"),u(),window.dispatchEvent(new Event("boards-refresh"))}catch(x){c.error(x instanceof Error?x.message:"删除失败")}};return s?e.jsxs("div",{className:"admin-page",children:[e.jsx("div",{className:"admin-page-head",children:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"},children:[e.jsxs("div",{children:[e.jsx("h1",{children:"板块管理"}),e.jsx("p",{children:"创建、编辑或删除论坛板块,用户发帖前需先有板块"})]}),e.jsxs(h,{onClick:X,children:[e.jsx(ie,{}),"新建板块"]})]})}),e.jsx("div",{className:"admin-card",children:j?e.jsx("div",{className:"flex justify-center py-12",children:e.jsx(F,{size:"lg"})}):e.jsxs(e.Fragment,{children:[e.jsxs(z,{children:[e.jsx(H,{children:e.jsxs(v,{children:[e.jsx(i,{className:"w-[60px]",children:"ID"}),e.jsx(i,{children:"名称"}),e.jsx(i,{children:"简介"}),e.jsx(i,{className:"w-[70px]",children:"排序"}),e.jsx(i,{className:"w-[80px]",children:"帖子数"}),e.jsx(i,{className:"w-[160px]",children:"操作"})]})}),e.jsx(I,{children:a.map(t=>e.jsxs(v,{children:[e.jsx(d,{children:t.id}),e.jsx(d,{children:e.jsx("strong",{children:t.name})}),e.jsx(d,{className:"max-w-[200px] truncate",children:t.description}),e.jsx(d,{children:t.sort_order}),e.jsx(d,{children:e.jsx(te,{variant:"secondary",children:t.post_count??0})}),e.jsx(d,{children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(h,{variant:"ghost",size:"sm",onClick:()=>$(t),children:"编辑"}),e.jsxs(de,{children:[e.jsx(ce,{asChild:!0,children:e.jsx(h,{variant:"ghost",size:"sm",className:"text-destructive hover:text-destructive",children:"删除"})}),e.jsxs(me,{children:[e.jsxs(xe,{children:[e.jsx(he,{children:"确定删除该板块?"}),e.jsx(pe,{children:"删除后该板块下的帖子将无法通过板块筛选,此操作不可撤销。"})]}),e.jsxs(fe,{children:[e.jsx(je,{children:"取消"}),e.jsx(ue,{onClick:()=>J(t.id),children:"删除"})]})]})]})]})})]},t.id))})]}),a.length===0&&e.jsx("div",{className:"empty-state",children:e.jsx("p",{children:"还没有板块,点击右上角创建第一个"})})]})}),e.jsx(be,{open:G,onOpenChange:m,children:e.jsxs(L,{children:[e.jsx(P,{children:e.jsx(Z,{children:p?"编辑板块":"新建板块"})}),e.jsx(ee,{...o,children:e.jsxs("form",{onSubmit:o.handleSubmit(q),className:"space-y-4",children:[e.jsx(g,{control:o.control,name:"name",render:({field:t})=>e.jsxs(b,{children:[e.jsx(y,{children:"板块名称"}),e.jsx(N,{children:e.jsx(A,{maxLength:64,placeholder:"如:技术交流",...t})}),e.jsx(w,{})]})}),e.jsx(g,{control:o.control,name:"description",render:({field:t})=>e.jsxs(b,{children:[e.jsx(y,{children:"简介"}),e.jsx(N,{children:e.jsx(E,{rows:3,maxLength:500,placeholder:"板块说明(可选)",...t})}),e.jsx(w,{})]})}),e.jsx(g,{control:o.control,name:"sort_order",render:({field:t})=>e.jsxs(b,{children:[e.jsx(y,{children:"排序"}),e.jsx(N,{children:e.jsx(A,{type:"number",min:0,...t})}),e.jsx(w,{})]})}),e.jsxs(M,{children:[e.jsx(h,{type:"button",variant:"outline",onClick:()=>m(!1),children:"取消"}),e.jsx(h,{type:"submit",loading:V,children:p?"保存":"创建"})]})]})})]})})]}):e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(F,{size:"lg"})})}export{Se as default};
diff --git a/embed_static/static/spa/assets/BoardsManagePage-DC-_uHJb.js b/embed_static/static/spa/assets/BoardsManagePage-DC-_uHJb.js
deleted file mode 100644
index 277529d..0000000
--- a/embed_static/static/spa/assets/BoardsManagePage-DC-_uHJb.js
+++ /dev/null
@@ -1 +0,0 @@
-import{r,j as e,e as xe}from"./react-vendor-CgzNJrV9.js";import{_ as fe,Z as pe,u as ue,a as he,F as je,b as g,c as N,d as y,e as b,I as C,f as w,o as ge,s as A}from"./form-BzHbu9bJ.js";import{c as l,b as F,u as Ne,B as m,a as h}from"./index-474mTIgd.js";import{B as ye}from"./badge-CsEfIQQ2.js";import{S as k}from"./spinner-DH1syOsQ.js";import{W as be,Y as we,Z as _,_ as ve,X as De,$ as z,a0 as B,a1 as S,a2 as Re,a3 as Te,a4 as Ce,a5 as E,a6 as H,a7 as O,a8 as L,a9 as P,aa as I,A as Ae,m as ke}from"./ui-vendor-CdH1UOKW.js";import{n as i}from"./notify-Zesh5czd.js";function Fe(a){return fe(pe,a)}const M=r.forwardRef(({className:a,...s},t)=>e.jsx("textarea",{className:l("flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),ref:t,...s}));M.displayName="Textarea";const Z=r.forwardRef(({className:a,...s},t)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:t,className:l("w-full caption-bottom text-sm",a),...s})}));Z.displayName="Table";const V=r.forwardRef(({className:a,...s},t)=>e.jsx("thead",{ref:t,className:l("[&_tr]:border-b",a),...s}));V.displayName="TableHeader";const W=r.forwardRef(({className:a,...s},t)=>e.jsx("tbody",{ref:t,className:l("[&_tr:last-child]:border-0",a),...s}));W.displayName="TableBody";const v=r.forwardRef(({className:a,...s},t)=>e.jsx("tr",{ref:t,className:l("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...s}));v.displayName="TableRow";const d=r.forwardRef(({className:a,...s},t)=>e.jsx("th",{ref:t,className:l("h-10 px-3 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",a),...s}));d.displayName="TableHead";const c=r.forwardRef(({className:a,...s},t)=>e.jsx("td",{ref:t,className:l("p-3 align-middle [&:has([role=checkbox])]:pr-0",a),...s}));c.displayName="TableCell";const _e=be,ze=we,X=r.forwardRef(({className:a,...s},t)=>e.jsx(B,{ref:t,className:l("fixed inset-0 z-[110] bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...s}));X.displayName=B.displayName;const Y=r.forwardRef(({className:a,children:s,...t},x)=>e.jsxs(ze,{children:[e.jsx(X,{}),e.jsxs(_,{ref:x,className:l("fixed left-[50%] top-[50%] z-[110] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...t,children:[s,e.jsxs(ve,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(De,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"关闭"})]})]})]}));Y.displayName=_.displayName;const $=({className:a,...s})=>e.jsx("div",{className:l("flex flex-col space-y-1.5 text-center sm:text-left",a),...s});$.displayName="DialogHeader";const q=({className:a,...s})=>e.jsx("div",{className:l("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...s});q.displayName="DialogFooter";const G=r.forwardRef(({className:a,...s},t)=>e.jsx(z,{ref:t,className:l("text-lg font-semibold leading-none tracking-tight",a),...s}));G.displayName=z.displayName;const Be=r.forwardRef(({className:a,...s},t)=>e.jsx(S,{ref:t,className:l("text-sm text-muted-foreground",a),...s}));Be.displayName=S.displayName;const Se=Re,Ee=Te,He=Ce,J=r.forwardRef(({className:a,...s},t)=>e.jsx(I,{className:l("fixed inset-0 z-[110] bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...s,ref:t}));J.displayName=I.displayName;const K=r.forwardRef(({className:a,...s},t)=>e.jsxs(He,{children:[e.jsx(J,{}),e.jsx(E,{ref:t,className:l("fixed left-[50%] top-[50%] z-[110] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...s})]}));K.displayName=E.displayName;const Q=({className:a,...s})=>e.jsx("div",{className:l("flex flex-col space-y-2 text-center sm:text-left",a),...s});Q.displayName="AlertDialogHeader";const U=({className:a,...s})=>e.jsx("div",{className:l("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...s});U.displayName="AlertDialogFooter";const ee=r.forwardRef(({className:a,...s},t)=>e.jsx(H,{ref:t,className:l("text-lg font-semibold",a),...s}));ee.displayName=H.displayName;const ae=r.forwardRef(({className:a,...s},t)=>e.jsx(O,{ref:t,className:l("text-sm text-muted-foreground",a),...s}));ae.displayName=O.displayName;const se=r.forwardRef(({className:a,...s},t)=>e.jsx(P,{ref:t,className:l(F(),a),...s}));se.displayName=P.displayName;const te=r.forwardRef(({className:a,...s},t)=>e.jsx(L,{ref:t,className:l(F({variant:"outline"}),"mt-2 sm:mt-0",a),...s}));te.displayName=L.displayName;const Oe=ge({name:A().min(1,"请输入名称").max(64),description:A().max(500).optional(),sort_order:Fe().min(0)});function Xe(){const a=xe(),{user:s,loading:t}=Ne(),[x,oe]=r.useState([]),[re,D]=r.useState(!0),[le,f]=r.useState(!1),[u,R]=r.useState(null),[ne,T]=r.useState(!1),n=ue({resolver:he(Oe),defaultValues:{name:"",description:"",sort_order:1}}),j=()=>{D(!0),h.boards().then(o=>oe(o.boards??[])).catch(o=>i.error(o.message)).finally(()=>D(!1))};r.useEffect(()=>{if(!t){if(!s){a("/login");return}if(s.role!=="admin"){a("/"),i.warning("需要管理员权限");return}j()}},[s,t,a]);const ie=()=>{R(null),n.reset({name:"",description:"",sort_order:x.length+1}),f(!0)},de=o=>{R(o),n.reset({name:o.name,description:o.description??"",sort_order:o.sort_order}),f(!0)},ce=async o=>{T(!0);try{u?(await h.updateBoard(u.id,o),i.success("板块已更新")):(await h.createBoard(o),i.success("板块已创建")),f(!1),j(),window.dispatchEvent(new Event("boards-refresh"))}catch(p){i.error(p instanceof Error?p.message:"操作失败")}finally{T(!1)}},me=async o=>{try{await h.deleteBoard(o),i.success("板块已删除"),j(),window.dispatchEvent(new Event("boards-refresh"))}catch(p){i.error(p instanceof Error?p.message:"删除失败")}};return t?e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(k,{size:"lg"})}):!s||s.role!=="admin"?null:e.jsxs("div",{className:"page-wrap",children:[e.jsxs("div",{className:"page-inner-wide",children:[e.jsxs(m,{variant:"ghost",className:"mb-3",onClick:()=>a("/"),children:[e.jsx(Ae,{}),"返回"]}),e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:20},children:[e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:"板块管理"}),e.jsx("p",{className:"page-desc",children:"创建、编辑或删除论坛板块,用户发帖前需先有板块"})]}),e.jsxs(m,{onClick:ie,children:[e.jsx(ke,{}),"新建板块"]})]}),e.jsx("div",{className:"section-card",style:{padding:0,overflow:"hidden"},children:re?e.jsx("div",{className:"flex justify-center py-12",children:e.jsx(k,{size:"lg"})}):e.jsxs(e.Fragment,{children:[e.jsxs(Z,{children:[e.jsx(V,{children:e.jsxs(v,{children:[e.jsx(d,{className:"w-[60px]",children:"ID"}),e.jsx(d,{children:"名称"}),e.jsx(d,{children:"简介"}),e.jsx(d,{className:"w-[70px]",children:"排序"}),e.jsx(d,{className:"w-[80px]",children:"帖子数"}),e.jsx(d,{className:"w-[160px]",children:"操作"})]})}),e.jsx(W,{children:x.map(o=>e.jsxs(v,{children:[e.jsx(c,{children:o.id}),e.jsx(c,{children:e.jsx("strong",{children:o.name})}),e.jsx(c,{className:"max-w-[200px] truncate",children:o.description}),e.jsx(c,{children:o.sort_order}),e.jsx(c,{children:e.jsx(ye,{variant:"secondary",children:o.post_count??0})}),e.jsx(c,{children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(m,{variant:"ghost",size:"sm",onClick:()=>de(o),children:"编辑"}),e.jsxs(Se,{children:[e.jsx(Ee,{asChild:!0,children:e.jsx(m,{variant:"ghost",size:"sm",className:"text-destructive hover:text-destructive",children:"删除"})}),e.jsxs(K,{children:[e.jsxs(Q,{children:[e.jsx(ee,{children:"确定删除该板块?"}),e.jsx(ae,{children:"删除后该板块下的帖子将无法通过板块筛选,此操作不可撤销。"})]}),e.jsxs(U,{children:[e.jsx(te,{children:"取消"}),e.jsx(se,{onClick:()=>me(o.id),children:"删除"})]})]})]})]})})]},o.id))})]}),x.length===0&&e.jsx("div",{className:"empty-state",children:e.jsx("p",{children:"还没有板块,点击右上角创建第一个"})})]})})]}),e.jsx(_e,{open:le,onOpenChange:f,children:e.jsxs(Y,{children:[e.jsx($,{children:e.jsx(G,{children:u?"编辑板块":"新建板块"})}),e.jsx(je,{...n,children:e.jsxs("form",{onSubmit:n.handleSubmit(ce),className:"space-y-4",children:[e.jsx(g,{control:n.control,name:"name",render:({field:o})=>e.jsxs(N,{children:[e.jsx(y,{children:"板块名称"}),e.jsx(b,{children:e.jsx(C,{maxLength:64,placeholder:"如:技术交流",...o})}),e.jsx(w,{})]})}),e.jsx(g,{control:n.control,name:"description",render:({field:o})=>e.jsxs(N,{children:[e.jsx(y,{children:"简介"}),e.jsx(b,{children:e.jsx(M,{rows:3,maxLength:500,placeholder:"板块说明(可选)",...o})}),e.jsx(w,{})]})}),e.jsx(g,{control:n.control,name:"sort_order",render:({field:o})=>e.jsxs(N,{children:[e.jsx(y,{children:"排序"}),e.jsx(b,{children:e.jsx(C,{type:"number",min:0,...o})}),e.jsx(w,{})]})}),e.jsxs(q,{children:[e.jsx(m,{type:"button",variant:"outline",onClick:()=>f(!1),children:"取消"}),e.jsx(m,{type:"submit",loading:ne,children:u?"保存":"创建"})]})]})})]})})]})}export{Xe as default};
diff --git a/embed_static/static/spa/assets/ComposePage-BzWi56ib.js b/embed_static/static/spa/assets/ComposePage-BzWi56ib.js
new file mode 100644
index 0000000..41e85d0
--- /dev/null
+++ b/embed_static/static/spa/assets/ComposePage-BzWi56ib.js
@@ -0,0 +1,53 @@
+import{r as a,j as t,e as U,w as V,i as W}from"./react-vendor-CFzzFOsg.js";import{u as Y,a as L,n as N,S as D}from"./index-DurEdRMk.js";import{p as K,g as O}from"./markdown-vendor-DxR1h-Bq.js";import{P as q,r as Z}from"./postContent-CNPsgNvN.js";import{z as J,E as X,D as ee,G as te,J as se,K as ne,Q as re,N as ie,O as ce,V as oe,W as ae,Y as le,Z as de,A as me,x as ue,_ as pe}from"./ui-vendor-BLDO93FK.js";O.setOptions({breaks:!0,gfm:!0});const he=/:::members[ \t]*\r?\n([\s\S]*?)\r?\n[ \t]*:::/g;function xe(l){const s=[];let n=0;const r=new RegExp(he.source,"g");let o;for(;(o=r.exec(l))!==null;)o.index>n&&s.push({type:"text",content:l.slice(n,o.index)}),s.push({type:"members",content:o[1]}),n=r.lastIndex;return nr.type==="members"?`${O.parse(r.content.trim())}`:O.parse(r.content)).join("");return K.sanitize(n,q)}function ge(l){if(!l.trim())return"";const s=new DOMParser().parseFromString(K.sanitize(l,q),"text/html"),n=r=>{if(r.nodeType===Node.TEXT_NODE)return r.textContent??"";if(r.nodeType!==Node.ELEMENT_NODE)return"";const o=r,u=o.tagName.toLowerCase(),c=()=>Array.from(o.childNodes).map(n).join("");switch(u){case"members-only":{if(o.getAttribute("data-locked")==="true")return"";const d=o.querySelector(".post-members-only__body");return`:::members
+${(d?Array.from(d.childNodes).map(n).join(""):c()).trim()}
+:::
+
+`}case"br":return`
+`;case"p":return c().trimEnd()+`
+
+`;case"h1":return`# ${c().trim()}
+
+`;case"h2":return`## ${c().trim()}
+
+`;case"h3":return`### ${c().trim()}
+
+`;case"h4":return`#### ${c().trim()}
+
+`;case"h5":return`##### ${c().trim()}
+
+`;case"h6":return`###### ${c().trim()}
+
+`;case"strong":case"b":return`**${c()}**`;case"em":case"i":return`*${c()}*`;case"code":return`\`${c()}\``;case"pre":return`\`\`\`
+${o.textContent??""}
+\`\`\`
+
+`;case"a":return`[${c()}](${o.getAttribute("href")??""})`;case"img":return`??""})`;case"ul":return Array.from(o.children).map(d=>`- ${n(d).trim()}`).join(`
+`)+`
+
+`;case"ol":return Array.from(o.children).map((d,b)=>`${b+1}. ${n(d).trim()}`).join(`
+`)+`
+
+`;case"li":return c();case"blockquote":return`> ${c().trim().replace(/\n/g,`
+> `)}
+
+`;case"hr":return`---
+
+`;case"div":return o.classList.contains("post-members-only__badge")||o.classList.contains("post-members-only__gate")||o.classList.contains("post-members-only__gate-icon")?"":(o.classList.contains("post-members-only__body"),c());default:return c()}};return n(s.body).replace(/\n{3,}/g,`
+
+`).trim()}function fe(l){var o,u;const s=l.trim();if(!s)return 0;const n=((o=s.match(/[\u4e00-\u9fff]/g))==null?void 0:o.length)??0,r=((u=s.match(/[a-zA-Z0-9]+/g))==null?void 0:u.length)??0;return n+r}function F(l){return l.replace(/^\r/,"").replace(/^#{1,6}\s*/,"").replace(/^>\s*/,"").replace(/^[-*+]\s*/,"").replace(/^\d+\.\s*/,"")}const be=a.forwardRef(function({value:s,onChange:n,placeholder:r="在此撰写正文…"},o){const u=a.useRef(null),c=a.useRef({start:0,end:0}),[d,b]=a.useState("split"),[z,k]=a.useState("");a.useImperativeHandle(o,()=>({getHTML:()=>I(s),getMarkdown:()=>s,isEmpty:()=>s.trim().length===0,focus:()=>{var e;return(e=u.current)==null?void 0:e.focus()}}));const j=a.useCallback(()=>{const e=u.current;e&&(c.current={start:e.selectionStart,end:e.selectionEnd})},[]),g=a.useCallback(()=>{const e=u.current;return e&&document.activeElement===e?{start:e.selectionStart,end:e.selectionEnd}:c.current},[]),f=a.useCallback((e,i=e)=>{requestAnimationFrame(()=>{const m=u.current;m&&(m.focus(),m.setSelectionRange(e,i),c.current={start:e,end:i})})},[]);a.useEffect(()=>{const e=setTimeout(()=>k(I(s)),60);return()=>clearTimeout(e)},[s]);const w=a.useCallback(()=>{const e=u.current;if(!e||d==="preview")return;e.style.height="0px";const i=e.scrollHeight,m=e.getBoundingClientRect().top,p=Math.max(280,window.innerHeight-m-56);e.style.height=`${Math.max(p,i)}px`},[d]);a.useEffect(()=>{w()},[s,d,w]),a.useEffect(()=>{const e=()=>w();return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[w]);const h=a.useCallback((e,i="",m="")=>{if(!u.current)return;const{start:x,end:v}=g(),E=s.slice(x,v)||m,y=s.slice(0,x)+e+E+i+s.slice(v);n(y),f(x+e.length+E.length)},[s,n,g,f]),$=a.useCallback(e=>{if(!u.current)return;const{start:m}=g(),p=s.lastIndexOf(`
+`,m-1)+1,x=s.indexOf(`
+`,m),v=x===-1?s.length:x,E=s.slice(p,v),y=F(E),C=s.slice(0,p)+e+y+s.slice(v);n(C),f(p+e.length+y.length)},[s,n,g,f]),M=a.useCallback(()=>{if(!u.current)return;const{start:i}=g(),m=s.lastIndexOf(`
+`,i-1)+1,p=s.indexOf(`
+`,i),x=p===-1?s.length:p,E=s.slice(m,x).replace(/^\r/,""),y=E.match(/^(#{1,6})\s+(.*)$/);let C;if(y){const R=y[1].length,B=y[2];C=R>=6?B:`${"#".repeat(R+1)} ${B}`}else C=`## ${F(E)}`;const G=s.slice(0,m)+C+s.slice(x);n(G);const Q=m+C.length;f(Q)},[s,n,g,f]),T=a.useCallback(()=>{const{start:e,end:i}=g();if(e!==i){const p=`
+:::members
+${s.slice(e,i)}
+:::
+`,x=s.slice(0,e)+p+s.slice(i);n(x),f(e+11+1);return}h(`
+:::members
+`,`
+:::
+`,"在此输入仅登录用户可见的内容…")},[s,n,g,f,h]),_=[{icon:t.jsx("strong",{children:"H"}),title:"标题(H2,再次点击升级)",action:M},{icon:t.jsx(ee,{size:15}),title:"加粗",action:()=>h("**","**","加粗")},{icon:t.jsx(te,{size:15}),title:"斜体",action:()=>h("*","*","斜体")},{icon:t.jsx(se,{size:15}),title:"删除线",action:()=>h("~~","~~","删除")},{icon:t.jsx(ne,{size:15}),title:"分割线",action:()=>h(`
+
+---
+
+`)},{icon:t.jsx(re,{size:15}),title:"引用",action:()=>$("> ")},{icon:t.jsx(ie,{size:15}),title:"无序列表",action:()=>$("- ")},{icon:t.jsx(ce,{size:15}),title:"有序列表",action:()=>$("1. ")},{icon:t.jsx(oe,{size:15}),title:"代码块",action:()=>h("\n```\n","\n```\n","code")},{icon:t.jsx(ae,{size:15}),title:"链接",action:()=>h("[","](url)","链接文字")},{icon:t.jsx(le,{size:15}),title:"图片",action:()=>h("","描述")},{icon:t.jsx(de,{size:15}),title:"登录可见(选中文字后点击可包裹)",action:T}],A=a.useMemo(()=>s.trim()?Z(z,!0):`${r}
`,[s,z,r]),P=fe(s),H=d==="edit"||d==="split",S=d==="preview"||d==="split";return t.jsxs("div",{className:"article-editor",children:[t.jsxs("div",{className:"article-editor-bar",children:[t.jsx("div",{className:"article-editor-tools",children:_.map((e,i)=>t.jsx("button",{type:"button",className:`article-tool-btn${i===_.length-1?" article-tool-btn--members":""}`,title:e.title,onMouseDown:m=>m.preventDefault(),onClick:e.action,children:e.icon},i))}),t.jsxs("div",{className:"article-editor-modes",children:[t.jsxs("button",{type:"button",className:`article-mode-btn${d==="edit"?" active":""}`,onClick:()=>b("edit"),title:"仅编辑",children:[t.jsx(J,{size:14})," 编辑"]}),t.jsx("button",{type:"button",className:`article-mode-btn${d==="split"?" active":""}`,onClick:()=>b("split"),title:"分栏预览",children:"分栏"}),t.jsxs("button",{type:"button",className:`article-mode-btn${d==="preview"?" active":""}`,onClick:()=>b("preview"),title:"仅预览",children:[t.jsx(X,{size:14})," 预览"]})]})]}),t.jsxs("div",{className:`article-editor-panes article-editor-panes--${d}`,children:[H&&t.jsx("div",{className:"article-pane article-pane--edit",children:t.jsx("textarea",{ref:u,className:"article-textarea",value:s,onChange:e=>n(e.target.value),onSelect:j,onKeyUp:j,onClick:j,onFocus:j,placeholder:r,spellCheck:!1})}),S&&t.jsxs("div",{className:"article-pane article-pane--preview",children:[d==="split"&&t.jsx("div",{className:"article-pane-label",children:"实时预览"}),t.jsx("div",{className:`article-preview post-detail-content${s.trim()?"":" article-preview--empty"}`,dangerouslySetInnerHTML:{__html:A}})]})]}),t.jsxs("div",{className:"article-editor-status",children:[t.jsxs("span",{children:[P," 字"]}),t.jsx("span",{children:"Markdown"})]})]})});function Ee(){const l=U(),{id:s}=V(),n=s?Number(s):null,r=n!==null&&!Number.isNaN(n),[o]=W(),u=o.get("board")||"",{user:c,loading:d}=Y(),[b,z]=a.useState([]),[k,j]=a.useState(u),[g,f]=a.useState(""),[w,h]=a.useState(""),[$,M]=a.useState(""),[T,_]=a.useState(!1),[A,P]=a.useState(r);if(a.useEffect(()=>{if(!d){if(!c){l("/login");return}if(r){P(!0),Promise.all([L.boards(),L.post(n)]).then(([e,i])=>{const m=e.boards??[];z(m);const p=i.post;if(!(c.role==="admin"||p.user_id===c.id)){N.error("无权编辑此帖子"),l(`/post/${n}`);return}j(String(p.board_id)),f(p.title),h(p.tags??""),M(ge(p.content??""))}).catch(e=>{N.error(e instanceof Error?e.message:"加载帖子失败"),l("/")}).finally(()=>P(!1));return}L.boards().then(e=>{const i=e.boards??[];z(i),!u&&i.length>0&&j(String(i[0].id))}).catch(()=>{})}},[c,d,l,u,r,n]),d)return t.jsx("div",{className:"compose-page compose-page--empty",children:t.jsx(D,{size:"lg"})});if(!c)return null;if(A)return t.jsx("div",{className:"compose-page compose-page--empty",children:t.jsx(D,{size:"lg"})});if(!r&&b.length===0)return t.jsx("div",{className:"compose-page compose-page--empty",children:t.jsxs("div",{className:"compose-empty-card",children:[t.jsx("div",{className:"compose-empty-icon",children:"✎"}),t.jsx("h2",{children:"暂无可发帖板块"}),t.jsx("p",{children:"需要管理员先创建板块后才能发布内容"}),c.role==="admin"?t.jsx("button",{type:"button",className:"compose-primary-btn",onClick:()=>l("/admin/boards"),children:"去创建板块"}):t.jsx("button",{type:"button",className:"compose-ghost-btn",onClick:()=>l("/"),children:"返回首页"})]})});const H=async()=>{const e=g.trim();if(!r&&!k){N.warning("请选择板块");return}if(!e){N.warning("请输入标题");return}if(!$.trim()){N.warning("请输入正文内容");return}_(!0);try{const i={title:e,content:I($),tags:w.trim()};if(r)await L.updatePost(n,i),N.success("帖子已更新"),l(`/post/${n}`);else{const m=await L.createPost({board_id:k,...i});N.success("发帖成功"),l(`/post/${m.post_id}`)}}catch(i){N.error(i instanceof Error?i.message:r?"保存失败":"发帖失败")}finally{_(!1)}},S=b.find(e=>String(e.id)===k);return t.jsx("div",{className:"compose-page",children:t.jsxs("div",{className:"compose-canvas",children:[t.jsxs("header",{className:"compose-header",children:[t.jsxs("button",{type:"button",className:"compose-back",onClick:()=>l(r?`/post/${n}`:-1),children:[t.jsx(me,{size:16}),t.jsx("span",{children:"返回"})]}),t.jsx("div",{className:"compose-header-actions",children:t.jsxs("button",{type:"button",className:"compose-publish-btn",disabled:T,onClick:H,children:[t.jsx(ue,{size:16}),T?r?"保存中…":"发布中…":r?"保存修改":"发布帖子"]})})]}),t.jsxs("div",{className:"compose-meta",children:[r?S&&t.jsx("div",{className:"compose-board-pills",children:t.jsx("span",{className:"compose-board-pill active",children:S.name})}):t.jsx("div",{className:"compose-board-pills",children:b.map(e=>t.jsx("button",{type:"button",className:`compose-board-pill${String(e.id)===k?" active":""}`,onClick:()=>j(String(e.id)),children:e.name},e.id))}),t.jsxs("div",{className:"compose-tags-field",children:[t.jsx(pe,{className:"compose-tags-icon",size:16}),t.jsx("input",{type:"text",placeholder:"添加标签,逗号分隔",value:w,onChange:e=>h(e.target.value),maxLength:128})]})]}),t.jsxs("div",{className:"compose-writing",children:[t.jsx("input",{className:"compose-title",type:"text",placeholder:"输入文章标题…",value:g,onChange:e=>f(e.target.value),maxLength:256}),S&&t.jsxs("div",{className:"compose-subtitle",children:[r?"编辑于":"发布至"," ",t.jsx("strong",{children:S.name})]}),t.jsx(be,{value:$,onChange:M,placeholder:"开始写作。支持 Markdown 语法,右侧可实时预览渲染效果。"})]})]})})}export{Ee as default};
diff --git a/embed_static/static/spa/assets/ComposePage-Dv2Wt-UO.js b/embed_static/static/spa/assets/ComposePage-Dv2Wt-UO.js
deleted file mode 100644
index 9e71b0a..0000000
--- a/embed_static/static/spa/assets/ComposePage-Dv2Wt-UO.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import{r as a,j as t,e as Q,v as V,i as J}from"./react-vendor-CgzNJrV9.js";import{n as N}from"./notify-Zesh5czd.js";import{u as W,a as _}from"./index-474mTIgd.js";import{p as K,g as O}from"./markdown-vendor-DxR1h-Bq.js";import{P as q,r as X}from"./postContent-CNPsgNvN.js";import{x as Y,E as Z,B as ee,y as te,z as se,D as ne,Q as re,G as ie,J as ce,K as oe,N as ae,O as le,U as de,A as me,v as pe,V as ue}from"./ui-vendor-CdH1UOKW.js";import{S as D}from"./spinner-DH1syOsQ.js";O.setOptions({breaks:!0,gfm:!0});const he=/:::members[ \t]*\r?\n([\s\S]*?)\r?\n[ \t]*:::/g;function xe(l){const s=[];let n=0;const r=new RegExp(he.source,"g");let o;for(;(o=r.exec(l))!==null;)o.index>n&&s.push({type:"text",content:l.slice(n,o.index)}),s.push({type:"members",content:o[1]}),n=r.lastIndex;return nr.type==="members"?`${O.parse(r.content.trim())}`:O.parse(r.content)).join("");return K.sanitize(n,q)}function ge(l){if(!l.trim())return"";const s=new DOMParser().parseFromString(K.sanitize(l,q),"text/html"),n=r=>{if(r.nodeType===Node.TEXT_NODE)return r.textContent??"";if(r.nodeType!==Node.ELEMENT_NODE)return"";const o=r,p=o.tagName.toLowerCase(),c=()=>Array.from(o.childNodes).map(n).join("");switch(p){case"members-only":{if(o.getAttribute("data-locked")==="true")return"";const d=o.querySelector(".post-members-only__body");return`:::members
-${(d?Array.from(d.childNodes).map(n).join(""):c()).trim()}
-:::
-
-`}case"br":return`
-`;case"p":return c().trimEnd()+`
-
-`;case"h1":return`# ${c().trim()}
-
-`;case"h2":return`## ${c().trim()}
-
-`;case"h3":return`### ${c().trim()}
-
-`;case"h4":return`#### ${c().trim()}
-
-`;case"h5":return`##### ${c().trim()}
-
-`;case"h6":return`###### ${c().trim()}
-
-`;case"strong":case"b":return`**${c()}**`;case"em":case"i":return`*${c()}*`;case"code":return`\`${c()}\``;case"pre":return`\`\`\`
-${o.textContent??""}
-\`\`\`
-
-`;case"a":return`[${c()}](${o.getAttribute("href")??""})`;case"img":return`??""})`;case"ul":return Array.from(o.children).map(d=>`- ${n(d).trim()}`).join(`
-`)+`
-
-`;case"ol":return Array.from(o.children).map((d,b)=>`${b+1}. ${n(d).trim()}`).join(`
-`)+`
-
-`;case"li":return c();case"blockquote":return`> ${c().trim().replace(/\n/g,`
-> `)}
-
-`;case"hr":return`---
-
-`;case"div":return o.classList.contains("post-members-only__badge")||o.classList.contains("post-members-only__gate")||o.classList.contains("post-members-only__gate-icon")?"":(o.classList.contains("post-members-only__body"),c());default:return c()}};return n(s.body).replace(/\n{3,}/g,`
-
-`).trim()}function fe(l){var o,p;const s=l.trim();if(!s)return 0;const n=((o=s.match(/[\u4e00-\u9fff]/g))==null?void 0:o.length)??0,r=((p=s.match(/[a-zA-Z0-9]+/g))==null?void 0:p.length)??0;return n+r}function F(l){return l.replace(/^\r/,"").replace(/^#{1,6}\s*/,"").replace(/^>\s*/,"").replace(/^[-*+]\s*/,"").replace(/^\d+\.\s*/,"")}const be=a.forwardRef(function({value:s,onChange:n,placeholder:r="在此撰写正文…"},o){const p=a.useRef(null),c=a.useRef({start:0,end:0}),[d,b]=a.useState("split"),[z,k]=a.useState("");a.useImperativeHandle(o,()=>({getHTML:()=>I(s),getMarkdown:()=>s,isEmpty:()=>s.trim().length===0,focus:()=>{var e;return(e=p.current)==null?void 0:e.focus()}}));const j=a.useCallback(()=>{const e=p.current;e&&(c.current={start:e.selectionStart,end:e.selectionEnd})},[]),g=a.useCallback(()=>{const e=p.current;return e&&document.activeElement===e?{start:e.selectionStart,end:e.selectionEnd}:c.current},[]),f=a.useCallback((e,i=e)=>{requestAnimationFrame(()=>{const m=p.current;m&&(m.focus(),m.setSelectionRange(e,i),c.current={start:e,end:i})})},[]);a.useEffect(()=>{const e=setTimeout(()=>k(I(s)),60);return()=>clearTimeout(e)},[s]);const w=a.useCallback(()=>{const e=p.current;if(!e||d==="preview")return;e.style.height="0px";const i=e.scrollHeight,m=e.getBoundingClientRect().top,u=Math.max(280,window.innerHeight-m-56);e.style.height=`${Math.max(u,i)}px`},[d]);a.useEffect(()=>{w()},[s,d,w]),a.useEffect(()=>{const e=()=>w();return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[w]);const h=a.useCallback((e,i="",m="")=>{if(!p.current)return;const{start:x,end:v}=g(),E=s.slice(x,v)||m,y=s.slice(0,x)+e+E+i+s.slice(v);n(y),f(x+e.length+E.length)},[s,n,g,f]),$=a.useCallback(e=>{if(!p.current)return;const{start:m}=g(),u=s.lastIndexOf(`
-`,m-1)+1,x=s.indexOf(`
-`,m),v=x===-1?s.length:x,E=s.slice(u,v),y=F(E),C=s.slice(0,u)+e+y+s.slice(v);n(C),f(u+e.length+y.length)},[s,n,g,f]),M=a.useCallback(()=>{if(!p.current)return;const{start:i}=g(),m=s.lastIndexOf(`
-`,i-1)+1,u=s.indexOf(`
-`,i),x=u===-1?s.length:u,E=s.slice(m,x).replace(/^\r/,""),y=E.match(/^(#{1,6})\s+(.*)$/);let C;if(y){const R=y[1].length,B=y[2];C=R>=6?B:`${"#".repeat(R+1)} ${B}`}else C=`## ${F(E)}`;const U=s.slice(0,m)+C+s.slice(x);n(U);const G=m+C.length;f(G)},[s,n,g,f]),T=a.useCallback(()=>{const{start:e,end:i}=g();if(e!==i){const u=`
-:::members
-${s.slice(e,i)}
-:::
-`,x=s.slice(0,e)+u+s.slice(i);n(x),f(e+11+1);return}h(`
-:::members
-`,`
-:::
-`,"在此输入仅登录用户可见的内容…")},[s,n,g,f,h]),L=[{icon:t.jsx("strong",{children:"H"}),title:"标题(H2,再次点击升级)",action:M},{icon:t.jsx(ee,{size:15}),title:"加粗",action:()=>h("**","**","加粗")},{icon:t.jsx(te,{size:15}),title:"斜体",action:()=>h("*","*","斜体")},{icon:t.jsx(se,{size:15}),title:"删除线",action:()=>h("~~","~~","删除")},{icon:t.jsx(ne,{size:15}),title:"分割线",action:()=>h(`
-
----
-
-`)},{icon:t.jsx(re,{size:15}),title:"引用",action:()=>$("> ")},{icon:t.jsx(ie,{size:15}),title:"无序列表",action:()=>$("- ")},{icon:t.jsx(ce,{size:15}),title:"有序列表",action:()=>$("1. ")},{icon:t.jsx(oe,{size:15}),title:"代码块",action:()=>h("\n```\n","\n```\n","code")},{icon:t.jsx(ae,{size:15}),title:"链接",action:()=>h("[","](url)","链接文字")},{icon:t.jsx(le,{size:15}),title:"图片",action:()=>h("","描述")},{icon:t.jsx(de,{size:15}),title:"登录可见(选中文字后点击可包裹)",action:T}],A=a.useMemo(()=>s.trim()?X(z,!0):`${r}
`,[s,z,r]),P=fe(s),H=d==="edit"||d==="split",S=d==="preview"||d==="split";return t.jsxs("div",{className:"article-editor",children:[t.jsxs("div",{className:"article-editor-bar",children:[t.jsx("div",{className:"article-editor-tools",children:L.map((e,i)=>t.jsx("button",{type:"button",className:`article-tool-btn${i===L.length-1?" article-tool-btn--members":""}`,title:e.title,onMouseDown:m=>m.preventDefault(),onClick:e.action,children:e.icon},i))}),t.jsxs("div",{className:"article-editor-modes",children:[t.jsxs("button",{type:"button",className:`article-mode-btn${d==="edit"?" active":""}`,onClick:()=>b("edit"),title:"仅编辑",children:[t.jsx(Y,{size:14})," 编辑"]}),t.jsx("button",{type:"button",className:`article-mode-btn${d==="split"?" active":""}`,onClick:()=>b("split"),title:"分栏预览",children:"分栏"}),t.jsxs("button",{type:"button",className:`article-mode-btn${d==="preview"?" active":""}`,onClick:()=>b("preview"),title:"仅预览",children:[t.jsx(Z,{size:14})," 预览"]})]})]}),t.jsxs("div",{className:`article-editor-panes article-editor-panes--${d}`,children:[H&&t.jsx("div",{className:"article-pane article-pane--edit",children:t.jsx("textarea",{ref:p,className:"article-textarea",value:s,onChange:e=>n(e.target.value),onSelect:j,onKeyUp:j,onClick:j,onFocus:j,placeholder:r,spellCheck:!1})}),S&&t.jsxs("div",{className:"article-pane article-pane--preview",children:[d==="split"&&t.jsx("div",{className:"article-pane-label",children:"实时预览"}),t.jsx("div",{className:`article-preview post-detail-content${s.trim()?"":" article-preview--empty"}`,dangerouslySetInnerHTML:{__html:A}})]})]}),t.jsxs("div",{className:"article-editor-status",children:[t.jsxs("span",{children:[P," 字"]}),t.jsx("span",{children:"Markdown"})]})]})});function Se(){const l=Q(),{id:s}=V(),n=s?Number(s):null,r=n!==null&&!Number.isNaN(n),[o]=J(),p=o.get("board")||"",{user:c,loading:d}=W(),[b,z]=a.useState([]),[k,j]=a.useState(p),[g,f]=a.useState(""),[w,h]=a.useState(""),[$,M]=a.useState(""),[T,L]=a.useState(!1),[A,P]=a.useState(r);if(a.useEffect(()=>{if(!d){if(!c){l("/login");return}if(r){P(!0),Promise.all([_.boards(),_.post(n)]).then(([e,i])=>{const m=e.boards??[];z(m);const u=i.post;if(!(c.role==="admin"||u.user_id===c.id)){N.error("无权编辑此帖子"),l(`/post/${n}`);return}j(String(u.board_id)),f(u.title),h(u.tags??""),M(ge(u.content??""))}).catch(e=>{N.error(e instanceof Error?e.message:"加载帖子失败"),l("/")}).finally(()=>P(!1));return}_.boards().then(e=>{const i=e.boards??[];z(i),!p&&i.length>0&&j(String(i[0].id))}).catch(()=>{})}},[c,d,l,p,r,n]),d)return t.jsx("div",{className:"compose-page compose-page--empty",children:t.jsx(D,{size:"lg"})});if(!c)return null;if(A)return t.jsx("div",{className:"compose-page compose-page--empty",children:t.jsx(D,{size:"lg"})});if(!r&&b.length===0)return t.jsx("div",{className:"compose-page compose-page--empty",children:t.jsxs("div",{className:"compose-empty-card",children:[t.jsx("div",{className:"compose-empty-icon",children:"✎"}),t.jsx("h2",{children:"暂无可发帖板块"}),t.jsx("p",{children:"需要管理员先创建板块后才能发布内容"}),c.role==="admin"?t.jsx("button",{type:"button",className:"compose-primary-btn",onClick:()=>l("/boards"),children:"去创建板块"}):t.jsx("button",{type:"button",className:"compose-ghost-btn",onClick:()=>l("/"),children:"返回首页"})]})});const H=async()=>{const e=g.trim();if(!r&&!k){N.warning("请选择板块");return}if(!e){N.warning("请输入标题");return}if(!$.trim()){N.warning("请输入正文内容");return}L(!0);try{const i={title:e,content:I($),tags:w.trim()};if(r)await _.updatePost(n,i),N.success("帖子已更新"),l(`/post/${n}`);else{const m=await _.createPost({board_id:k,...i});N.success("发帖成功"),l(`/post/${m.post_id}`)}}catch(i){N.error(i instanceof Error?i.message:r?"保存失败":"发帖失败")}finally{L(!1)}},S=b.find(e=>String(e.id)===k);return t.jsx("div",{className:"compose-page",children:t.jsxs("div",{className:"compose-canvas",children:[t.jsxs("header",{className:"compose-header",children:[t.jsxs("button",{type:"button",className:"compose-back",onClick:()=>l(r?`/post/${n}`:-1),children:[t.jsx(me,{size:16}),t.jsx("span",{children:"返回"})]}),t.jsx("div",{className:"compose-header-actions",children:t.jsxs("button",{type:"button",className:"compose-publish-btn",disabled:T,onClick:H,children:[t.jsx(pe,{size:16}),T?r?"保存中…":"发布中…":r?"保存修改":"发布帖子"]})})]}),t.jsxs("div",{className:"compose-meta",children:[r?S&&t.jsx("div",{className:"compose-board-pills",children:t.jsx("span",{className:"compose-board-pill active",children:S.name})}):t.jsx("div",{className:"compose-board-pills",children:b.map(e=>t.jsx("button",{type:"button",className:`compose-board-pill${String(e.id)===k?" active":""}`,onClick:()=>j(String(e.id)),children:e.name},e.id))}),t.jsxs("div",{className:"compose-tags-field",children:[t.jsx(ue,{className:"compose-tags-icon",size:16}),t.jsx("input",{type:"text",placeholder:"添加标签,逗号分隔",value:w,onChange:e=>h(e.target.value),maxLength:128})]})]}),t.jsxs("div",{className:"compose-writing",children:[t.jsx("input",{className:"compose-title",type:"text",placeholder:"输入文章标题…",value:g,onChange:e=>f(e.target.value),maxLength:256}),S&&t.jsxs("div",{className:"compose-subtitle",children:[r?"编辑于":"发布至"," ",t.jsx("strong",{children:S.name})]}),t.jsx(be,{value:$,onChange:M,placeholder:"开始写作。支持 Markdown 语法,右侧可实时预览渲染效果。"})]})]})})}export{Se as default};
diff --git a/embed_static/static/spa/assets/FavoritesPage-DPpP9uxT.js b/embed_static/static/spa/assets/FavoritesPage-DPpP9uxT.js
new file mode 100644
index 0000000..e9639e4
--- /dev/null
+++ b/embed_static/static/spa/assets/FavoritesPage-DPpP9uxT.js
@@ -0,0 +1 @@
+import{e as j,r as n,j as s}from"./react-vendor-CFzzFOsg.js";import{u as f,a as g,n as N,S as v,B as m}from"./index-DurEdRMk.js";import{f as y}from"./content-BR0rw1k4.js";import{A as k}from"./ui-vendor-BLDO93FK.js";function S(){const a=j(),{user:t,loading:i}=f(),[r,h]=n.useState([]),[u,x]=n.useState(!0);return n.useEffect(()=>{if(!i){if(!t){a("/login");return}g.favorites().then(e=>h(Array.isArray(e.favorites)?e.favorites:[])).catch(e=>N.error(e.message)).finally(()=>x(!1))}},[t,i,a]),i||u?s.jsx("div",{className:"flex justify-center py-16",children:s.jsx(v,{size:"lg"})}):t?s.jsx("div",{className:"page-wrap",children:s.jsxs("div",{className:"page-inner-wide",children:[s.jsxs(m,{variant:"ghost",className:"mb-3",onClick:()=>a("/"),children:[s.jsx(k,{}),"返回"]}),s.jsx("h1",{className:"page-title",children:"我的收藏"}),s.jsxs("p",{className:"page-desc",children:["共 ",r.length," 篇收藏帖子"]}),r.length===0?s.jsxs("div",{className:"empty-state",children:[s.jsx("p",{children:"还没有收藏任何帖子"}),s.jsx(m,{onClick:()=>a("/"),children:"去逛逛"})]}):s.jsx("div",{className:"content-surface",children:r.map(e=>{var o,l,c,d,p;return s.jsx("div",{className:"post-row",onClick:()=>a(`/post/${e.post_id}`),children:s.jsxs("div",{className:"post-body",children:[s.jsx("div",{className:"post-title",children:((o=e.post)==null?void 0:o.title)||"帖子已删除"}),s.jsxs("div",{className:"post-meta",children:[((c=(l=e.post)==null?void 0:l.board)==null?void 0:c.name)&&s.jsx("span",{children:e.post.board.name}),((p=(d=e.post)==null?void 0:d.user)==null?void 0:p.nickname)&&s.jsx("span",{children:e.post.user.nickname}),s.jsxs("span",{children:["收藏于 ",y(e.created_at)]})]})]})},e.id)})})]})}):null}export{S as default};
diff --git a/embed_static/static/spa/assets/FavoritesPage-Dvc9bR9_.js b/embed_static/static/spa/assets/FavoritesPage-Dvc9bR9_.js
deleted file mode 100644
index cb3b928..0000000
--- a/embed_static/static/spa/assets/FavoritesPage-Dvc9bR9_.js
+++ /dev/null
@@ -1 +0,0 @@
-import{e as j,r as n,j as s}from"./react-vendor-CgzNJrV9.js";import{u as f,a as g,B as p}from"./index-474mTIgd.js";import{S as N}from"./spinner-DH1syOsQ.js";import{n as v}from"./notify-Zesh5czd.js";import{f as y}from"./content-CKr4Ur51.js";import{A as k}from"./ui-vendor-CdH1UOKW.js";function E(){const t=j(),{user:a,loading:r}=f(),[i,h]=n.useState([]),[u,x]=n.useState(!0);return n.useEffect(()=>{if(!r){if(!a){t("/login");return}g.favorites().then(e=>h(Array.isArray(e.favorites)?e.favorites:[])).catch(e=>v.error(e.message)).finally(()=>x(!1))}},[a,r,t]),r||u?s.jsx("div",{className:"flex justify-center py-16",children:s.jsx(N,{size:"lg"})}):a?s.jsx("div",{className:"page-wrap",children:s.jsxs("div",{className:"page-inner-wide",children:[s.jsxs(p,{variant:"ghost",className:"mb-3",onClick:()=>t("/"),children:[s.jsx(k,{}),"返回"]}),s.jsx("h1",{className:"page-title",children:"我的收藏"}),s.jsxs("p",{className:"page-desc",children:["共 ",i.length," 篇收藏帖子"]}),i.length===0?s.jsxs("div",{className:"empty-state",children:[s.jsx("p",{children:"还没有收藏任何帖子"}),s.jsx(p,{onClick:()=>t("/"),children:"去逛逛"})]}):s.jsx("div",{className:"content-surface",children:i.map(e=>{var o,l,c,d,m;return s.jsx("div",{className:"post-row",onClick:()=>t(`/post/${e.post_id}`),children:s.jsxs("div",{className:"post-body",children:[s.jsx("div",{className:"post-title",children:((o=e.post)==null?void 0:o.title)||"帖子已删除"}),s.jsxs("div",{className:"post-meta",children:[((c=(l=e.post)==null?void 0:l.board)==null?void 0:c.name)&&s.jsx("span",{children:e.post.board.name}),((m=(d=e.post)==null?void 0:d.user)==null?void 0:m.nickname)&&s.jsx("span",{children:e.post.user.nickname}),s.jsxs("span",{children:["收藏于 ",y(e.created_at)]})]})]})},e.id)})})]})}):null}export{E as default};
diff --git a/embed_static/static/spa/assets/HomePage-CrU3Xqcn.js b/embed_static/static/spa/assets/HomePage-CrU3Xqcn.js
new file mode 100644
index 0000000..df95cbe
--- /dev/null
+++ b/embed_static/static/spa/assets/HomePage-CrU3Xqcn.js
@@ -0,0 +1 @@
+import{j as e,r as m,e as v,i as C,v as L}from"./react-vendor-CFzzFOsg.js";import{S as P,u as k,B as j,a as B,n as A}from"./index-DurEdRMk.js";import{u as T}from"./virtual-vendor-DQlhmwRh.js";import{B as S}from"./badge-E7fnzaIj.js";import{f as _}from"./content-BR0rw1k4.js";import{l as z,q as H,s as R,t as G}from"./ui-vendor-BLDO93FK.js";function V({post:a,onClick:o}){var n,l,t,r;const s=((l=(n=a.user)==null?void 0:n.nickname)==null?void 0:l[0])||"?";return e.jsxs("div",{className:"post-row",onClick:o,children:[e.jsx("div",{className:"post-avatar",children:(t=a.user)!=null&&t.avatar?e.jsx("img",{src:a.user.avatar,alt:""}):s}),e.jsxs("div",{className:"post-body",children:[e.jsxs("div",{className:"post-title",children:[a.pinned&&e.jsx(S,{variant:"orange",className:"mr-1.5",children:"置顶"}),a.title]}),e.jsxs("div",{className:"post-meta",children:[a.board&&e.jsx(S,{variant:"green",children:a.board.name}),e.jsx("span",{children:((r=a.user)==null?void 0:r.nickname)||"匿名"}),e.jsx("span",{children:_(a.created_at)})]})]}),e.jsxs("div",{className:"post-stats",children:[e.jsxs("span",{children:["💬 ",a.comment_count??0]}),e.jsxs("span",{children:["👍 ",a.like_count??0]})]})]})}function F({posts:a,loading:o,hasMore:s,onLoadMore:n,onSelect:l}){const t=m.useRef(null),r=T({count:a.length,getScrollElement:()=>t.current,estimateSize:()=>72,overscan:8});return m.useEffect(()=>{const i=t.current;if(!i)return;const c=()=>{i.scrollTop+i.clientHeight>=i.scrollHeight-120&&s&&!o&&n()};return i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)},[s,o,n]),e.jsxs("div",{className:"post-list-scroll",ref:t,children:[e.jsx("div",{className:"content-surface",style:{height:r.getTotalSize(),position:"relative"},children:r.getVirtualItems().map(i=>{const c=a[i.index];return e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${i.start}px)`},children:e.jsx(V,{post:c,onClick:()=>l(c.id)})},c.id)})}),o&&e.jsx("div",{className:"flex justify-center py-4",children:e.jsx(P,{})}),!o&&!s&&a.length>0&&e.jsx("div",{style:{textAlign:"center",padding:6,fontSize:12,color:"var(--color-text-3)"},children:"— 已加载全部 —"})]})}function q({boardId:a,keyword:o,boards:s,stats:n,postTotal:l}){const t=v(),{user:r,loading:i}=k(),c=s.find(x=>x.id===a),p=o?`搜索:${o}`:a&&c?c.name:"全部帖子",f=o?`找到 ${l} 篇相关帖子`:a&&c?c.description||"欢迎在本板块交流讨论":"姜十三论坛 · 拾三一隅,自在交流";return e.jsxs("div",{className:"feed-banner",children:[e.jsxs("div",{className:"feed-banner-row",children:[e.jsxs("div",{className:"feed-banner-title",children:[e.jsx("h2",{children:p}),e.jsx("p",{children:f})]}),!o&&e.jsxs("div",{className:"feed-actions flex flex-wrap items-center gap-2",children:[i?e.jsx("span",{className:"feed-action-slot","aria-hidden":!0}):r?e.jsxs(j,{size:"sm",onClick:()=>t(a?`/compose?board=${a}`:"/compose"),children:[e.jsx(z,{}),a?"在此发帖":"发布帖子"]}):e.jsx(j,{size:"sm",onClick:()=>t("/login"),children:"登录参与"}),!i&&(r==null?void 0:r.role)==="admin"&&e.jsxs(j,{size:"sm",variant:"outline",onClick:()=>t("/admin/boards"),children:[e.jsx(H,{}),"管理板块"]})]})]}),e.jsxs("div",{className:"feed-stats",children:[e.jsxs("span",{children:["会员 ",e.jsx("strong",{children:(n==null?void 0:n.users)??"—"})]}),e.jsxs("span",{children:["帖子 ",e.jsx("strong",{children:(n==null?void 0:n.posts)??"—"})]}),e.jsxs("span",{children:["板块 ",e.jsx("strong",{children:(n==null?void 0:n.boards)??"—"})]})]})]})}function O({boards:a,loading:o=!1,selectedId:s=0,onSelect:n}){const l=v(),{user:t}=k();return o?e.jsx("div",{className:"board-grid board-grid--skeleton","aria-hidden":!0,children:Array.from({length:4},(r,i)=>e.jsx("div",{className:"board-tab board-tab--skeleton"},i))}):a.length===0?e.jsxs("div",{className:"board-grid-empty",children:[e.jsx("p",{className:"text-sm text-muted-foreground py-4 text-center",children:(t==null?void 0:t.role)==="admin"?"还没有板块,请先创建":"管理员尚未创建板块"}),(t==null?void 0:t.role)==="admin"&&e.jsx("div",{style:{textAlign:"center",marginTop:12},children:e.jsxs(j,{onClick:()=>l("/admin/boards"),children:[e.jsx(z,{}),"创建板块"]})})]}):e.jsxs("div",{className:"board-grid",children:[e.jsxs("button",{type:"button",className:`board-tab ${s===0?"active":""}`,onClick:()=>n(0),children:[e.jsx("span",{className:"board-tab-icon",children:e.jsx(R,{size:16})}),e.jsx("span",{className:"board-tab-name",children:"全部帖子"})]}),a.map(r=>e.jsxs("button",{type:"button",className:`board-tab ${s===r.id?"active":""}`,title:r.description?`${r.name} — ${r.description}`:r.name,onClick:()=>n(r.id),children:[e.jsx("span",{className:"board-tab-icon",children:e.jsx(G,{size:16})}),e.jsx("span",{className:"board-tab-name",children:r.name})]},r.id))]})}function Q(){const a=v(),[o]=C(),s=L(),n=Number(o.get("board"))||(s==null?void 0:s.boardId)||0,l=o.get("keyword")||"",[t,r]=m.useState([]),[i,c]=m.useState(0),[p,f]=m.useState(1),[x,E]=m.useState(!0),[g,b]=m.useState(!0),h=m.useCallback(async(d,N=!1)=>{b(!0);try{const u=await B.posts({page:d,size:30,board_id:n||"",keyword:l}),y=Array.isArray(u.posts)?u.posts:[];r($=>N?y:[...$,...y]),c(u.total??0),E(!!u.has_more),f(d)}catch(u){A.error(u instanceof Error?u.message:"加载失败"),N&&r([])}finally{b(!1)}},[n,l]);m.useEffect(()=>{h(1,!0)},[n,l,h]),m.useEffect(()=>{const d=()=>h(1,!0);return window.addEventListener("posts-refresh",d),()=>window.removeEventListener("posts-refresh",d)},[h]);const w=!l;return e.jsxs("div",{className:"page-wrap",children:[e.jsx(q,{boardId:n,keyword:l,boards:(s==null?void 0:s.boards)??[],stats:(s==null?void 0:s.stats)??null,postTotal:i}),w&&e.jsx(O,{boards:(s==null?void 0:s.boards)??[],loading:!(s!=null&&s.layoutReady),selectedId:n,onSelect:d=>{s==null||s.setBoardId(d),a(d?`/?board=${d}`:"/")}}),e.jsxs("div",{className:"post-list-bar",children:[e.jsx("span",{children:l?"搜索结果":"帖子列表"}),e.jsxs("span",{children:["共 ",i," 条"]})]}),e.jsx(F,{posts:t,loading:g,hasMore:x,onLoadMore:()=>!g&&x&&h(p+1),onSelect:d=>a(`/post/${d}`)})]})}export{Q as default};
diff --git a/embed_static/static/spa/assets/HomePage-D-Yzai0_.js b/embed_static/static/spa/assets/HomePage-D-Yzai0_.js
deleted file mode 100644
index a80b7ff..0000000
--- a/embed_static/static/spa/assets/HomePage-D-Yzai0_.js
+++ /dev/null
@@ -1 +0,0 @@
-import{j as e,r as m,e as v,i as C,t as L}from"./react-vendor-CgzNJrV9.js";import{n as P}from"./notify-Zesh5czd.js";import{u as k,B as j,a as B}from"./index-474mTIgd.js";import{u as A}from"./virtual-vendor-05wd80F5.js";import{S as T}from"./spinner-DH1syOsQ.js";import{B as S}from"./badge-CsEfIQQ2.js";import{f as _}from"./content-CKr4Ur51.js";import{m as z,j as H,q as R,F}from"./ui-vendor-CdH1UOKW.js";function G({post:a,onClick:o}){var n,l,t,r;const s=((l=(n=a.user)==null?void 0:n.nickname)==null?void 0:l[0])||"?";return e.jsxs("div",{className:"post-row",onClick:o,children:[e.jsx("div",{className:"post-avatar",children:(t=a.user)!=null&&t.avatar?e.jsx("img",{src:a.user.avatar,alt:""}):s}),e.jsxs("div",{className:"post-body",children:[e.jsxs("div",{className:"post-title",children:[a.pinned&&e.jsx(S,{variant:"orange",className:"mr-1.5",children:"置顶"}),a.title]}),e.jsxs("div",{className:"post-meta",children:[a.board&&e.jsx(S,{variant:"green",children:a.board.name}),e.jsx("span",{children:((r=a.user)==null?void 0:r.nickname)||"匿名"}),e.jsx("span",{children:_(a.created_at)})]})]}),e.jsxs("div",{className:"post-stats",children:[e.jsxs("span",{children:["💬 ",a.comment_count??0]}),e.jsxs("span",{children:["👍 ",a.like_count??0]})]})]})}function V({posts:a,loading:o,hasMore:s,onLoadMore:n,onSelect:l}){const t=m.useRef(null),r=A({count:a.length,getScrollElement:()=>t.current,estimateSize:()=>72,overscan:8});return m.useEffect(()=>{const i=t.current;if(!i)return;const c=()=>{i.scrollTop+i.clientHeight>=i.scrollHeight-120&&s&&!o&&n()};return i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)},[s,o,n]),e.jsxs("div",{className:"post-list-scroll",ref:t,children:[e.jsx("div",{className:"content-surface",style:{height:r.getTotalSize(),position:"relative"},children:r.getVirtualItems().map(i=>{const c=a[i.index];return e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${i.start}px)`},children:e.jsx(G,{post:c,onClick:()=>l(c.id)})},c.id)})}),o&&e.jsx("div",{className:"flex justify-center py-4",children:e.jsx(T,{})}),!o&&!s&&a.length>0&&e.jsx("div",{style:{textAlign:"center",padding:6,fontSize:12,color:"var(--color-text-3)"},children:"— 已加载全部 —"})]})}function q({boardId:a,keyword:o,boards:s,stats:n,postTotal:l}){const t=v(),{user:r,loading:i}=k(),c=s.find(x=>x.id===a),p=o?`搜索:${o}`:a&&c?c.name:"全部帖子",f=o?`找到 ${l} 篇相关帖子`:a&&c?c.description||"欢迎在本板块交流讨论":"姜十三论坛 · 拾三一隅,自在交流";return e.jsxs("div",{className:"feed-banner",children:[e.jsxs("div",{className:"feed-banner-row",children:[e.jsxs("div",{className:"feed-banner-title",children:[e.jsx("h2",{children:p}),e.jsx("p",{children:f})]}),!o&&e.jsxs("div",{className:"feed-actions flex flex-wrap items-center gap-2",children:[i?e.jsx("span",{className:"feed-action-slot","aria-hidden":!0}):r?e.jsxs(j,{size:"sm",onClick:()=>t(a?`/compose?board=${a}`:"/compose"),children:[e.jsx(z,{}),a?"在此发帖":"发布帖子"]}):e.jsx(j,{size:"sm",onClick:()=>t("/login"),children:"登录参与"}),!i&&(r==null?void 0:r.role)==="admin"&&e.jsxs(j,{size:"sm",variant:"outline",onClick:()=>t("/boards"),children:[e.jsx(H,{}),"管理板块"]})]})]}),e.jsxs("div",{className:"feed-stats",children:[e.jsxs("span",{children:["会员 ",e.jsx("strong",{children:(n==null?void 0:n.users)??"—"})]}),e.jsxs("span",{children:["帖子 ",e.jsx("strong",{children:(n==null?void 0:n.posts)??"—"})]}),e.jsxs("span",{children:["板块 ",e.jsx("strong",{children:(n==null?void 0:n.boards)??"—"})]})]})]})}function O({boards:a,loading:o=!1,selectedId:s=0,onSelect:n}){const l=v(),{user:t}=k();return o?e.jsx("div",{className:"board-grid board-grid--skeleton","aria-hidden":!0,children:Array.from({length:4},(r,i)=>e.jsx("div",{className:"board-tab board-tab--skeleton"},i))}):a.length===0?e.jsxs("div",{className:"board-grid-empty",children:[e.jsx("p",{className:"text-sm text-muted-foreground py-4 text-center",children:(t==null?void 0:t.role)==="admin"?"还没有板块,请先创建":"管理员尚未创建板块"}),(t==null?void 0:t.role)==="admin"&&e.jsx("div",{style:{textAlign:"center",marginTop:12},children:e.jsxs(j,{onClick:()=>l("/boards"),children:[e.jsx(z,{}),"创建板块"]})})]}):e.jsxs("div",{className:"board-grid",children:[e.jsxs("button",{type:"button",className:`board-tab ${s===0?"active":""}`,onClick:()=>n(0),children:[e.jsx("span",{className:"board-tab-icon",children:e.jsx(R,{size:16})}),e.jsx("span",{className:"board-tab-name",children:"全部帖子"})]}),a.map(r=>e.jsxs("button",{type:"button",className:`board-tab ${s===r.id?"active":""}`,title:r.description?`${r.name} — ${r.description}`:r.name,onClick:()=>n(r.id),children:[e.jsx("span",{className:"board-tab-icon",children:e.jsx(F,{size:16})}),e.jsx("span",{className:"board-tab-name",children:r.name})]},r.id))]})}function W(){const a=v(),[o]=C(),s=L(),n=Number(o.get("board"))||(s==null?void 0:s.boardId)||0,l=o.get("keyword")||"",[t,r]=m.useState([]),[i,c]=m.useState(0),[p,f]=m.useState(1),[x,E]=m.useState(!0),[g,b]=m.useState(!0),h=m.useCallback(async(d,N=!1)=>{b(!0);try{const u=await B.posts({page:d,size:30,board_id:n||"",keyword:l}),y=Array.isArray(u.posts)?u.posts:[];r($=>N?y:[...$,...y]),c(u.total??0),E(!!u.has_more),f(d)}catch(u){P.error(u instanceof Error?u.message:"加载失败"),N&&r([])}finally{b(!1)}},[n,l]);m.useEffect(()=>{h(1,!0)},[n,l,h]),m.useEffect(()=>{const d=()=>h(1,!0);return window.addEventListener("posts-refresh",d),()=>window.removeEventListener("posts-refresh",d)},[h]);const w=!l;return e.jsxs("div",{className:"page-wrap",children:[e.jsx(q,{boardId:n,keyword:l,boards:(s==null?void 0:s.boards)??[],stats:(s==null?void 0:s.stats)??null,postTotal:i}),w&&e.jsx(O,{boards:(s==null?void 0:s.boards)??[],loading:!(s!=null&&s.layoutReady),selectedId:n,onSelect:d=>{s==null||s.setBoardId(d),a(d?`/?board=${d}`:"/")}}),e.jsxs("div",{className:"post-list-bar",children:[e.jsx("span",{children:l?"搜索结果":"帖子列表"}),e.jsxs("span",{children:["共 ",i," 条"]})]}),e.jsx(V,{posts:t,loading:g,hasMore:x,onLoadMore:()=>!g&&x&&h(p+1),onSelect:d=>a(`/post/${d}`)})]})}export{W as default};
diff --git a/embed_static/static/spa/assets/LoginPage-DGBpvRak.js b/embed_static/static/spa/assets/LoginPage-DGBpvRak.js
new file mode 100644
index 0000000..04710d2
--- /dev/null
+++ b/embed_static/static/spa/assets/LoginPage-DGBpvRak.js
@@ -0,0 +1 @@
+import{e as f,r as g,j as s,L as b}from"./react-vendor-CFzzFOsg.js";import{u as w,a as F,F as y,b as t,c as n,d as l,e as c,f as i,o as N,s as m}from"./form-ScadC3tp.js";import{u as v,B as L,a as S,n as d}from"./index-DurEdRMk.js";import{I as u}from"./input-BN5iO3BQ.js";import"./ui-vendor-BLDO93FK.js";const C=N({username:m().min(1,"请输入用户名"),password:m().min(1,"请输入密码")});function z(){const x=f(),{refresh:p}=v(),[h,a]=g.useState(!1),r=w({resolver:F(C),defaultValues:{username:"",password:""}}),j=async e=>{a(!0);try{await S.login(e.username,e.password),await p(),d.success("登录成功"),x("/",{replace:!0})}catch(o){d.error(o instanceof Error?o.message:"登录失败")}finally{a(!1)}};return s.jsx("div",{className:"auth-page",children:s.jsxs("div",{className:"auth-box",children:[s.jsx("div",{className:"logo-mark",children:"姜"}),s.jsx("h1",{children:"登录姜十三论坛"}),s.jsx("p",{className:"subtitle",children:"拾三一隅,自在交流"}),s.jsx(y,{...r,children:s.jsxs("form",{onSubmit:r.handleSubmit(j),className:"space-y-4",children:[s.jsx(t,{control:r.control,name:"username",render:({field:e})=>s.jsxs(n,{children:[s.jsx(l,{children:"用户名"}),s.jsx(c,{children:s.jsx(u,{placeholder:"用户名",autoComplete:"username",...e})}),s.jsx(i,{})]})}),s.jsx(t,{control:r.control,name:"password",render:({field:e})=>s.jsxs(n,{children:[s.jsx(l,{children:"密码"}),s.jsx(c,{children:s.jsx(u,{type:"password",placeholder:"密码",autoComplete:"current-password",...e})}),s.jsx(i,{})]})}),s.jsx(L,{type:"submit",className:"w-full",loading:h,children:"登录"})]})}),s.jsxs("p",{style:{textAlign:"center",marginTop:16,fontSize:13,color:"var(--color-text-3)"},children:["没有账号?",s.jsx(b,{to:"/register",children:"注册"})]})]})})}export{z as default};
diff --git a/embed_static/static/spa/assets/LoginPage-XRVgE8q8.js b/embed_static/static/spa/assets/LoginPage-XRVgE8q8.js
deleted file mode 100644
index 4318976..0000000
--- a/embed_static/static/spa/assets/LoginPage-XRVgE8q8.js
+++ /dev/null
@@ -1 +0,0 @@
-import{e as f,r as g,j as s,L as b}from"./react-vendor-CgzNJrV9.js";import{u as w,a as F,F as y,b as t,c as n,d as l,e as c,I as i,f as m,o as N,s as d}from"./form-BzHbu9bJ.js";import{u as v,B as L,a as S}from"./index-474mTIgd.js";import{n as u}from"./notify-Zesh5czd.js";import"./ui-vendor-CdH1UOKW.js";const C=N({username:d().min(1,"请输入用户名"),password:d().min(1,"请输入密码")});function z(){const x=f(),{refresh:p}=v(),[h,a]=g.useState(!1),r=w({resolver:F(C),defaultValues:{username:"",password:""}}),j=async e=>{a(!0);try{await S.login(e.username,e.password),await p(),u.success("登录成功"),x("/",{replace:!0})}catch(o){u.error(o instanceof Error?o.message:"登录失败")}finally{a(!1)}};return s.jsx("div",{className:"auth-page",children:s.jsxs("div",{className:"auth-box",children:[s.jsx("div",{className:"logo-mark",children:"姜"}),s.jsx("h1",{children:"登录姜十三论坛"}),s.jsx("p",{className:"subtitle",children:"拾三一隅,自在交流"}),s.jsx(y,{...r,children:s.jsxs("form",{onSubmit:r.handleSubmit(j),className:"space-y-4",children:[s.jsx(t,{control:r.control,name:"username",render:({field:e})=>s.jsxs(n,{children:[s.jsx(l,{children:"用户名"}),s.jsx(c,{children:s.jsx(i,{placeholder:"用户名",autoComplete:"username",...e})}),s.jsx(m,{})]})}),s.jsx(t,{control:r.control,name:"password",render:({field:e})=>s.jsxs(n,{children:[s.jsx(l,{children:"密码"}),s.jsx(c,{children:s.jsx(i,{type:"password",placeholder:"密码",autoComplete:"current-password",...e})}),s.jsx(m,{})]})}),s.jsx(L,{type:"submit",className:"w-full",loading:h,children:"登录"})]})}),s.jsxs("p",{style:{textAlign:"center",marginTop:16,fontSize:13,color:"var(--color-text-3)"},children:["没有账号?",s.jsx(b,{to:"/register",children:"注册"})]})]})})}export{z as default};
diff --git a/embed_static/static/spa/assets/PostDetailPage-D4qGd4ZA.js b/embed_static/static/spa/assets/PostDetailPage-D4qGd4ZA.js
deleted file mode 100644
index 40da8c8..0000000
--- a/embed_static/static/spa/assets/PostDetailPage-D4qGd4ZA.js
+++ /dev/null
@@ -1 +0,0 @@
-import{j as e,r as l,e as X,v as ce}from"./react-vendor-CgzNJrV9.js";import{c as V,u as me,a as $,B as R}from"./index-474mTIgd.js";import{B as H}from"./badge-CsEfIQQ2.js";import{S as ue}from"./spinner-DH1syOsQ.js";import{n as E}from"./notify-Zesh5czd.js";import{h as de,f as he}from"./content-CKr4Ur51.js";import{r as fe,X as xe,s as ge,t as Q,u as pe,v as ve,A as je,w as be,i as Ne,x as ke}from"./ui-vendor-CdH1UOKW.js";import{r as we}from"./postContent-CNPsgNvN.js";import"./markdown-vendor-DxR1h-Bq.js";function Se({content:t,onMentionClick:s}){return e.jsx("div",{className:"floor-body",children:e.jsx("span",{dangerouslySetInnerHTML:{__html:de(t)}})})}function D(t){var s;return(s=t.user)!=null&&s.nickname?t.user.nickname:t.guest_nick?t.guest_nick:"游客"}function ye(t){return D(t)[0]||"?"}function Ce(t){return!t.user_id||t.user_id===0}function Ee(t){const s=new Map,o=[];for(const n of t)s.set(n.id,{comment:n,children:[]});for(const n of t){const u=s.get(n.id);n.reply_to&&s.has(n.reply_to)?s.get(n.reply_to).children.push(u):o.push(u)}return o}function _e(t){const s=new Date(t),o=new Date,n=u=>String(u).padStart(2,"0");return s.getFullYear()===o.getFullYear()?`${n(s.getMonth()+1)}月${n(s.getDate())}日`:`${s.getFullYear()}年${s.getMonth()+1}月${s.getDate()}日`}function Z({node:t,nested:s,highlightFloor:o,replyToId:n,onReply:u,onCancelReply:r,renderReplyBox:d}){var m,g;const i=t.comment,f=D(i),j=Ce(i),x=o===i.floor,k=!!i.content_hidden,p=n===i.id;return e.jsxs("div",{id:`floor-${i.floor}`,className:`waline-comment ${s?"nested":""} ${x?"highlight":""}`,children:[e.jsx("div",{className:`waline-comment-avatar ${j&&!((m=i.user)!=null&&m.avatar)?"guest":""}`,children:(g=i.user)!=null&&g.avatar?e.jsx("img",{src:i.user.avatar,alt:""}):ye(i)}),e.jsxs("div",{className:"waline-comment-main",children:[e.jsx("div",{className:"waline-comment-head",children:i.guest_url?e.jsx("a",{href:i.guest_url,target:"_blank",rel:"noopener noreferrer",className:"waline-comment-author",children:f}):e.jsx("span",{className:"waline-comment-author",children:f})}),k?e.jsx("div",{className:"waline-comment-private-mask",children:"该评论为私密评论,仅文章作者与评论发起者可见!"}):e.jsxs("div",{className:"waline-comment-bubble",children:[i.reply_target&&e.jsxs("span",{className:"waline-reply-at",children:["@",D(i.reply_target)]}),e.jsx(Se,{content:i.content})]}),e.jsxs("div",{className:"waline-comment-meta",children:[e.jsxs("span",{className:"waline-comment-date",children:[e.jsx(fe,{size:14}),_e(i.created_at)]}),p?e.jsxs("button",{type:"button",className:"waline-comment-reply-btn cancel",onClick:r,children:[e.jsx(xe,{size:14}),"取消"]}):e.jsxs("button",{type:"button",className:"waline-comment-reply-btn",onClick:()=>u(i),children:[e.jsx(ge,{size:14}),"回复"]})]}),p&&d&&e.jsx("div",{id:`reply-box-${i.id}`,className:"comment-box-wrap inline",children:d(i)}),t.children.length>0&&e.jsx("div",{className:"waline-replies",children:t.children.map(w=>e.jsx(Z,{node:w,nested:!0,highlightFloor:o,replyToId:n,onReply:u,onCancelReply:r,renderReplyBox:d},w.comment.id))})]})]})}function Ie({comments:t,highlightFloor:s,replyToId:o,onReply:n,onCancelReply:u,renderReplyBox:r}){const d=Ee(t);return e.jsx("div",{className:"comment-thread-list",children:d.map(i=>e.jsx(Z,{node:i,highlightFloor:s,replyToId:o,onReply:n,onCancelReply:u,renderReplyBox:r},i.comment.id))})}const ee=l.forwardRef(({className:t,...s},o)=>e.jsx(Q,{className:V("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[var(--j13-green)] data-[state=unchecked]:bg-input",t),...s,ref:o,children:e.jsx(pe,{className:V("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));ee.displayName=Q.displayName;const Me=["😀","😁","😂","🤣","😃","😄","😅","😆","😉","😊","😋","😎","😍","😘","🥰","😗","😙","😚","🙂","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😣","😥","😮","🤐","😯","😪","😫","🥱","😴","😌","😛","😜","😝","🤤","😒","😓","😔","😕","🙃","🤑","😲","🙁","😖","😞","😟","😤","😢","😭","😦","😧","😨","😩","🤯","😬","😰","😱","🥵","🥶","😳","🤪","😵","🥴","😠","😡","🤬","😷","🤒","🤕","🤢","🤮","🤧","😇","🥳","🥺","🤠","🤡","🤥","🤫","🤭","🧐","🤓","😈","👻","💀","☠️","👽","👾","🤖","🎃","😺","😸","😹","😻","😼","😽","🙀","😿","😾","👋","🤚","🖐","✋","🖖","👌","🤏","✌️","🤞","🤟","🤘","🤙","👈","👉","👆","👇","☝️","👍","👎","✊","👊","🤛","🤜","👏","🙌","👐","🤲","🤝","🙏","💪","🦾","🦿","🦵","🦶","❤️","🧡","💛","💚","💙","💜","🖤","🤍","🤎","💔","❣️","💕","💞","💓","💗","💖","💘","💝","💟","☮️","✨","⭐","🌟","💫","🔥","💥","💯","✅","❌","❓","❗","💢","💤","💦","🎉","🎊","🎁","🏆","🥇","🥈"];function Le({onSelect:t}){return e.jsx("div",{className:"emoji-picker",children:Me.map(s=>e.jsx("button",{type:"button",className:"emoji-picker-item",onClick:()=>t(s),children:s},s))})}const te="j13_guest_nick",se="j13_guest_email",ne="j13_guest_url",ae="j13_my_comment_ids";function $e(){return{nick:localStorage.getItem(te)||"",email:localStorage.getItem(se)||"",url:localStorage.getItem(ne)||""}}function Re(t){localStorage.setItem(te,t.nick),localStorage.setItem(se,t.email),localStorage.setItem(ne,t.url)}function oe(){try{const t=localStorage.getItem(ae);if(!t)return[];const s=JSON.parse(t);return Array.isArray(s)?s.filter(o=>typeof o=="number"):[]}catch{return[]}}function Pe(t){const s=oe();s.includes(t)||(s.push(t),localStorage.setItem(ae,JSON.stringify(s.slice(-200))))}function W({user:t,replyTo:s,inline:o,submitting:n,submitCount:u=0,onSubmit:r,onCancelReply:d}){var y;const i=$e(),[f,j]=l.useState(""),[x,k]=l.useState(i.nick),[p,m]=l.useState(i.email),[g,w]=l.useState(i.url),[b,_]=l.useState(!1),[N,I]=l.useState(!1),S=l.useRef(null),M=l.useRef(null);l.useEffect(()=>{var c;o&&s&&((c=S.current)==null||c.focus({preventScroll:!0}))},[s==null?void 0:s.id,o]),l.useEffect(()=>{j(""),I(!1),_(!1)},[u]),l.useEffect(()=>{if(!N)return;const c=v=>{M.current&&!M.current.contains(v.target)&&I(!1)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[N]);const T=c=>{const v=S.current;if(v){const C=v.selectionStart??f.length,B=v.selectionEnd??f.length,G=f.slice(0,C)+c+f.slice(B);j(G),requestAnimationFrame(()=>{v.focus();const P=C+c.length;v.setSelectionRange(P,P)})}else j(C=>C+c)},L=()=>{const c=f.trim();c&&(!t&&!x.trim()||(t||Re({nick:x.trim(),email:p.trim(),url:g.trim()}),r({content:c,guestNick:t?void 0:x.trim(),guestEmail:t?void 0:p.trim(),guestUrl:t?void 0:g.trim(),isPrivate:b})))},z=c=>{c.key==="Enter"&&(c.ctrlKey||c.metaKey)&&(c.preventDefault(),L())},Y=((y=t==null?void 0:t.nickname)==null?void 0:y[0])||(x==null?void 0:x[0])||"?";return e.jsxs("div",{className:"comment-box",ref:M,children:[e.jsx("div",{className:"comment-box-avatar",children:t!=null&&t.avatar?e.jsx("img",{src:t.avatar,alt:"",className:"comment-box-avatar-img"}):e.jsx("div",{className:`comment-box-avatar-placeholder ${t?"":"guest"}`,children:t?Y:e.jsx("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor",children:e.jsx("path",{d:"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z"})})})}),e.jsxs("div",{className:"comment-box-main",children:[s&&!o&&e.jsxs("div",{className:"comment-box-reply-hint",children:[e.jsxs("span",{children:["回复 #",s.floor," ",D(s)]}),d&&e.jsx("button",{type:"button",className:"comment-box-reply-cancel",onClick:d,children:"取消"})]}),e.jsxs("div",{className:`comment-box-input-wrap ${b?"private-mode":""}`,children:[e.jsx("textarea",{ref:S,className:"comment-box-textarea",placeholder:b?"正在隐私评论中...":"说点什么吧",value:f,onChange:c=>j(c.target.value),onKeyDown:z,rows:3}),e.jsx("button",{type:"button",className:"comment-box-send",disabled:n||!f.trim()||!t&&!x.trim(),onClick:L,title:"发送",children:e.jsx(ve,{size:16})})]}),!t&&e.jsxs("div",{className:"comment-box-guest-fields",children:[e.jsxs("label",{className:"comment-box-guest-field",children:[e.jsxs("span",{className:"comment-box-guest-label",children:["昵称",e.jsx("em",{className:"comment-box-guest-required",children:"必填"})]}),e.jsx("input",{className:"comment-box-guest-input",placeholder:"怎么称呼你",autoComplete:"nickname",value:x,onChange:c=>k(c.target.value)})]}),e.jsxs("label",{className:"comment-box-guest-field",children:[e.jsxs("span",{className:"comment-box-guest-label",children:["邮箱",e.jsx("em",{className:"comment-box-guest-optional",children:"选填"})]}),e.jsx("input",{className:"comment-box-guest-input",placeholder:"name@example.com",type:"email",autoComplete:"email",value:p,onChange:c=>m(c.target.value)})]}),e.jsxs("label",{className:"comment-box-guest-field",children:[e.jsxs("span",{className:"comment-box-guest-label",children:["网址",e.jsx("em",{className:"comment-box-guest-optional",children:"选填"})]}),e.jsx("input",{className:"comment-box-guest-input",placeholder:"https://example.com",type:"url",autoComplete:"url",value:g,onChange:c=>w(c.target.value)})]}),e.jsx("p",{className:"comment-box-guest-hint",children:"邮箱不会公开展示,仅用于站内记录。"})]}),e.jsxs("div",{className:"comment-box-toolbar",children:[e.jsx("button",{type:"button",className:`comment-box-owo ${N?"active":""}`,onClick:()=>I(c=>!c),children:"OwO"}),e.jsxs("label",{className:"comment-box-private",children:[e.jsx(ee,{checked:b,onCheckedChange:_}),e.jsx("span",{children:"隐私评论"})]})]}),N&&e.jsx(Le,{onSelect:T})]})]})}function De({html:t,isLoggedIn:s,className:o="post-detail-content"}){const n=X(),u=l.useMemo(()=>we(t,s),[t,s]),r=l.useCallback(d=>{const i=d.target;if(i.closest("[data-members-login]")){d.preventDefault(),n("/login");return}i.closest("[data-members-register]")&&(d.preventDefault(),n("/register"))},[n]);return e.jsx("div",{className:o,onClick:r,dangerouslySetInnerHTML:{__html:u}})}function Te(t,s){const{overflowY:o}=getComputedStyle(t);return o!=="auto"&&o!=="scroll"&&o!=="overlay"||t.scrollHeight<=t.clientHeight+1?!1:s<0?t.scrollTop>0:t.scrollTop+t.clientHeight{if(!s)return;const o=t.current;if(!o)return;const n=o.closest(".app-shell");if(!n)return;const u=r=>{const d=r.target instanceof HTMLElement?r.target:null;if(!d)return;const i=ze(d,r.deltaY,n);if(i&&i!==o&&o.contains(i)||i===o)return;const f=o.scrollTop;o.scrollTop+=r.deltaY,o.scrollTop!==f&&r.preventDefault()};return n.addEventListener("wheel",u,{passive:!1}),()=>n.removeEventListener("wheel",u)},[t,s])}function Ve(){var K,F,O,q,J;const{id:t}=ce(),s=Number(t),o=X(),{user:n,refresh:u}=me(),[r,d]=l.useState(null),[i,f]=l.useState([]),[j,x]=l.useState(!1),[k,p]=l.useState(!1),[m,g]=l.useState(null),[w,b]=l.useState(!1),[_,N]=l.useState(!0),[I,S]=l.useState(null),[M,T]=l.useState(0),L=l.useRef(null),z=l.useRef(null),Y=l.useRef(null),y=l.useRef();Ye(L,!_&&!!r);const c=l.useCallback(async()=>{const a=n?[]:oe(),h=await $.comments(s,a);return Array.isArray(h.comments)?h.comments:[]},[s,n]),v=async()=>{if(s){N(!0);try{const[a,h]=await Promise.all([$.post(s),c()]);d(a.post),x(a.liked),p(a.favorited),f(h),await u()}catch(a){E.error(a instanceof Error?a.message:"加载失败")}finally{N(!1)}}};l.useEffect(()=>{g(null),v()},[s]);const C=l.useCallback(a=>{const h=document.getElementById(`floor-${a}`);h&&(h.scrollIntoView({behavior:"smooth",block:"center"}),S(a),clearTimeout(y.current),y.current=setTimeout(()=>S(null),2e3))},[]),B=a=>{if((m==null?void 0:m.id)===a.id){g(null);return}g(a)};l.useLayoutEffect(()=>{if(!m)return;const a=document.getElementById(`reply-box-${m.id}`);a==null||a.scrollIntoView({behavior:"smooth",block:"nearest"})},[m==null?void 0:m.id]),l.useEffect(()=>()=>clearTimeout(y.current),[]);const G=async()=>{if(!n){o("/login");return}try{const a=await $.like(s);x(a.liked),d(h=>h&&{...h,like_count:a.like_count})}catch(a){E.error(a instanceof Error?a.message:"操作失败")}},P=async()=>{if(!n){o("/login");return}try{const a=await $.favorite(s);p(a.favorited),E.success(a.favorited?"已收藏":"已取消收藏")}catch(a){E.error(a instanceof Error?a.message:"操作失败")}},U={user:n,submitting:w,submitCount:M,onSubmit:async a=>{b(!0);try{const h=await $.addComment(s,{content:a.content,replyTo:m==null?void 0:m.id,guestNick:a.guestNick,guestEmail:a.guestEmail,guestUrl:a.guestUrl,isPrivate:a.isPrivate});n||Pe(h.id),g(null),T(re=>re+1),E.success("评论成功"),f(await c()),setTimeout(()=>C(h.floor),100)}catch(h){E.error(h instanceof Error?h.message:"评论失败")}finally{b(!1)}},onCancelReply:()=>g(null)};if(_)return e.jsx("div",{className:"post-detail-loading flex justify-center py-16",children:e.jsx(ue,{size:"lg"})});if(!r)return e.jsxs("div",{className:"empty-state",children:[e.jsx("p",{children:"帖子不存在"}),e.jsx(R,{variant:"outline",onClick:()=>o("/"),children:"返回首页"})]});const ie=((F=(K=r.user)==null?void 0:K.nickname)==null?void 0:F[0])||"?",A=((O=r.tags)==null?void 0:O.split(/[,,]/).map(a=>a.trim()).filter(Boolean))??[],le=n&&(n.role==="admin"||n.id===r.user_id);return e.jsxs("div",{className:"page-wrap post-detail-page",ref:L,children:[e.jsxs("div",{className:"post-detail-header",children:[e.jsxs("div",{className:"post-detail-nav",children:[e.jsxs(R,{variant:"ghost",size:"sm",onClick:()=>o(-1),children:[e.jsx(je,{}),"返回"]}),r.board&&e.jsx(H,{variant:"green",className:"post-detail-board-tag",children:r.board.name})]}),e.jsxs("div",{className:"post-detail-head",children:[e.jsxs("h1",{className:"post-detail-title",children:[r.pinned&&e.jsx(H,{variant:"orange",className:"mr-2 align-middle",children:"置顶"}),r.title]}),e.jsxs("div",{className:"post-detail-author-row",children:[e.jsx("div",{className:"post-avatar post-avatar-lg",children:(q=r.user)!=null&&q.avatar?e.jsx("img",{src:r.user.avatar,alt:""}):ie}),e.jsxs("div",{className:"post-detail-author-info",children:[e.jsx("span",{className:"post-detail-author-name",children:(J=r.user)==null?void 0:J.nickname}),e.jsxs("span",{className:"post-detail-meta-line",children:[he(r.created_at)," · ",r.view_count," 次浏览"]})]})]})]}),A.length>0&&e.jsx("div",{className:"post-detail-tags",children:A.map(a=>e.jsx(H,{variant:"secondary",children:a},a))}),e.jsx(De,{html:r.content||"",isLoggedIn:!!n}),e.jsxs("div",{className:"post-detail-actions",children:[e.jsxs(R,{variant:j?"default":"outline",size:"sm",onClick:G,children:[e.jsx(be,{}),"点赞 ",r.like_count]}),e.jsxs(R,{variant:k?"default":"outline",size:"sm",onClick:P,children:[e.jsx(Ne,{}),k?"已收藏":"收藏"]}),le&&e.jsxs(R,{variant:"outline",size:"sm",onClick:()=>o(`/post/${s}/edit`),children:[e.jsx(ke,{}),"编辑"]})]})]}),e.jsxs("div",{className:"comment-section",ref:z,children:[e.jsxs("div",{className:"comment-section-bar",children:[e.jsx("span",{className:"comment-section-title",children:"评论区"}),e.jsxs("span",{className:"comment-section-count",children:[i.length," 条评论"]})]}),!m&&e.jsx("div",{className:"comment-box-wrap",ref:Y,children:e.jsx(W,{...U})}),e.jsx("div",{className:"comment-list-area",children:i.length===0&&!m?e.jsxs("div",{className:"comment-empty",children:[e.jsx("div",{className:"comment-empty-icon",children:"💬"}),e.jsx("p",{children:"暂无评论,来抢沙发吧"})]}):e.jsx(Ie,{comments:i,highlightFloor:I,replyToId:(m==null?void 0:m.id)??null,onReply:B,onCancelReply:()=>g(null),renderReplyBox:a=>e.jsx(W,{...U,replyTo:a,inline:!0},a.id)})})]})]})}export{Ve as default};
diff --git a/embed_static/static/spa/assets/PostDetailPage-DEqZitTA.js b/embed_static/static/spa/assets/PostDetailPage-DEqZitTA.js
new file mode 100644
index 0000000..498d9c3
--- /dev/null
+++ b/embed_static/static/spa/assets/PostDetailPage-DEqZitTA.js
@@ -0,0 +1 @@
+import{j as e,r as l,e as X,w as ue}from"./react-vendor-CFzzFOsg.js";import{c as V,u as de,a as _,S as he,B as I,n as b}from"./index-DurEdRMk.js";import{B as G}from"./badge-E7fnzaIj.js";import{h as fe,f as xe}from"./content-BR0rw1k4.js";import{u as ge,X as pe,p as ve,v as Q,w as je,x as be,A as Ne,y as ke,i as we,z as Se,B as ye}from"./ui-vendor-BLDO93FK.js";import{r as Ce}from"./postContent-CNPsgNvN.js";import"./markdown-vendor-DxR1h-Bq.js";function Ee({content:t,onMentionClick:s}){return e.jsx("div",{className:"floor-body",dangerouslySetInnerHTML:{__html:fe(t)}})}function z(t){var s;return(s=t.user)!=null&&s.nickname?t.user.nickname:t.guest_nick?t.guest_nick:"游客"}function _e(t){return z(t)[0]||"?"}function Ie(t){return!t.user_id||t.user_id===0}function Me(t){const s=new Map,o=[];for(const a of t)s.set(a.id,{comment:a,children:[]});for(const a of t){const h=s.get(a.id);a.reply_to&&s.has(a.reply_to)?s.get(a.reply_to).children.push(h):o.push(h)}return o}function Pe(t){const s=new Date(t),o=new Date,a=h=>String(h).padStart(2,"0");return s.getFullYear()===o.getFullYear()?`${a(s.getMonth()+1)}月${a(s.getDate())}日`:`${s.getFullYear()}年${s.getMonth()+1}月${s.getDate()}日`}function Z({node:t,nested:s,highlightFloor:o,replyToId:a,onReply:h,onCancelReply:c,renderReplyBox:d}){var m,g;const i=t.comment,f=z(i),j=Ie(i),x=o===i.floor,w=!!i.content_hidden,p=a===i.id;return e.jsxs("div",{id:`floor-${i.floor}`,className:`waline-comment ${s?"nested":""} ${x?"highlight":""}`,children:[e.jsx("div",{className:`waline-comment-avatar ${j&&!((m=i.user)!=null&&m.avatar)?"guest":""}`,children:(g=i.user)!=null&&g.avatar?e.jsx("img",{src:i.user.avatar,alt:""}):_e(i)}),e.jsxs("div",{className:"waline-comment-main",children:[e.jsx("div",{className:"waline-comment-head",children:i.guest_url?e.jsx("a",{href:i.guest_url,target:"_blank",rel:"noopener noreferrer",className:"waline-comment-author",children:f}):e.jsx("span",{className:"waline-comment-author",children:f})}),w?e.jsx("div",{className:"waline-comment-private-mask",children:"该评论为私密评论,仅文章作者与评论发起者可见!"}):e.jsxs("div",{className:"waline-comment-bubble",children:[i.reply_target&&e.jsxs("span",{className:"waline-reply-at",children:["@",z(i.reply_target)]}),e.jsx(Ee,{content:i.content})]}),e.jsxs("div",{className:"waline-comment-meta",children:[e.jsxs("span",{className:"waline-comment-date",children:[e.jsx(ge,{size:14}),Pe(i.created_at)]}),p?e.jsxs("button",{type:"button",className:"waline-comment-reply-btn cancel",onClick:c,children:[e.jsx(pe,{size:14}),"取消"]}):e.jsxs("button",{type:"button",className:"waline-comment-reply-btn",onClick:()=>h(i),children:[e.jsx(ve,{size:14}),"回复"]})]}),p&&d&&e.jsx("div",{id:`reply-box-${i.id}`,className:"comment-box-wrap inline",children:d(i)}),t.children.length>0&&e.jsx("div",{className:"waline-replies",children:t.children.map(S=>e.jsx(Z,{node:S,nested:!0,highlightFloor:o,replyToId:a,onReply:h,onCancelReply:c,renderReplyBox:d},S.comment.id))})]})]})}function Le({comments:t,highlightFloor:s,replyToId:o,onReply:a,onCancelReply:h,renderReplyBox:c}){const d=Me(t);return e.jsx("div",{className:"comment-thread-list",children:d.map(i=>e.jsx(Z,{node:i,highlightFloor:s,replyToId:o,onReply:a,onCancelReply:h,renderReplyBox:c},i.comment.id))})}const ee=l.forwardRef(({className:t,...s},o)=>e.jsx(Q,{className:V("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[var(--j13-green)] data-[state=unchecked]:bg-input",t),...s,ref:o,children:e.jsx(je,{className:V("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));ee.displayName=Q.displayName;const $e=["😀","😁","😂","🤣","😃","😄","😅","😆","😉","😊","😋","😎","😍","😘","🥰","😗","😙","😚","🙂","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😣","😥","😮","🤐","😯","😪","😫","🥱","😴","😌","😛","😜","😝","🤤","😒","😓","😔","😕","🙃","🤑","😲","🙁","😖","😞","😟","😤","😢","😭","😦","😧","😨","😩","🤯","😬","😰","😱","🥵","🥶","😳","🤪","😵","🥴","😠","😡","🤬","😷","🤒","🤕","🤢","🤮","🤧","😇","🥳","🥺","🤠","🤡","🤥","🤫","🤭","🧐","🤓","😈","👻","💀","☠️","👽","👾","🤖","🎃","😺","😸","😹","😻","😼","😽","🙀","😿","😾","👋","🤚","🖐","✋","🖖","👌","🤏","✌️","🤞","🤟","🤘","🤙","👈","👉","👆","👇","☝️","👍","👎","✊","👊","🤛","🤜","👏","🙌","👐","🤲","🤝","🙏","💪","🦾","🦿","🦵","🦶","❤️","🧡","💛","💚","💙","💜","🖤","🤍","🤎","💔","❣️","💕","💞","💓","💗","💖","💘","💝","💟","☮️","✨","⭐","🌟","💫","🔥","💥","💯","✅","❌","❓","❗","💢","💤","💦","🎉","🎊","🎁","🏆","🥇","🥈"];function Re({onSelect:t}){return e.jsx("div",{className:"emoji-picker",children:$e.map(s=>e.jsx("button",{type:"button",className:"emoji-picker-item",onClick:()=>t(s),children:s},s))})}const te="j13_guest_nick",se="j13_guest_email",ne="j13_guest_url",ae="j13_my_comment_ids";function ze(){return{nick:localStorage.getItem(te)||"",email:localStorage.getItem(se)||"",url:localStorage.getItem(ne)||""}}function De(t){localStorage.setItem(te,t.nick),localStorage.setItem(se,t.email),localStorage.setItem(ne,t.url)}function oe(){try{const t=localStorage.getItem(ae);if(!t)return[];const s=JSON.parse(t);return Array.isArray(s)?s.filter(o=>typeof o=="number"):[]}catch{return[]}}function Te(t){const s=oe();s.includes(t)||(s.push(t),localStorage.setItem(ae,JSON.stringify(s.slice(-200))))}function W({user:t,replyTo:s,inline:o,submitting:a,submitCount:h=0,onSubmit:c,onCancelReply:d}){var C;const i=ze(),[f,j]=l.useState(""),[x,w]=l.useState(i.nick),[p,m]=l.useState(i.email),[g,S]=l.useState(i.url),[N,M]=l.useState(!1),[k,P]=l.useState(!1),y=l.useRef(null),L=l.useRef(null);l.useEffect(()=>{var r;o&&s&&((r=y.current)==null||r.focus({preventScroll:!0}))},[s==null?void 0:s.id,o]),l.useEffect(()=>{j(""),P(!1),M(!1)},[h]),l.useEffect(()=>{if(!k)return;const r=v=>{L.current&&!L.current.contains(v.target)&&P(!1)};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[k]);const D=r=>{const v=y.current;if(v){const E=v.selectionStart??f.length,Y=v.selectionEnd??f.length,A=f.slice(0,E)+r+f.slice(Y);j(A),requestAnimationFrame(()=>{v.focus();const R=E+r.length;v.setSelectionRange(R,R)})}else j(E=>E+r)},$=()=>{const r=f.trim();r&&(!t&&!x.trim()||(t||De({nick:x.trim(),email:p.trim(),url:g.trim()}),c({content:r,guestNick:t?void 0:x.trim(),guestEmail:t?void 0:p.trim(),guestUrl:t?void 0:g.trim(),isPrivate:N})))},T=r=>{r.key==="Enter"&&(r.ctrlKey||r.metaKey)&&(r.preventDefault(),$())},B=((C=t==null?void 0:t.nickname)==null?void 0:C[0])||(x==null?void 0:x[0])||"?";return e.jsxs("div",{className:"comment-box",ref:L,children:[e.jsx("div",{className:"comment-box-avatar",children:t!=null&&t.avatar?e.jsx("img",{src:t.avatar,alt:"",className:"comment-box-avatar-img"}):e.jsx("div",{className:`comment-box-avatar-placeholder ${t?"":"guest"}`,children:t?B:e.jsx("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor",children:e.jsx("path",{d:"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z"})})})}),e.jsxs("div",{className:"comment-box-main",children:[s&&!o&&e.jsxs("div",{className:"comment-box-reply-hint",children:[e.jsxs("span",{children:["回复 #",s.floor," ",z(s)]}),d&&e.jsx("button",{type:"button",className:"comment-box-reply-cancel",onClick:d,children:"取消"})]}),e.jsxs("div",{className:`comment-box-input-wrap ${N?"private-mode":""}`,children:[e.jsx("textarea",{ref:y,className:"comment-box-textarea",placeholder:N?"正在隐私评论中...":"说点什么吧",value:f,onChange:r=>j(r.target.value),onKeyDown:T,rows:3}),e.jsx("button",{type:"button",className:"comment-box-send",disabled:a||!f.trim()||!t&&!x.trim(),onClick:$,title:"发送",children:e.jsx(be,{size:16})})]}),!t&&e.jsxs("div",{className:"comment-box-guest-fields",children:[e.jsxs("label",{className:"comment-box-guest-field",children:[e.jsxs("span",{className:"comment-box-guest-label",children:["昵称",e.jsx("em",{className:"comment-box-guest-required",children:"必填"})]}),e.jsx("input",{className:"comment-box-guest-input",placeholder:"怎么称呼你",autoComplete:"nickname",value:x,onChange:r=>w(r.target.value)})]}),e.jsxs("label",{className:"comment-box-guest-field",children:[e.jsxs("span",{className:"comment-box-guest-label",children:["邮箱",e.jsx("em",{className:"comment-box-guest-optional",children:"选填"})]}),e.jsx("input",{className:"comment-box-guest-input",placeholder:"name@example.com",type:"email",autoComplete:"email",value:p,onChange:r=>m(r.target.value)})]}),e.jsxs("label",{className:"comment-box-guest-field",children:[e.jsxs("span",{className:"comment-box-guest-label",children:["网址",e.jsx("em",{className:"comment-box-guest-optional",children:"选填"})]}),e.jsx("input",{className:"comment-box-guest-input",placeholder:"https://example.com",type:"url",autoComplete:"url",value:g,onChange:r=>S(r.target.value)})]}),e.jsx("p",{className:"comment-box-guest-hint",children:"邮箱不会公开展示,仅用于站内记录。"})]}),e.jsxs("div",{className:"comment-box-toolbar",children:[e.jsx("button",{type:"button",className:`comment-box-owo ${k?"active":""}`,onClick:()=>P(r=>!r),children:"OwO"}),e.jsxs("label",{className:"comment-box-private",children:[e.jsx(ee,{checked:N,onCheckedChange:M}),e.jsx("span",{children:"隐私评论"})]})]}),k&&e.jsx(Re,{onSelect:D})]})]})}function Be({html:t,isLoggedIn:s,className:o="post-detail-content"}){const a=X(),h=l.useMemo(()=>Ce(t,s),[t,s]),c=l.useCallback(d=>{const i=d.target;if(i.closest("[data-members-login]")){d.preventDefault(),a("/login");return}i.closest("[data-members-register]")&&(d.preventDefault(),a("/register"))},[a]);return e.jsx("div",{className:o,onClick:c,dangerouslySetInnerHTML:{__html:h}})}function Ye(t,s){const{overflowY:o}=getComputedStyle(t);return o!=="auto"&&o!=="scroll"&&o!=="overlay"||t.scrollHeight<=t.clientHeight+1?!1:s<0?t.scrollTop>0:t.scrollTop+t.clientHeight{if(!s)return;const o=t.current;if(!o)return;const a=o.closest(".app-shell");if(!a)return;const h=c=>{const d=c.target instanceof HTMLElement?c.target:null;if(!d)return;const i=Ae(d,c.deltaY,a);if(i&&i!==o&&o.contains(i)||i===o)return;const f=o.scrollTop;o.scrollTop+=c.deltaY,o.scrollTop!==f&&c.preventDefault()};return a.addEventListener("wheel",h,{passive:!1}),()=>a.removeEventListener("wheel",h)},[t,s])}function We(){var K,F,O,q,J;const{id:t}=ue(),s=Number(t),o=X(),{user:a,refresh:h}=de(),[c,d]=l.useState(null),[i,f]=l.useState([]),[j,x]=l.useState(!1),[w,p]=l.useState(!1),[m,g]=l.useState(null),[S,N]=l.useState(!1),[M,k]=l.useState(!0),[P,y]=l.useState(null),[L,D]=l.useState(0),$=l.useRef(null),T=l.useRef(null),B=l.useRef(null),C=l.useRef();Ge($,!M&&!!c);const r=l.useCallback(async()=>{const n=a?[]:oe(),u=await _.comments(s,n);return Array.isArray(u.comments)?u.comments:[]},[s,a]),v=async()=>{if(s){k(!0);try{const[n,u]=await Promise.all([_.post(s),r()]);d(n.post),x(n.liked),p(n.favorited),f(u),await h()}catch(n){b.error(n instanceof Error?n.message:"加载失败")}finally{k(!1)}}};l.useEffect(()=>{g(null),v()},[s]);const E=l.useCallback(n=>{const u=document.getElementById(`floor-${n}`);u&&(u.scrollIntoView({behavior:"smooth",block:"center"}),y(n),clearTimeout(C.current),C.current=setTimeout(()=>y(null),2e3))},[]),Y=n=>{if((m==null?void 0:m.id)===n.id){g(null);return}g(n)};l.useLayoutEffect(()=>{if(!m)return;const n=document.getElementById(`reply-box-${m.id}`);n==null||n.scrollIntoView({behavior:"smooth",block:"nearest"})},[m==null?void 0:m.id]),l.useEffect(()=>()=>clearTimeout(C.current),[]);const A=async()=>{if(!a){o("/login");return}try{const n=await _.like(s);x(n.liked),d(u=>u&&{...u,like_count:n.like_count})}catch(n){b.error(n instanceof Error?n.message:"操作失败")}},R=async()=>{if(!a){o("/login");return}try{const n=await _.favorite(s);p(n.favorited),b.success(n.favorited?"已收藏":"已取消收藏")}catch(n){b.error(n instanceof Error?n.message:"操作失败")}},H={user:a,submitting:S,submitCount:L,onSubmit:async n=>{N(!0);try{const u=await _.addComment(s,{content:n.content,replyTo:m==null?void 0:m.id,guestNick:n.guestNick,guestEmail:n.guestEmail,guestUrl:n.guestUrl,isPrivate:n.isPrivate});a||Te(u.id),g(null),D(me=>me+1),b.success("评论成功"),f(await r()),setTimeout(()=>E(u.floor),100)}catch(u){b.error(u instanceof Error?u.message:"评论失败")}finally{N(!1)}},onCancelReply:()=>g(null)};if(M)return e.jsx("div",{className:"post-detail-loading flex justify-center py-16",children:e.jsx(he,{size:"lg"})});if(!c)return e.jsxs("div",{className:"empty-state",children:[e.jsx("p",{children:"帖子不存在"}),e.jsx(I,{variant:"outline",onClick:()=>o("/"),children:"返回首页"})]});const ie=((F=(K=c.user)==null?void 0:K.nickname)==null?void 0:F[0])||"?",U=((O=c.tags)==null?void 0:O.split(/[,,]/).map(n=>n.trim()).filter(Boolean))??[],ce=a&&(a.role==="admin"||a.id===c.user_id),le=(a==null?void 0:a.role)==="admin",re=async()=>{if(c)try{const n=await _.adminPinPost(s,!c.pinned);d(u=>u&&{...u,pinned:n.pinned}),b.success(n.message)}catch(n){b.error(n instanceof Error?n.message:"操作失败")}};return e.jsxs("div",{className:"page-wrap post-detail-page",ref:$,children:[e.jsxs("div",{className:"post-detail-header",children:[e.jsxs("div",{className:"post-detail-nav",children:[e.jsxs(I,{variant:"ghost",size:"sm",onClick:()=>o(-1),children:[e.jsx(Ne,{}),"返回"]}),c.board&&e.jsx(G,{variant:"green",className:"post-detail-board-tag",children:c.board.name})]}),e.jsxs("div",{className:"post-detail-head",children:[e.jsxs("h1",{className:"post-detail-title",children:[c.pinned&&e.jsx(G,{variant:"orange",className:"mr-2 align-middle",children:"置顶"}),c.title]}),e.jsxs("div",{className:"post-detail-author-row",children:[e.jsx("div",{className:"post-avatar post-avatar-lg",children:(q=c.user)!=null&&q.avatar?e.jsx("img",{src:c.user.avatar,alt:""}):ie}),e.jsxs("div",{className:"post-detail-author-info",children:[e.jsx("span",{className:"post-detail-author-name",children:(J=c.user)==null?void 0:J.nickname}),e.jsxs("span",{className:"post-detail-meta-line",children:[xe(c.created_at)," · ",c.view_count," 次浏览"]})]})]})]}),U.length>0&&e.jsx("div",{className:"post-detail-tags",children:U.map(n=>e.jsx(G,{variant:"secondary",children:n},n))}),e.jsx(Be,{html:c.content||"",isLoggedIn:!!a}),e.jsxs("div",{className:"post-detail-actions",children:[e.jsxs(I,{variant:j?"default":"outline",size:"sm",onClick:A,children:[e.jsx(ke,{}),"点赞 ",c.like_count]}),e.jsxs(I,{variant:w?"default":"outline",size:"sm",onClick:R,children:[e.jsx(we,{}),w?"已收藏":"收藏"]}),ce&&e.jsxs(I,{variant:"outline",size:"sm",onClick:()=>o(`/post/${s}/edit`),children:[e.jsx(Se,{}),"编辑"]}),le&&e.jsxs(I,{variant:"outline",size:"sm",onClick:re,children:[e.jsx(ye,{}),c.pinned?"取消置顶":"置顶"]})]})]}),e.jsxs("div",{className:"comment-section",ref:T,children:[e.jsxs("div",{className:"comment-section-bar",children:[e.jsx("span",{className:"comment-section-title",children:"评论区"}),e.jsxs("span",{className:"comment-section-count",children:[i.length," 条评论"]})]}),!m&&e.jsx("div",{className:"comment-box-wrap",ref:B,children:e.jsx(W,{...H})}),e.jsx("div",{className:"comment-list-area",children:i.length===0&&!m?e.jsxs("div",{className:"comment-empty",children:[e.jsx("div",{className:"comment-empty-icon",children:"💬"}),e.jsx("p",{children:"暂无评论,来抢沙发吧"})]}):e.jsx(Le,{comments:i,highlightFloor:P,replyToId:(m==null?void 0:m.id)??null,onReply:Y,onCancelReply:()=>g(null),renderReplyBox:n=>e.jsx(W,{...H,replyTo:n,inline:!0},n.id)})})]})]})}export{We as default};
diff --git a/embed_static/static/spa/assets/ProfilePage-exbWgetG.js b/embed_static/static/spa/assets/ProfilePage-exbWgetG.js
new file mode 100644
index 0000000..c2c562d
--- /dev/null
+++ b/embed_static/static/spa/assets/ProfilePage-exbWgetG.js
@@ -0,0 +1 @@
+import{e as G,r as t,j as s}from"./react-vendor-CFzzFOsg.js";import{u as _,a as F,F as L,c as l,d,e as m,b as h,f as p,o as P,s as u}from"./form-ScadC3tp.js";import{u as M,S as R,B as o,a as f,n as i}from"./index-DurEdRMk.js";import{I as x}from"./input-BN5iO3BQ.js";import{B as U}from"./badge-E7fnzaIj.js";import{A as W,q,j as D}from"./ui-vendor-BLDO93FK.js";const J=P({nickname:u().min(1,"请输入昵称").max(64)}),V=P({old_password:u().min(1,"请输入当前密码"),new_password:u().min(6,"新密码至少 6 位"),confirm_password:u().min(1,"请确认新密码")}).refine(r=>r.new_password===r.confirm_password,{message:"两次输入的新密码不一致",path:["confirm_password"]});function Y(){const r=G(),{user:a,loading:g,refresh:v}=M(),[B,y]=t.useState(!1),[C,N]=t.useState(!1),[A,k]=t.useState(!1),j=t.useRef(null),w=_({resolver:F(J),values:{nickname:(a==null?void 0:a.nickname)??""}}),c=_({resolver:F(V),defaultValues:{old_password:"",new_password:"",confirm_password:""}});if(t.useEffect(()=>{!g&&!a&&r("/login")},[g,a,r]),g)return s.jsx("div",{className:"flex justify-center py-16",children:s.jsx(R,{size:"lg"})});if(!a)return null;const E=async e=>{y(!0);try{await f.updateNickname(e.nickname),await v(),i.success("昵称已更新")}catch(n){i.error(n instanceof Error?n.message:"更新失败")}finally{y(!1)}},z=async e=>{N(!0);try{await f.updatePassword(e.old_password,e.new_password),i.success("密码已修改,请重新登录"),c.reset(),await f.logout(),r("/login")}catch(n){i.error(n instanceof Error?n.message:"修改失败")}finally{N(!1)}},I=async e=>{var b;const n=(b=e.target.files)==null?void 0:b[0];if(n){if(n.size>2*1024*1024){i.error("头像不能超过 2MB");return}k(!0);try{await f.uploadAvatar(n),await v(),i.success("头像已更新")}catch(S){i.error(S instanceof Error?S.message:"上传失败")}finally{k(!1),j.current&&(j.current.value="")}}};return s.jsx("div",{className:"page-wrap",children:s.jsxs("div",{className:"page-inner-wide",style:{maxWidth:640},children:[s.jsxs(o,{variant:"ghost",className:"mb-3",onClick:()=>r(-1),children:[s.jsx(W,{}),"返回"]}),s.jsxs("div",{className:"profile-header",children:[s.jsx("div",{className:"profile-avatar-lg",children:a.avatar?s.jsx("img",{src:a.avatar,alt:""}):a.nickname[0]}),s.jsxs("div",{children:[s.jsx("h1",{className:"page-title",style:{marginBottom:4},children:a.nickname}),s.jsxs("div",{style:{fontSize:13,color:"var(--color-text-3)"},children:["@",a.username]}),a.role==="admin"&&s.jsx(U,{variant:"green",className:"mt-1.5",children:"管理员"})]})]}),a.role==="admin"&&s.jsxs("div",{className:"section-card admin-entry-card",children:[s.jsx("div",{className:"section-card-title",children:"管理员入口"}),s.jsx("p",{style:{fontSize:13,color:"var(--color-text-3)",margin:"0 0 12px"},children:"管理板块、用户、帖子及系统设置"}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsxs(o,{variant:"outline",onClick:()=>r("/admin/boards"),children:[s.jsx(q,{}),"管理板块"]}),s.jsxs(o,{onClick:()=>r("/admin/dashboard"),children:[s.jsx(D,{}),"进入系统后台"]})]})]}),s.jsxs("div",{className:"section-card",children:[s.jsx("div",{className:"section-card-title",children:"基本资料"}),s.jsx(L,{...w,children:s.jsxs("form",{onSubmit:w.handleSubmit(E),className:"space-y-4",children:[s.jsxs(l,{children:[s.jsx(d,{children:"用户名"}),s.jsx(m,{children:s.jsx(x,{value:a.username,disabled:!0})})]}),s.jsx(h,{control:w.control,name:"nickname",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"昵称"}),s.jsx(m,{children:s.jsx(x,{maxLength:64,placeholder:"显示名称",...e})}),s.jsx(p,{})]})}),s.jsx(o,{type:"submit",loading:B,children:"保存昵称"})]})})]}),s.jsxs("div",{className:"section-card",children:[s.jsx("div",{className:"section-card-title",children:"头像"}),s.jsx("p",{style:{fontSize:13,color:"var(--color-text-3)",margin:"0 0 12px"},children:"支持 JPG、PNG、GIF、WebP,不超过 2MB"}),s.jsx("input",{ref:j,type:"file",accept:"image/jpeg,image/png,image/gif,image/webp",style:{display:"none"},onChange:I}),s.jsx(o,{variant:"outline",loading:A,onClick:()=>{var e;return(e=j.current)==null?void 0:e.click()},children:"选择图片上传"})]}),s.jsxs("div",{className:"section-card",children:[s.jsx("div",{className:"section-card-title",children:"修改密码"}),s.jsx(L,{...c,children:s.jsxs("form",{onSubmit:c.handleSubmit(z),className:"space-y-4",children:[s.jsx(h,{control:c.control,name:"old_password",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"当前密码"}),s.jsx(m,{children:s.jsx(x,{type:"password",placeholder:"输入当前密码",...e})}),s.jsx(p,{})]})}),s.jsx(h,{control:c.control,name:"new_password",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"新密码"}),s.jsx(m,{children:s.jsx(x,{type:"password",placeholder:"至少 6 位",...e})}),s.jsx(p,{})]})}),s.jsx(h,{control:c.control,name:"confirm_password",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"确认新密码"}),s.jsx(m,{children:s.jsx(x,{type:"password",placeholder:"再次输入新密码",...e})}),s.jsx(p,{})]})}),s.jsx(o,{type:"submit",variant:"destructive",loading:C,children:"修改密码"})]})})]})]})})}export{Y as default};
diff --git a/embed_static/static/spa/assets/ProfilePage-nO8fm023.js b/embed_static/static/spa/assets/ProfilePage-nO8fm023.js
deleted file mode 100644
index 3e27d5c..0000000
--- a/embed_static/static/spa/assets/ProfilePage-nO8fm023.js
+++ /dev/null
@@ -1 +0,0 @@
-import{e as G,r as t,j as s}from"./react-vendor-CgzNJrV9.js";import{u as _,a as F,F as L,c as l,d,e as m,I as x,b as j,f as h,o as P,s as u}from"./form-BzHbu9bJ.js";import{u as M,B as c,o as R,a as f}from"./index-474mTIgd.js";import{B as D}from"./badge-CsEfIQQ2.js";import{S as U}from"./spinner-DH1syOsQ.js";import{n as i}from"./notify-Zesh5czd.js";import{A as W,j as J,k as V}from"./ui-vendor-CdH1UOKW.js";const q=P({nickname:u().min(1,"请输入昵称").max(64)}),H=P({old_password:u().min(1,"请输入当前密码"),new_password:u().min(6,"新密码至少 6 位"),confirm_password:u().min(1,"请确认新密码")}).refine(n=>n.new_password===n.confirm_password,{message:"两次输入的新密码不一致",path:["confirm_password"]});function $(){const n=G(),{user:a,loading:g,refresh:v}=M(),[A,y]=t.useState(!1),[B,N]=t.useState(!1),[C,k]=t.useState(!1),p=t.useRef(null),w=_({resolver:F(q),values:{nickname:(a==null?void 0:a.nickname)??""}}),o=_({resolver:F(H),defaultValues:{old_password:"",new_password:"",confirm_password:""}});if(t.useEffect(()=>{!g&&!a&&n("/login")},[g,a,n]),g)return s.jsx("div",{className:"flex justify-center py-16",children:s.jsx(U,{size:"lg"})});if(!a)return null;const E=async e=>{y(!0);try{await f.updateNickname(e.nickname),await v(),i.success("昵称已更新")}catch(r){i.error(r instanceof Error?r.message:"更新失败")}finally{y(!1)}},z=async e=>{N(!0);try{await f.updatePassword(e.old_password,e.new_password),i.success("密码已修改,请重新登录"),o.reset(),await f.logout(),n("/login")}catch(r){i.error(r instanceof Error?r.message:"修改失败")}finally{N(!1)}},I=async e=>{var b;const r=(b=e.target.files)==null?void 0:b[0];if(r){if(r.size>2*1024*1024){i.error("头像不能超过 2MB");return}k(!0);try{await f.uploadAvatar(r),await v(),i.success("头像已更新")}catch(S){i.error(S instanceof Error?S.message:"上传失败")}finally{k(!1),p.current&&(p.current.value="")}}};return s.jsx("div",{className:"page-wrap",children:s.jsxs("div",{className:"page-inner-wide",style:{maxWidth:640},children:[s.jsxs(c,{variant:"ghost",className:"mb-3",onClick:()=>n(-1),children:[s.jsx(W,{}),"返回"]}),s.jsxs("div",{className:"profile-header",children:[s.jsx("div",{className:"profile-avatar-lg",children:a.avatar?s.jsx("img",{src:a.avatar,alt:""}):a.nickname[0]}),s.jsxs("div",{children:[s.jsx("h1",{className:"page-title",style:{marginBottom:4},children:a.nickname}),s.jsxs("div",{style:{fontSize:13,color:"var(--color-text-3)"},children:["@",a.username]}),a.role==="admin"&&s.jsx(D,{variant:"green",className:"mt-1.5",children:"管理员"})]})]}),a.role==="admin"&&s.jsxs("div",{className:"section-card admin-entry-card",children:[s.jsx("div",{className:"section-card-title",children:"管理员入口"}),s.jsx("p",{style:{fontSize:13,color:"var(--color-text-3)",margin:"0 0 12px"},children:"管理板块、用户、帖子及系统设置"}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsxs(c,{variant:"outline",onClick:()=>n("/boards"),children:[s.jsx(J,{}),"管理板块"]}),s.jsxs(c,{onClick:R,children:[s.jsx(V,{}),"进入系统后台"]})]})]}),s.jsxs("div",{className:"section-card",children:[s.jsx("div",{className:"section-card-title",children:"基本资料"}),s.jsx(L,{...w,children:s.jsxs("form",{onSubmit:w.handleSubmit(E),className:"space-y-4",children:[s.jsxs(l,{children:[s.jsx(d,{children:"用户名"}),s.jsx(m,{children:s.jsx(x,{value:a.username,disabled:!0})})]}),s.jsx(j,{control:w.control,name:"nickname",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"昵称"}),s.jsx(m,{children:s.jsx(x,{maxLength:64,placeholder:"显示名称",...e})}),s.jsx(h,{})]})}),s.jsx(c,{type:"submit",loading:A,children:"保存昵称"})]})})]}),s.jsxs("div",{className:"section-card",children:[s.jsx("div",{className:"section-card-title",children:"头像"}),s.jsx("p",{style:{fontSize:13,color:"var(--color-text-3)",margin:"0 0 12px"},children:"支持 JPG、PNG、GIF、WebP,不超过 2MB"}),s.jsx("input",{ref:p,type:"file",accept:"image/jpeg,image/png,image/gif,image/webp",style:{display:"none"},onChange:I}),s.jsx(c,{variant:"outline",loading:C,onClick:()=>{var e;return(e=p.current)==null?void 0:e.click()},children:"选择图片上传"})]}),s.jsxs("div",{className:"section-card",children:[s.jsx("div",{className:"section-card-title",children:"修改密码"}),s.jsx(L,{...o,children:s.jsxs("form",{onSubmit:o.handleSubmit(z),className:"space-y-4",children:[s.jsx(j,{control:o.control,name:"old_password",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"当前密码"}),s.jsx(m,{children:s.jsx(x,{type:"password",placeholder:"输入当前密码",...e})}),s.jsx(h,{})]})}),s.jsx(j,{control:o.control,name:"new_password",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"新密码"}),s.jsx(m,{children:s.jsx(x,{type:"password",placeholder:"至少 6 位",...e})}),s.jsx(h,{})]})}),s.jsx(j,{control:o.control,name:"confirm_password",render:({field:e})=>s.jsxs(l,{children:[s.jsx(d,{children:"确认新密码"}),s.jsx(m,{children:s.jsx(x,{type:"password",placeholder:"再次输入新密码",...e})}),s.jsx(h,{})]})}),s.jsx(c,{type:"submit",variant:"destructive",loading:B,children:"修改密码"})]})})]})]})})}export{$ as default};
diff --git a/embed_static/static/spa/assets/RegisterPage-BTZhIdwh.js b/embed_static/static/spa/assets/RegisterPage-BTZhIdwh.js
new file mode 100644
index 0000000..9c32313
--- /dev/null
+++ b/embed_static/static/spa/assets/RegisterPage-BTZhIdwh.js
@@ -0,0 +1 @@
+import{e as f,r as g,j as s,L as w}from"./react-vendor-CFzzFOsg.js";import{u as b,a as F,F as y,b as a,c as n,d as o,e as t,f as c,o as k,s as l}from"./form-ScadC3tp.js";import{u as N,B as S,a as v,n as x}from"./index-DurEdRMk.js";import{I as i}from"./input-BN5iO3BQ.js";import"./ui-vendor-BLDO93FK.js";const C=k({username:l().min(1,"请输入用户名"),nickname:l().optional(),password:l().min(6,"密码至少 6 位")});function R(){const u=f(),{refresh:j}=N(),[p,m]=g.useState(!1),r=b({resolver:F(C),defaultValues:{username:"",nickname:"",password:""}}),h=async e=>{m(!0);try{await v.register(e.username,e.password,e.nickname||e.username),await j(),x.success("注册成功"),u("/",{replace:!0})}catch(d){x.error(d instanceof Error?d.message:"注册失败")}finally{m(!1)}};return s.jsx("div",{className:"auth-page",children:s.jsxs("div",{className:"auth-box",children:[s.jsx("div",{className:"logo-mark",children:"姜"}),s.jsx("h1",{children:"注册账号"}),s.jsx("p",{className:"subtitle",children:"首个注册用户自动成为管理员"}),s.jsx(y,{...r,children:s.jsxs("form",{onSubmit:r.handleSubmit(h),className:"space-y-4",children:[s.jsx(a,{control:r.control,name:"username",render:({field:e})=>s.jsxs(n,{children:[s.jsx(o,{children:"用户名"}),s.jsx(t,{children:s.jsx(i,{placeholder:"3-32 位字母数字下划线",autoComplete:"username",...e})}),s.jsx(c,{})]})}),s.jsx(a,{control:r.control,name:"nickname",render:({field:e})=>s.jsxs(n,{children:[s.jsx(o,{children:"昵称"}),s.jsx(t,{children:s.jsx(i,{placeholder:"显示名称(可选)",autoComplete:"nickname",...e})}),s.jsx(c,{})]})}),s.jsx(a,{control:r.control,name:"password",render:({field:e})=>s.jsxs(n,{children:[s.jsx(o,{children:"密码"}),s.jsx(t,{children:s.jsx(i,{type:"password",placeholder:"至少 6 位",autoComplete:"new-password",...e})}),s.jsx(c,{})]})}),s.jsx(S,{type:"submit",className:"w-full",loading:p,children:"注册"})]})}),s.jsxs("p",{style:{textAlign:"center",marginTop:16,fontSize:13,color:"var(--color-text-3)"},children:["已有账号?",s.jsx(w,{to:"/login",children:"登录"})]})]})})}export{R as default};
diff --git a/embed_static/static/spa/assets/RegisterPage-C4KCPGxX.js b/embed_static/static/spa/assets/RegisterPage-C4KCPGxX.js
deleted file mode 100644
index c5d1568..0000000
--- a/embed_static/static/spa/assets/RegisterPage-C4KCPGxX.js
+++ /dev/null
@@ -1 +0,0 @@
-import{e as f,r as g,j as s,L as w}from"./react-vendor-CgzNJrV9.js";import{u as b,a as F,F as y,b as a,c as n,d as o,e as t,I as c,f as l,o as k,s as i}from"./form-BzHbu9bJ.js";import{u as N,B as S,a as v}from"./index-474mTIgd.js";import{n as x}from"./notify-Zesh5czd.js";import"./ui-vendor-CdH1UOKW.js";const C=k({username:i().min(1,"请输入用户名"),nickname:i().optional(),password:i().min(6,"密码至少 6 位")});function R(){const u=f(),{refresh:j}=N(),[p,m]=g.useState(!1),r=b({resolver:F(C),defaultValues:{username:"",nickname:"",password:""}}),h=async e=>{m(!0);try{await v.register(e.username,e.password,e.nickname||e.username),await j(),x.success("注册成功"),u("/",{replace:!0})}catch(d){x.error(d instanceof Error?d.message:"注册失败")}finally{m(!1)}};return s.jsx("div",{className:"auth-page",children:s.jsxs("div",{className:"auth-box",children:[s.jsx("div",{className:"logo-mark",children:"姜"}),s.jsx("h1",{children:"注册账号"}),s.jsx("p",{className:"subtitle",children:"首个注册用户自动成为管理员"}),s.jsx(y,{...r,children:s.jsxs("form",{onSubmit:r.handleSubmit(h),className:"space-y-4",children:[s.jsx(a,{control:r.control,name:"username",render:({field:e})=>s.jsxs(n,{children:[s.jsx(o,{children:"用户名"}),s.jsx(t,{children:s.jsx(c,{placeholder:"3-32 位字母数字下划线",autoComplete:"username",...e})}),s.jsx(l,{})]})}),s.jsx(a,{control:r.control,name:"nickname",render:({field:e})=>s.jsxs(n,{children:[s.jsx(o,{children:"昵称"}),s.jsx(t,{children:s.jsx(c,{placeholder:"显示名称(可选)",autoComplete:"nickname",...e})}),s.jsx(l,{})]})}),s.jsx(a,{control:r.control,name:"password",render:({field:e})=>s.jsxs(n,{children:[s.jsx(o,{children:"密码"}),s.jsx(t,{children:s.jsx(c,{type:"password",placeholder:"至少 6 位",autoComplete:"new-password",...e})}),s.jsx(l,{})]})}),s.jsx(S,{type:"submit",className:"w-full",loading:p,children:"注册"})]})}),s.jsxs("p",{style:{textAlign:"center",marginTop:16,fontSize:13,color:"var(--color-text-3)"},children:["已有账号?",s.jsx(w,{to:"/login",children:"登录"})]})]})})}export{R as default};
diff --git a/embed_static/static/spa/assets/alert-dialog-CQ3zNojX.js b/embed_static/static/spa/assets/alert-dialog-CQ3zNojX.js
new file mode 100644
index 0000000..acc40c8
--- /dev/null
+++ b/embed_static/static/spa/assets/alert-dialog-CQ3zNojX.js
@@ -0,0 +1 @@
+import{r as l,j as s}from"./react-vendor-CFzzFOsg.js";import{a7 as x,a8 as g,a9 as N,aa as d,ab as i,ac as r,ad as n,ae as m,af as c}from"./ui-vendor-BLDO93FK.js";import{c as o,e as f}from"./index-DurEdRMk.js";const T=x,h=g,y=N,p=l.forwardRef(({className:a,...e},t)=>s.jsx(c,{className:o("fixed inset-0 z-[110] bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...e,ref:t}));p.displayName=c.displayName;const u=l.forwardRef(({className:a,...e},t)=>s.jsxs(y,{children:[s.jsx(p,{}),s.jsx(d,{ref:t,className:o("fixed left-[50%] top-[50%] z-[110] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...e})]}));u.displayName=d.displayName;const A=({className:a,...e})=>s.jsx("div",{className:o("flex flex-col space-y-2 text-center sm:text-left",a),...e});A.displayName="AlertDialogHeader";const D=({className:a,...e})=>s.jsx("div",{className:o("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...e});D.displayName="AlertDialogFooter";const j=l.forwardRef(({className:a,...e},t)=>s.jsx(i,{ref:t,className:o("text-lg font-semibold",a),...e}));j.displayName=i.displayName;const w=l.forwardRef(({className:a,...e},t)=>s.jsx(r,{ref:t,className:o("text-sm text-muted-foreground",a),...e}));w.displayName=r.displayName;const b=l.forwardRef(({className:a,...e},t)=>s.jsx(m,{ref:t,className:o(f(),a),...e}));b.displayName=m.displayName;const R=l.forwardRef(({className:a,...e},t)=>s.jsx(n,{ref:t,className:o(f({variant:"outline"}),"mt-2 sm:mt-0",a),...e}));R.displayName=n.displayName;export{T as A,h as a,u as b,A as c,j as d,w as e,D as f,R as g,b as h};
diff --git a/embed_static/static/spa/assets/badge-CsEfIQQ2.js b/embed_static/static/spa/assets/badge-E7fnzaIj.js
similarity index 85%
rename from embed_static/static/spa/assets/badge-CsEfIQQ2.js
rename to embed_static/static/spa/assets/badge-E7fnzaIj.js
index 73b51da..c4a2d2a 100644
--- a/embed_static/static/spa/assets/badge-CsEfIQQ2.js
+++ b/embed_static/static/spa/assets/badge-E7fnzaIj.js
@@ -1 +1 @@
-import{j as n}from"./react-vendor-CgzNJrV9.js";import{c as a,d as o}from"./index-474mTIgd.js";const s=o("inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground shadow",outline:"text-foreground",green:"border-transparent bg-[var(--j13-green-bg)] text-[var(--j13-green)]",orange:"border-transparent bg-orange-100 text-orange-700 dark:bg-orange-950 dark:text-orange-300"}},defaultVariants:{variant:"default"}});function g({className:r,variant:e,...t}){return n.jsx("div",{className:a(s({variant:e}),r),...t})}export{g as B};
+import{j as n}from"./react-vendor-CFzzFOsg.js";import{c as a,d as o}from"./index-DurEdRMk.js";const s=o("inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground shadow",outline:"text-foreground",green:"border-transparent bg-[var(--j13-green-bg)] text-[var(--j13-green)]",orange:"border-transparent bg-orange-100 text-orange-700 dark:bg-orange-950 dark:text-orange-300"}},defaultVariants:{variant:"default"}});function g({className:r,variant:e,...t}){return n.jsx("div",{className:a(s({variant:e}),r),...t})}export{g as B};
diff --git a/embed_static/static/spa/assets/content-BR0rw1k4.js b/embed_static/static/spa/assets/content-BR0rw1k4.js
new file mode 100644
index 0000000..c9d8455
--- /dev/null
+++ b/embed_static/static/spa/assets/content-BR0rw1k4.js
@@ -0,0 +1,3 @@
+function r(t){return t.replace(/\r\n/g,`
+`).replace(/\r/g,`
+`).replace(/&/g,"&").replace(//g,">").replace(/\n/g,"
")}function i(t,e){return r(t).replace(/@([\w\u4e00-\u9fa5_-]+)/g,'@$1')}function o(t){const e=new Date(t),n=(new Date().getTime()-e.getTime())/1e3;return n<60?"刚刚":n<3600?`${Math.floor(n/60)}分钟前`:n<86400?`${Math.floor(n/3600)}小时前`:`${e.getMonth()+1}-${e.getDate()} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}export{o as f,i as h};
diff --git a/embed_static/static/spa/assets/content-CKr4Ur51.js b/embed_static/static/spa/assets/content-CKr4Ur51.js
deleted file mode 100644
index 2429594..0000000
--- a/embed_static/static/spa/assets/content-CKr4Ur51.js
+++ /dev/null
@@ -1 +0,0 @@
-function a(n,t){return n.replace(/&/g,"&").replace(//g,">").replace(/@([\w\u4e00-\u9fa5_-]+)/g,'@$1')}function o(n){const t=new Date(n),e=(new Date().getTime()-t.getTime())/1e3;return e<60?"刚刚":e<3600?`${Math.floor(e/60)}分钟前`:e<86400?`${Math.floor(e/3600)}小时前`:`${t.getMonth()+1}-${t.getDate()} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}export{o as f,a as h};
diff --git a/embed_static/static/spa/assets/form-BzHbu9bJ.js b/embed_static/static/spa/assets/form-ScadC3tp.js
similarity index 87%
rename from embed_static/static/spa/assets/form-BzHbu9bJ.js
rename to embed_static/static/spa/assets/form-ScadC3tp.js
index f0af24d..5f00eea 100644
--- a/embed_static/static/spa/assets/form-BzHbu9bJ.js
+++ b/embed_static/static/spa/assets/form-ScadC3tp.js
@@ -1,6 +1,6 @@
-import{k as S,r as fe,j as _e}from"./react-vendor-CgzNJrV9.js";import{c as Ve,d as Gn}from"./index-474mTIgd.js";import{ab as Gr,o as Kn}from"./ui-vendor-CdH1UOKW.js";var Me=e=>e.type==="checkbox",$e=e=>e instanceof Date,Q=e=>e==null;const Kr=e=>typeof e=="object";var M=e=>!Q(e)&&!Array.isArray(e)&&Kr(e)&&!$e(e),$t=e=>M(e)&&e.target?Me(e.target)?e.target.checked:e.target.value:e,qr=(e,t)=>t.split(".").some((r,n,o)=>!isNaN(Number(r))&&e.has(o.slice(0,n).join("."))),Yr=e=>{const t=e.constructor&&e.constructor.prototype;return M(t)&&t.hasOwnProperty("isPrototypeOf")},ot=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function B(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(ot&&(e instanceof Blob||t))return e;const r=Array.isArray(e);if(!r&&!(M(e)&&Yr(e)))return e;const n=r?[]:Object.create(Object.getPrototypeOf(e));for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=B(e[o]));return n}const ve={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change",SUBMIT:"submit",TRIGGER:"trigger",VALID:"valid"},me={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},pe={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},vt="form",Hr="root",Xr=["__proto__","constructor","prototype"];var Le=e=>/^\w*$/.test(e),R=e=>e===void 0,st=e=>e.split(/[.[\]'"]/g).filter(Boolean),v=(e,t,r)=>{if(!t||!M(e))return r;const n=Le(t)?[t]:st(t);if(n.some(s=>Xr.includes(s)))return r;const o=n.reduce((s,i)=>Q(s)?void 0:s[i],e);return R(o)||o===e?R(e[t])?r:e[t]:o},ue=e=>typeof e=="boolean",te=e=>typeof e=="function",x=(e,t,r)=>{let n=-1;const o=Le(t)?[t]:st(t),s=o.length,i=s-1;for(;++nS.useContext(Nt);var Qr=(e,t,r,n=!0)=>{const o={};for(const s in e)Object.defineProperty(o,s,{get:()=>{const i=s;return t._proxyFormState[i]!==me.all&&(t._proxyFormState[i]=!n||me.all),r&&(r[i]=!0),e[i]}});return o};const Dt=ot?S.useLayoutEffect:S.useEffect;function qn(e){const t=Pt(),{control:r=t,disabled:n,name:o,exact:s}=e||{},[i,u]=S.useState(()=>({...r._formState,defaultValues:r._defaultValues})),l=S.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Dt(()=>r._subscribe({name:o,formState:l.current,exact:s,callback:h=>{!n&&u({...r._formState,...h,defaultValues:r._defaultValues})}}),[o,n,s]),S.useEffect(()=>{l.current.isValid&&r._setValid(!0)},[r]),S.useMemo(()=>Qr(i,r,l.current,!1),[i,r])}var re=e=>typeof e=="string",Ot=(e,t,r,n,o)=>re(e)?(n&&t.watch.add(e),v(r,e,o)):Array.isArray(e)?e.map(s=>(n&&t.watch.add(s),v(r,s))):(n&&(t.watchAll=!0),r),Et=e=>Q(e)||!Kr(e);const ur=(e,t)=>t.length===0&&!Array.isArray(e)&&!Yr(e);function ae(e,t,r=new WeakMap){if(e===t)return!0;if(Et(e)||Et(t))return Object.is(e,t);if($e(e)&&$e(t))return Object.is(e.getTime(),t.getTime());const n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;if(ur(e,n)||ur(t,o))return Object.is(e,t);const s=r.get(e);if(s&&s.has(t))return!0;s?s.add(t):r.set(e,new WeakSet([t]));for(const i of n){const u=e[i];if(!(i in t))return!1;if(i!=="ref"){const l=t[i];if($e(u)&&$e(l)||(M(u)||Array.isArray(u))&&(M(l)||Array.isArray(l))?!ae(u,l,r):!Object.is(u,l))return!1}}return!0}function Yn(e){const t=Pt(),{control:r=t,name:n,defaultValue:o,disabled:s,exact:i,compute:u}=e||{},l=S.useRef(o),h=S.useRef(u),m=S.useRef(void 0),d=S.useRef(r),g=S.useRef(n);h.current=u;const[p,Z]=S.useState(()=>{const O=r._getWatch(n,l.current);return h.current?h.current(O):O}),A=S.useCallback(O=>{const I=Ot(n,r._names,O||r._formValues,!1,l.current);return h.current?h.current(I):I},[r._formValues,r._names,n]),T=S.useCallback(O=>{if(!s){const I=Ot(n,r._names,O||r._formValues,!1,l.current);if(h.current){const V=h.current(I);ae(V,m.current)||(Z(V),m.current=V)}else Z(I)}},[r._formValues,r._names,s,n]);Dt(()=>((d.current!==r||!ae(g.current,n))&&(d.current=r,g.current=n,T()),r._subscribe({name:n,formState:{values:!0},exact:i,callback:O=>{T(O.values)}})),[r,i,n,T]),S.useEffect(()=>r._removeUnmounted());const F=d.current!==r,z=g.current,W=S.useMemo(()=>{if(s)return null;const O=!F&&!ae(z,n);return F||O?A():null},[s,F,n,z,A]);return W!==null?W:p}function Hn(e){const t=Pt(),{name:r,disabled:n,control:o=t,shouldUnregister:s,defaultValue:i,exact:u=!0}=e,l=qr(o._names.array,r),h=S.useMemo(()=>v(o._formValues,r,v(o._defaultValues,r,i)),[o,r,i]),m=Yn({control:o,name:r,defaultValue:h,exact:u}),d=qn({control:o,name:r,exact:u}),g=S.useRef(e),p=S.useRef(null),Z=S.useRef(o.register(r,{...e.rules,value:m,...ue(e.disabled)?{disabled:e.disabled}:{}}));g.current=e;const A=S.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!v(d.errors,r)},isDirty:{enumerable:!0,get:()=>!!v(d.dirtyFields,r)},isTouched:{enumerable:!0,get:()=>!!v(d.touchedFields,r)},isValidating:{enumerable:!0,get:()=>!!v(d.validatingFields,r)},error:{enumerable:!0,get:()=>v(d.errors,r)}}),[d,r]),T=S.useCallback(O=>{const I=$t(O);return v(o._fields,r)||(Z.current=o.register(r,{...g.current.rules,value:I})),Z.current.onChange({target:{value:$t(O),name:r},type:ve.CHANGE})},[r,o]),F=S.useCallback(()=>Z.current.onBlur({target:{value:v(o._formValues,r),name:r},type:ve.BLUR}),[r,o._formValues]),z=S.useCallback(O=>{O&&(p.current={focus:()=>te(O.focus)&&O.focus(),select:()=>te(O.select)&&O.select(),setCustomValidity:V=>te(O.setCustomValidity)&&O.setCustomValidity(V),reportValidity:()=>te(O.reportValidity)&&O.reportValidity()});const I=v(o._fields,r);I&&I._f&&O&&(I._f.ref=p.current)},[o._fields,r]),W=S.useMemo(()=>({name:r,value:m,...ue(n)||d.disabled?{disabled:d.disabled||n}:{},onChange:T,onBlur:F,ref:z}),[r,n,d.disabled,T,F,z,m]);return S.useEffect(()=>{const O=o._options.shouldUnregister||s;o.register(r,{...g.current.rules,...ue(g.current.disabled)?{disabled:g.current.disabled}:{}});const I=(V,j)=>{const ne=v(o._fields,V);ne&&ne._f&&(ne._f.mount=j)};if(I(r,!0),O){const V=B(v(s?o._defaultValues:o._options.values||o._defaultValues,r,v(o._options.defaultValues,r,g.current.defaultValue)));x(o._defaultValues,r,V),R(v(o._formValues,r))&&x(o._formValues,r,V)}if(!l&&o.register(r),p.current){const V=v(o._fields,r);V&&V._f&&(V._f.ref=p.current)}return()=>{(l?O&&!o._state.action:O)?o.unregister(r):I(r,!1)}},[r,o,l,s]),S.useEffect(()=>{o._setDisabledField({disabled:n,name:r})},[n,r,o]),S.useMemo(()=>({field:W,formState:d,fieldState:A}),[W,d,A])}const Xn=e=>e.render(Hn(e)),xt=S.createContext(null);xt.displayName="HookFormContext";const Qn=()=>S.useContext(xt),eo=({children:e,watch:t,getValues:r,getFieldState:n,setError:o,clearErrors:s,setValue:i,setValues:u,trigger:l,formState:h,resetField:m,reset:d,handleSubmit:g,unregister:p,control:Z,register:A,setFocus:T,subscribe:F})=>{const z=S.useMemo(()=>({watch:t,getValues:r,getFieldState:n,setError:o,clearErrors:s,setValue:i,setValues:u,trigger:l,formState:h,resetField:m,reset:d,handleSubmit:g,unregister:p,control:Z,register:A,setFocus:T,subscribe:F}),[s,Z,h,n,r,g,A,d,m,o,T,i,u,F,l,p,t]);return S.createElement(xt.Provider,{value:z},S.createElement(Nt.Provider,{value:z.control},e))};var Ct=(e,t,r,n,o)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[n]:o||!0}}:{},en=e=>Array.isArray(e)?e.filter(Boolean):[],He=e=>Array.isArray(e)?e:[e],ar=()=>{let e=[];return{get observers(){return e},next:o=>{for(const s of e)s.next&&s.next(o)},subscribe:o=>(e.push(o),{unsubscribe:()=>{e=e.filter(s=>s!==o)}}),unsubscribe:()=>{e=[]}}};function tn(e,t){const r={};for(const n in e)if(e.hasOwnProperty(n)){const o=e[n],s=t[n];if(o&&M(o)&&s){const i=tn(o,s);M(i)&&(r[n]=i)}else e[n]&&(r[n]=s)}return r}var X=e=>M(e)&&!Object.keys(e).length,Rt=e=>e.type==="file",Xe=e=>{if(!ot)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},rn=e=>e.type==="select-multiple",jt=e=>e.type==="radio",to=e=>jt(e)||Me(e),bt=e=>Xe(e)&&e.isConnected;function ro(e,t){const r=t.slice(0,-1).length;let n=0;for(;n{for(const t in e)if(te(e[t]))return!0;return!1};function nn(e){return Array.isArray(e)||M(e)&&!oo(e)}function Zt(e,t={}){for(const r in e){const n=e[r];nn(n)?(t[r]=Array.isArray(n)?[]:{},Zt(n,t[r])):R(n)||(t[r]=!0)}return t}function St(e){if(e!==!1){if(e===!0)return!0;if(Array.isArray(e)){const t=e.map(r=>St(r));return t.some(r=>r!==void 0)?t:void 0}if(M(e)){const t={};for(const r in e){const n=St(e[r]);R(n)||(t[r]=n)}return Object.keys(t).length?t:void 0}}}function ze(e,t,r){r||(r=Zt(t));for(const n in e){const o=e[n];if(nn(o))R(t)||Et(r[n])?r[n]=Zt(o,Array.isArray(o)?[]:{}):ze(o,Q(t)?{}:t[n],r[n]);else{const s=t[n];r[n]=!ae(o,s)}}return St(r)||{}}const cr={value:!1,isValid:!1},lr={value:!0,isValid:!0};var on=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!R(e[0].attributes.value)?R(e[0].value)||e[0].value===""?lr:{value:e[0].value,isValid:!0}:lr:cr}return cr},sn=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:n})=>R(e)?e:t?e===""?NaN:e&&+e:r&&re(e)?new Date(e):n?n(e):e;const fr={isValid:!1,value:null};var un=e=>Array.isArray(e)?e.reduce((t,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:t,fr):fr;function dr(e){const t=e.ref;return Rt(t)?t.files:jt(t)?un(e.refs).value:rn(t)?[...t.selectedOptions].map(({value:r})=>r):Me(t)?on(e.refs).value:sn(R(t.value)?e.ref.value:t.value,e)}var so=(e,t,r,n)=>{const o={};for(const s of e){const i=v(t,s);i&&x(o,s,i._f)}return{criteriaMode:r,names:[...e],fields:o,shouldUseNativeValidation:n}},Qe=e=>e instanceof RegExp,xe=e=>R(e)?e:Qe(e)?e.source:M(e)?Qe(e.value)?e.value.source:e.value:e,hr=e=>({isOnSubmit:!e||e===me.onSubmit,isOnBlur:e===me.onBlur,isOnChange:e===me.onChange,isOnAll:e===me.all,isOnTouch:e===me.onTouched});const pr="AsyncFunction";var io=e=>!!e&&!!e.validate&&!!(te(e.validate)&&e.validate.constructor.name===pr||M(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===pr)),uo=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),wt=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(n=>e.startsWith(`${n}.`)));const Re=(e,t,r,n)=>{for(const o of r||Object.keys(e)){const s=v(e,o);if(s){const{_f:i,...u}=s;if(i){if(i.refs&&i.refs[0]&&t(i.refs[0],o)&&!n)return!0;if(i.ref&&t(i.ref,i.name)&&!n)return!0;if(Re(u,t))break}else if(M(u)&&Re(u,t))break}}};function mr(e,t,r){const n=v(e,r);if(n||Le(r))return{error:n,name:r};const o=r.split(".");for(;o.length;){const s=o.join("."),i=v(t,s),u=v(e,s);if(i&&!Array.isArray(i)&&r!==s)return{name:r};if(u&&u.type)return{name:s,error:u};if(u&&u.root&&u.root.type)return{name:`${s}.root`,error:u.root};o.pop()}return{name:r}}var ao=(e,t,r,n)=>{r(e);const{name:o,...s}=e;return X(s)||n&&Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(i=>t[i]===(!n||me.all))},co=(e,t,r)=>!e||!t||e===t||He(e).some(n=>n&&(r?n===t:n.startsWith(t)||t.startsWith(n))),lo=(e,t,r,n,o)=>o.isOnAll?!1:!r&&o.isOnTouch?!(t||e):(r?n.isOnBlur:o.isOnBlur)?!e:(r?n.isOnChange:o.isOnChange)?e:!0,fo=(e,t)=>!en(v(e,t)).length&&q(e,t),_r=(e,t,r)=>{const n=v(e,r),o=Array.isArray(n)?n:[];return x(o,Hr,t[r]),x(e,r,o),e};function gr(e,t,r="validate"){if(re(e)||Array.isArray(e)&&e.every(re)||ue(e)&&!e)return{type:r,message:re(e)?e:"",ref:t}}var Ie=e=>M(e)&&!Qe(e)?e:{value:e,message:""},yr=async(e,t,r,n,o,s)=>{const{ref:i,refs:u,required:l,maxLength:h,minLength:m,min:d,max:g,pattern:p,validate:Z,name:A,valueAsNumber:T,mount:F}=e._f,z=v(r,A);if(!F||t.has(A))return{};const W=u?u[0]:i,O=D=>{if(o&&W.reportValidity){const N=ue(D)?"":D||"";u?u.forEach(G=>G.setCustomValidity(N)):W.setCustomValidity(N),W.reportValidity()}},I={},V=jt(i),j=Me(i),ne=V||j,ge=(T||Rt(i))&&R(i.value)&&R(z)||Xe(i)&&i.value===""||z===""||Array.isArray(z)&&!z.length,ie=Ct.bind(null,A,n,I),Be=(D,N,G,J=pe.maxLength,ce=pe.minLength)=>{const ye=D?N:G;I[A]={type:D?J:ce,message:ye,ref:i,...ie(D?J:ce,ye)}};if(s?!Array.isArray(z)||!z.length:l&&(!ne&&(ge||Q(z))||ue(z)&&!z||j&&!on(u).isValid||V&&!un(u).isValid)){const{value:D,message:N}=re(l)?{value:!!l,message:l}:Ie(l);if(D&&(I[A]={type:pe.required,message:N,ref:W,...ie(pe.required,N)},!n))return O(N),I}if(!ge&&(!Q(d)||!Q(g))){let D,N;const G=Ie(g),J=Ie(d);if(!Q(z)&&!isNaN(z)){const ce=i.valueAsNumber||z&&+z;Q(G.value)||(D=ce>G.value),Q(J.value)||(N=cenew Date(new Date().toDateString()+" "+We),Se=i.type=="time",Ne=i.type=="week";re(G.value)&&z&&(D=Se?ye(z)>ye(G.value):Ne?z>G.value:ce>new Date(G.value)),re(J.value)&&z&&(N=Se?ye(z)+D.value,J=!Q(N.value)&&z.length<+N.value;if((G||J)&&(Be(G,D.message,N.message),!n))return O(I[A].message),I}if(p&&!ge&&re(z)){const{value:D,message:N}=Ie(p);if(Qe(D)&&!z.match(D)&&(I[A]={type:pe.pattern,message:N,ref:i,...ie(pe.pattern,N)},!n))return O(N),I}if(Z){if(te(Z)){const D=await Z(z,r),N=gr(D,W);if(N&&(I[A]={...N,...ie(pe.validate,N.message)},!n))return O(N.message),I}else if(M(Z)){let D={};for(const N in Z){if(!X(D)&&!n)break;const G=gr(await Z[N](z,r),W,N);G&&(D={...G,...ie(N,G.message)},O(G.message),n&&(I[A]=D))}if(!X(D)&&(I[A]={ref:W,...D},!n))return I}}return O(!0),I};const ho={mode:me.onSubmit,reValidateMode:me.onChange,shouldFocusError:!0},an={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function po(e={}){let t={...ho,...e},r={...B(an),isLoading:te(t.defaultValues),errors:t.errors||{},disabled:t.disabled||!1},n={},o=M(t.defaultValues)||M(t.values)?B(t.defaultValues||t.values)||{}:{},s=t.shouldUnregister?{}:B(o),i={action:!1,mount:!1,watch:!1,keepIsValid:!1},u={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},l,h=0;const m={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},d={...m};let g={...d};const p={array:ar(),state:ar()},Z=t.criteriaMode===me.all,A=a=>c=>{clearTimeout(h),h=setTimeout(a,c)},T=async a=>{if(!i.keepIsValid&&!t.disabled&&(d.isValid||g.isValid||a)){let c;t.resolver?(c=X((await ie()).errors),F()):c=await N({fields:n,onlyCheckValid:!0,eventType:ve.VALID}),c!==r.isValid&&p.state.next({isValid:c})}},F=(a,c)=>{!t.disabled&&(d.isValidating||d.validatingFields||g.isValidating||g.validatingFields)&&((a||Array.from(u.mount)).forEach(f=>{f&&(c?x(r.validatingFields,f,c):q(r.validatingFields,f))}),p.state.next({validatingFields:r.validatingFields,isValidating:!X(r.validatingFields)}))},z=()=>{r.dirtyFields=ze(o,s)},W=(a,c=[],f,y,w=!0,k=!0)=>{if(y&&f&&!t.disabled){if(i.action=!0,k&&Array.isArray(v(n,a))){const b=f(v(n,a),y.argA,y.argB);w&&x(n,a,b)}if(k&&Array.isArray(v(r.errors,a))){const b=f(v(r.errors,a),y.argA,y.argB);w&&x(r.errors,a,b),fo(r.errors,a)}if((d.touchedFields||g.touchedFields)&&k&&Array.isArray(v(r.touchedFields,a))){const b=f(v(r.touchedFields,a),y.argA,y.argB);w&&x(r.touchedFields,a,b)}(d.dirtyFields||g.dirtyFields)&&z(),p.state.next({name:a,isDirty:J(a,c),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else x(s,a,c)},O=(a,c)=>{x(r.errors,a,c),r.errors={...r.errors},p.state.next({errors:r.errors})},I=a=>{r.errors=a,p.state.next({errors:r.errors,isValid:!1})},V=a=>{const c=Le(a)?[a]:st(a);let f=s,y=o;for(let w=0;w{const w=v(n,a);if(w){if(V(a))return;const k=R(v(s,a)),b=v(s,a,R(f)?v(o,a):f);R(b)||y&&y.defaultChecked||c?x(s,a,c?b:dr(w._f)):Se(a,b),i.mount&&!i.action&&(T(),k&&r.isDirty&&(d.isDirty||g.isDirty)&&(J()||(r.isDirty=!1,p.state.next({...r}))),e.shouldUnregister&&k&&!R(v(s,a))&&wt(a,u)&&(i.watch=!0))}},ne=(a,c,f,y,w)=>{let k=!1,b=!1;const $={name:a};if(!t.disabled){if(!f||y){(d.isDirty||g.isDirty)&&(b=r.isDirty,r.isDirty=$.isDirty=J(),k=b!==$.isDirty);const P=ae(v(o,a),c);b=!!v(r.dirtyFields,a),P!==r.isDirty?r.dirtyFields=ze(o,s):P?q(r.dirtyFields,a):x(r.dirtyFields,a,!0),$.dirtyFields=r.dirtyFields,k=k||(d.dirtyFields||g.dirtyFields)&&b!==!P}if(f){const P=v(r.touchedFields,a);P||(x(r.touchedFields,a,f),$.touchedFields=r.touchedFields,k=k||(d.touchedFields||g.touchedFields)&&P!==f)}k&&w&&p.state.next($)}return k?$:{}},ge=(a,c,f,y)=>{const w=v(r.errors,a),k=(d.isValid||g.isValid)&&ue(c)&&r.isValid!==c;if(t.delayError&&f?(l=A(()=>O(a,f)),l(t.delayError)):(clearTimeout(h),l=null,f?x(r.errors,a,f):q(r.errors,a),r.errors={...r.errors}),(f?!ae(w,f):w)||!X(y)||k){const b={...y,...k&&ue(c)?{isValid:c}:{},errors:r.errors,name:a};r={...r,...b},p.state.next(b)}},ie=async a=>(F(a,!0),await t.resolver(s,t.context,so(a||u.mount,n,t.criteriaMode,t.shouldUseNativeValidation))),Be=async a=>{const{errors:c}=await ie(a);if(F(a),a){for(const f of a){const y=v(c,f);y?u.array.has(f)&&M(y)&&!Object.keys(y).some(w=>!Number.isNaN(Number(w)))?_r(r.errors,{[f]:y},f):x(r.errors,f,y):q(r.errors,f)}r.errors={...r.errors}}else r.errors=c;return c},D=async({name:a,eventType:c})=>{if(e.validate){const f=await e.validate({formValues:s,formState:r,name:a,eventType:c});if(M(f))for(const y in f){const w=f[y];w&&Ge(`${vt}.${y}`,{message:re(w.message)?w.message:"",type:w.type||pe.validate})}else re(f)||!f?Ge(vt,{message:f||"",type:pe.validate}):Xt(vt);return f}return!0},N=async({fields:a,onlyCheckValid:c,name:f,eventType:y,context:w={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(w.runRootValidation=!0,!await D({name:f,eventType:y})&&(w.valid=!1,c)))return w.valid;for(const k in a){const b=a[k];if(b){const{_f:$,...P}=b;if($){const K=u.array.has($.name),le=b._f&&io(b._f),he=d.validatingFields||d.isValidating||g.validatingFields||g.isValidating;le&&he&&F([$.name],!0);const ke=await yr(b,u.disabled,s,Z,t.shouldUseNativeValidation&&!c,K);if(le&&he&&F([$.name]),ke[$.name]&&(w.valid=!1,c)||(!c&&(v(ke,$.name)?K?_r(r.errors,ke,$.name):x(r.errors,$.name,ke[$.name]):q(r.errors,$.name)),e.shouldUseNativeValidation&&ke[$.name]))break}!X(P)&&await N({context:w,onlyCheckValid:c,fields:P,name:k,eventType:y})}}return w.valid},G=()=>{for(const a of u.unMount){const c=v(n,a);c&&(c._f.refs?c._f.refs.every(f=>!bt(f)):!bt(c._f.ref))&&mt(a)}u.unMount=new Set},J=(a,c)=>!t.disabled&&(a&&c&&x(s,a,c),!ae(Yt(),o)),ce=(a,c,f)=>Ot(a,u,{...i.mount?s:R(c)?o:re(a)?{[a]:c}:c},f,c),ye=a=>en(v(i.mount?s:o,a,t.shouldUnregister?v(o,a,[]):[])),Se=(a,c,f={},y=!1)=>{const w=v(n,a);let k=c;if(w){const b=w._f;b&&(!b.disabled&&x(s,a,sn(c,b)),k=Xe(b.ref)&&Q(c)?"":c,rn(b.ref)?[...b.ref.options].forEach($=>$.selected=k.includes($.value)):b.refs?Me(b.ref)?b.refs.forEach($=>{(!$.defaultChecked||!$.disabled)&&(Array.isArray(k)?$.checked=!!k.find(P=>P===$.value):$.checked=k===$.value||!!k)}):b.refs.forEach($=>$.checked=$.value===k):Rt(b.ref)?b.ref.value="":(b.ref.value=k,b.ref.type||p.state.next({name:a,values:y?s:B(s)})))}(f.shouldDirty||f.shouldTouch)&&ne(a,k,f.shouldTouch,f.shouldDirty,!0),f.shouldValidate&&pt(a)},Ne=(a,c,f,y=!1)=>{for(const w in c){if(!c.hasOwnProperty(w))return;const k=c[w],b=a+"."+w,$=v(n,b);(u.array.has(a)||M(k)||$&&!$._f)&&!$e(k)?Ne(b,k,f,y):Se(b,k,f,y)}},We=(a,c,f,y)=>{const w=v(n,a),k=u.array.has(a),b=y?c:B(c),$=v(s,a),P=ae($,b);if(P||x(s,a,b),k)p.array.next({name:a,values:y?s:B(s)}),(d.isDirty||d.dirtyFields||g.isDirty||g.dirtyFields)&&f.shouldDirty&&(z(),p.state.next({name:a,dirtyFields:r.dirtyFields,isDirty:J(a,b)}));else{const K=Array.isArray(b)&&!b.length||X(b);!w||w._f||Q(b)||K?Se(a,b,f,y):Ne(a,b,f,y)}if(!P){const K=wt(a,u),le=y?s:B(s);p.state.next({...K&&r,name:i.mount||K?a:void 0,values:le})}},Pe=(a,c,f={})=>We(a,c,f,!1),Cn=(a,c={})=>{const f=te(a)?a(s):a;if(!ae(s,f)){s={...s,...f};for(const y of u.mount)We(y,v(f,y),c,!0);p.state.next({...r,name:void 0,type:void 0,values:s}),c.shouldValidate&&T()}},Kt=async a=>{i.mount=!0;const c=a.target;let f=c.name,y=!0;const w=v(n,f),k=P=>{y=Number.isNaN(P)||$e(P)&&isNaN(P.getTime())||ae(P,v(s,f,P))},b=hr(t.mode),$=hr(t.reValidateMode);if(w){let P,K;const le=c.type?dr(w._f):$t(a),he=a.type===ve.BLUR||a.type===ve.FOCUS_OUT,ke=!uo(w._f)&&!e.validate&&!t.resolver&&!v(r.errors,f)&&!w._f.deps||lo(he,v(r.touchedFields,f),r.isSubmitted,$,b),yt=wt(f,u,he);x(s,f,le),he?(!c||!c.readOnly)&&(w._f.onBlur&&w._f.onBlur(a),l&&l(0)):w._f.onChange&&w._f.onChange(a);const De=ne(f,le,he),Bn=!X(De)||yt;if(!he&&p.state.next({name:f,type:a.type,values:B(s)}),ke)return(d.isValid||g.isValid)&&(t.mode==="onBlur"?he&&T():he||T()),Bn&&p.state.next({name:f,...yt?{}:De});if(!t.resolver&&e.validate&&await D({name:f,eventType:a.type}),!he&&yt&&p.state.next({...r}),t.resolver){const{errors:sr}=await ie([f]);if(F([f]),k(le),!y){!X(De)&&p.state.next(De);return}const Wn=mr(r.errors,n,f),ir=mr(sr,n,Wn.name||f);P=ir.error,f=ir.name,K=X(sr)}else F([f],!0),P=(await yr(w,u.disabled,s,Z,t.shouldUseNativeValidation))[f],F([f]),k(le),y&&(P?K=!1:(d.isValid||g.isValid)&&(K=await N({fields:n,onlyCheckValid:!0,name:f,eventType:a.type})));y&&(w._f.deps&&(!Array.isArray(w._f.deps)||w._f.deps.length>0)&&pt(w._f.deps),ge(f,K,P,De))}},qt=(a,c)=>{if(v(r.errors,c)&&a.focus)return a.focus(),1},pt=async(a,c={})=>{let f,y;const w=He(a);if(t.resolver){const k=await Be(R(a)?a:w);f=X(k),y=a?!w.some(b=>v(k,b)):f}else a?(y=(await Promise.all(w.map(async k=>{const b=v(n,k);return await N({fields:b&&b._f?{[k]:b}:b,eventType:ve.TRIGGER})}))).every(Boolean),!(!y&&!r.isValid)&&T()):y=f=await N({fields:n,name:a,eventType:ve.TRIGGER});return p.state.next({...!re(a)||(d.isValid||g.isValid)&&f!==r.isValid?{}:{name:a},...t.resolver||!a?{isValid:f}:{},errors:r.errors}),c.shouldFocus&&!y&&Re(n,qt,a?w:u.mount),y},Yt=(a,c)=>{let f={...i.mount?s:o};return c&&(f=tn(c.dirtyFields?r.dirtyFields:r.touchedFields,f)),R(a)?f:re(a)?v(f,a):a.map(y=>v(f,y))},Ht=(a,c)=>({invalid:!!v((c||r).errors,a),isDirty:!!v((c||r).dirtyFields,a),error:v((c||r).errors,a),isValidating:!!v(r.validatingFields,a),isTouched:!!v((c||r).touchedFields,a)}),Xt=a=>{const c=a?He(a):void 0;c==null||c.forEach(f=>q(r.errors,f)),c?c.forEach(f=>{p.state.next({name:f,errors:r.errors})}):p.state.next({errors:{}})},Ge=(a,c,f)=>{const y=(v(n,a,{_f:{}})._f||{}).ref,w=v(r.errors,a)||{},{ref:k,message:b,type:$,...P}=w;x(r.errors,a,{...P,...c,ref:y}),p.state.next({name:a,errors:r.errors,isValid:!1}),f&&f.shouldFocus&&y&&y.focus&&y.focus()},Rn=(a,c)=>te(a)?p.state.subscribe({next:f=>"values"in f&&a(f.values||ce(void 0,c),f)}):ce(a,c,!0),Qt=a=>p.state.subscribe({next:c=>{if(co(a.name,c.name,a.exact)&&ao(c,a.formState||d,Jn,a.reRenderRoot)){const f={...s};a.callback({values:f,...r,...c,defaultValues:o})}}}).unsubscribe,jn=a=>(i.mount=!0,g={...g,...a.formState},Qt({...a,formState:{...m,...a.formState}})),mt=(a,c={})=>{for(const f of a?He(a):u.mount)u.mount.delete(f),u.array.delete(f),c.keepValue||(q(n,f),q(s,f)),!c.keepError&&q(r.errors,f),!c.keepDirty&&q(r.dirtyFields,f),!c.keepTouched&&q(r.touchedFields,f),!c.keepIsValidating&&q(r.validatingFields,f),!t.shouldUnregister&&!c.keepDefaultValue&&q(o,f);p.state.next({values:B(s)}),p.state.next({...r,...c.keepDirty?{isDirty:J()}:{}}),!c.keepIsValid&&T()},er=({disabled:a,name:c})=>{if(ue(a)&&i.mount||a||u.disabled.has(c)){const w=u.disabled.has(c)!==!!a;a?u.disabled.add(c):u.disabled.delete(c),w&&i.mount&&!i.action&&T()}},_t=(a,c={})=>{let f=v(n,a);const y=ue(c.disabled)||ue(t.disabled),w=!u.registerName.has(a)&&f&&f._f&&!f._f.mount;return x(n,a,{...f||{},_f:{...f&&f._f?f._f:{ref:{name:a}},name:a,mount:!0,...c}}),u.mount.add(a),f&&!w?er({disabled:ue(c.disabled)?c.disabled:t.disabled,name:a}):j(a,!0,c.value),{...y?{disabled:c.disabled||t.disabled}:{},...t.progressive?{required:!!c.required,min:xe(c.min),max:xe(c.max),minLength:xe(c.minLength),maxLength:xe(c.maxLength),pattern:xe(c.pattern)}:{},name:a,onChange:Kt,onBlur:Kt,ref:k=>{if(k){u.registerName.add(a),_t(a,c),u.registerName.delete(a),f=v(n,a);const b=R(k.value)&&k.querySelectorAll&&k.querySelectorAll("input,select,textarea")[0]||k,$=to(b),P=f._f.refs||[];if($?P.find(K=>K===b):b===f._f.ref)return;x(n,a,{_f:{...f._f,...$?{refs:[...P.filter(bt),b,...Array.isArray(v(o,a))?[{}]:[]],ref:{type:b.type,name:a}}:{ref:b}}}),j(a,!1,void 0,b)}else f=v(n,a,{}),f._f&&(f._f.mount=!1),(t.shouldUnregister||c.shouldUnregister)&&!(qr(u.array,a)&&i.action)&&u.unMount.add(a)}}},gt=()=>t.shouldFocusError&&!t.shouldUseNativeValidation&&Re(n,qt,u.mount),Un=a=>{ue(a)&&(p.state.next({disabled:a}),Re(n,(c,f)=>{const y=v(n,f);y&&(c.disabled=y._f.disabled||a,Array.isArray(y._f.refs)&&y._f.refs.forEach(w=>{w.disabled=y._f.disabled||a}))},0,!1))},tr=(a,c)=>async f=>{let y;f&&(f.preventDefault&&f.preventDefault(),f.persist&&f.persist());let w=B(s);if(p.state.next({isSubmitting:!0}),t.resolver){const{errors:k,values:b}=await ie();F(),r.errors=k,w=B(b)}else await N({fields:n,eventType:ve.SUBMIT});if(u.disabled.size)for(const k of u.disabled)q(w,k);if(q(r.errors,Hr),X(r.errors)){p.state.next({errors:{}});try{await a(w,f)}catch(k){y=k}}else c&&await c({...r.errors},f),gt(),setTimeout(gt);if(p.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:X(r.errors)&&!y,submitCount:r.submitCount+1,errors:r.errors}),y)throw y},Mn=(a,c={})=>{v(n,a)&&(R(c.defaultValue)?Pe(a,B(v(o,a))):(Pe(a,c.defaultValue),x(o,a,B(c.defaultValue))),c.keepTouched||q(r.touchedFields,a),c.keepDirty||(q(r.dirtyFields,a),r.isDirty=c.defaultValue?J(a,B(v(o,a))):J()),c.keepError||(q(r.errors,a),d.isValid&&T()),p.state.next({...r}))},rr=(a,c={})=>{const f=a?B(a):o,y=B(f),w=X(a),k=y;if(c.keepDefaultValues||(o=f),!c.keepValues){if(c.keepDirtyValues){const b=new Set([...u.mount,...Object.keys(ze(o,s))]);for(const $ of Array.from(b)){const P=v(r.dirtyFields,$),K=v(s,$),le=v(k,$);P&&!R(K)?x(k,$,K):!P&&!R(le)&&Pe($,le)}}else{if(ot&&R(a))for(const b of u.mount){const $=v(n,b);if($&&$._f){const P=Array.isArray($._f.refs)?$._f.refs[0]:$._f.ref;if(Xe(P)){const K=P.closest("form");if(K){K.reset();break}}}}if(c.keepFieldsRef)for(const b of u.mount)Pe(b,v(k,b));else n={}}if(t.shouldUnregister){if(s=c.keepDefaultValues?B(o):{},c.keepFieldsRef)for(const b of u.mount)x(s,b,v(k,b))}else s=B(k);p.array.next({values:{...k}}),p.state.next({values:{...k}})}u={mount:c.keepDirtyValues?u.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},i.mount=!d.isValid||!!c.keepIsValid||!!c.keepDirtyValues||!t.shouldUnregister&&!X(k),i.watch=!!t.shouldUnregister,i.keepIsValid=!!c.keepIsValid,i.action=!1,c.keepErrors||(r.errors={}),p.state.next({submitCount:c.keepSubmitCount?r.submitCount:0,isDirty:w?!1:c.keepDirty?r.isDirty:c.keepValues?J():!!(c.keepDefaultValues&&!ae(a,o)),isSubmitted:c.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:w?{}:c.keepDirtyValues?c.keepDefaultValues&&s?ze(o,s):r.dirtyFields:c.keepDefaultValues&&a?ze(o,a):c.keepDirty?r.dirtyFields:{},touchedFields:c.keepTouched?r.touchedFields:{},errors:c.keepErrors?r.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:o})},nr=(a,c)=>rr(te(a)?a(s):a,{...t.resetOptions,...c}),Ln=(a,c={})=>{const f=v(n,a),y=f&&f._f;if(y){const w=y.refs?y.refs[0]:y.ref;w.focus&&setTimeout(()=>{w.focus(),c.shouldSelect&&te(w.select)&&w.select()})}},Jn=a=>{r={...r,...a}},or={control:{register:_t,unregister:mt,getFieldState:Ht,handleSubmit:tr,setError:Ge,_subscribe:Qt,_runSchema:ie,_updateIsValidating:F,_focusError:gt,_getWatch:ce,_getDirty:J,_setValid:T,_setFieldArray:W,_setDisabledField:er,_setErrors:I,_getFieldArray:ye,_reset:rr,_resetDefaultValues:()=>te(t.defaultValues)&&t.defaultValues().then(a=>{nr(a,t.resetOptions),p.state.next({isLoading:!1})}),_removeUnmounted:G,_disableForm:Un,_subjects:p,_proxyFormState:d,get _fields(){return n},get _formValues(){return s},get _state(){return i},set _state(a){i=a},get _defaultValues(){return o},get _names(){return u},set _names(a){u=a},get _formState(){return r},get _options(){return t},set _options(a){t={...t,...a}}},subscribe:jn,trigger:pt,register:_t,handleSubmit:tr,watch:Rn,setValue:Pe,setValues:Cn,getValues:Yt,reset:nr,resetField:Mn,resetDefaultValues:(a,c={})=>{if(o=B(a),!c.keepDirty){const f=ze(o,s);r.dirtyFields=f,r.isDirty=!X(f)}c.keepIsValid||T(),p.state.next({...r,defaultValues:o})},clearErrors:Xt,unregister:mt,setError:Ge,setFocus:Ln,getFieldState:Ht};return{...or,formControl:or}}function ac(e={}){const t=S.useRef(void 0),r=S.useRef(void 0),n=S.useRef(e.formControl),[o,s]=S.useState(()=>({...B(an),isLoading:te(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:te(e.defaultValues)?void 0:e.defaultValues}));if(!t.current||e.formControl&&n.current!==e.formControl)if(n.current=e.formControl,e.formControl)t.current={...e.formControl,formState:o},e.defaultValues&&!te(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:u,...l}=po(e);t.current={...l,formState:o}}const i=t.current.control;return i._options=e,Dt(()=>{const u=i._subscribe({formState:i._proxyFormState,callback:()=>s({...i._formState,defaultValues:i._defaultValues}),reRenderRoot:!0});return s(l=>({...l,isReady:!0})),i._formState.isReady=!0,u},[i]),S.useEffect(()=>i._disableForm(e.disabled),[i,e.disabled]),S.useEffect(()=>{e.mode&&(i._options.mode=e.mode),e.reValidateMode&&(i._options.reValidateMode=e.reValidateMode)},[i,e.mode,e.reValidateMode]),S.useEffect(()=>{e.errors&&(i._setErrors(e.errors),i._focusError())},[i,e.errors]),S.useEffect(()=>{e.shouldUnregister&&i._subjects.state.next({values:i._getWatch()})},[i,e.shouldUnregister]),S.useEffect(()=>{if(i._proxyFormState.isDirty){const u=i._getDirty();u!==o.isDirty&&i._subjects.state.next({isDirty:u})}},[i,o.isDirty]),S.useEffect(()=>{var u;e.values&&!ae(e.values,r.current)?(i._reset(e.values,{keepFieldsRef:!0,...i._options.resetOptions}),!((u=i._options.resetOptions)===null||u===void 0)&&u.keepIsValid||i._setValid(),r.current=e.values,s(l=>({...l}))):i._resetDefaultValues()},[i,e.values]),S.useEffect(()=>{i._state.mount||(i._setValid(),i._state.mount=!0),i._state.watch&&(i._state.watch=!1,i._subjects.state.next({...i._formState})),i._removeUnmounted()}),t.current.formState=S.useMemo(()=>Qr(o,i),[i,o]),t.current}const vr=(e,t,r)=>{if(e&&"reportValidity"in e){const n=v(r,t);e.setCustomValidity(n&&n.message||""),e.reportValidity()}},It=(e,t)=>{for(const r in t.fields){const n=t.fields[r];n&&n.ref&&"reportValidity"in n.ref?vr(n.ref,r,e):n&&n.refs&&n.refs.forEach(o=>vr(o,r,e))}},br=(e,t)=>{t.shouldUseNativeValidation&&It(e,t);const r={};for(const n in e){const o=v(t.fields,n),s=Object.assign(e[n]||{},{ref:o&&o.ref});if(mo(t.names||Object.keys(e),n)){const i=Object.assign({},v(r,n));x(i,"root",s),x(r,n,i)}else x(r,n,s)}return r},mo=(e,t)=>{const r=wr(t).replace(/[.*+?^${}()|\\]/g,"\\$&");return e.some(n=>wr(n).match(`^${r}\\.\\d+`))};function wr(e){return e.replace(/[\[\]]/g,"")}var kr;function _(e,t,r){function n(u,l){if(u._zod||Object.defineProperty(u,"_zod",{value:{def:l,constr:i,traits:new Set},enumerable:!1}),u._zod.traits.has(e))return;u._zod.traits.add(e),t(u,l);const h=i.prototype,m=Object.keys(h);for(let d=0;d{var l,h;return r!=null&&r.Parent&&u instanceof r.Parent?!0:(h=(l=u==null?void 0:u._zod)==null?void 0:l.traits)==null?void 0:h.has(e)}}),Object.defineProperty(i,"name",{value:e}),i}class Fe extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class cn extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}(kr=globalThis).__zod_globalConfig??(kr.__zod_globalConfig={});const Ut=globalThis.__zod_globalConfig;function Oe(e){return Ut}function ln(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function At(e,t){return typeof t=="bigint"?t.toString():t}function Mt(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Lt(e){return e==null}function Jt(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function _o(e,t){const r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n){};function et(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const yo=Mt(()=>{var e;if(Ut.jitless||typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function je(e){if(et(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(et(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function dn(e){return je(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const vo=new Set(["string","number","symbol"]);function it(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function we(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r!=null&&r.parent)&&(n._zod.parent=e),n}function E(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function bo(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const wo={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function ko(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const s=be(e._zod.def,{get shape(){const i={};for(const u in t){if(!(u in r.shape))throw new Error(`Unrecognized key: "${u}"`);t[u]&&(i[u]=r.shape[u])}return Ze(this,"shape",i),i},checks:[]});return we(e,s)}function zo(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const s=be(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const u in t){if(!(u in r.shape))throw new Error(`Unrecognized key: "${u}"`);t[u]&&delete i[u]}return Ze(this,"shape",i),i},checks:[]});return we(e,s)}function $o(e,t){if(!je(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const s=e._zod.def.shape;for(const i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=be(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return Ze(this,"shape",s),s}});return we(e,o)}function Oo(e,t){if(!je(t))throw new Error("Invalid input to safeExtend: expected a plain object");const r=be(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return Ze(this,"shape",n),n}});return we(e,r)}function Eo(e,t){var n;if((n=e._zod.def.checks)!=null&&n.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const r=be(e._zod.def,{get shape(){const o={...e._zod.def.shape,...t._zod.def.shape};return Ze(this,"shape",o),o},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return we(e,r)}function Zo(e,t,r){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const i=be(t._zod.def,{get shape(){const u=t._zod.def.shape,l={...u};if(r)for(const h in r){if(!(h in u))throw new Error(`Unrecognized key: "${h}"`);r[h]&&(l[h]=e?new e({type:"optional",innerType:u[h]}):u[h])}else for(const h in u)l[h]=e?new e({type:"optional",innerType:u[h]}):u[h];return Ze(this,"shape",l),l},checks:[]});return we(t,i)}function So(e,t,r){const n=be(t._zod.def,{get shape(){const o=t._zod.def.shape,s={...o};if(r)for(const i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(const i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return Ze(this,"shape",s),s}});return we(t,n)}function Ae(e,t=0){var r;if(e.aborted===!0)return!0;for(let n=t;n{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Ke(e){return typeof e=="string"?e:e==null?void 0:e.message}function Ee(e,t,r){var l,h,m,d,g,p;const n=e.message?e.message:Ke((m=(h=(l=e.inst)==null?void 0:l._zod.def)==null?void 0:h.error)==null?void 0:m.call(h,e))??Ke((d=t==null?void 0:t.error)==null?void 0:d.call(t,e))??Ke((g=r.customError)==null?void 0:g.call(r,e))??Ke((p=r.localeError)==null?void 0:p.call(r,e))??"Invalid input",{inst:o,continue:s,input:i,...u}=e;return u.path??(u.path=[]),u.message=n,t!=null&&t.reportInput&&(u.input=i),u}function Bt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Ue(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}const pn=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,At,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Wt=_("$ZodError",pn),ut=_("$ZodError",pn,{Parent:Error});function Ao(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function Fo(e,t=r=>r.message){const r={_errors:[]},n=(o,s=[])=>{for(const i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(u=>n({issues:u},[...s,...i.path]));else if(i.code==="invalid_key")n({issues:i.issues},[...s,...i.path]);else if(i.code==="invalid_element")n({issues:i.issues},[...s,...i.path]);else{const u=[...s,...i.path];if(u.length===0)r._errors.push(t(i));else{let l=r,h=0;for(;h(t,r,n,o)=>{const s=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Fe;if(i.issues.length){const u=new((o==null?void 0:o.Err)??e)(i.issues.map(l=>Ee(l,s,Oe())));throw fn(u,o==null?void 0:o.callee),u}return i.value},Vo=at(ut),ct=e=>async(t,r,n,o)=>{const s=n?{...n,async:!0}:{async:!0};let i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){const u=new((o==null?void 0:o.Err)??e)(i.issues.map(l=>Ee(l,s,Oe())));throw fn(u,o==null?void 0:o.callee),u}return i.value},To=ct(ut),lt=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Fe;return s.issues.length?{success:!1,error:new(e??Wt)(s.issues.map(i=>Ee(i,o,Oe())))}:{success:!0,data:s.value}},No=lt(ut),ft=e=>async(t,r,n)=>{const o=n?{...n,async:!0}:{async:!0};let s=t._zod.run({value:r,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>Ee(i,o,Oe())))}:{success:!0,data:s.value}},Po=ft(ut),Do=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return at(e)(t,r,o)},xo=e=>(t,r,n)=>at(e)(t,r,n),Co=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ct(e)(t,r,o)},Ro=e=>async(t,r,n)=>ct(e)(t,r,n),jo=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return lt(e)(t,r,o)},Uo=e=>(t,r,n)=>lt(e)(t,r,n),Mo=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ft(e)(t,r,o)},Lo=e=>async(t,r,n)=>ft(e)(t,r,n),Jo=/^[cC][0-9a-z]{6,}$/,Bo=/^[0-9a-z]+$/,Wo=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Go=/^[0-9a-vA-V]{20}$/,Ko=/^[A-Za-z0-9]{27}$/,qo=/^[a-zA-Z0-9_-]{21}$/,Yo=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ho=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Or=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Xo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Qo="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function es(){return new RegExp(Qo,"u")}const ts=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,rs=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,ns=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,os=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ss=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,mn=/^[A-Za-z0-9_-]*$/,is=/^https?$/,us=/^\+[1-9]\d{6,14}$/,_n="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",as=new RegExp(`^${_n}$`);function gn(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function cs(e){return new RegExp(`^${gn(e)}$`)}function ls(e){const t=gn({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${_n}T(?:${n})$`)}const fs=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},ds=/^-?\d+$/,hs=/^-?\d+(?:\.\d+)?$/,ps=/^[^A-Z]*$/,ms=/^[^a-z]*$/,se=_("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),yn={number:"number",bigint:"bigint",object:"date"},vn=_("$ZodCheckLessThan",(e,t)=>{se.init(e,t);const r=yn[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?n.value<=t.value:n.value{se.init(e,t);const r=yn[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),_s=_("$ZodCheckMultipleOf",(e,t)=>{se.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):_o(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),gs=_("$ZodCheckNumberFormat",(e,t)=>{var i;se.init(e,t),t.format=t.format||"float64";const r=(i=t.format)==null?void 0:i.includes("int"),n=r?"int":"number",[o,s]=wo[t.format];e._zod.onattach.push(u=>{const l=u._zod.bag;l.format=t.format,l.minimum=o,l.maximum=s,r&&(l.pattern=ds)}),e._zod.check=u=>{const l=u.value;if(r){if(!Number.isInteger(l)){u.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?u.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):u.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}ls&&u.issues.push({origin:"number",input:l,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),ys=_("$ZodCheckMaxLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Lt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const o=n.value;if(o.length<=t.maximum)return;const i=Bt(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),vs=_("$ZodCheckMinLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Lt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=Bt(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),bs=_("$ZodCheckLengthEquals",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Lt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,s=o.length;if(s===t.length)return;const i=Bt(o),u=s>t.length;n.issues.push({origin:i,...u?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),dt=_("$ZodCheckStringFormat",(e,t)=>{var r,n;se.init(e,t),e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),ws=_("$ZodCheckRegex",(e,t)=>{dt.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ks=_("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ps),dt.init(e,t)}),zs=_("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ms),dt.init(e,t)}),$s=_("$ZodCheckIncludes",(e,t)=>{se.init(e,t);const r=it(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Os=_("$ZodCheckStartsWith",(e,t)=>{se.init(e,t);const r=new RegExp(`^${it(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Es=_("$ZodCheckEndsWith",(e,t)=>{se.init(e,t);const r=new RegExp(`.*${it(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Zs=_("$ZodCheckOverwrite",(e,t)=>{se.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});class Ss{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(`
+import{k as S,r as me,j as ye}from"./react-vendor-CFzzFOsg.js";import{a6 as Gr,r as Gn}from"./ui-vendor-BLDO93FK.js";import{c as Ue,d as Kn}from"./index-DurEdRMk.js";var Me=e=>e.type==="checkbox",$e=e=>e instanceof Date,Q=e=>e==null;const Kr=e=>typeof e=="object";var M=e=>!Q(e)&&!Array.isArray(e)&&Kr(e)&&!$e(e),$t=e=>M(e)&&e.target?Me(e.target)?e.target.checked:e.target.value:e,qr=(e,t)=>t.split(".").some((r,n,o)=>!isNaN(Number(r))&&e.has(o.slice(0,n).join("."))),Yr=e=>{const t=e.constructor&&e.constructor.prototype;return M(t)&&t.hasOwnProperty("isPrototypeOf")},ot=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function B(e){if(e instanceof Date)return new Date(e);const t=typeof FileList<"u"&&e instanceof FileList;if(ot&&(e instanceof Blob||t))return e;const r=Array.isArray(e);if(!r&&!(M(e)&&Yr(e)))return e;const n=r?[]:Object.create(Object.getPrototypeOf(e));for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=B(e[o]));return n}const ve={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change",SUBMIT:"submit",TRIGGER:"trigger",VALID:"valid"},pe={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},he={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},vt="form",Hr="root",Xr=["__proto__","constructor","prototype"];var Le=e=>/^\w*$/.test(e),R=e=>e===void 0,st=e=>e.split(/[.[\]'"]/g).filter(Boolean),v=(e,t,r)=>{if(!t||!M(e))return r;const n=Le(t)?[t]:st(t);if(n.some(s=>Xr.includes(s)))return r;const o=n.reduce((s,i)=>Q(s)?void 0:s[i],e);return R(o)||o===e?R(e[t])?r:e[t]:o},ue=e=>typeof e=="boolean",te=e=>typeof e=="function",C=(e,t,r)=>{let n=-1;const o=Le(t)?[t]:st(t),s=o.length,i=s-1;for(;++nS.useContext(Nt);var Qr=(e,t,r,n=!0)=>{const o={};for(const s in e)Object.defineProperty(o,s,{get:()=>{const i=s;return t._proxyFormState[i]!==pe.all&&(t._proxyFormState[i]=!n||pe.all),r&&(r[i]=!0),e[i]}});return o};const Dt=ot?S.useLayoutEffect:S.useEffect;function qn(e){const t=Pt(),{control:r=t,disabled:n,name:o,exact:s}=e||{},[i,u]=S.useState(()=>({...r._formState,defaultValues:r._defaultValues})),l=S.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Dt(()=>r._subscribe({name:o,formState:l.current,exact:s,callback:h=>{!n&&u({...r._formState,...h,defaultValues:r._defaultValues})}}),[o,n,s]),S.useEffect(()=>{l.current.isValid&&r._setValid(!0)},[r]),S.useMemo(()=>Qr(i,r,l.current,!1),[i,r])}var re=e=>typeof e=="string",Ot=(e,t,r,n,o)=>re(e)?(n&&t.watch.add(e),v(r,e,o)):Array.isArray(e)?e.map(s=>(n&&t.watch.add(s),v(r,s))):(n&&(t.watchAll=!0),r),Et=e=>Q(e)||!Kr(e);const ur=(e,t)=>t.length===0&&!Array.isArray(e)&&!Yr(e);function ae(e,t,r=new WeakMap){if(e===t)return!0;if(Et(e)||Et(t))return Object.is(e,t);if($e(e)&&$e(t))return Object.is(e.getTime(),t.getTime());const n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;if(ur(e,n)||ur(t,o))return Object.is(e,t);const s=r.get(e);if(s&&s.has(t))return!0;s?s.add(t):r.set(e,new WeakSet([t]));for(const i of n){const u=e[i];if(!(i in t))return!1;if(i!=="ref"){const l=t[i];if($e(u)&&$e(l)||(M(u)||Array.isArray(u))&&(M(l)||Array.isArray(l))?!ae(u,l,r):!Object.is(u,l))return!1}}return!0}function Yn(e){const t=Pt(),{control:r=t,name:n,defaultValue:o,disabled:s,exact:i,compute:u}=e||{},l=S.useRef(o),h=S.useRef(u),m=S.useRef(void 0),d=S.useRef(r),g=S.useRef(n);h.current=u;const[p,Z]=S.useState(()=>{const O=r._getWatch(n,l.current);return h.current?h.current(O):O}),A=S.useCallback(O=>{const I=Ot(n,r._names,O||r._formValues,!1,l.current);return h.current?h.current(I):I},[r._formValues,r._names,n]),T=S.useCallback(O=>{if(!s){const I=Ot(n,r._names,O||r._formValues,!1,l.current);if(h.current){const V=h.current(I);ae(V,m.current)||(Z(V),m.current=V)}else Z(I)}},[r._formValues,r._names,s,n]);Dt(()=>((d.current!==r||!ae(g.current,n))&&(d.current=r,g.current=n,T()),r._subscribe({name:n,formState:{values:!0},exact:i,callback:O=>{T(O.values)}})),[r,i,n,T]),S.useEffect(()=>r._removeUnmounted());const F=d.current!==r,z=g.current,W=S.useMemo(()=>{if(s)return null;const O=!F&&!ae(z,n);return F||O?A():null},[s,F,n,z,A]);return W!==null?W:p}function Hn(e){const t=Pt(),{name:r,disabled:n,control:o=t,shouldUnregister:s,defaultValue:i,exact:u=!0}=e,l=qr(o._names.array,r),h=S.useMemo(()=>v(o._formValues,r,v(o._defaultValues,r,i)),[o,r,i]),m=Yn({control:o,name:r,defaultValue:h,exact:u}),d=qn({control:o,name:r,exact:u}),g=S.useRef(e),p=S.useRef(null),Z=S.useRef(o.register(r,{...e.rules,value:m,...ue(e.disabled)?{disabled:e.disabled}:{}}));g.current=e;const A=S.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!v(d.errors,r)},isDirty:{enumerable:!0,get:()=>!!v(d.dirtyFields,r)},isTouched:{enumerable:!0,get:()=>!!v(d.touchedFields,r)},isValidating:{enumerable:!0,get:()=>!!v(d.validatingFields,r)},error:{enumerable:!0,get:()=>v(d.errors,r)}}),[d,r]),T=S.useCallback(O=>{const I=$t(O);return v(o._fields,r)||(Z.current=o.register(r,{...g.current.rules,value:I})),Z.current.onChange({target:{value:$t(O),name:r},type:ve.CHANGE})},[r,o]),F=S.useCallback(()=>Z.current.onBlur({target:{value:v(o._formValues,r),name:r},type:ve.BLUR}),[r,o._formValues]),z=S.useCallback(O=>{O&&(p.current={focus:()=>te(O.focus)&&O.focus(),select:()=>te(O.select)&&O.select(),setCustomValidity:V=>te(O.setCustomValidity)&&O.setCustomValidity(V),reportValidity:()=>te(O.reportValidity)&&O.reportValidity()});const I=v(o._fields,r);I&&I._f&&O&&(I._f.ref=p.current)},[o._fields,r]),W=S.useMemo(()=>({name:r,value:m,...ue(n)||d.disabled?{disabled:d.disabled||n}:{},onChange:T,onBlur:F,ref:z}),[r,n,d.disabled,T,F,z,m]);return S.useEffect(()=>{const O=o._options.shouldUnregister||s;o.register(r,{...g.current.rules,...ue(g.current.disabled)?{disabled:g.current.disabled}:{}});const I=(V,j)=>{const ne=v(o._fields,V);ne&&ne._f&&(ne._f.mount=j)};if(I(r,!0),O){const V=B(v(s?o._defaultValues:o._options.values||o._defaultValues,r,v(o._options.defaultValues,r,g.current.defaultValue)));C(o._defaultValues,r,V),R(v(o._formValues,r))&&C(o._formValues,r,V)}if(!l&&o.register(r),p.current){const V=v(o._fields,r);V&&V._f&&(V._f.ref=p.current)}return()=>{(l?O&&!o._state.action:O)?o.unregister(r):I(r,!1)}},[r,o,l,s]),S.useEffect(()=>{o._setDisabledField({disabled:n,name:r})},[n,r,o]),S.useMemo(()=>({field:W,formState:d,fieldState:A}),[W,d,A])}const Xn=e=>e.render(Hn(e)),Ct=S.createContext(null);Ct.displayName="HookFormContext";const Qn=()=>S.useContext(Ct),eo=({children:e,watch:t,getValues:r,getFieldState:n,setError:o,clearErrors:s,setValue:i,setValues:u,trigger:l,formState:h,resetField:m,reset:d,handleSubmit:g,unregister:p,control:Z,register:A,setFocus:T,subscribe:F})=>{const z=S.useMemo(()=>({watch:t,getValues:r,getFieldState:n,setError:o,clearErrors:s,setValue:i,setValues:u,trigger:l,formState:h,resetField:m,reset:d,handleSubmit:g,unregister:p,control:Z,register:A,setFocus:T,subscribe:F}),[s,Z,h,n,r,g,A,d,m,o,T,i,u,F,l,p,t]);return S.createElement(Ct.Provider,{value:z},S.createElement(Nt.Provider,{value:z.control},e))};var xt=(e,t,r,n,o)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[n]:o||!0}}:{},en=e=>Array.isArray(e)?e.filter(Boolean):[],He=e=>Array.isArray(e)?e:[e],ar=()=>{let e=[];return{get observers(){return e},next:o=>{for(const s of e)s.next&&s.next(o)},subscribe:o=>(e.push(o),{unsubscribe:()=>{e=e.filter(s=>s!==o)}}),unsubscribe:()=>{e=[]}}};function tn(e,t){const r={};for(const n in e)if(e.hasOwnProperty(n)){const o=e[n],s=t[n];if(o&&M(o)&&s){const i=tn(o,s);M(i)&&(r[n]=i)}else e[n]&&(r[n]=s)}return r}var X=e=>M(e)&&!Object.keys(e).length,Rt=e=>e.type==="file",Xe=e=>{if(!ot)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},rn=e=>e.type==="select-multiple",jt=e=>e.type==="radio",to=e=>jt(e)||Me(e),bt=e=>Xe(e)&&e.isConnected;function ro(e,t){const r=t.slice(0,-1).length;let n=0;for(;n{for(const t in e)if(te(e[t]))return!0;return!1};function nn(e){return Array.isArray(e)||M(e)&&!oo(e)}function Zt(e,t={}){for(const r in e){const n=e[r];nn(n)?(t[r]=Array.isArray(n)?[]:{},Zt(n,t[r])):R(n)||(t[r]=!0)}return t}function St(e){if(e!==!1){if(e===!0)return!0;if(Array.isArray(e)){const t=e.map(r=>St(r));return t.some(r=>r!==void 0)?t:void 0}if(M(e)){const t={};for(const r in e){const n=St(e[r]);R(n)||(t[r]=n)}return Object.keys(t).length?t:void 0}}}function ze(e,t,r){r||(r=Zt(t));for(const n in e){const o=e[n];if(nn(o))R(t)||Et(r[n])?r[n]=Zt(o,Array.isArray(o)?[]:{}):ze(o,Q(t)?{}:t[n],r[n]);else{const s=t[n];r[n]=!ae(o,s)}}return St(r)||{}}const cr={value:!1,isValid:!1},lr={value:!0,isValid:!0};var on=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!R(e[0].attributes.value)?R(e[0].value)||e[0].value===""?lr:{value:e[0].value,isValid:!0}:lr:cr}return cr},sn=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:n})=>R(e)?e:t?e===""?NaN:e&&+e:r&&re(e)?new Date(e):n?n(e):e;const fr={isValid:!1,value:null};var un=e=>Array.isArray(e)?e.reduce((t,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:t,fr):fr;function dr(e){const t=e.ref;return Rt(t)?t.files:jt(t)?un(e.refs).value:rn(t)?[...t.selectedOptions].map(({value:r})=>r):Me(t)?on(e.refs).value:sn(R(t.value)?e.ref.value:t.value,e)}var so=(e,t,r,n)=>{const o={};for(const s of e){const i=v(t,s);i&&C(o,s,i._f)}return{criteriaMode:r,names:[...e],fields:o,shouldUseNativeValidation:n}},Qe=e=>e instanceof RegExp,De=e=>R(e)?e:Qe(e)?e.source:M(e)?Qe(e.value)?e.value.source:e.value:e,hr=e=>({isOnSubmit:!e||e===pe.onSubmit,isOnBlur:e===pe.onBlur,isOnChange:e===pe.onChange,isOnAll:e===pe.all,isOnTouch:e===pe.onTouched});const pr="AsyncFunction";var io=e=>!!e&&!!e.validate&&!!(te(e.validate)&&e.validate.constructor.name===pr||M(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===pr)),uo=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),wt=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(n=>e.startsWith(`${n}.`)));const xe=(e,t,r,n)=>{for(const o of r||Object.keys(e)){const s=v(e,o);if(s){const{_f:i,...u}=s;if(i){if(i.refs&&i.refs[0]&&t(i.refs[0],o)&&!n)return!0;if(i.ref&&t(i.ref,i.name)&&!n)return!0;if(xe(u,t))break}else if(M(u)&&xe(u,t))break}}};function mr(e,t,r){const n=v(e,r);if(n||Le(r))return{error:n,name:r};const o=r.split(".");for(;o.length;){const s=o.join("."),i=v(t,s),u=v(e,s);if(i&&!Array.isArray(i)&&r!==s)return{name:r};if(u&&u.type)return{name:s,error:u};if(u&&u.root&&u.root.type)return{name:`${s}.root`,error:u.root};o.pop()}return{name:r}}var ao=(e,t,r,n)=>{r(e);const{name:o,...s}=e;return X(s)||n&&Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(i=>t[i]===(!n||pe.all))},co=(e,t,r)=>!e||!t||e===t||He(e).some(n=>n&&(r?n===t:n.startsWith(t)||t.startsWith(n))),lo=(e,t,r,n,o)=>o.isOnAll?!1:!r&&o.isOnTouch?!(t||e):(r?n.isOnBlur:o.isOnBlur)?!e:(r?n.isOnChange:o.isOnChange)?e:!0,fo=(e,t)=>!en(v(e,t)).length&&q(e,t),_r=(e,t,r)=>{const n=v(e,r),o=Array.isArray(n)?n:[];return C(o,Hr,t[r]),C(e,r,o),e};function gr(e,t,r="validate"){if(re(e)||Array.isArray(e)&&e.every(re)||ue(e)&&!e)return{type:r,message:re(e)?e:"",ref:t}}var Ie=e=>M(e)&&!Qe(e)?e:{value:e,message:""},yr=async(e,t,r,n,o,s)=>{const{ref:i,refs:u,required:l,maxLength:h,minLength:m,min:d,max:g,pattern:p,validate:Z,name:A,valueAsNumber:T,mount:F}=e._f,z=v(r,A);if(!F||t.has(A))return{};const W=u?u[0]:i,O=D=>{if(o&&W.reportValidity){const N=ue(D)?"":D||"";u?u.forEach(G=>G.setCustomValidity(N)):W.setCustomValidity(N),W.reportValidity()}},I={},V=jt(i),j=Me(i),ne=V||j,_e=(T||Rt(i))&&R(i.value)&&R(z)||Xe(i)&&i.value===""||z===""||Array.isArray(z)&&!z.length,ie=xt.bind(null,A,n,I),Be=(D,N,G,J=he.maxLength,ce=he.minLength)=>{const ge=D?N:G;I[A]={type:D?J:ce,message:ge,ref:i,...ie(D?J:ce,ge)}};if(s?!Array.isArray(z)||!z.length:l&&(!ne&&(_e||Q(z))||ue(z)&&!z||j&&!on(u).isValid||V&&!un(u).isValid)){const{value:D,message:N}=re(l)?{value:!!l,message:l}:Ie(l);if(D&&(I[A]={type:he.required,message:N,ref:W,...ie(he.required,N)},!n))return O(N),I}if(!_e&&(!Q(d)||!Q(g))){let D,N;const G=Ie(g),J=Ie(d);if(!Q(z)&&!isNaN(z)){const ce=i.valueAsNumber||z&&+z;Q(G.value)||(D=ce>G.value),Q(J.value)||(N=cenew Date(new Date().toDateString()+" "+We),Se=i.type=="time",Te=i.type=="week";re(G.value)&&z&&(D=Se?ge(z)>ge(G.value):Te?z>G.value:ce>new Date(G.value)),re(J.value)&&z&&(N=Se?ge(z)+D.value,J=!Q(N.value)&&z.length<+N.value;if((G||J)&&(Be(G,D.message,N.message),!n))return O(I[A].message),I}if(p&&!_e&&re(z)){const{value:D,message:N}=Ie(p);if(Qe(D)&&!z.match(D)&&(I[A]={type:he.pattern,message:N,ref:i,...ie(he.pattern,N)},!n))return O(N),I}if(Z){if(te(Z)){const D=await Z(z,r),N=gr(D,W);if(N&&(I[A]={...N,...ie(he.validate,N.message)},!n))return O(N.message),I}else if(M(Z)){let D={};for(const N in Z){if(!X(D)&&!n)break;const G=gr(await Z[N](z,r),W,N);G&&(D={...G,...ie(N,G.message)},O(G.message),n&&(I[A]=D))}if(!X(D)&&(I[A]={ref:W,...D},!n))return I}}return O(!0),I};const ho={mode:pe.onSubmit,reValidateMode:pe.onChange,shouldFocusError:!0},an={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function po(e={}){let t={...ho,...e},r={...B(an),isLoading:te(t.defaultValues),errors:t.errors||{},disabled:t.disabled||!1},n={},o=M(t.defaultValues)||M(t.values)?B(t.defaultValues||t.values)||{}:{},s=t.shouldUnregister?{}:B(o),i={action:!1,mount:!1,watch:!1,keepIsValid:!1},u={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},l,h=0;const m={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},d={...m};let g={...d};const p={array:ar(),state:ar()},Z=t.criteriaMode===pe.all,A=a=>c=>{clearTimeout(h),h=setTimeout(a,c)},T=async a=>{if(!i.keepIsValid&&!t.disabled&&(d.isValid||g.isValid||a)){let c;t.resolver?(c=X((await ie()).errors),F()):c=await N({fields:n,onlyCheckValid:!0,eventType:ve.VALID}),c!==r.isValid&&p.state.next({isValid:c})}},F=(a,c)=>{!t.disabled&&(d.isValidating||d.validatingFields||g.isValidating||g.validatingFields)&&((a||Array.from(u.mount)).forEach(f=>{f&&(c?C(r.validatingFields,f,c):q(r.validatingFields,f))}),p.state.next({validatingFields:r.validatingFields,isValidating:!X(r.validatingFields)}))},z=()=>{r.dirtyFields=ze(o,s)},W=(a,c=[],f,y,w=!0,k=!0)=>{if(y&&f&&!t.disabled){if(i.action=!0,k&&Array.isArray(v(n,a))){const b=f(v(n,a),y.argA,y.argB);w&&C(n,a,b)}if(k&&Array.isArray(v(r.errors,a))){const b=f(v(r.errors,a),y.argA,y.argB);w&&C(r.errors,a,b),fo(r.errors,a)}if((d.touchedFields||g.touchedFields)&&k&&Array.isArray(v(r.touchedFields,a))){const b=f(v(r.touchedFields,a),y.argA,y.argB);w&&C(r.touchedFields,a,b)}(d.dirtyFields||g.dirtyFields)&&z(),p.state.next({name:a,isDirty:J(a,c),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else C(s,a,c)},O=(a,c)=>{C(r.errors,a,c),r.errors={...r.errors},p.state.next({errors:r.errors})},I=a=>{r.errors=a,p.state.next({errors:r.errors,isValid:!1})},V=a=>{const c=Le(a)?[a]:st(a);let f=s,y=o;for(let w=0;w{const w=v(n,a);if(w){if(V(a))return;const k=R(v(s,a)),b=v(s,a,R(f)?v(o,a):f);R(b)||y&&y.defaultChecked||c?C(s,a,c?b:dr(w._f)):Se(a,b),i.mount&&!i.action&&(T(),k&&r.isDirty&&(d.isDirty||g.isDirty)&&(J()||(r.isDirty=!1,p.state.next({...r}))),e.shouldUnregister&&k&&!R(v(s,a))&&wt(a,u)&&(i.watch=!0))}},ne=(a,c,f,y,w)=>{let k=!1,b=!1;const $={name:a};if(!t.disabled){if(!f||y){(d.isDirty||g.isDirty)&&(b=r.isDirty,r.isDirty=$.isDirty=J(),k=b!==$.isDirty);const P=ae(v(o,a),c);b=!!v(r.dirtyFields,a),P!==r.isDirty?r.dirtyFields=ze(o,s):P?q(r.dirtyFields,a):C(r.dirtyFields,a,!0),$.dirtyFields=r.dirtyFields,k=k||(d.dirtyFields||g.dirtyFields)&&b!==!P}if(f){const P=v(r.touchedFields,a);P||(C(r.touchedFields,a,f),$.touchedFields=r.touchedFields,k=k||(d.touchedFields||g.touchedFields)&&P!==f)}k&&w&&p.state.next($)}return k?$:{}},_e=(a,c,f,y)=>{const w=v(r.errors,a),k=(d.isValid||g.isValid)&&ue(c)&&r.isValid!==c;if(t.delayError&&f?(l=A(()=>O(a,f)),l(t.delayError)):(clearTimeout(h),l=null,f?C(r.errors,a,f):q(r.errors,a),r.errors={...r.errors}),(f?!ae(w,f):w)||!X(y)||k){const b={...y,...k&&ue(c)?{isValid:c}:{},errors:r.errors,name:a};r={...r,...b},p.state.next(b)}},ie=async a=>(F(a,!0),await t.resolver(s,t.context,so(a||u.mount,n,t.criteriaMode,t.shouldUseNativeValidation))),Be=async a=>{const{errors:c}=await ie(a);if(F(a),a){for(const f of a){const y=v(c,f);y?u.array.has(f)&&M(y)&&!Object.keys(y).some(w=>!Number.isNaN(Number(w)))?_r(r.errors,{[f]:y},f):C(r.errors,f,y):q(r.errors,f)}r.errors={...r.errors}}else r.errors=c;return c},D=async({name:a,eventType:c})=>{if(e.validate){const f=await e.validate({formValues:s,formState:r,name:a,eventType:c});if(M(f))for(const y in f){const w=f[y];w&&Ge(`${vt}.${y}`,{message:re(w.message)?w.message:"",type:w.type||he.validate})}else re(f)||!f?Ge(vt,{message:f||"",type:he.validate}):Xt(vt);return f}return!0},N=async({fields:a,onlyCheckValid:c,name:f,eventType:y,context:w={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(w.runRootValidation=!0,!await D({name:f,eventType:y})&&(w.valid=!1,c)))return w.valid;for(const k in a){const b=a[k];if(b){const{_f:$,...P}=b;if($){const K=u.array.has($.name),le=b._f&&io(b._f),de=d.validatingFields||d.isValidating||g.validatingFields||g.isValidating;le&&de&&F([$.name],!0);const ke=await yr(b,u.disabled,s,Z,t.shouldUseNativeValidation&&!c,K);if(le&&de&&F([$.name]),ke[$.name]&&(w.valid=!1,c)||(!c&&(v(ke,$.name)?K?_r(r.errors,ke,$.name):C(r.errors,$.name,ke[$.name]):q(r.errors,$.name)),e.shouldUseNativeValidation&&ke[$.name]))break}!X(P)&&await N({context:w,onlyCheckValid:c,fields:P,name:k,eventType:y})}}return w.valid},G=()=>{for(const a of u.unMount){const c=v(n,a);c&&(c._f.refs?c._f.refs.every(f=>!bt(f)):!bt(c._f.ref))&&mt(a)}u.unMount=new Set},J=(a,c)=>!t.disabled&&(a&&c&&C(s,a,c),!ae(Yt(),o)),ce=(a,c,f)=>Ot(a,u,{...i.mount?s:R(c)?o:re(a)?{[a]:c}:c},f,c),ge=a=>en(v(i.mount?s:o,a,t.shouldUnregister?v(o,a,[]):[])),Se=(a,c,f={},y=!1)=>{const w=v(n,a);let k=c;if(w){const b=w._f;b&&(!b.disabled&&C(s,a,sn(c,b)),k=Xe(b.ref)&&Q(c)?"":c,rn(b.ref)?[...b.ref.options].forEach($=>$.selected=k.includes($.value)):b.refs?Me(b.ref)?b.refs.forEach($=>{(!$.defaultChecked||!$.disabled)&&(Array.isArray(k)?$.checked=!!k.find(P=>P===$.value):$.checked=k===$.value||!!k)}):b.refs.forEach($=>$.checked=$.value===k):Rt(b.ref)?b.ref.value="":(b.ref.value=k,b.ref.type||p.state.next({name:a,values:y?s:B(s)})))}(f.shouldDirty||f.shouldTouch)&&ne(a,k,f.shouldTouch,f.shouldDirty,!0),f.shouldValidate&&pt(a)},Te=(a,c,f,y=!1)=>{for(const w in c){if(!c.hasOwnProperty(w))return;const k=c[w],b=a+"."+w,$=v(n,b);(u.array.has(a)||M(k)||$&&!$._f)&&!$e(k)?Te(b,k,f,y):Se(b,k,f,y)}},We=(a,c,f,y)=>{const w=v(n,a),k=u.array.has(a),b=y?c:B(c),$=v(s,a),P=ae($,b);if(P||C(s,a,b),k)p.array.next({name:a,values:y?s:B(s)}),(d.isDirty||d.dirtyFields||g.isDirty||g.dirtyFields)&&f.shouldDirty&&(z(),p.state.next({name:a,dirtyFields:r.dirtyFields,isDirty:J(a,b)}));else{const K=Array.isArray(b)&&!b.length||X(b);!w||w._f||Q(b)||K?Se(a,b,f,y):Te(a,b,f,y)}if(!P){const K=wt(a,u),le=y?s:B(s);p.state.next({...K&&r,name:i.mount||K?a:void 0,values:le})}},Ne=(a,c,f={})=>We(a,c,f,!1),xn=(a,c={})=>{const f=te(a)?a(s):a;if(!ae(s,f)){s={...s,...f};for(const y of u.mount)We(y,v(f,y),c,!0);p.state.next({...r,name:void 0,type:void 0,values:s}),c.shouldValidate&&T()}},Kt=async a=>{i.mount=!0;const c=a.target;let f=c.name,y=!0;const w=v(n,f),k=P=>{y=Number.isNaN(P)||$e(P)&&isNaN(P.getTime())||ae(P,v(s,f,P))},b=hr(t.mode),$=hr(t.reValidateMode);if(w){let P,K;const le=c.type?dr(w._f):$t(a),de=a.type===ve.BLUR||a.type===ve.FOCUS_OUT,ke=!uo(w._f)&&!e.validate&&!t.resolver&&!v(r.errors,f)&&!w._f.deps||lo(de,v(r.touchedFields,f),r.isSubmitted,$,b),yt=wt(f,u,de);C(s,f,le),de?(!c||!c.readOnly)&&(w._f.onBlur&&w._f.onBlur(a),l&&l(0)):w._f.onChange&&w._f.onChange(a);const Pe=ne(f,le,de),Bn=!X(Pe)||yt;if(!de&&p.state.next({name:f,type:a.type,values:B(s)}),ke)return(d.isValid||g.isValid)&&(t.mode==="onBlur"?de&&T():de||T()),Bn&&p.state.next({name:f,...yt?{}:Pe});if(!t.resolver&&e.validate&&await D({name:f,eventType:a.type}),!de&&yt&&p.state.next({...r}),t.resolver){const{errors:sr}=await ie([f]);if(F([f]),k(le),!y){!X(Pe)&&p.state.next(Pe);return}const Wn=mr(r.errors,n,f),ir=mr(sr,n,Wn.name||f);P=ir.error,f=ir.name,K=X(sr)}else F([f],!0),P=(await yr(w,u.disabled,s,Z,t.shouldUseNativeValidation))[f],F([f]),k(le),y&&(P?K=!1:(d.isValid||g.isValid)&&(K=await N({fields:n,onlyCheckValid:!0,name:f,eventType:a.type})));y&&(w._f.deps&&(!Array.isArray(w._f.deps)||w._f.deps.length>0)&&pt(w._f.deps),_e(f,K,P,Pe))}},qt=(a,c)=>{if(v(r.errors,c)&&a.focus)return a.focus(),1},pt=async(a,c={})=>{let f,y;const w=He(a);if(t.resolver){const k=await Be(R(a)?a:w);f=X(k),y=a?!w.some(b=>v(k,b)):f}else a?(y=(await Promise.all(w.map(async k=>{const b=v(n,k);return await N({fields:b&&b._f?{[k]:b}:b,eventType:ve.TRIGGER})}))).every(Boolean),!(!y&&!r.isValid)&&T()):y=f=await N({fields:n,name:a,eventType:ve.TRIGGER});return p.state.next({...!re(a)||(d.isValid||g.isValid)&&f!==r.isValid?{}:{name:a},...t.resolver||!a?{isValid:f}:{},errors:r.errors}),c.shouldFocus&&!y&&xe(n,qt,a?w:u.mount),y},Yt=(a,c)=>{let f={...i.mount?s:o};return c&&(f=tn(c.dirtyFields?r.dirtyFields:r.touchedFields,f)),R(a)?f:re(a)?v(f,a):a.map(y=>v(f,y))},Ht=(a,c)=>({invalid:!!v((c||r).errors,a),isDirty:!!v((c||r).dirtyFields,a),error:v((c||r).errors,a),isValidating:!!v(r.validatingFields,a),isTouched:!!v((c||r).touchedFields,a)}),Xt=a=>{const c=a?He(a):void 0;c==null||c.forEach(f=>q(r.errors,f)),c?c.forEach(f=>{p.state.next({name:f,errors:r.errors})}):p.state.next({errors:{}})},Ge=(a,c,f)=>{const y=(v(n,a,{_f:{}})._f||{}).ref,w=v(r.errors,a)||{},{ref:k,message:b,type:$,...P}=w;C(r.errors,a,{...P,...c,ref:y}),p.state.next({name:a,errors:r.errors,isValid:!1}),f&&f.shouldFocus&&y&&y.focus&&y.focus()},Rn=(a,c)=>te(a)?p.state.subscribe({next:f=>"values"in f&&a(f.values||ce(void 0,c),f)}):ce(a,c,!0),Qt=a=>p.state.subscribe({next:c=>{if(co(a.name,c.name,a.exact)&&ao(c,a.formState||d,Jn,a.reRenderRoot)){const f={...s};a.callback({values:f,...r,...c,defaultValues:o})}}}).unsubscribe,jn=a=>(i.mount=!0,g={...g,...a.formState},Qt({...a,formState:{...m,...a.formState}})),mt=(a,c={})=>{for(const f of a?He(a):u.mount)u.mount.delete(f),u.array.delete(f),c.keepValue||(q(n,f),q(s,f)),!c.keepError&&q(r.errors,f),!c.keepDirty&&q(r.dirtyFields,f),!c.keepTouched&&q(r.touchedFields,f),!c.keepIsValidating&&q(r.validatingFields,f),!t.shouldUnregister&&!c.keepDefaultValue&&q(o,f);p.state.next({values:B(s)}),p.state.next({...r,...c.keepDirty?{isDirty:J()}:{}}),!c.keepIsValid&&T()},er=({disabled:a,name:c})=>{if(ue(a)&&i.mount||a||u.disabled.has(c)){const w=u.disabled.has(c)!==!!a;a?u.disabled.add(c):u.disabled.delete(c),w&&i.mount&&!i.action&&T()}},_t=(a,c={})=>{let f=v(n,a);const y=ue(c.disabled)||ue(t.disabled),w=!u.registerName.has(a)&&f&&f._f&&!f._f.mount;return C(n,a,{...f||{},_f:{...f&&f._f?f._f:{ref:{name:a}},name:a,mount:!0,...c}}),u.mount.add(a),f&&!w?er({disabled:ue(c.disabled)?c.disabled:t.disabled,name:a}):j(a,!0,c.value),{...y?{disabled:c.disabled||t.disabled}:{},...t.progressive?{required:!!c.required,min:De(c.min),max:De(c.max),minLength:De(c.minLength),maxLength:De(c.maxLength),pattern:De(c.pattern)}:{},name:a,onChange:Kt,onBlur:Kt,ref:k=>{if(k){u.registerName.add(a),_t(a,c),u.registerName.delete(a),f=v(n,a);const b=R(k.value)&&k.querySelectorAll&&k.querySelectorAll("input,select,textarea")[0]||k,$=to(b),P=f._f.refs||[];if($?P.find(K=>K===b):b===f._f.ref)return;C(n,a,{_f:{...f._f,...$?{refs:[...P.filter(bt),b,...Array.isArray(v(o,a))?[{}]:[]],ref:{type:b.type,name:a}}:{ref:b}}}),j(a,!1,void 0,b)}else f=v(n,a,{}),f._f&&(f._f.mount=!1),(t.shouldUnregister||c.shouldUnregister)&&!(qr(u.array,a)&&i.action)&&u.unMount.add(a)}}},gt=()=>t.shouldFocusError&&!t.shouldUseNativeValidation&&xe(n,qt,u.mount),Un=a=>{ue(a)&&(p.state.next({disabled:a}),xe(n,(c,f)=>{const y=v(n,f);y&&(c.disabled=y._f.disabled||a,Array.isArray(y._f.refs)&&y._f.refs.forEach(w=>{w.disabled=y._f.disabled||a}))},0,!1))},tr=(a,c)=>async f=>{let y;f&&(f.preventDefault&&f.preventDefault(),f.persist&&f.persist());let w=B(s);if(p.state.next({isSubmitting:!0}),t.resolver){const{errors:k,values:b}=await ie();F(),r.errors=k,w=B(b)}else await N({fields:n,eventType:ve.SUBMIT});if(u.disabled.size)for(const k of u.disabled)q(w,k);if(q(r.errors,Hr),X(r.errors)){p.state.next({errors:{}});try{await a(w,f)}catch(k){y=k}}else c&&await c({...r.errors},f),gt(),setTimeout(gt);if(p.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:X(r.errors)&&!y,submitCount:r.submitCount+1,errors:r.errors}),y)throw y},Mn=(a,c={})=>{v(n,a)&&(R(c.defaultValue)?Ne(a,B(v(o,a))):(Ne(a,c.defaultValue),C(o,a,B(c.defaultValue))),c.keepTouched||q(r.touchedFields,a),c.keepDirty||(q(r.dirtyFields,a),r.isDirty=c.defaultValue?J(a,B(v(o,a))):J()),c.keepError||(q(r.errors,a),d.isValid&&T()),p.state.next({...r}))},rr=(a,c={})=>{const f=a?B(a):o,y=B(f),w=X(a),k=y;if(c.keepDefaultValues||(o=f),!c.keepValues){if(c.keepDirtyValues){const b=new Set([...u.mount,...Object.keys(ze(o,s))]);for(const $ of Array.from(b)){const P=v(r.dirtyFields,$),K=v(s,$),le=v(k,$);P&&!R(K)?C(k,$,K):!P&&!R(le)&&Ne($,le)}}else{if(ot&&R(a))for(const b of u.mount){const $=v(n,b);if($&&$._f){const P=Array.isArray($._f.refs)?$._f.refs[0]:$._f.ref;if(Xe(P)){const K=P.closest("form");if(K){K.reset();break}}}}if(c.keepFieldsRef)for(const b of u.mount)Ne(b,v(k,b));else n={}}if(t.shouldUnregister){if(s=c.keepDefaultValues?B(o):{},c.keepFieldsRef)for(const b of u.mount)C(s,b,v(k,b))}else s=B(k);p.array.next({values:{...k}}),p.state.next({values:{...k}})}u={mount:c.keepDirtyValues?u.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},i.mount=!d.isValid||!!c.keepIsValid||!!c.keepDirtyValues||!t.shouldUnregister&&!X(k),i.watch=!!t.shouldUnregister,i.keepIsValid=!!c.keepIsValid,i.action=!1,c.keepErrors||(r.errors={}),p.state.next({submitCount:c.keepSubmitCount?r.submitCount:0,isDirty:w?!1:c.keepDirty?r.isDirty:c.keepValues?J():!!(c.keepDefaultValues&&!ae(a,o)),isSubmitted:c.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:w?{}:c.keepDirtyValues?c.keepDefaultValues&&s?ze(o,s):r.dirtyFields:c.keepDefaultValues&&a?ze(o,a):c.keepDirty?r.dirtyFields:{},touchedFields:c.keepTouched?r.touchedFields:{},errors:c.keepErrors?r.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:o})},nr=(a,c)=>rr(te(a)?a(s):a,{...t.resetOptions,...c}),Ln=(a,c={})=>{const f=v(n,a),y=f&&f._f;if(y){const w=y.refs?y.refs[0]:y.ref;w.focus&&setTimeout(()=>{w.focus(),c.shouldSelect&&te(w.select)&&w.select()})}},Jn=a=>{r={...r,...a}},or={control:{register:_t,unregister:mt,getFieldState:Ht,handleSubmit:tr,setError:Ge,_subscribe:Qt,_runSchema:ie,_updateIsValidating:F,_focusError:gt,_getWatch:ce,_getDirty:J,_setValid:T,_setFieldArray:W,_setDisabledField:er,_setErrors:I,_getFieldArray:ge,_reset:rr,_resetDefaultValues:()=>te(t.defaultValues)&&t.defaultValues().then(a=>{nr(a,t.resetOptions),p.state.next({isLoading:!1})}),_removeUnmounted:G,_disableForm:Un,_subjects:p,_proxyFormState:d,get _fields(){return n},get _formValues(){return s},get _state(){return i},set _state(a){i=a},get _defaultValues(){return o},get _names(){return u},set _names(a){u=a},get _formState(){return r},get _options(){return t},set _options(a){t={...t,...a}}},subscribe:jn,trigger:pt,register:_t,handleSubmit:tr,watch:Rn,setValue:Ne,setValues:xn,getValues:Yt,reset:nr,resetField:Mn,resetDefaultValues:(a,c={})=>{if(o=B(a),!c.keepDirty){const f=ze(o,s);r.dirtyFields=f,r.isDirty=!X(f)}c.keepIsValid||T(),p.state.next({...r,defaultValues:o})},clearErrors:Xt,unregister:mt,setError:Ge,setFocus:Ln,getFieldState:Ht};return{...or,formControl:or}}function uc(e={}){const t=S.useRef(void 0),r=S.useRef(void 0),n=S.useRef(e.formControl),[o,s]=S.useState(()=>({...B(an),isLoading:te(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:te(e.defaultValues)?void 0:e.defaultValues}));if(!t.current||e.formControl&&n.current!==e.formControl)if(n.current=e.formControl,e.formControl)t.current={...e.formControl,formState:o},e.defaultValues&&!te(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:u,...l}=po(e);t.current={...l,formState:o}}const i=t.current.control;return i._options=e,Dt(()=>{const u=i._subscribe({formState:i._proxyFormState,callback:()=>s({...i._formState,defaultValues:i._defaultValues}),reRenderRoot:!0});return s(l=>({...l,isReady:!0})),i._formState.isReady=!0,u},[i]),S.useEffect(()=>i._disableForm(e.disabled),[i,e.disabled]),S.useEffect(()=>{e.mode&&(i._options.mode=e.mode),e.reValidateMode&&(i._options.reValidateMode=e.reValidateMode)},[i,e.mode,e.reValidateMode]),S.useEffect(()=>{e.errors&&(i._setErrors(e.errors),i._focusError())},[i,e.errors]),S.useEffect(()=>{e.shouldUnregister&&i._subjects.state.next({values:i._getWatch()})},[i,e.shouldUnregister]),S.useEffect(()=>{if(i._proxyFormState.isDirty){const u=i._getDirty();u!==o.isDirty&&i._subjects.state.next({isDirty:u})}},[i,o.isDirty]),S.useEffect(()=>{var u;e.values&&!ae(e.values,r.current)?(i._reset(e.values,{keepFieldsRef:!0,...i._options.resetOptions}),!((u=i._options.resetOptions)===null||u===void 0)&&u.keepIsValid||i._setValid(),r.current=e.values,s(l=>({...l}))):i._resetDefaultValues()},[i,e.values]),S.useEffect(()=>{i._state.mount||(i._setValid(),i._state.mount=!0),i._state.watch&&(i._state.watch=!1,i._subjects.state.next({...i._formState})),i._removeUnmounted()}),t.current.formState=S.useMemo(()=>Qr(o,i),[i,o]),t.current}const vr=(e,t,r)=>{if(e&&"reportValidity"in e){const n=v(r,t);e.setCustomValidity(n&&n.message||""),e.reportValidity()}},It=(e,t)=>{for(const r in t.fields){const n=t.fields[r];n&&n.ref&&"reportValidity"in n.ref?vr(n.ref,r,e):n&&n.refs&&n.refs.forEach(o=>vr(o,r,e))}},br=(e,t)=>{t.shouldUseNativeValidation&&It(e,t);const r={};for(const n in e){const o=v(t.fields,n),s=Object.assign(e[n]||{},{ref:o&&o.ref});if(mo(t.names||Object.keys(e),n)){const i=Object.assign({},v(r,n));C(i,"root",s),C(r,n,i)}else C(r,n,s)}return r},mo=(e,t)=>{const r=wr(t).replace(/[.*+?^${}()|\\]/g,"\\$&");return e.some(n=>wr(n).match(`^${r}\\.\\d+`))};function wr(e){return e.replace(/[\[\]]/g,"")}var kr;function _(e,t,r){function n(u,l){if(u._zod||Object.defineProperty(u,"_zod",{value:{def:l,constr:i,traits:new Set},enumerable:!1}),u._zod.traits.has(e))return;u._zod.traits.add(e),t(u,l);const h=i.prototype,m=Object.keys(h);for(let d=0;d{var l,h;return r!=null&&r.Parent&&u instanceof r.Parent?!0:(h=(l=u==null?void 0:u._zod)==null?void 0:l.traits)==null?void 0:h.has(e)}}),Object.defineProperty(i,"name",{value:e}),i}class Fe extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class cn extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}(kr=globalThis).__zod_globalConfig??(kr.__zod_globalConfig={});const Ut=globalThis.__zod_globalConfig;function Oe(e){return Ut}function ln(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function At(e,t){return typeof t=="bigint"?t.toString():t}function Mt(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Lt(e){return e==null}function Jt(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function _o(e,t){const r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n){};function et(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const yo=Mt(()=>{var e;if(Ut.jitless||typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function Re(e){if(et(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(et(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function dn(e){return Re(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const vo=new Set(["string","number","symbol"]);function it(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function we(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r!=null&&r.parent)&&(n._zod.parent=e),n}function E(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function bo(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const wo={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function ko(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const s=be(e._zod.def,{get shape(){const i={};for(const u in t){if(!(u in r.shape))throw new Error(`Unrecognized key: "${u}"`);t[u]&&(i[u]=r.shape[u])}return Ze(this,"shape",i),i},checks:[]});return we(e,s)}function zo(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const s=be(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const u in t){if(!(u in r.shape))throw new Error(`Unrecognized key: "${u}"`);t[u]&&delete i[u]}return Ze(this,"shape",i),i},checks:[]});return we(e,s)}function $o(e,t){if(!Re(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const s=e._zod.def.shape;for(const i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=be(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return Ze(this,"shape",s),s}});return we(e,o)}function Oo(e,t){if(!Re(t))throw new Error("Invalid input to safeExtend: expected a plain object");const r=be(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return Ze(this,"shape",n),n}});return we(e,r)}function Eo(e,t){var n;if((n=e._zod.def.checks)!=null&&n.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const r=be(e._zod.def,{get shape(){const o={...e._zod.def.shape,...t._zod.def.shape};return Ze(this,"shape",o),o},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return we(e,r)}function Zo(e,t,r){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const i=be(t._zod.def,{get shape(){const u=t._zod.def.shape,l={...u};if(r)for(const h in r){if(!(h in u))throw new Error(`Unrecognized key: "${h}"`);r[h]&&(l[h]=e?new e({type:"optional",innerType:u[h]}):u[h])}else for(const h in u)l[h]=e?new e({type:"optional",innerType:u[h]}):u[h];return Ze(this,"shape",l),l},checks:[]});return we(t,i)}function So(e,t,r){const n=be(t._zod.def,{get shape(){const o=t._zod.def.shape,s={...o};if(r)for(const i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(const i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return Ze(this,"shape",s),s}});return we(t,n)}function Ae(e,t=0){var r;if(e.aborted===!0)return!0;for(let n=t;n{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Ke(e){return typeof e=="string"?e:e==null?void 0:e.message}function Ee(e,t,r){var l,h,m,d,g,p;const n=e.message?e.message:Ke((m=(h=(l=e.inst)==null?void 0:l._zod.def)==null?void 0:h.error)==null?void 0:m.call(h,e))??Ke((d=t==null?void 0:t.error)==null?void 0:d.call(t,e))??Ke((g=r.customError)==null?void 0:g.call(r,e))??Ke((p=r.localeError)==null?void 0:p.call(r,e))??"Invalid input",{inst:o,continue:s,input:i,...u}=e;return u.path??(u.path=[]),u.message=n,t!=null&&t.reportInput&&(u.input=i),u}function Bt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function je(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}const pn=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,At,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Wt=_("$ZodError",pn),ut=_("$ZodError",pn,{Parent:Error});function Ao(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function Fo(e,t=r=>r.message){const r={_errors:[]},n=(o,s=[])=>{for(const i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(u=>n({issues:u},[...s,...i.path]));else if(i.code==="invalid_key")n({issues:i.issues},[...s,...i.path]);else if(i.code==="invalid_element")n({issues:i.issues},[...s,...i.path]);else{const u=[...s,...i.path];if(u.length===0)r._errors.push(t(i));else{let l=r,h=0;for(;h(t,r,n,o)=>{const s=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Fe;if(i.issues.length){const u=new((o==null?void 0:o.Err)??e)(i.issues.map(l=>Ee(l,s,Oe())));throw fn(u,o==null?void 0:o.callee),u}return i.value},Vo=at(ut),ct=e=>async(t,r,n,o)=>{const s=n?{...n,async:!0}:{async:!0};let i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){const u=new((o==null?void 0:o.Err)??e)(i.issues.map(l=>Ee(l,s,Oe())));throw fn(u,o==null?void 0:o.callee),u}return i.value},To=ct(ut),lt=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Fe;return s.issues.length?{success:!1,error:new(e??Wt)(s.issues.map(i=>Ee(i,o,Oe())))}:{success:!0,data:s.value}},No=lt(ut),ft=e=>async(t,r,n)=>{const o=n?{...n,async:!0}:{async:!0};let s=t._zod.run({value:r,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>Ee(i,o,Oe())))}:{success:!0,data:s.value}},Po=ft(ut),Do=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return at(e)(t,r,o)},Co=e=>(t,r,n)=>at(e)(t,r,n),xo=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ct(e)(t,r,o)},Ro=e=>async(t,r,n)=>ct(e)(t,r,n),jo=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return lt(e)(t,r,o)},Uo=e=>(t,r,n)=>lt(e)(t,r,n),Mo=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ft(e)(t,r,o)},Lo=e=>async(t,r,n)=>ft(e)(t,r,n),Jo=/^[cC][0-9a-z]{6,}$/,Bo=/^[0-9a-z]+$/,Wo=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Go=/^[0-9a-vA-V]{20}$/,Ko=/^[A-Za-z0-9]{27}$/,qo=/^[a-zA-Z0-9_-]{21}$/,Yo=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ho=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Or=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Xo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Qo="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function es(){return new RegExp(Qo,"u")}const ts=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,rs=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,ns=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,os=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ss=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,mn=/^[A-Za-z0-9_-]*$/,is=/^https?$/,us=/^\+[1-9]\d{6,14}$/,_n="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",as=new RegExp(`^${_n}$`);function gn(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function cs(e){return new RegExp(`^${gn(e)}$`)}function ls(e){const t=gn({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${_n}T(?:${n})$`)}const fs=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},ds=/^-?\d+$/,hs=/^-?\d+(?:\.\d+)?$/,ps=/^[^A-Z]*$/,ms=/^[^a-z]*$/,se=_("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),yn={number:"number",bigint:"bigint",object:"date"},vn=_("$ZodCheckLessThan",(e,t)=>{se.init(e,t);const r=yn[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?n.value<=t.value:n.value{se.init(e,t);const r=yn[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),_s=_("$ZodCheckMultipleOf",(e,t)=>{se.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):_o(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),gs=_("$ZodCheckNumberFormat",(e,t)=>{var i;se.init(e,t),t.format=t.format||"float64";const r=(i=t.format)==null?void 0:i.includes("int"),n=r?"int":"number",[o,s]=wo[t.format];e._zod.onattach.push(u=>{const l=u._zod.bag;l.format=t.format,l.minimum=o,l.maximum=s,r&&(l.pattern=ds)}),e._zod.check=u=>{const l=u.value;if(r){if(!Number.isInteger(l)){u.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?u.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):u.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}ls&&u.issues.push({origin:"number",input:l,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),ys=_("$ZodCheckMaxLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Lt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const o=n.value;if(o.length<=t.maximum)return;const i=Bt(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),vs=_("$ZodCheckMinLength",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Lt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=Bt(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),bs=_("$ZodCheckLengthEquals",(e,t)=>{var r;se.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Lt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,s=o.length;if(s===t.length)return;const i=Bt(o),u=s>t.length;n.issues.push({origin:i,...u?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),dt=_("$ZodCheckStringFormat",(e,t)=>{var r,n;se.init(e,t),e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),ws=_("$ZodCheckRegex",(e,t)=>{dt.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ks=_("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ps),dt.init(e,t)}),zs=_("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ms),dt.init(e,t)}),$s=_("$ZodCheckIncludes",(e,t)=>{se.init(e,t);const r=it(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Os=_("$ZodCheckStartsWith",(e,t)=>{se.init(e,t);const r=new RegExp(`^${it(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Es=_("$ZodCheckEndsWith",(e,t)=>{se.init(e,t);const r=new RegExp(`.*${it(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Zs=_("$ZodCheckOverwrite",(e,t)=>{se.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});class Ss{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(`
`).filter(i=>i),o=Math.min(...n.map(i=>i.length-i.trimStart().length)),s=n.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(const i of s)this.content.push(i)}compile(){const t=Function,r=this==null?void 0:this.args,o=[...((this==null?void 0:this.content)??[""]).map(s=>` ${s}`)];return new t(...r,o.join(`
-`))}}const Is={major:4,minor:4,patch:3},Y=_("$ZodType",(e,t)=>{var o;var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Is;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const s of n)for(const i of s._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),(o=e._zod.deferred)==null||o.push(()=>{e._zod.run=e._zod.parse});else{const s=(u,l,h)=>{let m=Ae(u),d;for(const g of l){if(g._zod.def.when){if(Io(u)||!g._zod.def.when(u))continue}else if(m)continue;const p=u.issues.length,Z=g._zod.check(u);if(Z instanceof Promise&&(h==null?void 0:h.async)===!1)throw new Fe;if(d||Z instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await Z,u.issues.length!==p&&(m||(m=Ae(u,p)))});else{if(u.issues.length===p)continue;m||(m=Ae(u,p))}}return d?d.then(()=>u):u},i=(u,l,h)=>{if(Ae(u))return u.aborted=!0,u;const m=s(l,n,h);if(m instanceof Promise){if(h.async===!1)throw new Fe;return m.then(d=>e._zod.parse(d,h))}return e._zod.parse(m,h)};e._zod.run=(u,l)=>{if(l.skipChecks)return e._zod.parse(u,l);if(l.direction==="backward"){const m=e._zod.parse({value:u.value,issues:[]},{...l,skipChecks:!0});return m instanceof Promise?m.then(d=>i(d,u,l)):i(m,u,l)}const h=e._zod.parse(u,l);if(h instanceof Promise){if(l.async===!1)throw new Fe;return h.then(m=>s(m,n,l))}return s(h,n,l)}}C(e,"~standard",()=>({validate:s=>{var i;try{const u=No(e,s);return u.success?{value:u.data}:{issues:(i=u.error)==null?void 0:i.issues}}catch{return Po(e,s).then(l=>{var h;return l.success?{value:l.data}:{issues:(h=l.error)==null?void 0:h.issues}})}},vendor:"zod",version:1}))}),Gt=_("$ZodString",(e,t)=>{var r;Y.init(e,t),e._zod.pattern=[...((r=e==null?void 0:e._zod.bag)==null?void 0:r.patterns)??[]].pop()??fs(e._zod.bag),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),U=_("$ZodStringFormat",(e,t)=>{dt.init(e,t),Gt.init(e,t)}),As=_("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ho),U.init(e,t)}),Fs=_("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Or(n))}else t.pattern??(t.pattern=Or());U.init(e,t)}),Vs=_("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Xo),U.init(e,t)}),Ts=_("$ZodURL",(e,t)=>{U.init(e,t),e._zod.check=r=>{var n;try{const o=r.value.trim();if(!t.normalize&&((n=t.protocol)==null?void 0:n.source)===is.source&&!/^https?:\/\//i.test(o)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}const s=new URL(o);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(s.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=s.href:r.value=o;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),Ns=_("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=es()),U.init(e,t)}),Ps=_("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=qo),U.init(e,t)}),Ds=_("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Jo),U.init(e,t)}),xs=_("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Bo),U.init(e,t)}),Cs=_("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Wo),U.init(e,t)}),Rs=_("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Go),U.init(e,t)}),js=_("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Ko),U.init(e,t)}),Us=_("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=ls(t)),U.init(e,t)}),Ms=_("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=as),U.init(e,t)}),Ls=_("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=cs(t)),U.init(e,t)}),Js=_("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Yo),U.init(e,t)}),Bs=_("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=ts),U.init(e,t),e._zod.bag.format="ipv4"}),Ws=_("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=rs),U.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Gs=_("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ns),U.init(e,t)}),Ks=_("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=os),U.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[o,s]=n;if(!s)throw new Error;const i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function wn(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const qs=_("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=ss),U.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{wn(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Ys(e){if(!mn.test(e))return!1;const t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return wn(r)}const Hs=_("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=mn),U.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Ys(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Xs=_("$ZodE164",(e,t)=>{t.pattern??(t.pattern=us),U.init(e,t)});function Qs(e,t=null){try{const r=e.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&(o==null?void 0:o.typ)!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const ei=_("$ZodJWT",(e,t)=>{U.init(e,t),e._zod.check=r=>{Qs(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),kn=_("$ZodNumber",(e,t)=>{Y.init(e,t),e._zod.pattern=e._zod.bag.pattern??hs,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}const o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;const s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),r}}),ti=_("$ZodNumberFormat",(e,t)=>{gs.init(e,t),kn.init(e,t)}),ri=_("$ZodUnknown",(e,t)=>{Y.init(e,t),e._zod.parse=r=>r}),ni=_("$ZodNever",(e,t)=>{Y.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function Er(e,t,r){e.issues.length&&t.issues.push(...hn(r,e.issues)),t.value[r]=e.value}const oi=_("$ZodArray",(e,t)=>{Y.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const s=[];for(let i=0;iEr(h,r,i))):Er(l,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function tt(e,t,r,n,o,s){const i=r in n;if(e.issues.length){if(o&&s&&!i)return;t.issues.push(...hn(r,e.issues))}if(!i&&!o){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?i&&(t.value[r]=void 0):t.value[r]=e.value}function zn(e){var n,o,s,i;const t=Object.keys(e.shape);for(const u of t)if(!((i=(s=(o=(n=e.shape)==null?void 0:n[u])==null?void 0:o._zod)==null?void 0:s.traits)!=null&&i.has("$ZodType")))throw new Error(`Invalid element at key "${u}": expected a Zod schema`);const r=bo(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function $n(e,t,r,n,o,s){const i=[],u=o.keySet,l=o.catchall._zod,h=l.def.type,m=l.optin==="optional",d=l.optout==="optional";for(const g in t){if(g==="__proto__"||u.has(g))continue;if(h==="never"){i.push(g);continue}const p=l.run({value:t[g],issues:[]},n);p instanceof Promise?e.push(p.then(Z=>tt(Z,r,g,t,m,d))):tt(p,r,g,t,m,d)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>r):r}const si=_("$ZodObject",(e,t)=>{Y.init(e,t);const r=Object.getOwnPropertyDescriptor(t,"shape");if(!(r!=null&&r.get)){const u=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...u};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Mt(()=>zn(t));C(e._zod,"propValues",()=>{const u=t.shape,l={};for(const h in u){const m=u[h]._zod;if(m.values){l[h]??(l[h]=new Set);for(const d of m.values)l[h].add(d)}}return l});const o=et,s=t.catchall;let i;e._zod.parse=(u,l)=>{i??(i=n.value);const h=u.value;if(!o(h))return u.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),u;u.value={};const m=[],d=i.shape;for(const g of i.keys){const p=d[g],Z=p._zod.optin==="optional",A=p._zod.optout==="optional",T=p._zod.run({value:h[g],issues:[]},l);T instanceof Promise?m.push(T.then(F=>tt(F,u,g,h,Z,A))):tt(T,u,g,h,Z,A)}return s?$n(m,h,u,l,n.value,e):m.length?Promise.all(m).then(()=>u):u}}),ii=_("$ZodObjectJIT",(e,t)=>{si.init(e,t);const r=e._zod.parse,n=Mt(()=>zn(t)),o=g=>{var W,O;const p=new Ss(["shape","payload","ctx"]),Z=n.value,A=I=>{const V=$r(I);return`shape[${V}]._zod.run({ value: input[${V}], issues: [] }, ctx)`};p.write("const input = payload.value;");const T=Object.create(null);let F=0;for(const I of Z.keys)T[I]=`key_${F++}`;p.write("const newResult = {};");for(const I of Z.keys){const V=T[I],j=$r(I),ne=g[I],ge=((W=ne==null?void 0:ne._zod)==null?void 0:W.optin)==="optional",ie=((O=ne==null?void 0:ne._zod)==null?void 0:O.optout)==="optional";p.write(`const ${V} = ${A(I)};`),ge&&ie?p.write(`
+`))}}const Is={major:4,minor:4,patch:3},Y=_("$ZodType",(e,t)=>{var o;var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Is;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const s of n)for(const i of s._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),(o=e._zod.deferred)==null||o.push(()=>{e._zod.run=e._zod.parse});else{const s=(u,l,h)=>{let m=Ae(u),d;for(const g of l){if(g._zod.def.when){if(Io(u)||!g._zod.def.when(u))continue}else if(m)continue;const p=u.issues.length,Z=g._zod.check(u);if(Z instanceof Promise&&(h==null?void 0:h.async)===!1)throw new Fe;if(d||Z instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await Z,u.issues.length!==p&&(m||(m=Ae(u,p)))});else{if(u.issues.length===p)continue;m||(m=Ae(u,p))}}return d?d.then(()=>u):u},i=(u,l,h)=>{if(Ae(u))return u.aborted=!0,u;const m=s(l,n,h);if(m instanceof Promise){if(h.async===!1)throw new Fe;return m.then(d=>e._zod.parse(d,h))}return e._zod.parse(m,h)};e._zod.run=(u,l)=>{if(l.skipChecks)return e._zod.parse(u,l);if(l.direction==="backward"){const m=e._zod.parse({value:u.value,issues:[]},{...l,skipChecks:!0});return m instanceof Promise?m.then(d=>i(d,u,l)):i(m,u,l)}const h=e._zod.parse(u,l);if(h instanceof Promise){if(l.async===!1)throw new Fe;return h.then(m=>s(m,n,l))}return s(h,n,l)}}x(e,"~standard",()=>({validate:s=>{var i;try{const u=No(e,s);return u.success?{value:u.data}:{issues:(i=u.error)==null?void 0:i.issues}}catch{return Po(e,s).then(l=>{var h;return l.success?{value:l.data}:{issues:(h=l.error)==null?void 0:h.issues}})}},vendor:"zod",version:1}))}),Gt=_("$ZodString",(e,t)=>{var r;Y.init(e,t),e._zod.pattern=[...((r=e==null?void 0:e._zod.bag)==null?void 0:r.patterns)??[]].pop()??fs(e._zod.bag),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),U=_("$ZodStringFormat",(e,t)=>{dt.init(e,t),Gt.init(e,t)}),As=_("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ho),U.init(e,t)}),Fs=_("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Or(n))}else t.pattern??(t.pattern=Or());U.init(e,t)}),Vs=_("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Xo),U.init(e,t)}),Ts=_("$ZodURL",(e,t)=>{U.init(e,t),e._zod.check=r=>{var n;try{const o=r.value.trim();if(!t.normalize&&((n=t.protocol)==null?void 0:n.source)===is.source&&!/^https?:\/\//i.test(o)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}const s=new URL(o);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(s.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=s.href:r.value=o;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),Ns=_("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=es()),U.init(e,t)}),Ps=_("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=qo),U.init(e,t)}),Ds=_("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Jo),U.init(e,t)}),Cs=_("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Bo),U.init(e,t)}),xs=_("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Wo),U.init(e,t)}),Rs=_("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Go),U.init(e,t)}),js=_("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Ko),U.init(e,t)}),Us=_("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=ls(t)),U.init(e,t)}),Ms=_("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=as),U.init(e,t)}),Ls=_("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=cs(t)),U.init(e,t)}),Js=_("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Yo),U.init(e,t)}),Bs=_("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=ts),U.init(e,t),e._zod.bag.format="ipv4"}),Ws=_("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=rs),U.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Gs=_("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ns),U.init(e,t)}),Ks=_("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=os),U.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[o,s]=n;if(!s)throw new Error;const i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function wn(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const qs=_("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=ss),U.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{wn(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Ys(e){if(!mn.test(e))return!1;const t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return wn(r)}const Hs=_("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=mn),U.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Ys(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Xs=_("$ZodE164",(e,t)=>{t.pattern??(t.pattern=us),U.init(e,t)});function Qs(e,t=null){try{const r=e.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&(o==null?void 0:o.typ)!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const ei=_("$ZodJWT",(e,t)=>{U.init(e,t),e._zod.check=r=>{Qs(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),kn=_("$ZodNumber",(e,t)=>{Y.init(e,t),e._zod.pattern=e._zod.bag.pattern??hs,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}const o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;const s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),r}}),ti=_("$ZodNumberFormat",(e,t)=>{gs.init(e,t),kn.init(e,t)}),ri=_("$ZodUnknown",(e,t)=>{Y.init(e,t),e._zod.parse=r=>r}),ni=_("$ZodNever",(e,t)=>{Y.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function Er(e,t,r){e.issues.length&&t.issues.push(...hn(r,e.issues)),t.value[r]=e.value}const oi=_("$ZodArray",(e,t)=>{Y.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const s=[];for(let i=0;iEr(h,r,i))):Er(l,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function tt(e,t,r,n,o,s){const i=r in n;if(e.issues.length){if(o&&s&&!i)return;t.issues.push(...hn(r,e.issues))}if(!i&&!o){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?i&&(t.value[r]=void 0):t.value[r]=e.value}function zn(e){var n,o,s,i;const t=Object.keys(e.shape);for(const u of t)if(!((i=(s=(o=(n=e.shape)==null?void 0:n[u])==null?void 0:o._zod)==null?void 0:s.traits)!=null&&i.has("$ZodType")))throw new Error(`Invalid element at key "${u}": expected a Zod schema`);const r=bo(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function $n(e,t,r,n,o,s){const i=[],u=o.keySet,l=o.catchall._zod,h=l.def.type,m=l.optin==="optional",d=l.optout==="optional";for(const g in t){if(g==="__proto__"||u.has(g))continue;if(h==="never"){i.push(g);continue}const p=l.run({value:t[g],issues:[]},n);p instanceof Promise?e.push(p.then(Z=>tt(Z,r,g,t,m,d))):tt(p,r,g,t,m,d)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>r):r}const si=_("$ZodObject",(e,t)=>{Y.init(e,t);const r=Object.getOwnPropertyDescriptor(t,"shape");if(!(r!=null&&r.get)){const u=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...u};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Mt(()=>zn(t));x(e._zod,"propValues",()=>{const u=t.shape,l={};for(const h in u){const m=u[h]._zod;if(m.values){l[h]??(l[h]=new Set);for(const d of m.values)l[h].add(d)}}return l});const o=et,s=t.catchall;let i;e._zod.parse=(u,l)=>{i??(i=n.value);const h=u.value;if(!o(h))return u.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),u;u.value={};const m=[],d=i.shape;for(const g of i.keys){const p=d[g],Z=p._zod.optin==="optional",A=p._zod.optout==="optional",T=p._zod.run({value:h[g],issues:[]},l);T instanceof Promise?m.push(T.then(F=>tt(F,u,g,h,Z,A))):tt(T,u,g,h,Z,A)}return s?$n(m,h,u,l,n.value,e):m.length?Promise.all(m).then(()=>u):u}}),ii=_("$ZodObjectJIT",(e,t)=>{si.init(e,t);const r=e._zod.parse,n=Mt(()=>zn(t)),o=g=>{var W,O;const p=new Ss(["shape","payload","ctx"]),Z=n.value,A=I=>{const V=$r(I);return`shape[${V}]._zod.run({ value: input[${V}], issues: [] }, ctx)`};p.write("const input = payload.value;");const T=Object.create(null);let F=0;for(const I of Z.keys)T[I]=`key_${F++}`;p.write("const newResult = {};");for(const I of Z.keys){const V=T[I],j=$r(I),ne=g[I],_e=((W=ne==null?void 0:ne._zod)==null?void 0:W.optin)==="optional",ie=((O=ne==null?void 0:ne._zod)==null?void 0:O.optout)==="optional";p.write(`const ${V} = ${A(I)};`),_e&&ie?p.write(`
if (${V}.issues.length) {
if (${j} in input) {
payload.issues = payload.issues.concat(${V}.issues.map(iss => ({
@@ -18,7 +18,7 @@ import{k as S,r as fe,j as _e}from"./react-vendor-CgzNJrV9.js";import{c as Ve,d
newResult[${j}] = ${V}.value;
}
- `):ge?p.write(`
+ `):_e?p.write(`
if (${V}.issues.length) {
payload.issues = payload.issues.concat(${V}.issues.map(iss => ({
...iss,
@@ -59,6 +59,6 @@ import{k as S,r as fe,j as _e}from"./react-vendor-CgzNJrV9.js";import{c as Ve,d
}
}
- `)}p.write("payload.value = newResult;"),p.write("return payload;");const z=p.compile();return(I,V)=>z(g,I,V)};let s;const i=et,u=!Ut.jitless,h=u&&yo.value,m=t.catchall;let d;e._zod.parse=(g,p)=>{d??(d=n.value);const Z=g.value;return i(Z)?u&&h&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(s||(s=o(t.shape)),g=s(g,p),m?$n([],Z,g,p,d,e):g):r(g,p):(g.issues.push({expected:"object",code:"invalid_type",input:Z,inst:e}),g)}});function Zr(e,t,r,n){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!Ae(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>Ee(i,n,Oe())))}),t)}const ui=_("$ZodUnion",(e,t)=>{Y.init(e,t),C(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),C(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),C(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),C(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){const n=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Jt(o.source)).join("|")})$`)}});const r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let s=!1;const i=[];for(const u of t.options){const l=u._zod.run({value:n.value,issues:[]},o);if(l instanceof Promise)i.push(l),s=!0;else{if(l.issues.length===0)return l;i.push(l)}}return s?Promise.all(i).then(u=>Zr(u,n,e,o)):Zr(i,n,e,o)}}),ai=_("$ZodIntersection",(e,t)=>{Y.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,s=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([l,h])=>Sr(r,l,h)):Sr(r,s,i)}});function Ft(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(je(e)&&je(t)){const r=Object.keys(t),n=Object.keys(e).filter(s=>r.indexOf(s)!==-1),o={...e,...t};for(const s of n){const i=Ft(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;nu.l&&u.r).map(([u])=>u);if(s.length&&o&&e.issues.push({...o,keys:s}),Ae(e))return e;const i=Ft(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const ci=_("$ZodEnum",(e,t)=>{Y.init(e,t);const r=ln(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>vo.has(typeof o)).map(o=>typeof o=="string"?it(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{const i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}}),li=_("$ZodTransform",(e,t)=>{Y.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new cn(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r.fallback=!0,r));if(o instanceof Promise)throw new Fe;return r.value=o,r.fallback=!0,r}});function Ir(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}const On=_("$ZodOptional",(e,t)=>{Y.init(e,t),e._zod.optin="optional",e._zod.optout="optional",C(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),C(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Jt(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=r.value,s=t.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>Ir(i,o)):Ir(s,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),fi=_("$ZodExactOptional",(e,t)=>{On.init(e,t),C(e._zod,"values",()=>t.innerType._zod.values),C(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),di=_("$ZodNullable",(e,t)=>{Y.init(e,t),C(e._zod,"optin",()=>t.innerType._zod.optin),C(e._zod,"optout",()=>t.innerType._zod.optout),C(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Jt(r.source)}|null)$`):void 0}),C(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),hi=_("$ZodDefault",(e,t)=>{Y.init(e,t),e._zod.optin="optional",C(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>Ar(s,t)):Ar(o,t)}});function Ar(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const pi=_("$ZodPrefault",(e,t)=>{Y.init(e,t),e._zod.optin="optional",C(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),mi=_("$ZodNonOptional",(e,t)=>{Y.init(e,t),C(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>Fr(s,e)):Fr(o,e)}});function Fr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const _i=_("$ZodCatch",(e,t)=>{Y.init(e,t),e._zod.optin="optional",C(e._zod,"optout",()=>t.innerType._zod.optout),C(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.value,s.issues.length&&(r.value=t.catchValue({...r,error:{issues:s.issues.map(i=>Ee(i,n,Oe()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(s=>Ee(s,n,Oe()))},input:r.value}),r.issues=[],r.fallback=!0),r)}}),gi=_("$ZodPipe",(e,t)=>{Y.init(e,t),C(e._zod,"values",()=>t.in._zod.values),C(e._zod,"optin",()=>t.in._zod.optin),C(e._zod,"optout",()=>t.out._zod.optout),C(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>qe(i,t.in,n)):qe(s,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>qe(s,t.out,n)):qe(o,t.out,n)}});function qe(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}const yi=_("$ZodReadonly",(e,t)=>{Y.init(e,t),C(e._zod,"propValues",()=>t.innerType._zod.propValues),C(e._zod,"values",()=>t.innerType._zod.values),C(e._zod,"optin",()=>{var r,n;return(n=(r=t.innerType)==null?void 0:r._zod)==null?void 0:n.optin}),C(e._zod,"optout",()=>{var r,n;return(n=(r=t.innerType)==null?void 0:r._zod)==null?void 0:n.optout}),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Vr):Vr(o)}});function Vr(e){return e.value=Object.freeze(e.value),e}const vi=_("$ZodCustom",(e,t)=>{se.init(e,t),Y.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(s=>Tr(s,r,n,e));Tr(o,r,n,e)}});function Tr(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(Ue(o))}}var Nr;class bi{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){const n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){const r=t._zod.parent;if(r){const n={...this.get(r)??{}};delete n.id;const o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function wi(){return new bi}(Nr=globalThis).__zod_globalRegistry??(Nr.__zod_globalRegistry=wi());const Ce=globalThis.__zod_globalRegistry;function ki(e,t){return new e({type:"string",...E(t)})}function zi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...E(t)})}function Pr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...E(t)})}function $i(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...E(t)})}function Oi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...E(t)})}function Ei(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...E(t)})}function Zi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...E(t)})}function Si(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...E(t)})}function Ii(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...E(t)})}function Ai(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...E(t)})}function Fi(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...E(t)})}function Vi(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...E(t)})}function Ti(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...E(t)})}function Ni(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...E(t)})}function Pi(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...E(t)})}function Di(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...E(t)})}function xi(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...E(t)})}function Ci(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...E(t)})}function Ri(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...E(t)})}function ji(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...E(t)})}function Ui(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...E(t)})}function Mi(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...E(t)})}function Li(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...E(t)})}function Ji(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...E(t)})}function Bi(e,t){return new e({type:"string",format:"date",check:"string_format",...E(t)})}function Wi(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...E(t)})}function Gi(e,t){return new e({type:"string",format:"duration",check:"string_format",...E(t)})}function cc(e,t){return new e({type:"number",coerce:!0,checks:[],...E(t)})}function Ki(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...E(t)})}function qi(e){return new e({type:"unknown"})}function Yi(e,t){return new e({type:"never",...E(t)})}function Dr(e,t){return new vn({check:"less_than",...E(t),value:e,inclusive:!1})}function kt(e,t){return new vn({check:"less_than",...E(t),value:e,inclusive:!0})}function xr(e,t){return new bn({check:"greater_than",...E(t),value:e,inclusive:!1})}function zt(e,t){return new bn({check:"greater_than",...E(t),value:e,inclusive:!0})}function Cr(e,t){return new _s({check:"multiple_of",...E(t),value:e})}function En(e,t){return new ys({check:"max_length",...E(t),maximum:e})}function rt(e,t){return new vs({check:"min_length",...E(t),minimum:e})}function Zn(e,t){return new bs({check:"length_equals",...E(t),length:e})}function Hi(e,t){return new ws({check:"string_format",format:"regex",...E(t),pattern:e})}function Xi(e){return new ks({check:"string_format",format:"lowercase",...E(e)})}function Qi(e){return new zs({check:"string_format",format:"uppercase",...E(e)})}function eu(e,t){return new $s({check:"string_format",format:"includes",...E(t),includes:e})}function tu(e,t){return new Os({check:"string_format",format:"starts_with",...E(t),prefix:e})}function ru(e,t){return new Es({check:"string_format",format:"ends_with",...E(t),suffix:e})}function Te(e){return new Zs({check:"overwrite",tx:e})}function nu(e){return Te(t=>t.normalize(e))}function ou(){return Te(e=>e.trim())}function su(){return Te(e=>e.toLowerCase())}function iu(){return Te(e=>e.toUpperCase())}function uu(){return Te(e=>go(e))}function au(e,t,r){return new e({type:"array",element:t,...E(r)})}function cu(e,t,r){return new e({type:"custom",check:"custom",fn:t,...E(r)})}function lu(e,t){const r=fu(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(Ue(o,n.value,r._zod.def));else{const s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),n.issues.push(Ue(s))}},e(n.value,n)),t);return r}function fu(e,t){const r=new se({check:"custom",...E(t)});return r._zod.check=e,r}function Sn(e){let t=(e==null?void 0:e.target)??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:(e==null?void 0:e.metadata)??Ce,target:t,unrepresentable:(e==null?void 0:e.unrepresentable)??"throw",override:(e==null?void 0:e.override)??(()=>{}),io:(e==null?void 0:e.io)??"output",counter:0,seen:new Map,cycles:(e==null?void 0:e.cycles)??"ref",reused:(e==null?void 0:e.reused)??"inline",external:(e==null?void 0:e.external)??void 0}}function ee(e,t,r={path:[],schemaPath:[]}){var m,d;var n;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;const i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);const u=(d=(m=e._zod).toJSONSchema)==null?void 0:d.call(m);if(u)i.schema=u;else{const g={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,g);else{const Z=i.schema,A=t.processors[o.type];if(!A)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);A(e,t,Z,g)}const p=e._zod.parent;p&&(i.ref||(i.ref=p),ee(p,t,g),t.seen.get(p).isParent=!0)}const l=t.metadataRegistry.get(e);return l&&Object.assign(i.schema,l),t.io==="input"&&oe(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&"_prefault"in i.schema&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function In(e,t){var i,u,l,h;const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const m of e.seen.entries()){const d=(i=e.metadataRegistry.get(m[0]))==null?void 0:i.id;if(d){const g=n.get(d);if(g&&g!==m[0])throw new Error(`Duplicate schema id "${d}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(d,m[0])}}const o=m=>{var A;const d=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const T=(A=e.external.registry.get(m[0]))==null?void 0:A.id,F=e.external.uri??(W=>W);if(T)return{ref:F(T)};const z=m[1].defId??m[1].schema.id??`schema${e.counter++}`;return m[1].defId=z,{defId:z,ref:`${F("__shared")}#/${d}/${z}`}}if(m[1]===r)return{ref:"#"};const p=`#/${d}/`,Z=m[1].schema.id??`__schema${e.counter++}`;return{defId:Z,ref:p+Z}},s=m=>{if(m[1].schema.$ref)return;const d=m[1],{ref:g,defId:p}=o(m);d.def={...d.schema},p&&(d.defId=p);const Z=d.schema;for(const A in Z)delete Z[A];Z.$ref=g};if(e.cycles==="throw")for(const m of e.seen.entries()){const d=m[1];if(d.cycle)throw new Error(`Cycle detected: #/${(u=d.cycle)==null?void 0:u.join("/")}/
+ `)}p.write("payload.value = newResult;"),p.write("return payload;");const z=p.compile();return(I,V)=>z(g,I,V)};let s;const i=et,u=!Ut.jitless,h=u&&yo.value,m=t.catchall;let d;e._zod.parse=(g,p)=>{d??(d=n.value);const Z=g.value;return i(Z)?u&&h&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(s||(s=o(t.shape)),g=s(g,p),m?$n([],Z,g,p,d,e):g):r(g,p):(g.issues.push({expected:"object",code:"invalid_type",input:Z,inst:e}),g)}});function Zr(e,t,r,n){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!Ae(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>Ee(i,n,Oe())))}),t)}const ui=_("$ZodUnion",(e,t)=>{Y.init(e,t),x(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),x(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),x(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),x(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){const n=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>Jt(o.source)).join("|")})$`)}});const r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let s=!1;const i=[];for(const u of t.options){const l=u._zod.run({value:n.value,issues:[]},o);if(l instanceof Promise)i.push(l),s=!0;else{if(l.issues.length===0)return l;i.push(l)}}return s?Promise.all(i).then(u=>Zr(u,n,e,o)):Zr(i,n,e,o)}}),ai=_("$ZodIntersection",(e,t)=>{Y.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,s=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([l,h])=>Sr(r,l,h)):Sr(r,s,i)}});function Ft(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Re(e)&&Re(t)){const r=Object.keys(t),n=Object.keys(e).filter(s=>r.indexOf(s)!==-1),o={...e,...t};for(const s of n){const i=Ft(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;nu.l&&u.r).map(([u])=>u);if(s.length&&o&&e.issues.push({...o,keys:s}),Ae(e))return e;const i=Ft(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const ci=_("$ZodEnum",(e,t)=>{Y.init(e,t);const r=ln(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>vo.has(typeof o)).map(o=>typeof o=="string"?it(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{const i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}}),li=_("$ZodTransform",(e,t)=>{Y.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new cn(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r.fallback=!0,r));if(o instanceof Promise)throw new Fe;return r.value=o,r.fallback=!0,r}});function Ir(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}const On=_("$ZodOptional",(e,t)=>{Y.init(e,t),e._zod.optin="optional",e._zod.optout="optional",x(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),x(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Jt(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=r.value,s=t.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>Ir(i,o)):Ir(s,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),fi=_("$ZodExactOptional",(e,t)=>{On.init(e,t),x(e._zod,"values",()=>t.innerType._zod.values),x(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),di=_("$ZodNullable",(e,t)=>{Y.init(e,t),x(e._zod,"optin",()=>t.innerType._zod.optin),x(e._zod,"optout",()=>t.innerType._zod.optout),x(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${Jt(r.source)}|null)$`):void 0}),x(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),hi=_("$ZodDefault",(e,t)=>{Y.init(e,t),e._zod.optin="optional",x(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>Ar(s,t)):Ar(o,t)}});function Ar(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const pi=_("$ZodPrefault",(e,t)=>{Y.init(e,t),e._zod.optin="optional",x(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),mi=_("$ZodNonOptional",(e,t)=>{Y.init(e,t),x(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>Fr(s,e)):Fr(o,e)}});function Fr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const _i=_("$ZodCatch",(e,t)=>{Y.init(e,t),e._zod.optin="optional",x(e._zod,"optout",()=>t.innerType._zod.optout),x(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.value,s.issues.length&&(r.value=t.catchValue({...r,error:{issues:s.issues.map(i=>Ee(i,n,Oe()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(s=>Ee(s,n,Oe()))},input:r.value}),r.issues=[],r.fallback=!0),r)}}),gi=_("$ZodPipe",(e,t)=>{Y.init(e,t),x(e._zod,"values",()=>t.in._zod.values),x(e._zod,"optin",()=>t.in._zod.optin),x(e._zod,"optout",()=>t.out._zod.optout),x(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>qe(i,t.in,n)):qe(s,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>qe(s,t.out,n)):qe(o,t.out,n)}});function qe(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}const yi=_("$ZodReadonly",(e,t)=>{Y.init(e,t),x(e._zod,"propValues",()=>t.innerType._zod.propValues),x(e._zod,"values",()=>t.innerType._zod.values),x(e._zod,"optin",()=>{var r,n;return(n=(r=t.innerType)==null?void 0:r._zod)==null?void 0:n.optin}),x(e._zod,"optout",()=>{var r,n;return(n=(r=t.innerType)==null?void 0:r._zod)==null?void 0:n.optout}),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Vr):Vr(o)}});function Vr(e){return e.value=Object.freeze(e.value),e}const vi=_("$ZodCustom",(e,t)=>{se.init(e,t),Y.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(s=>Tr(s,r,n,e));Tr(o,r,n,e)}});function Tr(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(je(o))}}var Nr;class bi{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){const n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){const r=t._zod.parent;if(r){const n={...this.get(r)??{}};delete n.id;const o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function wi(){return new bi}(Nr=globalThis).__zod_globalRegistry??(Nr.__zod_globalRegistry=wi());const Ce=globalThis.__zod_globalRegistry;function ki(e,t){return new e({type:"string",...E(t)})}function zi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...E(t)})}function Pr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...E(t)})}function $i(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...E(t)})}function Oi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...E(t)})}function Ei(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...E(t)})}function Zi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...E(t)})}function Si(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...E(t)})}function Ii(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...E(t)})}function Ai(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...E(t)})}function Fi(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...E(t)})}function Vi(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...E(t)})}function Ti(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...E(t)})}function Ni(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...E(t)})}function Pi(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...E(t)})}function Di(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...E(t)})}function Ci(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...E(t)})}function xi(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...E(t)})}function Ri(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...E(t)})}function ji(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...E(t)})}function Ui(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...E(t)})}function Mi(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...E(t)})}function Li(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...E(t)})}function Ji(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...E(t)})}function Bi(e,t){return new e({type:"string",format:"date",check:"string_format",...E(t)})}function Wi(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...E(t)})}function Gi(e,t){return new e({type:"string",format:"duration",check:"string_format",...E(t)})}function ac(e,t){return new e({type:"number",coerce:!0,checks:[],...E(t)})}function Ki(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...E(t)})}function qi(e){return new e({type:"unknown"})}function Yi(e,t){return new e({type:"never",...E(t)})}function Dr(e,t){return new vn({check:"less_than",...E(t),value:e,inclusive:!1})}function kt(e,t){return new vn({check:"less_than",...E(t),value:e,inclusive:!0})}function Cr(e,t){return new bn({check:"greater_than",...E(t),value:e,inclusive:!1})}function zt(e,t){return new bn({check:"greater_than",...E(t),value:e,inclusive:!0})}function xr(e,t){return new _s({check:"multiple_of",...E(t),value:e})}function En(e,t){return new ys({check:"max_length",...E(t),maximum:e})}function rt(e,t){return new vs({check:"min_length",...E(t),minimum:e})}function Zn(e,t){return new bs({check:"length_equals",...E(t),length:e})}function Hi(e,t){return new ws({check:"string_format",format:"regex",...E(t),pattern:e})}function Xi(e){return new ks({check:"string_format",format:"lowercase",...E(e)})}function Qi(e){return new zs({check:"string_format",format:"uppercase",...E(e)})}function eu(e,t){return new $s({check:"string_format",format:"includes",...E(t),includes:e})}function tu(e,t){return new Os({check:"string_format",format:"starts_with",...E(t),prefix:e})}function ru(e,t){return new Es({check:"string_format",format:"ends_with",...E(t),suffix:e})}function Ve(e){return new Zs({check:"overwrite",tx:e})}function nu(e){return Ve(t=>t.normalize(e))}function ou(){return Ve(e=>e.trim())}function su(){return Ve(e=>e.toLowerCase())}function iu(){return Ve(e=>e.toUpperCase())}function uu(){return Ve(e=>go(e))}function au(e,t,r){return new e({type:"array",element:t,...E(r)})}function cu(e,t,r){return new e({type:"custom",check:"custom",fn:t,...E(r)})}function lu(e,t){const r=fu(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(je(o,n.value,r._zod.def));else{const s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),n.issues.push(je(s))}},e(n.value,n)),t);return r}function fu(e,t){const r=new se({check:"custom",...E(t)});return r._zod.check=e,r}function Sn(e){let t=(e==null?void 0:e.target)??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:(e==null?void 0:e.metadata)??Ce,target:t,unrepresentable:(e==null?void 0:e.unrepresentable)??"throw",override:(e==null?void 0:e.override)??(()=>{}),io:(e==null?void 0:e.io)??"output",counter:0,seen:new Map,cycles:(e==null?void 0:e.cycles)??"ref",reused:(e==null?void 0:e.reused)??"inline",external:(e==null?void 0:e.external)??void 0}}function ee(e,t,r={path:[],schemaPath:[]}){var m,d;var n;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;const i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);const u=(d=(m=e._zod).toJSONSchema)==null?void 0:d.call(m);if(u)i.schema=u;else{const g={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,g);else{const Z=i.schema,A=t.processors[o.type];if(!A)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);A(e,t,Z,g)}const p=e._zod.parent;p&&(i.ref||(i.ref=p),ee(p,t,g),t.seen.get(p).isParent=!0)}const l=t.metadataRegistry.get(e);return l&&Object.assign(i.schema,l),t.io==="input"&&oe(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&"_prefault"in i.schema&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function In(e,t){var i,u,l,h;const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const m of e.seen.entries()){const d=(i=e.metadataRegistry.get(m[0]))==null?void 0:i.id;if(d){const g=n.get(d);if(g&&g!==m[0])throw new Error(`Duplicate schema id "${d}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(d,m[0])}}const o=m=>{var A;const d=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const T=(A=e.external.registry.get(m[0]))==null?void 0:A.id,F=e.external.uri??(W=>W);if(T)return{ref:F(T)};const z=m[1].defId??m[1].schema.id??`schema${e.counter++}`;return m[1].defId=z,{defId:z,ref:`${F("__shared")}#/${d}/${z}`}}if(m[1]===r)return{ref:"#"};const p=`#/${d}/`,Z=m[1].schema.id??`__schema${e.counter++}`;return{defId:Z,ref:p+Z}},s=m=>{if(m[1].schema.$ref)return;const d=m[1],{ref:g,defId:p}=o(m);d.def={...d.schema},p&&(d.defId=p);const Z=d.schema;for(const A in Z)delete Z[A];Z.$ref=g};if(e.cycles==="throw")for(const m of e.seen.entries()){const d=m[1];if(d.cycle)throw new Error(`Cycle detected: #/${(u=d.cycle)==null?void 0:u.join("/")}/
-Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const m of e.seen.entries()){const d=m[1];if(t===m[0]){s(m);continue}if(e.external){const p=(l=e.external.registry.get(m[0]))==null?void 0:l.id;if(t!==m[0]&&p){s(m);continue}}if((h=e.metadataRegistry.get(m[0]))==null?void 0:h.id){s(m);continue}if(d.cycle){s(m);continue}if(d.count>1&&e.reused==="ref"){s(m);continue}}}function An(e,t){var u,l,h,m;const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=d=>{const g=e.seen.get(d);if(g.ref===null)return;const p=g.def??g.schema,Z={...p},A=g.ref;if(g.ref=null,A){n(A);const F=e.seen.get(A),z=F.schema;if(z.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(p.allOf=p.allOf??[],p.allOf.push(z)):Object.assign(p,z),Object.assign(p,Z),d._zod.parent===A)for(const O in p)O==="$ref"||O==="allOf"||O in Z||delete p[O];if(z.$ref&&F.def)for(const O in p)O==="$ref"||O==="allOf"||O in F.def&&JSON.stringify(p[O])===JSON.stringify(F.def[O])&&delete p[O]}const T=d._zod.parent;if(T&&T!==A){n(T);const F=e.seen.get(T);if(F!=null&&F.schema.$ref&&(p.$ref=F.schema.$ref,F.def))for(const z in p)z==="$ref"||z==="allOf"||z in F.def&&JSON.stringify(p[z])===JSON.stringify(F.def[z])&&delete p[z]}e.override({zodSchema:d,jsonSchema:p,path:g.path??[]})};for(const d of[...e.seen.entries()].reverse())n(d[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,(u=e.external)!=null&&u.uri){const d=(l=e.external.registry.get(t))==null?void 0:l.id;if(!d)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(d)}Object.assign(o,r.def??r.schema);const s=(h=e.metadataRegistry.get(t))==null?void 0:h.id;s!==void 0&&o.id===s&&delete o.id;const i=((m=e.external)==null?void 0:m.defs)??{};for(const d of e.seen.entries()){const g=d[1];g.def&&g.defId&&(g.def.id===g.defId&&delete g.def.id,i[g.defId]=g.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{const d=JSON.parse(JSON.stringify(o));return Object.defineProperty(d,"~standard",{value:{...t["~standard"],jsonSchema:{input:nt(t,"input",e.processors),output:nt(t,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function oe(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return oe(n.element,r);if(n.type==="set")return oe(n.valueType,r);if(n.type==="lazy")return oe(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return oe(n.innerType,r);if(n.type==="intersection")return oe(n.left,r)||oe(n.right,r);if(n.type==="record"||n.type==="map")return oe(n.keyType,r)||oe(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:oe(n.in,r)||oe(n.out,r);if(n.type==="object"){for(const o in n.shape)if(oe(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if(oe(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if(oe(o,r))return!0;return!!(n.rest&&oe(n.rest,r))}return!1}const du=(e,t={})=>r=>{const n=Sn({...r,processors:t});return ee(e,n),In(n,e),An(n,e)},nt=(e,t,r={})=>n=>{const{libraryOptions:o,target:s}=n??{},i=Sn({...o??{},target:s,io:t,processors:r});return ee(e,i),In(i,e),An(i,e)},hu={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},pu=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:s,maximum:i,format:u,patterns:l,contentEncoding:h}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),u&&(o.format=hu[u]??u,o.format===""&&delete o.format,u==="time"&&delete o.format),h&&(o.contentEncoding=h),l&&l.size>0){const m=[...l];m.length===1?o.pattern=m[0].source:m.length>1&&(o.allOf=[...m.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},mu=(e,t,r,n)=>{const o=r,{minimum:s,maximum:i,format:u,multipleOf:l,exclusiveMaximum:h,exclusiveMinimum:m}=e._zod.bag;typeof u=="string"&&u.includes("int")?o.type="integer":o.type="number";const d=typeof m=="number"&&m>=(s??Number.NEGATIVE_INFINITY),g=typeof h=="number"&&h<=(i??Number.POSITIVE_INFINITY),p=t.target==="draft-04"||t.target==="openapi-3.0";d?p?(o.minimum=m,o.exclusiveMinimum=!0):o.exclusiveMinimum=m:typeof s=="number"&&(o.minimum=s),g?p?(o.maximum=h,o.exclusiveMaximum=!0):o.exclusiveMaximum=h:typeof i=="number"&&(o.maximum=i),typeof l=="number"&&(o.multipleOf=l)},_u=(e,t,r,n)=>{r.not={}},gu=(e,t,r,n)=>{},yu=(e,t,r,n)=>{const o=e._zod.def,s=ln(o.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s},vu=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},bu=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},wu=(e,t,r,n)=>{const o=r,s=e._zod.def,{minimum:i,maximum:u}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof u=="number"&&(o.maxItems=u),o.type="array",o.items=ee(s.element,t,{...n,path:[...n.path,"items"]})},ku=(e,t,r,n)=>{var h;const o=r,s=e._zod.def;o.type="object",o.properties={};const i=s.shape;for(const m in i)o.properties[m]=ee(i[m],t,{...n,path:[...n.path,"properties",m]});const u=new Set(Object.keys(i)),l=new Set([...u].filter(m=>{const d=s.shape[m]._zod;return t.io==="input"?d.optin===void 0:d.optout===void 0}));l.size>0&&(o.required=Array.from(l)),((h=s.catchall)==null?void 0:h._zod.def.type)==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=ee(s.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},zu=(e,t,r,n)=>{const o=e._zod.def,s=o.inclusive===!1,i=o.options.map((u,l)=>ee(u,t,{...n,path:[...n.path,s?"oneOf":"anyOf",l]}));s?r.oneOf=i:r.anyOf=i},$u=(e,t,r,n)=>{const o=e._zod.def,s=ee(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=ee(o.right,t,{...n,path:[...n.path,"allOf",1]}),u=h=>"allOf"in h&&Object.keys(h).length===1,l=[...u(s)?s.allOf:[s],...u(i)?i.allOf:[i]];r.allOf=l},Ou=(e,t,r,n)=>{const o=e._zod.def,s=ee(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},Eu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType},Zu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Su=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Iu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},Au=(e,t,r,n)=>{const o=e._zod.def,s=o.in._zod.traits.has("$ZodTransform"),i=t.io==="input"?s?o.out:o.in:o.out;ee(i,t,n);const u=t.seen.get(e);u.ref=i},Fu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType,r.readOnly=!0},Fn=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType};function Vt(){return Vt=Object.assign?Object.assign.bind():function(e){for(var t=1;t0){var l=o.errors[0][0];r[u]={message:l.message,type:l.code}}else r[u]={message:i,type:s};if(o.code==="invalid_union"&&o.errors.forEach(function(d){return d.forEach(function(g){return e.push(Vt({},g,{path:[].concat(o.path,g.path)}))})}),t){var h=r[u].types,m=h&&h[o.code];r[u]=Ct(u,t,r,s,m?[].concat(m,o.message):o.message)}e.shift()};e.length;)n();return r}function lc(e,t,r){if(r===void 0&&(r={}),function(n){return"_def"in n&&typeof n._def=="object"&&"typeName"in n._def}(e))return function(n,o,s){try{return Promise.resolve(Rr(function(){return Promise.resolve(e[r.mode==="sync"?"parse":"parseAsync"](n,t)).then(function(i){return s.shouldUseNativeValidation&&It({},s),{errors:{},values:r.raw?Object.assign({},n):i}})},function(i){if(function(u){return Array.isArray(u==null?void 0:u.issues)}(i))return{values:{},errors:br(Vu(i.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw i}))}catch(i){return Promise.reject(i)}};if(function(n){return"_zod"in n&&typeof n._zod=="object"}(e))return function(n,o,s){try{return Promise.resolve(Rr(function(){return Promise.resolve((r.mode==="sync"?Vo:To)(e,n,t)).then(function(i){return s.shouldUseNativeValidation&&It({},s),{errors:{},values:r.raw?Object.assign({},n):i}})},function(i){if(function(u){return u instanceof Wt}(i))return{values:{},errors:br(Tu(i.issues,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw i}))}catch(i){return Promise.reject(i)}};throw new Error("Invalid input: not a Zod schema")}const Nu=_("ZodISODateTime",(e,t)=>{Us.init(e,t),L.init(e,t)});function Pu(e){return Ji(Nu,e)}const Du=_("ZodISODate",(e,t)=>{Ms.init(e,t),L.init(e,t)});function xu(e){return Bi(Du,e)}const Cu=_("ZodISOTime",(e,t)=>{Ls.init(e,t),L.init(e,t)});function Ru(e){return Wi(Cu,e)}const ju=_("ZodISODuration",(e,t)=>{Js.init(e,t),L.init(e,t)});function Uu(e){return Gi(ju,e)}const Mu=(e,t)=>{Wt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Fo(e,r)},flatten:{value:r=>Ao(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,At,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,At,2)}},isEmpty:{get(){return e.issues.length===0}}})},de=_("ZodError",Mu,{Parent:Error}),Lu=at(de),Ju=ct(de),Bu=lt(de),Wu=ft(de),Gu=Do(de),Ku=xo(de),qu=Co(de),Yu=Ro(de),Hu=jo(de),Xu=Uo(de),Qu=Mo(de),ea=Lo(de),jr=new WeakMap;function Je(e,t,r){const n=Object.getPrototypeOf(e);let o=jr.get(n);if(o||(o=new Set,jr.set(n,o)),!o.has(t)){o.add(t);for(const s in r){const i=r[s];Object.defineProperty(n,s,{configurable:!0,enumerable:!1,get(){const u=i.bind(this);return Object.defineProperty(this,s,{configurable:!0,writable:!0,enumerable:!0,value:u}),u},set(u){Object.defineProperty(this,s,{configurable:!0,writable:!0,enumerable:!0,value:u})}})}}}const H=_("ZodType",(e,t)=>(Y.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:nt(e,"input"),output:nt(e,"output")}}),e.toJSONSchema=du(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>Lu(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Bu(e,r,n),e.parseAsync=async(r,n)=>Ju(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Wu(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>Gu(e,r,n),e.decode=(r,n)=>Ku(e,r,n),e.encodeAsync=async(r,n)=>qu(e,r,n),e.decodeAsync=async(r,n)=>Yu(e,r,n),e.safeEncode=(r,n)=>Hu(e,r,n),e.safeDecode=(r,n)=>Xu(e,r,n),e.safeEncodeAsync=async(r,n)=>Qu(e,r,n),e.safeDecodeAsync=async(r,n)=>ea(e,r,n),Je(e,"ZodType",{check(...r){const n=this.def;return this.clone(be(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return we(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(Ka(r,n))},superRefine(r,n){return this.check(qa(r,n))},overwrite(r){return this.check(Te(r))},optional(){return Jr(this)},exactOptional(){return Pa(this)},nullable(){return Br(this)},nullish(){return Jr(Br(this))},nonoptional(r){return Ua(this,r)},array(){return Oa(this)},or(r){return Sa([this,r])},and(r){return Aa(this,r)},transform(r){return Wr(this,Ta(r))},default(r){return Ca(this,r)},prefault(r){return ja(this,r)},catch(r){return La(this,r)},pipe(r){return Wr(this,r)},readonly(){return Wa(this)},describe(r){const n=this.clone();return Ce.add(n,{description:r}),n},meta(...r){if(r.length===0)return Ce.get(this);const n=this.clone();return Ce.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){var r;return(r=Ce.get(e))==null?void 0:r.description},configurable:!0}),e)),Vn=_("_ZodString",(e,t)=>{Gt.init(e,t),H.init(e,t),e._zod.processJSONSchema=(n,o,s)=>pu(e,n,o);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,Je(e,"_ZodString",{regex(...n){return this.check(Hi(...n))},includes(...n){return this.check(eu(...n))},startsWith(...n){return this.check(tu(...n))},endsWith(...n){return this.check(ru(...n))},min(...n){return this.check(rt(...n))},max(...n){return this.check(En(...n))},length(...n){return this.check(Zn(...n))},nonempty(...n){return this.check(rt(1,...n))},lowercase(n){return this.check(Xi(n))},uppercase(n){return this.check(Qi(n))},trim(){return this.check(ou())},normalize(...n){return this.check(nu(...n))},toLowerCase(){return this.check(su())},toUpperCase(){return this.check(iu())},slugify(){return this.check(uu())}})}),ta=_("ZodString",(e,t)=>{Gt.init(e,t),Vn.init(e,t),e.email=r=>e.check(zi(ra,r)),e.url=r=>e.check(Si(na,r)),e.jwt=r=>e.check(Li(ya,r)),e.emoji=r=>e.check(Ii(oa,r)),e.guid=r=>e.check(Pr(Ur,r)),e.uuid=r=>e.check($i(Ye,r)),e.uuidv4=r=>e.check(Oi(Ye,r)),e.uuidv6=r=>e.check(Ei(Ye,r)),e.uuidv7=r=>e.check(Zi(Ye,r)),e.nanoid=r=>e.check(Ai(sa,r)),e.guid=r=>e.check(Pr(Ur,r)),e.cuid=r=>e.check(Fi(ia,r)),e.cuid2=r=>e.check(Vi(ua,r)),e.ulid=r=>e.check(Ti(aa,r)),e.base64=r=>e.check(ji(ma,r)),e.base64url=r=>e.check(Ui(_a,r)),e.xid=r=>e.check(Ni(ca,r)),e.ksuid=r=>e.check(Pi(la,r)),e.ipv4=r=>e.check(Di(fa,r)),e.ipv6=r=>e.check(xi(da,r)),e.cidrv4=r=>e.check(Ci(ha,r)),e.cidrv6=r=>e.check(Ri(pa,r)),e.e164=r=>e.check(Mi(ga,r)),e.datetime=r=>e.check(Pu(r)),e.date=r=>e.check(xu(r)),e.time=r=>e.check(Ru(r)),e.duration=r=>e.check(Uu(r))});function fc(e){return ki(ta,e)}const L=_("ZodStringFormat",(e,t)=>{U.init(e,t),Vn.init(e,t)}),ra=_("ZodEmail",(e,t)=>{Vs.init(e,t),L.init(e,t)}),Ur=_("ZodGUID",(e,t)=>{As.init(e,t),L.init(e,t)}),Ye=_("ZodUUID",(e,t)=>{Fs.init(e,t),L.init(e,t)}),na=_("ZodURL",(e,t)=>{Ts.init(e,t),L.init(e,t)}),oa=_("ZodEmoji",(e,t)=>{Ns.init(e,t),L.init(e,t)}),sa=_("ZodNanoID",(e,t)=>{Ps.init(e,t),L.init(e,t)}),ia=_("ZodCUID",(e,t)=>{Ds.init(e,t),L.init(e,t)}),ua=_("ZodCUID2",(e,t)=>{xs.init(e,t),L.init(e,t)}),aa=_("ZodULID",(e,t)=>{Cs.init(e,t),L.init(e,t)}),ca=_("ZodXID",(e,t)=>{Rs.init(e,t),L.init(e,t)}),la=_("ZodKSUID",(e,t)=>{js.init(e,t),L.init(e,t)}),fa=_("ZodIPv4",(e,t)=>{Bs.init(e,t),L.init(e,t)}),da=_("ZodIPv6",(e,t)=>{Ws.init(e,t),L.init(e,t)}),ha=_("ZodCIDRv4",(e,t)=>{Gs.init(e,t),L.init(e,t)}),pa=_("ZodCIDRv6",(e,t)=>{Ks.init(e,t),L.init(e,t)}),ma=_("ZodBase64",(e,t)=>{qs.init(e,t),L.init(e,t)}),_a=_("ZodBase64URL",(e,t)=>{Hs.init(e,t),L.init(e,t)}),ga=_("ZodE164",(e,t)=>{Xs.init(e,t),L.init(e,t)}),ya=_("ZodJWT",(e,t)=>{ei.init(e,t),L.init(e,t)}),va=_("ZodNumber",(e,t)=>{kn.init(e,t),H.init(e,t),e._zod.processJSONSchema=(n,o,s)=>mu(e,n,o),Je(e,"ZodNumber",{gt(n,o){return this.check(xr(n,o))},gte(n,o){return this.check(zt(n,o))},min(n,o){return this.check(zt(n,o))},lt(n,o){return this.check(Dr(n,o))},lte(n,o){return this.check(kt(n,o))},max(n,o){return this.check(kt(n,o))},int(n){return this.check(Mr(n))},safe(n){return this.check(Mr(n))},positive(n){return this.check(xr(0,n))},nonnegative(n){return this.check(zt(0,n))},negative(n){return this.check(Dr(0,n))},nonpositive(n){return this.check(kt(0,n))},multipleOf(n,o){return this.check(Cr(n,o))},step(n,o){return this.check(Cr(n,o))},finite(){return this}});const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null}),ba=_("ZodNumberFormat",(e,t)=>{ti.init(e,t),va.init(e,t)});function Mr(e){return Ki(ba,e)}const wa=_("ZodUnknown",(e,t)=>{ri.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>gu()});function Lr(){return qi(wa)}const ka=_("ZodNever",(e,t)=>{ni.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>_u(e,r,n)});function za(e){return Yi(ka,e)}const $a=_("ZodArray",(e,t)=>{oi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wu(e,r,n,o),e.element=t.element,Je(e,"ZodArray",{min(r,n){return this.check(rt(r,n))},nonempty(r){return this.check(rt(1,r))},max(r,n){return this.check(En(r,n))},length(r,n){return this.check(Zn(r,n))},unwrap(){return this.element}})});function Oa(e,t){return au($a,e,t)}const Ea=_("ZodObject",(e,t)=>{ii.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ku(e,r,n,o),C(e,"shape",()=>t.shape),Je(e,"ZodObject",{keyof(){return Fa(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:Lr()})},loose(){return this.clone({...this._zod.def,catchall:Lr()})},strict(){return this.clone({...this._zod.def,catchall:za()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return $o(this,r)},safeExtend(r){return Oo(this,r)},merge(r){return Eo(this,r)},pick(r){return ko(this,r)},omit(r){return zo(this,r)},partial(...r){return Zo(Tn,this,r[0])},required(...r){return So(Nn,this,r[0])}})});function dc(e,t){const r={type:"object",shape:e??{},...E(t)};return new Ea(r)}const Za=_("ZodUnion",(e,t)=>{ui.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>zu(e,r,n,o),e.options=t.options});function Sa(e,t){return new Za({type:"union",options:e,...E(t)})}const Ia=_("ZodIntersection",(e,t)=>{ai.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>$u(e,r,n,o)});function Aa(e,t){return new Ia({type:"intersection",left:e,right:t})}const Tt=_("ZodEnum",(e,t)=>{ci.init(e,t),H.init(e,t),e._zod.processJSONSchema=(n,o,s)=>yu(e,n,o),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const s={};for(const i of n)if(r.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Tt({...t,checks:[],...E(o),entries:s})},e.exclude=(n,o)=>{const s={...t.entries};for(const i of n)if(r.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Tt({...t,checks:[],...E(o),entries:s})}});function Fa(e,t){const r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Tt({type:"enum",entries:r,...E(t)})}const Va=_("ZodTransform",(e,t)=>{li.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>bu(e,r),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new cn(e.constructor.name);r.addIssue=s=>{if(typeof s=="string")r.issues.push(Ue(s,r.value,t));else{const i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=e),r.issues.push(Ue(i))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(s=>(r.value=s,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function Ta(e){return new Va({type:"transform",transform:e})}const Tn=_("ZodOptional",(e,t)=>{On.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Fn(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Jr(e){return new Tn({type:"optional",innerType:e})}const Na=_("ZodExactOptional",(e,t)=>{fi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Fn(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Pa(e){return new Na({type:"optional",innerType:e})}const Da=_("ZodNullable",(e,t)=>{di.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ou(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Br(e){return new Da({type:"nullable",innerType:e})}const xa=_("ZodDefault",(e,t)=>{hi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Ca(e,t){return new xa({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():dn(t)}})}const Ra=_("ZodPrefault",(e,t)=>{pi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Su(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ja(e,t){return new Ra({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():dn(t)}})}const Nn=_("ZodNonOptional",(e,t)=>{mi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Eu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Ua(e,t){return new Nn({type:"nonoptional",innerType:e,...E(t)})}const Ma=_("ZodCatch",(e,t)=>{_i.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Iu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function La(e,t){return new Ma({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const Ja=_("ZodPipe",(e,t)=>{gi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Au(e,r,n,o),e.in=t.in,e.out=t.out});function Wr(e,t){return new Ja({type:"pipe",in:e,out:t})}const Ba=_("ZodReadonly",(e,t)=>{yi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Fu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Wa(e){return new Ba({type:"readonly",innerType:e})}const Ga=_("ZodCustom",(e,t)=>{vi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>vu(e,r)});function Ka(e,t={}){return cu(Ga,e,t)}function qa(e,t){return lu(e,t)}const Ya=fe.forwardRef(({className:e,type:t,...r},n)=>_e.jsx("input",{type:t,className:Ve("flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...r}));Ya.displayName="Input";const Ha=Gn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Pn=fe.forwardRef(({className:e,...t},r)=>_e.jsx(Gr,{ref:r,className:Ve(Ha(),e),...t}));Pn.displayName=Gr.displayName;const hc=eo,Dn=fe.createContext({}),pc=({...e})=>_e.jsx(Dn.Provider,{value:{name:e.name},children:_e.jsx(Xn,{...e})}),ht=()=>{const e=fe.useContext(Dn),t=fe.useContext(xn),{getFieldState:r,formState:n}=Qn(),o=r(e.name,n);if(!e)throw new Error("useFormField should be used within ");const{id:s}=t;return{id:s,name:e.name,formItemId:`${s}-form-item`,formDescriptionId:`${s}-form-item-description`,formMessageId:`${s}-form-item-message`,...o}},xn=fe.createContext({}),Xa=fe.forwardRef(({className:e,...t},r)=>{const n=fe.useId();return _e.jsx(xn.Provider,{value:{id:n},children:_e.jsx("div",{ref:r,className:Ve("space-y-2",e),...t})})});Xa.displayName="FormItem";const Qa=fe.forwardRef(({className:e,...t},r)=>{const{error:n,formItemId:o}=ht();return _e.jsx(Pn,{ref:r,className:Ve(n&&"text-destructive",e),htmlFor:o,...t})});Qa.displayName="FormLabel";const ec=fe.forwardRef(({...e},t)=>{const{error:r,formItemId:n,formDescriptionId:o,formMessageId:s}=ht();return _e.jsx(Kn,{ref:t,id:n,"aria-describedby":r?`${o} ${s}`:`${o}`,"aria-invalid":!!r,...e})});ec.displayName="FormControl";const tc=fe.forwardRef(({className:e,...t},r)=>{const{formDescriptionId:n}=ht();return _e.jsx("p",{ref:r,id:n,className:Ve("text-[0.8rem] text-muted-foreground",e),...t})});tc.displayName="FormDescription";const rc=fe.forwardRef(({className:e,children:t,...r},n)=>{const{error:o,formMessageId:s}=ht(),i=o?String(o==null?void 0:o.message):t;return i?_e.jsx("p",{ref:n,id:s,className:Ve("text-[0.8rem] font-medium text-destructive",e),...r,children:i}):null});rc.displayName="FormMessage";export{hc as F,Ya as I,va as Z,cc as _,lc as a,pc as b,Xa as c,Qa as d,ec as e,rc as f,dc as o,fc as s,ac as u};
+Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const m of e.seen.entries()){const d=m[1];if(t===m[0]){s(m);continue}if(e.external){const p=(l=e.external.registry.get(m[0]))==null?void 0:l.id;if(t!==m[0]&&p){s(m);continue}}if((h=e.metadataRegistry.get(m[0]))==null?void 0:h.id){s(m);continue}if(d.cycle){s(m);continue}if(d.count>1&&e.reused==="ref"){s(m);continue}}}function An(e,t){var u,l,h,m;const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=d=>{const g=e.seen.get(d);if(g.ref===null)return;const p=g.def??g.schema,Z={...p},A=g.ref;if(g.ref=null,A){n(A);const F=e.seen.get(A),z=F.schema;if(z.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(p.allOf=p.allOf??[],p.allOf.push(z)):Object.assign(p,z),Object.assign(p,Z),d._zod.parent===A)for(const O in p)O==="$ref"||O==="allOf"||O in Z||delete p[O];if(z.$ref&&F.def)for(const O in p)O==="$ref"||O==="allOf"||O in F.def&&JSON.stringify(p[O])===JSON.stringify(F.def[O])&&delete p[O]}const T=d._zod.parent;if(T&&T!==A){n(T);const F=e.seen.get(T);if(F!=null&&F.schema.$ref&&(p.$ref=F.schema.$ref,F.def))for(const z in p)z==="$ref"||z==="allOf"||z in F.def&&JSON.stringify(p[z])===JSON.stringify(F.def[z])&&delete p[z]}e.override({zodSchema:d,jsonSchema:p,path:g.path??[]})};for(const d of[...e.seen.entries()].reverse())n(d[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,(u=e.external)!=null&&u.uri){const d=(l=e.external.registry.get(t))==null?void 0:l.id;if(!d)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(d)}Object.assign(o,r.def??r.schema);const s=(h=e.metadataRegistry.get(t))==null?void 0:h.id;s!==void 0&&o.id===s&&delete o.id;const i=((m=e.external)==null?void 0:m.defs)??{};for(const d of e.seen.entries()){const g=d[1];g.def&&g.defId&&(g.def.id===g.defId&&delete g.def.id,i[g.defId]=g.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{const d=JSON.parse(JSON.stringify(o));return Object.defineProperty(d,"~standard",{value:{...t["~standard"],jsonSchema:{input:nt(t,"input",e.processors),output:nt(t,"output",e.processors)}},enumerable:!1,writable:!1}),d}catch{throw new Error("Error converting schema to JSON.")}}function oe(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return oe(n.element,r);if(n.type==="set")return oe(n.valueType,r);if(n.type==="lazy")return oe(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return oe(n.innerType,r);if(n.type==="intersection")return oe(n.left,r)||oe(n.right,r);if(n.type==="record"||n.type==="map")return oe(n.keyType,r)||oe(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:oe(n.in,r)||oe(n.out,r);if(n.type==="object"){for(const o in n.shape)if(oe(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if(oe(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if(oe(o,r))return!0;return!!(n.rest&&oe(n.rest,r))}return!1}const du=(e,t={})=>r=>{const n=Sn({...r,processors:t});return ee(e,n),In(n,e),An(n,e)},nt=(e,t,r={})=>n=>{const{libraryOptions:o,target:s}=n??{},i=Sn({...o??{},target:s,io:t,processors:r});return ee(e,i),In(i,e),An(i,e)},hu={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},pu=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:s,maximum:i,format:u,patterns:l,contentEncoding:h}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),u&&(o.format=hu[u]??u,o.format===""&&delete o.format,u==="time"&&delete o.format),h&&(o.contentEncoding=h),l&&l.size>0){const m=[...l];m.length===1?o.pattern=m[0].source:m.length>1&&(o.allOf=[...m.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},mu=(e,t,r,n)=>{const o=r,{minimum:s,maximum:i,format:u,multipleOf:l,exclusiveMaximum:h,exclusiveMinimum:m}=e._zod.bag;typeof u=="string"&&u.includes("int")?o.type="integer":o.type="number";const d=typeof m=="number"&&m>=(s??Number.NEGATIVE_INFINITY),g=typeof h=="number"&&h<=(i??Number.POSITIVE_INFINITY),p=t.target==="draft-04"||t.target==="openapi-3.0";d?p?(o.minimum=m,o.exclusiveMinimum=!0):o.exclusiveMinimum=m:typeof s=="number"&&(o.minimum=s),g?p?(o.maximum=h,o.exclusiveMaximum=!0):o.exclusiveMaximum=h:typeof i=="number"&&(o.maximum=i),typeof l=="number"&&(o.multipleOf=l)},_u=(e,t,r,n)=>{r.not={}},gu=(e,t,r,n)=>{},yu=(e,t,r,n)=>{const o=e._zod.def,s=ln(o.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s},vu=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},bu=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},wu=(e,t,r,n)=>{const o=r,s=e._zod.def,{minimum:i,maximum:u}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof u=="number"&&(o.maxItems=u),o.type="array",o.items=ee(s.element,t,{...n,path:[...n.path,"items"]})},ku=(e,t,r,n)=>{var h;const o=r,s=e._zod.def;o.type="object",o.properties={};const i=s.shape;for(const m in i)o.properties[m]=ee(i[m],t,{...n,path:[...n.path,"properties",m]});const u=new Set(Object.keys(i)),l=new Set([...u].filter(m=>{const d=s.shape[m]._zod;return t.io==="input"?d.optin===void 0:d.optout===void 0}));l.size>0&&(o.required=Array.from(l)),((h=s.catchall)==null?void 0:h._zod.def.type)==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=ee(s.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},zu=(e,t,r,n)=>{const o=e._zod.def,s=o.inclusive===!1,i=o.options.map((u,l)=>ee(u,t,{...n,path:[...n.path,s?"oneOf":"anyOf",l]}));s?r.oneOf=i:r.anyOf=i},$u=(e,t,r,n)=>{const o=e._zod.def,s=ee(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=ee(o.right,t,{...n,path:[...n.path,"allOf",1]}),u=h=>"allOf"in h&&Object.keys(h).length===1,l=[...u(s)?s.allOf:[s],...u(i)?i.allOf:[i]];r.allOf=l},Ou=(e,t,r,n)=>{const o=e._zod.def,s=ee(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},Eu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType},Zu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Su=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Iu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},Au=(e,t,r,n)=>{const o=e._zod.def,s=o.in._zod.traits.has("$ZodTransform"),i=t.io==="input"?s?o.out:o.in:o.out;ee(i,t,n);const u=t.seen.get(e);u.ref=i},Fu=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType,r.readOnly=!0},Fn=(e,t,r,n)=>{const o=e._zod.def;ee(o.innerType,t,n);const s=t.seen.get(e);s.ref=o.innerType};function Vt(){return Vt=Object.assign?Object.assign.bind():function(e){for(var t=1;t0){var l=o.errors[0][0];r[u]={message:l.message,type:l.code}}else r[u]={message:i,type:s};if(o.code==="invalid_union"&&o.errors.forEach(function(d){return d.forEach(function(g){return e.push(Vt({},g,{path:[].concat(o.path,g.path)}))})}),t){var h=r[u].types,m=h&&h[o.code];r[u]=xt(u,t,r,s,m?[].concat(m,o.message):o.message)}e.shift()};e.length;)n();return r}function cc(e,t,r){if(r===void 0&&(r={}),function(n){return"_def"in n&&typeof n._def=="object"&&"typeName"in n._def}(e))return function(n,o,s){try{return Promise.resolve(Rr(function(){return Promise.resolve(e[r.mode==="sync"?"parse":"parseAsync"](n,t)).then(function(i){return s.shouldUseNativeValidation&&It({},s),{errors:{},values:r.raw?Object.assign({},n):i}})},function(i){if(function(u){return Array.isArray(u==null?void 0:u.issues)}(i))return{values:{},errors:br(Vu(i.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw i}))}catch(i){return Promise.reject(i)}};if(function(n){return"_zod"in n&&typeof n._zod=="object"}(e))return function(n,o,s){try{return Promise.resolve(Rr(function(){return Promise.resolve((r.mode==="sync"?Vo:To)(e,n,t)).then(function(i){return s.shouldUseNativeValidation&&It({},s),{errors:{},values:r.raw?Object.assign({},n):i}})},function(i){if(function(u){return u instanceof Wt}(i))return{values:{},errors:br(Tu(i.issues,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw i}))}catch(i){return Promise.reject(i)}};throw new Error("Invalid input: not a Zod schema")}const Nu=_("ZodISODateTime",(e,t)=>{Us.init(e,t),L.init(e,t)});function Pu(e){return Ji(Nu,e)}const Du=_("ZodISODate",(e,t)=>{Ms.init(e,t),L.init(e,t)});function Cu(e){return Bi(Du,e)}const xu=_("ZodISOTime",(e,t)=>{Ls.init(e,t),L.init(e,t)});function Ru(e){return Wi(xu,e)}const ju=_("ZodISODuration",(e,t)=>{Js.init(e,t),L.init(e,t)});function Uu(e){return Gi(ju,e)}const Mu=(e,t)=>{Wt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Fo(e,r)},flatten:{value:r=>Ao(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,At,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,At,2)}},isEmpty:{get(){return e.issues.length===0}}})},fe=_("ZodError",Mu,{Parent:Error}),Lu=at(fe),Ju=ct(fe),Bu=lt(fe),Wu=ft(fe),Gu=Do(fe),Ku=Co(fe),qu=xo(fe),Yu=Ro(fe),Hu=jo(fe),Xu=Uo(fe),Qu=Mo(fe),ea=Lo(fe),jr=new WeakMap;function Je(e,t,r){const n=Object.getPrototypeOf(e);let o=jr.get(n);if(o||(o=new Set,jr.set(n,o)),!o.has(t)){o.add(t);for(const s in r){const i=r[s];Object.defineProperty(n,s,{configurable:!0,enumerable:!1,get(){const u=i.bind(this);return Object.defineProperty(this,s,{configurable:!0,writable:!0,enumerable:!0,value:u}),u},set(u){Object.defineProperty(this,s,{configurable:!0,writable:!0,enumerable:!0,value:u})}})}}}const H=_("ZodType",(e,t)=>(Y.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:nt(e,"input"),output:nt(e,"output")}}),e.toJSONSchema=du(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>Lu(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Bu(e,r,n),e.parseAsync=async(r,n)=>Ju(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Wu(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>Gu(e,r,n),e.decode=(r,n)=>Ku(e,r,n),e.encodeAsync=async(r,n)=>qu(e,r,n),e.decodeAsync=async(r,n)=>Yu(e,r,n),e.safeEncode=(r,n)=>Hu(e,r,n),e.safeDecode=(r,n)=>Xu(e,r,n),e.safeEncodeAsync=async(r,n)=>Qu(e,r,n),e.safeDecodeAsync=async(r,n)=>ea(e,r,n),Je(e,"ZodType",{check(...r){const n=this.def;return this.clone(be(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return we(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(Ka(r,n))},superRefine(r,n){return this.check(qa(r,n))},overwrite(r){return this.check(Ve(r))},optional(){return Jr(this)},exactOptional(){return Pa(this)},nullable(){return Br(this)},nullish(){return Jr(Br(this))},nonoptional(r){return Ua(this,r)},array(){return Oa(this)},or(r){return Sa([this,r])},and(r){return Aa(this,r)},transform(r){return Wr(this,Ta(r))},default(r){return xa(this,r)},prefault(r){return ja(this,r)},catch(r){return La(this,r)},pipe(r){return Wr(this,r)},readonly(){return Wa(this)},describe(r){const n=this.clone();return Ce.add(n,{description:r}),n},meta(...r){if(r.length===0)return Ce.get(this);const n=this.clone();return Ce.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){var r;return(r=Ce.get(e))==null?void 0:r.description},configurable:!0}),e)),Vn=_("_ZodString",(e,t)=>{Gt.init(e,t),H.init(e,t),e._zod.processJSONSchema=(n,o,s)=>pu(e,n,o);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,Je(e,"_ZodString",{regex(...n){return this.check(Hi(...n))},includes(...n){return this.check(eu(...n))},startsWith(...n){return this.check(tu(...n))},endsWith(...n){return this.check(ru(...n))},min(...n){return this.check(rt(...n))},max(...n){return this.check(En(...n))},length(...n){return this.check(Zn(...n))},nonempty(...n){return this.check(rt(1,...n))},lowercase(n){return this.check(Xi(n))},uppercase(n){return this.check(Qi(n))},trim(){return this.check(ou())},normalize(...n){return this.check(nu(...n))},toLowerCase(){return this.check(su())},toUpperCase(){return this.check(iu())},slugify(){return this.check(uu())}})}),ta=_("ZodString",(e,t)=>{Gt.init(e,t),Vn.init(e,t),e.email=r=>e.check(zi(ra,r)),e.url=r=>e.check(Si(na,r)),e.jwt=r=>e.check(Li(ya,r)),e.emoji=r=>e.check(Ii(oa,r)),e.guid=r=>e.check(Pr(Ur,r)),e.uuid=r=>e.check($i(Ye,r)),e.uuidv4=r=>e.check(Oi(Ye,r)),e.uuidv6=r=>e.check(Ei(Ye,r)),e.uuidv7=r=>e.check(Zi(Ye,r)),e.nanoid=r=>e.check(Ai(sa,r)),e.guid=r=>e.check(Pr(Ur,r)),e.cuid=r=>e.check(Fi(ia,r)),e.cuid2=r=>e.check(Vi(ua,r)),e.ulid=r=>e.check(Ti(aa,r)),e.base64=r=>e.check(ji(ma,r)),e.base64url=r=>e.check(Ui(_a,r)),e.xid=r=>e.check(Ni(ca,r)),e.ksuid=r=>e.check(Pi(la,r)),e.ipv4=r=>e.check(Di(fa,r)),e.ipv6=r=>e.check(Ci(da,r)),e.cidrv4=r=>e.check(xi(ha,r)),e.cidrv6=r=>e.check(Ri(pa,r)),e.e164=r=>e.check(Mi(ga,r)),e.datetime=r=>e.check(Pu(r)),e.date=r=>e.check(Cu(r)),e.time=r=>e.check(Ru(r)),e.duration=r=>e.check(Uu(r))});function lc(e){return ki(ta,e)}const L=_("ZodStringFormat",(e,t)=>{U.init(e,t),Vn.init(e,t)}),ra=_("ZodEmail",(e,t)=>{Vs.init(e,t),L.init(e,t)}),Ur=_("ZodGUID",(e,t)=>{As.init(e,t),L.init(e,t)}),Ye=_("ZodUUID",(e,t)=>{Fs.init(e,t),L.init(e,t)}),na=_("ZodURL",(e,t)=>{Ts.init(e,t),L.init(e,t)}),oa=_("ZodEmoji",(e,t)=>{Ns.init(e,t),L.init(e,t)}),sa=_("ZodNanoID",(e,t)=>{Ps.init(e,t),L.init(e,t)}),ia=_("ZodCUID",(e,t)=>{Ds.init(e,t),L.init(e,t)}),ua=_("ZodCUID2",(e,t)=>{Cs.init(e,t),L.init(e,t)}),aa=_("ZodULID",(e,t)=>{xs.init(e,t),L.init(e,t)}),ca=_("ZodXID",(e,t)=>{Rs.init(e,t),L.init(e,t)}),la=_("ZodKSUID",(e,t)=>{js.init(e,t),L.init(e,t)}),fa=_("ZodIPv4",(e,t)=>{Bs.init(e,t),L.init(e,t)}),da=_("ZodIPv6",(e,t)=>{Ws.init(e,t),L.init(e,t)}),ha=_("ZodCIDRv4",(e,t)=>{Gs.init(e,t),L.init(e,t)}),pa=_("ZodCIDRv6",(e,t)=>{Ks.init(e,t),L.init(e,t)}),ma=_("ZodBase64",(e,t)=>{qs.init(e,t),L.init(e,t)}),_a=_("ZodBase64URL",(e,t)=>{Hs.init(e,t),L.init(e,t)}),ga=_("ZodE164",(e,t)=>{Xs.init(e,t),L.init(e,t)}),ya=_("ZodJWT",(e,t)=>{ei.init(e,t),L.init(e,t)}),va=_("ZodNumber",(e,t)=>{kn.init(e,t),H.init(e,t),e._zod.processJSONSchema=(n,o,s)=>mu(e,n,o),Je(e,"ZodNumber",{gt(n,o){return this.check(Cr(n,o))},gte(n,o){return this.check(zt(n,o))},min(n,o){return this.check(zt(n,o))},lt(n,o){return this.check(Dr(n,o))},lte(n,o){return this.check(kt(n,o))},max(n,o){return this.check(kt(n,o))},int(n){return this.check(Mr(n))},safe(n){return this.check(Mr(n))},positive(n){return this.check(Cr(0,n))},nonnegative(n){return this.check(zt(0,n))},negative(n){return this.check(Dr(0,n))},nonpositive(n){return this.check(kt(0,n))},multipleOf(n,o){return this.check(xr(n,o))},step(n,o){return this.check(xr(n,o))},finite(){return this}});const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null}),ba=_("ZodNumberFormat",(e,t)=>{ti.init(e,t),va.init(e,t)});function Mr(e){return Ki(ba,e)}const wa=_("ZodUnknown",(e,t)=>{ri.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>gu()});function Lr(){return qi(wa)}const ka=_("ZodNever",(e,t)=>{ni.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>_u(e,r,n)});function za(e){return Yi(ka,e)}const $a=_("ZodArray",(e,t)=>{oi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wu(e,r,n,o),e.element=t.element,Je(e,"ZodArray",{min(r,n){return this.check(rt(r,n))},nonempty(r){return this.check(rt(1,r))},max(r,n){return this.check(En(r,n))},length(r,n){return this.check(Zn(r,n))},unwrap(){return this.element}})});function Oa(e,t){return au($a,e,t)}const Ea=_("ZodObject",(e,t)=>{ii.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ku(e,r,n,o),x(e,"shape",()=>t.shape),Je(e,"ZodObject",{keyof(){return Fa(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:Lr()})},loose(){return this.clone({...this._zod.def,catchall:Lr()})},strict(){return this.clone({...this._zod.def,catchall:za()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return $o(this,r)},safeExtend(r){return Oo(this,r)},merge(r){return Eo(this,r)},pick(r){return ko(this,r)},omit(r){return zo(this,r)},partial(...r){return Zo(Tn,this,r[0])},required(...r){return So(Nn,this,r[0])}})});function fc(e,t){const r={type:"object",shape:e??{},...E(t)};return new Ea(r)}const Za=_("ZodUnion",(e,t)=>{ui.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>zu(e,r,n,o),e.options=t.options});function Sa(e,t){return new Za({type:"union",options:e,...E(t)})}const Ia=_("ZodIntersection",(e,t)=>{ai.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>$u(e,r,n,o)});function Aa(e,t){return new Ia({type:"intersection",left:e,right:t})}const Tt=_("ZodEnum",(e,t)=>{ci.init(e,t),H.init(e,t),e._zod.processJSONSchema=(n,o,s)=>yu(e,n,o),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const s={};for(const i of n)if(r.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Tt({...t,checks:[],...E(o),entries:s})},e.exclude=(n,o)=>{const s={...t.entries};for(const i of n)if(r.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Tt({...t,checks:[],...E(o),entries:s})}});function Fa(e,t){const r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Tt({type:"enum",entries:r,...E(t)})}const Va=_("ZodTransform",(e,t)=>{li.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>bu(e,r),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new cn(e.constructor.name);r.addIssue=s=>{if(typeof s=="string")r.issues.push(je(s,r.value,t));else{const i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=e),r.issues.push(je(i))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(s=>(r.value=s,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function Ta(e){return new Va({type:"transform",transform:e})}const Tn=_("ZodOptional",(e,t)=>{On.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Fn(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Jr(e){return new Tn({type:"optional",innerType:e})}const Na=_("ZodExactOptional",(e,t)=>{fi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Fn(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Pa(e){return new Na({type:"optional",innerType:e})}const Da=_("ZodNullable",(e,t)=>{di.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ou(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Br(e){return new Da({type:"nullable",innerType:e})}const Ca=_("ZodDefault",(e,t)=>{hi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function xa(e,t){return new Ca({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():dn(t)}})}const Ra=_("ZodPrefault",(e,t)=>{pi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Su(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ja(e,t){return new Ra({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():dn(t)}})}const Nn=_("ZodNonOptional",(e,t)=>{mi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Eu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Ua(e,t){return new Nn({type:"nonoptional",innerType:e,...E(t)})}const Ma=_("ZodCatch",(e,t)=>{_i.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Iu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function La(e,t){return new Ma({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const Ja=_("ZodPipe",(e,t)=>{gi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Au(e,r,n,o),e.in=t.in,e.out=t.out});function Wr(e,t){return new Ja({type:"pipe",in:e,out:t})}const Ba=_("ZodReadonly",(e,t)=>{yi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Fu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Wa(e){return new Ba({type:"readonly",innerType:e})}const Ga=_("ZodCustom",(e,t)=>{vi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,n,o)=>vu(e,r)});function Ka(e,t={}){return cu(Ga,e,t)}function qa(e,t){return lu(e,t)}const Ya=Kn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Pn=me.forwardRef(({className:e,...t},r)=>ye.jsx(Gr,{ref:r,className:Ue(Ya(),e),...t}));Pn.displayName=Gr.displayName;const dc=eo,Dn=me.createContext({}),hc=({...e})=>ye.jsx(Dn.Provider,{value:{name:e.name},children:ye.jsx(Xn,{...e})}),ht=()=>{const e=me.useContext(Dn),t=me.useContext(Cn),{getFieldState:r,formState:n}=Qn(),o=r(e.name,n);if(!e)throw new Error("useFormField should be used within ");const{id:s}=t;return{id:s,name:e.name,formItemId:`${s}-form-item`,formDescriptionId:`${s}-form-item-description`,formMessageId:`${s}-form-item-message`,...o}},Cn=me.createContext({}),Ha=me.forwardRef(({className:e,...t},r)=>{const n=me.useId();return ye.jsx(Cn.Provider,{value:{id:n},children:ye.jsx("div",{ref:r,className:Ue("space-y-2",e),...t})})});Ha.displayName="FormItem";const Xa=me.forwardRef(({className:e,...t},r)=>{const{error:n,formItemId:o}=ht();return ye.jsx(Pn,{ref:r,className:Ue(n&&"text-destructive",e),htmlFor:o,...t})});Xa.displayName="FormLabel";const Qa=me.forwardRef(({...e},t)=>{const{error:r,formItemId:n,formDescriptionId:o,formMessageId:s}=ht();return ye.jsx(Gn,{ref:t,id:n,"aria-describedby":r?`${o} ${s}`:`${o}`,"aria-invalid":!!r,...e})});Qa.displayName="FormControl";const ec=me.forwardRef(({className:e,...t},r)=>{const{formDescriptionId:n}=ht();return ye.jsx("p",{ref:r,id:n,className:Ue("text-[0.8rem] text-muted-foreground",e),...t})});ec.displayName="FormDescription";const tc=me.forwardRef(({className:e,children:t,...r},n)=>{const{error:o,formMessageId:s}=ht(),i=o?String(o==null?void 0:o.message):t;return i?ye.jsx("p",{ref:n,id:s,className:Ue("text-[0.8rem] font-medium text-destructive",e),...r,children:i}):null});tc.displayName="FormMessage";export{dc as F,va as Z,ac as _,cc as a,hc as b,Ha as c,Xa as d,Qa as e,tc as f,fc as o,lc as s,uc as u};
diff --git a/embed_static/static/spa/assets/index-474mTIgd.js b/embed_static/static/spa/assets/index-474mTIgd.js
deleted file mode 100644
index 0fda95c..0000000
--- a/embed_static/static/spa/assets/index-474mTIgd.js
+++ /dev/null
@@ -1,2 +0,0 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomePage-D-Yzai0_.js","assets/react-vendor-CgzNJrV9.js","assets/notify-Zesh5czd.js","assets/virtual-vendor-05wd80F5.js","assets/spinner-DH1syOsQ.js","assets/ui-vendor-CdH1UOKW.js","assets/badge-CsEfIQQ2.js","assets/content-CKr4Ur51.js","assets/PostDetailPage-D4qGd4ZA.js","assets/postContent-CNPsgNvN.js","assets/markdown-vendor-DxR1h-Bq.js","assets/LoginPage-XRVgE8q8.js","assets/form-BzHbu9bJ.js","assets/RegisterPage-C4KCPGxX.js","assets/ComposePage-Dv2Wt-UO.js","assets/BoardsManagePage-DC-_uHJb.js","assets/ProfilePage-nO8fm023.js","assets/FavoritesPage-Dvc9bR9_.js"])))=>i.map(i=>d[i]);
-var wo=Object.defineProperty;var ko=(e,o,t)=>o in e?wo(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t;var nt=(e,o,t)=>ko(e,typeof o!="symbol"?o+"":o,t);import{r as y,j as a,e as wt,g as kt,i as jo,O as So,k as u,m as No,B as Eo,n as Co,p as ue,q as To}from"./react-vendor-CgzNJrV9.js";import{S as jt,C as _o,a as St,P as Ro,b as Nt,I as Et,c as Ct,d as Tt,e as zo,R as _t,f as Po,L as Rt,g as zt,h as Ao,T as Io,H as Mo,i as Do,j as Oo,k as Lo,l as Bo,m as $o,M as Fo,n as Vo,o as Go,p as Wo}from"./ui-vendor-CdH1UOKW.js";(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))s(c);new MutationObserver(c=>{for(const l of c)if(l.type==="childList")for(const n of l.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&s(n)}).observe(document,{childList:!0,subtree:!0});function t(c){const l={};return c.integrity&&(l.integrity=c.integrity),c.referrerPolicy&&(l.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?l.credentials="include":c.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function s(c){if(c.ep)return;c.ep=!0;const l=t(c);fetch(c.href,l)}})();const Pt="j13-theme";function At(){return localStorage.getItem(Pt)==="dark"?"dark":"light"}function It(e){const o=document.documentElement;o.classList.toggle("dark",e==="dark"),o.style.colorScheme=e,localStorage.setItem(Pt,e)}const Ho="modulepreload",Yo=function(e){return"/"+e},it={},we=function(o,t,s){let c=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const n=document.querySelector("meta[property=csp-nonce]"),d=(n==null?void 0:n.nonce)||(n==null?void 0:n.getAttribute("nonce"));c=Promise.allSettled(t.map(m=>{if(m=Yo(m),m in it)return;it[m]=!0;const i=m.endsWith(".css"),v=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${v}`))return;const r=document.createElement("link");if(r.rel=i?"stylesheet":Ho,i||(r.as="script"),r.crossOrigin="",r.href=m,d&&r.setAttribute("nonce",d),document.head.appendChild(r),i)return new Promise((S,_)=>{r.addEventListener("load",S),r.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${m}`)))})}))}function l(n){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=n,window.dispatchEvent(d),!d.defaultPrevented)throw n}return c.then(n=>{for(const d of n||[])d.status==="rejected"&&l(d.reason);return o().catch(l)})},Uo="";async function R(e,o={}){const t=await fetch(Uo+e,{credentials:"same-origin",...o,headers:{...o.body instanceof FormData?{}:{"Content-Type":"application/json"},...o.headers}});let s;try{s=await t.json()}catch{throw new Error("服务器响应异常")}if(!t.ok)throw new Error(s.error||"请求失败");return s}const be={me:()=>R("/api/me"),stats:()=>R("/api/stats"),boards:()=>R("/api/boards"),posts:e=>{const o=new URLSearchParams(e).toString();return R(`/api/posts?${o}`)},hotPosts:()=>R("/api/posts/hot"),post:e=>R(`/api/posts/${e}`),comments:(e,o)=>{const t=o!=null&&o.length?`?my_ids=${o.join(",")}`:"";return R(`/api/posts/${e}/comments${t}`)},notifications:()=>R("/api/notifications"),online:()=>R("/api/online"),presence:()=>R("/api/presence",{method:"POST"}),favorites:()=>R("/api/favorites"),createBoard:e=>R("/api/admin/boards",{method:"POST",body:JSON.stringify(e)}),updateBoard:(e,o)=>R(`/api/admin/boards/${e}`,{method:"PUT",body:JSON.stringify(o)}),deleteBoard:e=>R(`/api/admin/boards/${e}`,{method:"DELETE"}),updateNickname:e=>{const o=new FormData;return o.append("nickname",e),R("/api/profile/nickname",{method:"POST",body:o,headers:{}})},updatePassword:(e,o)=>{const t=new FormData;return t.append("old_password",e),t.append("new_password",o),R("/api/profile/password",{method:"POST",body:t,headers:{}})},uploadAvatar:e=>{const o=new FormData;return o.append("avatar",e),R("/api/profile/avatar",{method:"POST",body:o,headers:{}})},createPost:e=>{const o=new FormData;return o.append("board_id",e.board_id),o.append("title",e.title),o.append("content",e.content),o.append("tags",e.tags||""),R("/api/posts",{method:"POST",body:o,headers:{}})},updatePost:(e,o)=>{const t=new FormData;return t.append("title",o.title),t.append("content",o.content),t.append("tags",o.tags||""),R(`/api/posts/${e}`,{method:"PUT",body:t,headers:{}})},login:(e,o)=>{const t=new FormData;return t.append("username",e),t.append("password",o),R("/api/login",{method:"POST",body:t,headers:{}})},register:(e,o,t)=>{const s=new FormData;return s.append("username",e),s.append("password",o),s.append("nickname",t),R("/api/register",{method:"POST",body:s,headers:{}})},logout:()=>R("/api/logout",{method:"POST"}),like:e=>R(`/api/posts/${e}/like`,{method:"POST"}),favorite:e=>R(`/api/posts/${e}/favorite`,{method:"POST"}),addComment:(e,o)=>{const t=new FormData;return t.append("content",o.content),o.replyTo&&t.append("reply_to",String(o.replyTo)),o.guestNick&&t.append("guest_nick",o.guestNick),o.guestEmail&&t.append("guest_email",o.guestEmail),o.guestUrl&&t.append("guest_url",o.guestUrl),o.isPrivate&&t.append("is_private","1"),R(`/api/posts/${e}/comments`,{method:"POST",body:t,headers:{}})},ping:()=>R("/api/ping",{method:"POST"})},Mt=y.createContext({user:null,loading:!0,refresh:async()=>{},logout:async()=>{}});function Ko({children:e}){const[o,t]=y.useState(null),[s,c]=y.useState(!0),l=y.useCallback(async()=>{try{const d=await be.me();t(d.user??null)}catch{t(null)}finally{c(!1)}},[]);y.useEffect(()=>{l()},[l]);const n=async()=>{await be.logout(),t(null)};return a.jsx(Mt.Provider,{value:{user:o,loading:s,refresh:l,logout:n},children:e})}const Dt=()=>y.useContext(Mt),Ot=y.createContext({theme:"light",toggle:()=>{}});function Xo({children:e}){const[o,t]=y.useState(At);y.useLayoutEffect(()=>{It(o)},[o]);const s=()=>t(c=>c==="light"?"dark":"light");return a.jsx(Ot.Provider,{value:{theme:o,toggle:s},children:e})}const Lt=()=>y.useContext(Ot);function qo(e){const[o,t]=y.useState(()=>window.matchMedia(e).matches);return y.useLayoutEffect(()=>{const s=window.matchMedia(e),c=()=>t(s.matches);return s.addEventListener("change",c),()=>s.removeEventListener("change",c)},[e]),o}function He(){return a.jsxs("div",{className:"page-loader",role:"status","aria-live":"polite",children:[a.jsx("span",{className:"page-loader__dot"}),"加载中…"]})}function Bt(e){var o,t,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var c=e.length;for(o=0;o{const t=new Array(e.length+o.length);for(let s=0;s({classGroupId:e,validator:o}),Ft=(e=new Map,o=null,t)=>({nextPart:e,validators:o,classGroupId:t}),Fe="-",lt=[],Zo="arbitrary..",es=e=>{const o=os(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:n=>{if(n.startsWith("[")&&n.endsWith("]"))return ts(n);const d=n.split(Fe),m=d[0]===""&&d.length>1?1:0;return Vt(d,m,o)},getConflictingClassGroupIds:(n,d)=>{if(d){const m=s[n],i=t[n];return m?i?Jo(i,m):m:i||lt}return t[n]||lt}}},Vt=(e,o,t)=>{if(e.length-o===0)return t.classGroupId;const c=e[o],l=t.nextPart.get(c);if(l){const i=Vt(e,o+1,l);if(i)return i}const n=t.validators;if(n===null)return;const d=o===0?e.join(Fe):e.slice(o).join(Fe),m=n.length;for(let i=0;ie.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const o=e.slice(1,-1),t=o.indexOf(":"),s=o.slice(0,t);return s?Zo+s:void 0})(),os=e=>{const{theme:o,classGroups:t}=e;return ss(t,o)},ss=(e,o)=>{const t=Ft();for(const s in e){const c=e[s];Xe(c,t,s,o)}return t},Xe=(e,o,t,s)=>{const c=e.length;for(let l=0;l{if(typeof e=="string"){as(e,o,t);return}if(typeof e=="function"){ns(e,o,t,s);return}is(e,o,t,s)},as=(e,o,t)=>{const s=e===""?o:Gt(o,e);s.classGroupId=t},ns=(e,o,t,s)=>{if(ls(e)){Xe(e(s),o,t,s);return}o.validators===null&&(o.validators=[]),o.validators.push(Qo(t,e))},is=(e,o,t,s)=>{const c=Object.entries(e),l=c.length;for(let n=0;n{let t=e;const s=o.split(Fe),c=s.length;for(let l=0;l"isThemeGetter"in e&&e.isThemeGetter===!0,cs=e=>{if(e<1)return{get:()=>{},set:()=>{}};let o=0,t=Object.create(null),s=Object.create(null);const c=(l,n)=>{t[l]=n,o++,o>e&&(o=0,s=t,t=Object.create(null))};return{get(l){let n=t[l];if(n!==void 0)return n;if((n=s[l])!==void 0)return c(l,n),n},set(l,n){l in t?t[l]=n:c(l,n)}}},Ye="!",ct=":",ds=[],dt=(e,o,t,s,c)=>({modifiers:e,hasImportantModifier:o,baseClassName:t,maybePostfixModifierPosition:s,isExternal:c}),us=e=>{const{prefix:o,experimentalParseClassName:t}=e;let s=c=>{const l=[];let n=0,d=0,m=0,i;const v=c.length;for(let M=0;Mm?i-m:void 0;return dt(l,_,S,z)};if(o){const c=o+ct,l=s;s=n=>n.startsWith(c)?l(n.slice(c.length)):dt(ds,!1,n,void 0,!0)}if(t){const c=s;s=l=>t({className:l,parseClassName:c})}return s},ms=e=>{const o=new Map;return e.orderSensitiveModifiers.forEach((t,s)=>{o.set(t,1e6+s)}),t=>{const s=[];let c=[];for(let l=0;l0&&(c.sort(),s.push(...c),c=[]),s.push(n)):c.push(n)}return c.length>0&&(c.sort(),s.push(...c)),s}},ps=e=>({cache:cs(e.cacheSize),parseClassName:us(e),sortModifiers:ms(e),postfixLookupClassGroupIds:fs(e),...es(e)}),fs=e=>{const o=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let s=0;s{const{parseClassName:t,getClassGroupId:s,getConflictingClassGroupIds:c,sortModifiers:l,postfixLookupClassGroupIds:n}=o,d=[],m=e.trim().split(hs);let i="";for(let v=m.length-1;v>=0;v-=1){const r=m[v],{isExternal:S,modifiers:_,hasImportantModifier:z,baseClassName:M,maybePostfixModifierPosition:I}=t(r);if(S){i=r+(i.length>0?" "+i:i);continue}let j=!!I,L;if(j){const D=M.substring(0,I);L=s(D);const p=L&&n[L]?s(M):void 0;p&&p!==L&&(L=p,j=!1)}else L=s(M);if(!L){if(!j){i=r+(i.length>0?" "+i:i);continue}if(L=s(M),!L){i=r+(i.length>0?" "+i:i);continue}j=!1}const K=_.length===0?"":_.length===1?_[0]:l(_).join(":"),q=z?K+Ye:K,Z=q+L;if(d.indexOf(Z)>-1)continue;d.push(Z);const B=c(L,j);for(let D=0;D0?" "+i:i)}return i},bs=(...e)=>{let o=0,t,s,c="";for(;o{if(typeof e=="string")return e;let o,t="";for(let s=0;s{let t,s,c,l;const n=m=>{const i=o.reduce((v,r)=>r(v),e());return t=ps(i),s=t.cache.get,c=t.cache.set,l=d,d(m)},d=m=>{const i=s(m);if(i)return i;const v=gs(m,t);return c(m,v),v};return l=n,(...m)=>l(bs(...m))},vs=[],$=e=>{const o=t=>t[e]||vs;return o.isThemeGetter=!0,o},Ht=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Yt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,xs=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,ws=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ks=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,js=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ss=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ns=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,xe=e=>xs.test(e),w=e=>!!e&&!Number.isNaN(Number(e)),me=e=>!!e&&Number.isInteger(Number(e)),We=e=>e.endsWith("%")&&w(e.slice(0,-1)),ge=e=>ws.test(e),Ut=()=>!0,Es=e=>ks.test(e)&&!js.test(e),qe=()=>!1,Cs=e=>Ss.test(e),Ts=e=>Ns.test(e),_s=e=>!f(e)&&!h(e),Rs=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),zs=e=>ke(e,qt,qe),f=e=>Ht.test(e),Ee=e=>ke(e,Jt,Es),ut=e=>ke(e,Bs,w),Ps=e=>ke(e,Zt,Ut),As=e=>ke(e,Qt,qe),mt=e=>ke(e,Kt,qe),Is=e=>ke(e,Xt,Ts),Le=e=>ke(e,eo,Cs),h=e=>Yt.test(e),Ie=e=>Ce(e,Jt),Ms=e=>Ce(e,Qt),pt=e=>Ce(e,Kt),Ds=e=>Ce(e,qt),Os=e=>Ce(e,Xt),Be=e=>Ce(e,eo,!0),Ls=e=>Ce(e,Zt,!0),ke=(e,o,t)=>{const s=Ht.exec(e);return s?s[1]?o(s[1]):t(s[2]):!1},Ce=(e,o,t=!1)=>{const s=Yt.exec(e);return s?s[1]?o(s[1]):t:!1},Kt=e=>e==="position"||e==="percentage",Xt=e=>e==="image"||e==="url",qt=e=>e==="length"||e==="size"||e==="bg-size",Jt=e=>e==="length",Bs=e=>e==="number",Qt=e=>e==="family-name",Zt=e=>e==="number"||e==="weight",eo=e=>e==="shadow",$s=()=>{const e=$("color"),o=$("font"),t=$("text"),s=$("font-weight"),c=$("tracking"),l=$("leading"),n=$("breakpoint"),d=$("container"),m=$("spacing"),i=$("radius"),v=$("shadow"),r=$("inset-shadow"),S=$("text-shadow"),_=$("drop-shadow"),z=$("blur"),M=$("perspective"),I=$("aspect"),j=$("ease"),L=$("animate"),K=()=>["auto","avoid","all","avoid-page","page","left","right","column"],q=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Z=()=>[...q(),h,f],B=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],p=()=>[h,f,m],O=()=>[xe,"full","auto",...p()],ee=()=>[me,"none","subgrid",h,f],ce=()=>["auto",{span:["full",me,h,f]},me,h,f],te=()=>[me,"auto",h,f],H=()=>["auto","min","max","fr",h,f],se=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Y=()=>["start","end","center","stretch","center-safe","end-safe"],g=()=>["auto",...p()],E=()=>[xe,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...p()],U=()=>[xe,"screen","full","dvw","lvw","svw","min","max","fit",...p()],V=()=>[xe,"screen","full","lh","dvh","lvh","svh","min","max","fit",...p()],b=()=>[e,h,f],de=()=>[...q(),pt,mt,{position:[h,f]}],je=()=>["no-repeat",{repeat:["","x","y","space","round"]}],N=()=>["auto","cover","contain",Ds,zs,{size:[h,f]}],P=()=>[We,Ie,Ee],k=()=>["","none","full",i,h,f],C=()=>["",w,Ie,Ee],re=()=>["solid","dashed","dotted","double"],T=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],A=()=>[w,We,pt,mt],Se=()=>["","none",z,h,f],fe=()=>["none",w,h,f],ae=()=>["none",w,h,f],Pe=()=>[w,h,f],ye=()=>[xe,"full",...p()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ge],breakpoint:[ge],color:[Ut],container:[ge],"drop-shadow":[ge],ease:["in","out","in-out"],font:[_s],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ge],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ge],shadow:[ge],spacing:["px",w],text:[ge],"text-shadow":[ge],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",xe,f,h,I]}],container:["container"],"container-type":[{"@container":["","normal","size",h,f]}],"container-named":[Rs],columns:[{columns:[w,f,h,d]}],"break-after":[{"break-after":K()}],"break-before":[{"break-before":K()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Z()}],overflow:[{overflow:B()}],"overflow-x":[{"overflow-x":B()}],"overflow-y":[{"overflow-y":B()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:O()}],"inset-x":[{"inset-x":O()}],"inset-y":[{"inset-y":O()}],start:[{"inset-s":O(),start:O()}],end:[{"inset-e":O(),end:O()}],"inset-bs":[{"inset-bs":O()}],"inset-be":[{"inset-be":O()}],top:[{top:O()}],right:[{right:O()}],bottom:[{bottom:O()}],left:[{left:O()}],visibility:["visible","invisible","collapse"],z:[{z:[me,"auto",h,f]}],basis:[{basis:[xe,"full","auto",d,...p()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[w,xe,"auto","initial","none",f]}],grow:[{grow:["",w,h,f]}],shrink:[{shrink:["",w,h,f]}],order:[{order:[me,"first","last","none",h,f]}],"grid-cols":[{"grid-cols":ee()}],"col-start-end":[{col:ce()}],"col-start":[{"col-start":te()}],"col-end":[{"col-end":te()}],"grid-rows":[{"grid-rows":ee()}],"row-start-end":[{row:ce()}],"row-start":[{"row-start":te()}],"row-end":[{"row-end":te()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":H()}],"auto-rows":[{"auto-rows":H()}],gap:[{gap:p()}],"gap-x":[{"gap-x":p()}],"gap-y":[{"gap-y":p()}],"justify-content":[{justify:[...se(),"normal"]}],"justify-items":[{"justify-items":[...Y(),"normal"]}],"justify-self":[{"justify-self":["auto",...Y()]}],"align-content":[{content:["normal",...se()]}],"align-items":[{items:[...Y(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Y(),{baseline:["","last"]}]}],"place-content":[{"place-content":se()}],"place-items":[{"place-items":[...Y(),"baseline"]}],"place-self":[{"place-self":["auto",...Y()]}],p:[{p:p()}],px:[{px:p()}],py:[{py:p()}],ps:[{ps:p()}],pe:[{pe:p()}],pbs:[{pbs:p()}],pbe:[{pbe:p()}],pt:[{pt:p()}],pr:[{pr:p()}],pb:[{pb:p()}],pl:[{pl:p()}],m:[{m:g()}],mx:[{mx:g()}],my:[{my:g()}],ms:[{ms:g()}],me:[{me:g()}],mbs:[{mbs:g()}],mbe:[{mbe:g()}],mt:[{mt:g()}],mr:[{mr:g()}],mb:[{mb:g()}],ml:[{ml:g()}],"space-x":[{"space-x":p()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":p()}],"space-y-reverse":["space-y-reverse"],size:[{size:E()}],"inline-size":[{inline:["auto",...U()]}],"min-inline-size":[{"min-inline":["auto",...U()]}],"max-inline-size":[{"max-inline":["none",...U()]}],"block-size":[{block:["auto",...V()]}],"min-block-size":[{"min-block":["auto",...V()]}],"max-block-size":[{"max-block":["none",...V()]}],w:[{w:[d,"screen",...E()]}],"min-w":[{"min-w":[d,"screen","none",...E()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[n]},...E()]}],h:[{h:["screen","lh",...E()]}],"min-h":[{"min-h":["screen","lh","none",...E()]}],"max-h":[{"max-h":["screen","lh",...E()]}],"font-size":[{text:["base",t,Ie,Ee]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,Ls,Ps]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",We,f]}],"font-family":[{font:[Ms,As,o]}],"font-features":[{"font-features":[f]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,h,f]}],"line-clamp":[{"line-clamp":[w,"none",h,ut]}],leading:[{leading:[l,...p()]}],"list-image":[{"list-image":["none",h,f]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",h,f]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:b()}],"text-color":[{text:b()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...re(),"wavy"]}],"text-decoration-thickness":[{decoration:[w,"from-font","auto",h,Ee]}],"text-decoration-color":[{decoration:b()}],"underline-offset":[{"underline-offset":[w,"auto",h,f]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:p()}],"tab-size":[{tab:[me,h,f]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",h,f]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",h,f]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:de()}],"bg-repeat":[{bg:je()}],"bg-size":[{bg:N()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},me,h,f],radial:["",h,f],conic:[me,h,f]},Os,Is]}],"bg-color":[{bg:b()}],"gradient-from-pos":[{from:P()}],"gradient-via-pos":[{via:P()}],"gradient-to-pos":[{to:P()}],"gradient-from":[{from:b()}],"gradient-via":[{via:b()}],"gradient-to":[{to:b()}],rounded:[{rounded:k()}],"rounded-s":[{"rounded-s":k()}],"rounded-e":[{"rounded-e":k()}],"rounded-t":[{"rounded-t":k()}],"rounded-r":[{"rounded-r":k()}],"rounded-b":[{"rounded-b":k()}],"rounded-l":[{"rounded-l":k()}],"rounded-ss":[{"rounded-ss":k()}],"rounded-se":[{"rounded-se":k()}],"rounded-ee":[{"rounded-ee":k()}],"rounded-es":[{"rounded-es":k()}],"rounded-tl":[{"rounded-tl":k()}],"rounded-tr":[{"rounded-tr":k()}],"rounded-br":[{"rounded-br":k()}],"rounded-bl":[{"rounded-bl":k()}],"border-w":[{border:C()}],"border-w-x":[{"border-x":C()}],"border-w-y":[{"border-y":C()}],"border-w-s":[{"border-s":C()}],"border-w-e":[{"border-e":C()}],"border-w-bs":[{"border-bs":C()}],"border-w-be":[{"border-be":C()}],"border-w-t":[{"border-t":C()}],"border-w-r":[{"border-r":C()}],"border-w-b":[{"border-b":C()}],"border-w-l":[{"border-l":C()}],"divide-x":[{"divide-x":C()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":C()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...re(),"hidden","none"]}],"divide-style":[{divide:[...re(),"hidden","none"]}],"border-color":[{border:b()}],"border-color-x":[{"border-x":b()}],"border-color-y":[{"border-y":b()}],"border-color-s":[{"border-s":b()}],"border-color-e":[{"border-e":b()}],"border-color-bs":[{"border-bs":b()}],"border-color-be":[{"border-be":b()}],"border-color-t":[{"border-t":b()}],"border-color-r":[{"border-r":b()}],"border-color-b":[{"border-b":b()}],"border-color-l":[{"border-l":b()}],"divide-color":[{divide:b()}],"outline-style":[{outline:[...re(),"none","hidden"]}],"outline-offset":[{"outline-offset":[w,h,f]}],"outline-w":[{outline:["",w,Ie,Ee]}],"outline-color":[{outline:b()}],shadow:[{shadow:["","none",v,Be,Le]}],"shadow-color":[{shadow:b()}],"inset-shadow":[{"inset-shadow":["none",r,Be,Le]}],"inset-shadow-color":[{"inset-shadow":b()}],"ring-w":[{ring:C()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:b()}],"ring-offset-w":[{"ring-offset":[w,Ee]}],"ring-offset-color":[{"ring-offset":b()}],"inset-ring-w":[{"inset-ring":C()}],"inset-ring-color":[{"inset-ring":b()}],"text-shadow":[{"text-shadow":["none",S,Be,Le]}],"text-shadow-color":[{"text-shadow":b()}],opacity:[{opacity:[w,h,f]}],"mix-blend":[{"mix-blend":[...T(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":T()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[w]}],"mask-image-linear-from-pos":[{"mask-linear-from":A()}],"mask-image-linear-to-pos":[{"mask-linear-to":A()}],"mask-image-linear-from-color":[{"mask-linear-from":b()}],"mask-image-linear-to-color":[{"mask-linear-to":b()}],"mask-image-t-from-pos":[{"mask-t-from":A()}],"mask-image-t-to-pos":[{"mask-t-to":A()}],"mask-image-t-from-color":[{"mask-t-from":b()}],"mask-image-t-to-color":[{"mask-t-to":b()}],"mask-image-r-from-pos":[{"mask-r-from":A()}],"mask-image-r-to-pos":[{"mask-r-to":A()}],"mask-image-r-from-color":[{"mask-r-from":b()}],"mask-image-r-to-color":[{"mask-r-to":b()}],"mask-image-b-from-pos":[{"mask-b-from":A()}],"mask-image-b-to-pos":[{"mask-b-to":A()}],"mask-image-b-from-color":[{"mask-b-from":b()}],"mask-image-b-to-color":[{"mask-b-to":b()}],"mask-image-l-from-pos":[{"mask-l-from":A()}],"mask-image-l-to-pos":[{"mask-l-to":A()}],"mask-image-l-from-color":[{"mask-l-from":b()}],"mask-image-l-to-color":[{"mask-l-to":b()}],"mask-image-x-from-pos":[{"mask-x-from":A()}],"mask-image-x-to-pos":[{"mask-x-to":A()}],"mask-image-x-from-color":[{"mask-x-from":b()}],"mask-image-x-to-color":[{"mask-x-to":b()}],"mask-image-y-from-pos":[{"mask-y-from":A()}],"mask-image-y-to-pos":[{"mask-y-to":A()}],"mask-image-y-from-color":[{"mask-y-from":b()}],"mask-image-y-to-color":[{"mask-y-to":b()}],"mask-image-radial":[{"mask-radial":[h,f]}],"mask-image-radial-from-pos":[{"mask-radial-from":A()}],"mask-image-radial-to-pos":[{"mask-radial-to":A()}],"mask-image-radial-from-color":[{"mask-radial-from":b()}],"mask-image-radial-to-color":[{"mask-radial-to":b()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":q()}],"mask-image-conic-pos":[{"mask-conic":[w]}],"mask-image-conic-from-pos":[{"mask-conic-from":A()}],"mask-image-conic-to-pos":[{"mask-conic-to":A()}],"mask-image-conic-from-color":[{"mask-conic-from":b()}],"mask-image-conic-to-color":[{"mask-conic-to":b()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:de()}],"mask-repeat":[{mask:je()}],"mask-size":[{mask:N()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",h,f]}],filter:[{filter:["","none",h,f]}],blur:[{blur:Se()}],brightness:[{brightness:[w,h,f]}],contrast:[{contrast:[w,h,f]}],"drop-shadow":[{"drop-shadow":["","none",_,Be,Le]}],"drop-shadow-color":[{"drop-shadow":b()}],grayscale:[{grayscale:["",w,h,f]}],"hue-rotate":[{"hue-rotate":[w,h,f]}],invert:[{invert:["",w,h,f]}],saturate:[{saturate:[w,h,f]}],sepia:[{sepia:["",w,h,f]}],"backdrop-filter":[{"backdrop-filter":["","none",h,f]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[w,h,f]}],"backdrop-contrast":[{"backdrop-contrast":[w,h,f]}],"backdrop-grayscale":[{"backdrop-grayscale":["",w,h,f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[w,h,f]}],"backdrop-invert":[{"backdrop-invert":["",w,h,f]}],"backdrop-opacity":[{"backdrop-opacity":[w,h,f]}],"backdrop-saturate":[{"backdrop-saturate":[w,h,f]}],"backdrop-sepia":[{"backdrop-sepia":["",w,h,f]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":p()}],"border-spacing-x":[{"border-spacing-x":p()}],"border-spacing-y":[{"border-spacing-y":p()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",h,f]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[w,"initial",h,f]}],ease:[{ease:["linear","initial",j,h,f]}],delay:[{delay:[w,h,f]}],animate:[{animate:["none",L,h,f]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[M,h,f]}],"perspective-origin":[{"perspective-origin":Z()}],rotate:[{rotate:fe()}],"rotate-x":[{"rotate-x":fe()}],"rotate-y":[{"rotate-y":fe()}],"rotate-z":[{"rotate-z":fe()}],scale:[{scale:ae()}],"scale-x":[{"scale-x":ae()}],"scale-y":[{"scale-y":ae()}],"scale-z":[{"scale-z":ae()}],"scale-3d":["scale-3d"],skew:[{skew:Pe()}],"skew-x":[{"skew-x":Pe()}],"skew-y":[{"skew-y":Pe()}],transform:[{transform:[h,f,"","none","gpu","cpu"]}],"transform-origin":[{origin:Z()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ye()}],"translate-x":[{"translate-x":ye()}],"translate-y":[{"translate-y":ye()}],"translate-z":[{"translate-z":ye()}],"translate-none":["translate-none"],zoom:[{zoom:[me,h,f]}],accent:[{accent:b()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:b()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",h,f]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":b()}],"scrollbar-track-color":[{"scrollbar-track":b()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mbs":[{"scroll-mbs":p()}],"scroll-mbe":[{"scroll-mbe":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pbs":[{"scroll-pbs":p()}],"scroll-pbe":[{"scroll-pbe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",h,f]}],fill:[{fill:["none",...b()]}],"stroke-w":[{stroke:[w,Ie,Ee,ut]}],stroke:[{stroke:["none",...b()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Fs=ys($s);function le(...e){return Fs($t(e))}const Vs=Ao,Gs=Io,Ws=y.forwardRef(({className:e,inset:o,children:t,...s},c)=>a.jsxs(jt,{ref:c,className:le("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",o&&"pl-8",e),...s,children:[t,a.jsx(_o,{className:"ml-auto"})]}));Ws.displayName=jt.displayName;const Hs=y.forwardRef(({className:e,...o},t)=>a.jsx(St,{ref:t,className:le("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...o}));Hs.displayName=St.displayName;const to=y.forwardRef(({className:e,sideOffset:o=4,...t},s)=>a.jsx(Ro,{children:a.jsx(Nt,{ref:s,sideOffset:o,className:le("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));to.displayName=Nt.displayName;const ze=y.forwardRef(({className:e,inset:o,...t},s)=>a.jsx(Et,{ref:s,className:le("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",o&&"pl-8",e),...t}));ze.displayName=Et.displayName;const Ys=y.forwardRef(({className:e,children:o,checked:t,...s},c)=>a.jsxs(Ct,{ref:c,className:le("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:t,...s,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(Tt,{children:a.jsx(zo,{className:"h-4 w-4"})})}),o]}));Ys.displayName=Ct.displayName;const Us=y.forwardRef(({className:e,children:o,...t},s)=>a.jsxs(_t,{ref:s,className:le("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...t,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(Tt,{children:a.jsx(Po,{className:"h-2 w-2 fill-current"})})}),o]}));Us.displayName=_t.displayName;const Ks=y.forwardRef(({className:e,inset:o,...t},s)=>a.jsx(Rt,{ref:s,className:le("px-2 py-1.5 text-sm font-semibold",o&&"pl-8",e),...t}));Ks.displayName=Rt.displayName;const Ue=y.forwardRef(({className:e,...o},t)=>a.jsx(zt,{ref:t,className:le("-mx-1 my-1 h-px bg-muted",e),...o}));Ue.displayName=zt.displayName;const Xs="/admin/dashboard";function oo(){window.location.href=Xs}const so="j13-cache-boards",ro="j13-cache-stats";function ao(e){try{const o=sessionStorage.getItem(e);return o?JSON.parse(o):null}catch{return null}}function no(e,o){try{sessionStorage.setItem(e,JSON.stringify(o))}catch{}}function ft(){return ao(so)??[]}function ht(){return ao(ro)}function qs(e){no(so,e)}function Js(e){no(ro,e)}const Qs=["/post/","/profile"];function io(e){return Qs.some(o=>e.startsWith(o))}function Zs(e,o){return io(e)?null:e.startsWith("/favorites")?"favorites":e.startsWith("/boards")?"boards":o===0?"all":String(o)}function er({boards:e,activeBoard:o,onSelectBoard:t}){const s=wt(),c=kt(),{user:l}=Dt(),n=(l==null?void 0:l.role)==="admin",d=Zs(c.pathname,o),m=(i,v,r,S)=>a.jsxs("button",{type:"button",className:le("sidebar-nav-item",d!=null&&d===i&&"active"),onClick:S,children:[r,a.jsx("span",{className:"flex-1 truncate",children:v})]},i);return a.jsxs("aside",{className:"sidebar",children:[a.jsx("div",{className:"sidebar-section",children:"浏览"}),a.jsxs("nav",{className:"sidebar-nav",children:[m("all","全部帖子",a.jsx(Mo,{}),()=>{t(0),s("/")}),l&&m("favorites","我的收藏",a.jsx(Do,{}),()=>s("/favorites"))]}),e.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"sidebar-section",style:{marginTop:8},children:"板块"}),a.jsx("nav",{className:"sidebar-nav",children:e.map(i=>a.jsx("button",{type:"button",className:le("sidebar-nav-item",d!=null&&d===String(i.id)&&"active"),onClick:()=>{t(i.id),s(`/?board=${i.id}`)},children:a.jsx("span",{className:"flex-1 truncate",children:i.name})},i.id))})]}),n&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"sidebar-section",style:{marginTop:8},children:"管理"}),a.jsxs("nav",{className:"sidebar-nav",children:[m("boards","管理板块",a.jsx(Oo,{}),()=>s("/boards")),m("admin","系统后台",a.jsx(Lo,{}),oo)]})]})]})}function tr({hot:e,notifications:o,online:t,onPostClick:s}){const c=(e==null?void 0:e.slice(0,8))??[],l=(o==null?void 0:o.slice(0,6))??[],n=(t==null?void 0:t.users)??[];return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"widget-card",children:[a.jsx("div",{className:"widget-card-head",children:"🔥 热门帖子"}),a.jsx("div",{className:"widget-card-body",children:c.length===0?a.jsx("div",{style:{fontSize:13,color:"var(--color-text-3)",padding:"8px 0"},children:"暂无数据"}):c.map((d,m)=>a.jsxs("div",{className:"widget-item",onClick:()=>s(d.id),children:[a.jsx("span",{style:{color:m<3?"#e74c3c":"var(--color-text-3)",fontWeight:600,minWidth:18},children:m+1}),a.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d.title})]},d.id))})]}),a.jsxs("div",{className:"widget-card",children:[a.jsx("div",{className:"widget-card-head",children:"📢 最新动态"}),a.jsx("div",{className:"widget-card-body",children:l.length===0?a.jsx("div",{style:{fontSize:13,color:"var(--color-text-3)",padding:"8px 0"},children:"暂无动态"}):l.map(d=>a.jsxs("div",{className:"widget-item",onClick:()=>s(d.id),children:[a.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d.title}),a.jsx("span",{style:{fontSize:11,color:"var(--color-text-4)",flexShrink:0},children:d.created_at})]},d.id))})]}),a.jsxs("div",{className:"widget-card",children:[a.jsxs("div",{className:"widget-card-head",children:["👀 当前浏览 ",(t==null?void 0:t.count)??"—"," 人"]}),a.jsxs("div",{className:"widget-card-body",children:[a.jsxs("div",{style:{fontSize:12,color:"var(--color-text-3)",marginBottom:8},children:["会员 ",(t==null?void 0:t.members)??0," · 游客 ",(t==null?void 0:t.guests)??0]}),a.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[n.map(d=>{var m;return a.jsx("span",{title:d.nickname,style:{width:28,height:28,borderRadius:"50%",background:"var(--j13-green)",color:"#fff",fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:((m=d.nickname)==null?void 0:m[0])||"?"},d.id)}),n.length===0&&a.jsx("span",{style:{fontSize:13,color:"var(--color-text-3)"},children:"暂无会员在线"})]})]})]}),a.jsx("div",{className:"widget-card widget-card--about",children:a.jsx("div",{className:"widget-card-body",children:a.jsxs("p",{className:"widget-about-text",children:[a.jsx("strong",{children:"姜十三论坛"}),"拾三一隅,自在交流。轻量社区,专为小圈子打造。"]})})})]})}function or(){var Y;const{user:e,loading:o,logout:t}=Dt(),{theme:s,toggle:c}=Lt(),l=qo("(max-width: 768px)"),n=wt(),d=kt(),[m]=jo(),i=d.pathname.startsWith("/compose")||/\/post\/\d+\/edit$/.test(d.pathname),[v,r]=y.useState(()=>ft()),[S,_]=y.useState(()=>ht()),[z,M]=y.useState(()=>ft().length>0||!!ht()),[I,j]=y.useState([]),[L,K]=y.useState([]),[q,Z]=y.useState(null),[B,D]=y.useState(Number(m.get("board"))||0),[p,O]=y.useState(m.get("keyword")||"");y.useEffect(()=>{D(Number(m.get("board"))||0)},[m]),y.useEffect(()=>{O(m.get("keyword")||"")},[m]);const ee=y.useCallback(()=>{Promise.all([be.boards().then(g=>{const E=g.boards??[];return r(E),qs(E),E}).catch(()=>[]),be.stats().then(g=>(_(g),Js(g),g)).catch(()=>null)]).finally(()=>M(!0))},[]),ce=y.useCallback(()=>{be.online().then(g=>{Z({count:g.count??0,members:g.members??0,guests:g.guests??0,users:Array.isArray(g.users)?g.users:[]})}).catch(()=>{})},[]);y.useEffect(()=>{ee(),be.hotPosts().then(V=>j(Array.isArray(V.posts)?V.posts:[])).catch(()=>{}),be.notifications().then(V=>K(Array.isArray(V.notifications)?V.notifications:[])).catch(()=>{}),ce(),be.presence().catch(()=>{});const g=setInterval(ce,3e4),E=setInterval(()=>be.presence().catch(()=>{}),6e4),U=()=>ee();return window.addEventListener("boards-refresh",U),()=>{clearInterval(g),clearInterval(E),window.removeEventListener("boards-refresh",U)}},[ee,ce]);const te=()=>{p.trim()?n(`/?keyword=${encodeURIComponent(p.trim())}`):n("/")},H=((Y=e==null?void 0:e.nickname)==null?void 0:Y.charAt(0))||"?",se=io(d.pathname)?-1:B;return a.jsx("div",{className:"app-shell",children:a.jsxs("div",{className:"app-frame",children:[a.jsx("header",{className:"app-header",children:a.jsxs("div",{className:"header-inner",children:[a.jsxs("button",{type:"button",className:"header-brand",onClick:()=>n("/"),children:[a.jsx("span",{className:"header-logo-mark",children:"姜"}),!l&&a.jsx("span",{className:"header-logo-text",children:"姜十三论坛"})]}),!i&&a.jsxs("div",{className:"header-search-wrap",children:[a.jsx(Bo,{className:"header-search-icon",size:16}),a.jsx("input",{className:"header-search-input",type:"search",placeholder:"搜索帖子...",value:p,onChange:g=>O(g.target.value),onKeyDown:g=>g.key==="Enter"&&te()}),p&&a.jsx("button",{type:"button",className:"header-search-clear",onClick:()=>{O(""),n("/")},"aria-label":"清除搜索",children:"×"})]}),a.jsxs("div",{className:"header-actions",children:[!i&&a.jsxs("button",{type:"button",className:"header-compose-btn",onClick:()=>n(e?"/compose":"/login"),children:[a.jsx($o,{size:16}),!l&&a.jsx("span",{children:"发帖"})]}),a.jsxs("div",{className:"header-action-group",children:[a.jsx("button",{type:"button",className:"header-icon-btn",onClick:c,title:s==="light"?"切换暗色模式":"切换亮色模式",children:s==="light"?a.jsx(Fo,{size:18}):a.jsx(Vo,{size:18})}),o?a.jsx("span",{className:"header-auth-slot header-auth-slot--loading","aria-hidden":!0}):e?a.jsxs(Vs,{children:[a.jsx(Gs,{asChild:!0,children:a.jsx("button",{type:"button",className:"header-user-btn",title:e.nickname,children:e.avatar?a.jsx("img",{src:e.avatar,alt:"",className:"header-user-avatar"}):a.jsx("span",{className:"header-user-initial",children:H})})}),a.jsxs(to,{align:"end",className:"w-40",children:[a.jsx(ze,{onClick:()=>n("/profile"),children:"个人中心"}),a.jsx(ze,{onClick:()=>n("/favorites"),children:"我的收藏"}),e.role==="admin"&&a.jsxs(a.Fragment,{children:[a.jsx(Ue,{}),a.jsx(ze,{onClick:()=>n("/boards"),children:"管理板块"}),a.jsx(ze,{onClick:oo,children:"系统后台"})]}),a.jsx(Ue,{}),a.jsx(ze,{onClick:()=>t().then(()=>n("/login")),children:"退出登录"})]})]}):a.jsx("button",{type:"button",className:"header-login-btn",onClick:()=>n("/login"),children:"登录"})]})]})]})}),a.jsxs("div",{className:`app-body${i?" app-body--compose":""}`,children:[!i&&a.jsx(er,{boards:v,activeBoard:B,onSelectBoard:D}),a.jsxs("div",{className:`content-workspace${i?" content-workspace--compose":""}`,children:[a.jsxs("main",{className:`main-content${i?" main-content--compose":""}`,children:[l&&!i&&a.jsxs("div",{className:"mobile-board-bar",children:[a.jsx("span",{className:`board-chip ${se===0?"active":""}`,onClick:()=>{D(0),n("/")},children:"全部"}),v.map(g=>a.jsx("span",{className:`board-chip ${se===g.id?"active":""}`,onClick:()=>{D(g.id),n(`/?board=${g.id}`)},children:g.name},g.id))]}),a.jsx(y.Suspense,{fallback:a.jsx(He,{}),children:a.jsx(So,{context:{boardId:B,keyword:m.get("keyword")||"",setBoardId:D,boards:v,stats:S,layoutReady:z,refreshBoards:ee,isMobile:l}})})]}),!i&&a.jsx("aside",{className:"aside-panel",children:a.jsx(tr,{hot:I,notifications:L,online:q,onPostClick:g=>n(`/post/${g}`)})})]})]})]})})}const gt=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,bt=$t,sr=(e,o)=>t=>{var s;if((o==null?void 0:o.variants)==null)return bt(e,t==null?void 0:t.class,t==null?void 0:t.className);const{variants:c,defaultVariants:l}=o,n=Object.keys(c).map(i=>{const v=t==null?void 0:t[i],r=l==null?void 0:l[i];if(v===null)return null;const S=gt(v)||gt(r);return c[i][S]}),d=t&&Object.entries(t).reduce((i,v)=>{let[r,S]=v;return S===void 0||(i[r]=S),i},{}),m=o==null||(s=o.compoundVariants)===null||s===void 0?void 0:s.reduce((i,v)=>{let{class:r,className:S,..._}=v;return Object.entries(_).every(z=>{let[M,I]=z;return Array.isArray(I)?I.includes({...l,...d}[M]):{...l,...d}[M]===I})?[...i,r,S]:i},[]);return bt(e,n,m,t==null?void 0:t.class,t==null?void 0:t.className)},rr=sr("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),lo=y.forwardRef(({className:e,variant:o,size:t,asChild:s=!1,loading:c,children:l,disabled:n,...d},m)=>{const i=s?Go:"button";return a.jsxs(i,{className:le(rr({variant:o,size:t,className:e})),ref:m,disabled:n||c,...d,children:[c?a.jsx(Wo,{className:"animate-spin"}):null,l]})});lo.displayName="Button";class ar extends y.Component{constructor(){super(...arguments);nt(this,"state",{error:null})}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,s){console.error("[Jiang13Forum]",t,s.componentStack)}render(){return this.state.error?a.jsxs("div",{style:{padding:24,textAlign:"center"},children:[a.jsx("h3",{children:"页面渲染出错"}),a.jsx("p",{style:{color:"var(--color-text-3)",fontSize:13},children:this.state.error.message}),a.jsx(lo,{size:"sm",onClick:()=>{this.setState({error:null}),window.location.reload()},children:"刷新页面"})]}):this.props.children}}function nr(e){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css",o.appendChild(t),t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}const ir=e=>{switch(e){case"success":return dr;case"info":return mr;case"warning":return ur;case"error":return pr;default:return null}},lr=Array(12).fill(0),cr=({visible:e,className:o})=>u.createElement("div",{className:["sonner-loading-wrapper",o].filter(Boolean).join(" "),"data-visible":e},u.createElement("div",{className:"sonner-spinner"},lr.map((t,s)=>u.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),dr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),ur=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),mr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),pr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),fr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},u.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),u.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),hr=()=>{const[e,o]=u.useState(document.hidden);return u.useEffect(()=>{const t=()=>{o(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),e};let Ke=1;class gr{constructor(){this.subscribe=o=>(this.subscribers.push(o),()=>{const t=this.subscribers.indexOf(o);this.subscribers.splice(t,1)}),this.publish=o=>{this.subscribers.forEach(t=>t(o))},this.addToast=o=>{this.publish(o),this.toasts=[...this.toasts,o]},this.create=o=>{var t;const{message:s,...c}=o,l=typeof(o==null?void 0:o.id)=="number"||((t=o.id)==null?void 0:t.length)>0?o.id:Ke++,n=this.toasts.find(m=>m.id===l),d=o.dismissible===void 0?!0:o.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),n?this.toasts=this.toasts.map(m=>m.id===l?(this.publish({...m,...o,id:l,title:s}),{...m,...o,id:l,dismissible:d,title:s}):m):this.addToast({title:s,...c,dismissible:d,id:l}),l},this.dismiss=o=>(o?(this.dismissedToasts.add(o),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:o,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(s=>s({id:t.id,dismiss:!0}))}),o),this.message=(o,t)=>this.create({...t,message:o}),this.error=(o,t)=>this.create({...t,message:o,type:"error"}),this.success=(o,t)=>this.create({...t,type:"success",message:o}),this.info=(o,t)=>this.create({...t,type:"info",message:o}),this.warning=(o,t)=>this.create({...t,type:"warning",message:o}),this.loading=(o,t)=>this.create({...t,type:"loading",message:o}),this.promise=(o,t)=>{if(!t)return;let s;t.loading!==void 0&&(s=this.create({...t,promise:o,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));const c=Promise.resolve(o instanceof Function?o():o);let l=s!==void 0,n;const d=c.then(async i=>{if(n=["resolve",i],u.isValidElement(i))l=!1,this.create({id:s,type:"default",message:i});else if(yr(i)&&!i.ok){l=!1;const r=typeof t.error=="function"?await t.error(`HTTP error! status: ${i.status}`):t.error,S=typeof t.description=="function"?await t.description(`HTTP error! status: ${i.status}`):t.description,z=typeof r=="object"&&!u.isValidElement(r)?r:{message:r};this.create({id:s,type:"error",description:S,...z})}else if(i instanceof Error){l=!1;const r=typeof t.error=="function"?await t.error(i):t.error,S=typeof t.description=="function"?await t.description(i):t.description,z=typeof r=="object"&&!u.isValidElement(r)?r:{message:r};this.create({id:s,type:"error",description:S,...z})}else if(t.success!==void 0){l=!1;const r=typeof t.success=="function"?await t.success(i):t.success,S=typeof t.description=="function"?await t.description(i):t.description,z=typeof r=="object"&&!u.isValidElement(r)?r:{message:r};this.create({id:s,type:"success",description:S,...z})}}).catch(async i=>{if(n=["reject",i],t.error!==void 0){l=!1;const v=typeof t.error=="function"?await t.error(i):t.error,r=typeof t.description=="function"?await t.description(i):t.description,_=typeof v=="object"&&!u.isValidElement(v)?v:{message:v};this.create({id:s,type:"error",description:r,..._})}}).finally(()=>{l&&(this.dismiss(s),s=void 0),t.finally==null||t.finally.call(t)}),m=()=>new Promise((i,v)=>d.then(()=>n[0]==="reject"?v(n[1]):i(n[1])).catch(v));return typeof s!="string"&&typeof s!="number"?{unwrap:m}:Object.assign(s,{unwrap:m})},this.custom=(o,t)=>{const s=(t==null?void 0:t.id)||Ke++;return this.create({jsx:o(s),id:s,...t}),s},this.getActiveToasts=()=>this.toasts.filter(o=>!this.dismissedToasts.has(o.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const X=new gr,br=(e,o)=>{const t=(o==null?void 0:o.id)||Ke++;return X.addToast({title:e,...o,id:t}),t},yr=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",vr=br,xr=()=>X.toasts,wr=()=>X.getActiveToasts(),Yr=Object.assign(vr,{success:X.success,info:X.info,warning:X.warning,error:X.error,custom:X.custom,message:X.message,promise:X.promise,dismiss:X.dismiss,loading:X.loading},{getHistory:xr,getToasts:wr});nr("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function $e(e){return e.label!==void 0}const kr=3,jr="24px",Sr="16px",yt=4e3,Nr=356,Er=14,Cr=45,Tr=200;function pe(...e){return e.filter(Boolean).join(" ")}function _r(e){const[o,t]=e.split("-"),s=[];return o&&s.push(o),t&&s.push(t),s}const Rr=e=>{var o,t,s,c,l,n,d,m,i;const{invert:v,toast:r,unstyled:S,interacting:_,setHeights:z,visibleToasts:M,heights:I,index:j,toasts:L,expanded:K,removeToast:q,defaultRichColors:Z,closeButton:B,style:D,cancelButtonStyle:p,actionButtonStyle:O,className:ee="",descriptionClassName:ce="",duration:te,position:H,gap:se,expandByDefault:Y,classNames:g,icons:E,closeButtonAriaLabel:U="Close toast"}=e,[V,b]=u.useState(null),[de,je]=u.useState(null),[N,P]=u.useState(!1),[k,C]=u.useState(!1),[re,T]=u.useState(!1),[A,Se]=u.useState(!1),[fe,ae]=u.useState(!1),[Pe,ye]=u.useState(0),[co,Je]=u.useState(0),Ae=u.useRef(r.duration||te||yt),Qe=u.useRef(null),he=u.useRef(null),uo=j===0,mo=j+1<=M,J=r.type,Te=r.dismissible!==!1,po=r.className||"",fo=r.descriptionClassName||"",Me=u.useMemo(()=>I.findIndex(x=>x.toastId===r.id)||0,[I,r.id]),ho=u.useMemo(()=>{var x;return(x=r.closeButton)!=null?x:B},[r.closeButton,B]),Ze=u.useMemo(()=>r.duration||te||yt,[r.duration,te]),Ve=u.useRef(0),_e=u.useRef(0),et=u.useRef(0),Re=u.useRef(null),[go,bo]=H.split("-"),tt=u.useMemo(()=>I.reduce((x,F,W)=>W>=Me?x:x+F.height,0),[I,Me]),ot=hr(),yo=r.invert||v,Ge=J==="loading";_e.current=u.useMemo(()=>Me*se+tt,[Me,tt]),u.useEffect(()=>{Ae.current=Ze},[Ze]),u.useEffect(()=>{P(!0)},[]),u.useEffect(()=>{const x=he.current;if(x){const F=x.getBoundingClientRect().height;return Je(F),z(W=>[{toastId:r.id,height:F,position:r.position},...W]),()=>z(W=>W.filter(Q=>Q.toastId!==r.id))}},[z,r.id]),u.useLayoutEffect(()=>{if(!N)return;const x=he.current,F=x.style.height;x.style.height="auto";const W=x.getBoundingClientRect().height;x.style.height=F,Je(W),z(Q=>Q.find(G=>G.toastId===r.id)?Q.map(G=>G.toastId===r.id?{...G,height:W}:G):[{toastId:r.id,height:W,position:r.position},...Q])},[N,r.title,r.description,z,r.id,r.jsx,r.action,r.cancel]);const ve=u.useCallback(()=>{C(!0),ye(_e.current),z(x=>x.filter(F=>F.toastId!==r.id)),setTimeout(()=>{q(r)},Tr)},[r,q,z,_e]);u.useEffect(()=>{if(r.promise&&J==="loading"||r.duration===1/0||r.type==="loading")return;let x;return K||_||ot?(()=>{if(et.current{Ae.current!==1/0&&(Ve.current=new Date().getTime(),x=setTimeout(()=>{r.onAutoClose==null||r.onAutoClose.call(r,r),ve()},Ae.current))})(),()=>clearTimeout(x)},[K,_,r,J,ot,ve]),u.useEffect(()=>{r.delete&&(ve(),r.onDismiss==null||r.onDismiss.call(r,r))},[ve,r.delete]);function vo(){var x;if(E!=null&&E.loading){var F;return u.createElement("div",{className:pe(g==null?void 0:g.loader,r==null||(F=r.classNames)==null?void 0:F.loader,"sonner-loader"),"data-visible":J==="loading"},E.loading)}return u.createElement(cr,{className:pe(g==null?void 0:g.loader,r==null||(x=r.classNames)==null?void 0:x.loader),visible:J==="loading"})}const xo=r.icon||(E==null?void 0:E[J])||ir(J);var st,rt;return u.createElement("li",{tabIndex:0,ref:he,className:pe(ee,po,g==null?void 0:g.toast,r==null||(o=r.classNames)==null?void 0:o.toast,g==null?void 0:g.default,g==null?void 0:g[J],r==null||(t=r.classNames)==null?void 0:t[J]),"data-sonner-toast":"","data-rich-colors":(st=r.richColors)!=null?st:Z,"data-styled":!(r.jsx||r.unstyled||S),"data-mounted":N,"data-promise":!!r.promise,"data-swiped":fe,"data-removed":k,"data-visible":mo,"data-y-position":go,"data-x-position":bo,"data-index":j,"data-front":uo,"data-swiping":re,"data-dismissible":Te,"data-type":J,"data-invert":yo,"data-swipe-out":A,"data-swipe-direction":de,"data-expanded":!!(K||Y&&N),"data-testid":r.testId,style:{"--index":j,"--toasts-before":j,"--z-index":L.length-j,"--offset":`${k?Pe:_e.current}px`,"--initial-height":Y?"auto":`${co}px`,...D,...r.style},onDragEnd:()=>{T(!1),b(null),Re.current=null},onPointerDown:x=>{x.button!==2&&(Ge||!Te||(Qe.current=new Date,ye(_e.current),x.target.setPointerCapture(x.pointerId),x.target.tagName!=="BUTTON"&&(T(!0),Re.current={x:x.clientX,y:x.clientY})))},onPointerUp:()=>{var x,F,W;if(A||!Te)return;Re.current=null;const Q=Number(((x=he.current)==null?void 0:x.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),De=Number(((F=he.current)==null?void 0:F.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),G=new Date().getTime()-((W=Qe.current)==null?void 0:W.getTime()),oe=V==="x"?Q:De,Oe=Math.abs(oe)/G;if(Math.abs(oe)>=Cr||Oe>.11){ye(_e.current),r.onDismiss==null||r.onDismiss.call(r,r),je(V==="x"?Q>0?"right":"left":De>0?"down":"up"),ve(),Se(!0);return}else{var ne,ie;(ne=he.current)==null||ne.style.setProperty("--swipe-amount-x","0px"),(ie=he.current)==null||ie.style.setProperty("--swipe-amount-y","0px")}ae(!1),T(!1),b(null)},onPointerMove:x=>{var F,W,Q;if(!Re.current||!Te||((F=window.getSelection())==null?void 0:F.toString().length)>0)return;const G=x.clientY-Re.current.y,oe=x.clientX-Re.current.x;var Oe;const ne=(Oe=e.swipeDirections)!=null?Oe:_r(H);!V&&(Math.abs(oe)>1||Math.abs(G)>1)&&b(Math.abs(oe)>Math.abs(G)?"x":"y");let ie={x:0,y:0};const at=Ne=>1/(1.5+Math.abs(Ne)/20);if(V==="y"){if(ne.includes("top")||ne.includes("bottom"))if(ne.includes("top")&&G<0||ne.includes("bottom")&&G>0)ie.y=G;else{const Ne=G*at(G);ie.y=Math.abs(Ne)0)ie.x=oe;else{const Ne=oe*at(oe);ie.x=Math.abs(Ne)0||Math.abs(ie.y)>0)&&ae(!0),(W=he.current)==null||W.style.setProperty("--swipe-amount-x",`${ie.x}px`),(Q=he.current)==null||Q.style.setProperty("--swipe-amount-y",`${ie.y}px`)}},ho&&!r.jsx&&J!=="loading"?u.createElement("button",{"aria-label":U,"data-disabled":Ge,"data-close-button":!0,onClick:Ge||!Te?()=>{}:()=>{ve(),r.onDismiss==null||r.onDismiss.call(r,r)},className:pe(g==null?void 0:g.closeButton,r==null||(s=r.classNames)==null?void 0:s.closeButton)},(rt=E==null?void 0:E.close)!=null?rt:fr):null,(J||r.icon||r.promise)&&r.icon!==null&&((E==null?void 0:E[J])!==null||r.icon)?u.createElement("div",{"data-icon":"",className:pe(g==null?void 0:g.icon,r==null||(c=r.classNames)==null?void 0:c.icon)},r.promise||r.type==="loading"&&!r.icon?r.icon||vo():null,r.type!=="loading"?xo:null):null,u.createElement("div",{"data-content":"",className:pe(g==null?void 0:g.content,r==null||(l=r.classNames)==null?void 0:l.content)},u.createElement("div",{"data-title":"",className:pe(g==null?void 0:g.title,r==null||(n=r.classNames)==null?void 0:n.title)},r.jsx?r.jsx:typeof r.title=="function"?r.title():r.title),r.description?u.createElement("div",{"data-description":"",className:pe(ce,fo,g==null?void 0:g.description,r==null||(d=r.classNames)==null?void 0:d.description)},typeof r.description=="function"?r.description():r.description):null),u.isValidElement(r.cancel)?r.cancel:r.cancel&&$e(r.cancel)?u.createElement("button",{"data-button":!0,"data-cancel":!0,style:r.cancelButtonStyle||p,onClick:x=>{$e(r.cancel)&&Te&&(r.cancel.onClick==null||r.cancel.onClick.call(r.cancel,x),ve())},className:pe(g==null?void 0:g.cancelButton,r==null||(m=r.classNames)==null?void 0:m.cancelButton)},r.cancel.label):null,u.isValidElement(r.action)?r.action:r.action&&$e(r.action)?u.createElement("button",{"data-button":!0,"data-action":!0,style:r.actionButtonStyle||O,onClick:x=>{$e(r.action)&&(r.action.onClick==null||r.action.onClick.call(r.action,x),!x.defaultPrevented&&ve())},className:pe(g==null?void 0:g.actionButton,r==null||(i=r.classNames)==null?void 0:i.actionButton)},r.action.label):null)};function vt(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function zr(e,o){const t={};return[e,o].forEach((s,c)=>{const l=c===1,n=l?"--mobile-offset":"--offset",d=l?Sr:jr;function m(i){["top","right","bottom","left"].forEach(v=>{t[`${n}-${v}`]=typeof i=="number"?`${i}px`:i})}typeof s=="number"||typeof s=="string"?m(s):typeof s=="object"?["top","right","bottom","left"].forEach(i=>{s[i]===void 0?t[`${n}-${i}`]=d:t[`${n}-${i}`]=typeof s[i]=="number"?`${s[i]}px`:s[i]}):m(d)}),t}const Pr=u.forwardRef(function(o,t){const{id:s,invert:c,position:l="bottom-right",hotkey:n=["altKey","KeyT"],expand:d,closeButton:m,className:i,offset:v,mobileOffset:r,theme:S="light",richColors:_,duration:z,style:M,visibleToasts:I=kr,toastOptions:j,dir:L=vt(),gap:K=Er,icons:q,containerAriaLabel:Z="Notifications"}=o,[B,D]=u.useState([]),p=u.useMemo(()=>s?B.filter(N=>N.toasterId===s):B.filter(N=>!N.toasterId),[B,s]),O=u.useMemo(()=>Array.from(new Set([l].concat(p.filter(N=>N.position).map(N=>N.position)))),[p,l]),[ee,ce]=u.useState([]),[te,H]=u.useState(!1),[se,Y]=u.useState(!1),[g,E]=u.useState(S!=="system"?S:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),U=u.useRef(null),V=n.join("+").replace(/Key/g,"").replace(/Digit/g,""),b=u.useRef(null),de=u.useRef(!1),je=u.useCallback(N=>{D(P=>{var k;return(k=P.find(C=>C.id===N.id))!=null&&k.delete||X.dismiss(N.id),P.filter(({id:C})=>C!==N.id)})},[]);return u.useEffect(()=>X.subscribe(N=>{if(N.dismiss){requestAnimationFrame(()=>{D(P=>P.map(k=>k.id===N.id?{...k,delete:!0}:k))});return}setTimeout(()=>{No.flushSync(()=>{D(P=>{const k=P.findIndex(C=>C.id===N.id);return k!==-1?[...P.slice(0,k),{...P[k],...N},...P.slice(k+1)]:[N,...P]})})})}),[B]),u.useEffect(()=>{if(S!=="system"){E(S);return}if(S==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?E("dark"):E("light")),typeof window>"u")return;const N=window.matchMedia("(prefers-color-scheme: dark)");try{N.addEventListener("change",({matches:P})=>{E(P?"dark":"light")})}catch{N.addListener(({matches:k})=>{try{E(k?"dark":"light")}catch(C){console.error(C)}})}},[S]),u.useEffect(()=>{B.length<=1&&H(!1)},[B]),u.useEffect(()=>{const N=P=>{var k;if(n.every(T=>P[T]||P.code===T)){var re;H(!0),(re=U.current)==null||re.focus()}P.code==="Escape"&&(document.activeElement===U.current||(k=U.current)!=null&&k.contains(document.activeElement))&&H(!1)};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[n]),u.useEffect(()=>{if(U.current)return()=>{b.current&&(b.current.focus({preventScroll:!0}),b.current=null,de.current=!1)}},[U.current]),u.createElement("section",{ref:t,"aria-label":`${Z} ${V}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},O.map((N,P)=>{var k;const[C,re]=N.split("-");return p.length?u.createElement("ol",{key:N,dir:L==="auto"?vt():L,tabIndex:-1,ref:U,className:i,"data-sonner-toaster":!0,"data-sonner-theme":g,"data-y-position":C,"data-x-position":re,style:{"--front-toast-height":`${((k=ee[0])==null?void 0:k.height)||0}px`,"--width":`${Nr}px`,"--gap":`${K}px`,...M,...zr(v,r)},onBlur:T=>{de.current&&!T.currentTarget.contains(T.relatedTarget)&&(de.current=!1,b.current&&(b.current.focus({preventScroll:!0}),b.current=null))},onFocus:T=>{T.target instanceof HTMLElement&&T.target.dataset.dismissible==="false"||de.current||(de.current=!0,b.current=T.relatedTarget)},onMouseEnter:()=>H(!0),onMouseMove:()=>H(!0),onMouseLeave:()=>{se||H(!1)},onDragEnd:()=>H(!1),onPointerDown:T=>{T.target instanceof HTMLElement&&T.target.dataset.dismissible==="false"||Y(!0)},onPointerUp:()=>Y(!1)},p.filter(T=>!T.position&&P===0||T.position===N).map((T,A)=>{var Se,fe;return u.createElement(Rr,{key:T.id,icons:q,index:A,toast:T,defaultRichColors:_,duration:(Se=j==null?void 0:j.duration)!=null?Se:z,className:j==null?void 0:j.className,descriptionClassName:j==null?void 0:j.descriptionClassName,invert:c,visibleToasts:I,closeButton:(fe=j==null?void 0:j.closeButton)!=null?fe:m,interacting:se,position:N,style:j==null?void 0:j.style,unstyled:j==null?void 0:j.unstyled,classNames:j==null?void 0:j.classNames,cancelButtonStyle:j==null?void 0:j.cancelButtonStyle,actionButtonStyle:j==null?void 0:j.actionButtonStyle,closeButtonAriaLabel:j==null?void 0:j.closeButtonAriaLabel,removeToast:je,toasts:p.filter(ae=>ae.position==T.position),heights:ee.filter(ae=>ae.position==T.position),setHeights:ce,expandByDefault:d,gap:K,expanded:te,swipeDirections:o.swipeDirections})})):null}))});function Ar(){const{theme:e}=Lt();return a.jsx(Pr,{theme:e,position:"top-center",richColors:!0,closeButton:!0,toastOptions:{classNames:{toast:"font-sans"}}})}const Ir=y.lazy(()=>we(()=>import("./HomePage-D-Yzai0_.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),Mr=y.lazy(()=>we(()=>import("./PostDetailPage-D4qGd4ZA.js"),__vite__mapDeps([8,1,6,4,5,2,7,9,10]))),Dr=y.lazy(()=>we(()=>import("./LoginPage-XRVgE8q8.js"),__vite__mapDeps([11,1,12,5,2]))),Or=y.lazy(()=>we(()=>import("./RegisterPage-C4KCPGxX.js"),__vite__mapDeps([13,1,12,5,2]))),xt=y.lazy(()=>we(()=>import("./ComposePage-Dv2Wt-UO.js"),__vite__mapDeps([14,1,2,10,9,5,4]))),Lr=y.lazy(()=>we(()=>import("./BoardsManagePage-DC-_uHJb.js"),__vite__mapDeps([15,1,12,5,6,4,2]))),Br=y.lazy(()=>we(()=>import("./ProfilePage-nO8fm023.js"),__vite__mapDeps([16,1,12,5,6,4,2]))),$r=y.lazy(()=>we(()=>import("./FavoritesPage-Dvc9bR9_.js"),__vite__mapDeps([17,1,4,5,2,7])));function Fr(){return a.jsx(Xo,{children:a.jsx(Ko,{children:a.jsxs(ar,{children:[a.jsx(Eo,{children:a.jsxs(Co,{children:[a.jsx(ue,{path:"/login",element:a.jsx(y.Suspense,{fallback:a.jsx(He,{}),children:a.jsx(Dr,{})})}),a.jsx(ue,{path:"/register",element:a.jsx(y.Suspense,{fallback:a.jsx(He,{}),children:a.jsx(Or,{})})}),a.jsxs(ue,{element:a.jsx(or,{}),children:[a.jsx(ue,{path:"/",element:a.jsx(Ir,{})}),a.jsx(ue,{path:"/post/:id",element:a.jsx(Mr,{})}),a.jsx(ue,{path:"/post/:id/edit",element:a.jsx(xt,{})}),a.jsx(ue,{path:"/compose",element:a.jsx(xt,{})}),a.jsx(ue,{path:"/boards",element:a.jsx(Lr,{})}),a.jsx(ue,{path:"/profile",element:a.jsx(Br,{})}),a.jsx(ue,{path:"/favorites",element:a.jsx($r,{})})]})]})}),a.jsx(Ar,{})]})})})}It(At());To.createRoot(document.getElementById("root")).render(a.jsx(u.StrictMode,{children:a.jsx(Fr,{})}));export{lo as B,be as a,rr as b,le as c,sr as d,oo as o,Yr as t,Dt as u};
diff --git a/embed_static/static/spa/assets/index-DurEdRMk.js b/embed_static/static/spa/assets/index-DurEdRMk.js
new file mode 100644
index 0000000..7151a56
--- /dev/null
+++ b/embed_static/static/spa/assets/index-DurEdRMk.js
@@ -0,0 +1,2 @@
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomePage-CrU3Xqcn.js","assets/react-vendor-CFzzFOsg.js","assets/virtual-vendor-DQlhmwRh.js","assets/badge-E7fnzaIj.js","assets/content-BR0rw1k4.js","assets/ui-vendor-BLDO93FK.js","assets/PostDetailPage-DEqZitTA.js","assets/postContent-CNPsgNvN.js","assets/markdown-vendor-DxR1h-Bq.js","assets/LoginPage-DGBpvRak.js","assets/form-ScadC3tp.js","assets/input-BN5iO3BQ.js","assets/RegisterPage-BTZhIdwh.js","assets/ComposePage-BzWi56ib.js","assets/BoardsManagePage-BKaQrjKx.js","assets/alert-dialog-CQ3zNojX.js","assets/ProfilePage-exbWgetG.js","assets/FavoritesPage-DPpP9uxT.js","assets/AdminDashboardPage-DPFKUnit.js","assets/AdminPostsPage-B9vFs1FY.js","assets/AdminCommentsPage-XNfj0Ldl.js","assets/AdminUsersPage-CCGcKbV7.js","assets/AdminSettingsPage-Cm_HgtOQ.js"])))=>i.map(i=>d[i]);
+var Ns=Object.defineProperty;var Es=(e,s,t)=>s in e?Ns(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t;var ct=(e,s,t)=>Es(e,typeof s!="symbol"?s+"":s,t);import{r as x,j as o,e as Ge,g as Nt,i as Ts,O as Et,k as u,m as Cs,N as _s,B as Ps,n as zs,p as F,q as dt,t as Rs}from"./react-vendor-CFzzFOsg.js";import{S as Tt,C as As,a as Ct,P as Is,b as _t,I as Pt,c as zt,d as Rt,e as Os,R as At,f as Ds,L as It,g as Ot,h as Ms,T as Ls,H as Bs,i as $s,j as Dt,k as Vs,l as Fs,M as Gs,m as Ws,n as Mt,A as Hs,F as Us,o as Ys,p as Ks,U as qs,q as Xs,r as Js}from"./ui-vendor-BLDO93FK.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))r(c);new MutationObserver(c=>{for(const l of c)if(l.type==="childList")for(const n of l.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&r(n)}).observe(document,{childList:!0,subtree:!0});function t(c){const l={};return c.integrity&&(l.integrity=c.integrity),c.referrerPolicy&&(l.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?l.credentials="include":c.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(c){if(c.ep)return;c.ep=!0;const l=t(c);fetch(c.href,l)}})();const Lt="j13-theme";function Bt(){return localStorage.getItem(Lt)==="dark"?"dark":"light"}function $t(e){const s=document.documentElement;s.classList.toggle("dark",e==="dark"),s.style.colorScheme=e,localStorage.setItem(Lt,e)}const Qs="modulepreload",Zs=function(e){return"/"+e},ut={},te=function(s,t,r){let c=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const n=document.querySelector("meta[property=csp-nonce]"),d=(n==null?void 0:n.nonce)||(n==null?void 0:n.getAttribute("nonce"));c=Promise.allSettled(t.map(m=>{if(m=Zs(m),m in ut)return;ut[m]=!0;const i=m.endsWith(".css"),y=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${y}`))return;const a=document.createElement("link");if(a.rel=i?"stylesheet":Qs,i||(a.as="script"),a.crossOrigin="",a.href=m,d&&a.setAttribute("nonce",d),document.head.appendChild(a),i)return new Promise((S,P)=>{a.addEventListener("load",S),a.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${m}`)))})}))}function l(n){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=n,window.dispatchEvent(d),!d.defaultPrevented)throw n}return c.then(n=>{for(const d of n||[])d.status==="rejected"&&l(d.reason);return s().catch(l)})},eo="";async function E(e,s={}){const t=await fetch(eo+e,{credentials:"same-origin",...s,headers:{...s.body instanceof FormData?{}:{"Content-Type":"application/json"},...s.headers}});let r;try{r=await t.json()}catch{throw new Error("服务器响应异常")}if(!t.ok)throw new Error(r.error||"请求失败");return r}const ye={me:()=>E("/api/me"),stats:()=>E("/api/stats"),boards:()=>E("/api/boards"),posts:e=>{const s=new URLSearchParams(e).toString();return E(`/api/posts?${s}`)},hotPosts:()=>E("/api/posts/hot"),post:e=>E(`/api/posts/${e}`),comments:(e,s)=>{const t=s!=null&&s.length?`?my_ids=${s.join(",")}`:"";return E(`/api/posts/${e}/comments${t}`)},notifications:()=>E("/api/notifications"),online:()=>E("/api/online"),presence:()=>E("/api/presence",{method:"POST"}),favorites:()=>E("/api/favorites"),createBoard:e=>E("/api/admin/boards",{method:"POST",body:JSON.stringify(e)}),updateBoard:(e,s)=>E(`/api/admin/boards/${e}`,{method:"PUT",body:JSON.stringify(s)}),deleteBoard:e=>E(`/api/admin/boards/${e}`,{method:"DELETE"}),adminDashboard:()=>E("/api/admin/dashboard"),adminSettings:()=>E("/api/admin/settings"),adminPosts:e=>{const s=new URLSearchParams;e.page&&s.set("page",String(e.page)),e.keyword&&s.set("keyword",e.keyword);const t=s.toString();return E(`/api/admin/posts${t?`?${t}`:""}`)},adminPinPost:(e,s)=>E(`/api/admin/posts/${e}/pin`,{method:"POST",body:JSON.stringify({pinned:s})}),adminDeletePost:e=>E(`/api/admin/posts/${e}`,{method:"DELETE"}),adminComments:(e=1)=>E(`/api/admin/comments?page=${e}`),adminDeleteComment:e=>E(`/api/admin/comments/${e}`,{method:"DELETE"}),adminUsers:(e=1)=>E(`/api/admin/users?page=${e}`),adminBanUser:(e,s)=>E(`/api/admin/users/${e}/ban`,{method:"POST",body:JSON.stringify({banned:s})}),adminBackup:()=>E("/api/admin/backup",{method:"POST"}),updateNickname:e=>{const s=new FormData;return s.append("nickname",e),E("/api/profile/nickname",{method:"POST",body:s,headers:{}})},updatePassword:(e,s)=>{const t=new FormData;return t.append("old_password",e),t.append("new_password",s),E("/api/profile/password",{method:"POST",body:t,headers:{}})},uploadAvatar:e=>{const s=new FormData;return s.append("avatar",e),E("/api/profile/avatar",{method:"POST",body:s,headers:{}})},createPost:e=>{const s=new FormData;return s.append("board_id",e.board_id),s.append("title",e.title),s.append("content",e.content),s.append("tags",e.tags||""),E("/api/posts",{method:"POST",body:s,headers:{}})},updatePost:(e,s)=>{const t=new FormData;return t.append("title",s.title),t.append("content",s.content),t.append("tags",s.tags||""),E(`/api/posts/${e}`,{method:"PUT",body:t,headers:{}})},login:(e,s)=>{const t=new FormData;return t.append("username",e),t.append("password",s),E("/api/login",{method:"POST",body:t,headers:{}})},register:(e,s,t)=>{const r=new FormData;return r.append("username",e),r.append("password",s),r.append("nickname",t),E("/api/register",{method:"POST",body:r,headers:{}})},logout:()=>E("/api/logout",{method:"POST"}),like:e=>E(`/api/posts/${e}/like`,{method:"POST"}),favorite:e=>E(`/api/posts/${e}/favorite`,{method:"POST"}),addComment:(e,s)=>{const t=new FormData;return t.append("content",s.content),s.replyTo&&t.append("reply_to",String(s.replyTo)),s.guestNick&&t.append("guest_nick",s.guestNick),s.guestEmail&&t.append("guest_email",s.guestEmail),s.guestUrl&&t.append("guest_url",s.guestUrl),s.isPrivate&&t.append("is_private","1"),E(`/api/posts/${e}/comments`,{method:"POST",body:t,headers:{}})},ping:()=>E("/api/ping",{method:"POST"})},Vt=x.createContext({user:null,loading:!0,refresh:async()=>{},logout:async()=>{}});function to({children:e}){const[s,t]=x.useState(null),[r,c]=x.useState(!0),l=x.useCallback(async()=>{try{const d=await ye.me();t(d.user??null)}catch{t(null)}finally{c(!1)}},[]);x.useEffect(()=>{l()},[l]);const n=async()=>{await ye.logout(),t(null)};return o.jsx(Vt.Provider,{value:{user:s,loading:r,refresh:l,logout:n},children:e})}const We=()=>x.useContext(Vt),Ft=x.createContext({theme:"light",toggle:()=>{}});function so({children:e}){const[s,t]=x.useState(Bt);x.useLayoutEffect(()=>{$t(s)},[s]);const r=()=>t(c=>c==="light"?"dark":"light");return o.jsx(Ft.Provider,{value:{theme:s,toggle:r},children:e})}const Gt=()=>x.useContext(Ft);function oo(e){const[s,t]=x.useState(()=>window.matchMedia(e).matches);return x.useLayoutEffect(()=>{const r=window.matchMedia(e),c=()=>t(r.matches);return r.addEventListener("change",c),()=>r.removeEventListener("change",c)},[e]),s}function xe(){return o.jsxs("div",{className:"page-loader",role:"status","aria-live":"polite",children:[o.jsx("span",{className:"page-loader__dot"}),"加载中…"]})}function Wt(e){var s,t,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var c=e.length;for(s=0;s{const t=new Array(e.length+s.length);for(let r=0;r({classGroupId:e,validator:s}),Ut=(e=new Map,s=null,t)=>({nextPart:e,validators:s,classGroupId:t}),Fe="-",mt=[],no="arbitrary..",io=e=>{const s=co(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:n=>{if(n.startsWith("[")&&n.endsWith("]"))return lo(n);const d=n.split(Fe),m=d[0]===""&&d.length>1?1:0;return Yt(d,m,s)},getConflictingClassGroupIds:(n,d)=>{if(d){const m=r[n],i=t[n];return m?i?ro(i,m):m:i||mt}return t[n]||mt}}},Yt=(e,s,t)=>{if(e.length-s===0)return t.classGroupId;const c=e[s],l=t.nextPart.get(c);if(l){const i=Yt(e,s+1,l);if(i)return i}const n=t.validators;if(n===null)return;const d=s===0?e.join(Fe):e.slice(s).join(Fe),m=n.length;for(let i=0;ie.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const s=e.slice(1,-1),t=s.indexOf(":"),r=s.slice(0,t);return r?no+r:void 0})(),co=e=>{const{theme:s,classGroups:t}=e;return uo(t,s)},uo=(e,s)=>{const t=Ut();for(const r in e){const c=e[r];Qe(c,t,r,s)}return t},Qe=(e,s,t,r)=>{const c=e.length;for(let l=0;l{if(typeof e=="string"){po(e,s,t);return}if(typeof e=="function"){fo(e,s,t,r);return}ho(e,s,t,r)},po=(e,s,t)=>{const r=e===""?s:Kt(s,e);r.classGroupId=t},fo=(e,s,t,r)=>{if(go(e)){Qe(e(r),s,t,r);return}s.validators===null&&(s.validators=[]),s.validators.push(ao(t,e))},ho=(e,s,t,r)=>{const c=Object.entries(e),l=c.length;for(let n=0;n{let t=e;const r=s.split(Fe),c=r.length;for(let l=0;l"isThemeGetter"in e&&e.isThemeGetter===!0,bo=e=>{if(e<1)return{get:()=>{},set:()=>{}};let s=0,t=Object.create(null),r=Object.create(null);const c=(l,n)=>{t[l]=n,s++,s>e&&(s=0,r=t,t=Object.create(null))};return{get(l){let n=t[l];if(n!==void 0)return n;if((n=r[l])!==void 0)return c(l,n),n},set(l,n){l in t?t[l]=n:c(l,n)}}},qe="!",pt=":",xo=[],ft=(e,s,t,r,c)=>({modifiers:e,hasImportantModifier:s,baseClassName:t,maybePostfixModifierPosition:r,isExternal:c}),yo=e=>{const{prefix:s,experimentalParseClassName:t}=e;let r=c=>{const l=[];let n=0,d=0,m=0,i;const y=c.length;for(let O=0;Om?i-m:void 0;return ft(l,P,S,z)};if(s){const c=s+pt,l=r;r=n=>n.startsWith(c)?l(n.slice(c.length)):ft(xo,!1,n,void 0,!0)}if(t){const c=r;r=l=>t({className:l,parseClassName:c})}return r},vo=e=>{const s=new Map;return e.orderSensitiveModifiers.forEach((t,r)=>{s.set(t,1e6+r)}),t=>{const r=[];let c=[];for(let l=0;l0&&(c.sort(),r.push(...c),c=[]),r.push(n)):c.push(n)}return c.length>0&&(c.sort(),r.push(...c)),r}},wo=e=>({cache:bo(e.cacheSize),parseClassName:yo(e),sortModifiers:vo(e),postfixLookupClassGroupIds:ko(e),...io(e)}),ko=e=>{const s=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let r=0;r{const{parseClassName:t,getClassGroupId:r,getConflictingClassGroupIds:c,sortModifiers:l,postfixLookupClassGroupIds:n}=s,d=[],m=e.trim().split(jo);let i="";for(let y=m.length-1;y>=0;y-=1){const a=m[y],{isExternal:S,modifiers:P,hasImportantModifier:z,baseClassName:O,maybePostfixModifierPosition:I}=t(a);if(S){i=a+(i.length>0?" "+i:i);continue}let j=!!I,L;if(j){const D=O.substring(0,I);L=r(D);const p=L&&n[L]?r(O):void 0;p&&p!==L&&(L=p,j=!1)}else L=r(O);if(!L){if(!j){i=a+(i.length>0?" "+i:i);continue}if(L=r(O),!L){i=a+(i.length>0?" "+i:i);continue}j=!1}const q=P.length===0?"":P.length===1?P[0]:l(P).join(":"),J=z?q+qe:q,se=J+L;if(d.indexOf(se)>-1)continue;d.push(se);const B=c(L,j);for(let D=0;D0?" "+i:i)}return i},No=(...e)=>{let s=0,t,r,c="";for(;s{if(typeof e=="string")return e;let s,t="";for(let r=0;r{let t,r,c,l;const n=m=>{const i=s.reduce((y,a)=>a(y),e());return t=wo(i),r=t.cache.get,c=t.cache.set,l=d,d(m)},d=m=>{const i=r(m);if(i)return i;const y=So(m,t);return c(m,y),y};return l=n,(...m)=>l(No(...m))},To=[],$=e=>{const s=t=>t[e]||To;return s.isThemeGetter=!0,s},Xt=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Jt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Co=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,_o=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Po=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,zo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ro=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ao=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ke=e=>Co.test(e),w=e=>!!e&&!Number.isNaN(Number(e)),pe=e=>!!e&&Number.isInteger(Number(e)),Ye=e=>e.endsWith("%")&&w(e.slice(0,-1)),be=e=>_o.test(e),Qt=()=>!0,Io=e=>Po.test(e)&&!zo.test(e),Ze=()=>!1,Oo=e=>Ro.test(e),Do=e=>Ao.test(e),Mo=e=>!f(e)&&!h(e),Lo=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Bo=e=>je(e,ts,Ze),f=e=>Xt.test(e),Te=e=>je(e,ss,Io),ht=e=>je(e,Yo,w),$o=e=>je(e,rs,Qt),Vo=e=>je(e,os,Ze),gt=e=>je(e,Zt,Ze),Fo=e=>je(e,es,Do),Be=e=>je(e,as,Oo),h=e=>Jt.test(e),Ie=e=>Ce(e,ss),Go=e=>Ce(e,os),bt=e=>Ce(e,Zt),Wo=e=>Ce(e,ts),Ho=e=>Ce(e,es),$e=e=>Ce(e,as,!0),Uo=e=>Ce(e,rs,!0),je=(e,s,t)=>{const r=Xt.exec(e);return r?r[1]?s(r[1]):t(r[2]):!1},Ce=(e,s,t=!1)=>{const r=Jt.exec(e);return r?r[1]?s(r[1]):t:!1},Zt=e=>e==="position"||e==="percentage",es=e=>e==="image"||e==="url",ts=e=>e==="length"||e==="size"||e==="bg-size",ss=e=>e==="length",Yo=e=>e==="number",os=e=>e==="family-name",rs=e=>e==="number"||e==="weight",as=e=>e==="shadow",Ko=()=>{const e=$("color"),s=$("font"),t=$("text"),r=$("font-weight"),c=$("tracking"),l=$("leading"),n=$("breakpoint"),d=$("container"),m=$("spacing"),i=$("radius"),y=$("shadow"),a=$("inset-shadow"),S=$("text-shadow"),P=$("drop-shadow"),z=$("blur"),O=$("perspective"),I=$("aspect"),j=$("ease"),L=$("animate"),q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],J=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],se=()=>[...J(),h,f],B=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],p=()=>[h,f,m],M=()=>[ke,"full","auto",...p()],oe=()=>[pe,"none","subgrid",h,f],ue=()=>["auto",{span:["full",pe,h,f]},pe,h,f],re=()=>[pe,"auto",h,f],U=()=>["auto","min","max","fr",h,f],ne=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Y=()=>["start","end","center","stretch","center-safe","end-safe"],g=()=>["auto",...p()],T=()=>[ke,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...p()],K=()=>[ke,"screen","full","dvw","lvw","svw","min","max","fit",...p()],G=()=>[ke,"screen","full","lh","dvh","lvh","svh","min","max","fit",...p()],b=()=>[e,h,f],me=()=>[...J(),bt,gt,{position:[h,f]}],Se=()=>["no-repeat",{repeat:["","x","y","space","round"]}],N=()=>["auto","cover","contain",Wo,Bo,{size:[h,f]}],R=()=>[Ye,Ie,Te],k=()=>["","none","full",i,h,f],C=()=>["",w,Ie,Te],ie=()=>["solid","dashed","dotted","double"],_=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],A=()=>[w,Ye,bt,gt],Ne=()=>["","none",z,h,f],he=()=>["none",w,h,f],le=()=>["none",w,h,f],Re=()=>[w,h,f],ve=()=>[ke,"full",...p()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[be],breakpoint:[be],color:[Qt],container:[be],"drop-shadow":[be],ease:["in","out","in-out"],font:[Mo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[be],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[be],shadow:[be],spacing:["px",w],text:[be],"text-shadow":[be],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ke,f,h,I]}],container:["container"],"container-type":[{"@container":["","normal","size",h,f]}],"container-named":[Lo],columns:[{columns:[w,f,h,d]}],"break-after":[{"break-after":q()}],"break-before":[{"break-before":q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:se()}],overflow:[{overflow:B()}],"overflow-x":[{"overflow-x":B()}],"overflow-y":[{"overflow-y":B()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:M()}],"inset-x":[{"inset-x":M()}],"inset-y":[{"inset-y":M()}],start:[{"inset-s":M(),start:M()}],end:[{"inset-e":M(),end:M()}],"inset-bs":[{"inset-bs":M()}],"inset-be":[{"inset-be":M()}],top:[{top:M()}],right:[{right:M()}],bottom:[{bottom:M()}],left:[{left:M()}],visibility:["visible","invisible","collapse"],z:[{z:[pe,"auto",h,f]}],basis:[{basis:[ke,"full","auto",d,...p()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[w,ke,"auto","initial","none",f]}],grow:[{grow:["",w,h,f]}],shrink:[{shrink:["",w,h,f]}],order:[{order:[pe,"first","last","none",h,f]}],"grid-cols":[{"grid-cols":oe()}],"col-start-end":[{col:ue()}],"col-start":[{"col-start":re()}],"col-end":[{"col-end":re()}],"grid-rows":[{"grid-rows":oe()}],"row-start-end":[{row:ue()}],"row-start":[{"row-start":re()}],"row-end":[{"row-end":re()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":U()}],"auto-rows":[{"auto-rows":U()}],gap:[{gap:p()}],"gap-x":[{"gap-x":p()}],"gap-y":[{"gap-y":p()}],"justify-content":[{justify:[...ne(),"normal"]}],"justify-items":[{"justify-items":[...Y(),"normal"]}],"justify-self":[{"justify-self":["auto",...Y()]}],"align-content":[{content:["normal",...ne()]}],"align-items":[{items:[...Y(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Y(),{baseline:["","last"]}]}],"place-content":[{"place-content":ne()}],"place-items":[{"place-items":[...Y(),"baseline"]}],"place-self":[{"place-self":["auto",...Y()]}],p:[{p:p()}],px:[{px:p()}],py:[{py:p()}],ps:[{ps:p()}],pe:[{pe:p()}],pbs:[{pbs:p()}],pbe:[{pbe:p()}],pt:[{pt:p()}],pr:[{pr:p()}],pb:[{pb:p()}],pl:[{pl:p()}],m:[{m:g()}],mx:[{mx:g()}],my:[{my:g()}],ms:[{ms:g()}],me:[{me:g()}],mbs:[{mbs:g()}],mbe:[{mbe:g()}],mt:[{mt:g()}],mr:[{mr:g()}],mb:[{mb:g()}],ml:[{ml:g()}],"space-x":[{"space-x":p()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":p()}],"space-y-reverse":["space-y-reverse"],size:[{size:T()}],"inline-size":[{inline:["auto",...K()]}],"min-inline-size":[{"min-inline":["auto",...K()]}],"max-inline-size":[{"max-inline":["none",...K()]}],"block-size":[{block:["auto",...G()]}],"min-block-size":[{"min-block":["auto",...G()]}],"max-block-size":[{"max-block":["none",...G()]}],w:[{w:[d,"screen",...T()]}],"min-w":[{"min-w":[d,"screen","none",...T()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[n]},...T()]}],h:[{h:["screen","lh",...T()]}],"min-h":[{"min-h":["screen","lh","none",...T()]}],"max-h":[{"max-h":["screen","lh",...T()]}],"font-size":[{text:["base",t,Ie,Te]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Uo,$o]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ye,f]}],"font-family":[{font:[Go,Vo,s]}],"font-features":[{"font-features":[f]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,h,f]}],"line-clamp":[{"line-clamp":[w,"none",h,ht]}],leading:[{leading:[l,...p()]}],"list-image":[{"list-image":["none",h,f]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",h,f]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:b()}],"text-color":[{text:b()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ie(),"wavy"]}],"text-decoration-thickness":[{decoration:[w,"from-font","auto",h,Te]}],"text-decoration-color":[{decoration:b()}],"underline-offset":[{"underline-offset":[w,"auto",h,f]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:p()}],"tab-size":[{tab:[pe,h,f]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",h,f]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",h,f]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:me()}],"bg-repeat":[{bg:Se()}],"bg-size":[{bg:N()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},pe,h,f],radial:["",h,f],conic:[pe,h,f]},Ho,Fo]}],"bg-color":[{bg:b()}],"gradient-from-pos":[{from:R()}],"gradient-via-pos":[{via:R()}],"gradient-to-pos":[{to:R()}],"gradient-from":[{from:b()}],"gradient-via":[{via:b()}],"gradient-to":[{to:b()}],rounded:[{rounded:k()}],"rounded-s":[{"rounded-s":k()}],"rounded-e":[{"rounded-e":k()}],"rounded-t":[{"rounded-t":k()}],"rounded-r":[{"rounded-r":k()}],"rounded-b":[{"rounded-b":k()}],"rounded-l":[{"rounded-l":k()}],"rounded-ss":[{"rounded-ss":k()}],"rounded-se":[{"rounded-se":k()}],"rounded-ee":[{"rounded-ee":k()}],"rounded-es":[{"rounded-es":k()}],"rounded-tl":[{"rounded-tl":k()}],"rounded-tr":[{"rounded-tr":k()}],"rounded-br":[{"rounded-br":k()}],"rounded-bl":[{"rounded-bl":k()}],"border-w":[{border:C()}],"border-w-x":[{"border-x":C()}],"border-w-y":[{"border-y":C()}],"border-w-s":[{"border-s":C()}],"border-w-e":[{"border-e":C()}],"border-w-bs":[{"border-bs":C()}],"border-w-be":[{"border-be":C()}],"border-w-t":[{"border-t":C()}],"border-w-r":[{"border-r":C()}],"border-w-b":[{"border-b":C()}],"border-w-l":[{"border-l":C()}],"divide-x":[{"divide-x":C()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":C()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ie(),"hidden","none"]}],"divide-style":[{divide:[...ie(),"hidden","none"]}],"border-color":[{border:b()}],"border-color-x":[{"border-x":b()}],"border-color-y":[{"border-y":b()}],"border-color-s":[{"border-s":b()}],"border-color-e":[{"border-e":b()}],"border-color-bs":[{"border-bs":b()}],"border-color-be":[{"border-be":b()}],"border-color-t":[{"border-t":b()}],"border-color-r":[{"border-r":b()}],"border-color-b":[{"border-b":b()}],"border-color-l":[{"border-l":b()}],"divide-color":[{divide:b()}],"outline-style":[{outline:[...ie(),"none","hidden"]}],"outline-offset":[{"outline-offset":[w,h,f]}],"outline-w":[{outline:["",w,Ie,Te]}],"outline-color":[{outline:b()}],shadow:[{shadow:["","none",y,$e,Be]}],"shadow-color":[{shadow:b()}],"inset-shadow":[{"inset-shadow":["none",a,$e,Be]}],"inset-shadow-color":[{"inset-shadow":b()}],"ring-w":[{ring:C()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:b()}],"ring-offset-w":[{"ring-offset":[w,Te]}],"ring-offset-color":[{"ring-offset":b()}],"inset-ring-w":[{"inset-ring":C()}],"inset-ring-color":[{"inset-ring":b()}],"text-shadow":[{"text-shadow":["none",S,$e,Be]}],"text-shadow-color":[{"text-shadow":b()}],opacity:[{opacity:[w,h,f]}],"mix-blend":[{"mix-blend":[..._(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":_()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[w]}],"mask-image-linear-from-pos":[{"mask-linear-from":A()}],"mask-image-linear-to-pos":[{"mask-linear-to":A()}],"mask-image-linear-from-color":[{"mask-linear-from":b()}],"mask-image-linear-to-color":[{"mask-linear-to":b()}],"mask-image-t-from-pos":[{"mask-t-from":A()}],"mask-image-t-to-pos":[{"mask-t-to":A()}],"mask-image-t-from-color":[{"mask-t-from":b()}],"mask-image-t-to-color":[{"mask-t-to":b()}],"mask-image-r-from-pos":[{"mask-r-from":A()}],"mask-image-r-to-pos":[{"mask-r-to":A()}],"mask-image-r-from-color":[{"mask-r-from":b()}],"mask-image-r-to-color":[{"mask-r-to":b()}],"mask-image-b-from-pos":[{"mask-b-from":A()}],"mask-image-b-to-pos":[{"mask-b-to":A()}],"mask-image-b-from-color":[{"mask-b-from":b()}],"mask-image-b-to-color":[{"mask-b-to":b()}],"mask-image-l-from-pos":[{"mask-l-from":A()}],"mask-image-l-to-pos":[{"mask-l-to":A()}],"mask-image-l-from-color":[{"mask-l-from":b()}],"mask-image-l-to-color":[{"mask-l-to":b()}],"mask-image-x-from-pos":[{"mask-x-from":A()}],"mask-image-x-to-pos":[{"mask-x-to":A()}],"mask-image-x-from-color":[{"mask-x-from":b()}],"mask-image-x-to-color":[{"mask-x-to":b()}],"mask-image-y-from-pos":[{"mask-y-from":A()}],"mask-image-y-to-pos":[{"mask-y-to":A()}],"mask-image-y-from-color":[{"mask-y-from":b()}],"mask-image-y-to-color":[{"mask-y-to":b()}],"mask-image-radial":[{"mask-radial":[h,f]}],"mask-image-radial-from-pos":[{"mask-radial-from":A()}],"mask-image-radial-to-pos":[{"mask-radial-to":A()}],"mask-image-radial-from-color":[{"mask-radial-from":b()}],"mask-image-radial-to-color":[{"mask-radial-to":b()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":J()}],"mask-image-conic-pos":[{"mask-conic":[w]}],"mask-image-conic-from-pos":[{"mask-conic-from":A()}],"mask-image-conic-to-pos":[{"mask-conic-to":A()}],"mask-image-conic-from-color":[{"mask-conic-from":b()}],"mask-image-conic-to-color":[{"mask-conic-to":b()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:me()}],"mask-repeat":[{mask:Se()}],"mask-size":[{mask:N()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",h,f]}],filter:[{filter:["","none",h,f]}],blur:[{blur:Ne()}],brightness:[{brightness:[w,h,f]}],contrast:[{contrast:[w,h,f]}],"drop-shadow":[{"drop-shadow":["","none",P,$e,Be]}],"drop-shadow-color":[{"drop-shadow":b()}],grayscale:[{grayscale:["",w,h,f]}],"hue-rotate":[{"hue-rotate":[w,h,f]}],invert:[{invert:["",w,h,f]}],saturate:[{saturate:[w,h,f]}],sepia:[{sepia:["",w,h,f]}],"backdrop-filter":[{"backdrop-filter":["","none",h,f]}],"backdrop-blur":[{"backdrop-blur":Ne()}],"backdrop-brightness":[{"backdrop-brightness":[w,h,f]}],"backdrop-contrast":[{"backdrop-contrast":[w,h,f]}],"backdrop-grayscale":[{"backdrop-grayscale":["",w,h,f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[w,h,f]}],"backdrop-invert":[{"backdrop-invert":["",w,h,f]}],"backdrop-opacity":[{"backdrop-opacity":[w,h,f]}],"backdrop-saturate":[{"backdrop-saturate":[w,h,f]}],"backdrop-sepia":[{"backdrop-sepia":["",w,h,f]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":p()}],"border-spacing-x":[{"border-spacing-x":p()}],"border-spacing-y":[{"border-spacing-y":p()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",h,f]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[w,"initial",h,f]}],ease:[{ease:["linear","initial",j,h,f]}],delay:[{delay:[w,h,f]}],animate:[{animate:["none",L,h,f]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[O,h,f]}],"perspective-origin":[{"perspective-origin":se()}],rotate:[{rotate:he()}],"rotate-x":[{"rotate-x":he()}],"rotate-y":[{"rotate-y":he()}],"rotate-z":[{"rotate-z":he()}],scale:[{scale:le()}],"scale-x":[{"scale-x":le()}],"scale-y":[{"scale-y":le()}],"scale-z":[{"scale-z":le()}],"scale-3d":["scale-3d"],skew:[{skew:Re()}],"skew-x":[{"skew-x":Re()}],"skew-y":[{"skew-y":Re()}],transform:[{transform:[h,f,"","none","gpu","cpu"]}],"transform-origin":[{origin:se()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ve()}],"translate-x":[{"translate-x":ve()}],"translate-y":[{"translate-y":ve()}],"translate-z":[{"translate-z":ve()}],"translate-none":["translate-none"],zoom:[{zoom:[pe,h,f]}],accent:[{accent:b()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:b()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",h,f]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":b()}],"scrollbar-track-color":[{"scrollbar-track":b()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mbs":[{"scroll-mbs":p()}],"scroll-mbe":[{"scroll-mbe":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pbs":[{"scroll-pbs":p()}],"scroll-pbe":[{"scroll-pbe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",h,f]}],fill:[{fill:["none",...b()]}],"stroke-w":[{stroke:[w,Ie,Te,ht]}],stroke:[{stroke:["none",...b()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},qo=Eo(Ko);function ee(...e){return qo(Ht(e))}const Xo=Ms,Jo=Ls,Qo=x.forwardRef(({className:e,inset:s,children:t,...r},c)=>o.jsxs(Tt,{ref:c,className:ee("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",s&&"pl-8",e),...r,children:[t,o.jsx(As,{className:"ml-auto"})]}));Qo.displayName=Tt.displayName;const Zo=x.forwardRef(({className:e,...s},t)=>o.jsx(Ct,{ref:t,className:ee("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...s}));Zo.displayName=Ct.displayName;const ns=x.forwardRef(({className:e,sideOffset:s=4,...t},r)=>o.jsx(Is,{children:o.jsx(_t,{ref:r,sideOffset:s,className:ee("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));ns.displayName=_t.displayName;const Oe=x.forwardRef(({className:e,inset:s,...t},r)=>o.jsx(Pt,{ref:r,className:ee("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",s&&"pl-8",e),...t}));Oe.displayName=Pt.displayName;const er=x.forwardRef(({className:e,children:s,checked:t,...r},c)=>o.jsxs(zt,{ref:c,className:ee("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:t,...r,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(Rt,{children:o.jsx(Os,{className:"h-4 w-4"})})}),s]}));er.displayName=zt.displayName;const tr=x.forwardRef(({className:e,children:s,...t},r)=>o.jsxs(At,{ref:r,className:ee("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...t,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(Rt,{children:o.jsx(Ds,{className:"h-2 w-2 fill-current"})})}),s]}));tr.displayName=At.displayName;const sr=x.forwardRef(({className:e,inset:s,...t},r)=>o.jsx(It,{ref:r,className:ee("px-2 py-1.5 text-sm font-semibold",s&&"pl-8",e),...t}));sr.displayName=It.displayName;const Xe=x.forwardRef(({className:e,...s},t)=>o.jsx(Ot,{ref:t,className:ee("-mx-1 my-1 h-px bg-muted",e),...s}));Xe.displayName=Ot.displayName;const is="j13-cache-boards",ls="j13-cache-stats";function cs(e){try{const s=sessionStorage.getItem(e);return s?JSON.parse(s):null}catch{return null}}function ds(e,s){try{sessionStorage.setItem(e,JSON.stringify(s))}catch{}}function xt(){return cs(is)??[]}function yt(){return cs(ls)}function or(e){ds(is,e)}function rr(e){ds(ls,e)}const ar=["/post/","/profile"];function us(e){return ar.some(s=>e.startsWith(s))}function nr(e,s){return us(e)?null:e.startsWith("/favorites")?"favorites":e.startsWith("/admin")?"admin":s===0?"all":String(s)}function ir({boards:e,activeBoard:s,onSelectBoard:t}){const r=Ge(),c=Nt(),{user:l}=We(),n=(l==null?void 0:l.role)==="admin",d=nr(c.pathname,s),m=(i,y,a,S)=>o.jsxs("button",{type:"button",className:ee("sidebar-nav-item",d!=null&&d===i&&"active"),onClick:S,children:[a,o.jsx("span",{className:"flex-1 truncate",children:y})]},i);return o.jsxs("aside",{className:"sidebar",children:[o.jsx("div",{className:"sidebar-section",children:"浏览"}),o.jsxs("nav",{className:"sidebar-nav",children:[m("all","全部帖子",o.jsx(Bs,{}),()=>{t(0),r("/")}),l&&m("favorites","我的收藏",o.jsx($s,{}),()=>r("/favorites"))]}),e.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"sidebar-section",style:{marginTop:8},children:"板块"}),o.jsx("nav",{className:"sidebar-nav",children:e.map(i=>o.jsx("button",{type:"button",className:ee("sidebar-nav-item",d!=null&&d===String(i.id)&&"active"),onClick:()=>{t(i.id),r(`/?board=${i.id}`)},children:o.jsx("span",{className:"flex-1 truncate",children:i.name})},i.id))})]}),n&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"sidebar-section",style:{marginTop:8},children:"管理"}),o.jsx("nav",{className:"sidebar-nav",children:m("admin","管理后台",o.jsx(Dt,{}),()=>r("/admin/dashboard"))})]})]})}function lr({hot:e,notifications:s,online:t,onPostClick:r}){const c=(e==null?void 0:e.slice(0,8))??[],l=(s==null?void 0:s.slice(0,6))??[],n=(t==null?void 0:t.users)??[];return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"widget-card",children:[o.jsx("div",{className:"widget-card-head",children:"🔥 热门帖子"}),o.jsx("div",{className:"widget-card-body",children:c.length===0?o.jsx("div",{style:{fontSize:13,color:"var(--color-text-3)",padding:"8px 0"},children:"暂无数据"}):c.map((d,m)=>o.jsxs("div",{className:"widget-item",onClick:()=>r(d.id),children:[o.jsx("span",{style:{color:m<3?"#e74c3c":"var(--color-text-3)",fontWeight:600,minWidth:18},children:m+1}),o.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d.title})]},d.id))})]}),o.jsxs("div",{className:"widget-card",children:[o.jsx("div",{className:"widget-card-head",children:"📢 最新动态"}),o.jsx("div",{className:"widget-card-body",children:l.length===0?o.jsx("div",{style:{fontSize:13,color:"var(--color-text-3)",padding:"8px 0"},children:"暂无动态"}):l.map(d=>o.jsxs("div",{className:"widget-item",onClick:()=>r(d.id),children:[o.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d.title}),o.jsx("span",{style:{fontSize:11,color:"var(--color-text-4)",flexShrink:0},children:d.created_at})]},d.id))})]}),o.jsxs("div",{className:"widget-card",children:[o.jsxs("div",{className:"widget-card-head",children:["👀 当前浏览 ",(t==null?void 0:t.count)??"—"," 人"]}),o.jsxs("div",{className:"widget-card-body",children:[o.jsxs("div",{style:{fontSize:12,color:"var(--color-text-3)",marginBottom:8},children:["会员 ",(t==null?void 0:t.members)??0," · 游客 ",(t==null?void 0:t.guests)??0]}),o.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[n.map(d=>{var m;return o.jsx("span",{title:d.nickname,style:{width:28,height:28,borderRadius:"50%",background:"var(--j13-green)",color:"#fff",fontSize:12,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:((m=d.nickname)==null?void 0:m[0])||"?"},d.id)}),n.length===0&&o.jsx("span",{style:{fontSize:13,color:"var(--color-text-3)"},children:"暂无会员在线"})]})]})]}),o.jsx("div",{className:"widget-card widget-card--about",children:o.jsx("div",{className:"widget-card-body",children:o.jsxs("p",{className:"widget-about-text",children:[o.jsx("strong",{children:"姜十三论坛"}),"拾三一隅,自在交流。轻量社区,专为小圈子打造。"]})})})]})}function cr(){var Y;const{user:e,loading:s,logout:t}=We(),{theme:r,toggle:c}=Gt(),l=oo("(max-width: 768px)"),n=Ge(),d=Nt(),[m]=Ts(),i=d.pathname.startsWith("/compose")||/\/post\/\d+\/edit$/.test(d.pathname),[y,a]=x.useState(()=>xt()),[S,P]=x.useState(()=>yt()),[z,O]=x.useState(()=>xt().length>0||!!yt()),[I,j]=x.useState([]),[L,q]=x.useState([]),[J,se]=x.useState(null),[B,D]=x.useState(Number(m.get("board"))||0),[p,M]=x.useState(m.get("keyword")||"");x.useEffect(()=>{D(Number(m.get("board"))||0)},[m]),x.useEffect(()=>{M(m.get("keyword")||"")},[m]);const oe=x.useCallback(()=>{Promise.all([ye.boards().then(g=>{const T=g.boards??[];return a(T),or(T),T}).catch(()=>[]),ye.stats().then(g=>(P(g),rr(g),g)).catch(()=>null)]).finally(()=>O(!0))},[]),ue=x.useCallback(()=>{ye.online().then(g=>{se({count:g.count??0,members:g.members??0,guests:g.guests??0,users:Array.isArray(g.users)?g.users:[]})}).catch(()=>{})},[]);x.useEffect(()=>{oe(),ye.hotPosts().then(G=>j(Array.isArray(G.posts)?G.posts:[])).catch(()=>{}),ye.notifications().then(G=>q(Array.isArray(G.notifications)?G.notifications:[])).catch(()=>{}),ue(),ye.presence().catch(()=>{});const g=setInterval(ue,3e4),T=setInterval(()=>ye.presence().catch(()=>{}),6e4),K=()=>oe();return window.addEventListener("boards-refresh",K),()=>{clearInterval(g),clearInterval(T),window.removeEventListener("boards-refresh",K)}},[oe,ue]);const re=()=>{p.trim()?n(`/?keyword=${encodeURIComponent(p.trim())}`):n("/")},U=((Y=e==null?void 0:e.nickname)==null?void 0:Y.charAt(0))||"?",ne=us(d.pathname)?-1:B;return o.jsx("div",{className:"app-shell",children:o.jsxs("div",{className:"app-frame",children:[o.jsx("header",{className:"app-header",children:o.jsxs("div",{className:"header-inner",children:[o.jsxs("button",{type:"button",className:"header-brand",onClick:()=>n("/"),children:[o.jsx("span",{className:"header-logo-mark",children:"姜"}),!l&&o.jsx("span",{className:"header-logo-text",children:"姜十三论坛"})]}),!i&&o.jsxs("div",{className:"header-search-wrap",children:[o.jsx(Vs,{className:"header-search-icon",size:16}),o.jsx("input",{className:"header-search-input",type:"search",placeholder:"搜索帖子...",value:p,onChange:g=>M(g.target.value),onKeyDown:g=>g.key==="Enter"&&re()}),p&&o.jsx("button",{type:"button",className:"header-search-clear",onClick:()=>{M(""),n("/")},"aria-label":"清除搜索",children:"×"})]}),o.jsxs("div",{className:"header-actions",children:[!i&&o.jsxs("button",{type:"button",className:"header-compose-btn",onClick:()=>n(e?"/compose":"/login"),children:[o.jsx(Fs,{size:16}),!l&&o.jsx("span",{children:"发帖"})]}),o.jsxs("div",{className:"header-action-group",children:[o.jsx("button",{type:"button",className:"header-icon-btn",onClick:c,title:r==="light"?"切换暗色模式":"切换亮色模式",children:r==="light"?o.jsx(Gs,{size:18}):o.jsx(Ws,{size:18})}),s?o.jsx("span",{className:"header-auth-slot header-auth-slot--loading","aria-hidden":!0}):e?o.jsxs(Xo,{children:[o.jsx(Jo,{asChild:!0,children:o.jsx("button",{type:"button",className:"header-user-btn",title:e.nickname,children:e.avatar?o.jsx("img",{src:e.avatar,alt:"",className:"header-user-avatar"}):o.jsx("span",{className:"header-user-initial",children:U})})}),o.jsxs(ns,{align:"end",className:"w-40",children:[o.jsx(Oe,{onClick:()=>n("/profile"),children:"个人中心"}),o.jsx(Oe,{onClick:()=>n("/favorites"),children:"我的收藏"}),e.role==="admin"&&o.jsxs(o.Fragment,{children:[o.jsx(Xe,{}),o.jsx(Oe,{onClick:()=>n("/admin/dashboard"),children:"管理后台"})]}),o.jsx(Xe,{}),o.jsx(Oe,{onClick:()=>t().then(()=>n("/login")),children:"退出登录"})]})]}):o.jsx("button",{type:"button",className:"header-login-btn",onClick:()=>n("/login"),children:"登录"})]})]})]})}),o.jsxs("div",{className:`app-body${i?" app-body--compose":""}`,children:[!i&&o.jsx(ir,{boards:y,activeBoard:B,onSelectBoard:D}),o.jsxs("div",{className:`content-workspace${i?" content-workspace--compose":""}`,children:[o.jsxs("main",{className:`main-content${i?" main-content--compose":""}`,children:[l&&!i&&o.jsxs("div",{className:"mobile-board-bar",children:[o.jsx("span",{className:`board-chip ${ne===0?"active":""}`,onClick:()=>{D(0),n("/")},children:"全部"}),y.map(g=>o.jsx("span",{className:`board-chip ${ne===g.id?"active":""}`,onClick:()=>{D(g.id),n(`/?board=${g.id}`)},children:g.name},g.id))]}),o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(Et,{context:{boardId:B,keyword:m.get("keyword")||"",setBoardId:D,boards:y,stats:S,layoutReady:z,refreshBoards:oe,isMobile:l}})})]}),!i&&o.jsx("aside",{className:"aside-panel",children:o.jsx(lr,{hot:I,notifications:L,online:J,onPostClick:g=>n(`/post/${g}`)})})]})]})]})})}const dr={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-8 w-8"};function ur({className:e,size:s="md"}){return o.jsx(Mt,{className:ee("animate-spin text-[var(--j13-green)]",dr[s],e),"aria-label":"加载中"})}function mr(e){if(typeof document>"u")return;let s=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css",s.appendChild(t),t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}const pr=e=>{switch(e){case"success":return gr;case"info":return xr;case"warning":return br;case"error":return yr;default:return null}},fr=Array(12).fill(0),hr=({visible:e,className:s})=>u.createElement("div",{className:["sonner-loading-wrapper",s].filter(Boolean).join(" "),"data-visible":e},u.createElement("div",{className:"sonner-spinner"},fr.map((t,r)=>u.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),gr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),br=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),xr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),yr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},u.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),vr=u.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},u.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),u.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),wr=()=>{const[e,s]=u.useState(document.hidden);return u.useEffect(()=>{const t=()=>{s(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),e};let Je=1;class kr{constructor(){this.subscribe=s=>(this.subscribers.push(s),()=>{const t=this.subscribers.indexOf(s);this.subscribers.splice(t,1)}),this.publish=s=>{this.subscribers.forEach(t=>t(s))},this.addToast=s=>{this.publish(s),this.toasts=[...this.toasts,s]},this.create=s=>{var t;const{message:r,...c}=s,l=typeof(s==null?void 0:s.id)=="number"||((t=s.id)==null?void 0:t.length)>0?s.id:Je++,n=this.toasts.find(m=>m.id===l),d=s.dismissible===void 0?!0:s.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),n?this.toasts=this.toasts.map(m=>m.id===l?(this.publish({...m,...s,id:l,title:r}),{...m,...s,id:l,dismissible:d,title:r}):m):this.addToast({title:r,...c,dismissible:d,id:l}),l},this.dismiss=s=>(s?(this.dismissedToasts.add(s),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:s,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(r=>r({id:t.id,dismiss:!0}))}),s),this.message=(s,t)=>this.create({...t,message:s}),this.error=(s,t)=>this.create({...t,message:s,type:"error"}),this.success=(s,t)=>this.create({...t,type:"success",message:s}),this.info=(s,t)=>this.create({...t,type:"info",message:s}),this.warning=(s,t)=>this.create({...t,type:"warning",message:s}),this.loading=(s,t)=>this.create({...t,type:"loading",message:s}),this.promise=(s,t)=>{if(!t)return;let r;t.loading!==void 0&&(r=this.create({...t,promise:s,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));const c=Promise.resolve(s instanceof Function?s():s);let l=r!==void 0,n;const d=c.then(async i=>{if(n=["resolve",i],u.isValidElement(i))l=!1,this.create({id:r,type:"default",message:i});else if(Sr(i)&&!i.ok){l=!1;const a=typeof t.error=="function"?await t.error(`HTTP error! status: ${i.status}`):t.error,S=typeof t.description=="function"?await t.description(`HTTP error! status: ${i.status}`):t.description,z=typeof a=="object"&&!u.isValidElement(a)?a:{message:a};this.create({id:r,type:"error",description:S,...z})}else if(i instanceof Error){l=!1;const a=typeof t.error=="function"?await t.error(i):t.error,S=typeof t.description=="function"?await t.description(i):t.description,z=typeof a=="object"&&!u.isValidElement(a)?a:{message:a};this.create({id:r,type:"error",description:S,...z})}else if(t.success!==void 0){l=!1;const a=typeof t.success=="function"?await t.success(i):t.success,S=typeof t.description=="function"?await t.description(i):t.description,z=typeof a=="object"&&!u.isValidElement(a)?a:{message:a};this.create({id:r,type:"success",description:S,...z})}}).catch(async i=>{if(n=["reject",i],t.error!==void 0){l=!1;const y=typeof t.error=="function"?await t.error(i):t.error,a=typeof t.description=="function"?await t.description(i):t.description,P=typeof y=="object"&&!u.isValidElement(y)?y:{message:y};this.create({id:r,type:"error",description:a,...P})}}).finally(()=>{l&&(this.dismiss(r),r=void 0),t.finally==null||t.finally.call(t)}),m=()=>new Promise((i,y)=>d.then(()=>n[0]==="reject"?y(n[1]):i(n[1])).catch(y));return typeof r!="string"&&typeof r!="number"?{unwrap:m}:Object.assign(r,{unwrap:m})},this.custom=(s,t)=>{const r=(t==null?void 0:t.id)||Je++;return this.create({jsx:s(r),id:r,...t}),r},this.getActiveToasts=()=>this.toasts.filter(s=>!this.dismissedToasts.has(s.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const X=new kr,jr=(e,s)=>{const t=(s==null?void 0:s.id)||Je++;return X.addToast({title:e,...s,id:t}),t},Sr=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Nr=jr,Er=()=>X.toasts,Tr=()=>X.getActiveToasts(),Ke=Object.assign(Nr,{success:X.success,info:X.info,warning:X.warning,error:X.error,custom:X.custom,message:X.message,promise:X.promise,dismiss:X.dismiss,loading:X.loading},{getHistory:Er,getToasts:Tr});mr("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Ve(e){return e.label!==void 0}const Cr=3,_r="24px",Pr="16px",vt=4e3,zr=356,Rr=14,Ar=45,Ir=200;function fe(...e){return e.filter(Boolean).join(" ")}function Or(e){const[s,t]=e.split("-"),r=[];return s&&r.push(s),t&&r.push(t),r}const Dr=e=>{var s,t,r,c,l,n,d,m,i;const{invert:y,toast:a,unstyled:S,interacting:P,setHeights:z,visibleToasts:O,heights:I,index:j,toasts:L,expanded:q,removeToast:J,defaultRichColors:se,closeButton:B,style:D,cancelButtonStyle:p,actionButtonStyle:M,className:oe="",descriptionClassName:ue="",duration:re,position:U,gap:ne,expandByDefault:Y,classNames:g,icons:T,closeButtonAriaLabel:K="Close toast"}=e,[G,b]=u.useState(null),[me,Se]=u.useState(null),[N,R]=u.useState(!1),[k,C]=u.useState(!1),[ie,_]=u.useState(!1),[A,Ne]=u.useState(!1),[he,le]=u.useState(!1),[Re,ve]=u.useState(0),[fs,et]=u.useState(0),Ae=u.useRef(a.duration||re||vt),tt=u.useRef(null),ge=u.useRef(null),hs=j===0,gs=j+1<=O,Q=a.type,_e=a.dismissible!==!1,bs=a.className||"",xs=a.descriptionClassName||"",De=u.useMemo(()=>I.findIndex(v=>v.toastId===a.id)||0,[I,a.id]),ys=u.useMemo(()=>{var v;return(v=a.closeButton)!=null?v:B},[a.closeButton,B]),st=u.useMemo(()=>a.duration||re||vt,[a.duration,re]),He=u.useRef(0),Pe=u.useRef(0),ot=u.useRef(0),ze=u.useRef(null),[vs,ws]=U.split("-"),rt=u.useMemo(()=>I.reduce((v,V,H)=>H>=De?v:v+V.height,0),[I,De]),at=wr(),ks=a.invert||y,Ue=Q==="loading";Pe.current=u.useMemo(()=>De*ne+rt,[De,rt]),u.useEffect(()=>{Ae.current=st},[st]),u.useEffect(()=>{R(!0)},[]),u.useEffect(()=>{const v=ge.current;if(v){const V=v.getBoundingClientRect().height;return et(V),z(H=>[{toastId:a.id,height:V,position:a.position},...H]),()=>z(H=>H.filter(Z=>Z.toastId!==a.id))}},[z,a.id]),u.useLayoutEffect(()=>{if(!N)return;const v=ge.current,V=v.style.height;v.style.height="auto";const H=v.getBoundingClientRect().height;v.style.height=V,et(H),z(Z=>Z.find(W=>W.toastId===a.id)?Z.map(W=>W.toastId===a.id?{...W,height:H}:W):[{toastId:a.id,height:H,position:a.position},...Z])},[N,a.title,a.description,z,a.id,a.jsx,a.action,a.cancel]);const we=u.useCallback(()=>{C(!0),ve(Pe.current),z(v=>v.filter(V=>V.toastId!==a.id)),setTimeout(()=>{J(a)},Ir)},[a,J,z,Pe]);u.useEffect(()=>{if(a.promise&&Q==="loading"||a.duration===1/0||a.type==="loading")return;let v;return q||P||at?(()=>{if(ot.current{Ae.current!==1/0&&(He.current=new Date().getTime(),v=setTimeout(()=>{a.onAutoClose==null||a.onAutoClose.call(a,a),we()},Ae.current))})(),()=>clearTimeout(v)},[q,P,a,Q,at,we]),u.useEffect(()=>{a.delete&&(we(),a.onDismiss==null||a.onDismiss.call(a,a))},[we,a.delete]);function js(){var v;if(T!=null&&T.loading){var V;return u.createElement("div",{className:fe(g==null?void 0:g.loader,a==null||(V=a.classNames)==null?void 0:V.loader,"sonner-loader"),"data-visible":Q==="loading"},T.loading)}return u.createElement(hr,{className:fe(g==null?void 0:g.loader,a==null||(v=a.classNames)==null?void 0:v.loader),visible:Q==="loading"})}const Ss=a.icon||(T==null?void 0:T[Q])||pr(Q);var nt,it;return u.createElement("li",{tabIndex:0,ref:ge,className:fe(oe,bs,g==null?void 0:g.toast,a==null||(s=a.classNames)==null?void 0:s.toast,g==null?void 0:g.default,g==null?void 0:g[Q],a==null||(t=a.classNames)==null?void 0:t[Q]),"data-sonner-toast":"","data-rich-colors":(nt=a.richColors)!=null?nt:se,"data-styled":!(a.jsx||a.unstyled||S),"data-mounted":N,"data-promise":!!a.promise,"data-swiped":he,"data-removed":k,"data-visible":gs,"data-y-position":vs,"data-x-position":ws,"data-index":j,"data-front":hs,"data-swiping":ie,"data-dismissible":_e,"data-type":Q,"data-invert":ks,"data-swipe-out":A,"data-swipe-direction":me,"data-expanded":!!(q||Y&&N),"data-testid":a.testId,style:{"--index":j,"--toasts-before":j,"--z-index":L.length-j,"--offset":`${k?Re:Pe.current}px`,"--initial-height":Y?"auto":`${fs}px`,...D,...a.style},onDragEnd:()=>{_(!1),b(null),ze.current=null},onPointerDown:v=>{v.button!==2&&(Ue||!_e||(tt.current=new Date,ve(Pe.current),v.target.setPointerCapture(v.pointerId),v.target.tagName!=="BUTTON"&&(_(!0),ze.current={x:v.clientX,y:v.clientY})))},onPointerUp:()=>{var v,V,H;if(A||!_e)return;ze.current=null;const Z=Number(((v=ge.current)==null?void 0:v.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Me=Number(((V=ge.current)==null?void 0:V.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),W=new Date().getTime()-((H=tt.current)==null?void 0:H.getTime()),ae=G==="x"?Z:Me,Le=Math.abs(ae)/W;if(Math.abs(ae)>=Ar||Le>.11){ve(Pe.current),a.onDismiss==null||a.onDismiss.call(a,a),Se(G==="x"?Z>0?"right":"left":Me>0?"down":"up"),we(),Ne(!0);return}else{var ce,de;(ce=ge.current)==null||ce.style.setProperty("--swipe-amount-x","0px"),(de=ge.current)==null||de.style.setProperty("--swipe-amount-y","0px")}le(!1),_(!1),b(null)},onPointerMove:v=>{var V,H,Z;if(!ze.current||!_e||((V=window.getSelection())==null?void 0:V.toString().length)>0)return;const W=v.clientY-ze.current.y,ae=v.clientX-ze.current.x;var Le;const ce=(Le=e.swipeDirections)!=null?Le:Or(U);!G&&(Math.abs(ae)>1||Math.abs(W)>1)&&b(Math.abs(ae)>Math.abs(W)?"x":"y");let de={x:0,y:0};const lt=Ee=>1/(1.5+Math.abs(Ee)/20);if(G==="y"){if(ce.includes("top")||ce.includes("bottom"))if(ce.includes("top")&&W<0||ce.includes("bottom")&&W>0)de.y=W;else{const Ee=W*lt(W);de.y=Math.abs(Ee)0)de.x=ae;else{const Ee=ae*lt(ae);de.x=Math.abs(Ee)0||Math.abs(de.y)>0)&&le(!0),(H=ge.current)==null||H.style.setProperty("--swipe-amount-x",`${de.x}px`),(Z=ge.current)==null||Z.style.setProperty("--swipe-amount-y",`${de.y}px`)}},ys&&!a.jsx&&Q!=="loading"?u.createElement("button",{"aria-label":K,"data-disabled":Ue,"data-close-button":!0,onClick:Ue||!_e?()=>{}:()=>{we(),a.onDismiss==null||a.onDismiss.call(a,a)},className:fe(g==null?void 0:g.closeButton,a==null||(r=a.classNames)==null?void 0:r.closeButton)},(it=T==null?void 0:T.close)!=null?it:vr):null,(Q||a.icon||a.promise)&&a.icon!==null&&((T==null?void 0:T[Q])!==null||a.icon)?u.createElement("div",{"data-icon":"",className:fe(g==null?void 0:g.icon,a==null||(c=a.classNames)==null?void 0:c.icon)},a.promise||a.type==="loading"&&!a.icon?a.icon||js():null,a.type!=="loading"?Ss:null):null,u.createElement("div",{"data-content":"",className:fe(g==null?void 0:g.content,a==null||(l=a.classNames)==null?void 0:l.content)},u.createElement("div",{"data-title":"",className:fe(g==null?void 0:g.title,a==null||(n=a.classNames)==null?void 0:n.title)},a.jsx?a.jsx:typeof a.title=="function"?a.title():a.title),a.description?u.createElement("div",{"data-description":"",className:fe(ue,xs,g==null?void 0:g.description,a==null||(d=a.classNames)==null?void 0:d.description)},typeof a.description=="function"?a.description():a.description):null),u.isValidElement(a.cancel)?a.cancel:a.cancel&&Ve(a.cancel)?u.createElement("button",{"data-button":!0,"data-cancel":!0,style:a.cancelButtonStyle||p,onClick:v=>{Ve(a.cancel)&&_e&&(a.cancel.onClick==null||a.cancel.onClick.call(a.cancel,v),we())},className:fe(g==null?void 0:g.cancelButton,a==null||(m=a.classNames)==null?void 0:m.cancelButton)},a.cancel.label):null,u.isValidElement(a.action)?a.action:a.action&&Ve(a.action)?u.createElement("button",{"data-button":!0,"data-action":!0,style:a.actionButtonStyle||M,onClick:v=>{Ve(a.action)&&(a.action.onClick==null||a.action.onClick.call(a.action,v),!v.defaultPrevented&&we())},className:fe(g==null?void 0:g.actionButton,a==null||(i=a.classNames)==null?void 0:i.actionButton)},a.action.label):null)};function wt(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Mr(e,s){const t={};return[e,s].forEach((r,c)=>{const l=c===1,n=l?"--mobile-offset":"--offset",d=l?Pr:_r;function m(i){["top","right","bottom","left"].forEach(y=>{t[`${n}-${y}`]=typeof i=="number"?`${i}px`:i})}typeof r=="number"||typeof r=="string"?m(r):typeof r=="object"?["top","right","bottom","left"].forEach(i=>{r[i]===void 0?t[`${n}-${i}`]=d:t[`${n}-${i}`]=typeof r[i]=="number"?`${r[i]}px`:r[i]}):m(d)}),t}const Lr=u.forwardRef(function(s,t){const{id:r,invert:c,position:l="bottom-right",hotkey:n=["altKey","KeyT"],expand:d,closeButton:m,className:i,offset:y,mobileOffset:a,theme:S="light",richColors:P,duration:z,style:O,visibleToasts:I=Cr,toastOptions:j,dir:L=wt(),gap:q=Rr,icons:J,containerAriaLabel:se="Notifications"}=s,[B,D]=u.useState([]),p=u.useMemo(()=>r?B.filter(N=>N.toasterId===r):B.filter(N=>!N.toasterId),[B,r]),M=u.useMemo(()=>Array.from(new Set([l].concat(p.filter(N=>N.position).map(N=>N.position)))),[p,l]),[oe,ue]=u.useState([]),[re,U]=u.useState(!1),[ne,Y]=u.useState(!1),[g,T]=u.useState(S!=="system"?S:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),K=u.useRef(null),G=n.join("+").replace(/Key/g,"").replace(/Digit/g,""),b=u.useRef(null),me=u.useRef(!1),Se=u.useCallback(N=>{D(R=>{var k;return(k=R.find(C=>C.id===N.id))!=null&&k.delete||X.dismiss(N.id),R.filter(({id:C})=>C!==N.id)})},[]);return u.useEffect(()=>X.subscribe(N=>{if(N.dismiss){requestAnimationFrame(()=>{D(R=>R.map(k=>k.id===N.id?{...k,delete:!0}:k))});return}setTimeout(()=>{Cs.flushSync(()=>{D(R=>{const k=R.findIndex(C=>C.id===N.id);return k!==-1?[...R.slice(0,k),{...R[k],...N},...R.slice(k+1)]:[N,...R]})})})}),[B]),u.useEffect(()=>{if(S!=="system"){T(S);return}if(S==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?T("dark"):T("light")),typeof window>"u")return;const N=window.matchMedia("(prefers-color-scheme: dark)");try{N.addEventListener("change",({matches:R})=>{T(R?"dark":"light")})}catch{N.addListener(({matches:k})=>{try{T(k?"dark":"light")}catch(C){console.error(C)}})}},[S]),u.useEffect(()=>{B.length<=1&&U(!1)},[B]),u.useEffect(()=>{const N=R=>{var k;if(n.every(_=>R[_]||R.code===_)){var ie;U(!0),(ie=K.current)==null||ie.focus()}R.code==="Escape"&&(document.activeElement===K.current||(k=K.current)!=null&&k.contains(document.activeElement))&&U(!1)};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[n]),u.useEffect(()=>{if(K.current)return()=>{b.current&&(b.current.focus({preventScroll:!0}),b.current=null,me.current=!1)}},[K.current]),u.createElement("section",{ref:t,"aria-label":`${se} ${G}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},M.map((N,R)=>{var k;const[C,ie]=N.split("-");return p.length?u.createElement("ol",{key:N,dir:L==="auto"?wt():L,tabIndex:-1,ref:K,className:i,"data-sonner-toaster":!0,"data-sonner-theme":g,"data-y-position":C,"data-x-position":ie,style:{"--front-toast-height":`${((k=oe[0])==null?void 0:k.height)||0}px`,"--width":`${zr}px`,"--gap":`${q}px`,...O,...Mr(y,a)},onBlur:_=>{me.current&&!_.currentTarget.contains(_.relatedTarget)&&(me.current=!1,b.current&&(b.current.focus({preventScroll:!0}),b.current=null))},onFocus:_=>{_.target instanceof HTMLElement&&_.target.dataset.dismissible==="false"||me.current||(me.current=!0,b.current=_.relatedTarget)},onMouseEnter:()=>U(!0),onMouseMove:()=>U(!0),onMouseLeave:()=>{ne||U(!1)},onDragEnd:()=>U(!1),onPointerDown:_=>{_.target instanceof HTMLElement&&_.target.dataset.dismissible==="false"||Y(!0)},onPointerUp:()=>Y(!1)},p.filter(_=>!_.position&&R===0||_.position===N).map((_,A)=>{var Ne,he;return u.createElement(Dr,{key:_.id,icons:J,index:A,toast:_,defaultRichColors:P,duration:(Ne=j==null?void 0:j.duration)!=null?Ne:z,className:j==null?void 0:j.className,descriptionClassName:j==null?void 0:j.descriptionClassName,invert:c,visibleToasts:I,closeButton:(he=j==null?void 0:j.closeButton)!=null?he:m,interacting:ne,position:N,style:j==null?void 0:j.style,unstyled:j==null?void 0:j.unstyled,classNames:j==null?void 0:j.classNames,cancelButtonStyle:j==null?void 0:j.cancelButtonStyle,actionButtonStyle:j==null?void 0:j.actionButtonStyle,closeButtonAriaLabel:j==null?void 0:j.closeButtonAriaLabel,removeToast:Se,toasts:p.filter(le=>le.position==_.position),heights:oe.filter(le=>le.position==_.position),setHeights:ue,expandByDefault:d,gap:q,expanded:re,swipeDirections:s.swipeDirections})})):null}))}),ms={success:e=>Ke.success(e),error:e=>Ke.error(e),warning:e=>Ke.warning(e)},Br=[{to:"/admin/dashboard",label:"仪表盘",icon:Dt},{to:"/admin/boards",label:"板块管理",icon:Us},{to:"/admin/posts",label:"帖子管理",icon:Ys},{to:"/admin/comments",label:"评论管理",icon:Ks},{to:"/admin/users",label:"用户管理",icon:qs},{to:"/admin/settings",label:"系统设置",icon:Xs}];function $r(){const{user:e,loading:s}=We(),t=Ge();return x.useEffect(()=>{if(!s){if(!e){t("/login");return}e.role!=="admin"&&(ms.warning("需要管理员权限"),t("/"))}},[e,s,t]),s?o.jsx("div",{className:"flex justify-center py-24",children:o.jsx(ur,{size:"lg"})}):!e||e.role!=="admin"?null:o.jsxs("div",{className:"admin-shell",children:[o.jsxs("header",{className:"admin-topbar",children:[o.jsxs("div",{className:"admin-topbar-brand",children:[o.jsx("div",{className:"admin-topbar-mark",children:"姜"}),o.jsxs("div",{children:[o.jsx("div",{className:"admin-topbar-title",children:"姜十三论坛"}),o.jsx("div",{className:"admin-topbar-sub",children:"管理后台"})]})]}),o.jsxs("div",{className:"admin-topbar-actions",children:[o.jsxs("button",{type:"button",className:"admin-link-btn",onClick:()=>t("/"),children:[o.jsx(Hs,{size:16}),"返回论坛"]}),o.jsx("span",{className:"admin-topbar-user",children:e.nickname})]})]}),o.jsxs("div",{className:"admin-body",children:[o.jsx("aside",{className:"admin-sidebar",children:Br.map(({to:r,label:c,icon:l})=>o.jsxs(_s,{to:r,className:({isActive:n})=>ee("admin-nav-item",n&&"active"),children:[o.jsx(l,{size:16}),c]},r))}),o.jsx("main",{className:"admin-main",children:o.jsx(Et,{})})]})]})}function la(){const{user:e,loading:s}=We(),t=Ge();return x.useEffect(()=>{s||(e?e.role!=="admin"&&(ms.warning("需要管理员权限"),t("/")):t("/login"))},[e,s,t]),{user:e,loading:s,ready:!s&&!!e&&e.role==="admin"}}const kt=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,jt=Ht,Vr=(e,s)=>t=>{var r;if((s==null?void 0:s.variants)==null)return jt(e,t==null?void 0:t.class,t==null?void 0:t.className);const{variants:c,defaultVariants:l}=s,n=Object.keys(c).map(i=>{const y=t==null?void 0:t[i],a=l==null?void 0:l[i];if(y===null)return null;const S=kt(y)||kt(a);return c[i][S]}),d=t&&Object.entries(t).reduce((i,y)=>{let[a,S]=y;return S===void 0||(i[a]=S),i},{}),m=s==null||(r=s.compoundVariants)===null||r===void 0?void 0:r.reduce((i,y)=>{let{class:a,className:S,...P}=y;return Object.entries(P).every(z=>{let[O,I]=z;return Array.isArray(I)?I.includes({...l,...d}[O]):{...l,...d}[O]===I})?[...i,a,S]:i},[]);return jt(e,n,m,t==null?void 0:t.class,t==null?void 0:t.className)},Fr=Vr("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),ps=x.forwardRef(({className:e,variant:s,size:t,asChild:r=!1,loading:c,children:l,disabled:n,...d},m)=>{const i=r?Js:"button";return o.jsxs(i,{className:ee(Fr({variant:s,size:t,className:e})),ref:m,disabled:n||c,...d,children:[c?o.jsx(Mt,{className:"animate-spin"}):null,l]})});ps.displayName="Button";class Gr extends x.Component{constructor(){super(...arguments);ct(this,"state",{error:null})}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("[Jiang13Forum]",t,r.componentStack)}render(){return this.state.error?o.jsxs("div",{style:{padding:24,textAlign:"center"},children:[o.jsx("h3",{children:"页面渲染出错"}),o.jsx("p",{style:{color:"var(--color-text-3)",fontSize:13},children:this.state.error.message}),o.jsx(ps,{size:"sm",onClick:()=>{this.setState({error:null}),window.location.reload()},children:"刷新页面"})]}):this.props.children}}function Wr(){const{theme:e}=Gt();return o.jsx(Lr,{theme:e,position:"top-center",richColors:!0,closeButton:!0,toastOptions:{classNames:{toast:"font-sans"}}})}const Hr=x.lazy(()=>te(()=>import("./HomePage-CrU3Xqcn.js"),__vite__mapDeps([0,1,2,3,4,5]))),Ur=x.lazy(()=>te(()=>import("./PostDetailPage-DEqZitTA.js"),__vite__mapDeps([6,1,3,4,5,7,8]))),Yr=x.lazy(()=>te(()=>import("./LoginPage-DGBpvRak.js"),__vite__mapDeps([9,1,10,5,11]))),Kr=x.lazy(()=>te(()=>import("./RegisterPage-BTZhIdwh.js"),__vite__mapDeps([12,1,10,5,11]))),St=x.lazy(()=>te(()=>import("./ComposePage-BzWi56ib.js"),__vite__mapDeps([13,1,8,7,5]))),qr=x.lazy(()=>te(()=>import("./BoardsManagePage-BKaQrjKx.js"),__vite__mapDeps([14,1,10,5,11,3,15]))),Xr=x.lazy(()=>te(()=>import("./ProfilePage-exbWgetG.js"),__vite__mapDeps([16,1,10,5,11,3]))),Jr=x.lazy(()=>te(()=>import("./FavoritesPage-DPpP9uxT.js"),__vite__mapDeps([17,1,4,5]))),Qr=x.lazy(()=>te(()=>import("./AdminDashboardPage-DPFKUnit.js"),__vite__mapDeps([18,1,3,5]))),Zr=x.lazy(()=>te(()=>import("./AdminPostsPage-B9vFs1FY.js"),__vite__mapDeps([19,1,11,3,15,5]))),ea=x.lazy(()=>te(()=>import("./AdminCommentsPage-XNfj0Ldl.js"),__vite__mapDeps([20,1,3,15,5]))),ta=x.lazy(()=>te(()=>import("./AdminUsersPage-CCGcKbV7.js"),__vite__mapDeps([21,1,3,5]))),sa=x.lazy(()=>te(()=>import("./AdminSettingsPage-Cm_HgtOQ.js"),__vite__mapDeps([22,1,5])));function oa(){return o.jsx(so,{children:o.jsx(to,{children:o.jsxs(Gr,{children:[o.jsx(Ps,{children:o.jsxs(zs,{children:[o.jsx(F,{path:"/login",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(Yr,{})})}),o.jsx(F,{path:"/register",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(Kr,{})})}),o.jsx(F,{path:"/boards",element:o.jsx(dt,{to:"/admin/boards",replace:!0})}),o.jsxs(F,{path:"/admin",element:o.jsx($r,{}),children:[o.jsx(F,{index:!0,element:o.jsx(dt,{to:"/admin/dashboard",replace:!0})}),o.jsx(F,{path:"dashboard",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(Qr,{})})}),o.jsx(F,{path:"boards",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(qr,{})})}),o.jsx(F,{path:"posts",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(Zr,{})})}),o.jsx(F,{path:"comments",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(ea,{})})}),o.jsx(F,{path:"users",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(ta,{})})}),o.jsx(F,{path:"settings",element:o.jsx(x.Suspense,{fallback:o.jsx(xe,{}),children:o.jsx(sa,{})})})]}),o.jsxs(F,{element:o.jsx(cr,{}),children:[o.jsx(F,{path:"/",element:o.jsx(Hr,{})}),o.jsx(F,{path:"/post/:id",element:o.jsx(Ur,{})}),o.jsx(F,{path:"/post/:id/edit",element:o.jsx(St,{})}),o.jsx(F,{path:"/compose",element:o.jsx(St,{})}),o.jsx(F,{path:"/profile",element:o.jsx(Xr,{})}),o.jsx(F,{path:"/favorites",element:o.jsx(Jr,{})})]})]})}),o.jsx(Wr,{})]})})})}$t(Bt());Rs.createRoot(document.getElementById("root")).render(o.jsx(u.StrictMode,{children:o.jsx(oa,{})}));export{ps as B,ur as S,ye as a,la as b,ee as c,Vr as d,Fr as e,ms as n,We as u};
diff --git a/embed_static/static/spa/assets/index-JNN-o0YU.css b/embed_static/static/spa/assets/index-JNN-o0YU.css
deleted file mode 100644
index 8fc5afc..0000000
--- a/embed_static/static/spa/assets/index-JNN-o0YU.css
+++ /dev/null
@@ -1 +0,0 @@
-*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--j13-font-family);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 210 20% 98%;--foreground: 222 47% 11%;--card: 0 0% 100%;--card-foreground: 222 47% 11%;--popover: 0 0% 100%;--popover-foreground: 222 47% 11%;--primary: 152 72% 36%;--primary-foreground: 0 0% 100%;--secondary: 210 20% 96%;--secondary-foreground: 222 47% 11%;--muted: 210 20% 96%;--muted-foreground: 215 16% 47%;--accent: 152 45% 95%;--accent-foreground: 152 72% 28%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 214 20% 91%;--input: 214 20% 91%;--ring: 152 72% 36%;--radius: .375rem;--color-text-1: hsl(var(--foreground));--color-text-2: hsl(215 16% 35%);--color-text-3: hsl(var(--muted-foreground));--color-text-4: hsl(215 12% 65%);--color-fill-3: hsl(210 20% 94%)}.dark{--background: 240 6% 10%;--foreground: 0 0% 95%;--card: 240 5% 13%;--card-foreground: 0 0% 95%;--popover: 240 5% 13%;--popover-foreground: 0 0% 95%;--primary: 152 58% 46%;--primary-foreground: 0 0% 100%;--secondary: 240 4% 16%;--secondary-foreground: 0 0% 95%;--muted: 240 4% 16%;--muted-foreground: 240 5% 65%;--accent: 152 30% 14%;--accent-foreground: 152 58% 55%;--destructive: 0 63% 45%;--destructive-foreground: 0 0% 95%;--border: 240 4% 18%;--input: 240 4% 18%;--ring: 152 58% 46%;--color-text-1: hsl(var(--foreground));--color-text-2: hsl(240 5% 75%);--color-text-3: hsl(var(--muted-foreground));--color-text-4: hsl(240 5% 50%);--color-fill-3: hsl(240 4% 20%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-4{right:1rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.z-\[110\]{z-index:110}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.block{display:block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-px{height:1px}.min-h-\[60px\]{min-height:60px}.w-2{width:.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[160px\]{width:160px}.w-\[60px\]{width:60px}.w-\[70px\]{width:70px}.w-\[80px\]{width:80px}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.max-w-\[200px\]{max-width:200px}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-input{border-color:hsl(var(--input))}.border-transparent{border-color:transparent}.bg-\[var\(--j13-green-bg\)\]{background-color:var(--j13-green-bg)}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.fill-current{fill:currentColor}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:var(--j13-font-family)}.text-\[0\.8rem\]{font-size:.8rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-\[var\(--j13-green\)\]{color:var(--j13-green)}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}:root{--j13-font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", "WenQuanYi Micro Hei", system-ui, -apple-system, "Segoe UI", sans-serif;--j13-green: #18a058;--j13-green-hover: #138f4c;--j13-green-bg: rgba(24, 160, 88, .08);--j13-green-soft: #edfbf3;--j13-border: #e8edf2;--j13-border-light: #f0f3f7;--j13-sidebar-w: 210px;--j13-aside-w: 280px;--j13-header-h: 56px;--j13-max-w: 1400px;--j13-bg-page: #f5f7fa;--j13-bg-workspace: #f8fafc;--j13-bg-surface: #ffffff;--j13-bg-block: #ffffff;--j13-bg-block-muted: #f1f4f8;--j13-bg-block-accent: #f0faf5;--j13-shadow-soft: 0 1px 2px rgba(15, 23, 42, .04);--j13-shadow-card: 0 2px 8px rgba(15, 23, 42, .05)}.dark{--j13-green: #23c36b;--j13-green-hover: #1fb35f;--j13-green-bg: rgba(35, 195, 107, .12);--j13-green-soft: rgba(35, 195, 107, .08);--j13-border: #2e2e32;--j13-border-light: #262629;--j13-bg-page: #141416;--j13-bg-workspace: #18181b;--j13-bg-surface: #1f1f23;--j13-bg-block: #232328;--j13-bg-block-muted: #1c1c20;--j13-bg-block-accent: rgba(35, 195, 107, .06);--j13-shadow-soft: 0 1px 2px rgba(0, 0, 0, .2);--j13-shadow-card: 0 2px 8px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html{scrollbar-gutter:stable;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;font-family:var(--j13-font-family);text-rendering:optimizeLegibility}html,body,#root{height:100%;margin:0}body{font-family:var(--j13-font-family);font-size:14px;line-height:1.5;color:var(--color-text-1);background:var(--j13-bg-page);overflow:hidden}a{color:var(--j13-green);text-decoration:none}a:hover{text-decoration:underline}.app-shell{height:100%;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--j13-bg-page)}.app-frame{flex:1;min-height:0;height:100%;max-width:var(--j13-max-w);width:100%;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;border-left:1px solid var(--j13-border);border-right:1px solid var(--j13-border);background:var(--j13-bg-surface)}.app-header{height:var(--j13-header-h);flex-shrink:0;z-index:100;background:var(--j13-bg-surface);border-bottom:1px solid var(--j13-border)}.header-inner{height:100%;width:100%;padding:0 20px;display:flex;align-items:center;gap:20px}.header-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;border:none;background:none;padding:4px 0;cursor:pointer;color:inherit;font:inherit}.header-brand:hover .header-logo-text{color:var(--j13-green)}.header-logo-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--j13-green) 0%,#34c471 100%);color:#fff;font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #1a7f4b47}.header-logo-text{font-size:15px;font-weight:600;letter-spacing:.02em;transition:color .15s}.header-search-wrap{flex:1;min-width:0;max-width:420px;display:flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;background:var(--j13-bg-block-muted);border:1px solid var(--j13-border-light);transition:border-color .2s,background .2s,box-shadow .2s}.header-search-wrap:focus-within{background:var(--j13-bg-surface);border-color:color-mix(in srgb,var(--j13-green) 30%,transparent);box-shadow:0 0 0 3px var(--j13-green-bg)}.header-search-icon{flex-shrink:0;font-size:15px;color:var(--color-text-3)}.header-search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:14px;color:var(--color-text-1);font-family:inherit}.header-search-input::-moz-placeholder{color:var(--color-text-4)}.header-search-input::placeholder{color:var(--color-text-4)}.header-search-input::-webkit-search-cancel-button{display:none}.header-search-clear{flex-shrink:0;width:20px;height:20px;border:none;border-radius:50%;background:var(--color-fill-3);color:var(--color-text-3);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s}.header-search-clear:hover{background:var(--color-fill-4);color:var(--color-text-1)}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.header-compose-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 16px;border:none;border-radius:999px;background:var(--j13-green);color:#fff;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 6px #1a7f4b38}.header-compose-btn:hover{background:var(--j13-green-hover);box-shadow:0 3px 10px #1a7f4b4d}.header-compose-btn:active{transform:scale(.97)}.header-action-group{display:flex;align-items:center;gap:4px;padding:3px;border-radius:999px;background:var(--j13-bg-block-muted);border:1px solid var(--j13-border-light)}.header-icon-btn{width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--color-text-2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.header-icon-btn:hover{background:var(--color-fill-3);color:var(--color-text-1)}.header-user-btn{width:32px;height:32px;border:none;border-radius:50%;padding:0;cursor:pointer;overflow:hidden;background:var(--j13-green);display:flex;align-items:center;justify-content:center;transition:box-shadow .15s,transform .1s}.header-user-btn:hover{box-shadow:0 0 0 2px var(--j13-green-bg),0 0 0 3px var(--j13-green)}.header-user-avatar{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.header-user-initial{color:#fff;font-size:14px;font-weight:600}.header-login-btn{height:32px;padding:0 14px;border:none;border-radius:999px;background:transparent;color:var(--j13-green);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s}.header-login-btn:hover{background:var(--j13-green-bg)}.header-auth-slot{display:inline-block;width:32px;height:32px;border-radius:50%;flex-shrink:0}.header-auth-slot--loading{background:var(--color-fill-3)}.app-body{flex:1;display:flex;min-height:0;width:100%;overflow:hidden;background:var(--j13-bg-surface)}.sidebar{width:var(--j13-sidebar-w);flex-shrink:0;border-right:1px solid var(--j13-border-light);background:var(--j13-bg-surface);overflow-y:auto;padding:12px 0}.sidebar-section{padding:4px 12px 8px;font-size:11px;font-weight:600;color:var(--color-text-3)}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar-nav-item{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:0 12px;height:36px;border:none;border-radius:6px;background:transparent;color:var(--color-text-1);font-size:14px;cursor:pointer;text-align:left;transition:background .15s,color .15s}.sidebar-nav-item:hover{background:var(--j13-bg-block-muted)}.sidebar-nav-item.active{background:var(--j13-green-bg);color:var(--j13-green);font-weight:600}.sidebar-nav-item svg{width:16px;height:16px;flex-shrink:0}.sidebar-nav-item__meta{margin-left:auto;color:var(--color-text-4);font-size:12px}.sidebar-actions{padding:12px;border-top:1px solid var(--j13-border);margin-top:8px}.main-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.content-workspace{flex:1;display:flex;min-width:0;min-height:0;overflow:hidden;background:var(--j13-bg-surface)}.aside-panel{width:var(--j13-aside-w);flex-shrink:0;border-left:1px solid var(--j13-border-light);overflow-y:auto;padding:0;display:flex;flex-direction:column;background:var(--j13-bg-surface)}@media (max-width: 1100px){.aside-panel{display:none}}@media (max-width: 768px){.app-frame{border-left:none;border-right:none}.sidebar{display:none}.header-inner{padding:0 12px;gap:10px}.header-search-wrap{max-width:none}.header-compose-btn{width:34px;padding:0;justify-content:center}.feed-banner-row{flex-direction:column;gap:10px}.board-grid{flex-wrap:nowrap;overflow-x:auto;padding:8px 12px;scrollbar-width:none}.board-grid::-webkit-scrollbar{display:none}}.page-wrap{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none}.page-wrap::-webkit-scrollbar{display:none}.virtual-list-wrap{flex:1;overflow:auto;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.virtual-list-wrap::-webkit-scrollbar{display:none}.page-inner{padding:20px 24px;max-width:720px}.page-inner-wide{padding:20px 24px}.page-title{font-size:20px;font-weight:600;margin:0 0 4px}.page-desc{font-size:13px;color:var(--color-text-3);margin:0 0 20px}.content-surface{background:var(--j13-bg-block);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-soft);overflow:hidden}.section-card{background:var(--j13-bg-block);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-soft);padding:20px;margin-bottom:16px}.section-card-title{font-size:15px;font-weight:600;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--j13-border-light)}.feed-banner{padding:14px 20px 12px;border-bottom:1px solid var(--j13-border-light)}.feed-banner-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.feed-banner-title{flex:1;min-width:0}.feed-banner h2{margin:0 0 4px;font-size:16px;font-weight:600}.feed-banner p{margin:0;font-size:12px;color:var(--color-text-3);line-height:1.45}.feed-stats{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:10px;min-height:20px;font-size:13px;color:var(--color-text-2)}.feed-stats strong{color:var(--j13-green);font-weight:600}.feed-action-slot{display:inline-block;width:88px;height:28px;border-radius:4px;background:var(--color-fill-3)}.feed-actions{min-height:28px}.mobile-board-bar{display:none;padding:8px 12px;gap:8px;overflow-x:auto;border-bottom:1px solid var(--j13-border);background:var(--j13-bg-surface)}@media (max-width: 768px){.mobile-board-bar{display:flex}}.board-chip{flex-shrink:0;padding:4px 12px;border-radius:16px;font-size:13px;border:1px solid var(--j13-border-light);background:var(--j13-bg-block);cursor:pointer}.board-chip.active{background:var(--j13-green);border-color:var(--j13-green);color:#fff}.board-grid{display:flex;flex-wrap:wrap;gap:8px;padding:10px 20px;border-bottom:1px solid var(--j13-border-light)}.board-grid-empty{padding:20px;border-bottom:1px solid var(--j13-border-light)}.board-tab{display:flex;align-items:center;gap:6px;height:36px;max-width:220px;padding:0 14px;border:1px solid var(--j13-border-light);border-radius:8px;background:var(--j13-bg-block);cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit;color:inherit;flex-shrink:0}.board-tab:hover{border-color:var(--j13-green-light, #7cb87c);background:var(--j13-bg-block-muted)}.board-tab.active{border-color:var(--j13-green);background:color-mix(in srgb,var(--j13-green) 10%,var(--j13-bg-block))}.board-tab-icon{font-size:14px;color:var(--j13-green);line-height:1;flex-shrink:0}.board-tab-name{font-size:13px;font-weight:500;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.board-tab-count{flex-shrink:0;min-width:18px;padding:0 6px;height:20px;line-height:20px;font-size:11px;text-align:center;border-radius:10px;background:var(--color-fill-2);color:var(--color-text-3)}.board-tab.active .board-tab-count{background:color-mix(in srgb,var(--j13-green) 20%,transparent);color:var(--j13-green)}.board-tab--skeleton{width:140px;border-color:transparent;background:linear-gradient(90deg,var(--color-fill-2) 25%,var(--color-fill-3) 50%,var(--color-fill-2) 75%);background-size:200% 100%;animation:board-skeleton-shimmer 1.2s ease-in-out infinite;pointer-events:none}.board-grid--skeleton{pointer-events:none}@keyframes board-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.post-list-bar{display:flex;justify-content:space-between;padding:10px 20px;font-size:13px;color:var(--color-text-3);border-bottom:1px solid var(--j13-border-light)}.post-row{display:flex;align-items:flex-start;gap:12px;padding:12px 20px;border-bottom:1px solid var(--j13-border-light);cursor:pointer;transition:background .15s}.post-row:hover{background:var(--j13-bg-block-muted)}.post-avatar{width:36px;height:36px;border-radius:50%;background:var(--j13-green);color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.post-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.post-body{flex:1;min-width:0}.post-title{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px}.post-meta{font-size:12px;color:var(--color-text-3);display:flex;flex-wrap:wrap;gap:8px}.post-stats{display:flex;gap:12px;font-size:12px;color:var(--color-text-3);flex-shrink:0;padding-top:4px}.empty-state{text-align:center;padding:60px 24px;color:var(--color-text-3)}.empty-feed{text-align:center;padding:48px 24px;color:var(--color-text-3)}.empty-feed-icon{font-size:36px;margin-bottom:8px}.post-detail-loading{display:flex;align-items:center;justify-content:center;padding:60px;flex:1}.post-detail-page{display:flex;flex-direction:column;min-height:0;gap:16px;padding:16px 20px 24px;background:var(--j13-bg-workspace)}.post-detail-header{padding:16px 20px 20px;background:var(--j13-bg-surface);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-card);flex-shrink:0}.post-detail-nav{display:flex;align-items:center;gap:8px;margin-bottom:8px}.post-detail-board-tag{margin:0!important}.post-detail-head{margin-bottom:12px}.post-detail-title{font-size:20px;font-weight:600;margin:0 0 12px;line-height:1.45;word-break:break-word}.post-detail-author-row{display:flex;align-items:center;gap:10px}.post-avatar-lg{width:40px;height:40px;font-size:16px}.post-detail-author-info{display:flex;flex-direction:column;gap:2px}.post-detail-author-name{font-size:14px;font-weight:600;color:var(--color-text-1)}.post-detail-meta-line{font-size:12px;color:var(--color-text-3)}.post-detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.post-detail-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--j13-border-light)}.post-detail-content{font-size:15px;line-height:1.75;word-break:break-word;color:var(--color-text-1)}.post-detail-content h1,.post-detail-content h2,.post-detail-content h3,.post-detail-content h4,.post-detail-content h5,.post-detail-content h6{font-weight:700;line-height:1.35;letter-spacing:-.02em;color:var(--color-text-1);margin:1.4em 0 .55em}.post-detail-content>:first-child,.post-detail-content h1:first-child,.post-detail-content h2:first-child,.post-detail-content h3:first-child,.post-detail-content h4:first-child,.post-detail-content h5:first-child,.post-detail-content h6:first-child{margin-top:0}.post-detail-content h1{font-size:1.85em}.post-detail-content h2{font-size:1.55em}.post-detail-content h3{font-size:1.3em}.post-detail-content h4{font-size:1.12em}.post-detail-content h5{font-size:1em}.post-detail-content h6{font-size:.92em;color:var(--color-text-2);font-weight:600}.post-detail-content ul,.post-detail-content ol{margin:0 0 12px;padding-left:1.6em}.post-detail-content li{margin-bottom:4px}.post-detail-content li>ul,.post-detail-content li>ol{margin-top:4px;margin-bottom:0}.post-detail-content hr{margin:24px 0;border:none;border-top:1px solid var(--j13-border)}.post-detail-content members-only,.post-detail-content .post-members-only{display:block;margin:20px 0;border-radius:12px;overflow:hidden}.post-detail-content .post-members-only--visible{border:1px solid rgba(24,160,88,.35);background:linear-gradient(135deg,#18a0580f,#18a05805);box-shadow:inset 0 1px #fff9}.post-detail-content .post-members-only__badge{display:inline-flex;align-items:center;gap:6px;margin:12px 16px 0;padding:4px 10px;border-radius:20px;background:#18a0581f;color:var(--j13-green);font-size:12px;font-weight:600;letter-spacing:.02em}.post-detail-content .post-members-only__badge-icon{display:inline-flex;align-items:center;justify-content:center}.post-detail-content .post-members-only__body{padding:12px 18px 18px}.post-detail-content .post-members-only__body--empty{color:var(--color-text-4);font-style:italic}.post-detail-content .post-members-only--locked{position:relative;border:1px solid rgba(24,160,88,.22);background:var(--j13-bg-surface)}.post-detail-content .post-members-only__locked-wrap{position:relative;min-height:160px}.post-detail-content .post-members-only__badge--locked{position:relative;z-index:2;background:#18a0581a}.post-detail-content .post-members-only__preview{position:relative;z-index:0;padding:8px 20px 20px;filter:blur(5px);opacity:.45;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.post-detail-content .post-members-only__preview-line{height:11px;margin-bottom:12px;border-radius:6px;background:linear-gradient(90deg,var(--j13-bg-block-muted) 0%,var(--color-fill-3) 100%)}.post-detail-content .post-members-only__preview-line--medium{width:88%}.post-detail-content .post-members-only__preview-line--short{width:62%;margin-bottom:0}.post-detail-content .post-members-only__gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 20px 20px;gap:6px;background:linear-gradient(180deg,#ffffff8c,#ffffffe0 38%,#ffffffeb);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.post-detail-content .post-members-only__gate-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--j13-bg-surface);color:var(--color-text-3);border:1px solid var(--j13-border);margin-bottom:4px;box-shadow:var(--j13-shadow-soft)}.post-detail-content .post-members-only__gate-title{margin:0;font-size:15px;font-weight:600;color:var(--color-text-1)}.post-detail-content .post-members-only__gate-desc{margin:0 0 8px;font-size:13px;color:var(--color-text-3);line-height:1.5;max-width:280px}.post-detail-content .post-members-only__gate-btn{padding:8px 20px;border:none;border-radius:8px;background:var(--j13-green);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.post-detail-content .post-members-only__gate-btn:hover{background:var(--j13-green-hover);transform:translateY(-1px)}.post-detail-content .post-members-only__gate-alt{margin-top:4px;font-size:12px;color:var(--color-text-3)}.post-detail-content .post-members-only__gate-link{padding:0;border:none;background:none;color:var(--j13-green);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.post-detail-content .post-members-only__gate-link:hover{color:var(--j13-green-hover)}.dark .post-detail-content .post-members-only--visible{border-color:#23c36b59;background:linear-gradient(135deg,#23c36b1a,#23c36b08);box-shadow:none}.dark .post-detail-content .post-members-only--locked{border-color:#23c36b40;background:var(--j13-bg-surface)}.dark .post-detail-content .post-members-only__gate{background:linear-gradient(180deg,#18181b80,#18181bd1 38%,#18181be6)}.dark .post-detail-content .post-members-only__preview-line{background:linear-gradient(90deg,var(--j13-bg-block-muted) 0%,rgba(255,255,255,.08) 100%)}.article-editor-tools .article-tool-btn--members{margin-left:6px;padding-left:8px;border-left:1px solid var(--j13-border-light);color:var(--j13-green)}.article-editor-tools .article-tool-btn--members:hover{background:var(--j13-green-bg);color:var(--j13-green-hover)}.post-detail-content strong,.post-detail-content b{font-weight:700;color:var(--color-text-1)}.post-detail-content em,.post-detail-content i{font-style:italic}.post-detail-content img{max-width:100%;border-radius:6px}.post-detail-content p{margin:0 0 12px}.post-detail-content p:last-child{margin-bottom:0}.post-detail-content a{color:var(--j13-green)}.post-detail-content blockquote{margin:12px 0;padding:8px 14px;border-left:3px solid var(--j13-green);background:var(--j13-bg-block-muted);color:var(--color-text-3);border-radius:0 6px 6px 0}.post-detail-content pre,.post-detail-content code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px}.post-detail-content pre{padding:12px;background:var(--j13-bg-block-muted);border-radius:6px;overflow-x:auto}.post-detail-content code{padding:2px 6px;background:var(--j13-bg-block-muted);border-radius:4px}.comment-section{display:flex;flex-direction:column;background:var(--j13-bg-surface);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-card);flex-shrink:0;overflow:hidden}.comment-section-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px 12px;font-size:15px;font-weight:600;flex-shrink:0;border-bottom:1px solid var(--j13-border-light)}.comment-section-bar:after{content:"";position:absolute;bottom:-1px;left:20px;width:36px;height:2px;background:var(--j13-green);border-radius:1px;transition:width .35s cubic-bezier(.4,0,.2,1)}.comment-section:hover .comment-section-bar:after{width:52px}.comment-section-title{color:var(--color-text-1)}.comment-section-count{font-size:13px;font-weight:400;color:var(--color-text-3)}.floor-jump-tools{display:flex;align-items:center;gap:4px}.comment-list-area{display:flex;flex-direction:column}.comment-empty{text-align:center;padding:48px 24px;color:var(--color-text-3)}.comment-empty-icon{font-size:32px;margin-bottom:8px;opacity:.6}.comment-empty p{margin:0;font-size:13px}.reply-bar{padding:12px 20px 16px;border-top:1px solid var(--j13-border-light);background:var(--j13-bg-block-muted);flex-shrink:0}.comment-box-wrap{padding:16px 20px;border-bottom:1px solid var(--j13-border-light);background:var(--j13-bg-surface);flex-shrink:0}.comment-box-wrap.inline{padding:12px 0 4px;border-bottom:none;background:transparent}.comment-box-wrap.inline .comment-box-avatar,.comment-box-wrap.inline .comment-box-avatar-img,.comment-box-wrap.inline .comment-box-avatar-placeholder{width:32px;height:32px;font-size:13px}.waline-comment-reply-btn.cancel{color:#e74c3c}.waline-comment-reply-btn.cancel:hover{color:#c0392b}.comment-box{display:flex;gap:12px;align-items:flex-start}.comment-box-avatar{flex-shrink:0}.comment-box-avatar-img,.comment-box-avatar-placeholder{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.comment-box-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--j13-green);color:#fff;font-size:16px;font-weight:600}.comment-box-avatar-placeholder.guest{background:var(--color-fill-3);color:var(--color-text-3)}.comment-box-main{flex:1;min-width:0}.comment-box-reply-hint{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--j13-green);margin-bottom:8px}.comment-box-reply-cancel{border:none;background:none;color:var(--color-text-3);cursor:pointer;font-size:12px;padding:0}.comment-box-reply-cancel:hover{color:var(--color-text-1)}.comment-box-input-wrap{position:relative;border:1px solid var(--j13-border-light);border-radius:10px;background:var(--j13-bg-block);transition:border-color .2s,background .2s}.comment-box-input-wrap:focus-within{border-color:rgb(var(--primary-6))}.comment-box-input-wrap.private-mode{background:var(--j13-bg-block-muted);border-color:var(--j13-border)}.comment-box-textarea{display:block;width:100%;min-height:72px;max-height:200px;padding:10px 48px 10px 12px;border:none;outline:none;resize:vertical;font-size:14px;line-height:1.6;font-family:inherit;color:var(--color-text-1);background:transparent;box-sizing:border-box}.comment-box-textarea::-moz-placeholder{color:var(--color-text-4)}.comment-box-textarea::placeholder{color:var(--color-text-4)}.comment-box-send{position:absolute;right:8px;bottom:8px;width:32px;height:32px;border:none;border-radius:50%;background:#27c;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .15s,opacity .15s}.comment-box-send:hover:not(:disabled){background:#1a9bd8}.comment-box-send:disabled{opacity:.45;cursor:not-allowed}.comment-box-guest-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 10px;margin-top:8px}.comment-box-guest-field{display:flex;flex-direction:column;gap:4px;min-width:0}.comment-box-guest-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-3)}.comment-box-guest-required,.comment-box-guest-optional{font-style:normal;font-size:11px;line-height:1;padding:2px 6px;border-radius:4px}.comment-box-guest-required{color:rgb(var(--danger-6));background:color-mix(in srgb,rgb(var(--danger-6)) 12%,transparent)}.comment-box-guest-optional{color:var(--color-text-4);background:var(--color-fill-2)}.comment-box-guest-hint{grid-column:1 / -1;margin:0;font-size:12px;color:var(--color-text-4);line-height:1.5}.comment-box-guest-input{height:32px;padding:0 10px;border:1px solid var(--j13-border);border-radius:6px;font-size:13px;color:var(--color-text-1);background:var(--color-bg-1);outline:none;transition:border-color .2s}.comment-box-guest-input:focus{border-color:rgb(var(--primary-6))}.comment-box-guest-input::-moz-placeholder{color:var(--color-text-4)}.comment-box-guest-input::placeholder{color:var(--color-text-4)}.comment-box-toolbar{display:flex;align-items:center;gap:16px;margin-top:8px}.comment-box-owo{border:none;background:none;padding:2px 6px;font-size:13px;font-weight:600;color:var(--color-text-2);cursor:pointer;border-radius:4px;transition:background .15s,color .15s}.comment-box-owo:hover,.comment-box-owo.active{background:#27ccff1f;color:#27c}.comment-box-private{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-3);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.emoji-picker{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:8px;padding:10px;border:1px solid #dcdfe6;border-radius:8px;background:var(--color-bg-1);max-height:200px;overflow-y:auto;box-shadow:0 2px 12px #00000014}.emoji-picker-item{border:none;background:none;font-size:20px;line-height:1;padding:4px;cursor:pointer;border-radius:4px;transition:background .1s}.emoji-picker-item:hover{background:var(--color-fill-2)}.waline-comment{display:flex;gap:12px;padding:16px 20px;border-bottom:1px solid var(--j13-border-light)}.waline-comment.nested{padding:12px 0 0;border-bottom:none}.waline-comment.highlight{animation:floor-highlight 2s ease-out}@keyframes floor-highlight{0%,30%{background:var(--j13-green-bg)}to{background:transparent}}.waline-replies{margin-top:8px}.waline-comment.nested .waline-comment-avatar{width:32px;height:32px;font-size:13px}.waline-comment-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--j13-green);color:#fff;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center}.waline-comment-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.waline-comment-avatar.guest{background:var(--color-fill-3);color:var(--color-text-3)}.waline-comment-main{flex:1;min-width:0}.waline-comment-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.waline-comment-author{font-size:14px;font-weight:600;color:var(--color-text-1);text-decoration:none}a.waline-comment-author:hover{color:var(--j13-green)}.waline-comment-bubble{padding:10px 14px;background:var(--j13-bg-block-muted);border-radius:10px;font-size:14px;line-height:1.65;color:var(--color-text-1);word-break:break-word}.waline-reply-at{display:block;color:#27c;font-weight:600;margin-bottom:4px;line-height:1.5}.waline-comment-private-mask{padding:14px 16px;text-align:center;font-size:13px;color:#999;line-height:1.5;border-radius:8px;background:repeating-linear-gradient(-45deg,#f6f6f6,#f6f6f6 8px,#ececec 8px,#ececec 16px)}.waline-comment-bubble .floor-body{font-size:inherit;line-height:inherit;word-break:break-word}.floor-body{font-size:14px;line-height:1.65;word-break:break-word}.waline-comment-bubble .quote-block{margin:6px 0;background:var(--j13-bg-block)}.waline-comment-meta{display:flex;align-items:center;gap:16px;margin-top:8px;font-size:12px;color:var(--color-text-3)}.waline-comment-date{display:flex;align-items:center;gap:4px}.waline-comment-reply-btn{display:flex;align-items:center;gap:4px;border:none;background:none;padding:0;font-size:12px;color:var(--color-text-3);cursor:pointer;transition:color .15s}.waline-comment-reply-btn:hover{color:var(--j13-green)}@media (max-width: 768px){.comment-box-wrap{padding:12px 14px}.comment-box-guest-fields{grid-template-columns:1fr}.emoji-picker{grid-template-columns:repeat(8,1fr)}.waline-comment{padding:12px 14px}}.mention{color:var(--j13-green);font-weight:600}.quote-block{border-left:3px solid var(--j13-green);padding:8px 12px;margin:6px 0 8px;background:var(--j13-bg-block-muted);font-size:13px;color:var(--color-text-3);border-radius:0 8px 8px 0;line-height:1.5;white-space:pre-wrap;word-break:break-word}.quote-block.clickable{cursor:pointer;transition:background .15s,border-color .15s}.quote-block.clickable:hover{background:var(--j13-green-bg);border-left-color:var(--j13-green-hover)}@media (max-width: 768px){.post-detail-page{padding:12px 14px 20px;gap:12px}.post-detail-header{padding:12px 14px 16px}.post-detail-title{font-size:17px}.post-detail-actions{margin-top:20px;padding-top:16px;gap:10px}.comment-section-bar{padding:12px 14px 10px}.comment-section-bar:after{left:14px;width:32px}.comment-section:hover .comment-section-bar:after{width:46px}}.widget-card{background:transparent;border:none;border-radius:0;box-shadow:none;margin-bottom:0;overflow:hidden;border-bottom:1px solid var(--j13-border-light);flex-shrink:0}.widget-card-head{padding:12px 16px 8px;font-size:13px;font-weight:600;border-bottom:none;background:transparent;color:var(--color-text-2)}.widget-card-body{padding:0 16px 14px}.widget-card--about{flex:1;display:flex;flex-direction:column;border-bottom:none;min-height:72px}.widget-card--about .widget-card-body{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px 16px}.widget-about-text{margin:0;font-size:12px;color:var(--color-text-3);line-height:1.65}.widget-about-text strong{display:block;margin-bottom:4px;color:var(--j13-green);font-size:13px}.widget-item{padding:6px 0;font-size:13px;cursor:pointer;border-bottom:1px solid var(--j13-border-light);display:flex;align-items:center;gap:6px}.widget-item:last-child{border-bottom:none}.widget-item:hover{color:var(--j13-green)}.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.profile-avatar-lg{width:72px;height:72px;border-radius:50%;background:var(--j13-green);color:#fff;font-size:28px;font-weight:600;display:flex;align-items:center;justify-content:center;overflow:hidden}.profile-avatar-lg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.admin-entry-card{border-color:color-mix(in srgb,var(--j13-green) 25%,var(--j13-border));background:var(--j13-bg-block-accent)}.auth-page{height:100%;min-height:100dvh;overflow-y:auto;display:flex;align-items:center;justify-content:center;background:var(--j13-bg-page);padding:24px}.auth-box{width:100%;max-width:400px;background:var(--j13-bg-surface);border:1px solid var(--j13-border);border-radius:12px;box-shadow:var(--j13-shadow-card);padding:32px}.auth-box .logo-mark{width:48px;height:48px;border-radius:12px;background:var(--j13-green);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.auth-box h1{text-align:center;font-size:20px;margin:0 0 4px}.auth-box .subtitle{text-align:center;font-size:13px;color:var(--color-text-3);margin-bottom:24px}.app-body--compose,.content-workspace--compose{background:var(--j13-bg-workspace)}.main-content--compose{overflow-y:auto;overflow-x:hidden}.compose-page{flex:1;display:flex;flex-direction:column;min-height:min(100%,100vh - var(--j13-header-h));overflow:visible;background:radial-gradient(ellipse 80% 50% at 50% -10%,var(--j13-green-bg),transparent),var(--j13-bg-workspace)}.compose-page--empty{align-items:center;justify-content:center}.compose-empty-card{text-align:center;padding:48px 40px;background:var(--j13-bg-surface);border:1px solid var(--j13-border);border-radius:16px;box-shadow:var(--j13-shadow-card);max-width:400px}.compose-empty-icon{width:56px;height:56px;margin:0 auto 20px;border-radius:14px;background:var(--j13-green-bg);color:var(--j13-green);font-size:24px;display:flex;align-items:center;justify-content:center}.compose-empty-card h2{margin:0 0 8px;font-size:18px;font-weight:600}.compose-empty-card p{margin:0 0 24px;font-size:14px;color:var(--color-text-3);line-height:1.5}.compose-primary-btn,.compose-ghost-btn{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .15s,transform .1s}.compose-primary-btn{background:var(--j13-green);color:#fff}.compose-primary-btn:hover{background:var(--j13-green-hover)}.compose-ghost-btn{background:var(--j13-bg-block-muted);color:var(--color-text-2)}.compose-canvas{flex:1;display:flex;flex-direction:column;min-height:min(100%,100vh - var(--j13-header-h));max-width:1200px;width:100%;margin:0 auto;padding:0 32px 32px}.compose-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0 12px;flex-shrink:0}.compose-back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--j13-border);border-radius:8px;background:var(--j13-bg-surface);color:var(--color-text-2);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s,box-shadow .15s;box-shadow:var(--j13-shadow-soft)}.compose-back:hover{border-color:var(--j13-green);color:var(--j13-green)}.compose-publish-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--j13-green),var(--j13-green-hover));color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #18a0584d;transition:transform .1s,box-shadow .15s,opacity .15s}.compose-publish-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #18a05859}.compose-publish-btn:disabled{opacity:.65;cursor:not-allowed}.compose-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;flex-shrink:0;flex-wrap:wrap}.compose-board-pills{display:flex;flex-wrap:wrap;gap:8px}.compose-board-pill{padding:6px 14px;border:1px solid var(--j13-border);border-radius:20px;background:var(--j13-bg-surface);color:var(--color-text-2);font-size:13px;cursor:pointer;transition:all .15s}.compose-board-pill:hover{border-color:var(--j13-green);color:var(--j13-green)}.compose-board-pill.active{background:var(--j13-green);border-color:var(--j13-green);color:#fff;font-weight:500}.compose-tags-field{display:flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--j13-border);border-radius:20px;background:var(--j13-bg-surface);min-width:220px;transition:border-color .15s}.compose-tags-field:focus-within{border-color:var(--j13-green)}.compose-tags-icon{color:var(--color-text-4);font-size:14px;flex-shrink:0}.compose-tags-field input{flex:1;border:none;background:transparent;outline:none;font-size:13px;color:var(--color-text-1);min-width:0}.compose-tags-field input::-moz-placeholder{color:var(--color-text-4)}.compose-tags-field input::placeholder{color:var(--color-text-4)}.compose-writing{flex:1;display:flex;flex-direction:column;background:var(--j13-bg-surface);border:1px solid var(--j13-border);border-radius:16px;box-shadow:var(--j13-shadow-card);padding:28px 32px 0;overflow:visible}.compose-title{width:100%;padding:0;border:none;background:transparent;font-size:32px;font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--color-text-1);outline:none}.compose-title::-moz-placeholder{color:var(--color-text-4)}.compose-title::placeholder{color:var(--color-text-4)}.compose-subtitle{margin-top:8px;font-size:13px;color:var(--color-text-3)}.compose-subtitle strong{color:var(--j13-green);font-weight:500}.article-editor{flex:1;display:flex;flex-direction:column;margin-top:24px;border-top:1px solid var(--j13-border-light)}.article-editor-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -32px;padding:10px 32px;flex-shrink:0;flex-wrap:wrap;background:var(--j13-bg-surface);border-bottom:1px solid var(--j13-border-light);box-shadow:0 4px 12px #0f172a0a}.article-editor-tools{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.article-tool-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--color-text-2);font-size:13px;cursor:pointer;transition:background .12s,color .12s}.article-tool-btn:hover{background:var(--j13-bg-block-muted);color:var(--j13-green)}.article-tool-btn strong{font-size:12px;font-weight:700}.article-editor-modes{display:flex;gap:4px;padding:3px;background:var(--j13-bg-block-muted);border-radius:8px}.article-mode-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:none;border-radius:6px;background:transparent;color:var(--color-text-3);font-size:12px;cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}.article-mode-btn.active{background:var(--j13-bg-surface);color:var(--j13-green);font-weight:500;box-shadow:var(--j13-shadow-soft)}.article-editor-panes{display:flex;align-items:stretch;gap:0;overflow:visible}.article-editor-panes--edit .article-pane--edit,.article-editor-panes--preview .article-pane--preview{flex:1}.article-editor-panes--split .article-pane--edit,.article-editor-panes--split .article-pane--preview{flex:1;min-width:0}.article-editor-panes--split .article-pane--edit{border-right:1px solid var(--j13-border-light)}.article-pane{display:flex;flex-direction:column;overflow:visible}.article-pane-label{padding:6px 0 8px;font-size:11px;font-weight:600;color:var(--color-text-4);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.article-textarea{width:100%;min-height:280px;padding:12px 0;border:none;background:transparent;resize:none;outline:none;font-family:ui-monospace,Cascadia Code,SF Mono,Consolas,monospace;font-size:14px;line-height:1.8;color:var(--color-text-1);overflow:hidden;box-sizing:border-box}.article-textarea::-moz-placeholder{color:var(--color-text-4);font-family:var(--j13-font-family)}.article-textarea::placeholder{color:var(--color-text-4);font-family:var(--j13-font-family)}.article-preview{padding:12px 0 12px 16px;overflow:visible}.article-editor-panes--edit .article-preview,.article-editor-panes--preview .article-preview{padding-left:0}.article-preview--empty .article-preview-placeholder{color:var(--color-text-4);font-style:italic}.article-editor-status{display:flex;align-items:center;justify-content:space-between;padding:10px 0 16px;border-top:1px solid var(--j13-border-light);font-size:12px;color:var(--color-text-4);flex-shrink:0}@media (max-width: 900px){.article-editor-panes--split{flex-direction:column}.article-editor-panes--split .article-pane--edit{border-right:none;border-bottom:1px solid var(--j13-border-light)}.article-preview{padding-left:0}}@media (max-width: 768px){.compose-canvas{padding:0 16px}.compose-writing{padding:20px 16px 0;border-radius:12px}.article-editor-bar{margin:0 -16px;padding:10px 16px}.compose-title{font-size:24px}.compose-meta{flex-direction:column;align-items:stretch}.compose-tags-field{min-width:0}.compose-header{padding-top:12px}.compose-publish-btn span{display:none}}.page-loader{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;min-height:240px;color:var(--j13-green);font-size:14px}.page-loader__dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:page-loader-pulse .9s ease-in-out infinite}@keyframes page-loader-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-\[var\(--j13-green\)\][data-state=checked]{background-color:var(--j13-green)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.dark\:bg-orange-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(67 20 7 / var(--tw-bg-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}
diff --git a/embed_static/static/spa/assets/index-LgW2jk25.css b/embed_static/static/spa/assets/index-LgW2jk25.css
new file mode 100644
index 0000000..d2561e8
--- /dev/null
+++ b/embed_static/static/spa/assets/index-LgW2jk25.css
@@ -0,0 +1 @@
+*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--j13-font-family);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 210 20% 98%;--foreground: 222 47% 11%;--card: 0 0% 100%;--card-foreground: 222 47% 11%;--popover: 0 0% 100%;--popover-foreground: 222 47% 11%;--primary: 152 72% 36%;--primary-foreground: 0 0% 100%;--secondary: 210 20% 96%;--secondary-foreground: 222 47% 11%;--muted: 210 20% 96%;--muted-foreground: 215 16% 47%;--accent: 152 45% 95%;--accent-foreground: 152 72% 28%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 214 20% 91%;--input: 214 20% 91%;--ring: 152 72% 36%;--radius: .375rem;--color-text-1: hsl(var(--foreground));--color-text-2: hsl(215 16% 35%);--color-text-3: hsl(var(--muted-foreground));--color-text-4: hsl(215 12% 65%);--color-fill-3: hsl(210 20% 94%)}.dark{--background: 240 6% 10%;--foreground: 0 0% 95%;--card: 240 5% 13%;--card-foreground: 0 0% 95%;--popover: 240 5% 13%;--popover-foreground: 0 0% 95%;--primary: 152 58% 46%;--primary-foreground: 0 0% 100%;--secondary: 240 4% 16%;--secondary-foreground: 0 0% 95%;--muted: 240 4% 16%;--muted-foreground: 240 5% 65%;--accent: 152 30% 14%;--accent-foreground: 152 58% 55%;--destructive: 0 63% 45%;--destructive-foreground: 0 0% 95%;--border: 240 4% 18%;--input: 240 4% 18%;--ring: 152 58% 46%;--color-text-1: hsl(var(--foreground));--color-text-2: hsl(240 5% 75%);--color-text-3: hsl(var(--muted-foreground));--color-text-4: hsl(240 5% 50%);--color-fill-3: hsl(240 4% 20%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-4{right:1rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.z-\[110\]{z-index:110}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.block{display:block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-px{height:1px}.min-h-\[60px\]{min-height:60px}.w-2{width:.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[160px\]{width:160px}.w-\[60px\]{width:60px}.w-\[70px\]{width:70px}.w-\[80px\]{width:80px}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-input{border-color:hsl(var(--input))}.border-transparent{border-color:transparent}.bg-\[var\(--j13-green-bg\)\]{background-color:var(--j13-green-bg)}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.fill-current{fill:currentColor}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:var(--j13-font-family)}.text-\[0\.8rem\]{font-size:.8rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-\[var\(--j13-green\)\]{color:var(--j13-green)}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}:root{--j13-font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", "WenQuanYi Micro Hei", system-ui, -apple-system, "Segoe UI", sans-serif;--j13-green: #18a058;--j13-green-hover: #138f4c;--j13-green-bg: rgba(24, 160, 88, .08);--j13-green-soft: #edfbf3;--j13-border: #e8edf2;--j13-border-light: #f0f3f7;--j13-sidebar-w: 210px;--j13-aside-w: 280px;--j13-header-h: 56px;--j13-max-w: 1400px;--j13-bg-page: #f5f7fa;--j13-bg-workspace: #f8fafc;--j13-bg-surface: #ffffff;--j13-bg-block: #ffffff;--j13-bg-block-muted: #f1f4f8;--j13-bg-block-accent: #f0faf5;--j13-shadow-soft: 0 1px 2px rgba(15, 23, 42, .04);--j13-shadow-card: 0 2px 8px rgba(15, 23, 42, .05)}.dark{--j13-green: #23c36b;--j13-green-hover: #1fb35f;--j13-green-bg: rgba(35, 195, 107, .12);--j13-green-soft: rgba(35, 195, 107, .08);--j13-border: #2e2e32;--j13-border-light: #262629;--j13-bg-page: #141416;--j13-bg-workspace: #18181b;--j13-bg-surface: #1f1f23;--j13-bg-block: #232328;--j13-bg-block-muted: #1c1c20;--j13-bg-block-accent: rgba(35, 195, 107, .06);--j13-shadow-soft: 0 1px 2px rgba(0, 0, 0, .2);--j13-shadow-card: 0 2px 8px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html{scrollbar-gutter:stable;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;font-family:var(--j13-font-family);text-rendering:optimizeLegibility}html,body,#root{height:100%;margin:0}body{font-family:var(--j13-font-family);font-size:14px;line-height:1.5;color:var(--color-text-1);background:var(--j13-bg-page);overflow:hidden}a{color:var(--j13-green);text-decoration:none}a:hover{text-decoration:underline}.app-shell{height:100%;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--j13-bg-page)}.app-frame{flex:1;min-height:0;height:100%;max-width:var(--j13-max-w);width:100%;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;border-left:1px solid var(--j13-border);border-right:1px solid var(--j13-border);background:var(--j13-bg-surface)}.app-header{height:var(--j13-header-h);flex-shrink:0;z-index:100;background:var(--j13-bg-surface);border-bottom:1px solid var(--j13-border)}.header-inner{height:100%;width:100%;padding:0 20px;display:flex;align-items:center;gap:20px}.header-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;border:none;background:none;padding:4px 0;cursor:pointer;color:inherit;font:inherit}.header-brand:hover .header-logo-text{color:var(--j13-green)}.header-logo-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--j13-green) 0%,#34c471 100%);color:#fff;font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #1a7f4b47}.header-logo-text{font-size:15px;font-weight:600;letter-spacing:.02em;transition:color .15s}.header-search-wrap{flex:1;min-width:0;max-width:420px;display:flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;background:var(--j13-bg-block-muted);border:1px solid var(--j13-border-light);transition:border-color .2s,background .2s,box-shadow .2s}.header-search-wrap:focus-within{background:var(--j13-bg-surface);border-color:color-mix(in srgb,var(--j13-green) 30%,transparent);box-shadow:0 0 0 3px var(--j13-green-bg)}.header-search-icon{flex-shrink:0;font-size:15px;color:var(--color-text-3)}.header-search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:14px;color:var(--color-text-1);font-family:inherit}.header-search-input::-moz-placeholder{color:var(--color-text-4)}.header-search-input::placeholder{color:var(--color-text-4)}.header-search-input::-webkit-search-cancel-button{display:none}.header-search-clear{flex-shrink:0;width:20px;height:20px;border:none;border-radius:50%;background:var(--color-fill-3);color:var(--color-text-3);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s}.header-search-clear:hover{background:var(--color-fill-4);color:var(--color-text-1)}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.header-compose-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 16px;border:none;border-radius:999px;background:var(--j13-green);color:#fff;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 6px #1a7f4b38}.header-compose-btn:hover{background:var(--j13-green-hover);box-shadow:0 3px 10px #1a7f4b4d}.header-compose-btn:active{transform:scale(.97)}.header-action-group{display:flex;align-items:center;gap:4px;padding:3px;border-radius:999px;background:var(--j13-bg-block-muted);border:1px solid var(--j13-border-light)}.header-icon-btn{width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--color-text-2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.header-icon-btn:hover{background:var(--color-fill-3);color:var(--color-text-1)}.header-user-btn{width:32px;height:32px;border:none;border-radius:50%;padding:0;cursor:pointer;overflow:hidden;background:var(--j13-green);display:flex;align-items:center;justify-content:center;transition:box-shadow .15s,transform .1s}.header-user-btn:hover{box-shadow:0 0 0 2px var(--j13-green-bg),0 0 0 3px var(--j13-green)}.header-user-avatar{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.header-user-initial{color:#fff;font-size:14px;font-weight:600}.header-login-btn{height:32px;padding:0 14px;border:none;border-radius:999px;background:transparent;color:var(--j13-green);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s}.header-login-btn:hover{background:var(--j13-green-bg)}.header-auth-slot{display:inline-block;width:32px;height:32px;border-radius:50%;flex-shrink:0}.header-auth-slot--loading{background:var(--color-fill-3)}.app-body{flex:1;display:flex;min-height:0;width:100%;overflow:hidden;background:var(--j13-bg-surface)}.sidebar{width:var(--j13-sidebar-w);flex-shrink:0;border-right:1px solid var(--j13-border-light);background:var(--j13-bg-surface);overflow-y:auto;padding:12px 0}.sidebar-section{padding:4px 12px 8px;font-size:11px;font-weight:600;color:var(--color-text-3)}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar-nav-item{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:0 12px;height:36px;border:none;border-radius:6px;background:transparent;color:var(--color-text-1);font-size:14px;cursor:pointer;text-align:left;transition:background .15s,color .15s}.sidebar-nav-item:hover{background:var(--j13-bg-block-muted)}.sidebar-nav-item.active{background:var(--j13-green-bg);color:var(--j13-green);font-weight:600}.sidebar-nav-item svg{width:16px;height:16px;flex-shrink:0}.sidebar-nav-item__meta{margin-left:auto;color:var(--color-text-4);font-size:12px}.sidebar-actions{padding:12px;border-top:1px solid var(--j13-border);margin-top:8px}.main-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.content-workspace{flex:1;display:flex;min-width:0;min-height:0;overflow:hidden;background:var(--j13-bg-surface)}.aside-panel{width:var(--j13-aside-w);flex-shrink:0;border-left:1px solid var(--j13-border-light);overflow-y:auto;padding:0;display:flex;flex-direction:column;background:var(--j13-bg-surface)}@media (max-width: 1100px){.aside-panel{display:none}}@media (max-width: 768px){.app-frame{border-left:none;border-right:none}.sidebar{display:none}.header-inner{padding:0 12px;gap:10px}.header-search-wrap{max-width:none}.header-compose-btn{width:34px;padding:0;justify-content:center}.feed-banner-row{flex-direction:column;gap:10px}.board-grid{flex-wrap:nowrap;overflow-x:auto;padding:8px 12px;scrollbar-width:none}.board-grid::-webkit-scrollbar{display:none}}.page-wrap{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none}.page-wrap::-webkit-scrollbar{display:none}.virtual-list-wrap{flex:1;overflow:auto;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.virtual-list-wrap::-webkit-scrollbar{display:none}.page-inner{padding:20px 24px;max-width:720px}.page-inner-wide{padding:20px 24px}.page-title{font-size:20px;font-weight:600;margin:0 0 4px}.page-desc{font-size:13px;color:var(--color-text-3);margin:0 0 20px}.content-surface{background:var(--j13-bg-block);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-soft);overflow:hidden}.section-card{background:var(--j13-bg-block);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-soft);padding:20px;margin-bottom:16px}.section-card-title{font-size:15px;font-weight:600;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--j13-border-light)}.feed-banner{padding:14px 20px 12px;border-bottom:1px solid var(--j13-border-light)}.feed-banner-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.feed-banner-title{flex:1;min-width:0}.feed-banner h2{margin:0 0 4px;font-size:16px;font-weight:600}.feed-banner p{margin:0;font-size:12px;color:var(--color-text-3);line-height:1.45}.feed-stats{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:10px;min-height:20px;font-size:13px;color:var(--color-text-2)}.feed-stats strong{color:var(--j13-green);font-weight:600}.feed-action-slot{display:inline-block;width:88px;height:28px;border-radius:4px;background:var(--color-fill-3)}.feed-actions{min-height:28px}.mobile-board-bar{display:none;padding:8px 12px;gap:8px;overflow-x:auto;border-bottom:1px solid var(--j13-border);background:var(--j13-bg-surface)}@media (max-width: 768px){.mobile-board-bar{display:flex}}.board-chip{flex-shrink:0;padding:4px 12px;border-radius:16px;font-size:13px;border:1px solid var(--j13-border-light);background:var(--j13-bg-block);cursor:pointer}.board-chip.active{background:var(--j13-green);border-color:var(--j13-green);color:#fff}.board-grid{display:flex;flex-wrap:wrap;gap:8px;padding:10px 20px;border-bottom:1px solid var(--j13-border-light)}.board-grid-empty{padding:20px;border-bottom:1px solid var(--j13-border-light)}.board-tab{display:flex;align-items:center;gap:6px;height:36px;max-width:220px;padding:0 14px;border:1px solid var(--j13-border-light);border-radius:8px;background:var(--j13-bg-block);cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit;color:inherit;flex-shrink:0}.board-tab:hover{border-color:var(--j13-green-light, #7cb87c);background:var(--j13-bg-block-muted)}.board-tab.active{border-color:var(--j13-green);background:color-mix(in srgb,var(--j13-green) 10%,var(--j13-bg-block))}.board-tab-icon{font-size:14px;color:var(--j13-green);line-height:1;flex-shrink:0}.board-tab-name{font-size:13px;font-weight:500;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.board-tab-count{flex-shrink:0;min-width:18px;padding:0 6px;height:20px;line-height:20px;font-size:11px;text-align:center;border-radius:10px;background:var(--color-fill-2);color:var(--color-text-3)}.board-tab.active .board-tab-count{background:color-mix(in srgb,var(--j13-green) 20%,transparent);color:var(--j13-green)}.board-tab--skeleton{width:140px;border-color:transparent;background:linear-gradient(90deg,var(--color-fill-2) 25%,var(--color-fill-3) 50%,var(--color-fill-2) 75%);background-size:200% 100%;animation:board-skeleton-shimmer 1.2s ease-in-out infinite;pointer-events:none}.board-grid--skeleton{pointer-events:none}@keyframes board-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.post-list-bar{display:flex;justify-content:space-between;padding:10px 20px;font-size:13px;color:var(--color-text-3);border-bottom:1px solid var(--j13-border-light)}.post-row{display:flex;align-items:flex-start;gap:12px;padding:12px 20px;border-bottom:1px solid var(--j13-border-light);cursor:pointer;transition:background .15s}.post-row:hover{background:var(--j13-bg-block-muted)}.post-avatar{width:36px;height:36px;border-radius:50%;background:var(--j13-green);color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.post-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.post-body{flex:1;min-width:0}.post-title{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px}.post-meta{font-size:12px;color:var(--color-text-3);display:flex;flex-wrap:wrap;gap:8px}.post-stats{display:flex;gap:12px;font-size:12px;color:var(--color-text-3);flex-shrink:0;padding-top:4px}.empty-state{text-align:center;padding:60px 24px;color:var(--color-text-3)}.empty-feed{text-align:center;padding:48px 24px;color:var(--color-text-3)}.empty-feed-icon{font-size:36px;margin-bottom:8px}.post-detail-loading{display:flex;align-items:center;justify-content:center;padding:60px;flex:1}.post-detail-page{display:flex;flex-direction:column;min-height:0;gap:16px;padding:16px 20px 24px;background:var(--j13-bg-workspace)}.post-detail-header{padding:16px 20px 20px;background:var(--j13-bg-surface);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-card);flex-shrink:0}.post-detail-nav{display:flex;align-items:center;gap:8px;margin-bottom:8px}.post-detail-board-tag{margin:0!important}.post-detail-head{margin-bottom:12px}.post-detail-title{font-size:20px;font-weight:600;margin:0 0 12px;line-height:1.45;word-break:break-word}.post-detail-author-row{display:flex;align-items:center;gap:10px}.post-avatar-lg{width:40px;height:40px;font-size:16px}.post-detail-author-info{display:flex;flex-direction:column;gap:2px}.post-detail-author-name{font-size:14px;font-weight:600;color:var(--color-text-1)}.post-detail-meta-line{font-size:12px;color:var(--color-text-3)}.post-detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.post-detail-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--j13-border-light)}.post-detail-content{font-size:15px;line-height:1.75;word-break:break-word;color:var(--color-text-1)}.post-detail-content h1,.post-detail-content h2,.post-detail-content h3,.post-detail-content h4,.post-detail-content h5,.post-detail-content h6{font-weight:700;line-height:1.35;letter-spacing:-.02em;color:var(--color-text-1);margin:1.4em 0 .55em}.post-detail-content>:first-child,.post-detail-content h1:first-child,.post-detail-content h2:first-child,.post-detail-content h3:first-child,.post-detail-content h4:first-child,.post-detail-content h5:first-child,.post-detail-content h6:first-child{margin-top:0}.post-detail-content h1{font-size:1.85em}.post-detail-content h2{font-size:1.55em}.post-detail-content h3{font-size:1.3em}.post-detail-content h4{font-size:1.12em}.post-detail-content h5{font-size:1em}.post-detail-content h6{font-size:.92em;color:var(--color-text-2);font-weight:600}.post-detail-content ul,.post-detail-content ol{margin:0 0 12px;padding-left:1.6em}.post-detail-content li{margin-bottom:4px}.post-detail-content li>ul,.post-detail-content li>ol{margin-top:4px;margin-bottom:0}.post-detail-content hr{margin:24px 0;border:none;border-top:1px solid var(--j13-border)}.post-detail-content members-only,.post-detail-content .post-members-only{display:block;margin:20px 0;border-radius:12px;overflow:hidden}.post-detail-content .post-members-only--visible{border:1px solid rgba(24,160,88,.35);background:linear-gradient(135deg,#18a0580f,#18a05805);box-shadow:inset 0 1px #fff9}.post-detail-content .post-members-only__badge{display:inline-flex;align-items:center;gap:6px;margin:12px 16px 0;padding:4px 10px;border-radius:20px;background:#18a0581f;color:var(--j13-green);font-size:12px;font-weight:600;letter-spacing:.02em}.post-detail-content .post-members-only__badge-icon{display:inline-flex;align-items:center;justify-content:center}.post-detail-content .post-members-only__body{padding:12px 18px 18px}.post-detail-content .post-members-only__body--empty{color:var(--color-text-4);font-style:italic}.post-detail-content .post-members-only--locked{position:relative;border:1px solid rgba(24,160,88,.22);background:var(--j13-bg-surface)}.post-detail-content .post-members-only__locked-wrap{position:relative;min-height:160px}.post-detail-content .post-members-only__badge--locked{position:relative;z-index:2;background:#18a0581a}.post-detail-content .post-members-only__preview{position:relative;z-index:0;padding:8px 20px 20px;filter:blur(5px);opacity:.45;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.post-detail-content .post-members-only__preview-line{height:11px;margin-bottom:12px;border-radius:6px;background:linear-gradient(90deg,var(--j13-bg-block-muted) 0%,var(--color-fill-3) 100%)}.post-detail-content .post-members-only__preview-line--medium{width:88%}.post-detail-content .post-members-only__preview-line--short{width:62%;margin-bottom:0}.post-detail-content .post-members-only__gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 20px 20px;gap:6px;background:linear-gradient(180deg,#ffffff8c,#ffffffe0 38%,#ffffffeb);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.post-detail-content .post-members-only__gate-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--j13-bg-surface);color:var(--color-text-3);border:1px solid var(--j13-border);margin-bottom:4px;box-shadow:var(--j13-shadow-soft)}.post-detail-content .post-members-only__gate-title{margin:0;font-size:15px;font-weight:600;color:var(--color-text-1)}.post-detail-content .post-members-only__gate-desc{margin:0 0 8px;font-size:13px;color:var(--color-text-3);line-height:1.5;max-width:280px}.post-detail-content .post-members-only__gate-btn{padding:8px 20px;border:none;border-radius:8px;background:var(--j13-green);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.post-detail-content .post-members-only__gate-btn:hover{background:var(--j13-green-hover);transform:translateY(-1px)}.post-detail-content .post-members-only__gate-alt{margin-top:4px;font-size:12px;color:var(--color-text-3)}.post-detail-content .post-members-only__gate-link{padding:0;border:none;background:none;color:var(--j13-green);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.post-detail-content .post-members-only__gate-link:hover{color:var(--j13-green-hover)}.dark .post-detail-content .post-members-only--visible{border-color:#23c36b59;background:linear-gradient(135deg,#23c36b1a,#23c36b08);box-shadow:none}.dark .post-detail-content .post-members-only--locked{border-color:#23c36b40;background:var(--j13-bg-surface)}.dark .post-detail-content .post-members-only__gate{background:linear-gradient(180deg,#18181b80,#18181bd1 38%,#18181be6)}.dark .post-detail-content .post-members-only__preview-line{background:linear-gradient(90deg,var(--j13-bg-block-muted) 0%,rgba(255,255,255,.08) 100%)}.article-editor-tools .article-tool-btn--members{margin-left:6px;padding-left:8px;border-left:1px solid var(--j13-border-light);color:var(--j13-green)}.article-editor-tools .article-tool-btn--members:hover{background:var(--j13-green-bg);color:var(--j13-green-hover)}.post-detail-content strong,.post-detail-content b{font-weight:700;color:var(--color-text-1)}.post-detail-content em,.post-detail-content i{font-style:italic}.post-detail-content img{max-width:100%;border-radius:6px}.post-detail-content p{margin:0 0 12px}.post-detail-content p:last-child{margin-bottom:0}.post-detail-content a{color:var(--j13-green)}.post-detail-content blockquote{margin:12px 0;padding:8px 14px;border-left:3px solid var(--j13-green);background:var(--j13-bg-block-muted);color:var(--color-text-3);border-radius:0 6px 6px 0}.post-detail-content pre,.post-detail-content code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px}.post-detail-content pre{padding:12px;background:var(--j13-bg-block-muted);border-radius:6px;overflow-x:auto}.post-detail-content code{padding:2px 6px;background:var(--j13-bg-block-muted);border-radius:4px}.comment-section{display:flex;flex-direction:column;background:var(--j13-bg-surface);border:1px solid var(--j13-border-light);border-radius:12px;box-shadow:var(--j13-shadow-card);flex-shrink:0;overflow:hidden}.comment-section-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px 12px;font-size:15px;font-weight:600;flex-shrink:0;border-bottom:1px solid var(--j13-border-light)}.comment-section-bar:after{content:"";position:absolute;bottom:-1px;left:20px;width:36px;height:2px;background:var(--j13-green);border-radius:1px;transition:width .35s cubic-bezier(.4,0,.2,1)}.comment-section:hover .comment-section-bar:after{width:52px}.comment-section-title{color:var(--color-text-1)}.comment-section-count{font-size:13px;font-weight:400;color:var(--color-text-3)}.floor-jump-tools{display:flex;align-items:center;gap:4px}.comment-list-area{display:flex;flex-direction:column}.comment-empty{text-align:center;padding:48px 24px;color:var(--color-text-3)}.comment-empty-icon{font-size:32px;margin-bottom:8px;opacity:.6}.comment-empty p{margin:0;font-size:13px}.reply-bar{padding:12px 20px 16px;border-top:1px solid var(--j13-border-light);background:var(--j13-bg-block-muted);flex-shrink:0}.comment-box-wrap{padding:16px 20px;border-bottom:1px solid var(--j13-border-light);background:var(--j13-bg-surface);flex-shrink:0}.comment-box-wrap.inline{padding:12px 0 4px;border-bottom:none;background:transparent}.comment-box-wrap.inline .comment-box-avatar,.comment-box-wrap.inline .comment-box-avatar-img,.comment-box-wrap.inline .comment-box-avatar-placeholder{width:32px;height:32px;font-size:13px}.waline-comment-reply-btn.cancel{color:#e74c3c}.waline-comment-reply-btn.cancel:hover{color:#c0392b}.comment-box{display:flex;gap:12px;align-items:flex-start}.comment-box-avatar{flex-shrink:0}.comment-box-avatar-img,.comment-box-avatar-placeholder{width:40px;height:40px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.comment-box-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--j13-green);color:#fff;font-size:16px;font-weight:600}.comment-box-avatar-placeholder.guest{background:var(--color-fill-3);color:var(--color-text-3)}.comment-box-main{flex:1;min-width:0}.comment-box-reply-hint{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--j13-green);margin-bottom:8px}.comment-box-reply-cancel{border:none;background:none;color:var(--color-text-3);cursor:pointer;font-size:12px;padding:0}.comment-box-reply-cancel:hover{color:var(--color-text-1)}.comment-box-input-wrap{position:relative;border:1px solid var(--j13-border-light);border-radius:10px;background:var(--j13-bg-block);transition:border-color .2s,background .2s}.comment-box-input-wrap:focus-within{border-color:rgb(var(--primary-6))}.comment-box-input-wrap.private-mode{background:var(--j13-bg-block-muted);border-color:var(--j13-border)}.comment-box-textarea{display:block;width:100%;min-height:72px;max-height:200px;padding:10px 48px 10px 12px;border:none;outline:none;resize:vertical;font-size:14px;line-height:1.6;font-family:inherit;color:var(--color-text-1);background:transparent;box-sizing:border-box}.comment-box-textarea::-moz-placeholder{color:var(--color-text-4)}.comment-box-textarea::placeholder{color:var(--color-text-4)}.comment-box-send{position:absolute;right:8px;bottom:8px;width:32px;height:32px;border:none;border-radius:50%;background:#27c;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background .15s,opacity .15s}.comment-box-send:hover:not(:disabled){background:#1a9bd8}.comment-box-send:disabled{opacity:.45;cursor:not-allowed}.comment-box-guest-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 10px;margin-top:8px}.comment-box-guest-field{display:flex;flex-direction:column;gap:4px;min-width:0}.comment-box-guest-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-3)}.comment-box-guest-required,.comment-box-guest-optional{font-style:normal;font-size:11px;line-height:1;padding:2px 6px;border-radius:4px}.comment-box-guest-required{color:rgb(var(--danger-6));background:color-mix(in srgb,rgb(var(--danger-6)) 12%,transparent)}.comment-box-guest-optional{color:var(--color-text-4);background:var(--color-fill-2)}.comment-box-guest-hint{grid-column:1 / -1;margin:0;font-size:12px;color:var(--color-text-4);line-height:1.5}.comment-box-guest-input{height:32px;padding:0 10px;border:1px solid var(--j13-border);border-radius:6px;font-size:13px;color:var(--color-text-1);background:var(--color-bg-1);outline:none;transition:border-color .2s}.comment-box-guest-input:focus{border-color:rgb(var(--primary-6))}.comment-box-guest-input::-moz-placeholder{color:var(--color-text-4)}.comment-box-guest-input::placeholder{color:var(--color-text-4)}.comment-box-toolbar{display:flex;align-items:center;gap:16px;margin-top:8px}.comment-box-owo{border:none;background:none;padding:2px 6px;font-size:13px;font-weight:600;color:var(--color-text-2);cursor:pointer;border-radius:4px;transition:background .15s,color .15s}.comment-box-owo:hover,.comment-box-owo.active{background:#27ccff1f;color:#27c}.comment-box-private{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-3);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.emoji-picker{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:8px;padding:10px;border:1px solid #dcdfe6;border-radius:8px;background:var(--color-bg-1);max-height:200px;overflow-y:auto;box-shadow:0 2px 12px #00000014}.emoji-picker-item{border:none;background:none;font-size:20px;line-height:1;padding:4px;cursor:pointer;border-radius:4px;transition:background .1s}.emoji-picker-item:hover{background:var(--color-fill-2)}.waline-comment{display:flex;gap:12px;padding:16px 20px;border-bottom:1px solid var(--j13-border-light)}.waline-comment.nested{padding:12px 0 0;border-bottom:none}.waline-comment.highlight{animation:floor-highlight 2s ease-out}@keyframes floor-highlight{0%,30%{background:var(--j13-green-bg)}to{background:transparent}}.waline-replies{margin-top:8px}.waline-comment.nested .waline-comment-avatar{width:32px;height:32px;font-size:13px}.waline-comment-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--j13-green);color:#fff;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center}.waline-comment-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.waline-comment-avatar.guest{background:var(--color-fill-3);color:var(--color-text-3)}.waline-comment-main{flex:1;min-width:0}.waline-comment-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.waline-comment-author{font-size:14px;font-weight:600;color:var(--color-text-1);text-decoration:none}a.waline-comment-author:hover{color:var(--j13-green)}.waline-comment-bubble{padding:10px 14px;background:var(--j13-bg-block-muted);border-radius:10px;font-size:14px;line-height:1.65;color:var(--color-text-1);word-break:break-word}.waline-reply-at{display:block;color:#27c;font-weight:600;margin-bottom:4px;line-height:1.5}.waline-comment-private-mask{padding:14px 16px;text-align:center;font-size:13px;color:#999;line-height:1.5;border-radius:8px;background:repeating-linear-gradient(-45deg,#f6f6f6,#f6f6f6 8px,#ececec 8px,#ececec 16px)}.waline-comment-bubble .floor-body{font-size:inherit;line-height:inherit;word-break:break-word}.floor-body{font-size:14px;line-height:1.65;word-break:break-word}.waline-comment-bubble .quote-block{margin:6px 0;background:var(--j13-bg-block)}.waline-comment-meta{display:flex;align-items:center;gap:16px;margin-top:8px;font-size:12px;color:var(--color-text-3)}.waline-comment-date{display:flex;align-items:center;gap:4px}.waline-comment-reply-btn{display:flex;align-items:center;gap:4px;border:none;background:none;padding:0;font-size:12px;color:var(--color-text-3);cursor:pointer;transition:color .15s}.waline-comment-reply-btn:hover{color:var(--j13-green)}@media (max-width: 768px){.comment-box-wrap{padding:12px 14px}.comment-box-guest-fields{grid-template-columns:1fr}.emoji-picker{grid-template-columns:repeat(8,1fr)}.waline-comment{padding:12px 14px}}.mention{color:var(--j13-green);font-weight:600}.quote-block{border-left:3px solid var(--j13-green);padding:8px 12px;margin:6px 0 8px;background:var(--j13-bg-block-muted);font-size:13px;color:var(--color-text-3);border-radius:0 8px 8px 0;line-height:1.5;white-space:pre-wrap;word-break:break-word}.quote-block.clickable{cursor:pointer;transition:background .15s,border-color .15s}.quote-block.clickable:hover{background:var(--j13-green-bg);border-left-color:var(--j13-green-hover)}@media (max-width: 768px){.post-detail-page{padding:12px 14px 20px;gap:12px}.post-detail-header{padding:12px 14px 16px}.post-detail-title{font-size:17px}.post-detail-actions{margin-top:20px;padding-top:16px;gap:10px}.comment-section-bar{padding:12px 14px 10px}.comment-section-bar:after{left:14px;width:32px}.comment-section:hover .comment-section-bar:after{width:46px}}.widget-card{background:transparent;border:none;border-radius:0;box-shadow:none;margin-bottom:0;overflow:hidden;border-bottom:1px solid var(--j13-border-light);flex-shrink:0}.widget-card-head{padding:12px 16px 8px;font-size:13px;font-weight:600;border-bottom:none;background:transparent;color:var(--color-text-2)}.widget-card-body{padding:0 16px 14px}.widget-card--about{flex:1;display:flex;flex-direction:column;border-bottom:none;min-height:72px}.widget-card--about .widget-card-body{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px 16px}.widget-about-text{margin:0;font-size:12px;color:var(--color-text-3);line-height:1.65}.widget-about-text strong{display:block;margin-bottom:4px;color:var(--j13-green);font-size:13px}.widget-item{padding:6px 0;font-size:13px;cursor:pointer;border-bottom:1px solid var(--j13-border-light);display:flex;align-items:center;gap:6px}.widget-item:last-child{border-bottom:none}.widget-item:hover{color:var(--j13-green)}.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.profile-avatar-lg{width:72px;height:72px;border-radius:50%;background:var(--j13-green);color:#fff;font-size:28px;font-weight:600;display:flex;align-items:center;justify-content:center;overflow:hidden}.profile-avatar-lg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.admin-entry-card{border-color:color-mix(in srgb,var(--j13-green) 25%,var(--j13-border));background:var(--j13-bg-block-accent)}.auth-page{height:100%;min-height:100dvh;overflow-y:auto;display:flex;align-items:center;justify-content:center;background:var(--j13-bg-page);padding:24px}.auth-box{width:100%;max-width:400px;background:var(--j13-bg-surface);border:1px solid var(--j13-border);border-radius:12px;box-shadow:var(--j13-shadow-card);padding:32px}.auth-box .logo-mark{width:48px;height:48px;border-radius:12px;background:var(--j13-green);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.auth-box h1{text-align:center;font-size:20px;margin:0 0 4px}.auth-box .subtitle{text-align:center;font-size:13px;color:var(--color-text-3);margin-bottom:24px}.app-body--compose,.content-workspace--compose{background:var(--j13-bg-workspace)}.main-content--compose{overflow-y:auto;overflow-x:hidden}.compose-page{flex:1;display:flex;flex-direction:column;min-height:min(100%,100vh - var(--j13-header-h));overflow:visible;background:radial-gradient(ellipse 80% 50% at 50% -10%,var(--j13-green-bg),transparent),var(--j13-bg-workspace)}.compose-page--empty{align-items:center;justify-content:center}.compose-empty-card{text-align:center;padding:48px 40px;background:var(--j13-bg-surface);border:1px solid var(--j13-border);border-radius:16px;box-shadow:var(--j13-shadow-card);max-width:400px}.compose-empty-icon{width:56px;height:56px;margin:0 auto 20px;border-radius:14px;background:var(--j13-green-bg);color:var(--j13-green);font-size:24px;display:flex;align-items:center;justify-content:center}.compose-empty-card h2{margin:0 0 8px;font-size:18px;font-weight:600}.compose-empty-card p{margin:0 0 24px;font-size:14px;color:var(--color-text-3);line-height:1.5}.compose-primary-btn,.compose-ghost-btn{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .15s,transform .1s}.compose-primary-btn{background:var(--j13-green);color:#fff}.compose-primary-btn:hover{background:var(--j13-green-hover)}.compose-ghost-btn{background:var(--j13-bg-block-muted);color:var(--color-text-2)}.compose-canvas{flex:1;display:flex;flex-direction:column;min-height:min(100%,100vh - var(--j13-header-h));max-width:1200px;width:100%;margin:0 auto;padding:0 32px 32px}.compose-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0 12px;flex-shrink:0}.compose-back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--j13-border);border-radius:8px;background:var(--j13-bg-surface);color:var(--color-text-2);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s,box-shadow .15s;box-shadow:var(--j13-shadow-soft)}.compose-back:hover{border-color:var(--j13-green);color:var(--j13-green)}.compose-publish-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--j13-green),var(--j13-green-hover));color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #18a0584d;transition:transform .1s,box-shadow .15s,opacity .15s}.compose-publish-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #18a05859}.compose-publish-btn:disabled{opacity:.65;cursor:not-allowed}.compose-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;flex-shrink:0;flex-wrap:wrap}.compose-board-pills{display:flex;flex-wrap:wrap;gap:8px}.compose-board-pill{padding:6px 14px;border:1px solid var(--j13-border);border-radius:20px;background:var(--j13-bg-surface);color:var(--color-text-2);font-size:13px;cursor:pointer;transition:all .15s}.compose-board-pill:hover{border-color:var(--j13-green);color:var(--j13-green)}.compose-board-pill.active{background:var(--j13-green);border-color:var(--j13-green);color:#fff;font-weight:500}.compose-tags-field{display:flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--j13-border);border-radius:20px;background:var(--j13-bg-surface);min-width:220px;transition:border-color .15s}.compose-tags-field:focus-within{border-color:var(--j13-green)}.compose-tags-icon{color:var(--color-text-4);font-size:14px;flex-shrink:0}.compose-tags-field input{flex:1;border:none;background:transparent;outline:none;font-size:13px;color:var(--color-text-1);min-width:0}.compose-tags-field input::-moz-placeholder{color:var(--color-text-4)}.compose-tags-field input::placeholder{color:var(--color-text-4)}.compose-writing{flex:1;display:flex;flex-direction:column;background:var(--j13-bg-surface);border:1px solid var(--j13-border);border-radius:16px;box-shadow:var(--j13-shadow-card);padding:28px 32px 0;overflow:visible}.compose-title{width:100%;padding:0;border:none;background:transparent;font-size:32px;font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--color-text-1);outline:none}.compose-title::-moz-placeholder{color:var(--color-text-4)}.compose-title::placeholder{color:var(--color-text-4)}.compose-subtitle{margin-top:8px;font-size:13px;color:var(--color-text-3)}.compose-subtitle strong{color:var(--j13-green);font-weight:500}.article-editor{flex:1;display:flex;flex-direction:column;margin-top:24px;border-top:1px solid var(--j13-border-light)}.article-editor-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -32px;padding:10px 32px;flex-shrink:0;flex-wrap:wrap;background:var(--j13-bg-surface);border-bottom:1px solid var(--j13-border-light);box-shadow:0 4px 12px #0f172a0a}.article-editor-tools{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.article-tool-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--color-text-2);font-size:13px;cursor:pointer;transition:background .12s,color .12s}.article-tool-btn:hover{background:var(--j13-bg-block-muted);color:var(--j13-green)}.article-tool-btn strong{font-size:12px;font-weight:700}.article-editor-modes{display:flex;gap:4px;padding:3px;background:var(--j13-bg-block-muted);border-radius:8px}.article-mode-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:none;border-radius:6px;background:transparent;color:var(--color-text-3);font-size:12px;cursor:pointer;transition:background .12s,color .12s,box-shadow .12s}.article-mode-btn.active{background:var(--j13-bg-surface);color:var(--j13-green);font-weight:500;box-shadow:var(--j13-shadow-soft)}.article-editor-panes{display:flex;align-items:stretch;gap:0;overflow:visible}.article-editor-panes--edit .article-pane--edit,.article-editor-panes--preview .article-pane--preview{flex:1}.article-editor-panes--split .article-pane--edit,.article-editor-panes--split .article-pane--preview{flex:1;min-width:0}.article-editor-panes--split .article-pane--edit{border-right:1px solid var(--j13-border-light)}.article-pane{display:flex;flex-direction:column;overflow:visible}.article-pane-label{padding:6px 0 8px;font-size:11px;font-weight:600;color:var(--color-text-4);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.article-textarea{width:100%;min-height:280px;padding:12px 0;border:none;background:transparent;resize:none;outline:none;font-family:ui-monospace,Cascadia Code,SF Mono,Consolas,monospace;font-size:14px;line-height:1.8;color:var(--color-text-1);overflow:hidden;box-sizing:border-box}.article-textarea::-moz-placeholder{color:var(--color-text-4);font-family:var(--j13-font-family)}.article-textarea::placeholder{color:var(--color-text-4);font-family:var(--j13-font-family)}.article-preview{padding:12px 0 12px 16px;overflow:visible}.article-editor-panes--edit .article-preview,.article-editor-panes--preview .article-preview{padding-left:0}.article-preview--empty .article-preview-placeholder{color:var(--color-text-4);font-style:italic}.article-editor-status{display:flex;align-items:center;justify-content:space-between;padding:10px 0 16px;border-top:1px solid var(--j13-border-light);font-size:12px;color:var(--color-text-4);flex-shrink:0}@media (max-width: 900px){.article-editor-panes--split{flex-direction:column}.article-editor-panes--split .article-pane--edit{border-right:none;border-bottom:1px solid var(--j13-border-light)}.article-preview{padding-left:0}}@media (max-width: 768px){.compose-canvas{padding:0 16px}.compose-writing{padding:20px 16px 0;border-radius:12px}.article-editor-bar{margin:0 -16px;padding:10px 16px}.compose-title{font-size:24px}.compose-meta{flex-direction:column;align-items:stretch}.compose-tags-field{min-width:0}.compose-header{padding-top:12px}.compose-publish-btn span{display:none}}.page-loader{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;min-height:240px;color:var(--j13-green);font-size:14px}.page-loader__dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:page-loader-pulse .9s ease-in-out infinite}@keyframes page-loader-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.admin-shell{min-height:100vh;background:hsl(var(--background))}.admin-topbar{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 20px;border-bottom:1px solid var(--j13-border);background:hsl(var(--card))}.admin-topbar-brand{display:flex;align-items:center;gap:10px}.admin-topbar-mark{width:32px;height:32px;border-radius:8px;background:var(--j13-green);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.admin-topbar-title{font-size:14px;font-weight:600;line-height:1.2}.admin-topbar-sub{font-size:12px;color:hsl(var(--muted-foreground))}.admin-topbar-actions{display:flex;align-items:center;gap:12px}.admin-topbar-user{font-size:13px;color:hsl(var(--muted-foreground))}.admin-link-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--j13-green);background:none;border:none;cursor:pointer}.admin-body{display:flex;min-height:calc(100vh - 56px)}.admin-sidebar{width:200px;flex-shrink:0;padding:16px 10px;border-right:1px solid var(--j13-border);background:hsl(var(--card))}.admin-nav-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;margin-bottom:2px;border-radius:8px;font-size:13px;color:hsl(var(--muted-foreground));text-decoration:none;transition:background .15s,color .15s}.admin-nav-item:hover{background:var(--j13-green-bg);color:var(--j13-green)}.admin-nav-item.active{background:var(--j13-green-bg);color:var(--j13-green);font-weight:600}.admin-main{flex:1;padding:24px;overflow:auto}.admin-page-head{margin-bottom:20px}.admin-page-head h1{font-size:22px;font-weight:700;margin-bottom:4px}.admin-page-head p{font-size:13px;color:hsl(var(--muted-foreground))}.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:20px}.admin-stat-card{padding:16px;border-radius:10px;border:1px solid var(--j13-border);background:hsl(var(--card))}.admin-stat-value{font-size:24px;font-weight:700;color:var(--j13-green)}.admin-stat-label{font-size:12px;color:hsl(var(--muted-foreground));margin-top:4px}.admin-card{border:1px solid var(--j13-border);border-radius:10px;background:hsl(var(--card));overflow:hidden;margin-bottom:16px}.admin-card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--j13-border);font-weight:600;font-size:14px}.admin-card-desc{padding:12px 16px 0;font-size:13px;color:hsl(var(--muted-foreground))}.admin-card .admin-card-desc+button{margin:12px 16px 16px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--j13-border)}.admin-table th{font-weight:600;color:hsl(var(--muted-foreground));background:hsl(var(--muted) / .3)}.admin-table tr:last-child td{border-bottom:none}.admin-empty{padding:32px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px}.admin-text-link{background:none;border:none;padding:0;color:var(--j13-green);cursor:pointer;font-size:inherit}.admin-text-link:hover{text-decoration:underline}.admin-search-bar{display:flex;gap:8px;margin-bottom:16px;max-width:480px}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;border-top:1px solid var(--j13-border);font-size:13px}.admin-dl{padding:16px;display:grid;grid-template-columns:120px 1fr;gap:10px 16px;font-size:13px}.admin-dl dt{color:hsl(var(--muted-foreground))}.admin-dl dd code{font-size:12px;background:hsl(var(--muted));padding:2px 6px;border-radius:4px}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-\[var\(--j13-green\)\][data-state=checked]{background-color:var(--j13-green)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.dark\:bg-orange-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(67 20 7 / var(--tw-bg-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}
diff --git a/embed_static/static/spa/assets/input-BN5iO3BQ.js b/embed_static/static/spa/assets/input-BN5iO3BQ.js
new file mode 100644
index 0000000..dbd843f
--- /dev/null
+++ b/embed_static/static/spa/assets/input-BN5iO3BQ.js
@@ -0,0 +1 @@
+import{r as t,j as i}from"./react-vendor-CFzzFOsg.js";import{c as n}from"./index-DurEdRMk.js";const a=t.forwardRef(({className:e,type:o,...r},s)=>i.jsx("input",{type:o,className:n("flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),ref:s,...r}));a.displayName="Input";export{a as I};
diff --git a/embed_static/static/spa/assets/notify-Zesh5czd.js b/embed_static/static/spa/assets/notify-Zesh5czd.js
deleted file mode 100644
index 66e2376..0000000
--- a/embed_static/static/spa/assets/notify-Zesh5czd.js
+++ /dev/null
@@ -1 +0,0 @@
-import{t as s}from"./index-474mTIgd.js";const n={success:r=>s.success(r),error:r=>s.error(r),warning:r=>s.warning(r)};export{n};
diff --git a/embed_static/static/spa/assets/react-vendor-CFzzFOsg.js b/embed_static/static/spa/assets/react-vendor-CFzzFOsg.js
new file mode 100644
index 0000000..1c7a460
--- /dev/null
+++ b/embed_static/static/spa/assets/react-vendor-CFzzFOsg.js
@@ -0,0 +1,67 @@
+function id(e,t){for(var n=0;nr[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Ea(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ca={exports:{}},Wl={},Pa={exports:{}},z={};/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Rr=Symbol.for("react.element"),ud=Symbol.for("react.portal"),sd=Symbol.for("react.fragment"),ad=Symbol.for("react.strict_mode"),cd=Symbol.for("react.profiler"),fd=Symbol.for("react.provider"),dd=Symbol.for("react.context"),pd=Symbol.for("react.forward_ref"),hd=Symbol.for("react.suspense"),md=Symbol.for("react.memo"),vd=Symbol.for("react.lazy"),Yu=Symbol.iterator;function gd(e){return e===null||typeof e!="object"?null:(e=Yu&&e[Yu]||e["@@iterator"],typeof e=="function"?e:null)}var _a={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ra=Object.assign,La={};function Mn(e,t,n){this.props=e,this.context=t,this.refs=La,this.updater=n||_a}Mn.prototype.isReactComponent={};Mn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Mn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Na(){}Na.prototype=Mn.prototype;function Vi(e,t,n){this.props=e,this.context=t,this.refs=La,this.updater=n||_a}var Hi=Vi.prototype=new Na;Hi.constructor=Vi;Ra(Hi,Mn.prototype);Hi.isPureReactComponent=!0;var Gu=Array.isArray,Oa=Object.prototype.hasOwnProperty,Qi={current:null},Ta={key:!0,ref:!0,__self:!0,__source:!0};function za(e,t,n){var r,l={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)Oa.call(t,r)&&!Ta.hasOwnProperty(r)&&(l[r]=t[r]);var u=arguments.length-2;if(u===1)l.children=n;else if(1>>1,ne=C[Y];if(0>>1;Yl(fo,T))Utl(Dr,fo)?(C[Y]=Dr,C[Ut]=T,Y=Ut):(C[Y]=fo,C[jt]=T,Y=jt);else if(Utl(Dr,T))C[Y]=Dr,C[Ut]=T,Y=Ut;else break e}}return O}function l(C,O){var T=C.sortIndex-O.sortIndex;return T!==0?T:C.id-O.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,u=i.now();e.unstable_now=function(){return i.now()-u}}var s=[],a=[],d=1,f=null,m=3,v=!1,g=!1,w=!1,S=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,c=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function h(C){for(var O=n(a);O!==null;){if(O.callback===null)r(a);else if(O.startTime<=C)r(a),O.sortIndex=O.expirationTime,t(s,O);else break;O=n(a)}}function y(C){if(w=!1,h(C),!g)if(n(s)!==null)g=!0,X(x);else{var O=n(a);O!==null&&te(y,O.startTime-C)}}function x(C,O){g=!1,w&&(w=!1,p(R),R=-1),v=!0;var T=m;try{for(h(O),f=n(s);f!==null&&(!(f.expirationTime>O)||C&&!A());){var Y=f.callback;if(typeof Y=="function"){f.callback=null,m=f.priorityLevel;var ne=Y(f.expirationTime<=O);O=e.unstable_now(),typeof ne=="function"?f.callback=ne:f===n(s)&&r(s),h(O)}else r(s);f=n(s)}if(f!==null)var Mr=!0;else{var jt=n(a);jt!==null&&te(y,jt.startTime-O),Mr=!1}return Mr}finally{f=null,m=T,v=!1}}var P=!1,_=null,R=-1,M=5,N=-1;function A(){return!(e.unstable_now()-NC||125Y?(C.sortIndex=T,t(a,C),n(s)===null&&C===n(a)&&(w?(p(R),R=-1):w=!0,te(y,T-Y))):(C.sortIndex=ne,t(s,C),g||v||(g=!0,X(x))),C},e.unstable_shouldYield=A,e.unstable_wrapCallback=function(C){var O=m;return function(){var T=m;m=O;try{return C.apply(this,arguments)}finally{m=T}}}})(Ia);Aa.exports=Ia;var Od=Aa.exports;/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Td=k,_e=Od;function E(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Vo=Object.prototype.hasOwnProperty,zd=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,qu={},bu={};function Md(e){return Vo.call(bu,e)?!0:Vo.call(qu,e)?!1:zd.test(e)?bu[e]=!0:(qu[e]=!0,!1)}function Dd(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Fd(e,t,n,r){if(t===null||typeof t>"u"||Dd(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function me(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var ue={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ue[e]=new me(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ue[t]=new me(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ue[e]=new me(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ue[e]=new me(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ue[e]=new me(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ue[e]=new me(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ue[e]=new me(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ue[e]=new me(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ue[e]=new me(e,5,!1,e.toLowerCase(),null,!1,!1)});var Xi=/[\-:]([a-z])/g;function Yi(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Xi,Yi);ue[t]=new me(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Xi,Yi);ue[t]=new me(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Xi,Yi);ue[t]=new me(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ue[e]=new me(e,1,!1,e.toLowerCase(),null,!1,!1)});ue.xlinkHref=new me("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ue[e]=new me(e,1,!1,e.toLowerCase(),null,!0,!0)});function Gi(e,t,n,r){var l=ue.hasOwnProperty(t)?ue[t]:null;(l!==null?l.type!==0:r||!(2u||l[i]!==o[u]){var s=`
+`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=u);break}}}finally{mo=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Yn(e):""}function Ad(e){switch(e.tag){case 5:return Yn(e.type);case 16:return Yn("Lazy");case 13:return Yn("Suspense");case 19:return Yn("SuspenseList");case 0:case 2:case 15:return e=vo(e.type,!1),e;case 11:return e=vo(e.type.render,!1),e;case 1:return e=vo(e.type,!0),e;default:return""}}function Xo(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case on:return"Fragment";case ln:return"Portal";case Ho:return"Profiler";case Ji:return"StrictMode";case Qo:return"Suspense";case Ko:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case $a:return(e.displayName||"Context")+".Consumer";case Ua:return(e._context.displayName||"Context")+".Provider";case Zi:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case qi:return t=e.displayName||null,t!==null?t:Xo(e.type)||"Memo";case mt:t=e._payload,e=e._init;try{return Xo(e(t))}catch{}}return null}function Id(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Xo(t);case 8:return t===Ji?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Tt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Wa(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function jd(e){var t=Wa(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ir(e){e._valueTracker||(e._valueTracker=jd(e))}function Va(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Wa(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function dl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Yo(e,t){var n=t.checked;return H({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ts(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Tt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Ha(e,t){t=t.checked,t!=null&&Gi(e,"checked",t,!1)}function Go(e,t){Ha(e,t);var n=Tt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Jo(e,t.type,n):t.hasOwnProperty("defaultValue")&&Jo(e,t.type,Tt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ns(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Jo(e,t,n){(t!=="number"||dl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Gn=Array.isArray;function gn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=jr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function sr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var qn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ud=["Webkit","ms","Moz","O"];Object.keys(qn).forEach(function(e){Ud.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),qn[t]=qn[e]})});function Ya(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||qn.hasOwnProperty(e)&&qn[e]?(""+t).trim():t+"px"}function Ga(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Ya(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var $d=H({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function bo(e,t){if(t){if($d[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(E(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(E(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(E(61))}if(t.style!=null&&typeof t.style!="object")throw Error(E(62))}}function ei(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ti=null;function bi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ni=null,yn=null,wn=null;function os(e){if(e=Or(e)){if(typeof ni!="function")throw Error(E(280));var t=e.stateNode;t&&(t=Xl(t),ni(e.stateNode,e.type,t))}}function Ja(e){yn?wn?wn.push(e):wn=[e]:yn=e}function Za(){if(yn){var e=yn,t=wn;if(wn=yn=null,os(e),t)for(e=0;e>>=0,e===0?32:31-(Zd(e)/qd|0)|0}var Ur=64,$r=4194304;function Jn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function vl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var u=i&~l;u!==0?r=Jn(u):(o&=i,o!==0&&(r=Jn(o)))}else i=n&~l,i!==0?r=Jn(i):o!==0&&(r=Jn(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Lr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-$e(t),e[t]=n}function np(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=er),hs=" ",ms=!1;function gc(e,t){switch(e){case"keyup":return Op.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function yc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var un=!1;function zp(e,t){switch(e){case"compositionend":return yc(t);case"keypress":return t.which!==32?null:(ms=!0,hs);case"textInput":return e=t.data,e===hs&&ms?null:e;default:return null}}function Mp(e,t){if(un)return e==="compositionend"||!uu&&gc(e,t)?(e=mc(),nl=lu=wt=null,un=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ws(n)}}function kc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?kc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ec(){for(var e=window,t=dl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=dl(e.document)}return t}function su(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Wp(e){var t=Ec(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&kc(n.ownerDocument.documentElement,n)){if(r!==null&&su(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=Ss(n,o);var i=Ss(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,sn=null,si=null,nr=null,ai=!1;function xs(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ai||sn==null||sn!==dl(r)||(r=sn,"selectionStart"in r&&su(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),nr&&hr(nr,r)||(nr=r,r=wl(si,"onSelect"),0fn||(e.current=mi[fn],mi[fn]=null,fn--)}function I(e,t){fn++,mi[fn]=e.current,e.current=t}var zt={},fe=At(zt),ye=At(!1),Yt=zt;function Pn(e,t){var n=e.type.contextTypes;if(!n)return zt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function we(e){return e=e.childContextTypes,e!=null}function xl(){U(ye),U(fe)}function Ls(e,t,n){if(fe.current!==zt)throw Error(E(168));I(fe,t),I(ye,n)}function zc(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(E(108,Id(e)||"Unknown",l));return H({},n,r)}function kl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||zt,Yt=fe.current,I(fe,e),I(ye,ye.current),!0}function Ns(e,t,n){var r=e.stateNode;if(!r)throw Error(E(169));n?(e=zc(e,t,Yt),r.__reactInternalMemoizedMergedChildContext=e,U(ye),U(fe),I(fe,e)):U(ye),I(ye,n)}var tt=null,Yl=!1,Oo=!1;function Mc(e){tt===null?tt=[e]:tt.push(e)}function eh(e){Yl=!0,Mc(e)}function It(){if(!Oo&&tt!==null){Oo=!0;var e=0,t=F;try{var n=tt;for(F=1;e>=i,l-=i,nt=1<<32-$e(t)+l|n<R?(M=_,_=null):M=_.sibling;var N=m(p,_,h[R],y);if(N===null){_===null&&(_=M);break}e&&_&&N.alternate===null&&t(p,_),c=o(N,c,R),P===null?x=N:P.sibling=N,P=N,_=M}if(R===h.length)return n(p,_),$&&Bt(p,R),x;if(_===null){for(;RR?(M=_,_=null):M=_.sibling;var A=m(p,_,N.value,y);if(A===null){_===null&&(_=M);break}e&&_&&A.alternate===null&&t(p,_),c=o(A,c,R),P===null?x=A:P.sibling=A,P=A,_=M}if(N.done)return n(p,_),$&&Bt(p,R),x;if(_===null){for(;!N.done;R++,N=h.next())N=f(p,N.value,y),N!==null&&(c=o(N,c,R),P===null?x=N:P.sibling=N,P=N);return $&&Bt(p,R),x}for(_=r(p,_);!N.done;R++,N=h.next())N=v(_,p,R,N.value,y),N!==null&&(e&&N.alternate!==null&&_.delete(N.key===null?R:N.key),c=o(N,c,R),P===null?x=N:P.sibling=N,P=N);return e&&_.forEach(function(q){return t(p,q)}),$&&Bt(p,R),x}function S(p,c,h,y){if(typeof h=="object"&&h!==null&&h.type===on&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Ar:e:{for(var x=h.key,P=c;P!==null;){if(P.key===x){if(x=h.type,x===on){if(P.tag===7){n(p,P.sibling),c=l(P,h.props.children),c.return=p,p=c;break e}}else if(P.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===mt&&zs(x)===P.type){n(p,P.sibling),c=l(P,h.props),c.ref=Qn(p,P,h),c.return=p,p=c;break e}n(p,P);break}else t(p,P);P=P.sibling}h.type===on?(c=Xt(h.props.children,p.mode,y,h.key),c.return=p,p=c):(y=cl(h.type,h.key,h.props,null,p.mode,y),y.ref=Qn(p,c,h),y.return=p,p=y)}return i(p);case ln:e:{for(P=h.key;c!==null;){if(c.key===P)if(c.tag===4&&c.stateNode.containerInfo===h.containerInfo&&c.stateNode.implementation===h.implementation){n(p,c.sibling),c=l(c,h.children||[]),c.return=p,p=c;break e}else{n(p,c);break}else t(p,c);c=c.sibling}c=jo(h,p.mode,y),c.return=p,p=c}return i(p);case mt:return P=h._init,S(p,c,P(h._payload),y)}if(Gn(h))return g(p,c,h,y);if($n(h))return w(p,c,h,y);Xr(p,h)}return typeof h=="string"&&h!==""||typeof h=="number"?(h=""+h,c!==null&&c.tag===6?(n(p,c.sibling),c=l(c,h),c.return=p,p=c):(n(p,c),c=Io(h,p.mode,y),c.return=p,p=c),i(p)):n(p,c)}return S}var Rn=Ic(!0),jc=Ic(!1),Pl=At(null),_l=null,hn=null,du=null;function pu(){du=hn=_l=null}function hu(e){var t=Pl.current;U(Pl),e._currentValue=t}function yi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function xn(e,t){_l=e,du=hn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ge=!0),e.firstContext=null)}function De(e){var t=e._currentValue;if(du!==e)if(e={context:e,memoizedValue:t,next:null},hn===null){if(_l===null)throw Error(E(308));hn=e,_l.dependencies={lanes:0,firstContext:e}}else hn=hn.next=e;return t}var Ht=null;function mu(e){Ht===null?Ht=[e]:Ht.push(e)}function Uc(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,mu(t)):(n.next=l.next,l.next=n),t.interleaved=n,ut(e,r)}function ut(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var vt=!1;function vu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function $c(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function lt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function _t(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,D&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,ut(e,n)}return l=r.interleaved,l===null?(t.next=t,mu(r)):(t.next=l.next,l.next=t),r.interleaved=t,ut(e,n)}function ll(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,tu(e,n)}}function Ms(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Rl(e,t,n,r){var l=e.updateQueue;vt=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,u=l.shared.pending;if(u!==null){l.shared.pending=null;var s=u,a=s.next;s.next=null,i===null?o=a:i.next=a,i=s;var d=e.alternate;d!==null&&(d=d.updateQueue,u=d.lastBaseUpdate,u!==i&&(u===null?d.firstBaseUpdate=a:u.next=a,d.lastBaseUpdate=s))}if(o!==null){var f=l.baseState;i=0,d=a=s=null,u=o;do{var m=u.lane,v=u.eventTime;if((r&m)===m){d!==null&&(d=d.next={eventTime:v,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var g=e,w=u;switch(m=t,v=n,w.tag){case 1:if(g=w.payload,typeof g=="function"){f=g.call(v,f,m);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=w.payload,m=typeof g=="function"?g.call(v,f,m):g,m==null)break e;f=H({},f,m);break e;case 2:vt=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,m=l.effects,m===null?l.effects=[u]:m.push(u))}else v={eventTime:v,lane:m,tag:u.tag,payload:u.payload,callback:u.callback,next:null},d===null?(a=d=v,s=f):d=d.next=v,i|=m;if(u=u.next,u===null){if(u=l.shared.pending,u===null)break;m=u,u=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);if(d===null&&(s=f),l.baseState=s,l.firstBaseUpdate=a,l.lastBaseUpdate=d,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);Zt|=i,e.lanes=i,e.memoizedState=f}}function Ds(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=zo.transition;zo.transition={};try{e(!1),t()}finally{F=n,zo.transition=r}}function rf(){return Fe().memoizedState}function lh(e,t,n){var r=Lt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},lf(e))of(t,n);else if(n=Uc(e,t,n,r),n!==null){var l=pe();Be(n,e,r,l),uf(n,t,r)}}function oh(e,t,n){var r=Lt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(lf(e))of(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,u=o(i,n);if(l.hasEagerState=!0,l.eagerState=u,We(u,i)){var s=t.interleaved;s===null?(l.next=l,mu(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=Uc(e,t,l,r),n!==null&&(l=pe(),Be(n,e,r,l),uf(n,t,r))}}function lf(e){var t=e.alternate;return e===W||t!==null&&t===W}function of(e,t){rr=Nl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function uf(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,tu(e,n)}}var Ol={readContext:De,useCallback:se,useContext:se,useEffect:se,useImperativeHandle:se,useInsertionEffect:se,useLayoutEffect:se,useMemo:se,useReducer:se,useRef:se,useState:se,useDebugValue:se,useDeferredValue:se,useTransition:se,useMutableSource:se,useSyncExternalStore:se,useId:se,unstable_isNewReconciler:!1},ih={readContext:De,useCallback:function(e,t){return Ke().memoizedState=[e,t===void 0?null:t],e},useContext:De,useEffect:As,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,il(4194308,4,qc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return il(4194308,4,e,t)},useInsertionEffect:function(e,t){return il(4,2,e,t)},useMemo:function(e,t){var n=Ke();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ke();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=lh.bind(null,W,e),[r.memoizedState,e]},useRef:function(e){var t=Ke();return e={current:e},t.memoizedState=e},useState:Fs,useDebugValue:Cu,useDeferredValue:function(e){return Ke().memoizedState=e},useTransition:function(){var e=Fs(!1),t=e[0];return e=rh.bind(null,e[1]),Ke().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=W,l=Ke();if($){if(n===void 0)throw Error(E(407));n=n()}else{if(n=t(),le===null)throw Error(E(349));Jt&30||Hc(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,As(Kc.bind(null,r,o,e),[e]),r.flags|=2048,kr(9,Qc.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ke(),t=le.identifierPrefix;if($){var n=rt,r=nt;n=(r&~(1<<32-$e(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Sr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Xe]=t,e[gr]=r,gf(e,t,!1,!1),t.stateNode=e;e:{switch(i=ei(n,r),n){case"dialog":j("cancel",e),j("close",e),l=r;break;case"iframe":case"object":case"embed":j("load",e),l=r;break;case"video":case"audio":for(l=0;lOn&&(t.flags|=128,r=!0,Kn(o,!1),t.lanes=4194304)}else{if(!r)if(e=Ll(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Kn(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!$)return ae(t),null}else 2*G()-o.renderingStartTime>On&&n!==1073741824&&(t.flags|=128,r=!0,Kn(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=G(),t.sibling=null,n=B.current,I(B,r?n&1|2:n&1),t):(ae(t),null);case 22:case 23:return Ou(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?xe&1073741824&&(ae(t),t.subtreeFlags&6&&(t.flags|=8192)):ae(t),null;case 24:return null;case 25:return null}throw Error(E(156,t.tag))}function hh(e,t){switch(cu(t),t.tag){case 1:return we(t.type)&&xl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ln(),U(ye),U(fe),wu(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return yu(t),null;case 13:if(U(B),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(E(340));_n()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return U(B),null;case 4:return Ln(),null;case 10:return hu(t.type._context),null;case 22:case 23:return Ou(),null;case 24:return null;default:return null}}var Gr=!1,ce=!1,mh=typeof WeakSet=="function"?WeakSet:Set,L=null;function mn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){K(e,t,r)}else n.current=null}function Ri(e,t,n){try{n()}catch(r){K(e,t,r)}}var Xs=!1;function vh(e,t){if(ci=gl,e=Ec(),su(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,u=-1,s=-1,a=0,d=0,f=e,m=null;t:for(;;){for(var v;f!==n||l!==0&&f.nodeType!==3||(u=i+l),f!==o||r!==0&&f.nodeType!==3||(s=i+r),f.nodeType===3&&(i+=f.nodeValue.length),(v=f.firstChild)!==null;)m=f,f=v;for(;;){if(f===e)break t;if(m===n&&++a===l&&(u=i),m===o&&++d===r&&(s=i),(v=f.nextSibling)!==null)break;f=m,m=f.parentNode}f=v}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(fi={focusedElem:e,selectionRange:n},gl=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var w=g.memoizedProps,S=g.memoizedState,p=t.stateNode,c=p.getSnapshotBeforeUpdate(t.elementType===t.type?w:Ie(t.type,w),S);p.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var h=t.stateNode.containerInfo;h.nodeType===1?h.textContent="":h.nodeType===9&&h.documentElement&&h.removeChild(h.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(E(163))}}catch(y){K(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return g=Xs,Xs=!1,g}function lr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&Ri(t,n,o)}l=l.next}while(l!==r)}}function Zl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Li(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Sf(e){var t=e.alternate;t!==null&&(e.alternate=null,Sf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Xe],delete t[gr],delete t[hi],delete t[qp],delete t[bp])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function xf(e){return e.tag===5||e.tag===3||e.tag===4}function Ys(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||xf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ni(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Sl));else if(r!==4&&(e=e.child,e!==null))for(Ni(e,t,n),e=e.sibling;e!==null;)Ni(e,t,n),e=e.sibling}function Oi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Oi(e,t,n),e=e.sibling;e!==null;)Oi(e,t,n),e=e.sibling}var oe=null,je=!1;function ht(e,t,n){for(n=n.child;n!==null;)kf(e,t,n),n=n.sibling}function kf(e,t,n){if(Ge&&typeof Ge.onCommitFiberUnmount=="function")try{Ge.onCommitFiberUnmount(Vl,n)}catch{}switch(n.tag){case 5:ce||mn(n,t);case 6:var r=oe,l=je;oe=null,ht(e,t,n),oe=r,je=l,oe!==null&&(je?(e=oe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):oe.removeChild(n.stateNode));break;case 18:oe!==null&&(je?(e=oe,n=n.stateNode,e.nodeType===8?No(e.parentNode,n):e.nodeType===1&&No(e,n),dr(e)):No(oe,n.stateNode));break;case 4:r=oe,l=je,oe=n.stateNode.containerInfo,je=!0,ht(e,t,n),oe=r,je=l;break;case 0:case 11:case 14:case 15:if(!ce&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&Ri(n,t,i),l=l.next}while(l!==r)}ht(e,t,n);break;case 1:if(!ce&&(mn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){K(n,t,u)}ht(e,t,n);break;case 21:ht(e,t,n);break;case 22:n.mode&1?(ce=(r=ce)||n.memoizedState!==null,ht(e,t,n),ce=r):ht(e,t,n);break;default:ht(e,t,n)}}function Gs(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new mh),t.forEach(function(r){var l=Ph.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ae(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=G()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*yh(r/1960))-r,10e?16:e,St===null)var r=!1;else{if(e=St,St=null,Ml=0,D&6)throw Error(E(331));var l=D;for(D|=4,L=e.current;L!==null;){var o=L,i=o.child;if(L.flags&16){var u=o.deletions;if(u!==null){for(var s=0;sG()-Lu?Kt(e,0):Ru|=n),Se(e,t)}function Of(e,t){t===0&&(e.mode&1?(t=$r,$r<<=1,!($r&130023424)&&($r=4194304)):t=1);var n=pe();e=ut(e,t),e!==null&&(Lr(e,t,n),Se(e,n))}function Ch(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Of(e,n)}function Ph(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(E(314))}r!==null&&r.delete(t),Of(e,n)}var Tf;Tf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ye.current)ge=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ge=!1,dh(e,t,n);ge=!!(e.flags&131072)}else ge=!1,$&&t.flags&1048576&&Dc(t,Cl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ul(e,t),e=t.pendingProps;var l=Pn(t,fe.current);xn(t,n),l=xu(null,t,r,e,l,n);var o=ku();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,we(r)?(o=!0,kl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,vu(t),l.updater=Jl,t.stateNode=l,l._reactInternals=t,Si(t,r,e,n),t=Ei(null,t,r,!0,o,n)):(t.tag=0,$&&o&&au(t),de(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ul(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Rh(r),e=Ie(r,e),l){case 0:t=ki(null,t,r,e,n);break e;case 1:t=Hs(null,t,r,e,n);break e;case 11:t=Ws(null,t,r,e,n);break e;case 14:t=Vs(null,t,r,Ie(r.type,e),n);break e}throw Error(E(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),ki(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),Hs(e,t,r,l,n);case 3:e:{if(hf(t),e===null)throw Error(E(387));r=t.pendingProps,o=t.memoizedState,l=o.element,$c(e,t),Rl(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=Nn(Error(E(423)),t),t=Qs(e,t,r,n,l);break e}else if(r!==l){l=Nn(Error(E(424)),t),t=Qs(e,t,r,n,l);break e}else for(Ee=Pt(t.stateNode.containerInfo.firstChild),Ce=t,$=!0,Ue=null,n=jc(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(_n(),r===l){t=st(e,t,n);break e}de(e,t,r,n)}t=t.child}return t;case 5:return Bc(t),e===null&&gi(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,di(r,l)?i=null:o!==null&&di(r,o)&&(t.flags|=32),pf(e,t),de(e,t,i,n),t.child;case 6:return e===null&&gi(t),null;case 13:return mf(e,t,n);case 4:return gu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Rn(t,null,r,n):de(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),Ws(e,t,r,l,n);case 7:return de(e,t,t.pendingProps,n),t.child;case 8:return de(e,t,t.pendingProps.children,n),t.child;case 12:return de(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,I(Pl,r._currentValue),r._currentValue=i,o!==null)if(We(o.value,i)){if(o.children===l.children&&!ye.current){t=st(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=lt(-1,n&-n),s.tag=2;var a=o.updateQueue;if(a!==null){a=a.shared;var d=a.pending;d===null?s.next=s:(s.next=d.next,d.next=s),a.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),yi(o.return,n,t),u.lanes|=n;break}s=s.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(E(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),yi(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}de(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,xn(t,n),l=De(l),r=r(l),t.flags|=1,de(e,t,r,n),t.child;case 14:return r=t.type,l=Ie(r,t.pendingProps),l=Ie(r.type,l),Vs(e,t,r,l,n);case 15:return ff(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),ul(e,t),t.tag=1,we(r)?(e=!0,kl(t)):e=!1,xn(t,n),sf(t,r,l),Si(t,r,l,n),Ei(null,t,r,!0,e,n);case 19:return vf(e,t,n);case 22:return df(e,t,n)}throw Error(E(156,t.tag))};function zf(e,t){return lc(e,t)}function _h(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ze(e,t,n,r){return new _h(e,t,n,r)}function zu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Rh(e){if(typeof e=="function")return zu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Zi)return 11;if(e===qi)return 14}return 2}function Nt(e,t){var n=e.alternate;return n===null?(n=ze(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function cl(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")zu(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case on:return Xt(n.children,l,o,t);case Ji:i=8,l|=8;break;case Ho:return e=ze(12,n,t,l|2),e.elementType=Ho,e.lanes=o,e;case Qo:return e=ze(13,n,t,l),e.elementType=Qo,e.lanes=o,e;case Ko:return e=ze(19,n,t,l),e.elementType=Ko,e.lanes=o,e;case Ba:return bl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Ua:i=10;break e;case $a:i=9;break e;case Zi:i=11;break e;case qi:i=14;break e;case mt:i=16,r=null;break e}throw Error(E(130,e==null?e:typeof e,""))}return t=ze(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function Xt(e,t,n,r){return e=ze(7,e,r,t),e.lanes=n,e}function bl(e,t,n,r){return e=ze(22,e,r,t),e.elementType=Ba,e.lanes=n,e.stateNode={isHidden:!1},e}function Io(e,t,n){return e=ze(6,e,null,t),e.lanes=n,e}function jo(e,t,n){return t=ze(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Lh(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=yo(0),this.expirationTimes=yo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yo(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Mu(e,t,n,r,l,o,i,u,s){return e=new Lh(e,t,n,u,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=ze(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},vu(o),e}function Nh(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Af)}catch(e){console.error(e)}}Af(),Fa.exports=Re;var Iu=Fa.exports;const Fv=Ea(Iu);var ra=Iu;Zu.createRoot=ra.createRoot,Zu.hydrateRoot=ra.hydrateRoot;/**
+ * @remix-run/router v1.23.3
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function Cr(){return Cr=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function ju(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Fh(){return Math.random().toString(36).substr(2,8)}function oa(e,t){return{usr:e.state,key:e.key,idx:t}}function Fi(e,t,n,r){return n===void 0&&(n=null),Cr({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?An(t):t,{state:n,key:t&&t.key||r||Fh()})}function Al(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function An(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Ah(e,t,n,r){r===void 0&&(r={});let{window:l=document.defaultView,v5Compat:o=!1}=r,i=l.history,u=xt.Pop,s=null,a=d();a==null&&(a=0,i.replaceState(Cr({},i.state,{idx:a}),""));function d(){return(i.state||{idx:null}).idx}function f(){u=xt.Pop;let S=d(),p=S==null?null:S-a;a=S,s&&s({action:u,location:w.location,delta:p})}function m(S,p){u=xt.Push;let c=Fi(w.location,S,p);a=d()+1;let h=oa(c,a),y=w.createHref(c);try{i.pushState(h,"",y)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;l.location.assign(y)}o&&s&&s({action:u,location:w.location,delta:1})}function v(S,p){u=xt.Replace;let c=Fi(w.location,S,p);a=d();let h=oa(c,a),y=w.createHref(c);i.replaceState(h,"",y),o&&s&&s({action:u,location:w.location,delta:0})}function g(S){let p=l.location.origin!=="null"?l.location.origin:l.location.href,c=typeof S=="string"?S:Al(S);return c=c.replace(/ $/,"%20"),V(p,"No window.location.(origin|href) available to create URL for href: "+c),new URL(c,p)}let w={get action(){return u},get location(){return e(l,i)},listen(S){if(s)throw new Error("A history only accepts one active listener");return l.addEventListener(la,f),s=S,()=>{l.removeEventListener(la,f),s=null}},createHref(S){return t(l,S)},createURL:g,encodeLocation(S){let p=g(S);return{pathname:p.pathname,search:p.search,hash:p.hash}},push:m,replace:v,go(S){return i.go(S)}};return w}var ia;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ia||(ia={}));function Ih(e,t,n){return n===void 0&&(n="/"),jh(e,t,n)}function jh(e,t,n,r){let l=typeof t=="string"?An(t):t,o=Tn(l.pathname||"/",n);if(o==null)return null;let i=If(e);Uh(i);let u=null,s=Jh(o);for(let a=0;u==null&&a{let s={relativePath:u===void 0?o.path||"":u,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};s.relativePath.startsWith("/")&&(V(s.relativePath.startsWith(r),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(r.length));let a=Ot([r,s.relativePath]),d=n.concat(s);o.children&&o.children.length>0&&(V(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+a+'".')),If(o.children,t,d,a)),!(o.path==null&&!o.index)&&t.push({path:a,score:Kh(a,o.index),routesMeta:d})};return e.forEach((o,i)=>{var u;if(o.path===""||!((u=o.path)!=null&&u.includes("?")))l(o,i);else for(let s of jf(o.path))l(o,i,s)}),t}function jf(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return l?[o,""]:[o];let i=jf(r.join("/")),u=[];return u.push(...i.map(s=>s===""?o:[o,s].join("/"))),l&&u.push(...i),u.map(s=>e.startsWith("/")&&s===""?"/":s)}function Uh(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Xh(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const $h=/^:[\w-]+$/,Bh=3,Wh=2,Vh=1,Hh=10,Qh=-2,ua=e=>e==="*";function Kh(e,t){let n=e.split("/"),r=n.length;return n.some(ua)&&(r+=Qh),t&&(r+=Wh),n.filter(l=>!ua(l)).reduce((l,o)=>l+($h.test(o)?Bh:o===""?Vh:Hh),r)}function Xh(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function Yh(e,t,n){let{routesMeta:r}=e,l={},o="/",i=[];for(let u=0;u{let{paramName:m,isOptional:v}=d;if(m==="*"){let w=u[f]||"";i=o.slice(0,o.length-w.length).replace(/(.)\/+$/,"$1")}const g=u[f];return v&&!g?a[m]=void 0:a[m]=(g||"").replace(/%2F/g,"/"),a},{}),pathname:o,pathnameBase:i,pattern:e}}function Gh(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),ju(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,u,s)=>(r.push({paramName:u,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),r]}function Jh(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ju(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Tn(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}const Zh=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,qh=e=>Zh.test(e);function bh(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:l=""}=typeof e=="string"?An(e):e,o;if(n)if(qh(n))o=n;else{if(n.includes("//")){let i=n;n=Uf(n),ju(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+n))}n.startsWith("/")?o=sa(n.substring(1),"/"):o=sa(n,t)}else o=t;return{pathname:o,search:nm(r),hash:rm(l)}}function sa(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?n.length>1&&n.pop():l!=="."&&n.push(l)}),n.length>1?n.join("/"):"/"}function Uo(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function em(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Uu(e,t){let n=em(e);return t?n.map((r,l)=>l===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function $u(e,t,n,r){r===void 0&&(r=!1);let l;typeof e=="string"?l=An(e):(l=Cr({},e),V(!l.pathname||!l.pathname.includes("?"),Uo("?","pathname","search",l)),V(!l.pathname||!l.pathname.includes("#"),Uo("#","pathname","hash",l)),V(!l.search||!l.search.includes("#"),Uo("#","search","hash",l)));let o=e===""||l.pathname==="",i=o?"/":l.pathname,u;if(i==null)u=n;else{let f=t.length-1;if(!r&&i.startsWith("..")){let m=i.split("/");for(;m[0]==="..";)m.shift(),f-=1;l.pathname=m.join("/")}u=f>=0?t[f]:"/"}let s=bh(l,u),a=i&&i!=="/"&&i.endsWith("/"),d=(o||i===".")&&n.endsWith("/");return!s.pathname.endsWith("/")&&(a||d)&&(s.pathname+="/"),s}const Uf=e=>e.replace(/\/\/+/g,"/"),Ot=e=>Uf(e.join("/")),tm=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),nm=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,rm=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function lm(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const $f=["post","put","patch","delete"];new Set($f);const om=["get",...$f];new Set(om);/**
+ * React Router v6.30.4
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function Pr(){return Pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t{u.current=!0}),k.useCallback(function(a,d){if(d===void 0&&(d={}),!u.current)return;if(typeof a=="number"){r.go(a);return}let f=$u(a,JSON.parse(i),o,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Ot([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,i,o,e])}const Hf=k.createContext(null);function Av(){return k.useContext(Hf)}function sm(e){let t=k.useContext(qe).outlet;return t&&k.createElement(Hf.Provider,{value:e},t)}function Iv(){let{matches:e}=k.useContext(qe),t=e[e.length-1];return t?t.params:{}}function io(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=k.useContext(dt),{matches:l}=k.useContext(qe),{pathname:o}=nn(),i=JSON.stringify(Uu(l,r.v7_relativeSplatPath));return k.useMemo(()=>$u(e,JSON.parse(i),o,n==="path"),[e,i,o,n])}function am(e,t){return cm(e,t)}function cm(e,t,n,r){In()||V(!1);let{navigator:l}=k.useContext(dt),{matches:o}=k.useContext(qe),i=o[o.length-1],u=i?i.params:{};i&&i.pathname;let s=i?i.pathnameBase:"/";i&&i.route;let a=nn(),d;if(t){var f;let S=typeof t=="string"?An(t):t;s==="/"||(f=S.pathname)!=null&&f.startsWith(s)||V(!1),d=S}else d=a;let m=d.pathname||"/",v=m;if(s!=="/"){let S=s.replace(/^\//,"").split("/");v="/"+m.replace(/^\//,"").split("/").slice(S.length).join("/")}let g=Ih(e,{pathname:v}),w=mm(g&&g.map(S=>Object.assign({},S,{params:Object.assign({},u,S.params),pathname:Ot([s,l.encodeLocation?l.encodeLocation(S.pathname).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?s:Ot([s,l.encodeLocation?l.encodeLocation(S.pathnameBase).pathname:S.pathnameBase])})),o,n,r);return t&&w?k.createElement(oo.Provider,{value:{location:Pr({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:xt.Pop}},w):w}function fm(){let e=wm(),t=lm(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return k.createElement(k.Fragment,null,k.createElement("h2",null,"Unexpected Application Error!"),k.createElement("h3",{style:{fontStyle:"italic"}},t),n?k.createElement("pre",{style:l},n):null,null)}const dm=k.createElement(fm,null);class pm extends k.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?k.createElement(qe.Provider,{value:this.props.routeContext},k.createElement(Wf.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function hm(e){let{routeContext:t,match:n,children:r}=e,l=k.useContext(lo);return l&&l.static&&l.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=n.route.id),k.createElement(qe.Provider,{value:t},r)}function mm(e,t,n,r){var l;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,u=(l=n)==null?void 0:l.errors;if(u!=null){let d=i.findIndex(f=>f.route.id&&(u==null?void 0:u[f.route.id])!==void 0);d>=0||V(!1),i=i.slice(0,Math.min(i.length,d+1))}let s=!1,a=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?i=i.slice(0,a+1):i=[i[0]];break}}}return i.reduceRight((d,f,m)=>{let v,g=!1,w=null,S=null;n&&(v=u&&f.route.id?u[f.route.id]:void 0,w=f.route.errorElement||dm,s&&(a<0&&m===0?(xm("route-fallback"),g=!0,S=null):a===m&&(g=!0,S=f.route.hydrateFallbackElement||null)));let p=t.concat(i.slice(0,m+1)),c=()=>{let h;return v?h=w:g?h=S:f.route.Component?h=k.createElement(f.route.Component,null):f.route.element?h=f.route.element:h=d,k.createElement(hm,{match:f,routeContext:{outlet:d,matches:p,isDataRoute:n!=null},children:h})};return n&&(f.route.ErrorBoundary||f.route.errorElement||m===0)?k.createElement(pm,{location:n.location,revalidation:n.revalidation,component:w,error:v,children:c(),routeContext:{outlet:null,matches:p,isDataRoute:!0}}):c()},null)}var Qf=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Qf||{}),Kf=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Kf||{});function vm(e){let t=k.useContext(lo);return t||V(!1),t}function gm(e){let t=k.useContext(Bf);return t||V(!1),t}function ym(e){let t=k.useContext(qe);return t||V(!1),t}function Xf(e){let t=ym(),n=t.matches[t.matches.length-1];return n.route.id||V(!1),n.route.id}function wm(){var e;let t=k.useContext(Wf),n=gm(),r=Xf();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function Sm(){let{router:e}=vm(Qf.UseNavigateStable),t=Xf(Kf.UseNavigateStable),n=k.useRef(!1);return Vf(()=>{n.current=!0}),k.useCallback(function(l,o){o===void 0&&(o={}),n.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,Pr({fromRouteId:t},o)))},[e,t])}const aa={};function xm(e,t,n){aa[e]||(aa[e]=!0)}function km(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function jv(e){let{to:t,replace:n,state:r,relative:l}=e;In()||V(!1);let{future:o,static:i}=k.useContext(dt),{matches:u}=k.useContext(qe),{pathname:s}=nn(),a=Bu(),d=$u(t,Uu(u,o.v7_relativeSplatPath),s,l==="path"),f=JSON.stringify(d);return k.useEffect(()=>a(JSON.parse(f),{replace:n,state:r,relative:l}),[a,f,l,n,r]),null}function Uv(e){return sm(e.context)}function Em(e){V(!1)}function Cm(e){let{basename:t="/",children:n=null,location:r,navigationType:l=xt.Pop,navigator:o,static:i=!1,future:u}=e;In()&&V(!1);let s=t.replace(/^\/*/,"/"),a=k.useMemo(()=>({basename:s,navigator:o,static:i,future:Pr({v7_relativeSplatPath:!1},u)}),[s,u,o,i]);typeof r=="string"&&(r=An(r));let{pathname:d="/",search:f="",hash:m="",state:v=null,key:g="default"}=r,w=k.useMemo(()=>{let S=Tn(d,s);return S==null?null:{location:{pathname:S,search:f,hash:m,state:v,key:g},navigationType:l}},[s,d,f,m,v,g,l]);return w==null?null:k.createElement(dt.Provider,{value:a},k.createElement(oo.Provider,{children:n,value:w}))}function $v(e){let{children:t,location:n}=e;return am(Ii(t),n)}new Promise(()=>{});function Ii(e,t){t===void 0&&(t=[]);let n=[];return k.Children.forEach(e,(r,l)=>{if(!k.isValidElement(r))return;let o=[...t,l];if(r.type===k.Fragment){n.push.apply(n,Ii(r.props.children,o));return}r.type!==Em&&V(!1),!r.props.index||!r.props.children||V(!1);let i={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=Ii(r.props.children,o)),n.push(i)}),n}/**
+ * React Router DOM v6.30.4
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */function Il(){return Il=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let r=e[n];return t.concat(Array.isArray(r)?r.map(l=>[n,l]):[[n,r]])},[]))}function Rm(e,t){let n=ji(e);return t&&t.forEach((r,l)=>{n.has(l)||t.getAll(l).forEach(o=>{n.append(l,o)})}),n}const Lm=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Nm=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],Om="6";try{window.__reactRouterVersion=Om}catch{}const Tm=k.createContext({isTransitioning:!1}),zm="startTransition",ca=Ed[zm];function Bv(e){let{basename:t,children:n,future:r,window:l}=e,o=k.useRef();o.current==null&&(o.current=Dh({window:l,v5Compat:!0}));let i=o.current,[u,s]=k.useState({action:i.action,location:i.location}),{v7_startTransition:a}=r||{},d=k.useCallback(f=>{a&&ca?ca(()=>s(f)):s(f)},[s,a]);return k.useLayoutEffect(()=>i.listen(d),[i,d]),k.useEffect(()=>km(r),[r]),k.createElement(Cm,{basename:t,children:n,location:u.location,navigationType:u.action,navigator:i,future:r})}const Mm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Dm=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Fm=k.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:o,replace:i,state:u,target:s,to:a,preventScrollReset:d,viewTransition:f}=t,m=Yf(t,Lm),{basename:v}=k.useContext(dt),g,w=!1;if(typeof a=="string"&&Dm.test(a)&&(g=a,Mm))try{let h=new URL(window.location.href),y=a.startsWith("//")?new URL(h.protocol+a):new URL(a),x=Tn(y.pathname,v);y.origin===h.origin&&x!=null?a=x+y.search+y.hash:w=!0}catch{}let S=im(a,{relative:l}),p=Im(a,{replace:i,state:u,target:s,preventScrollReset:d,relative:l,viewTransition:f});function c(h){r&&r(h),h.defaultPrevented||p(h)}return k.createElement("a",Il({},m,{href:g||S,onClick:w||o?r:c,ref:n,target:s}))}),Wv=k.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:l=!1,className:o="",end:i=!1,style:u,to:s,viewTransition:a,children:d}=t,f=Yf(t,Nm),m=io(s,{relative:f.relative}),v=nn(),g=k.useContext(Bf),{navigator:w,basename:S}=k.useContext(dt),p=g!=null&&jm(m)&&a===!0,c=w.encodeLocation?w.encodeLocation(m).pathname:m.pathname,h=v.pathname,y=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;l||(h=h.toLowerCase(),y=y?y.toLowerCase():null,c=c.toLowerCase()),y&&S&&(y=Tn(y,S)||y);const x=c!=="/"&&c.endsWith("/")?c.length-1:c.length;let P=h===c||!i&&h.startsWith(c)&&h.charAt(x)==="/",_=y!=null&&(y===c||!i&&y.startsWith(c)&&y.charAt(c.length)==="/"),R={isActive:P,isPending:_,isTransitioning:p},M=P?r:void 0,N;typeof o=="function"?N=o(R):N=[o,P?"active":null,_?"pending":null,p?"transitioning":null].filter(Boolean).join(" ");let A=typeof u=="function"?u(R):u;return k.createElement(Fm,Il({},f,{"aria-current":M,className:N,ref:n,style:A,to:s,viewTransition:a}),typeof d=="function"?d(R):d)});var Ui;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Ui||(Ui={}));var fa;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(fa||(fa={}));function Am(e){let t=k.useContext(lo);return t||V(!1),t}function Im(e,t){let{target:n,replace:r,state:l,preventScrollReset:o,relative:i,viewTransition:u}=t===void 0?{}:t,s=Bu(),a=nn(),d=io(e,{relative:i});return k.useCallback(f=>{if(_m(f,n)){f.preventDefault();let m=r!==void 0?r:Al(a)===Al(d);s(e,{replace:m,state:l,preventScrollReset:o,relative:i,viewTransition:u})}},[a,s,d,r,l,n,e,o,i,u])}function Vv(e){let t=k.useRef(ji(e)),n=k.useRef(!1),r=nn(),l=k.useMemo(()=>Rm(r.search,n.current?null:t.current),[r.search]),o=Bu(),i=k.useCallback((u,s)=>{const a=ji(typeof u=="function"?u(l):u);n.current=!0,o("?"+a,s)},[o,l]);return[l,i]}function jm(e,t){t===void 0&&(t={});let n=k.useContext(Tm);n==null&&V(!1);let{basename:r}=Am(Ui.useViewTransitionState),l=io(e,{relative:t.relative});if(!n.isTransitioning)return!1;let o=Tn(n.currentLocation.pathname,r)||n.currentLocation.pathname,i=Tn(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Ai(l.pathname,i)!=null||Ai(l.pathname,o)!=null}const Um=["top","right","bottom","left"],Mt=Math.min,ke=Math.max,jl=Math.round,qr=Math.floor,Ze=e=>({x:e,y:e}),$m={left:"right",right:"left",bottom:"top",top:"bottom"};function $i(e,t,n){return ke(e,Mt(t,n))}function at(e,t){return typeof e=="function"?e(t):e}function ct(e){return e.split("-")[0]}function jn(e){return e.split("-")[1]}function Wu(e){return e==="x"?"y":"x"}function Vu(e){return e==="y"?"height":"width"}function Ye(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Hu(e){return Wu(Ye(e))}function Bm(e,t,n){n===void 0&&(n=!1);const r=jn(e),l=Hu(e),o=Vu(l);let i=l==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(i=Ul(i)),[i,Ul(i)]}function Wm(e){const t=Ul(e);return[Bi(e),t,Bi(t)]}function Bi(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const da=["left","right"],pa=["right","left"],Vm=["top","bottom"],Hm=["bottom","top"];function Qm(e,t,n){switch(e){case"top":case"bottom":return n?t?pa:da:t?da:pa;case"left":case"right":return t?Vm:Hm;default:return[]}}function Km(e,t,n,r){const l=jn(e);let o=Qm(ct(e),n==="start",r);return l&&(o=o.map(i=>i+"-"+l),t&&(o=o.concat(o.map(Bi)))),o}function Ul(e){const t=ct(e);return $m[t]+e.slice(t.length)}function Xm(e){return{top:0,right:0,bottom:0,left:0,...e}}function Gf(e){return typeof e!="number"?Xm(e):{top:e,right:e,bottom:e,left:e}}function $l(e){const{x:t,y:n,width:r,height:l}=e;return{width:r,height:l,top:n,left:t,right:t+r,bottom:n+l,x:t,y:n}}function ha(e,t,n){let{reference:r,floating:l}=e;const o=Ye(t),i=Hu(t),u=Vu(i),s=ct(t),a=o==="y",d=r.x+r.width/2-l.width/2,f=r.y+r.height/2-l.height/2,m=r[u]/2-l[u]/2;let v;switch(s){case"top":v={x:d,y:r.y-l.height};break;case"bottom":v={x:d,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-l.width,y:f};break;default:v={x:r.x,y:r.y}}switch(jn(t)){case"start":v[i]-=m*(n&&a?-1:1);break;case"end":v[i]+=m*(n&&a?-1:1);break}return v}async function Ym(e,t){var n;t===void 0&&(t={});const{x:r,y:l,platform:o,rects:i,elements:u,strategy:s}=e,{boundary:a="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:m=!1,padding:v=0}=at(t,e),g=Gf(v),S=u[m?f==="floating"?"reference":"floating":f],p=$l(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(S)))==null||n?S:S.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(u.floating)),boundary:a,rootBoundary:d,strategy:s})),c=f==="floating"?{x:r,y:l,width:i.floating.width,height:i.floating.height}:i.reference,h=await(o.getOffsetParent==null?void 0:o.getOffsetParent(u.floating)),y=await(o.isElement==null?void 0:o.isElement(h))?await(o.getScale==null?void 0:o.getScale(h))||{x:1,y:1}:{x:1,y:1},x=$l(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:c,offsetParent:h,strategy:s}):c);return{top:(p.top-x.top+g.top)/y.y,bottom:(x.bottom-p.bottom+g.bottom)/y.y,left:(p.left-x.left+g.left)/y.x,right:(x.right-p.right+g.right)/y.x}}const Gm=50,Jm=async(e,t,n)=>{const{placement:r="bottom",strategy:l="absolute",middleware:o=[],platform:i}=n,u=i.detectOverflow?i:{...i,detectOverflow:Ym},s=await(i.isRTL==null?void 0:i.isRTL(t));let a=await i.getElementRects({reference:e,floating:t,strategy:l}),{x:d,y:f}=ha(a,r,s),m=r,v=0;const g={};for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:l,rects:o,platform:i,elements:u,middlewareData:s}=t,{element:a,padding:d=0}=at(e,t)||{};if(a==null)return{};const f=Gf(d),m={x:n,y:r},v=Hu(l),g=Vu(v),w=await i.getDimensions(a),S=v==="y",p=S?"top":"left",c=S?"bottom":"right",h=S?"clientHeight":"clientWidth",y=o.reference[g]+o.reference[v]-m[v]-o.floating[g],x=m[v]-o.reference[v],P=await(i.getOffsetParent==null?void 0:i.getOffsetParent(a));let _=P?P[h]:0;(!_||!await(i.isElement==null?void 0:i.isElement(P)))&&(_=u.floating[h]||o.floating[g]);const R=y/2-x/2,M=_/2-w[g]/2-1,N=Mt(f[p],M),A=Mt(f[c],M),q=N,J=_-w[g]-A,Q=_/2-w[g]/2+R,Ne=$i(q,Q,J),X=!s.arrow&&jn(l)!=null&&Q!==Ne&&o.reference[g]/2-(QQ<=0)){var A,q;const Q=(((A=o.flip)==null?void 0:A.index)||0)+1,Ne=_[Q];if(Ne&&(!(f==="alignment"?c!==Ye(Ne):!1)||N.every(C=>Ye(C.placement)===c?C.overflows[0]>0:!0)))return{data:{index:Q,overflows:N},reset:{placement:Ne}};let X=(q=N.filter(te=>te.overflows[0]<=0).sort((te,C)=>te.overflows[1]-C.overflows[1])[0])==null?void 0:q.placement;if(!X)switch(v){case"bestFit":{var J;const te=(J=N.filter(C=>{if(P){const O=Ye(C.placement);return O===c||O==="y"}return!0}).map(C=>[C.placement,C.overflows.filter(O=>O>0).reduce((O,T)=>O+T,0)]).sort((C,O)=>C[1]-O[1])[0])==null?void 0:J[0];te&&(X=te);break}case"initialPlacement":X=u;break}if(l!==X)return{reset:{placement:X}}}return{}}}};function ma(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function va(e){return Um.some(t=>e[t]>=0)}const bm=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:l="referenceHidden",...o}=at(e,t);switch(l){case"referenceHidden":{const i=await r.detectOverflow(t,{...o,elementContext:"reference"}),u=ma(i,n.reference);return{data:{referenceHiddenOffsets:u,referenceHidden:va(u)}}}case"escaped":{const i=await r.detectOverflow(t,{...o,altBoundary:!0}),u=ma(i,n.floating);return{data:{escapedOffsets:u,escaped:va(u)}}}default:return{}}}}},Jf=new Set(["left","top"]);async function ev(e,t){const{placement:n,platform:r,elements:l}=e,o=await(r.isRTL==null?void 0:r.isRTL(l.floating)),i=ct(n),u=jn(n),s=Ye(n)==="y",a=Jf.has(i)?-1:1,d=o&&s?-1:1,f=at(t,e);let{mainAxis:m,crossAxis:v,alignmentAxis:g}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return u&&typeof g=="number"&&(v=u==="end"?g*-1:g),s?{x:v*d,y:m*a}:{x:m*a,y:v*d}}const tv=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:l,y:o,placement:i,middlewareData:u}=t,s=await ev(t,e);return i===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:l+s.x,y:o+s.y,data:{...s,placement:i}}}}},nv=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:l,platform:o}=t,{mainAxis:i=!0,crossAxis:u=!1,limiter:s={fn:p=>{let{x:c,y:h}=p;return{x:c,y:h}}},...a}=at(e,t),d={x:n,y:r},f=await o.detectOverflow(t,a),m=Ye(ct(l)),v=Wu(m);let g=d[v],w=d[m];if(i){const p=v==="y"?"top":"left",c=v==="y"?"bottom":"right",h=g+f[p],y=g-f[c];g=$i(h,g,y)}if(u){const p=m==="y"?"top":"left",c=m==="y"?"bottom":"right",h=w+f[p],y=w-f[c];w=$i(h,w,y)}const S=s.fn({...t,[v]:g,[m]:w});return{...S,data:{x:S.x-n,y:S.y-r,enabled:{[v]:i,[m]:u}}}}}},rv=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:l,rects:o,middlewareData:i}=t,{offset:u=0,mainAxis:s=!0,crossAxis:a=!0}=at(e,t),d={x:n,y:r},f=Ye(l),m=Wu(f);let v=d[m],g=d[f];const w=at(u,t),S=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(s){const h=m==="y"?"height":"width",y=o.reference[m]-o.floating[h]+S.mainAxis,x=o.reference[m]+o.reference[h]-S.mainAxis;vx&&(v=x)}if(a){var p,c;const h=m==="y"?"width":"height",y=Jf.has(ct(l)),x=o.reference[f]-o.floating[h]+(y&&((p=i.offset)==null?void 0:p[f])||0)+(y?0:S.crossAxis),P=o.reference[f]+o.reference[h]+(y?0:((c=i.offset)==null?void 0:c[f])||0)-(y?S.crossAxis:0);gP&&(g=P)}return{[m]:v,[f]:g}}}},lv=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:l,rects:o,platform:i,elements:u}=t,{apply:s=()=>{},...a}=at(e,t),d=await i.detectOverflow(t,a),f=ct(l),m=jn(l),v=Ye(l)==="y",{width:g,height:w}=o.floating;let S,p;f==="top"||f==="bottom"?(S=f,p=m===(await(i.isRTL==null?void 0:i.isRTL(u.floating))?"start":"end")?"left":"right"):(p=f,S=m==="end"?"top":"bottom");const c=w-d.top-d.bottom,h=g-d.left-d.right,y=Mt(w-d[S],c),x=Mt(g-d[p],h),P=!t.middlewareData.shift;let _=y,R=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(R=h),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(_=c),P&&!m){const N=ke(d.left,0),A=ke(d.right,0),q=ke(d.top,0),J=ke(d.bottom,0);v?R=g-2*(N!==0||A!==0?N+A:ke(d.left,d.right)):_=w-2*(q!==0||J!==0?q+J:ke(d.top,d.bottom))}await s({...t,availableWidth:R,availableHeight:_});const M=await i.getDimensions(u.floating);return g!==M.width||w!==M.height?{reset:{rects:!0}}:{}}}};function uo(){return typeof window<"u"}function Un(e){return Zf(e)?(e.nodeName||"").toLowerCase():"#document"}function Pe(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function be(e){var t;return(t=(Zf(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Zf(e){return uo()?e instanceof Node||e instanceof Pe(e).Node:!1}function Ve(e){return uo()?e instanceof Element||e instanceof Pe(e).Element:!1}function pt(e){return uo()?e instanceof HTMLElement||e instanceof Pe(e).HTMLElement:!1}function ga(e){return!uo()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Pe(e).ShadowRoot}function zr(e){const{overflow:t,overflowX:n,overflowY:r,display:l}=He(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&l!=="inline"&&l!=="contents"}function ov(e){return/^(table|td|th)$/.test(Un(e))}function so(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const iv=/transform|translate|scale|rotate|perspective|filter/,uv=/paint|layout|strict|content/,$t=e=>!!e&&e!=="none";let $o;function Qu(e){const t=Ve(e)?He(e):e;return $t(t.transform)||$t(t.translate)||$t(t.scale)||$t(t.rotate)||$t(t.perspective)||!Ku()&&($t(t.backdropFilter)||$t(t.filter))||iv.test(t.willChange||"")||uv.test(t.contain||"")}function sv(e){let t=Dt(e);for(;pt(t)&&!zn(t);){if(Qu(t))return t;if(so(t))return null;t=Dt(t)}return null}function Ku(){return $o==null&&($o=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),$o}function zn(e){return/^(html|body|#document)$/.test(Un(e))}function He(e){return Pe(e).getComputedStyle(e)}function ao(e){return Ve(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Dt(e){if(Un(e)==="html")return e;const t=e.assignedSlot||e.parentNode||ga(e)&&e.host||be(e);return ga(t)?t.host:t}function qf(e){const t=Dt(e);return zn(t)?e.ownerDocument?e.ownerDocument.body:e.body:pt(t)&&zr(t)?t:qf(t)}function _r(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const l=qf(e),o=l===((r=e.ownerDocument)==null?void 0:r.body),i=Pe(l);if(o){const u=Wi(i);return t.concat(i,i.visualViewport||[],zr(l)?l:[],u&&n?_r(u):[])}else return t.concat(l,_r(l,[],n))}function Wi(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function bf(e){const t=He(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const l=pt(e),o=l?e.offsetWidth:n,i=l?e.offsetHeight:r,u=jl(n)!==o||jl(r)!==i;return u&&(n=o,r=i),{width:n,height:r,$:u}}function Xu(e){return Ve(e)?e:e.contextElement}function En(e){const t=Xu(e);if(!pt(t))return Ze(1);const n=t.getBoundingClientRect(),{width:r,height:l,$:o}=bf(t);let i=(o?jl(n.width):n.width)/r,u=(o?jl(n.height):n.height)/l;return(!i||!Number.isFinite(i))&&(i=1),(!u||!Number.isFinite(u))&&(u=1),{x:i,y:u}}const av=Ze(0);function ed(e){const t=Pe(e);return!Ku()||!t.visualViewport?av:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function cv(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Pe(e)?!1:t}function bt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const l=e.getBoundingClientRect(),o=Xu(e);let i=Ze(1);t&&(r?Ve(r)&&(i=En(r)):i=En(e));const u=cv(o,n,r)?ed(o):Ze(0);let s=(l.left+u.x)/i.x,a=(l.top+u.y)/i.y,d=l.width/i.x,f=l.height/i.y;if(o){const m=Pe(o),v=r&&Ve(r)?Pe(r):r;let g=m,w=Wi(g);for(;w&&r&&v!==g;){const S=En(w),p=w.getBoundingClientRect(),c=He(w),h=p.left+(w.clientLeft+parseFloat(c.paddingLeft))*S.x,y=p.top+(w.clientTop+parseFloat(c.paddingTop))*S.y;s*=S.x,a*=S.y,d*=S.x,f*=S.y,s+=h,a+=y,g=Pe(w),w=Wi(g)}}return $l({width:d,height:f,x:s,y:a})}function co(e,t){const n=ao(e).scrollLeft;return t?t.left+n:bt(be(e)).left+n}function td(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-co(e,n),l=n.top+t.scrollTop;return{x:r,y:l}}function fv(e){let{elements:t,rect:n,offsetParent:r,strategy:l}=e;const o=l==="fixed",i=be(r),u=t?so(t.floating):!1;if(r===i||u&&o)return n;let s={scrollLeft:0,scrollTop:0},a=Ze(1);const d=Ze(0),f=pt(r);if((f||!f&&!o)&&((Un(r)!=="body"||zr(i))&&(s=ao(r)),f)){const v=bt(r);a=En(r),d.x=v.x+r.clientLeft,d.y=v.y+r.clientTop}const m=i&&!f&&!o?td(i,s):Ze(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-s.scrollLeft*a.x+d.x+m.x,y:n.y*a.y-s.scrollTop*a.y+d.y+m.y}}function dv(e){return Array.from(e.getClientRects())}function pv(e){const t=be(e),n=ao(e),r=e.ownerDocument.body,l=ke(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=ke(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+co(e);const u=-n.scrollTop;return He(r).direction==="rtl"&&(i+=ke(t.clientWidth,r.clientWidth)-l),{width:l,height:o,x:i,y:u}}const ya=25;function hv(e,t){const n=Pe(e),r=be(e),l=n.visualViewport;let o=r.clientWidth,i=r.clientHeight,u=0,s=0;if(l){o=l.width,i=l.height;const d=Ku();(!d||d&&t==="fixed")&&(u=l.offsetLeft,s=l.offsetTop)}const a=co(r);if(a<=0){const d=r.ownerDocument,f=d.body,m=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,g=Math.abs(r.clientWidth-f.clientWidth-v);g<=ya&&(o-=g)}else a<=ya&&(o+=a);return{width:o,height:i,x:u,y:s}}function mv(e,t){const n=bt(e,!0,t==="fixed"),r=n.top+e.clientTop,l=n.left+e.clientLeft,o=pt(e)?En(e):Ze(1),i=e.clientWidth*o.x,u=e.clientHeight*o.y,s=l*o.x,a=r*o.y;return{width:i,height:u,x:s,y:a}}function wa(e,t,n){let r;if(t==="viewport")r=hv(e,n);else if(t==="document")r=pv(be(e));else if(Ve(t))r=mv(t,n);else{const l=ed(e);r={x:t.x-l.x,y:t.y-l.y,width:t.width,height:t.height}}return $l(r)}function nd(e,t){const n=Dt(e);return n===t||!Ve(n)||zn(n)?!1:He(n).position==="fixed"||nd(n,t)}function vv(e,t){const n=t.get(e);if(n)return n;let r=_r(e,[],!1).filter(u=>Ve(u)&&Un(u)!=="body"),l=null;const o=He(e).position==="fixed";let i=o?Dt(e):e;for(;Ve(i)&&!zn(i);){const u=He(i),s=Qu(i);!s&&u.position==="fixed"&&(l=null),(o?!s&&!l:!s&&u.position==="static"&&!!l&&(l.position==="absolute"||l.position==="fixed")||zr(i)&&!s&&nd(e,i))?r=r.filter(d=>d!==i):l=u,i=Dt(i)}return t.set(e,r),r}function gv(e){let{element:t,boundary:n,rootBoundary:r,strategy:l}=e;const i=[...n==="clippingAncestors"?so(t)?[]:vv(t,this._c):[].concat(n),r],u=wa(t,i[0],l);let s=u.top,a=u.right,d=u.bottom,f=u.left;for(let m=1;m{i(!1,1e-7)},1e3)}_===1&&!ld(a,e.getBoundingClientRect())&&i(),y=!1}try{n=new IntersectionObserver(x,{...h,root:l.ownerDocument})}catch{n=new IntersectionObserver(x,h)}n.observe(e)}return i(!0),o}function Hv(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:l=!0,ancestorResize:o=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:s=!1}=r,a=Xu(e),d=l||o?[...a?_r(a):[],...t?_r(t):[]]:[];d.forEach(p=>{l&&p.addEventListener("scroll",n,{passive:!0}),o&&p.addEventListener("resize",n)});const f=a&&u?Ev(a,n):null;let m=-1,v=null;i&&(v=new ResizeObserver(p=>{let[c]=p;c&&c.target===a&&v&&t&&(v.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var h;(h=v)==null||h.observe(t)})),n()}),a&&!s&&v.observe(a),t&&v.observe(t));let g,w=s?bt(e):null;s&&S();function S(){const p=bt(e);w&&!ld(w,p)&&n(),w=p,g=requestAnimationFrame(S)}return n(),()=>{var p;d.forEach(c=>{l&&c.removeEventListener("scroll",n),o&&c.removeEventListener("resize",n)}),f==null||f(),(p=v)==null||p.disconnect(),v=null,s&&cancelAnimationFrame(g)}}const Cv=tv,Pv=nv,_v=qm,Rv=lv,Lv=bm,xa=Zm,Nv=rv,Ov=(e,t,n)=>{const r=new Map,l={platform:kv,...n},o={...l.platform,_c:r};return Jm(e,t,{...l,platform:o})};var Tv=typeof document<"u",zv=function(){},fl=Tv?k.useLayoutEffect:zv;function Bl(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,l;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Bl(e[r],t[r]))return!1;return!0}if(l=Object.keys(e),n=l.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,l[r]))return!1;for(r=n;r--!==0;){const o=l[r];if(!(o==="_owner"&&e.$$typeof)&&!Bl(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function od(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ka(e,t){const n=od(e);return Math.round(t*n)/n}function Wo(e){const t=k.useRef(e);return fl(()=>{t.current=e}),t}function Qv(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:l,elements:{reference:o,floating:i}={},transform:u=!0,whileElementsMounted:s,open:a}=e,[d,f]=k.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,v]=k.useState(r);Bl(m,r)||v(r);const[g,w]=k.useState(null),[S,p]=k.useState(null),c=k.useCallback(C=>{C!==P.current&&(P.current=C,w(C))},[]),h=k.useCallback(C=>{C!==_.current&&(_.current=C,p(C))},[]),y=o||g,x=i||S,P=k.useRef(null),_=k.useRef(null),R=k.useRef(d),M=s!=null,N=Wo(s),A=Wo(l),q=Wo(a),J=k.useCallback(()=>{if(!P.current||!_.current)return;const C={placement:t,strategy:n,middleware:m};A.current&&(C.platform=A.current),Ov(P.current,_.current,C).then(O=>{const T={...O,isPositioned:q.current!==!1};Q.current&&!Bl(R.current,T)&&(R.current=T,Iu.flushSync(()=>{f(T)}))})},[m,t,n,A,q]);fl(()=>{a===!1&&R.current.isPositioned&&(R.current.isPositioned=!1,f(C=>({...C,isPositioned:!1})))},[a]);const Q=k.useRef(!1);fl(()=>(Q.current=!0,()=>{Q.current=!1}),[]),fl(()=>{if(y&&(P.current=y),x&&(_.current=x),y&&x){if(N.current)return N.current(y,x,J);J()}},[y,x,J,N,M]);const Ne=k.useMemo(()=>({reference:P,floating:_,setReference:c,setFloating:h}),[c,h]),X=k.useMemo(()=>({reference:y,floating:x}),[y,x]),te=k.useMemo(()=>{const C={position:n,left:0,top:0};if(!X.floating)return C;const O=ka(X.floating,d.x),T=ka(X.floating,d.y);return u?{...C,transform:"translate("+O+"px, "+T+"px)",...od(X.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:O,top:T}},[n,u,X.floating,d.x,d.y]);return k.useMemo(()=>({...d,update:J,refs:Ne,elements:X,floatingStyles:te}),[d,J,Ne,X,te])}const Mv=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:l}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?xa({element:r.current,padding:l}).fn(n):{}:r?xa({element:r,padding:l}).fn(n):{}}}},Kv=(e,t)=>{const n=Cv(e);return{name:n.name,fn:n.fn,options:[e,t]}},Xv=(e,t)=>{const n=Pv(e);return{name:n.name,fn:n.fn,options:[e,t]}},Yv=(e,t)=>({fn:Nv(e).fn,options:[e,t]}),Gv=(e,t)=>{const n=_v(e);return{name:n.name,fn:n.fn,options:[e,t]}},Jv=(e,t)=>{const n=Rv(e);return{name:n.name,fn:n.fn,options:[e,t]}},Zv=(e,t)=>{const n=Lv(e);return{name:n.name,fn:n.fn,options:[e,t]}},qv=(e,t)=>{const n=Mv(e);return{name:n.name,fn:n.fn,options:[e,t]}};export{Bv as B,Fm as L,Wv as N,Uv as O,Ed as R,Iu as a,Jv as b,qv as c,Hv as d,Bu as e,Gv as f,nn as g,Zv as h,Vv as i,Dv as j,kd as k,Yv as l,Fv as m,$v as n,Kv as o,Em as p,jv as q,k as r,Xv as s,Zu as t,Qv as u,Av as v,Iv as w};
diff --git a/embed_static/static/spa/assets/react-vendor-CgzNJrV9.js b/embed_static/static/spa/assets/react-vendor-CgzNJrV9.js
deleted file mode 100644
index 14c5318..0000000
--- a/embed_static/static/spa/assets/react-vendor-CgzNJrV9.js
+++ /dev/null
@@ -1,67 +0,0 @@
-function rd(e,t){for(var n=0;nr[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function ya(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wa={exports:{}},$l={},Sa={exports:{}},z={};/**
- * @license React
- * react.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Cr=Symbol.for("react.element"),ld=Symbol.for("react.portal"),od=Symbol.for("react.fragment"),id=Symbol.for("react.strict_mode"),ud=Symbol.for("react.profiler"),sd=Symbol.for("react.provider"),ad=Symbol.for("react.context"),cd=Symbol.for("react.forward_ref"),fd=Symbol.for("react.suspense"),dd=Symbol.for("react.memo"),pd=Symbol.for("react.lazy"),Wu=Symbol.iterator;function hd(e){return e===null||typeof e!="object"?null:(e=Wu&&e[Wu]||e["@@iterator"],typeof e=="function"?e:null)}var xa={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ka=Object.assign,Ea={};function Tn(e,t,n){this.props=e,this.context=t,this.refs=Ea,this.updater=n||xa}Tn.prototype.isReactComponent={};Tn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Tn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ca(){}Ca.prototype=Tn.prototype;function ji(e,t,n){this.props=e,this.context=t,this.refs=Ea,this.updater=n||xa}var Ui=ji.prototype=new Ca;Ui.constructor=ji;ka(Ui,Tn.prototype);Ui.isPureReactComponent=!0;var Vu=Array.isArray,Pa=Object.prototype.hasOwnProperty,$i={current:null},_a={key:!0,ref:!0,__self:!0,__source:!0};function Ra(e,t,n){var r,l={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)Pa.call(t,r)&&!_a.hasOwnProperty(r)&&(l[r]=t[r]);var u=arguments.length-2;if(u===1)l.children=n;else if(1>>1,ne=E[X];if(0>>1;Xl(uo,T))jtl(Mr,uo)?(E[X]=Mr,E[jt]=T,X=jt):(E[X]=uo,E[It]=T,X=It);else if(jtl(Mr,T))E[X]=Mr,E[jt]=T,X=jt;else break e}}return N}function l(E,N){var T=E.sortIndex-N.sortIndex;return T!==0?T:E.id-N.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,u=i.now();e.unstable_now=function(){return i.now()-u}}var s=[],a=[],p=1,f=null,m=3,v=!1,g=!1,w=!1,S=typeof setTimeout=="function"?setTimeout:null,d=typeof clearTimeout=="function"?clearTimeout:null,c=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function h(E){for(var N=n(a);N!==null;){if(N.callback===null)r(a);else if(N.startTime<=E)r(a),N.sortIndex=N.expirationTime,t(s,N);else break;N=n(a)}}function y(E){if(w=!1,h(E),!g)if(n(s)!==null)g=!0,K(x);else{var N=n(a);N!==null&&te(y,N.startTime-E)}}function x(E,N){g=!1,w&&(w=!1,d(R),R=-1),v=!0;var T=m;try{for(h(N),f=n(s);f!==null&&(!(f.expirationTime>N)||E&&!U());){var X=f.callback;if(typeof X=="function"){f.callback=null,m=f.priorityLevel;var ne=X(f.expirationTime<=N);N=e.unstable_now(),typeof ne=="function"?f.callback=ne:f===n(s)&&r(s),h(N)}else r(s);f=n(s)}if(f!==null)var zr=!0;else{var It=n(a);It!==null&&te(y,It.startTime-N),zr=!1}return zr}finally{f=null,m=T,v=!1}}var P=!1,_=null,R=-1,M=5,O=-1;function U(){return!(e.unstable_now()-OE||125X?(E.sortIndex=T,t(a,E),n(s)===null&&E===n(a)&&(w?(d(R),R=-1):w=!0,te(y,T-X))):(E.sortIndex=ne,t(s,E),g||v||(g=!0,K(x))),E},e.unstable_shouldYield=U,e.unstable_wrapCallback=function(E){var N=m;return function(){var T=m;m=N;try{return E.apply(this,arguments)}finally{m=T}}}})(za);Ta.exports=za;var Rd=Ta.exports;/**
- * @license React
- * react-dom.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Ld=C,_e=Rd;function k(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Uo=Object.prototype.hasOwnProperty,Nd=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ku={},Xu={};function Od(e){return Uo.call(Xu,e)?!0:Uo.call(Ku,e)?!1:Nd.test(e)?Xu[e]=!0:(Ku[e]=!0,!1)}function Td(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function zd(e,t,n,r){if(t===null||typeof t>"u"||Td(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function me(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var ue={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ue[e]=new me(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ue[t]=new me(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ue[e]=new me(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ue[e]=new me(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ue[e]=new me(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ue[e]=new me(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ue[e]=new me(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ue[e]=new me(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ue[e]=new me(e,5,!1,e.toLowerCase(),null,!1,!1)});var Wi=/[\-:]([a-z])/g;function Vi(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Wi,Vi);ue[t]=new me(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Wi,Vi);ue[t]=new me(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Wi,Vi);ue[t]=new me(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ue[e]=new me(e,1,!1,e.toLowerCase(),null,!1,!1)});ue.xlinkHref=new me("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ue[e]=new me(e,1,!1,e.toLowerCase(),null,!0,!0)});function Hi(e,t,n,r){var l=ue.hasOwnProperty(t)?ue[t]:null;(l!==null?l.type!==0:r||!(2u||l[i]!==o[u]){var s=`
-`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=u);break}}}finally{co=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Qn(e):""}function Md(e){switch(e.tag){case 5:return Qn(e.type);case 16:return Qn("Lazy");case 13:return Qn("Suspense");case 19:return Qn("SuspenseList");case 0:case 2:case 15:return e=fo(e.type,!1),e;case 11:return e=fo(e.type.render,!1),e;case 1:return e=fo(e.type,!0),e;default:return""}}function Vo(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ln:return"Fragment";case rn:return"Portal";case $o:return"Profiler";case Qi:return"StrictMode";case Bo:return"Suspense";case Wo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Fa:return(e.displayName||"Context")+".Consumer";case Da:return(e._context.displayName||"Context")+".Provider";case Ki:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Xi:return t=e.displayName||null,t!==null?t:Vo(e.type)||"Memo";case ht:t=e._payload,e=e._init;try{return Vo(e(t))}catch{}}return null}function Dd(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Vo(t);case 8:return t===Qi?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ot(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ia(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Fd(e){var t=Ia(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ar(e){e._valueTracker||(e._valueTracker=Fd(e))}function ja(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Ia(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function fl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ho(e,t){var n=t.checked;return V({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Gu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Ot(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Ua(e,t){t=t.checked,t!=null&&Hi(e,"checked",t,!1)}function Qo(e,t){Ua(e,t);var n=Ot(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ko(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ko(e,t.type,Ot(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Zu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ko(e,t,n){(t!=="number"||fl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Kn=Array.isArray;function vn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Ir.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function or(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Gn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ad=["Webkit","ms","Moz","O"];Object.keys(Gn).forEach(function(e){Ad.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Gn[t]=Gn[e]})});function Va(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Gn.hasOwnProperty(e)&&Gn[e]?(""+t).trim():t+"px"}function Ha(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Va(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Id=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Go(e,t){if(t){if(Id[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(k(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(k(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(k(61))}if(t.style!=null&&typeof t.style!="object")throw Error(k(62))}}function Zo(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Jo=null;function Yi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var qo=null,gn=null,yn=null;function bu(e){if(e=Rr(e)){if(typeof qo!="function")throw Error(k(280));var t=e.stateNode;t&&(t=Ql(t),qo(e.stateNode,e.type,t))}}function Qa(e){gn?yn?yn.push(e):yn=[e]:gn=e}function Ka(){if(gn){var e=gn,t=yn;if(yn=gn=null,bu(e),t)for(e=0;e>>=0,e===0?32:31-(Yd(e)/Gd|0)|0}var jr=64,Ur=4194304;function Xn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ml(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var u=i&~l;u!==0?r=Xn(u):(o&=i,o!==0&&(r=Xn(o)))}else i=n&~l,i!==0?r=Xn(i):o!==0&&(r=Xn(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Pr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-$e(t),e[t]=n}function bd(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Jn),ss=" ",as=!1;function dc(e,t){switch(e){case"keyup":return Rp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function pc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var on=!1;function Np(e,t){switch(e){case"compositionend":return pc(t);case"keypress":return t.which!==32?null:(as=!0,ss);case"textInput":return e=t.data,e===ss&&as?null:e;default:return null}}function Op(e,t){if(on)return e==="compositionend"||!nu&&dc(e,t)?(e=cc(),tl=bi=yt=null,on=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ps(n)}}function gc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?gc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function yc(){for(var e=window,t=fl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=fl(e.document)}return t}function ru(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Up(e){var t=yc(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&gc(n.ownerDocument.documentElement,n)){if(r!==null&&ru(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=hs(n,o);var i=hs(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,un=null,li=null,bn=null,oi=!1;function ms(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;oi||un==null||un!==fl(r)||(r=un,"selectionStart"in r&&ru(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),bn&&fr(bn,r)||(bn=r,r=yl(li,"onSelect"),0cn||(e.current=fi[cn],fi[cn]=null,cn--)}function A(e,t){cn++,fi[cn]=e.current,e.current=t}var Tt={},fe=Ft(Tt),ye=Ft(!1),Xt=Tt;function Cn(e,t){var n=e.type.contextTypes;if(!n)return Tt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function we(e){return e=e.childContextTypes,e!=null}function Sl(){j(ye),j(fe)}function ks(e,t,n){if(fe.current!==Tt)throw Error(k(168));A(fe,t),A(ye,n)}function Rc(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(k(108,Dd(e)||"Unknown",l));return V({},n,r)}function xl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Tt,Xt=fe.current,A(fe,e),A(ye,ye.current),!0}function Es(e,t,n){var r=e.stateNode;if(!r)throw Error(k(169));n?(e=Rc(e,t,Xt),r.__reactInternalMemoizedMergedChildContext=e,j(ye),j(fe),A(fe,e)):j(ye),A(ye,n)}var et=null,Kl=!1,_o=!1;function Lc(e){et===null?et=[e]:et.push(e)}function Jp(e){Kl=!0,Lc(e)}function At(){if(!_o&&et!==null){_o=!0;var e=0,t=F;try{var n=et;for(F=1;e>=i,l-=i,tt=1<<32-$e(t)+l|n<R?(M=_,_=null):M=_.sibling;var O=m(d,_,h[R],y);if(O===null){_===null&&(_=M);break}e&&_&&O.alternate===null&&t(d,_),c=o(O,c,R),P===null?x=O:P.sibling=O,P=O,_=M}if(R===h.length)return n(d,_),$&&$t(d,R),x;if(_===null){for(;RR?(M=_,_=null):M=_.sibling;var U=m(d,_,O.value,y);if(U===null){_===null&&(_=M);break}e&&_&&U.alternate===null&&t(d,_),c=o(U,c,R),P===null?x=U:P.sibling=U,P=U,_=M}if(O.done)return n(d,_),$&&$t(d,R),x;if(_===null){for(;!O.done;R++,O=h.next())O=f(d,O.value,y),O!==null&&(c=o(O,c,R),P===null?x=O:P.sibling=O,P=O);return $&&$t(d,R),x}for(_=r(d,_);!O.done;R++,O=h.next())O=v(_,d,R,O.value,y),O!==null&&(e&&O.alternate!==null&&_.delete(O.key===null?R:O.key),c=o(O,c,R),P===null?x=O:P.sibling=O,P=O);return e&&_.forEach(function(q){return t(d,q)}),$&&$t(d,R),x}function S(d,c,h,y){if(typeof h=="object"&&h!==null&&h.type===ln&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Fr:e:{for(var x=h.key,P=c;P!==null;){if(P.key===x){if(x=h.type,x===ln){if(P.tag===7){n(d,P.sibling),c=l(P,h.props.children),c.return=d,d=c;break e}}else if(P.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===ht&&_s(x)===P.type){n(d,P.sibling),c=l(P,h.props),c.ref=Wn(d,P,h),c.return=d,d=c;break e}n(d,P);break}else t(d,P);P=P.sibling}h.type===ln?(c=Kt(h.props.children,d.mode,y,h.key),c.return=d,d=c):(y=al(h.type,h.key,h.props,null,d.mode,y),y.ref=Wn(d,c,h),y.return=d,d=y)}return i(d);case rn:e:{for(P=h.key;c!==null;){if(c.key===P)if(c.tag===4&&c.stateNode.containerInfo===h.containerInfo&&c.stateNode.implementation===h.implementation){n(d,c.sibling),c=l(c,h.children||[]),c.return=d,d=c;break e}else{n(d,c);break}else t(d,c);c=c.sibling}c=Do(h,d.mode,y),c.return=d,d=c}return i(d);case ht:return P=h._init,S(d,c,P(h._payload),y)}if(Kn(h))return g(d,c,h,y);if(In(h))return w(d,c,h,y);Kr(d,h)}return typeof h=="string"&&h!==""||typeof h=="number"?(h=""+h,c!==null&&c.tag===6?(n(d,c.sibling),c=l(c,h),c.return=d,d=c):(n(d,c),c=Mo(h,d.mode,y),c.return=d,d=c),i(d)):n(d,c)}return S}var _n=zc(!0),Mc=zc(!1),Cl=Ft(null),Pl=null,pn=null,uu=null;function su(){uu=pn=Pl=null}function au(e){var t=Cl.current;j(Cl),e._currentValue=t}function hi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Sn(e,t){Pl=e,uu=pn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ge=!0),e.firstContext=null)}function De(e){var t=e._currentValue;if(uu!==e)if(e={context:e,memoizedValue:t,next:null},pn===null){if(Pl===null)throw Error(k(308));pn=e,Pl.dependencies={lanes:0,firstContext:e}}else pn=pn.next=e;return t}var Vt=null;function cu(e){Vt===null?Vt=[e]:Vt.push(e)}function Dc(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,cu(t)):(n.next=l.next,l.next=n),t.interleaved=n,it(e,r)}function it(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var mt=!1;function fu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function rt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Pt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,D&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,it(e,n)}return l=r.interleaved,l===null?(t.next=t,cu(r)):(t.next=l.next,l.next=t),r.interleaved=t,it(e,n)}function rl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zi(e,n)}}function Rs(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function _l(e,t,n,r){var l=e.updateQueue;mt=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,u=l.shared.pending;if(u!==null){l.shared.pending=null;var s=u,a=s.next;s.next=null,i===null?o=a:i.next=a,i=s;var p=e.alternate;p!==null&&(p=p.updateQueue,u=p.lastBaseUpdate,u!==i&&(u===null?p.firstBaseUpdate=a:u.next=a,p.lastBaseUpdate=s))}if(o!==null){var f=l.baseState;i=0,p=a=s=null,u=o;do{var m=u.lane,v=u.eventTime;if((r&m)===m){p!==null&&(p=p.next={eventTime:v,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var g=e,w=u;switch(m=t,v=n,w.tag){case 1:if(g=w.payload,typeof g=="function"){f=g.call(v,f,m);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=w.payload,m=typeof g=="function"?g.call(v,f,m):g,m==null)break e;f=V({},f,m);break e;case 2:mt=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,m=l.effects,m===null?l.effects=[u]:m.push(u))}else v={eventTime:v,lane:m,tag:u.tag,payload:u.payload,callback:u.callback,next:null},p===null?(a=p=v,s=f):p=p.next=v,i|=m;if(u=u.next,u===null){if(u=l.shared.pending,u===null)break;m=u,u=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);if(p===null&&(s=f),l.baseState=s,l.firstBaseUpdate=a,l.lastBaseUpdate=p,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);Zt|=i,e.lanes=i,e.memoizedState=f}}function Ls(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Lo.transition;Lo.transition={};try{e(!1),t()}finally{F=n,Lo.transition=r}}function qc(){return Fe().memoizedState}function th(e,t,n){var r=Rt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},bc(e))ef(t,n);else if(n=Dc(e,t,n,r),n!==null){var l=pe();Be(n,e,r,l),tf(n,t,r)}}function nh(e,t,n){var r=Rt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(bc(e))ef(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,u=o(i,n);if(l.hasEagerState=!0,l.eagerState=u,We(u,i)){var s=t.interleaved;s===null?(l.next=l,cu(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=Dc(e,t,l,r),n!==null&&(l=pe(),Be(n,e,r,l),tf(n,t,r))}}function bc(e){var t=e.alternate;return e===W||t!==null&&t===W}function ef(e,t){er=Ll=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function tf(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zi(e,n)}}var Nl={readContext:De,useCallback:se,useContext:se,useEffect:se,useImperativeHandle:se,useInsertionEffect:se,useLayoutEffect:se,useMemo:se,useReducer:se,useRef:se,useState:se,useDebugValue:se,useDeferredValue:se,useTransition:se,useMutableSource:se,useSyncExternalStore:se,useId:se,unstable_isNewReconciler:!1},rh={readContext:De,useCallback:function(e,t){return Ke().memoizedState=[e,t===void 0?null:t],e},useContext:De,useEffect:Os,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ol(4194308,4,Xc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ol(4194308,4,e,t)},useInsertionEffect:function(e,t){return ol(4,2,e,t)},useMemo:function(e,t){var n=Ke();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ke();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=th.bind(null,W,e),[r.memoizedState,e]},useRef:function(e){var t=Ke();return e={current:e},t.memoizedState=e},useState:Ns,useDebugValue:wu,useDeferredValue:function(e){return Ke().memoizedState=e},useTransition:function(){var e=Ns(!1),t=e[0];return e=eh.bind(null,e[1]),Ke().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=W,l=Ke();if($){if(n===void 0)throw Error(k(407));n=n()}else{if(n=t(),le===null)throw Error(k(349));Gt&30||Uc(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,Os(Bc.bind(null,r,o,e),[e]),r.flags|=2048,wr(9,$c.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ke(),t=le.identifierPrefix;if($){var n=nt,r=tt;n=(r&~(1<<32-$e(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=gr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Xe]=t,e[hr]=r,df(e,t,!1,!1),t.stateNode=e;e:{switch(i=Zo(n,r),n){case"dialog":I("cancel",e),I("close",e),l=r;break;case"iframe":case"object":case"embed":I("load",e),l=r;break;case"video":case"audio":for(l=0;lNn&&(t.flags|=128,r=!0,Vn(o,!1),t.lanes=4194304)}else{if(!r)if(e=Rl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Vn(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!$)return ae(t),null}else 2*Y()-o.renderingStartTime>Nn&&n!==1073741824&&(t.flags|=128,r=!0,Vn(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Y(),t.sibling=null,n=B.current,A(B,r?n&1|2:n&1),t):(ae(t),null);case 22:case 23:return Pu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?xe&1073741824&&(ae(t),t.subtreeFlags&6&&(t.flags|=8192)):ae(t),null;case 24:return null;case 25:return null}throw Error(k(156,t.tag))}function fh(e,t){switch(ou(t),t.tag){case 1:return we(t.type)&&Sl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Rn(),j(ye),j(fe),hu(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return pu(t),null;case 13:if(j(B),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(k(340));Pn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return j(B),null;case 4:return Rn(),null;case 10:return au(t.type._context),null;case 22:case 23:return Pu(),null;case 24:return null;default:return null}}var Yr=!1,ce=!1,dh=typeof WeakSet=="function"?WeakSet:Set,L=null;function hn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Q(e,t,r)}else n.current=null}function Ei(e,t,n){try{n()}catch(r){Q(e,t,r)}}var Bs=!1;function ph(e,t){if(ii=vl,e=yc(),ru(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,u=-1,s=-1,a=0,p=0,f=e,m=null;t:for(;;){for(var v;f!==n||l!==0&&f.nodeType!==3||(u=i+l),f!==o||r!==0&&f.nodeType!==3||(s=i+r),f.nodeType===3&&(i+=f.nodeValue.length),(v=f.firstChild)!==null;)m=f,f=v;for(;;){if(f===e)break t;if(m===n&&++a===l&&(u=i),m===o&&++p===r&&(s=i),(v=f.nextSibling)!==null)break;f=m,m=f.parentNode}f=v}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(ui={focusedElem:e,selectionRange:n},vl=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var w=g.memoizedProps,S=g.memoizedState,d=t.stateNode,c=d.getSnapshotBeforeUpdate(t.elementType===t.type?w:Ie(t.type,w),S);d.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var h=t.stateNode.containerInfo;h.nodeType===1?h.textContent="":h.nodeType===9&&h.documentElement&&h.removeChild(h.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(k(163))}}catch(y){Q(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return g=Bs,Bs=!1,g}function tr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&Ei(t,n,o)}l=l.next}while(l!==r)}}function Gl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ci(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function mf(e){var t=e.alternate;t!==null&&(e.alternate=null,mf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Xe],delete t[hr],delete t[ci],delete t[Gp],delete t[Zp])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function vf(e){return e.tag===5||e.tag===3||e.tag===4}function Ws(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||vf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Pi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=wl));else if(r!==4&&(e=e.child,e!==null))for(Pi(e,t,n),e=e.sibling;e!==null;)Pi(e,t,n),e=e.sibling}function _i(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(_i(e,t,n),e=e.sibling;e!==null;)_i(e,t,n),e=e.sibling}var oe=null,je=!1;function pt(e,t,n){for(n=n.child;n!==null;)gf(e,t,n),n=n.sibling}function gf(e,t,n){if(Ge&&typeof Ge.onCommitFiberUnmount=="function")try{Ge.onCommitFiberUnmount(Bl,n)}catch{}switch(n.tag){case 5:ce||hn(n,t);case 6:var r=oe,l=je;oe=null,pt(e,t,n),oe=r,je=l,oe!==null&&(je?(e=oe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):oe.removeChild(n.stateNode));break;case 18:oe!==null&&(je?(e=oe,n=n.stateNode,e.nodeType===8?Po(e.parentNode,n):e.nodeType===1&&Po(e,n),ar(e)):Po(oe,n.stateNode));break;case 4:r=oe,l=je,oe=n.stateNode.containerInfo,je=!0,pt(e,t,n),oe=r,je=l;break;case 0:case 11:case 14:case 15:if(!ce&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&Ei(n,t,i),l=l.next}while(l!==r)}pt(e,t,n);break;case 1:if(!ce&&(hn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){Q(n,t,u)}pt(e,t,n);break;case 21:pt(e,t,n);break;case 22:n.mode&1?(ce=(r=ce)||n.memoizedState!==null,pt(e,t,n),ce=r):pt(e,t,n);break;default:pt(e,t,n)}}function Vs(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new dh),t.forEach(function(r){var l=kh.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ae(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=Y()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*mh(r/1960))-r,10e?16:e,wt===null)var r=!1;else{if(e=wt,wt=null,zl=0,D&6)throw Error(k(331));var l=D;for(D|=4,L=e.current;L!==null;){var o=L,i=o.child;if(L.flags&16){var u=o.deletions;if(u!==null){for(var s=0;sY()-Eu?Qt(e,0):ku|=n),Se(e,t)}function Pf(e,t){t===0&&(e.mode&1?(t=Ur,Ur<<=1,!(Ur&130023424)&&(Ur=4194304)):t=1);var n=pe();e=it(e,t),e!==null&&(Pr(e,t,n),Se(e,n))}function xh(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Pf(e,n)}function kh(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(k(314))}r!==null&&r.delete(t),Pf(e,n)}var _f;_f=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ye.current)ge=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ge=!1,ah(e,t,n);ge=!!(e.flags&131072)}else ge=!1,$&&t.flags&1048576&&Nc(t,El,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;il(e,t),e=t.pendingProps;var l=Cn(t,fe.current);Sn(t,n),l=vu(null,t,r,e,l,n);var o=gu();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,we(r)?(o=!0,xl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,fu(t),l.updater=Yl,t.stateNode=l,l._reactInternals=t,vi(t,r,e,n),t=wi(null,t,r,!0,o,n)):(t.tag=0,$&&o&&lu(t),de(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(il(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Ch(r),e=Ie(r,e),l){case 0:t=yi(null,t,r,e,n);break e;case 1:t=js(null,t,r,e,n);break e;case 11:t=As(null,t,r,e,n);break e;case 14:t=Is(null,t,r,Ie(r.type,e),n);break e}throw Error(k(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),yi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),js(e,t,r,l,n);case 3:e:{if(af(t),e===null)throw Error(k(387));r=t.pendingProps,o=t.memoizedState,l=o.element,Fc(e,t),_l(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=Ln(Error(k(423)),t),t=Us(e,t,r,n,l);break e}else if(r!==l){l=Ln(Error(k(424)),t),t=Us(e,t,r,n,l);break e}else for(Ee=Ct(t.stateNode.containerInfo.firstChild),Ce=t,$=!0,Ue=null,n=Mc(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Pn(),r===l){t=ut(e,t,n);break e}de(e,t,r,n)}t=t.child}return t;case 5:return Ac(t),e===null&&pi(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,si(r,l)?i=null:o!==null&&si(r,o)&&(t.flags|=32),sf(e,t),de(e,t,i,n),t.child;case 6:return e===null&&pi(t),null;case 13:return cf(e,t,n);case 4:return du(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=_n(t,null,r,n):de(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),As(e,t,r,l,n);case 7:return de(e,t,t.pendingProps,n),t.child;case 8:return de(e,t,t.pendingProps.children,n),t.child;case 12:return de(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,A(Cl,r._currentValue),r._currentValue=i,o!==null)if(We(o.value,i)){if(o.children===l.children&&!ye.current){t=ut(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=rt(-1,n&-n),s.tag=2;var a=o.updateQueue;if(a!==null){a=a.shared;var p=a.pending;p===null?s.next=s:(s.next=p.next,p.next=s),a.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),hi(o.return,n,t),u.lanes|=n;break}s=s.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(k(341));i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),hi(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}de(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Sn(t,n),l=De(l),r=r(l),t.flags|=1,de(e,t,r,n),t.child;case 14:return r=t.type,l=Ie(r,t.pendingProps),l=Ie(r.type,l),Is(e,t,r,l,n);case 15:return of(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ie(r,l),il(e,t),t.tag=1,we(r)?(e=!0,xl(t)):e=!1,Sn(t,n),nf(t,r,l),vi(t,r,l,n),wi(null,t,r,!0,e,n);case 19:return ff(e,t,n);case 22:return uf(e,t,n)}throw Error(k(156,t.tag))};function Rf(e,t){return ba(e,t)}function Eh(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ze(e,t,n,r){return new Eh(e,t,n,r)}function Ru(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Ch(e){if(typeof e=="function")return Ru(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ki)return 11;if(e===Xi)return 14}return 2}function Lt(e,t){var n=e.alternate;return n===null?(n=ze(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function al(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")Ru(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ln:return Kt(n.children,l,o,t);case Qi:i=8,l|=8;break;case $o:return e=ze(12,n,t,l|2),e.elementType=$o,e.lanes=o,e;case Bo:return e=ze(13,n,t,l),e.elementType=Bo,e.lanes=o,e;case Wo:return e=ze(19,n,t,l),e.elementType=Wo,e.lanes=o,e;case Aa:return Jl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Da:i=10;break e;case Fa:i=9;break e;case Ki:i=11;break e;case Xi:i=14;break e;case ht:i=16,r=null;break e}throw Error(k(130,e==null?e:typeof e,""))}return t=ze(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function Kt(e,t,n,r){return e=ze(7,e,r,t),e.lanes=n,e}function Jl(e,t,n,r){return e=ze(22,e,r,t),e.elementType=Aa,e.lanes=n,e.stateNode={isHidden:!1},e}function Mo(e,t,n){return e=ze(6,e,null,t),e.lanes=n,e}function Do(e,t,n){return t=ze(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ph(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ho(0),this.expirationTimes=ho(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ho(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Lu(e,t,n,r,l,o,i,u,s){return e=new Ph(e,t,n,u,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=ze(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},fu(o),e}function _h(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Tf)}catch(e){console.error(e)}}Tf(),Oa.exports=Re;var zu=Oa.exports;const Ov=ya(zu);var Js=zu;Qu.createRoot=Js.createRoot,Qu.hydrateRoot=Js.hydrateRoot;/**
- * @remix-run/router v1.23.3
- *
- * Copyright (c) Remix Software Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE.md file in the root directory of this source tree.
- *
- * @license MIT
- */function xr(){return xr=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Mu(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function zh(){return Math.random().toString(36).substr(2,8)}function bs(e,t){return{usr:e.state,key:e.key,idx:t}}function Ti(e,t,n,r){return n===void 0&&(n=null),xr({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Dn(t):t,{state:n,key:t&&t.key||r||zh()})}function Fl(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Dn(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Mh(e,t,n,r){r===void 0&&(r={});let{window:l=document.defaultView,v5Compat:o=!1}=r,i=l.history,u=St.Pop,s=null,a=p();a==null&&(a=0,i.replaceState(xr({},i.state,{idx:a}),""));function p(){return(i.state||{idx:null}).idx}function f(){u=St.Pop;let S=p(),d=S==null?null:S-a;a=S,s&&s({action:u,location:w.location,delta:d})}function m(S,d){u=St.Push;let c=Ti(w.location,S,d);a=p()+1;let h=bs(c,a),y=w.createHref(c);try{i.pushState(h,"",y)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;l.location.assign(y)}o&&s&&s({action:u,location:w.location,delta:1})}function v(S,d){u=St.Replace;let c=Ti(w.location,S,d);a=p();let h=bs(c,a),y=w.createHref(c);i.replaceState(h,"",y),o&&s&&s({action:u,location:w.location,delta:0})}function g(S){let d=l.location.origin!=="null"?l.location.origin:l.location.href,c=typeof S=="string"?S:Fl(S);return c=c.replace(/ $/,"%20"),J(d,"No window.location.(origin|href) available to create URL for href: "+c),new URL(c,d)}let w={get action(){return u},get location(){return e(l,i)},listen(S){if(s)throw new Error("A history only accepts one active listener");return l.addEventListener(qs,f),s=S,()=>{l.removeEventListener(qs,f),s=null}},createHref(S){return t(l,S)},createURL:g,encodeLocation(S){let d=g(S);return{pathname:d.pathname,search:d.search,hash:d.hash}},push:m,replace:v,go(S){return i.go(S)}};return w}var ea;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ea||(ea={}));function Dh(e,t,n){return n===void 0&&(n="/"),Fh(e,t,n)}function Fh(e,t,n,r){let l=typeof t=="string"?Dn(t):t,o=Du(l.pathname||"/",n);if(o==null)return null;let i=zf(e);Ah(i);let u=null,s=Yh(o);for(let a=0;u==null&&a{let s={relativePath:u===void 0?o.path||"":u,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};s.relativePath.startsWith("/")&&(J(s.relativePath.startsWith(r),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(r.length));let a=Nt([r,s.relativePath]),p=n.concat(s);o.children&&o.children.length>0&&(J(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+a+'".')),zf(o.children,t,p,a)),!(o.path==null&&!o.index)&&t.push({path:a,score:Vh(a,o.index),routesMeta:p})};return e.forEach((o,i)=>{var u;if(o.path===""||!((u=o.path)!=null&&u.includes("?")))l(o,i);else for(let s of Mf(o.path))l(o,i,s)}),t}function Mf(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return l?[o,""]:[o];let i=Mf(r.join("/")),u=[];return u.push(...i.map(s=>s===""?o:[o,s].join("/"))),l&&u.push(...i),u.map(s=>e.startsWith("/")&&s===""?"/":s)}function Ah(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Hh(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Ih=/^:[\w-]+$/,jh=3,Uh=2,$h=1,Bh=10,Wh=-2,ta=e=>e==="*";function Vh(e,t){let n=e.split("/"),r=n.length;return n.some(ta)&&(r+=Wh),t&&(r+=Uh),n.filter(l=>!ta(l)).reduce((l,o)=>l+(Ih.test(o)?jh:o===""?$h:Bh),r)}function Hh(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function Qh(e,t,n){let{routesMeta:r}=e,l={},o="/",i=[];for(let u=0;u{let{paramName:m,isOptional:v}=p;if(m==="*"){let w=u[f]||"";i=o.slice(0,o.length-w.length).replace(/(.)\/+$/,"$1")}const g=u[f];return v&&!g?a[m]=void 0:a[m]=(g||"").replace(/%2F/g,"/"),a},{}),pathname:o,pathnameBase:i,pattern:e}}function Xh(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Mu(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,u,s)=>(r.push({paramName:u,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),r]}function Yh(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Mu(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Du(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}const Gh=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Zh=e=>Gh.test(e);function Jh(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:l=""}=typeof e=="string"?Dn(e):e,o;if(n)if(Zh(n))o=n;else{if(n.includes("//")){let i=n;n=Af(n),Mu(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+n))}n.startsWith("/")?o=na(n.substring(1),"/"):o=na(n,t)}else o=t;return{pathname:o,search:em(r),hash:tm(l)}}function na(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?n.length>1&&n.pop():l!=="."&&n.push(l)}),n.length>1?n.join("/"):"/"}function Fo(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function qh(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Df(e,t){let n=qh(e);return t?n.map((r,l)=>l===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Ff(e,t,n,r){r===void 0&&(r=!1);let l;typeof e=="string"?l=Dn(e):(l=xr({},e),J(!l.pathname||!l.pathname.includes("?"),Fo("?","pathname","search",l)),J(!l.pathname||!l.pathname.includes("#"),Fo("#","pathname","hash",l)),J(!l.search||!l.search.includes("#"),Fo("#","search","hash",l)));let o=e===""||l.pathname==="",i=o?"/":l.pathname,u;if(i==null)u=n;else{let f=t.length-1;if(!r&&i.startsWith("..")){let m=i.split("/");for(;m[0]==="..";)m.shift(),f-=1;l.pathname=m.join("/")}u=f>=0?t[f]:"/"}let s=Jh(l,u),a=i&&i!=="/"&&i.endsWith("/"),p=(o||i===".")&&n.endsWith("/");return!s.pathname.endsWith("/")&&(a||p)&&(s.pathname+="/"),s}const Af=e=>e.replace(/\/\/+/g,"/"),Nt=e=>Af(e.join("/")),bh=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),em=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,tm=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function nm(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const If=["post","put","patch","delete"];new Set(If);const rm=["get",...If];new Set(rm);/**
- * React Router v6.30.4
- *
- * Copyright (c) Remix Software Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE.md file in the root directory of this source tree.
- *
- * @license MIT
- */function kr(){return kr=Object.assign?Object.assign.bind():function(e){for(var t=1;t{u.current=!0}),C.useCallback(function(a,p){if(p===void 0&&(p={}),!u.current)return;if(typeof a=="number"){r.go(a);return}let f=Ff(a,JSON.parse(i),o,p.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Nt([t,f.pathname])),(p.replace?r.replace:r.push)(f,p.state,p)},[t,r,i,o,e])}const Bf=C.createContext(null);function Tv(){return C.useContext(Bf)}function um(e){let t=C.useContext(ft).outlet;return t&&C.createElement(Bf.Provider,{value:e},t)}function zv(){let{matches:e}=C.useContext(ft),t=e[e.length-1];return t?t.params:{}}function Wf(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=C.useContext(tn),{matches:l}=C.useContext(ft),{pathname:o}=Or(),i=JSON.stringify(Df(l,r.v7_relativeSplatPath));return C.useMemo(()=>Ff(e,JSON.parse(i),o,n==="path"),[e,i,o,n])}function sm(e,t){return am(e,t)}function am(e,t,n,r){Nr()||J(!1);let{navigator:l}=C.useContext(tn),{matches:o}=C.useContext(ft),i=o[o.length-1],u=i?i.params:{};i&&i.pathname;let s=i?i.pathnameBase:"/";i&&i.route;let a=Or(),p;if(t){var f;let S=typeof t=="string"?Dn(t):t;s==="/"||(f=S.pathname)!=null&&f.startsWith(s)||J(!1),p=S}else p=a;let m=p.pathname||"/",v=m;if(s!=="/"){let S=s.replace(/^\//,"").split("/");v="/"+m.replace(/^\//,"").split("/").slice(S.length).join("/")}let g=Dh(e,{pathname:v}),w=hm(g&&g.map(S=>Object.assign({},S,{params:Object.assign({},u,S.params),pathname:Nt([s,l.encodeLocation?l.encodeLocation(S.pathname).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?s:Nt([s,l.encodeLocation?l.encodeLocation(S.pathnameBase).pathname:S.pathnameBase])})),o,n,r);return t&&w?C.createElement(no.Provider,{value:{location:kr({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:St.Pop}},w):w}function cm(){let e=ym(),t=nm(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return C.createElement(C.Fragment,null,C.createElement("h2",null,"Unexpected Application Error!"),C.createElement("h3",{style:{fontStyle:"italic"}},t),n?C.createElement("pre",{style:l},n):null,null)}const fm=C.createElement(cm,null);class dm extends C.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?C.createElement(ft.Provider,{value:this.props.routeContext},C.createElement(jf.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function pm(e){let{routeContext:t,match:n,children:r}=e,l=C.useContext(Fu);return l&&l.static&&l.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=n.route.id),C.createElement(ft.Provider,{value:t},r)}function hm(e,t,n,r){var l;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,u=(l=n)==null?void 0:l.errors;if(u!=null){let p=i.findIndex(f=>f.route.id&&(u==null?void 0:u[f.route.id])!==void 0);p>=0||J(!1),i=i.slice(0,Math.min(i.length,p+1))}let s=!1,a=-1;if(n&&r&&r.v7_partialHydration)for(let p=0;p=0?i=i.slice(0,a+1):i=[i[0]];break}}}return i.reduceRight((p,f,m)=>{let v,g=!1,w=null,S=null;n&&(v=u&&f.route.id?u[f.route.id]:void 0,w=f.route.errorElement||fm,s&&(a<0&&m===0?(Sm("route-fallback"),g=!0,S=null):a===m&&(g=!0,S=f.route.hydrateFallbackElement||null)));let d=t.concat(i.slice(0,m+1)),c=()=>{let h;return v?h=w:g?h=S:f.route.Component?h=C.createElement(f.route.Component,null):f.route.element?h=f.route.element:h=p,C.createElement(pm,{match:f,routeContext:{outlet:p,matches:d,isDataRoute:n!=null},children:h})};return n&&(f.route.ErrorBoundary||f.route.errorElement||m===0)?C.createElement(dm,{location:n.location,revalidation:n.revalidation,component:w,error:v,children:c(),routeContext:{outlet:null,matches:d,isDataRoute:!0}}):c()},null)}var Vf=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Vf||{}),Hf=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Hf||{});function mm(e){let t=C.useContext(Fu);return t||J(!1),t}function vm(e){let t=C.useContext(lm);return t||J(!1),t}function gm(e){let t=C.useContext(ft);return t||J(!1),t}function Qf(e){let t=gm(),n=t.matches[t.matches.length-1];return n.route.id||J(!1),n.route.id}function ym(){var e;let t=C.useContext(jf),n=vm(),r=Qf();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function wm(){let{router:e}=mm(Vf.UseNavigateStable),t=Qf(Hf.UseNavigateStable),n=C.useRef(!1);return Uf(()=>{n.current=!0}),C.useCallback(function(l,o){o===void 0&&(o={}),n.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,kr({fromRouteId:t},o)))},[e,t])}const ra={};function Sm(e,t,n){ra[e]||(ra[e]=!0)}function xm(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Mv(e){return um(e.context)}function km(e){J(!1)}function Em(e){let{basename:t="/",children:n=null,location:r,navigationType:l=St.Pop,navigator:o,static:i=!1,future:u}=e;Nr()&&J(!1);let s=t.replace(/^\/*/,"/"),a=C.useMemo(()=>({basename:s,navigator:o,static:i,future:kr({v7_relativeSplatPath:!1},u)}),[s,u,o,i]);typeof r=="string"&&(r=Dn(r));let{pathname:p="/",search:f="",hash:m="",state:v=null,key:g="default"}=r,w=C.useMemo(()=>{let S=Du(p,s);return S==null?null:{location:{pathname:S,search:f,hash:m,state:v,key:g},navigationType:l}},[s,p,f,m,v,g,l]);return w==null?null:C.createElement(tn.Provider,{value:a},C.createElement(no.Provider,{children:n,value:w}))}function Dv(e){let{children:t,location:n}=e;return sm(zi(t),n)}new Promise(()=>{});function zi(e,t){t===void 0&&(t=[]);let n=[];return C.Children.forEach(e,(r,l)=>{if(!C.isValidElement(r))return;let o=[...t,l];if(r.type===C.Fragment){n.push.apply(n,zi(r.props.children,o));return}r.type!==km&&J(!1),!r.props.index||!r.props.children||J(!1);let i={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=zi(r.props.children,o)),n.push(i)}),n}/**
- * React Router DOM v6.30.4
- *
- * Copyright (c) Remix Software Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE.md file in the root directory of this source tree.
- *
- * @license MIT
- */function Mi(){return Mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let r=e[n];return t.concat(Array.isArray(r)?r.map(l=>[n,l]):[[n,r]])},[]))}function Rm(e,t){let n=Di(e);return t&&t.forEach((r,l)=>{n.has(l)||t.getAll(l).forEach(o=>{n.append(l,o)})}),n}const Lm=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Nm="6";try{window.__reactRouterVersion=Nm}catch{}const Om="startTransition",la=Sd[Om];function Fv(e){let{basename:t,children:n,future:r,window:l}=e,o=C.useRef();o.current==null&&(o.current=Th({window:l,v5Compat:!0}));let i=o.current,[u,s]=C.useState({action:i.action,location:i.location}),{v7_startTransition:a}=r||{},p=C.useCallback(f=>{a&&la?la(()=>s(f)):s(f)},[s,a]);return C.useLayoutEffect(()=>i.listen(p),[i,p]),C.useEffect(()=>xm(r),[r]),C.createElement(Em,{basename:t,children:n,location:u.location,navigationType:u.action,navigator:i,future:r})}const Tm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",zm=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Av=C.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:o,replace:i,state:u,target:s,to:a,preventScrollReset:p,viewTransition:f}=t,m=Cm(t,Lm),{basename:v}=C.useContext(tn),g,w=!1;if(typeof a=="string"&&zm.test(a)&&(g=a,Tm))try{let h=new URL(window.location.href),y=a.startsWith("//")?new URL(h.protocol+a):new URL(a),x=Du(y.pathname,v);y.origin===h.origin&&x!=null?a=x+y.search+y.hash:w=!0}catch{}let S=om(a,{relative:l}),d=Mm(a,{replace:i,state:u,target:s,preventScrollReset:p,relative:l,viewTransition:f});function c(h){r&&r(h),h.defaultPrevented||d(h)}return C.createElement("a",Mi({},m,{href:g||S,onClick:w||o?r:c,ref:n,target:s}))});var oa;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(oa||(oa={}));var ia;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(ia||(ia={}));function Mm(e,t){let{target:n,replace:r,state:l,preventScrollReset:o,relative:i,viewTransition:u}=t===void 0?{}:t,s=$f(),a=Or(),p=Wf(e,{relative:i});return C.useCallback(f=>{if(_m(f,n)){f.preventDefault();let m=r!==void 0?r:Fl(a)===Fl(p);s(e,{replace:m,state:l,preventScrollReset:o,relative:i,viewTransition:u})}},[a,s,p,r,l,n,e,o,i,u])}function Iv(e){let t=C.useRef(Di(e)),n=C.useRef(!1),r=Or(),l=C.useMemo(()=>Rm(r.search,n.current?null:t.current),[r.search]),o=$f(),i=C.useCallback((u,s)=>{const a=Di(typeof u=="function"?u(l):u);n.current=!0,o("?"+a,s)},[o,l]);return[l,i]}const Dm=["top","right","bottom","left"],zt=Math.min,ke=Math.max,Al=Math.round,Jr=Math.floor,Je=e=>({x:e,y:e}),Fm={left:"right",right:"left",bottom:"top",top:"bottom"};function Fi(e,t,n){return ke(e,zt(t,n))}function st(e,t){return typeof e=="function"?e(t):e}function at(e){return e.split("-")[0]}function Fn(e){return e.split("-")[1]}function Au(e){return e==="x"?"y":"x"}function Iu(e){return e==="y"?"height":"width"}function Ye(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function ju(e){return Au(Ye(e))}function Am(e,t,n){n===void 0&&(n=!1);const r=Fn(e),l=ju(e),o=Iu(l);let i=l==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(i=Il(i)),[i,Il(i)]}function Im(e){const t=Il(e);return[Ai(e),t,Ai(t)]}function Ai(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const ua=["left","right"],sa=["right","left"],jm=["top","bottom"],Um=["bottom","top"];function $m(e,t,n){switch(e){case"top":case"bottom":return n?t?sa:ua:t?ua:sa;case"left":case"right":return t?jm:Um;default:return[]}}function Bm(e,t,n,r){const l=Fn(e);let o=$m(at(e),n==="start",r);return l&&(o=o.map(i=>i+"-"+l),t&&(o=o.concat(o.map(Ai)))),o}function Il(e){const t=at(e);return Fm[t]+e.slice(t.length)}function Wm(e){return{top:0,right:0,bottom:0,left:0,...e}}function Kf(e){return typeof e!="number"?Wm(e):{top:e,right:e,bottom:e,left:e}}function jl(e){const{x:t,y:n,width:r,height:l}=e;return{width:r,height:l,top:n,left:t,right:t+r,bottom:n+l,x:t,y:n}}function aa(e,t,n){let{reference:r,floating:l}=e;const o=Ye(t),i=ju(t),u=Iu(i),s=at(t),a=o==="y",p=r.x+r.width/2-l.width/2,f=r.y+r.height/2-l.height/2,m=r[u]/2-l[u]/2;let v;switch(s){case"top":v={x:p,y:r.y-l.height};break;case"bottom":v={x:p,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-l.width,y:f};break;default:v={x:r.x,y:r.y}}switch(Fn(t)){case"start":v[i]-=m*(n&&a?-1:1);break;case"end":v[i]+=m*(n&&a?-1:1);break}return v}async function Vm(e,t){var n;t===void 0&&(t={});const{x:r,y:l,platform:o,rects:i,elements:u,strategy:s}=e,{boundary:a="clippingAncestors",rootBoundary:p="viewport",elementContext:f="floating",altBoundary:m=!1,padding:v=0}=st(t,e),g=Kf(v),S=u[m?f==="floating"?"reference":"floating":f],d=jl(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(S)))==null||n?S:S.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(u.floating)),boundary:a,rootBoundary:p,strategy:s})),c=f==="floating"?{x:r,y:l,width:i.floating.width,height:i.floating.height}:i.reference,h=await(o.getOffsetParent==null?void 0:o.getOffsetParent(u.floating)),y=await(o.isElement==null?void 0:o.isElement(h))?await(o.getScale==null?void 0:o.getScale(h))||{x:1,y:1}:{x:1,y:1},x=jl(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:c,offsetParent:h,strategy:s}):c);return{top:(d.top-x.top+g.top)/y.y,bottom:(x.bottom-d.bottom+g.bottom)/y.y,left:(d.left-x.left+g.left)/y.x,right:(x.right-d.right+g.right)/y.x}}const Hm=50,Qm=async(e,t,n)=>{const{placement:r="bottom",strategy:l="absolute",middleware:o=[],platform:i}=n,u=i.detectOverflow?i:{...i,detectOverflow:Vm},s=await(i.isRTL==null?void 0:i.isRTL(t));let a=await i.getElementRects({reference:e,floating:t,strategy:l}),{x:p,y:f}=aa(a,r,s),m=r,v=0;const g={};for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:l,rects:o,platform:i,elements:u,middlewareData:s}=t,{element:a,padding:p=0}=st(e,t)||{};if(a==null)return{};const f=Kf(p),m={x:n,y:r},v=ju(l),g=Iu(v),w=await i.getDimensions(a),S=v==="y",d=S?"top":"left",c=S?"bottom":"right",h=S?"clientHeight":"clientWidth",y=o.reference[g]+o.reference[v]-m[v]-o.floating[g],x=m[v]-o.reference[v],P=await(i.getOffsetParent==null?void 0:i.getOffsetParent(a));let _=P?P[h]:0;(!_||!await(i.isElement==null?void 0:i.isElement(P)))&&(_=u.floating[h]||o.floating[g]);const R=y/2-x/2,M=_/2-w[g]/2-1,O=zt(f[d],M),U=zt(f[c],M),q=O,G=_-w[g]-U,H=_/2-w[g]/2+R,Ne=Fi(q,H,G),K=!s.arrow&&Fn(l)!=null&&H!==Ne&&o.reference[g]/2-(HH<=0)){var U,q;const H=(((U=o.flip)==null?void 0:U.index)||0)+1,Ne=_[H];if(Ne&&(!(f==="alignment"?c!==Ye(Ne):!1)||O.every(E=>Ye(E.placement)===c?E.overflows[0]>0:!0)))return{data:{index:H,overflows:O},reset:{placement:Ne}};let K=(q=O.filter(te=>te.overflows[0]<=0).sort((te,E)=>te.overflows[1]-E.overflows[1])[0])==null?void 0:q.placement;if(!K)switch(v){case"bestFit":{var G;const te=(G=O.filter(E=>{if(P){const N=Ye(E.placement);return N===c||N==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(N=>N>0).reduce((N,T)=>N+T,0)]).sort((E,N)=>E[1]-N[1])[0])==null?void 0:G[0];te&&(K=te);break}case"initialPlacement":K=u;break}if(l!==K)return{reset:{placement:K}}}return{}}}};function ca(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function fa(e){return Dm.some(t=>e[t]>=0)}const Ym=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:l="referenceHidden",...o}=st(e,t);switch(l){case"referenceHidden":{const i=await r.detectOverflow(t,{...o,elementContext:"reference"}),u=ca(i,n.reference);return{data:{referenceHiddenOffsets:u,referenceHidden:fa(u)}}}case"escaped":{const i=await r.detectOverflow(t,{...o,altBoundary:!0}),u=ca(i,n.floating);return{data:{escapedOffsets:u,escaped:fa(u)}}}default:return{}}}}},Xf=new Set(["left","top"]);async function Gm(e,t){const{placement:n,platform:r,elements:l}=e,o=await(r.isRTL==null?void 0:r.isRTL(l.floating)),i=at(n),u=Fn(n),s=Ye(n)==="y",a=Xf.has(i)?-1:1,p=o&&s?-1:1,f=st(t,e);let{mainAxis:m,crossAxis:v,alignmentAxis:g}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return u&&typeof g=="number"&&(v=u==="end"?g*-1:g),s?{x:v*p,y:m*a}:{x:m*a,y:v*p}}const Zm=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:l,y:o,placement:i,middlewareData:u}=t,s=await Gm(t,e);return i===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:l+s.x,y:o+s.y,data:{...s,placement:i}}}}},Jm=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:l,platform:o}=t,{mainAxis:i=!0,crossAxis:u=!1,limiter:s={fn:d=>{let{x:c,y:h}=d;return{x:c,y:h}}},...a}=st(e,t),p={x:n,y:r},f=await o.detectOverflow(t,a),m=Ye(at(l)),v=Au(m);let g=p[v],w=p[m];if(i){const d=v==="y"?"top":"left",c=v==="y"?"bottom":"right",h=g+f[d],y=g-f[c];g=Fi(h,g,y)}if(u){const d=m==="y"?"top":"left",c=m==="y"?"bottom":"right",h=w+f[d],y=w-f[c];w=Fi(h,w,y)}const S=s.fn({...t,[v]:g,[m]:w});return{...S,data:{x:S.x-n,y:S.y-r,enabled:{[v]:i,[m]:u}}}}}},qm=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:l,rects:o,middlewareData:i}=t,{offset:u=0,mainAxis:s=!0,crossAxis:a=!0}=st(e,t),p={x:n,y:r},f=Ye(l),m=Au(f);let v=p[m],g=p[f];const w=st(u,t),S=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(s){const h=m==="y"?"height":"width",y=o.reference[m]-o.floating[h]+S.mainAxis,x=o.reference[m]+o.reference[h]-S.mainAxis;vx&&(v=x)}if(a){var d,c;const h=m==="y"?"width":"height",y=Xf.has(at(l)),x=o.reference[f]-o.floating[h]+(y&&((d=i.offset)==null?void 0:d[f])||0)+(y?0:S.crossAxis),P=o.reference[f]+o.reference[h]+(y?0:((c=i.offset)==null?void 0:c[f])||0)-(y?S.crossAxis:0);gP&&(g=P)}return{[m]:v,[f]:g}}}},bm=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:l,rects:o,platform:i,elements:u}=t,{apply:s=()=>{},...a}=st(e,t),p=await i.detectOverflow(t,a),f=at(l),m=Fn(l),v=Ye(l)==="y",{width:g,height:w}=o.floating;let S,d;f==="top"||f==="bottom"?(S=f,d=m===(await(i.isRTL==null?void 0:i.isRTL(u.floating))?"start":"end")?"left":"right"):(d=f,S=m==="end"?"top":"bottom");const c=w-p.top-p.bottom,h=g-p.left-p.right,y=zt(w-p[S],c),x=zt(g-p[d],h),P=!t.middlewareData.shift;let _=y,R=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(R=h),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(_=c),P&&!m){const O=ke(p.left,0),U=ke(p.right,0),q=ke(p.top,0),G=ke(p.bottom,0);v?R=g-2*(O!==0||U!==0?O+U:ke(p.left,p.right)):_=w-2*(q!==0||G!==0?q+G:ke(p.top,p.bottom))}await s({...t,availableWidth:R,availableHeight:_});const M=await i.getDimensions(u.floating);return g!==M.width||w!==M.height?{reset:{rects:!0}}:{}}}};function ro(){return typeof window<"u"}function An(e){return Yf(e)?(e.nodeName||"").toLowerCase():"#document"}function Pe(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function qe(e){var t;return(t=(Yf(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Yf(e){return ro()?e instanceof Node||e instanceof Pe(e).Node:!1}function Ve(e){return ro()?e instanceof Element||e instanceof Pe(e).Element:!1}function dt(e){return ro()?e instanceof HTMLElement||e instanceof Pe(e).HTMLElement:!1}function da(e){return!ro()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Pe(e).ShadowRoot}function Tr(e){const{overflow:t,overflowX:n,overflowY:r,display:l}=He(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&l!=="inline"&&l!=="contents"}function ev(e){return/^(table|td|th)$/.test(An(e))}function lo(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const tv=/transform|translate|scale|rotate|perspective|filter/,nv=/paint|layout|strict|content/,Ut=e=>!!e&&e!=="none";let Ao;function Uu(e){const t=Ve(e)?He(e):e;return Ut(t.transform)||Ut(t.translate)||Ut(t.scale)||Ut(t.rotate)||Ut(t.perspective)||!$u()&&(Ut(t.backdropFilter)||Ut(t.filter))||tv.test(t.willChange||"")||nv.test(t.contain||"")}function rv(e){let t=Mt(e);for(;dt(t)&&!On(t);){if(Uu(t))return t;if(lo(t))return null;t=Mt(t)}return null}function $u(){return Ao==null&&(Ao=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Ao}function On(e){return/^(html|body|#document)$/.test(An(e))}function He(e){return Pe(e).getComputedStyle(e)}function oo(e){return Ve(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Mt(e){if(An(e)==="html")return e;const t=e.assignedSlot||e.parentNode||da(e)&&e.host||qe(e);return da(t)?t.host:t}function Gf(e){const t=Mt(e);return On(t)?e.ownerDocument?e.ownerDocument.body:e.body:dt(t)&&Tr(t)?t:Gf(t)}function Er(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const l=Gf(e),o=l===((r=e.ownerDocument)==null?void 0:r.body),i=Pe(l);if(o){const u=Ii(i);return t.concat(i,i.visualViewport||[],Tr(l)?l:[],u&&n?Er(u):[])}else return t.concat(l,Er(l,[],n))}function Ii(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Zf(e){const t=He(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const l=dt(e),o=l?e.offsetWidth:n,i=l?e.offsetHeight:r,u=Al(n)!==o||Al(r)!==i;return u&&(n=o,r=i),{width:n,height:r,$:u}}function Bu(e){return Ve(e)?e:e.contextElement}function kn(e){const t=Bu(e);if(!dt(t))return Je(1);const n=t.getBoundingClientRect(),{width:r,height:l,$:o}=Zf(t);let i=(o?Al(n.width):n.width)/r,u=(o?Al(n.height):n.height)/l;return(!i||!Number.isFinite(i))&&(i=1),(!u||!Number.isFinite(u))&&(u=1),{x:i,y:u}}const lv=Je(0);function Jf(e){const t=Pe(e);return!$u()||!t.visualViewport?lv:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ov(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Pe(e)?!1:t}function qt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const l=e.getBoundingClientRect(),o=Bu(e);let i=Je(1);t&&(r?Ve(r)&&(i=kn(r)):i=kn(e));const u=ov(o,n,r)?Jf(o):Je(0);let s=(l.left+u.x)/i.x,a=(l.top+u.y)/i.y,p=l.width/i.x,f=l.height/i.y;if(o){const m=Pe(o),v=r&&Ve(r)?Pe(r):r;let g=m,w=Ii(g);for(;w&&r&&v!==g;){const S=kn(w),d=w.getBoundingClientRect(),c=He(w),h=d.left+(w.clientLeft+parseFloat(c.paddingLeft))*S.x,y=d.top+(w.clientTop+parseFloat(c.paddingTop))*S.y;s*=S.x,a*=S.y,p*=S.x,f*=S.y,s+=h,a+=y,g=Pe(w),w=Ii(g)}}return jl({width:p,height:f,x:s,y:a})}function io(e,t){const n=oo(e).scrollLeft;return t?t.left+n:qt(qe(e)).left+n}function qf(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-io(e,n),l=n.top+t.scrollTop;return{x:r,y:l}}function iv(e){let{elements:t,rect:n,offsetParent:r,strategy:l}=e;const o=l==="fixed",i=qe(r),u=t?lo(t.floating):!1;if(r===i||u&&o)return n;let s={scrollLeft:0,scrollTop:0},a=Je(1);const p=Je(0),f=dt(r);if((f||!f&&!o)&&((An(r)!=="body"||Tr(i))&&(s=oo(r)),f)){const v=qt(r);a=kn(r),p.x=v.x+r.clientLeft,p.y=v.y+r.clientTop}const m=i&&!f&&!o?qf(i,s):Je(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-s.scrollLeft*a.x+p.x+m.x,y:n.y*a.y-s.scrollTop*a.y+p.y+m.y}}function uv(e){return Array.from(e.getClientRects())}function sv(e){const t=qe(e),n=oo(e),r=e.ownerDocument.body,l=ke(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=ke(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+io(e);const u=-n.scrollTop;return He(r).direction==="rtl"&&(i+=ke(t.clientWidth,r.clientWidth)-l),{width:l,height:o,x:i,y:u}}const pa=25;function av(e,t){const n=Pe(e),r=qe(e),l=n.visualViewport;let o=r.clientWidth,i=r.clientHeight,u=0,s=0;if(l){o=l.width,i=l.height;const p=$u();(!p||p&&t==="fixed")&&(u=l.offsetLeft,s=l.offsetTop)}const a=io(r);if(a<=0){const p=r.ownerDocument,f=p.body,m=getComputedStyle(f),v=p.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,g=Math.abs(r.clientWidth-f.clientWidth-v);g<=pa&&(o-=g)}else a<=pa&&(o+=a);return{width:o,height:i,x:u,y:s}}function cv(e,t){const n=qt(e,!0,t==="fixed"),r=n.top+e.clientTop,l=n.left+e.clientLeft,o=dt(e)?kn(e):Je(1),i=e.clientWidth*o.x,u=e.clientHeight*o.y,s=l*o.x,a=r*o.y;return{width:i,height:u,x:s,y:a}}function ha(e,t,n){let r;if(t==="viewport")r=av(e,n);else if(t==="document")r=sv(qe(e));else if(Ve(t))r=cv(t,n);else{const l=Jf(e);r={x:t.x-l.x,y:t.y-l.y,width:t.width,height:t.height}}return jl(r)}function bf(e,t){const n=Mt(e);return n===t||!Ve(n)||On(n)?!1:He(n).position==="fixed"||bf(n,t)}function fv(e,t){const n=t.get(e);if(n)return n;let r=Er(e,[],!1).filter(u=>Ve(u)&&An(u)!=="body"),l=null;const o=He(e).position==="fixed";let i=o?Mt(e):e;for(;Ve(i)&&!On(i);){const u=He(i),s=Uu(i);!s&&u.position==="fixed"&&(l=null),(o?!s&&!l:!s&&u.position==="static"&&!!l&&(l.position==="absolute"||l.position==="fixed")||Tr(i)&&!s&&bf(e,i))?r=r.filter(p=>p!==i):l=u,i=Mt(i)}return t.set(e,r),r}function dv(e){let{element:t,boundary:n,rootBoundary:r,strategy:l}=e;const i=[...n==="clippingAncestors"?lo(t)?[]:fv(t,this._c):[].concat(n),r],u=ha(t,i[0],l);let s=u.top,a=u.right,p=u.bottom,f=u.left;for(let m=1;m{i(!1,1e-7)},1e3)}_===1&&!td(a,e.getBoundingClientRect())&&i(),y=!1}try{n=new IntersectionObserver(x,{...h,root:l.ownerDocument})}catch{n=new IntersectionObserver(x,h)}n.observe(e)}return i(!0),o}function jv(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:l=!0,ancestorResize:o=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:s=!1}=r,a=Bu(e),p=l||o?[...a?Er(a):[],...t?Er(t):[]]:[];p.forEach(d=>{l&&d.addEventListener("scroll",n,{passive:!0}),o&&d.addEventListener("resize",n)});const f=a&&u?yv(a,n):null;let m=-1,v=null;i&&(v=new ResizeObserver(d=>{let[c]=d;c&&c.target===a&&v&&t&&(v.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var h;(h=v)==null||h.observe(t)})),n()}),a&&!s&&v.observe(a),t&&v.observe(t));let g,w=s?qt(e):null;s&&S();function S(){const d=qt(e);w&&!td(w,d)&&n(),w=d,g=requestAnimationFrame(S)}return n(),()=>{var d;p.forEach(c=>{l&&c.removeEventListener("scroll",n),o&&c.removeEventListener("resize",n)}),f==null||f(),(d=v)==null||d.disconnect(),v=null,s&&cancelAnimationFrame(g)}}const wv=Zm,Sv=Jm,xv=Xm,kv=bm,Ev=Ym,va=Km,Cv=qm,Pv=(e,t,n)=>{const r=new Map,l={platform:gv,...n},o={...l.platform,_c:r};return Qm(e,t,{...l,platform:o})};var _v=typeof document<"u",Rv=function(){},cl=_v?C.useLayoutEffect:Rv;function Ul(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,l;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Ul(e[r],t[r]))return!1;return!0}if(l=Object.keys(e),n=l.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,l[r]))return!1;for(r=n;r--!==0;){const o=l[r];if(!(o==="_owner"&&e.$$typeof)&&!Ul(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function nd(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ga(e,t){const n=nd(e);return Math.round(t*n)/n}function jo(e){const t=C.useRef(e);return cl(()=>{t.current=e}),t}function Uv(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:l,elements:{reference:o,floating:i}={},transform:u=!0,whileElementsMounted:s,open:a}=e,[p,f]=C.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,v]=C.useState(r);Ul(m,r)||v(r);const[g,w]=C.useState(null),[S,d]=C.useState(null),c=C.useCallback(E=>{E!==P.current&&(P.current=E,w(E))},[]),h=C.useCallback(E=>{E!==_.current&&(_.current=E,d(E))},[]),y=o||g,x=i||S,P=C.useRef(null),_=C.useRef(null),R=C.useRef(p),M=s!=null,O=jo(s),U=jo(l),q=jo(a),G=C.useCallback(()=>{if(!P.current||!_.current)return;const E={placement:t,strategy:n,middleware:m};U.current&&(E.platform=U.current),Pv(P.current,_.current,E).then(N=>{const T={...N,isPositioned:q.current!==!1};H.current&&!Ul(R.current,T)&&(R.current=T,zu.flushSync(()=>{f(T)}))})},[m,t,n,U,q]);cl(()=>{a===!1&&R.current.isPositioned&&(R.current.isPositioned=!1,f(E=>({...E,isPositioned:!1})))},[a]);const H=C.useRef(!1);cl(()=>(H.current=!0,()=>{H.current=!1}),[]),cl(()=>{if(y&&(P.current=y),x&&(_.current=x),y&&x){if(O.current)return O.current(y,x,G);G()}},[y,x,G,O,M]);const Ne=C.useMemo(()=>({reference:P,floating:_,setReference:c,setFloating:h}),[c,h]),K=C.useMemo(()=>({reference:y,floating:x}),[y,x]),te=C.useMemo(()=>{const E={position:n,left:0,top:0};if(!K.floating)return E;const N=ga(K.floating,p.x),T=ga(K.floating,p.y);return u?{...E,transform:"translate("+N+"px, "+T+"px)",...nd(K.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:N,top:T}},[n,u,K.floating,p.x,p.y]);return C.useMemo(()=>({...p,update:G,refs:Ne,elements:K,floatingStyles:te}),[p,G,Ne,K,te])}const Lv=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:l}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?va({element:r.current,padding:l}).fn(n):{}:r?va({element:r,padding:l}).fn(n):{}}}},$v=(e,t)=>{const n=wv(e);return{name:n.name,fn:n.fn,options:[e,t]}},Bv=(e,t)=>{const n=Sv(e);return{name:n.name,fn:n.fn,options:[e,t]}},Wv=(e,t)=>({fn:Cv(e).fn,options:[e,t]}),Vv=(e,t)=>{const n=xv(e);return{name:n.name,fn:n.fn,options:[e,t]}},Hv=(e,t)=>{const n=kv(e);return{name:n.name,fn:n.fn,options:[e,t]}},Qv=(e,t)=>{const n=Ev(e);return{name:n.name,fn:n.fn,options:[e,t]}},Kv=(e,t)=>{const n=Lv(e);return{name:n.name,fn:n.fn,options:[e,t]}};export{Fv as B,Av as L,Mv as O,Sd as R,zu as a,Hv as b,Kv as c,jv as d,$f as e,Vv as f,Or as g,Qv as h,Iv as i,Nv as j,wd as k,Wv as l,Ov as m,Dv as n,$v as o,km as p,Qu as q,C as r,Bv as s,Tv as t,Uv as u,zv as v};
diff --git a/embed_static/static/spa/assets/spinner-DH1syOsQ.js b/embed_static/static/spa/assets/spinner-DH1syOsQ.js
deleted file mode 100644
index ac68a60..0000000
--- a/embed_static/static/spa/assets/spinner-DH1syOsQ.js
+++ /dev/null
@@ -1 +0,0 @@
-import{j as e}from"./react-vendor-CgzNJrV9.js";import{c as s}from"./index-474mTIgd.js";import{p as m}from"./ui-vendor-CdH1UOKW.js";const t={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-8 w-8"};function p({className:r,size:a="md"}){return e.jsx(m,{className:s("animate-spin text-[var(--j13-green)]",t[a],r),"aria-label":"加载中"})}export{p as S};
diff --git a/embed_static/static/spa/assets/ui-vendor-CdH1UOKW.js b/embed_static/static/spa/assets/ui-vendor-BLDO93FK.js
similarity index 59%
rename from embed_static/static/spa/assets/ui-vendor-CdH1UOKW.js
rename to embed_static/static/spa/assets/ui-vendor-BLDO93FK.js
index 3be2764..9890c29 100644
--- a/embed_static/static/spa/assets/ui-vendor-CdH1UOKW.js
+++ b/embed_static/static/spa/assets/ui-vendor-BLDO93FK.js
@@ -1,4 +1,4 @@
-import{r as c,j as d,R as at,a as Ht,u as to,o as no,s as ro,f as oo,b as ao,c as co,h as so,d as io,l as uo}from"./react-vendor-CgzNJrV9.js";/**
+import{r as c,j as d,R as at,a as Ht,u as to,o as no,s as ro,f as oo,b as ao,c as co,h as so,d as io,l as uo}from"./react-vendor-CFzzFOsg.js";/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
@@ -38,173 +38,198 @@ import{r as c,j as d,R as at,a as Ht,u as to,o as no,s as ro,f as oo,b as ao,c a
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const go=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Di=M("arrow-left",go);/**
+ */const go=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],ji=M("arrow-left",go);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const yo=[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]],Ii=M("bold",yo);/**
+ */const yo=[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]],Li=M("bold",yo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const wo=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ki=M("check",wo);/**
+ */const wo=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Fi=M("check",wo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Co=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Ti=M("chevron-right",Co);/**
+ */const xo=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],$i=M("chevron-right",xo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const xo=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Oi=M("circle",xo);/**
+ */const Co=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Wi=M("circle",Co);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const bo=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],ji=M("clock",bo);/**
+ */const bo=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],Bi=M("clock",bo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Eo=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],Li=M("code",Eo);/**
+ */const Eo=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],Ui=M("code",Eo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const So=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Fi=M("eye",So);/**
+ */const _o=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Gi=M("database",_o);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const _o=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],$i=M("folder",_o);/**
+ */const So=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ki=M("eye",So);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Mo=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Wi=M("house",Mo);/**
+ */const Mo=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],zi=M("file-text",Mo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Ro=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],Bi=M("image",Ro);/**
+ */const Ro=[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]],Hi=M("folder-kanban",Ro);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Po=[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]],Ui=M("italic",Po);/**
+ */const Po=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],Vi=M("folder",Po);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Ao=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],Gi=M("layout-dashboard",Ao);/**
+ */const Ao=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Yi=M("house",Ao);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const No=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Ki=M("layout-grid",No);/**
+ */const No=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],Xi=M("image",No);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Do=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],zi=M("link",Do);/**
+ */const Do=[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]],qi=M("italic",Do);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Io=[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]],Hi=M("list-ordered",Io);/**
+ */const ko=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],Zi=M("layout-dashboard",ko);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const ko=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],Vi=M("list",ko);/**
+ */const Io=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Qi=M("layout-grid",Io);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const To=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Yi=M("loader-circle",To);/**
+ */const To=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],Ji=M("link",To);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Oo=[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]],Xi=M("lock-keyhole",Oo);/**
+ */const Oo=[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]],eu=M("list-ordered",Oo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const jo=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],qi=M("message-square",jo);/**
+ */const jo=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],tu=M("list",jo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Lo=[["path",{d:"M5 12h14",key:"1ays0h"}]],Zi=M("minus",Lo);/**
+ */const Lo=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],nu=M("loader-circle",Lo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Fo=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],Qi=M("moon",Fo);/**
+ */const Fo=[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]],ru=M("lock-keyhole",Fo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const $o=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Ji=M("pencil",$o);/**
+ */const $o=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],ou=M("message-square",$o);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Wo=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],eu=M("plus",Wo);/**
+ */const Wo=[["path",{d:"M5 12h14",key:"1ays0h"}]],au=M("minus",Wo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Bo=[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]],tu=M("quote",Bo);/**
+ */const Bo=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],cu=M("moon",Bo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Uo=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],nu=M("search",Uo);/**
+ */const Uo=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],su=M("pencil",Uo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Go=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],ru=M("send",Go);/**
+ */const Go=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],iu=M("pin",Go);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Ko=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],ou=M("settings",Ko);/**
+ */const Ko=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],uu=M("plus",Ko);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const zo=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],au=M("star",zo);/**
+ */const zo=[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]],lu=M("quote",zo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Ho=[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]],cu=M("strikethrough",Ho);/**
+ */const Ho=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],du=M("search",Ho);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Vo=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],su=M("sun",Vo);/**
+ */const Vo=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],fu=M("send",Vo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Yo=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],iu=M("tag",Yo);/**
+ */const Yo=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],pu=M("settings",Yo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const Xo=[["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",key:"emmmcr"}],["path",{d:"M7 10v12",key:"1qc93n"}]],uu=M("thumbs-up",Xo);/**
+ */const Xo=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],vu=M("star",Xo);/**
* @license lucide-react v1.18.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
- */const qo=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],lu=M("x",qo);function _(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Nt(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function ct(...e){return t=>{let n=!1;const r=e.map(o=>{const a=Nt(o,t);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let o=0;o{const{children:i,...s}=a,p=c.useMemo(()=>s,Object.values(s));return d.jsx(n.Provider,{value:p,children:i})};r.displayName=e+"Provider";function o(a){const i=c.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[r,o]}function J(e,t=[]){let n=[];function r(a,i){const s=c.createContext(i);s.displayName=a+"Context";const p=n.length;n=[...n,i];const l=u=>{var w;const{scope:v,children:y,...g}=u,h=((w=v==null?void 0:v[e])==null?void 0:w[p])||s,m=c.useMemo(()=>g,Object.values(g));return d.jsx(h.Provider,{value:m,children:y})};l.displayName=a+"Provider";function f(u,v){var h;const y=((h=v==null?void 0:v[e])==null?void 0:h[p])||s,g=c.useContext(y);if(g)return g;if(i!==void 0)return i;throw new Error(`\`${u}\` must be used within \`${a}\``)}return[l,f]}const o=()=>{const a=n.map(i=>c.createContext(i));return function(s){const p=(s==null?void 0:s[e])||a;return c.useMemo(()=>({[`__scope${e}`]:{...s,[e]:p}}),[s,p])}};return o.scopeName=e,[r,Qo(o,...t)]}function Qo(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(a){const i=r.reduce((s,{useScope:p,scopeName:l})=>{const u=p(a)[`__scope${l}`];return{...s,...u}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}var Y=globalThis!=null&&globalThis.document?c.useLayoutEffect:()=>{},Jo=at[" useInsertionEffect ".trim().toString()]||Y;function We({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,a,i]=ea({defaultProp:t,onChange:n}),s=e!==void 0,p=s?e:o;{const f=c.useRef(e!==void 0);c.useEffect(()=>{const u=f.current;u!==s&&console.warn(`${r} is changing from ${u?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=s},[s,r])}const l=c.useCallback(f=>{var u;if(s){const v=ta(f)?f(e):f;v!==e&&((u=i.current)==null||u.call(i,v))}else a(f)},[s,e,a,i]);return[p,l]}function ea({defaultProp:e,onChange:t}){const[n,r]=c.useState(e),o=c.useRef(n),a=c.useRef(t);return Jo(()=>{a.current=t},[t]),c.useEffect(()=>{var i;o.current!==n&&((i=a.current)==null||i.call(a,n),o.current=n)},[n,o]),[n,r,a]}function ta(e){return typeof e=="function"}function ve(e){const t=c.forwardRef((n,r)=>{let{children:o,...a}=n,i=null,s=!1;const p=[];Dt(o)&&typeof Pe=="function"&&(o=Pe(o._payload)),c.Children.forEach(o,v=>{var y;if(ca(v)){s=!0;const g=v;let h="child"in g.props?g.props.child:g.props.children;Dt(h)&&typeof Pe=="function"&&(h=Pe(h._payload)),i=ra(g,h),p.push((y=i==null?void 0:i.props)==null?void 0:y.children)}else p.push(v)}),i?i=c.cloneElement(i,void 0,p):!s&&c.Children.count(o)===1&&c.isValidElement(o)&&(i=o);const l=i?aa(i):void 0,f=D(r,l);if(!i){if(o||o===0)throw new Error(s?la(e):ua(e));return o}const u=oa(a,i.props??{});return i.type!==c.Fragment&&(u.ref=r?f:l),c.cloneElement(i,u)});return t.displayName=`${e}.Slot`,t}var du=ve("Slot"),Yt=Symbol.for("radix.slottable");function na(e){const t=n=>"child"in n?n.children(n.child):n.children;return t.displayName=`${e}.Slottable`,t.__radixId=Yt,t}var ra=(e,t)=>{if("child"in e.props){const n=e.props.child;return c.isValidElement(n)?c.cloneElement(n,void 0,e.props.children(n.props.children)):null}return c.isValidElement(t)?t:null};function oa(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...s)=>{const p=a(...s);return o(...s),p}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function aa(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function ca(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Yt}var sa=Symbol.for("react.lazy");function Dt(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===sa&&"_payload"in e&&ia(e._payload)}function ia(e){return typeof e=="object"&&e!==null&&"then"in e}var ua=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,la=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Pe=at[" use ".trim().toString()],da=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],N=da.reduce((e,t)=>{const n=ve(`Primitive.${t}`),r=c.forwardRef((o,a)=>{const{asChild:i,...s}=o,p=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(p,{...s,ref:a})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Xt(e,t){e&&Ht.flushSync(()=>e.dispatchEvent(t))}function qt(e){const t=e+"CollectionProvider",[n,r]=J(t),[o,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=h=>{const{scope:m,children:w}=h,x=c.useRef(null),C=c.useRef(new Map).current;return d.jsx(o,{scope:m,itemMap:C,collectionRef:x,children:w})};i.displayName=t;const s=e+"CollectionSlot",p=ve(s),l=c.forwardRef((h,m)=>{const{scope:w,children:x}=h,C=a(s,w),b=D(m,C.collectionRef);return d.jsx(p,{ref:b,children:x})});l.displayName=s;const f=e+"CollectionItemSlot",u="data-radix-collection-item",v=ve(f),y=c.forwardRef((h,m)=>{const{scope:w,children:x,...C}=h,b=c.useRef(null),R=D(m,b),P=a(f,w);return c.useEffect(()=>(P.itemMap.set(b,{ref:b,...C}),()=>void P.itemMap.delete(b))),d.jsx(v,{[u]:"",ref:R,children:x})});y.displayName=f;function g(h){const m=a(e+"CollectionConsumer",h);return c.useCallback(()=>{const x=m.collectionRef.current;if(!x)return[];const C=Array.from(x.querySelectorAll(`[${u}]`));return Array.from(m.itemMap.values()).sort((P,S)=>C.indexOf(P.ref.current)-C.indexOf(S.ref.current))},[m.collectionRef,m.itemMap])}return[{Provider:i,Slot:l,ItemSlot:y},g,r]}var fa=c.createContext(void 0);function Zt(e){const t=c.useContext(fa);return e||t||"ltr"}function X(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function pa(e,t=globalThis==null?void 0:globalThis.document){const n=X(e);c.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var va="DismissableLayer",tt="dismissableLayer.update",ha="dismissableLayer.pointerDownOutside",ma="dismissableLayer.focusOutside",It,Qt=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),st=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:s,...p}=e,l=c.useContext(Qt),[f,u]=c.useState(null),v=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=c.useState({}),g=D(t,S=>u(S)),h=Array.from(l.layers),[m]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),w=h.indexOf(m),x=f?h.indexOf(f):-1,C=l.layersWithOutsidePointerEventsDisabled.size>0,b=x>=w,R=wa(S=>{const A=S.target,k=[...l.branches].some(T=>T.contains(A));!b||k||(o==null||o(S),i==null||i(S),S.defaultPrevented||s==null||s())},v),P=Ca(S=>{const A=S.target;[...l.branches].some(T=>T.contains(A))||(a==null||a(S),i==null||i(S),S.defaultPrevented||s==null||s())},v);return pa(S=>{x===l.layers.size-1&&(r==null||r(S),!S.defaultPrevented&&s&&(S.preventDefault(),s()))},v),c.useEffect(()=>{if(f)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(It=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(f)),l.layers.add(f),kt(),()=>{n&&(l.layersWithOutsidePointerEventsDisabled.delete(f),l.layersWithOutsidePointerEventsDisabled.size===0&&(v.body.style.pointerEvents=It))}},[f,v,n,l]),c.useEffect(()=>()=>{f&&(l.layers.delete(f),l.layersWithOutsidePointerEventsDisabled.delete(f),kt())},[f,l]),c.useEffect(()=>{const S=()=>y({});return document.addEventListener(tt,S),()=>document.removeEventListener(tt,S)},[]),d.jsx(N.div,{...p,ref:g,style:{pointerEvents:C?b?"auto":"none":void 0,...e.style},onFocusCapture:_(e.onFocusCapture,P.onFocusCapture),onBlurCapture:_(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:_(e.onPointerDownCapture,R.onPointerDownCapture)})});st.displayName=va;var ga="DismissableLayerBranch",ya=c.forwardRef((e,t)=>{const n=c.useContext(Qt),r=c.useRef(null),o=D(t,r);return c.useEffect(()=>{const a=r.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),d.jsx(N.div,{...e,ref:o})});ya.displayName=ga;function wa(e,t=globalThis==null?void 0:globalThis.document){const n=X(e),r=c.useRef(!1),o=c.useRef(()=>{});return c.useEffect(()=>{const a=s=>{if(s.target&&!r.current){let p=function(){Jt(ha,n,l,{discrete:!0})};const l={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=p,t.addEventListener("click",o.current,{once:!0})):p()}else t.removeEventListener("click",o.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Ca(e,t=globalThis==null?void 0:globalThis.document){const n=X(e),r=c.useRef(!1);return c.useEffect(()=>{const o=a=>{a.target&&!r.current&&Jt(ma,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function kt(){const e=new CustomEvent(tt);document.dispatchEvent(e)}function Jt(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Xt(o,a):o.dispatchEvent(a)}var Ae=0,z=null;function en(){c.useEffect(()=>{z||(z={start:Tt(),end:Tt()});const{start:e,end:t}=z;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Ae++,()=>{Ae===1&&(z==null||z.start.remove(),z==null||z.end.remove(),z=null),Ae=Math.max(0,Ae-1)}},[])}function Tt(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Ye="focusScope.autoFocusOnMount",Xe="focusScope.autoFocusOnUnmount",Ot={bubbles:!1,cancelable:!0},xa="FocusScope",it=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[s,p]=c.useState(null),l=X(o),f=X(a),u=c.useRef(null),v=D(t,h=>p(h)),y=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(r){let h=function(C){if(y.paused||!s)return;const b=C.target;s.contains(b)?u.current=b:Q(u.current,{select:!0})},m=function(C){if(y.paused||!s)return;const b=C.relatedTarget;b!==null&&(s.contains(b)||Q(u.current,{select:!0}))},w=function(C){if(document.activeElement===document.body)for(const R of C)R.removedNodes.length>0&&Q(s)};document.addEventListener("focusin",h),document.addEventListener("focusout",m);const x=new MutationObserver(w);return s&&x.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",h),document.removeEventListener("focusout",m),x.disconnect()}}},[r,s,y.paused]),c.useEffect(()=>{if(s){Lt.add(y);const h=document.activeElement;if(!s.contains(h)){const w=new CustomEvent(Ye,Ot);s.addEventListener(Ye,l),s.dispatchEvent(w),w.defaultPrevented||(ba(Ra(tn(s)),{select:!0}),document.activeElement===h&&Q(s))}return()=>{s.removeEventListener(Ye,l),setTimeout(()=>{const w=new CustomEvent(Xe,Ot);s.addEventListener(Xe,f),s.dispatchEvent(w),w.defaultPrevented||Q(h??document.body,{select:!0}),s.removeEventListener(Xe,f),Lt.remove(y)},0)}}},[s,l,f,y]);const g=c.useCallback(h=>{if(!n&&!r||y.paused)return;const m=h.key==="Tab"&&!h.altKey&&!h.ctrlKey&&!h.metaKey,w=document.activeElement;if(m&&w){const x=h.currentTarget,[C,b]=Ea(x);C&&b?!h.shiftKey&&w===b?(h.preventDefault(),n&&Q(C,{select:!0})):h.shiftKey&&w===C&&(h.preventDefault(),n&&Q(b,{select:!0})):w===x&&h.preventDefault()}},[n,r,y.paused]);return d.jsx(N.div,{tabIndex:-1,...i,ref:v,onKeyDown:g})});it.displayName=xa;function ba(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Q(r,{select:t}),document.activeElement!==n)return}function Ea(e){const t=tn(e),n=jt(t,e),r=jt(t.reverse(),e);return[n,r]}function tn(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function jt(e,t){for(const n of e)if(!Sa(n,{upTo:t}))return n}function Sa(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function _a(e){return e instanceof HTMLInputElement&&"select"in e}function Q(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&_a(e)&&t&&e.select()}}var Lt=Ma();function Ma(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Ft(e,t),e.unshift(t)},remove(t){var n;e=Ft(e,t),(n=e[0])==null||n.resume()}}}function Ft(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Ra(e){return e.filter(t=>t.tagName!=="A")}var Pa=at[" useId ".trim().toString()]||(()=>{}),Aa=0;function de(e){const[t,n]=c.useState(Pa());return Y(()=>{n(r=>r??String(Aa++))},[e]),t?`radix-${t}`:""}var Na="Arrow",nn=c.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...a}=e;return d.jsx(N.svg,{...a,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:d.jsx("polygon",{points:"0,0 30,0 15,10"})})});nn.displayName=Na;var Da=nn;function rn(e){const[t,n]=c.useState(void 0);return Y(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const a=o[0];let i,s;if("borderBoxSize"in a){const p=a.borderBoxSize,l=Array.isArray(p)?p[0]:p;i=l.inlineSize,s=l.blockSize}else i=e.offsetWidth,s=e.offsetHeight;n({width:i,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var ut="Popper",[on,an]=J(ut),[Ia,cn]=on(ut),sn=e=>{const{__scopePopper:t,children:n}=e,[r,o]=c.useState(null),[a,i]=c.useState(void 0);return d.jsx(Ia,{scope:t,anchor:r,onAnchorChange:o,placementState:a,setPlacementState:i,children:n})};sn.displayName=ut;var un="PopperAnchor",ln=c.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,a=cn(un,n),i=c.useRef(null),s=a.onAnchorChange,p=c.useCallback(g=>{i.current=g,g&&s(g)},[s]),l=D(t,p),f=c.useRef(null);c.useEffect(()=>{if(!r)return;const g=f.current;f.current=r.current,g!==f.current&&s(f.current)});const u=a.placementState&&dt(a.placementState),v=u==null?void 0:u[0],y=u==null?void 0:u[1];return r?null:d.jsx(N.div,{"data-radix-popper-side":v,"data-radix-popper-align":y,...o,ref:l})});ln.displayName=un;var lt="PopperContent",[ka,Ta]=on(lt),dn=c.forwardRef((e,t)=>{var ge,B,ye,_t,Mt,Rt;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:a="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:p=!0,collisionBoundary:l,collisionPadding:f=0,sticky:u="partial",hideWhenDetached:v=!1,updatePositionStrategy:y="optimized",onPlaced:g,...h}=e,m=cn(lt,n),[w,x]=c.useState(null),C=D(t,we=>x(we)),[b,R]=c.useState(null),P=rn(b),S=(P==null?void 0:P.width)??0,A=(P==null?void 0:P.height)??0,k=r+(a!=="center"?"-"+a:""),T=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},I=l?Array.isArray(l)?l:[l]:void 0,K=I!==void 0&&I.length>0,V={padding:T,boundary:I==null?void 0:I.filter(ja),altBoundary:K},{refs:ae,floatingStyles:ce,placement:L,isPositioned:se,middlewareData:F}=to({strategy:"fixed",placement:k,whileElementsMounted:(...we)=>io(...we,{animationFrame:y==="always"}),elements:{reference:m.anchor},middleware:[no({mainAxis:o+A,alignmentAxis:i}),p&&ro({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?uo():void 0,...V}),p&&oo({...V}),ao({...V,apply:({elements:we,rects:Pt,availableWidth:Zr,availableHeight:Qr})=>{const{width:Jr,height:eo}=Pt.reference,Re=we.floating.style;Re.setProperty("--radix-popper-available-width",`${Zr}px`),Re.setProperty("--radix-popper-available-height",`${Qr}px`),Re.setProperty("--radix-popper-anchor-width",`${Jr}px`),Re.setProperty("--radix-popper-anchor-height",`${eo}px`)}}),b&&co({element:b,padding:s}),La({arrowWidth:S,arrowHeight:A}),v&&so({strategy:"referenceHidden",...V})]}),E=m.setPlacementState;Y(()=>(E(L),()=>{E(void 0)}),[L,E]);const[O,$]=dt(L),W=X(g);Y(()=>{se&&(W==null||W())},[se,W]);const he=(ge=F.arrow)==null?void 0:ge.x,me=(B=F.arrow)==null?void 0:B.y,Me=((ye=F.arrow)==null?void 0:ye.centerOffset)!==0,[te,Z]=c.useState();return Y(()=>{w&&Z(window.getComputedStyle(w).zIndex)},[w]),d.jsx("div",{ref:ae.setFloating,"data-radix-popper-content-wrapper":"",style:{...ce,transform:se?ce.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:te,"--radix-popper-transform-origin":[(_t=F.transformOrigin)==null?void 0:_t.x,(Mt=F.transformOrigin)==null?void 0:Mt.y].join(" "),...((Rt=F.hide)==null?void 0:Rt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:d.jsx(ka,{scope:n,placedSide:O,placedAlign:$,onArrowChange:R,arrowX:he,arrowY:me,shouldHideArrow:Me,children:d.jsx(N.div,{"data-side":O,"data-align":$,...h,ref:C,style:{...h.style,animation:se?void 0:"none"}})})})});dn.displayName=lt;var fn="PopperArrow",Oa={top:"bottom",right:"left",bottom:"top",left:"right"},pn=c.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,a=Ta(fn,r),i=Oa[a.placedSide];return d.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:d.jsx(Da,{...o,ref:n,style:{...o.style,display:"block"}})})});pn.displayName=fn;function ja(e){return e!==null}var La=e=>({name:"transformOrigin",options:e,fn(t){var m,w,x;const{placement:n,rects:r,middlewareData:o}=t,i=((m=o.arrow)==null?void 0:m.centerOffset)!==0,s=i?0:e.arrowWidth,p=i?0:e.arrowHeight,[l,f]=dt(n),u={start:"0%",center:"50%",end:"100%"}[f],v=(((w=o.arrow)==null?void 0:w.x)??0)+s/2,y=(((x=o.arrow)==null?void 0:x.y)??0)+p/2;let g="",h="";return l==="bottom"?(g=i?u:`${v}px`,h=`${-p}px`):l==="top"?(g=i?u:`${v}px`,h=`${r.floating.height+p}px`):l==="right"?(g=`${-p}px`,h=i?u:`${y}px`):l==="left"&&(g=`${r.floating.width+p}px`,h=i?u:`${y}px`),{data:{x:g,y:h}}}});function dt(e){const[t,n="center"]=e.split("-");return[t,n]}var Fa=sn,$a=ln,Wa=dn,Ba=pn,Ua="Portal",ft=c.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[o,a]=c.useState(!1);Y(()=>a(!0),[]);const i=n||o&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return i?Ht.createPortal(d.jsx(N.div,{...r,ref:t}),i):null});ft.displayName=Ua;function Ga(e,t){return c.useReducer((n,r)=>t[n][r]??n,e)}var ee=e=>{const{present:t,children:n}=e,r=Ka(t),o=typeof n=="function"?n({present:r.isPresent}):c.Children.only(n),a=za(r.ref,Ha(o));return typeof n=="function"||r.isPresent?c.cloneElement(o,{ref:a}):null};ee.displayName="Presence";function Ka(e){const[t,n]=c.useState(),r=c.useRef(null),o=c.useRef(e),a=c.useRef("none"),i=e?"mounted":"unmounted",[s,p]=Ga(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const l=Ne(r.current);a.current=s==="mounted"?l:"none"},[s]),Y(()=>{const l=r.current,f=o.current;if(f!==e){const v=a.current,y=Ne(l);e?p("MOUNT"):y==="none"||(l==null?void 0:l.display)==="none"?p("UNMOUNT"):p(f&&v!==y?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,p]),Y(()=>{if(t){let l;const f=t.ownerDocument.defaultView??window,u=y=>{const h=Ne(r.current).includes(CSS.escape(y.animationName));if(y.target===t&&h&&(p("ANIMATION_END"),!o.current)){const m=t.style.animationFillMode;t.style.animationFillMode="forwards",l=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=m)})}},v=y=>{y.target===t&&(a.current=Ne(r.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",u),t.addEventListener("animationend",u),()=>{f.clearTimeout(l),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",u),t.removeEventListener("animationend",u)}}else p("ANIMATION_END")},[t,p]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:c.useCallback(l=>{r.current=l?getComputedStyle(l):null,n(l)},[])}}function $t(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function za(...e){const t=c.useRef(e);return t.current=e,c.useCallback(n=>{const r=t.current;let o=!1;const a=r.map(i=>{const s=$t(i,n);return!o&&typeof s=="function"&&(o=!0),s});if(o)return()=>{for(let i=0;id.jsx(nt.Provider,{scope:e.__scopeRovingFocusGroup,children:d.jsx(nt.Slot,{scope:e.__scopeRovingFocusGroup,children:d.jsx(Qa,{...e,ref:t})})}));mn.displayName=Ee;var Qa=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:p,onEntryFocus:l,preventScrollOnEntryFocus:f=!1,...u}=e,v=c.useRef(null),y=D(t,v),g=Zt(a),[h,m]=We({prop:i,defaultProp:s??null,onChange:p,caller:Ee}),[w,x]=c.useState(!1),C=X(l),b=vn(n),R=c.useRef(!1),[P,S]=c.useState(0);return c.useEffect(()=>{const A=v.current;if(A)return A.addEventListener(qe,C),()=>A.removeEventListener(qe,C)},[C]),d.jsx(qa,{scope:n,orientation:r,dir:g,loop:o,currentTabStopId:h,onItemFocus:c.useCallback(A=>m(A),[m]),onItemShiftTab:c.useCallback(()=>x(!0),[]),onFocusableItemAdd:c.useCallback(()=>S(A=>A+1),[]),onFocusableItemRemove:c.useCallback(()=>S(A=>A-1),[]),children:d.jsx(N.div,{tabIndex:w||P===0?-1:0,"data-orientation":r,...u,ref:y,style:{outline:"none",...e.style},onMouseDown:_(e.onMouseDown,()=>{R.current=!0}),onFocus:_(e.onFocus,A=>{const k=!R.current;if(A.target===A.currentTarget&&k&&!w){const T=new CustomEvent(qe,Va);if(A.currentTarget.dispatchEvent(T),!T.defaultPrevented){const I=b().filter(L=>L.focusable),K=I.find(L=>L.active),V=I.find(L=>L.id===h),ce=[K,V,...I].filter(Boolean).map(L=>L.ref.current);wn(ce,f)}}R.current=!1}),onBlur:_(e.onBlur,()=>x(!1))})})}),gn="RovingFocusGroupItem",yn=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:a,children:i,...s}=e,p=de(),l=a||p,f=Za(gn,n),u=f.currentTabStopId===l,v=vn(n),{onFocusableItemAdd:y,onFocusableItemRemove:g,currentTabStopId:h}=f;return c.useEffect(()=>{if(r)return y(),()=>g()},[r,y,g]),d.jsx(nt.ItemSlot,{scope:n,id:l,focusable:r,active:o,children:d.jsx(N.span,{tabIndex:u?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:_(e.onMouseDown,m=>{r?f.onItemFocus(l):m.preventDefault()}),onFocus:_(e.onFocus,()=>f.onItemFocus(l)),onKeyDown:_(e.onKeyDown,m=>{if(m.key==="Tab"&&m.shiftKey){f.onItemShiftTab();return}if(m.target!==m.currentTarget)return;const w=tc(m,f.orientation,f.dir);if(w!==void 0){if(m.metaKey||m.ctrlKey||m.altKey||m.shiftKey)return;m.preventDefault();let C=v().filter(b=>b.focusable).map(b=>b.ref.current);if(w==="last")C.reverse();else if(w==="prev"||w==="next"){w==="prev"&&C.reverse();const b=C.indexOf(m.currentTarget);C=f.loop?nc(C,b+1):C.slice(b+1)}setTimeout(()=>wn(C))}}),children:typeof i=="function"?i({isCurrentTabStop:u,hasTabStop:h!=null}):i})})});yn.displayName=gn;var Ja={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ec(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function tc(e,t,n){const r=ec(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Ja[r]}function wn(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function nc(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var rc=mn,oc=yn,ac=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ie=new WeakMap,De=new WeakMap,Ie={},Ze=0,Cn=function(e){return e&&(e.host||Cn(e.parentNode))},cc=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Cn(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},sc=function(e,t,n,r){var o=cc(t,Array.isArray(e)?e:[e]);Ie[n]||(Ie[n]=new WeakMap);var a=Ie[n],i=[],s=new Set,p=new Set(o),l=function(u){!u||s.has(u)||(s.add(u),l(u.parentNode))};o.forEach(l);var f=function(u){!u||p.has(u)||Array.prototype.forEach.call(u.children,function(v){if(s.has(v))f(v);else try{var y=v.getAttribute(r),g=y!==null&&y!=="false",h=(ie.get(v)||0)+1,m=(a.get(v)||0)+1;ie.set(v,h),a.set(v,m),i.push(v),h===1&&g&&De.set(v,!0),m===1&&v.setAttribute(n,"true"),g||v.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",v,w)}})};return f(t),s.clear(),Ze++,function(){i.forEach(function(u){var v=ie.get(u)-1,y=a.get(u)-1;ie.set(u,v),a.set(u,y),v||(De.has(u)||u.removeAttribute(r),De.delete(u)),y||u.removeAttribute(n)}),Ze--,Ze||(ie=new WeakMap,ie=new WeakMap,De=new WeakMap,Ie={})}},xn=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=ac(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),sc(r,o,n,"aria-hidden")):function(){return null}},H=function(){return H=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return Sc;var t=_c(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Rc=_n(),fe="data-scroll-locked",Pc=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,s=e.gap;return n===void 0&&(n="margin"),`
- .`.concat(uc,` {
+ */const qo=[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]],hu=M("strikethrough",qo);/**
+ * @license lucide-react v1.18.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Zo=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],mu=M("sun",Zo);/**
+ * @license lucide-react v1.18.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Qo=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],gu=M("tag",Qo);/**
+ * @license lucide-react v1.18.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Jo=[["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",key:"emmmcr"}],["path",{d:"M7 10v12",key:"1qc93n"}]],yu=M("thumbs-up",Jo);/**
+ * @license lucide-react v1.18.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const ea=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],wu=M("users",ea);/**
+ * @license lucide-react v1.18.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const ta=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],xu=M("x",ta);function S(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Nt(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function ct(...e){return t=>{let n=!1;const r=e.map(o=>{const a=Nt(o,t);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let o=0;o{const{children:i,...s}=a,p=c.useMemo(()=>s,Object.values(s));return d.jsx(n.Provider,{value:p,children:i})};r.displayName=e+"Provider";function o(a){const i=c.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[r,o]}function J(e,t=[]){let n=[];function r(a,i){const s=c.createContext(i);s.displayName=a+"Context";const p=n.length;n=[...n,i];const l=u=>{var w;const{scope:v,children:y,...g}=u,h=((w=v==null?void 0:v[e])==null?void 0:w[p])||s,m=c.useMemo(()=>g,Object.values(g));return d.jsx(h.Provider,{value:m,children:y})};l.displayName=a+"Provider";function f(u,v){var h;const y=((h=v==null?void 0:v[e])==null?void 0:h[p])||s,g=c.useContext(y);if(g)return g;if(i!==void 0)return i;throw new Error(`\`${u}\` must be used within \`${a}\``)}return[l,f]}const o=()=>{const a=n.map(i=>c.createContext(i));return function(s){const p=(s==null?void 0:s[e])||a;return c.useMemo(()=>({[`__scope${e}`]:{...s,[e]:p}}),[s,p])}};return o.scopeName=e,[r,ra(o,...t)]}function ra(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(a){const i=r.reduce((s,{useScope:p,scopeName:l})=>{const u=p(a)[`__scope${l}`];return{...s,...u}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}var Y=globalThis!=null&&globalThis.document?c.useLayoutEffect:()=>{},oa=at[" useInsertionEffect ".trim().toString()]||Y;function We({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,a,i]=aa({defaultProp:t,onChange:n}),s=e!==void 0,p=s?e:o;{const f=c.useRef(e!==void 0);c.useEffect(()=>{const u=f.current;u!==s&&console.warn(`${r} is changing from ${u?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=s},[s,r])}const l=c.useCallback(f=>{var u;if(s){const v=ca(f)?f(e):f;v!==e&&((u=i.current)==null||u.call(i,v))}else a(f)},[s,e,a,i]);return[p,l]}function aa({defaultProp:e,onChange:t}){const[n,r]=c.useState(e),o=c.useRef(n),a=c.useRef(t);return oa(()=>{a.current=t},[t]),c.useEffect(()=>{var i;o.current!==n&&((i=a.current)==null||i.call(a,n),o.current=n)},[n,o]),[n,r,a]}function ca(e){return typeof e=="function"}function ve(e){const t=c.forwardRef((n,r)=>{let{children:o,...a}=n,i=null,s=!1;const p=[];Dt(o)&&typeof Pe=="function"&&(o=Pe(o._payload)),c.Children.forEach(o,v=>{var y;if(da(v)){s=!0;const g=v;let h="child"in g.props?g.props.child:g.props.children;Dt(h)&&typeof Pe=="function"&&(h=Pe(h._payload)),i=ia(g,h),p.push((y=i==null?void 0:i.props)==null?void 0:y.children)}else p.push(v)}),i?i=c.cloneElement(i,void 0,p):!s&&c.Children.count(o)===1&&c.isValidElement(o)&&(i=o);const l=i?la(i):void 0,f=D(r,l);if(!i){if(o||o===0)throw new Error(s?ha(e):va(e));return o}const u=ua(a,i.props??{});return i.type!==c.Fragment&&(u.ref=r?f:l),c.cloneElement(i,u)});return t.displayName=`${e}.Slot`,t}var Cu=ve("Slot"),Yt=Symbol.for("radix.slottable");function sa(e){const t=n=>"child"in n?n.children(n.child):n.children;return t.displayName=`${e}.Slottable`,t.__radixId=Yt,t}var ia=(e,t)=>{if("child"in e.props){const n=e.props.child;return c.isValidElement(n)?c.cloneElement(n,void 0,e.props.children(n.props.children)):null}return c.isValidElement(t)?t:null};function ua(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...s)=>{const p=a(...s);return o(...s),p}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function la(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function da(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Yt}var fa=Symbol.for("react.lazy");function Dt(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===fa&&"_payload"in e&&pa(e._payload)}function pa(e){return typeof e=="object"&&e!==null&&"then"in e}var va=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,ha=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Pe=at[" use ".trim().toString()],ma=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],N=ma.reduce((e,t)=>{const n=ve(`Primitive.${t}`),r=c.forwardRef((o,a)=>{const{asChild:i,...s}=o,p=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(p,{...s,ref:a})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Xt(e,t){e&&Ht.flushSync(()=>e.dispatchEvent(t))}function qt(e){const t=e+"CollectionProvider",[n,r]=J(t),[o,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=h=>{const{scope:m,children:w}=h,C=c.useRef(null),x=c.useRef(new Map).current;return d.jsx(o,{scope:m,itemMap:x,collectionRef:C,children:w})};i.displayName=t;const s=e+"CollectionSlot",p=ve(s),l=c.forwardRef((h,m)=>{const{scope:w,children:C}=h,x=a(s,w),b=D(m,x.collectionRef);return d.jsx(p,{ref:b,children:C})});l.displayName=s;const f=e+"CollectionItemSlot",u="data-radix-collection-item",v=ve(f),y=c.forwardRef((h,m)=>{const{scope:w,children:C,...x}=h,b=c.useRef(null),R=D(m,b),P=a(f,w);return c.useEffect(()=>(P.itemMap.set(b,{ref:b,...x}),()=>void P.itemMap.delete(b))),d.jsx(v,{[u]:"",ref:R,children:C})});y.displayName=f;function g(h){const m=a(e+"CollectionConsumer",h);return c.useCallback(()=>{const C=m.collectionRef.current;if(!C)return[];const x=Array.from(C.querySelectorAll(`[${u}]`));return Array.from(m.itemMap.values()).sort((P,_)=>x.indexOf(P.ref.current)-x.indexOf(_.ref.current))},[m.collectionRef,m.itemMap])}return[{Provider:i,Slot:l,ItemSlot:y},g,r]}var ga=c.createContext(void 0);function Zt(e){const t=c.useContext(ga);return e||t||"ltr"}function X(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function ya(e,t=globalThis==null?void 0:globalThis.document){const n=X(e);c.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var wa="DismissableLayer",tt="dismissableLayer.update",xa="dismissableLayer.pointerDownOutside",Ca="dismissableLayer.focusOutside",kt,Qt=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),st=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:s,...p}=e,l=c.useContext(Qt),[f,u]=c.useState(null),v=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=c.useState({}),g=D(t,_=>u(_)),h=Array.from(l.layers),[m]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),w=h.indexOf(m),C=f?h.indexOf(f):-1,x=l.layersWithOutsidePointerEventsDisabled.size>0,b=C>=w,R=_a(_=>{const A=_.target,I=[...l.branches].some(T=>T.contains(A));!b||I||(o==null||o(_),i==null||i(_),_.defaultPrevented||s==null||s())},v),P=Sa(_=>{const A=_.target;[...l.branches].some(T=>T.contains(A))||(a==null||a(_),i==null||i(_),_.defaultPrevented||s==null||s())},v);return ya(_=>{C===l.layers.size-1&&(r==null||r(_),!_.defaultPrevented&&s&&(_.preventDefault(),s()))},v),c.useEffect(()=>{if(f)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(kt=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(f)),l.layers.add(f),It(),()=>{n&&(l.layersWithOutsidePointerEventsDisabled.delete(f),l.layersWithOutsidePointerEventsDisabled.size===0&&(v.body.style.pointerEvents=kt))}},[f,v,n,l]),c.useEffect(()=>()=>{f&&(l.layers.delete(f),l.layersWithOutsidePointerEventsDisabled.delete(f),It())},[f,l]),c.useEffect(()=>{const _=()=>y({});return document.addEventListener(tt,_),()=>document.removeEventListener(tt,_)},[]),d.jsx(N.div,{...p,ref:g,style:{pointerEvents:x?b?"auto":"none":void 0,...e.style},onFocusCapture:S(e.onFocusCapture,P.onFocusCapture),onBlurCapture:S(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:S(e.onPointerDownCapture,R.onPointerDownCapture)})});st.displayName=wa;var ba="DismissableLayerBranch",Ea=c.forwardRef((e,t)=>{const n=c.useContext(Qt),r=c.useRef(null),o=D(t,r);return c.useEffect(()=>{const a=r.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),d.jsx(N.div,{...e,ref:o})});Ea.displayName=ba;function _a(e,t=globalThis==null?void 0:globalThis.document){const n=X(e),r=c.useRef(!1),o=c.useRef(()=>{});return c.useEffect(()=>{const a=s=>{if(s.target&&!r.current){let p=function(){Jt(xa,n,l,{discrete:!0})};const l={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=p,t.addEventListener("click",o.current,{once:!0})):p()}else t.removeEventListener("click",o.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Sa(e,t=globalThis==null?void 0:globalThis.document){const n=X(e),r=c.useRef(!1);return c.useEffect(()=>{const o=a=>{a.target&&!r.current&&Jt(Ca,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function It(){const e=new CustomEvent(tt);document.dispatchEvent(e)}function Jt(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Xt(o,a):o.dispatchEvent(a)}var Ae=0,z=null;function en(){c.useEffect(()=>{z||(z={start:Tt(),end:Tt()});const{start:e,end:t}=z;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Ae++,()=>{Ae===1&&(z==null||z.start.remove(),z==null||z.end.remove(),z=null),Ae=Math.max(0,Ae-1)}},[])}function Tt(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Ye="focusScope.autoFocusOnMount",Xe="focusScope.autoFocusOnUnmount",Ot={bubbles:!1,cancelable:!0},Ma="FocusScope",it=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[s,p]=c.useState(null),l=X(o),f=X(a),u=c.useRef(null),v=D(t,h=>p(h)),y=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(r){let h=function(x){if(y.paused||!s)return;const b=x.target;s.contains(b)?u.current=b:Q(u.current,{select:!0})},m=function(x){if(y.paused||!s)return;const b=x.relatedTarget;b!==null&&(s.contains(b)||Q(u.current,{select:!0}))},w=function(x){if(document.activeElement===document.body)for(const R of x)R.removedNodes.length>0&&Q(s)};document.addEventListener("focusin",h),document.addEventListener("focusout",m);const C=new MutationObserver(w);return s&&C.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",h),document.removeEventListener("focusout",m),C.disconnect()}}},[r,s,y.paused]),c.useEffect(()=>{if(s){Lt.add(y);const h=document.activeElement;if(!s.contains(h)){const w=new CustomEvent(Ye,Ot);s.addEventListener(Ye,l),s.dispatchEvent(w),w.defaultPrevented||(Ra(ka(tn(s)),{select:!0}),document.activeElement===h&&Q(s))}return()=>{s.removeEventListener(Ye,l),setTimeout(()=>{const w=new CustomEvent(Xe,Ot);s.addEventListener(Xe,f),s.dispatchEvent(w),w.defaultPrevented||Q(h??document.body,{select:!0}),s.removeEventListener(Xe,f),Lt.remove(y)},0)}}},[s,l,f,y]);const g=c.useCallback(h=>{if(!n&&!r||y.paused)return;const m=h.key==="Tab"&&!h.altKey&&!h.ctrlKey&&!h.metaKey,w=document.activeElement;if(m&&w){const C=h.currentTarget,[x,b]=Pa(C);x&&b?!h.shiftKey&&w===b?(h.preventDefault(),n&&Q(x,{select:!0})):h.shiftKey&&w===x&&(h.preventDefault(),n&&Q(b,{select:!0})):w===C&&h.preventDefault()}},[n,r,y.paused]);return d.jsx(N.div,{tabIndex:-1,...i,ref:v,onKeyDown:g})});it.displayName=Ma;function Ra(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Q(r,{select:t}),document.activeElement!==n)return}function Pa(e){const t=tn(e),n=jt(t,e),r=jt(t.reverse(),e);return[n,r]}function tn(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function jt(e,t){for(const n of e)if(!Aa(n,{upTo:t}))return n}function Aa(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Na(e){return e instanceof HTMLInputElement&&"select"in e}function Q(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Na(e)&&t&&e.select()}}var Lt=Da();function Da(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Ft(e,t),e.unshift(t)},remove(t){var n;e=Ft(e,t),(n=e[0])==null||n.resume()}}}function Ft(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function ka(e){return e.filter(t=>t.tagName!=="A")}var Ia=at[" useId ".trim().toString()]||(()=>{}),Ta=0;function de(e){const[t,n]=c.useState(Ia());return Y(()=>{n(r=>r??String(Ta++))},[e]),t?`radix-${t}`:""}var Oa="Arrow",nn=c.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...a}=e;return d.jsx(N.svg,{...a,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:d.jsx("polygon",{points:"0,0 30,0 15,10"})})});nn.displayName=Oa;var ja=nn;function rn(e){const[t,n]=c.useState(void 0);return Y(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const a=o[0];let i,s;if("borderBoxSize"in a){const p=a.borderBoxSize,l=Array.isArray(p)?p[0]:p;i=l.inlineSize,s=l.blockSize}else i=e.offsetWidth,s=e.offsetHeight;n({width:i,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var ut="Popper",[on,an]=J(ut),[La,cn]=on(ut),sn=e=>{const{__scopePopper:t,children:n}=e,[r,o]=c.useState(null),[a,i]=c.useState(void 0);return d.jsx(La,{scope:t,anchor:r,onAnchorChange:o,placementState:a,setPlacementState:i,children:n})};sn.displayName=ut;var un="PopperAnchor",ln=c.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,a=cn(un,n),i=c.useRef(null),s=a.onAnchorChange,p=c.useCallback(g=>{i.current=g,g&&s(g)},[s]),l=D(t,p),f=c.useRef(null);c.useEffect(()=>{if(!r)return;const g=f.current;f.current=r.current,g!==f.current&&s(f.current)});const u=a.placementState&&dt(a.placementState),v=u==null?void 0:u[0],y=u==null?void 0:u[1];return r?null:d.jsx(N.div,{"data-radix-popper-side":v,"data-radix-popper-align":y,...o,ref:l})});ln.displayName=un;var lt="PopperContent",[Fa,$a]=on(lt),dn=c.forwardRef((e,t)=>{var ge,B,ye,St,Mt,Rt;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:a="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:p=!0,collisionBoundary:l,collisionPadding:f=0,sticky:u="partial",hideWhenDetached:v=!1,updatePositionStrategy:y="optimized",onPlaced:g,...h}=e,m=cn(lt,n),[w,C]=c.useState(null),x=D(t,we=>C(we)),[b,R]=c.useState(null),P=rn(b),_=(P==null?void 0:P.width)??0,A=(P==null?void 0:P.height)??0,I=r+(a!=="center"?"-"+a:""),T=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},k=l?Array.isArray(l)?l:[l]:void 0,K=k!==void 0&&k.length>0,V={padding:T,boundary:k==null?void 0:k.filter(Ba),altBoundary:K},{refs:ae,floatingStyles:ce,placement:L,isPositioned:se,middlewareData:F}=to({strategy:"fixed",placement:I,whileElementsMounted:(...we)=>io(...we,{animationFrame:y==="always"}),elements:{reference:m.anchor},middleware:[no({mainAxis:o+A,alignmentAxis:i}),p&&ro({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?uo():void 0,...V}),p&&oo({...V}),ao({...V,apply:({elements:we,rects:Pt,availableWidth:Zr,availableHeight:Qr})=>{const{width:Jr,height:eo}=Pt.reference,Re=we.floating.style;Re.setProperty("--radix-popper-available-width",`${Zr}px`),Re.setProperty("--radix-popper-available-height",`${Qr}px`),Re.setProperty("--radix-popper-anchor-width",`${Jr}px`),Re.setProperty("--radix-popper-anchor-height",`${eo}px`)}}),b&&co({element:b,padding:s}),Ua({arrowWidth:_,arrowHeight:A}),v&&so({strategy:"referenceHidden",...V})]}),E=m.setPlacementState;Y(()=>(E(L),()=>{E(void 0)}),[L,E]);const[O,$]=dt(L),W=X(g);Y(()=>{se&&(W==null||W())},[se,W]);const he=(ge=F.arrow)==null?void 0:ge.x,me=(B=F.arrow)==null?void 0:B.y,Me=((ye=F.arrow)==null?void 0:ye.centerOffset)!==0,[te,Z]=c.useState();return Y(()=>{w&&Z(window.getComputedStyle(w).zIndex)},[w]),d.jsx("div",{ref:ae.setFloating,"data-radix-popper-content-wrapper":"",style:{...ce,transform:se?ce.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:te,"--radix-popper-transform-origin":[(St=F.transformOrigin)==null?void 0:St.x,(Mt=F.transformOrigin)==null?void 0:Mt.y].join(" "),...((Rt=F.hide)==null?void 0:Rt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:d.jsx(Fa,{scope:n,placedSide:O,placedAlign:$,onArrowChange:R,arrowX:he,arrowY:me,shouldHideArrow:Me,children:d.jsx(N.div,{"data-side":O,"data-align":$,...h,ref:x,style:{...h.style,animation:se?void 0:"none"}})})})});dn.displayName=lt;var fn="PopperArrow",Wa={top:"bottom",right:"left",bottom:"top",left:"right"},pn=c.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,a=$a(fn,r),i=Wa[a.placedSide];return d.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:d.jsx(ja,{...o,ref:n,style:{...o.style,display:"block"}})})});pn.displayName=fn;function Ba(e){return e!==null}var Ua=e=>({name:"transformOrigin",options:e,fn(t){var m,w,C;const{placement:n,rects:r,middlewareData:o}=t,i=((m=o.arrow)==null?void 0:m.centerOffset)!==0,s=i?0:e.arrowWidth,p=i?0:e.arrowHeight,[l,f]=dt(n),u={start:"0%",center:"50%",end:"100%"}[f],v=(((w=o.arrow)==null?void 0:w.x)??0)+s/2,y=(((C=o.arrow)==null?void 0:C.y)??0)+p/2;let g="",h="";return l==="bottom"?(g=i?u:`${v}px`,h=`${-p}px`):l==="top"?(g=i?u:`${v}px`,h=`${r.floating.height+p}px`):l==="right"?(g=`${-p}px`,h=i?u:`${y}px`):l==="left"&&(g=`${r.floating.width+p}px`,h=i?u:`${y}px`),{data:{x:g,y:h}}}});function dt(e){const[t,n="center"]=e.split("-");return[t,n]}var Ga=sn,Ka=ln,za=dn,Ha=pn,Va="Portal",ft=c.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[o,a]=c.useState(!1);Y(()=>a(!0),[]);const i=n||o&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return i?Ht.createPortal(d.jsx(N.div,{...r,ref:t}),i):null});ft.displayName=Va;function Ya(e,t){return c.useReducer((n,r)=>t[n][r]??n,e)}var ee=e=>{const{present:t,children:n}=e,r=Xa(t),o=typeof n=="function"?n({present:r.isPresent}):c.Children.only(n),a=qa(r.ref,Za(o));return typeof n=="function"||r.isPresent?c.cloneElement(o,{ref:a}):null};ee.displayName="Presence";function Xa(e){const[t,n]=c.useState(),r=c.useRef(null),o=c.useRef(e),a=c.useRef("none"),i=e?"mounted":"unmounted",[s,p]=Ya(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const l=Ne(r.current);a.current=s==="mounted"?l:"none"},[s]),Y(()=>{const l=r.current,f=o.current;if(f!==e){const v=a.current,y=Ne(l);e?p("MOUNT"):y==="none"||(l==null?void 0:l.display)==="none"?p("UNMOUNT"):p(f&&v!==y?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,p]),Y(()=>{if(t){let l;const f=t.ownerDocument.defaultView??window,u=y=>{const h=Ne(r.current).includes(CSS.escape(y.animationName));if(y.target===t&&h&&(p("ANIMATION_END"),!o.current)){const m=t.style.animationFillMode;t.style.animationFillMode="forwards",l=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=m)})}},v=y=>{y.target===t&&(a.current=Ne(r.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",u),t.addEventListener("animationend",u),()=>{f.clearTimeout(l),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",u),t.removeEventListener("animationend",u)}}else p("ANIMATION_END")},[t,p]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:c.useCallback(l=>{r.current=l?getComputedStyle(l):null,n(l)},[])}}function $t(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function qa(...e){const t=c.useRef(e);return t.current=e,c.useCallback(n=>{const r=t.current;let o=!1;const a=r.map(i=>{const s=$t(i,n);return!o&&typeof s=="function"&&(o=!0),s});if(o)return()=>{for(let i=0;id.jsx(nt.Provider,{scope:e.__scopeRovingFocusGroup,children:d.jsx(nt.Slot,{scope:e.__scopeRovingFocusGroup,children:d.jsx(rc,{...e,ref:t})})}));mn.displayName=Ee;var rc=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:p,onEntryFocus:l,preventScrollOnEntryFocus:f=!1,...u}=e,v=c.useRef(null),y=D(t,v),g=Zt(a),[h,m]=We({prop:i,defaultProp:s??null,onChange:p,caller:Ee}),[w,C]=c.useState(!1),x=X(l),b=vn(n),R=c.useRef(!1),[P,_]=c.useState(0);return c.useEffect(()=>{const A=v.current;if(A)return A.addEventListener(qe,x),()=>A.removeEventListener(qe,x)},[x]),d.jsx(tc,{scope:n,orientation:r,dir:g,loop:o,currentTabStopId:h,onItemFocus:c.useCallback(A=>m(A),[m]),onItemShiftTab:c.useCallback(()=>C(!0),[]),onFocusableItemAdd:c.useCallback(()=>_(A=>A+1),[]),onFocusableItemRemove:c.useCallback(()=>_(A=>A-1),[]),children:d.jsx(N.div,{tabIndex:w||P===0?-1:0,"data-orientation":r,...u,ref:y,style:{outline:"none",...e.style},onMouseDown:S(e.onMouseDown,()=>{R.current=!0}),onFocus:S(e.onFocus,A=>{const I=!R.current;if(A.target===A.currentTarget&&I&&!w){const T=new CustomEvent(qe,Qa);if(A.currentTarget.dispatchEvent(T),!T.defaultPrevented){const k=b().filter(L=>L.focusable),K=k.find(L=>L.active),V=k.find(L=>L.id===h),ce=[K,V,...k].filter(Boolean).map(L=>L.ref.current);wn(ce,f)}}R.current=!1}),onBlur:S(e.onBlur,()=>C(!1))})})}),gn="RovingFocusGroupItem",yn=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:a,children:i,...s}=e,p=de(),l=a||p,f=nc(gn,n),u=f.currentTabStopId===l,v=vn(n),{onFocusableItemAdd:y,onFocusableItemRemove:g,currentTabStopId:h}=f;return c.useEffect(()=>{if(r)return y(),()=>g()},[r,y,g]),d.jsx(nt.ItemSlot,{scope:n,id:l,focusable:r,active:o,children:d.jsx(N.span,{tabIndex:u?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:S(e.onMouseDown,m=>{r?f.onItemFocus(l):m.preventDefault()}),onFocus:S(e.onFocus,()=>f.onItemFocus(l)),onKeyDown:S(e.onKeyDown,m=>{if(m.key==="Tab"&&m.shiftKey){f.onItemShiftTab();return}if(m.target!==m.currentTarget)return;const w=cc(m,f.orientation,f.dir);if(w!==void 0){if(m.metaKey||m.ctrlKey||m.altKey||m.shiftKey)return;m.preventDefault();let x=v().filter(b=>b.focusable).map(b=>b.ref.current);if(w==="last")x.reverse();else if(w==="prev"||w==="next"){w==="prev"&&x.reverse();const b=x.indexOf(m.currentTarget);x=f.loop?sc(x,b+1):x.slice(b+1)}setTimeout(()=>wn(x))}}),children:typeof i=="function"?i({isCurrentTabStop:u,hasTabStop:h!=null}):i})})});yn.displayName=gn;var oc={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ac(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function cc(e,t,n){const r=ac(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return oc[r]}function wn(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function sc(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var ic=mn,uc=yn,lc=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ie=new WeakMap,De=new WeakMap,ke={},Ze=0,xn=function(e){return e&&(e.host||xn(e.parentNode))},dc=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=xn(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},fc=function(e,t,n,r){var o=dc(t,Array.isArray(e)?e:[e]);ke[n]||(ke[n]=new WeakMap);var a=ke[n],i=[],s=new Set,p=new Set(o),l=function(u){!u||s.has(u)||(s.add(u),l(u.parentNode))};o.forEach(l);var f=function(u){!u||p.has(u)||Array.prototype.forEach.call(u.children,function(v){if(s.has(v))f(v);else try{var y=v.getAttribute(r),g=y!==null&&y!=="false",h=(ie.get(v)||0)+1,m=(a.get(v)||0)+1;ie.set(v,h),a.set(v,m),i.push(v),h===1&&g&&De.set(v,!0),m===1&&v.setAttribute(n,"true"),g||v.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",v,w)}})};return f(t),s.clear(),Ze++,function(){i.forEach(function(u){var v=ie.get(u)-1,y=a.get(u)-1;ie.set(u,v),a.set(u,y),v||(De.has(u)||u.removeAttribute(r),De.delete(u)),y||u.removeAttribute(n)}),Ze--,Ze||(ie=new WeakMap,ie=new WeakMap,De=new WeakMap,ke={})}},Cn=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=lc(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),fc(r,o,n,"aria-hidden")):function(){return null}},H=function(){return H=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return Ac;var t=Nc(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},kc=Sn(),fe="data-scroll-locked",Ic=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,s=e.gap;return n===void 0&&(n="margin"),`
+ .`.concat(vc,` {
overflow: hidden `).concat(r,`;
padding-right: `).concat(s,"px ").concat(r,`;
}
@@ -238,19 +263,19 @@ import{r as c,j as d,R as at,a as Ht,u as to,o as no,s as ro,f as oo,b as ao,c a
}
body[`).concat(fe,`] {
- `).concat(lc,": ").concat(s,`px;
+ `).concat(hc,": ").concat(s,`px;
}
-`)},Bt=function(){var e=parseInt(document.body.getAttribute(fe)||"0",10);return isFinite(e)?e:0},Ac=function(){c.useEffect(function(){return document.body.setAttribute(fe,(Bt()+1).toString()),function(){var e=Bt()-1;e<=0?document.body.removeAttribute(fe):document.body.setAttribute(fe,e.toString())}},[])},Nc=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Ac();var a=c.useMemo(function(){return Mc(o)},[o]);return c.createElement(Rc,{styles:Pc(a,!t,o,n?"":"!important")})},rt=!1;if(typeof window<"u")try{var ke=Object.defineProperty({},"passive",{get:function(){return rt=!0,!0}});window.addEventListener("test",ke,ke),window.removeEventListener("test",ke,ke)}catch{rt=!1}var ue=rt?{passive:!1}:!1,Dc=function(e){return e.tagName==="TEXTAREA"},Mn=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Dc(e)&&n[t]==="visible")},Ic=function(e){return Mn(e,"overflowY")},kc=function(e){return Mn(e,"overflowX")},Ut=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=Rn(e,r);if(o){var a=Pn(e,r),i=a[1],s=a[2];if(i>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Tc=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},Oc=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},Rn=function(e,t){return e==="v"?Ic(t):kc(t)},Pn=function(e,t){return e==="v"?Tc(t):Oc(t)},jc=function(e,t){return e==="h"&&t==="rtl"?-1:1},Lc=function(e,t,n,r,o){var a=jc(e,window.getComputedStyle(t).direction),i=a*r,s=n.target,p=t.contains(s),l=!1,f=i>0,u=0,v=0;do{if(!s)break;var y=Pn(e,s),g=y[0],h=y[1],m=y[2],w=h-m-a*g;(g||w)&&Rn(e,s)&&(u+=w,v+=g);var x=s.parentNode;s=x&&x.nodeType===Node.DOCUMENT_FRAGMENT_NODE?x.host:x}while(!p&&s!==document.body||p&&(t.contains(s)||t===s));return(f&&Math.abs(u)<1||!f&&Math.abs(v)<1)&&(l=!0),l},Te=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Gt=function(e){return[e.deltaX,e.deltaY]},Kt=function(e){return e&&"current"in e?e.current:e},Fc=function(e,t){return e[0]===t[0]&&e[1]===t[1]},$c=function(e){return`
+`)},Bt=function(){var e=parseInt(document.body.getAttribute(fe)||"0",10);return isFinite(e)?e:0},Tc=function(){c.useEffect(function(){return document.body.setAttribute(fe,(Bt()+1).toString()),function(){var e=Bt()-1;e<=0?document.body.removeAttribute(fe):document.body.setAttribute(fe,e.toString())}},[])},Oc=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Tc();var a=c.useMemo(function(){return Dc(o)},[o]);return c.createElement(kc,{styles:Ic(a,!t,o,n?"":"!important")})},rt=!1;if(typeof window<"u")try{var Ie=Object.defineProperty({},"passive",{get:function(){return rt=!0,!0}});window.addEventListener("test",Ie,Ie),window.removeEventListener("test",Ie,Ie)}catch{rt=!1}var ue=rt?{passive:!1}:!1,jc=function(e){return e.tagName==="TEXTAREA"},Mn=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!jc(e)&&n[t]==="visible")},Lc=function(e){return Mn(e,"overflowY")},Fc=function(e){return Mn(e,"overflowX")},Ut=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=Rn(e,r);if(o){var a=Pn(e,r),i=a[1],s=a[2];if(i>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},$c=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},Wc=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},Rn=function(e,t){return e==="v"?Lc(t):Fc(t)},Pn=function(e,t){return e==="v"?$c(t):Wc(t)},Bc=function(e,t){return e==="h"&&t==="rtl"?-1:1},Uc=function(e,t,n,r,o){var a=Bc(e,window.getComputedStyle(t).direction),i=a*r,s=n.target,p=t.contains(s),l=!1,f=i>0,u=0,v=0;do{if(!s)break;var y=Pn(e,s),g=y[0],h=y[1],m=y[2],w=h-m-a*g;(g||w)&&Rn(e,s)&&(u+=w,v+=g);var C=s.parentNode;s=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!p&&s!==document.body||p&&(t.contains(s)||t===s));return(f&&Math.abs(u)<1||!f&&Math.abs(v)<1)&&(l=!0),l},Te=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Gt=function(e){return[e.deltaX,e.deltaY]},Kt=function(e){return e&&"current"in e?e.current:e},Gc=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Kc=function(e){return`
.block-interactivity-`.concat(e,` {pointer-events: none;}
.allow-interactivity-`).concat(e,` {pointer-events: all;}
-`)},Wc=0,le=[];function Bc(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(Wc++)[0],a=c.useState(_n)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var h=ic([e.lockRef.current],(e.shards||[]).map(Kt),!0).filter(Boolean);return h.forEach(function(m){return m.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),h.forEach(function(m){return m.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var s=c.useCallback(function(h,m){if("touches"in h&&h.touches.length===2||h.type==="wheel"&&h.ctrlKey)return!i.current.allowPinchZoom;var w=Te(h),x=n.current,C="deltaX"in h?h.deltaX:x[0]-w[0],b="deltaY"in h?h.deltaY:x[1]-w[1],R,P=h.target,S=Math.abs(C)>Math.abs(b)?"h":"v";if("touches"in h&&S==="h"&&P.type==="range")return!1;var A=window.getSelection(),k=A&&A.anchorNode,T=k?k===P||k.contains(P):!1;if(T)return!1;var I=Ut(S,P);if(!I)return!0;if(I?R=S:(R=S==="v"?"h":"v",I=Ut(S,P)),!I)return!1;if(!r.current&&"changedTouches"in h&&(C||b)&&(r.current=R),!R)return!0;var K=r.current||R;return Lc(K,m,h,K==="h"?C:b)},[]),p=c.useCallback(function(h){var m=h;if(!(!le.length||le[le.length-1]!==a)){var w="deltaY"in m?Gt(m):Te(m),x=t.current.filter(function(R){return R.name===m.type&&(R.target===m.target||m.target===R.shadowParent)&&Fc(R.delta,w)})[0];if(x&&x.should){m.cancelable&&m.preventDefault();return}if(!x){var C=(i.current.shards||[]).map(Kt).filter(Boolean).filter(function(R){return R.contains(m.target)}),b=C.length>0?s(m,C[0]):!i.current.noIsolation;b&&m.cancelable&&m.preventDefault()}}},[]),l=c.useCallback(function(h,m,w,x){var C={name:h,delta:m,target:w,should:x,shadowParent:Uc(w)};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(b){return b!==C})},1)},[]),f=c.useCallback(function(h){n.current=Te(h),r.current=void 0},[]),u=c.useCallback(function(h){l(h.type,Gt(h),h.target,s(h,e.lockRef.current))},[]),v=c.useCallback(function(h){l(h.type,Te(h),h.target,s(h,e.lockRef.current))},[]);c.useEffect(function(){return le.push(a),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:v}),document.addEventListener("wheel",p,ue),document.addEventListener("touchmove",p,ue),document.addEventListener("touchstart",f,ue),function(){le=le.filter(function(h){return h!==a}),document.removeEventListener("wheel",p,ue),document.removeEventListener("touchmove",p,ue),document.removeEventListener("touchstart",f,ue)}},[]);var y=e.removeScrollBar,g=e.inert;return c.createElement(c.Fragment,null,g?c.createElement(a,{styles:$c(o)}):null,y?c.createElement(Nc,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Uc(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Gc=gc(Sn,Bc);var pt=c.forwardRef(function(e,t){return c.createElement(Be,H({},e,{ref:t,sideCar:Gc}))});pt.classNames=Be.classNames;var ot=["Enter"," "],Kc=["ArrowDown","PageUp","Home"],An=["ArrowUp","PageDown","End"],zc=[...Kc,...An],Hc={ltr:[...ot,"ArrowRight"],rtl:[...ot,"ArrowLeft"]},Vc={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Se="Menu",[xe,Yc,Xc]=qt(Se),[re,Nn]=J(Se,[Xc,an,hn]),Ue=an(),Dn=hn(),[qc,oe]=re(Se),[Zc,_e]=re(Se),In=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:a,modal:i=!0}=e,s=Ue(t),[p,l]=c.useState(null),f=c.useRef(!1),u=X(a),v=Zt(o);return c.useEffect(()=>{const y=()=>{f.current=!0,document.addEventListener("pointerdown",g,{capture:!0,once:!0}),document.addEventListener("pointermove",g,{capture:!0,once:!0})},g=()=>f.current=!1;return document.addEventListener("keydown",y,{capture:!0}),()=>{document.removeEventListener("keydown",y,{capture:!0}),document.removeEventListener("pointerdown",g,{capture:!0}),document.removeEventListener("pointermove",g,{capture:!0})}},[]),d.jsx(Fa,{...s,children:d.jsx(qc,{scope:t,open:n,onOpenChange:u,content:p,onContentChange:l,children:d.jsx(Zc,{scope:t,onClose:c.useCallback(()=>u(!1),[u]),isUsingKeyboardRef:f,dir:v,modal:i,children:r})})})};In.displayName=Se;var Qc="MenuAnchor",vt=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=Ue(n);return d.jsx($a,{...o,...r,ref:t})});vt.displayName=Qc;var ht="MenuPortal",[Jc,kn]=re(ht,{forceMount:void 0}),Tn=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,a=oe(ht,t);return d.jsx(Jc,{scope:t,forceMount:n,children:d.jsx(ee,{present:n||a.open,children:d.jsx(ft,{asChild:!0,container:o,children:r})})})};Tn.displayName=ht;var U="MenuContent",[es,mt]=re(U),On=c.forwardRef((e,t)=>{const n=kn(U,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,a=oe(U,e.__scopeMenu),i=_e(U,e.__scopeMenu);return d.jsx(xe.Provider,{scope:e.__scopeMenu,children:d.jsx(ee,{present:r||a.open,children:d.jsx(xe.Slot,{scope:e.__scopeMenu,children:i.modal?d.jsx(ts,{...o,ref:t}):d.jsx(ns,{...o,ref:t})})})})}),ts=c.forwardRef((e,t)=>{const n=oe(U,e.__scopeMenu),r=c.useRef(null),o=D(t,r);return c.useEffect(()=>{const a=r.current;if(a)return xn(a)},[]),d.jsx(gt,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:_(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),ns=c.forwardRef((e,t)=>{const n=oe(U,e.__scopeMenu);return d.jsx(gt,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),rs=ve("MenuContent.ScrollLock"),gt=c.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:p,onEscapeKeyDown:l,onPointerDownOutside:f,onFocusOutside:u,onInteractOutside:v,onDismiss:y,disableOutsideScroll:g,...h}=e,m=oe(U,n),w=_e(U,n),x=Ue(n),C=Dn(n),b=Yc(n),[R,P]=c.useState(null),S=c.useRef(null),A=D(t,S,m.onContentChange),k=c.useRef(0),T=c.useRef(""),I=c.useRef(0),K=c.useRef(null),V=c.useRef("right"),ae=c.useRef(0),ce=g?pt:c.Fragment,L=g?{as:rs,allowPinchZoom:!0}:void 0,se=E=>{var Z,ge;const O=T.current+E,$=b().filter(B=>!B.disabled),W=document.activeElement,he=(Z=$.find(B=>B.ref.current===W))==null?void 0:Z.textValue,me=$.map(B=>B.textValue),Me=hs(me,O,he),te=(ge=$.find(B=>B.textValue===Me))==null?void 0:ge.ref.current;(function B(ye){T.current=ye,window.clearTimeout(k.current),ye!==""&&(k.current=window.setTimeout(()=>B(""),1e3))})(O),te&&setTimeout(()=>te.focus())};c.useEffect(()=>()=>window.clearTimeout(k.current),[]),en();const F=c.useCallback(E=>{var $,W;return V.current===(($=K.current)==null?void 0:$.side)&&gs(E,(W=K.current)==null?void 0:W.area)},[]);return d.jsx(es,{scope:n,searchRef:T,onItemEnter:c.useCallback(E=>{F(E)&&E.preventDefault()},[F]),onItemLeave:c.useCallback(E=>{var O;F(E)||((O=S.current)==null||O.focus(),P(null))},[F]),onTriggerLeave:c.useCallback(E=>{F(E)&&E.preventDefault()},[F]),pointerGraceTimerRef:I,onPointerGraceIntentChange:c.useCallback(E=>{K.current=E},[]),children:d.jsx(ce,{...L,children:d.jsx(it,{asChild:!0,trapped:o,onMountAutoFocus:_(a,E=>{var O;E.preventDefault(),(O=S.current)==null||O.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:d.jsx(st,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:f,onFocusOutside:u,onInteractOutside:v,onDismiss:y,children:d.jsx(rc,{asChild:!0,...C,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:R,onCurrentTabStopIdChange:P,onEntryFocus:_(p,E=>{w.isUsingKeyboardRef.current||E.preventDefault()}),preventScrollOnEntryFocus:!0,children:d.jsx(Wa,{role:"menu","aria-orientation":"vertical","data-state":Zn(m.open),"data-radix-menu-content":"",dir:w.dir,...x,...h,ref:A,style:{outline:"none",...h.style},onKeyDown:_(h.onKeyDown,E=>{const $=E.target.closest("[data-radix-menu-content]")===E.currentTarget,W=E.ctrlKey||E.altKey||E.metaKey,he=E.key.length===1;$&&(E.key==="Tab"&&E.preventDefault(),!W&&he&&se(E.key));const me=S.current;if(E.target!==me||!zc.includes(E.key))return;E.preventDefault();const te=b().filter(Z=>!Z.disabled).map(Z=>Z.ref.current);An.includes(E.key)&&te.reverse(),ps(te)}),onBlur:_(e.onBlur,E=>{E.currentTarget.contains(E.target)||(window.clearTimeout(k.current),T.current="")}),onPointerMove:_(e.onPointerMove,be(E=>{const O=E.target,$=ae.current!==E.clientX;if(E.currentTarget.contains(O)&&$){const W=E.clientX>ae.current?"right":"left";V.current=W,ae.current=E.clientX}}))})})})})})})});On.displayName=U;var os="MenuGroup",yt=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return d.jsx(N.div,{role:"group",...r,ref:t})});yt.displayName=os;var as="MenuLabel",jn=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return d.jsx(N.div,{...r,ref:t})});jn.displayName=as;var Le="MenuItem",zt="menu.itemSelect",Ge=c.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,a=c.useRef(null),i=_e(Le,e.__scopeMenu),s=mt(Le,e.__scopeMenu),p=D(t,a),l=c.useRef(!1),f=()=>{const u=a.current;if(!n&&u){const v=new CustomEvent(zt,{bubbles:!0,cancelable:!0});u.addEventListener(zt,y=>r==null?void 0:r(y),{once:!0}),Xt(u,v),v.defaultPrevented?l.current=!1:i.onClose()}};return d.jsx(Ln,{...o,ref:p,disabled:n,onClick:_(e.onClick,f),onPointerDown:u=>{var v;(v=e.onPointerDown)==null||v.call(e,u),l.current=!0},onPointerUp:_(e.onPointerUp,u=>{var v;l.current||(v=u.currentTarget)==null||v.click()}),onKeyDown:_(e.onKeyDown,u=>{const v=s.searchRef.current!=="";n||v&&u.key===" "||ot.includes(u.key)&&(u.currentTarget.click(),u.preventDefault())})})});Ge.displayName=Le;var Ln=c.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...a}=e,i=mt(Le,n),s=Dn(n),p=c.useRef(null),l=D(t,p),[f,u]=c.useState(!1),[v,y]=c.useState("");return c.useEffect(()=>{const g=p.current;g&&y((g.textContent??"").trim())},[a.children]),d.jsx(xe.ItemSlot,{scope:n,disabled:r,textValue:o??v,children:d.jsx(oc,{asChild:!0,...s,focusable:!r,children:d.jsx(N.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...a,ref:l,onPointerMove:_(e.onPointerMove,be(g=>{r?i.onItemLeave(g):(i.onItemEnter(g),g.defaultPrevented||g.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:_(e.onPointerLeave,be(g=>i.onItemLeave(g))),onFocus:_(e.onFocus,()=>u(!0)),onBlur:_(e.onBlur,()=>u(!1))})})})}),cs="MenuCheckboxItem",Fn=c.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return d.jsx(Gn,{scope:e.__scopeMenu,checked:n,children:d.jsx(Ge,{role:"menuitemcheckbox","aria-checked":Fe(n)?"mixed":n,...o,ref:t,"data-state":Ct(n),onSelect:_(o.onSelect,()=>r==null?void 0:r(Fe(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Fn.displayName=cs;var $n="MenuRadioGroup",[ss,is]=re($n,{value:void 0,onValueChange:()=>{}}),Wn=c.forwardRef((e,t)=>{const{value:n,onValueChange:r,...o}=e,a=X(r);return d.jsx(ss,{scope:e.__scopeMenu,value:n,onValueChange:a,children:d.jsx(yt,{...o,ref:t})})});Wn.displayName=$n;var Bn="MenuRadioItem",Un=c.forwardRef((e,t)=>{const{value:n,...r}=e,o=is(Bn,e.__scopeMenu),a=n===o.value;return d.jsx(Gn,{scope:e.__scopeMenu,checked:a,children:d.jsx(Ge,{role:"menuitemradio","aria-checked":a,...r,ref:t,"data-state":Ct(a),onSelect:_(r.onSelect,()=>{var i;return(i=o.onValueChange)==null?void 0:i.call(o,n)},{checkForDefaultPrevented:!1})})})});Un.displayName=Bn;var wt="MenuItemIndicator",[Gn,us]=re(wt,{checked:!1}),Kn=c.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,a=us(wt,n);return d.jsx(ee,{present:r||Fe(a.checked)||a.checked===!0,children:d.jsx(N.span,{...o,ref:t,"data-state":Ct(a.checked)})})});Kn.displayName=wt;var ls="MenuSeparator",zn=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return d.jsx(N.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});zn.displayName=ls;var ds="MenuArrow",Hn=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=Ue(n);return d.jsx(Ba,{...o,...r,ref:t})});Hn.displayName=ds;var fs="MenuSub",[fu,Vn]=re(fs),Ce="MenuSubTrigger",Yn=c.forwardRef((e,t)=>{const n=oe(Ce,e.__scopeMenu),r=_e(Ce,e.__scopeMenu),o=Vn(Ce,e.__scopeMenu),a=mt(Ce,e.__scopeMenu),i=c.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:p}=a,l={__scopeMenu:e.__scopeMenu},f=c.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return c.useEffect(()=>f,[f]),c.useEffect(()=>{const u=s.current;return()=>{window.clearTimeout(u),p(null)}},[s,p]),d.jsx(vt,{asChild:!0,...l,children:d.jsx(Ln,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":n.open?o.contentId:void 0,"data-state":Zn(n.open),...e,ref:ct(t,o.onTriggerChange),onClick:u=>{var v;(v=e.onClick)==null||v.call(e,u),!(e.disabled||u.defaultPrevented)&&(u.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:_(e.onPointerMove,be(u=>{a.onItemEnter(u),!u.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(a.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),f()},100))})),onPointerLeave:_(e.onPointerLeave,be(u=>{var y,g;f();const v=(y=n.content)==null?void 0:y.getBoundingClientRect();if(v){const h=(g=n.content)==null?void 0:g.dataset.side,m=h==="right",w=m?-5:5,x=v[m?"left":"right"],C=v[m?"right":"left"];a.onPointerGraceIntentChange({area:[{x:u.clientX+w,y:u.clientY},{x,y:v.top},{x:C,y:v.top},{x:C,y:v.bottom},{x,y:v.bottom}],side:h}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(u),u.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:_(e.onKeyDown,u=>{var y;const v=a.searchRef.current!=="";e.disabled||v&&u.key===" "||Hc[r.dir].includes(u.key)&&(n.onOpenChange(!0),(y=n.content)==null||y.focus(),u.preventDefault())})})})});Yn.displayName=Ce;var Xn="MenuSubContent",qn=c.forwardRef((e,t)=>{const n=kn(U,e.__scopeMenu),{forceMount:r=n.forceMount,align:o="start",...a}=e,i=oe(U,e.__scopeMenu),s=_e(U,e.__scopeMenu),p=Vn(Xn,e.__scopeMenu),l=c.useRef(null),f=D(t,l);return d.jsx(xe.Provider,{scope:e.__scopeMenu,children:d.jsx(ee,{present:r||i.open,children:d.jsx(xe.Slot,{scope:e.__scopeMenu,children:d.jsx(gt,{id:p.contentId,"aria-labelledby":p.triggerId,...a,ref:f,align:o,side:s.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:u=>{var v;s.isUsingKeyboardRef.current&&((v=l.current)==null||v.focus()),u.preventDefault()},onCloseAutoFocus:u=>u.preventDefault(),onFocusOutside:_(e.onFocusOutside,u=>{u.target!==p.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:_(e.onEscapeKeyDown,u=>{s.onClose(),u.preventDefault()}),onKeyDown:_(e.onKeyDown,u=>{var g;const v=u.currentTarget.contains(u.target),y=Vc[s.dir].includes(u.key);v&&y&&(i.onOpenChange(!1),(g=p.trigger)==null||g.focus(),u.preventDefault())})})})})})});qn.displayName=Xn;function Zn(e){return e?"open":"closed"}function Fe(e){return e==="indeterminate"}function Ct(e){return Fe(e)?"indeterminate":e?"checked":"unchecked"}function ps(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function vs(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function hs(e,t,n){const o=t.length>1&&Array.from(t).every(l=>l===t[0])?t[0]:t,a=n?e.indexOf(n):-1;let i=vs(e,Math.max(a,0));o.length===1&&(i=i.filter(l=>l!==n));const p=i.find(l=>l.toLowerCase().startsWith(o.toLowerCase()));return p!==n?p:void 0}function ms(e,t){const{x:n,y:r}=e;let o=!1;for(let a=0,i=t.length-1;ar!=v>r&&n<(u-l)*(r-f)/(v-f)+l&&(o=!o)}return o}function gs(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return ms(n,t)}function be(e){return t=>t.pointerType==="mouse"?e(t):void 0}var ys=In,ws=vt,Cs=Tn,xs=On,bs=yt,Es=jn,Ss=Ge,_s=Fn,Ms=Wn,Rs=Un,Ps=Kn,As=zn,Ns=Hn,Ds=Yn,Is=qn,Ke="DropdownMenu",[ks]=J(Ke,[Nn]),j=Nn(),[Ts,Qn]=ks(Ke),Jn=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,p=j(t),l=c.useRef(null),[f,u]=We({prop:o,defaultProp:a??!1,onChange:i,caller:Ke});return d.jsx(Ts,{scope:t,triggerId:de(),triggerRef:l,contentId:de(),open:f,onOpenChange:u,onOpenToggle:c.useCallback(()=>u(v=>!v),[u]),modal:s,children:d.jsx(ys,{...p,open:f,onOpenChange:u,dir:r,modal:s,children:n})})};Jn.displayName=Ke;var er="DropdownMenuTrigger",tr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,a=Qn(er,n),i=j(n);return d.jsx(ws,{asChild:!0,...i,children:d.jsx(N.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...o,ref:ct(t,a.triggerRef),onPointerDown:_(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(a.onOpenToggle(),a.open||s.preventDefault())}),onKeyDown:_(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&a.onOpenToggle(),s.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});tr.displayName=er;var Os="DropdownMenuPortal",nr=e=>{const{__scopeDropdownMenu:t,...n}=e,r=j(t);return d.jsx(Cs,{...r,...n})};nr.displayName=Os;var rr="DropdownMenuContent",or=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Qn(rr,n),a=j(n),i=c.useRef(!1);return d.jsx(xs,{id:o.contentId,"aria-labelledby":o.triggerId,...a,...r,ref:t,onCloseAutoFocus:_(e.onCloseAutoFocus,s=>{var p;i.current||(p=o.triggerRef.current)==null||p.focus(),i.current=!1,s.preventDefault()}),onInteractOutside:_(e.onInteractOutside,s=>{const p=s.detail.originalEvent,l=p.button===0&&p.ctrlKey===!0,f=p.button===2||l;(!o.modal||f)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});or.displayName=rr;var js="DropdownMenuGroup",Ls=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(bs,{...o,...r,ref:t})});Ls.displayName=js;var Fs="DropdownMenuLabel",ar=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Es,{...o,...r,ref:t})});ar.displayName=Fs;var $s="DropdownMenuItem",cr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ss,{...o,...r,ref:t})});cr.displayName=$s;var Ws="DropdownMenuCheckboxItem",sr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(_s,{...o,...r,ref:t})});sr.displayName=Ws;var Bs="DropdownMenuRadioGroup",Us=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ms,{...o,...r,ref:t})});Us.displayName=Bs;var Gs="DropdownMenuRadioItem",ir=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Rs,{...o,...r,ref:t})});ir.displayName=Gs;var Ks="DropdownMenuItemIndicator",ur=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ps,{...o,...r,ref:t})});ur.displayName=Ks;var zs="DropdownMenuSeparator",lr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(As,{...o,...r,ref:t})});lr.displayName=zs;var Hs="DropdownMenuArrow",Vs=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ns,{...o,...r,ref:t})});Vs.displayName=Hs;var Ys="DropdownMenuSubTrigger",dr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ds,{...o,...r,ref:t})});dr.displayName=Ys;var Xs="DropdownMenuSubContent",fr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Is,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});fr.displayName=Xs;var pu=Jn,vu=tr,hu=nr,mu=or,gu=ar,yu=cr,wu=sr,Cu=ir,xu=ur,bu=lr,Eu=dr,Su=fr;function qs(e){const t=c.useRef({value:e,previous:e});return c.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var ze="Switch",[Zs]=J(ze),[Qs,xt]=Zs(ze);function Js(e){const{__scopeSwitch:t,checked:n,children:r,defaultChecked:o,disabled:a,form:i,name:s,onCheckedChange:p,required:l,value:f="on",internal_do_not_use_render:u}=e,[v,y]=We({prop:n,defaultProp:o??!1,onChange:p,caller:ze}),[g,h]=c.useState(null),[m,w]=c.useState(null),x=c.useRef(!1),C=g?!!i||!!g.closest("form"):!0,b={checked:v,setChecked:y,disabled:a,control:g,setControl:h,name:s,form:i,value:f,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:o,isFormControl:C,bubbleInput:m,setBubbleInput:w};return d.jsx(Qs,{scope:t,...b,children:ni(u)?u(b):r})}var pr="SwitchTrigger",vr=c.forwardRef(({__scopeSwitch:e,onClick:t,...n},r)=>{const{value:o,disabled:a,checked:i,required:s,setControl:p,setChecked:l,hasConsumerStoppedPropagationRef:f,isFormControl:u,bubbleInput:v}=xt(pr,e),y=D(r,p);return d.jsx(N.button,{type:"button",role:"switch","aria-checked":i,"aria-required":s,"data-state":yr(i),"data-disabled":a?"":void 0,disabled:a,value:o,...n,ref:y,onClick:_(t,g=>{l(h=>!h),v&&u&&(f.current=g.isPropagationStopped(),f.current||g.stopPropagation())})})});vr.displayName=pr;var ei=c.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:o,defaultChecked:a,required:i,disabled:s,value:p,onCheckedChange:l,form:f,...u}=e;return d.jsx(Js,{__scopeSwitch:n,checked:o,defaultChecked:a,disabled:s,required:i,onCheckedChange:l,name:r,form:f,value:p,internal_do_not_use_render:({isFormControl:v})=>d.jsxs(d.Fragment,{children:[d.jsx(vr,{...u,ref:t,__scopeSwitch:n}),v&&d.jsx(gr,{__scopeSwitch:n})]})})});ei.displayName=ze;var hr="SwitchThumb",ti=c.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,o=xt(hr,n);return d.jsx(N.span,{"data-state":yr(o.checked),"data-disabled":o.disabled?"":void 0,...r,ref:t})});ti.displayName=hr;var mr="SwitchBubbleInput",gr=c.forwardRef(({__scopeSwitch:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:o,checked:a,defaultChecked:i,required:s,disabled:p,name:l,value:f,form:u,bubbleInput:v,setBubbleInput:y}=xt(mr,e),g=D(n,y),h=qs(a),m=rn(r);c.useEffect(()=>{const x=v;if(!x)return;const C=window.HTMLInputElement.prototype,R=Object.getOwnPropertyDescriptor(C,"checked").set,P=!o.current;if(h!==a&&R){const S=new Event("click",{bubbles:P});R.call(x,a),x.dispatchEvent(S)}},[v,h,a,o]);const w=c.useRef(a);return d.jsx(N.input,{type:"checkbox","aria-hidden":!0,defaultChecked:i??w.current,required:s,disabled:p,name:l,value:f,form:u,...t,tabIndex:-1,ref:g,style:{...t.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});gr.displayName=mr;function ni(e){return typeof e=="function"}function yr(e){return e?"checked":"unchecked"}var ri="Label",wr=c.forwardRef((e,t)=>d.jsx(N.label,{...e,ref:t,onMouseDown:n=>{var o;n.target.closest("button, input, select, textarea")||((o=e.onMouseDown)==null||o.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));wr.displayName=ri;var _u=wr,He="Dialog",[Cr,xr]=J(He),[oi,G]=Cr(He),br=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,s=c.useRef(null),p=c.useRef(null),[l,f]=We({prop:r,defaultProp:o??!1,onChange:a,caller:He});return d.jsx(oi,{scope:t,triggerRef:s,contentRef:p,contentId:de(),titleId:de(),descriptionId:de(),open:l,onOpenChange:f,onOpenToggle:c.useCallback(()=>f(u=>!u),[f]),modal:i,children:n})};br.displayName=He;var Er="DialogTrigger",Sr=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(Er,n),a=D(t,o.triggerRef);return d.jsx(N.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":St(o.open),...r,ref:a,onClick:_(e.onClick,o.onOpenToggle)})});Sr.displayName=Er;var bt="DialogPortal",[ai,_r]=Cr(bt,{forceMount:void 0}),Mr=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=G(bt,t);return d.jsx(ai,{scope:t,forceMount:n,children:c.Children.map(r,i=>d.jsx(ee,{present:n||a.open,children:d.jsx(ft,{asChild:!0,container:o,children:i})}))})};Mr.displayName=bt;var $e="DialogOverlay",Rr=c.forwardRef((e,t)=>{const n=_r($e,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=G($e,e.__scopeDialog);return a.modal?d.jsx(ee,{present:r||a.open,children:d.jsx(si,{...o,ref:t})}):null});Rr.displayName=$e;var ci=ve("DialogOverlay.RemoveScroll"),si=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G($e,n);return d.jsx(pt,{as:ci,allowPinchZoom:!0,shards:[o.contentRef],children:d.jsx(N.div,{"data-state":St(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),ne="DialogContent",Pr=c.forwardRef((e,t)=>{const n=_r(ne,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=G(ne,e.__scopeDialog);return d.jsx(ee,{present:r||a.open,children:a.modal?d.jsx(ii,{...o,ref:t}):d.jsx(ui,{...o,ref:t})})});Pr.displayName=ne;var ii=c.forwardRef((e,t)=>{const n=G(ne,e.__scopeDialog),r=c.useRef(null),o=D(t,n.contentRef,r);return c.useEffect(()=>{const a=r.current;if(a)return xn(a)},[]),d.jsx(Ar,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:_(e.onCloseAutoFocus,a=>{var i;a.preventDefault(),(i=n.triggerRef.current)==null||i.focus()}),onPointerDownOutside:_(e.onPointerDownOutside,a=>{const i=a.detail.originalEvent,s=i.button===0&&i.ctrlKey===!0;(i.button===2||s)&&a.preventDefault()}),onFocusOutside:_(e.onFocusOutside,a=>a.preventDefault())})}),ui=c.forwardRef((e,t)=>{const n=G(ne,e.__scopeDialog),r=c.useRef(!1),o=c.useRef(!1);return d.jsx(Ar,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var i,s;(i=e.onCloseAutoFocus)==null||i.call(e,a),a.defaultPrevented||(r.current||(s=n.triggerRef.current)==null||s.focus(),a.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:a=>{var p,l;(p=e.onInteractOutside)==null||p.call(e,a),a.defaultPrevented||(r.current=!0,a.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const i=a.target;((l=n.triggerRef.current)==null?void 0:l.contains(i))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&o.current&&a.preventDefault()}})}),Ar=c.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,s=G(ne,n),p=c.useRef(null),l=D(t,p);return en(),d.jsxs(d.Fragment,{children:[d.jsx(it,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:d.jsx(st,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":St(s.open),...i,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),d.jsxs(d.Fragment,{children:[d.jsx(di,{titleId:s.titleId}),d.jsx(pi,{contentRef:p,descriptionId:s.descriptionId})]})]})}),Et="DialogTitle",Nr=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(Et,n);return d.jsx(N.h2,{id:o.titleId,...r,ref:t})});Nr.displayName=Et;var Dr="DialogDescription",Ir=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(Dr,n);return d.jsx(N.p,{id:o.descriptionId,...r,ref:t})});Ir.displayName=Dr;var kr="DialogClose",Tr=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(kr,n);return d.jsx(N.button,{type:"button",...r,ref:t,onClick:_(e.onClick,()=>o.onOpenChange(!1))})});Tr.displayName=kr;function St(e){return e?"open":"closed"}var Or="DialogTitleWarning",[li,jr]=Zo(Or,{contentName:ne,titleName:Et,docsSlug:"dialog"}),di=({titleId:e})=>{const t=jr(Or),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
+`)},zc=0,le=[];function Hc(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(zc++)[0],a=c.useState(Sn)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var h=pc([e.lockRef.current],(e.shards||[]).map(Kt),!0).filter(Boolean);return h.forEach(function(m){return m.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),h.forEach(function(m){return m.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var s=c.useCallback(function(h,m){if("touches"in h&&h.touches.length===2||h.type==="wheel"&&h.ctrlKey)return!i.current.allowPinchZoom;var w=Te(h),C=n.current,x="deltaX"in h?h.deltaX:C[0]-w[0],b="deltaY"in h?h.deltaY:C[1]-w[1],R,P=h.target,_=Math.abs(x)>Math.abs(b)?"h":"v";if("touches"in h&&_==="h"&&P.type==="range")return!1;var A=window.getSelection(),I=A&&A.anchorNode,T=I?I===P||I.contains(P):!1;if(T)return!1;var k=Ut(_,P);if(!k)return!0;if(k?R=_:(R=_==="v"?"h":"v",k=Ut(_,P)),!k)return!1;if(!r.current&&"changedTouches"in h&&(x||b)&&(r.current=R),!R)return!0;var K=r.current||R;return Uc(K,m,h,K==="h"?x:b)},[]),p=c.useCallback(function(h){var m=h;if(!(!le.length||le[le.length-1]!==a)){var w="deltaY"in m?Gt(m):Te(m),C=t.current.filter(function(R){return R.name===m.type&&(R.target===m.target||m.target===R.shadowParent)&&Gc(R.delta,w)})[0];if(C&&C.should){m.cancelable&&m.preventDefault();return}if(!C){var x=(i.current.shards||[]).map(Kt).filter(Boolean).filter(function(R){return R.contains(m.target)}),b=x.length>0?s(m,x[0]):!i.current.noIsolation;b&&m.cancelable&&m.preventDefault()}}},[]),l=c.useCallback(function(h,m,w,C){var x={name:h,delta:m,target:w,should:C,shadowParent:Vc(w)};t.current.push(x),setTimeout(function(){t.current=t.current.filter(function(b){return b!==x})},1)},[]),f=c.useCallback(function(h){n.current=Te(h),r.current=void 0},[]),u=c.useCallback(function(h){l(h.type,Gt(h),h.target,s(h,e.lockRef.current))},[]),v=c.useCallback(function(h){l(h.type,Te(h),h.target,s(h,e.lockRef.current))},[]);c.useEffect(function(){return le.push(a),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:v}),document.addEventListener("wheel",p,ue),document.addEventListener("touchmove",p,ue),document.addEventListener("touchstart",f,ue),function(){le=le.filter(function(h){return h!==a}),document.removeEventListener("wheel",p,ue),document.removeEventListener("touchmove",p,ue),document.removeEventListener("touchstart",f,ue)}},[]);var y=e.removeScrollBar,g=e.inert;return c.createElement(c.Fragment,null,g?c.createElement(a,{styles:Kc(o)}):null,y?c.createElement(Oc,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Vc(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Yc=bc(_n,Hc);var pt=c.forwardRef(function(e,t){return c.createElement(Be,H({},e,{ref:t,sideCar:Yc}))});pt.classNames=Be.classNames;var ot=["Enter"," "],Xc=["ArrowDown","PageUp","Home"],An=["ArrowUp","PageDown","End"],qc=[...Xc,...An],Zc={ltr:[...ot,"ArrowRight"],rtl:[...ot,"ArrowLeft"]},Qc={ltr:["ArrowLeft"],rtl:["ArrowRight"]},_e="Menu",[Ce,Jc,es]=qt(_e),[re,Nn]=J(_e,[es,an,hn]),Ue=an(),Dn=hn(),[ts,oe]=re(_e),[ns,Se]=re(_e),kn=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:a,modal:i=!0}=e,s=Ue(t),[p,l]=c.useState(null),f=c.useRef(!1),u=X(a),v=Zt(o);return c.useEffect(()=>{const y=()=>{f.current=!0,document.addEventListener("pointerdown",g,{capture:!0,once:!0}),document.addEventListener("pointermove",g,{capture:!0,once:!0})},g=()=>f.current=!1;return document.addEventListener("keydown",y,{capture:!0}),()=>{document.removeEventListener("keydown",y,{capture:!0}),document.removeEventListener("pointerdown",g,{capture:!0}),document.removeEventListener("pointermove",g,{capture:!0})}},[]),d.jsx(Ga,{...s,children:d.jsx(ts,{scope:t,open:n,onOpenChange:u,content:p,onContentChange:l,children:d.jsx(ns,{scope:t,onClose:c.useCallback(()=>u(!1),[u]),isUsingKeyboardRef:f,dir:v,modal:i,children:r})})})};kn.displayName=_e;var rs="MenuAnchor",vt=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=Ue(n);return d.jsx(Ka,{...o,...r,ref:t})});vt.displayName=rs;var ht="MenuPortal",[os,In]=re(ht,{forceMount:void 0}),Tn=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,a=oe(ht,t);return d.jsx(os,{scope:t,forceMount:n,children:d.jsx(ee,{present:n||a.open,children:d.jsx(ft,{asChild:!0,container:o,children:r})})})};Tn.displayName=ht;var U="MenuContent",[as,mt]=re(U),On=c.forwardRef((e,t)=>{const n=In(U,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,a=oe(U,e.__scopeMenu),i=Se(U,e.__scopeMenu);return d.jsx(Ce.Provider,{scope:e.__scopeMenu,children:d.jsx(ee,{present:r||a.open,children:d.jsx(Ce.Slot,{scope:e.__scopeMenu,children:i.modal?d.jsx(cs,{...o,ref:t}):d.jsx(ss,{...o,ref:t})})})})}),cs=c.forwardRef((e,t)=>{const n=oe(U,e.__scopeMenu),r=c.useRef(null),o=D(t,r);return c.useEffect(()=>{const a=r.current;if(a)return Cn(a)},[]),d.jsx(gt,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:S(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),ss=c.forwardRef((e,t)=>{const n=oe(U,e.__scopeMenu);return d.jsx(gt,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),is=ve("MenuContent.ScrollLock"),gt=c.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEntryFocus:p,onEscapeKeyDown:l,onPointerDownOutside:f,onFocusOutside:u,onInteractOutside:v,onDismiss:y,disableOutsideScroll:g,...h}=e,m=oe(U,n),w=Se(U,n),C=Ue(n),x=Dn(n),b=Jc(n),[R,P]=c.useState(null),_=c.useRef(null),A=D(t,_,m.onContentChange),I=c.useRef(0),T=c.useRef(""),k=c.useRef(0),K=c.useRef(null),V=c.useRef("right"),ae=c.useRef(0),ce=g?pt:c.Fragment,L=g?{as:is,allowPinchZoom:!0}:void 0,se=E=>{var Z,ge;const O=T.current+E,$=b().filter(B=>!B.disabled),W=document.activeElement,he=(Z=$.find(B=>B.ref.current===W))==null?void 0:Z.textValue,me=$.map(B=>B.textValue),Me=xs(me,O,he),te=(ge=$.find(B=>B.textValue===Me))==null?void 0:ge.ref.current;(function B(ye){T.current=ye,window.clearTimeout(I.current),ye!==""&&(I.current=window.setTimeout(()=>B(""),1e3))})(O),te&&setTimeout(()=>te.focus())};c.useEffect(()=>()=>window.clearTimeout(I.current),[]),en();const F=c.useCallback(E=>{var $,W;return V.current===(($=K.current)==null?void 0:$.side)&&bs(E,(W=K.current)==null?void 0:W.area)},[]);return d.jsx(as,{scope:n,searchRef:T,onItemEnter:c.useCallback(E=>{F(E)&&E.preventDefault()},[F]),onItemLeave:c.useCallback(E=>{var O;F(E)||((O=_.current)==null||O.focus(),P(null))},[F]),onTriggerLeave:c.useCallback(E=>{F(E)&&E.preventDefault()},[F]),pointerGraceTimerRef:k,onPointerGraceIntentChange:c.useCallback(E=>{K.current=E},[]),children:d.jsx(ce,{...L,children:d.jsx(it,{asChild:!0,trapped:o,onMountAutoFocus:S(a,E=>{var O;E.preventDefault(),(O=_.current)==null||O.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:d.jsx(st,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:f,onFocusOutside:u,onInteractOutside:v,onDismiss:y,children:d.jsx(ic,{asChild:!0,...x,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:R,onCurrentTabStopIdChange:P,onEntryFocus:S(p,E=>{w.isUsingKeyboardRef.current||E.preventDefault()}),preventScrollOnEntryFocus:!0,children:d.jsx(za,{role:"menu","aria-orientation":"vertical","data-state":Zn(m.open),"data-radix-menu-content":"",dir:w.dir,...C,...h,ref:A,style:{outline:"none",...h.style},onKeyDown:S(h.onKeyDown,E=>{const $=E.target.closest("[data-radix-menu-content]")===E.currentTarget,W=E.ctrlKey||E.altKey||E.metaKey,he=E.key.length===1;$&&(E.key==="Tab"&&E.preventDefault(),!W&&he&&se(E.key));const me=_.current;if(E.target!==me||!qc.includes(E.key))return;E.preventDefault();const te=b().filter(Z=>!Z.disabled).map(Z=>Z.ref.current);An.includes(E.key)&&te.reverse(),ys(te)}),onBlur:S(e.onBlur,E=>{E.currentTarget.contains(E.target)||(window.clearTimeout(I.current),T.current="")}),onPointerMove:S(e.onPointerMove,be(E=>{const O=E.target,$=ae.current!==E.clientX;if(E.currentTarget.contains(O)&&$){const W=E.clientX>ae.current?"right":"left";V.current=W,ae.current=E.clientX}}))})})})})})})});On.displayName=U;var us="MenuGroup",yt=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return d.jsx(N.div,{role:"group",...r,ref:t})});yt.displayName=us;var ls="MenuLabel",jn=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return d.jsx(N.div,{...r,ref:t})});jn.displayName=ls;var Le="MenuItem",zt="menu.itemSelect",Ge=c.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,a=c.useRef(null),i=Se(Le,e.__scopeMenu),s=mt(Le,e.__scopeMenu),p=D(t,a),l=c.useRef(!1),f=()=>{const u=a.current;if(!n&&u){const v=new CustomEvent(zt,{bubbles:!0,cancelable:!0});u.addEventListener(zt,y=>r==null?void 0:r(y),{once:!0}),Xt(u,v),v.defaultPrevented?l.current=!1:i.onClose()}};return d.jsx(Ln,{...o,ref:p,disabled:n,onClick:S(e.onClick,f),onPointerDown:u=>{var v;(v=e.onPointerDown)==null||v.call(e,u),l.current=!0},onPointerUp:S(e.onPointerUp,u=>{var v;l.current||(v=u.currentTarget)==null||v.click()}),onKeyDown:S(e.onKeyDown,u=>{const v=s.searchRef.current!=="";n||v&&u.key===" "||ot.includes(u.key)&&(u.currentTarget.click(),u.preventDefault())})})});Ge.displayName=Le;var Ln=c.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...a}=e,i=mt(Le,n),s=Dn(n),p=c.useRef(null),l=D(t,p),[f,u]=c.useState(!1),[v,y]=c.useState("");return c.useEffect(()=>{const g=p.current;g&&y((g.textContent??"").trim())},[a.children]),d.jsx(Ce.ItemSlot,{scope:n,disabled:r,textValue:o??v,children:d.jsx(uc,{asChild:!0,...s,focusable:!r,children:d.jsx(N.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...a,ref:l,onPointerMove:S(e.onPointerMove,be(g=>{r?i.onItemLeave(g):(i.onItemEnter(g),g.defaultPrevented||g.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:S(e.onPointerLeave,be(g=>i.onItemLeave(g))),onFocus:S(e.onFocus,()=>u(!0)),onBlur:S(e.onBlur,()=>u(!1))})})})}),ds="MenuCheckboxItem",Fn=c.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return d.jsx(Gn,{scope:e.__scopeMenu,checked:n,children:d.jsx(Ge,{role:"menuitemcheckbox","aria-checked":Fe(n)?"mixed":n,...o,ref:t,"data-state":xt(n),onSelect:S(o.onSelect,()=>r==null?void 0:r(Fe(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Fn.displayName=ds;var $n="MenuRadioGroup",[fs,ps]=re($n,{value:void 0,onValueChange:()=>{}}),Wn=c.forwardRef((e,t)=>{const{value:n,onValueChange:r,...o}=e,a=X(r);return d.jsx(fs,{scope:e.__scopeMenu,value:n,onValueChange:a,children:d.jsx(yt,{...o,ref:t})})});Wn.displayName=$n;var Bn="MenuRadioItem",Un=c.forwardRef((e,t)=>{const{value:n,...r}=e,o=ps(Bn,e.__scopeMenu),a=n===o.value;return d.jsx(Gn,{scope:e.__scopeMenu,checked:a,children:d.jsx(Ge,{role:"menuitemradio","aria-checked":a,...r,ref:t,"data-state":xt(a),onSelect:S(r.onSelect,()=>{var i;return(i=o.onValueChange)==null?void 0:i.call(o,n)},{checkForDefaultPrevented:!1})})})});Un.displayName=Bn;var wt="MenuItemIndicator",[Gn,vs]=re(wt,{checked:!1}),Kn=c.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,a=vs(wt,n);return d.jsx(ee,{present:r||Fe(a.checked)||a.checked===!0,children:d.jsx(N.span,{...o,ref:t,"data-state":xt(a.checked)})})});Kn.displayName=wt;var hs="MenuSeparator",zn=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return d.jsx(N.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});zn.displayName=hs;var ms="MenuArrow",Hn=c.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=Ue(n);return d.jsx(Ha,{...o,...r,ref:t})});Hn.displayName=ms;var gs="MenuSub",[bu,Vn]=re(gs),xe="MenuSubTrigger",Yn=c.forwardRef((e,t)=>{const n=oe(xe,e.__scopeMenu),r=Se(xe,e.__scopeMenu),o=Vn(xe,e.__scopeMenu),a=mt(xe,e.__scopeMenu),i=c.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:p}=a,l={__scopeMenu:e.__scopeMenu},f=c.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return c.useEffect(()=>f,[f]),c.useEffect(()=>{const u=s.current;return()=>{window.clearTimeout(u),p(null)}},[s,p]),d.jsx(vt,{asChild:!0,...l,children:d.jsx(Ln,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":n.open?o.contentId:void 0,"data-state":Zn(n.open),...e,ref:ct(t,o.onTriggerChange),onClick:u=>{var v;(v=e.onClick)==null||v.call(e,u),!(e.disabled||u.defaultPrevented)&&(u.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:S(e.onPointerMove,be(u=>{a.onItemEnter(u),!u.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(a.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),f()},100))})),onPointerLeave:S(e.onPointerLeave,be(u=>{var y,g;f();const v=(y=n.content)==null?void 0:y.getBoundingClientRect();if(v){const h=(g=n.content)==null?void 0:g.dataset.side,m=h==="right",w=m?-5:5,C=v[m?"left":"right"],x=v[m?"right":"left"];a.onPointerGraceIntentChange({area:[{x:u.clientX+w,y:u.clientY},{x:C,y:v.top},{x,y:v.top},{x,y:v.bottom},{x:C,y:v.bottom}],side:h}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(u),u.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:S(e.onKeyDown,u=>{var y;const v=a.searchRef.current!=="";e.disabled||v&&u.key===" "||Zc[r.dir].includes(u.key)&&(n.onOpenChange(!0),(y=n.content)==null||y.focus(),u.preventDefault())})})})});Yn.displayName=xe;var Xn="MenuSubContent",qn=c.forwardRef((e,t)=>{const n=In(U,e.__scopeMenu),{forceMount:r=n.forceMount,align:o="start",...a}=e,i=oe(U,e.__scopeMenu),s=Se(U,e.__scopeMenu),p=Vn(Xn,e.__scopeMenu),l=c.useRef(null),f=D(t,l);return d.jsx(Ce.Provider,{scope:e.__scopeMenu,children:d.jsx(ee,{present:r||i.open,children:d.jsx(Ce.Slot,{scope:e.__scopeMenu,children:d.jsx(gt,{id:p.contentId,"aria-labelledby":p.triggerId,...a,ref:f,align:o,side:s.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:u=>{var v;s.isUsingKeyboardRef.current&&((v=l.current)==null||v.focus()),u.preventDefault()},onCloseAutoFocus:u=>u.preventDefault(),onFocusOutside:S(e.onFocusOutside,u=>{u.target!==p.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:S(e.onEscapeKeyDown,u=>{s.onClose(),u.preventDefault()}),onKeyDown:S(e.onKeyDown,u=>{var g;const v=u.currentTarget.contains(u.target),y=Qc[s.dir].includes(u.key);v&&y&&(i.onOpenChange(!1),(g=p.trigger)==null||g.focus(),u.preventDefault())})})})})})});qn.displayName=Xn;function Zn(e){return e?"open":"closed"}function Fe(e){return e==="indeterminate"}function xt(e){return Fe(e)?"indeterminate":e?"checked":"unchecked"}function ys(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function ws(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function xs(e,t,n){const o=t.length>1&&Array.from(t).every(l=>l===t[0])?t[0]:t,a=n?e.indexOf(n):-1;let i=ws(e,Math.max(a,0));o.length===1&&(i=i.filter(l=>l!==n));const p=i.find(l=>l.toLowerCase().startsWith(o.toLowerCase()));return p!==n?p:void 0}function Cs(e,t){const{x:n,y:r}=e;let o=!1;for(let a=0,i=t.length-1;ar!=v>r&&n<(u-l)*(r-f)/(v-f)+l&&(o=!o)}return o}function bs(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Cs(n,t)}function be(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Es=kn,_s=vt,Ss=Tn,Ms=On,Rs=yt,Ps=jn,As=Ge,Ns=Fn,Ds=Wn,ks=Un,Is=Kn,Ts=zn,Os=Hn,js=Yn,Ls=qn,Ke="DropdownMenu",[Fs]=J(Ke,[Nn]),j=Nn(),[$s,Qn]=Fs(Ke),Jn=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,p=j(t),l=c.useRef(null),[f,u]=We({prop:o,defaultProp:a??!1,onChange:i,caller:Ke});return d.jsx($s,{scope:t,triggerId:de(),triggerRef:l,contentId:de(),open:f,onOpenChange:u,onOpenToggle:c.useCallback(()=>u(v=>!v),[u]),modal:s,children:d.jsx(Es,{...p,open:f,onOpenChange:u,dir:r,modal:s,children:n})})};Jn.displayName=Ke;var er="DropdownMenuTrigger",tr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,a=Qn(er,n),i=j(n);return d.jsx(_s,{asChild:!0,...i,children:d.jsx(N.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...o,ref:ct(t,a.triggerRef),onPointerDown:S(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(a.onOpenToggle(),a.open||s.preventDefault())}),onKeyDown:S(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&a.onOpenToggle(),s.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});tr.displayName=er;var Ws="DropdownMenuPortal",nr=e=>{const{__scopeDropdownMenu:t,...n}=e,r=j(t);return d.jsx(Ss,{...r,...n})};nr.displayName=Ws;var rr="DropdownMenuContent",or=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Qn(rr,n),a=j(n),i=c.useRef(!1);return d.jsx(Ms,{id:o.contentId,"aria-labelledby":o.triggerId,...a,...r,ref:t,onCloseAutoFocus:S(e.onCloseAutoFocus,s=>{var p;i.current||(p=o.triggerRef.current)==null||p.focus(),i.current=!1,s.preventDefault()}),onInteractOutside:S(e.onInteractOutside,s=>{const p=s.detail.originalEvent,l=p.button===0&&p.ctrlKey===!0,f=p.button===2||l;(!o.modal||f)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});or.displayName=rr;var Bs="DropdownMenuGroup",Us=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Rs,{...o,...r,ref:t})});Us.displayName=Bs;var Gs="DropdownMenuLabel",ar=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ps,{...o,...r,ref:t})});ar.displayName=Gs;var Ks="DropdownMenuItem",cr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(As,{...o,...r,ref:t})});cr.displayName=Ks;var zs="DropdownMenuCheckboxItem",sr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ns,{...o,...r,ref:t})});sr.displayName=zs;var Hs="DropdownMenuRadioGroup",Vs=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ds,{...o,...r,ref:t})});Vs.displayName=Hs;var Ys="DropdownMenuRadioItem",ir=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(ks,{...o,...r,ref:t})});ir.displayName=Ys;var Xs="DropdownMenuItemIndicator",ur=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Is,{...o,...r,ref:t})});ur.displayName=Xs;var qs="DropdownMenuSeparator",lr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ts,{...o,...r,ref:t})});lr.displayName=qs;var Zs="DropdownMenuArrow",Qs=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Os,{...o,...r,ref:t})});Qs.displayName=Zs;var Js="DropdownMenuSubTrigger",dr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(js,{...o,...r,ref:t})});dr.displayName=Js;var ei="DropdownMenuSubContent",fr=c.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=j(n);return d.jsx(Ls,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});fr.displayName=ei;var Eu=Jn,_u=tr,Su=nr,Mu=or,Ru=ar,Pu=cr,Au=sr,Nu=ir,Du=ur,ku=lr,Iu=dr,Tu=fr;function ti(e){const t=c.useRef({value:e,previous:e});return c.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var ze="Switch",[ni]=J(ze),[ri,Ct]=ni(ze);function oi(e){const{__scopeSwitch:t,checked:n,children:r,defaultChecked:o,disabled:a,form:i,name:s,onCheckedChange:p,required:l,value:f="on",internal_do_not_use_render:u}=e,[v,y]=We({prop:n,defaultProp:o??!1,onChange:p,caller:ze}),[g,h]=c.useState(null),[m,w]=c.useState(null),C=c.useRef(!1),x=g?!!i||!!g.closest("form"):!0,b={checked:v,setChecked:y,disabled:a,control:g,setControl:h,name:s,form:i,value:f,hasConsumerStoppedPropagationRef:C,required:l,defaultChecked:o,isFormControl:x,bubbleInput:m,setBubbleInput:w};return d.jsx(ri,{scope:t,...b,children:si(u)?u(b):r})}var pr="SwitchTrigger",vr=c.forwardRef(({__scopeSwitch:e,onClick:t,...n},r)=>{const{value:o,disabled:a,checked:i,required:s,setControl:p,setChecked:l,hasConsumerStoppedPropagationRef:f,isFormControl:u,bubbleInput:v}=Ct(pr,e),y=D(r,p);return d.jsx(N.button,{type:"button",role:"switch","aria-checked":i,"aria-required":s,"data-state":yr(i),"data-disabled":a?"":void 0,disabled:a,value:o,...n,ref:y,onClick:S(t,g=>{l(h=>!h),v&&u&&(f.current=g.isPropagationStopped(),f.current||g.stopPropagation())})})});vr.displayName=pr;var ai=c.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:o,defaultChecked:a,required:i,disabled:s,value:p,onCheckedChange:l,form:f,...u}=e;return d.jsx(oi,{__scopeSwitch:n,checked:o,defaultChecked:a,disabled:s,required:i,onCheckedChange:l,name:r,form:f,value:p,internal_do_not_use_render:({isFormControl:v})=>d.jsxs(d.Fragment,{children:[d.jsx(vr,{...u,ref:t,__scopeSwitch:n}),v&&d.jsx(gr,{__scopeSwitch:n})]})})});ai.displayName=ze;var hr="SwitchThumb",ci=c.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,o=Ct(hr,n);return d.jsx(N.span,{"data-state":yr(o.checked),"data-disabled":o.disabled?"":void 0,...r,ref:t})});ci.displayName=hr;var mr="SwitchBubbleInput",gr=c.forwardRef(({__scopeSwitch:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:o,checked:a,defaultChecked:i,required:s,disabled:p,name:l,value:f,form:u,bubbleInput:v,setBubbleInput:y}=Ct(mr,e),g=D(n,y),h=ti(a),m=rn(r);c.useEffect(()=>{const C=v;if(!C)return;const x=window.HTMLInputElement.prototype,R=Object.getOwnPropertyDescriptor(x,"checked").set,P=!o.current;if(h!==a&&R){const _=new Event("click",{bubbles:P});R.call(C,a),C.dispatchEvent(_)}},[v,h,a,o]);const w=c.useRef(a);return d.jsx(N.input,{type:"checkbox","aria-hidden":!0,defaultChecked:i??w.current,required:s,disabled:p,name:l,value:f,form:u,...t,tabIndex:-1,ref:g,style:{...t.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});gr.displayName=mr;function si(e){return typeof e=="function"}function yr(e){return e?"checked":"unchecked"}var ii="Label",wr=c.forwardRef((e,t)=>d.jsx(N.label,{...e,ref:t,onMouseDown:n=>{var o;n.target.closest("button, input, select, textarea")||((o=e.onMouseDown)==null||o.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));wr.displayName=ii;var Ou=wr,He="Dialog",[xr,Cr]=J(He),[ui,G]=xr(He),br=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,s=c.useRef(null),p=c.useRef(null),[l,f]=We({prop:r,defaultProp:o??!1,onChange:a,caller:He});return d.jsx(ui,{scope:t,triggerRef:s,contentRef:p,contentId:de(),titleId:de(),descriptionId:de(),open:l,onOpenChange:f,onOpenToggle:c.useCallback(()=>f(u=>!u),[f]),modal:i,children:n})};br.displayName=He;var Er="DialogTrigger",_r=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(Er,n),a=D(t,o.triggerRef);return d.jsx(N.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":_t(o.open),...r,ref:a,onClick:S(e.onClick,o.onOpenToggle)})});_r.displayName=Er;var bt="DialogPortal",[li,Sr]=xr(bt,{forceMount:void 0}),Mr=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=G(bt,t);return d.jsx(li,{scope:t,forceMount:n,children:c.Children.map(r,i=>d.jsx(ee,{present:n||a.open,children:d.jsx(ft,{asChild:!0,container:o,children:i})}))})};Mr.displayName=bt;var $e="DialogOverlay",Rr=c.forwardRef((e,t)=>{const n=Sr($e,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=G($e,e.__scopeDialog);return a.modal?d.jsx(ee,{present:r||a.open,children:d.jsx(fi,{...o,ref:t})}):null});Rr.displayName=$e;var di=ve("DialogOverlay.RemoveScroll"),fi=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G($e,n);return d.jsx(pt,{as:di,allowPinchZoom:!0,shards:[o.contentRef],children:d.jsx(N.div,{"data-state":_t(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),ne="DialogContent",Pr=c.forwardRef((e,t)=>{const n=Sr(ne,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=G(ne,e.__scopeDialog);return d.jsx(ee,{present:r||a.open,children:a.modal?d.jsx(pi,{...o,ref:t}):d.jsx(vi,{...o,ref:t})})});Pr.displayName=ne;var pi=c.forwardRef((e,t)=>{const n=G(ne,e.__scopeDialog),r=c.useRef(null),o=D(t,n.contentRef,r);return c.useEffect(()=>{const a=r.current;if(a)return Cn(a)},[]),d.jsx(Ar,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:S(e.onCloseAutoFocus,a=>{var i;a.preventDefault(),(i=n.triggerRef.current)==null||i.focus()}),onPointerDownOutside:S(e.onPointerDownOutside,a=>{const i=a.detail.originalEvent,s=i.button===0&&i.ctrlKey===!0;(i.button===2||s)&&a.preventDefault()}),onFocusOutside:S(e.onFocusOutside,a=>a.preventDefault())})}),vi=c.forwardRef((e,t)=>{const n=G(ne,e.__scopeDialog),r=c.useRef(!1),o=c.useRef(!1);return d.jsx(Ar,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var i,s;(i=e.onCloseAutoFocus)==null||i.call(e,a),a.defaultPrevented||(r.current||(s=n.triggerRef.current)==null||s.focus(),a.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:a=>{var p,l;(p=e.onInteractOutside)==null||p.call(e,a),a.defaultPrevented||(r.current=!0,a.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const i=a.target;((l=n.triggerRef.current)==null?void 0:l.contains(i))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&o.current&&a.preventDefault()}})}),Ar=c.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,s=G(ne,n),p=c.useRef(null),l=D(t,p);return en(),d.jsxs(d.Fragment,{children:[d.jsx(it,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:d.jsx(st,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":_t(s.open),...i,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),d.jsxs(d.Fragment,{children:[d.jsx(mi,{titleId:s.titleId}),d.jsx(yi,{contentRef:p,descriptionId:s.descriptionId})]})]})}),Et="DialogTitle",Nr=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(Et,n);return d.jsx(N.h2,{id:o.titleId,...r,ref:t})});Nr.displayName=Et;var Dr="DialogDescription",kr=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(Dr,n);return d.jsx(N.p,{id:o.descriptionId,...r,ref:t})});kr.displayName=Dr;var Ir="DialogClose",Tr=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=G(Ir,n);return d.jsx(N.button,{type:"button",...r,ref:t,onClick:S(e.onClick,()=>o.onOpenChange(!1))})});Tr.displayName=Ir;function _t(e){return e?"open":"closed"}var Or="DialogTitleWarning",[hi,jr]=na(Or,{contentName:ne,titleName:Et,docsSlug:"dialog"}),mi=({titleId:e})=>{const t=jr(Or),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
-For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return c.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},fi="DialogDescriptionWarning",pi=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${jr(fi).contentName}}.`;return c.useEffect(()=>{var a;const o=(a=e.current)==null?void 0:a.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},vi=br,hi=Sr,mi=Mr,gi=Rr,yi=Pr,wi=Nr,Ci=Ir,Lr=Tr,Fr="AlertDialog",[xi]=J(Fr,[xr]),q=xr(),$r=e=>{const{__scopeAlertDialog:t,...n}=e,r=q(t);return d.jsx(vi,{...r,...n,modal:!0})};$r.displayName=Fr;var bi="AlertDialogTrigger",Wr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(hi,{...o,...r,ref:t})});Wr.displayName=bi;var Ei="AlertDialogPortal",Br=e=>{const{__scopeAlertDialog:t,...n}=e,r=q(t);return d.jsx(mi,{...r,...n})};Br.displayName=Ei;var Si="AlertDialogOverlay",Ur=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(gi,{...o,...r,ref:t})});Ur.displayName=Si;var pe="AlertDialogContent",[_i,Mi]=xi(pe),Ri=na("AlertDialogContent"),Gr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...o}=e,a=q(n),i=c.useRef(null),s=D(t,i),p=c.useRef(null);return d.jsx(li,{contentName:pe,titleName:Kr,docsSlug:"alert-dialog",children:d.jsx(_i,{scope:n,cancelRef:p,children:d.jsxs(yi,{role:"alertdialog",...a,...o,ref:s,onOpenAutoFocus:_(o.onOpenAutoFocus,l=>{var f;l.preventDefault(),(f=p.current)==null||f.focus({preventScroll:!0})}),onPointerDownOutside:l=>l.preventDefault(),onInteractOutside:l=>l.preventDefault(),children:[d.jsx(Ri,{children:r}),d.jsx(Ai,{contentRef:i})]})})})});Gr.displayName=pe;var Kr="AlertDialogTitle",zr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(wi,{...o,...r,ref:t})});zr.displayName=Kr;var Hr="AlertDialogDescription",Vr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(Ci,{...o,...r,ref:t})});Vr.displayName=Hr;var Pi="AlertDialogAction",Yr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(Lr,{...o,...r,ref:t})});Yr.displayName=Pi;var Xr="AlertDialogCancel",qr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=Mi(Xr,n),a=q(n),i=D(t,o);return d.jsx(Lr,{...a,...r,ref:i})});qr.displayName=Xr;var Ai=({contentRef:e})=>{const t=`\`${pe}\` requires a description for the component to be accessible for screen reader users.
+For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return c.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},gi="DialogDescriptionWarning",yi=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${jr(gi).contentName}}.`;return c.useEffect(()=>{var a;const o=(a=e.current)==null?void 0:a.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},wi=br,xi=_r,Ci=Mr,bi=Rr,Ei=Pr,_i=Nr,Si=kr,Lr=Tr,Fr="AlertDialog",[Mi]=J(Fr,[Cr]),q=Cr(),$r=e=>{const{__scopeAlertDialog:t,...n}=e,r=q(t);return d.jsx(wi,{...r,...n,modal:!0})};$r.displayName=Fr;var Ri="AlertDialogTrigger",Wr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(xi,{...o,...r,ref:t})});Wr.displayName=Ri;var Pi="AlertDialogPortal",Br=e=>{const{__scopeAlertDialog:t,...n}=e,r=q(t);return d.jsx(Ci,{...r,...n})};Br.displayName=Pi;var Ai="AlertDialogOverlay",Ur=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(bi,{...o,...r,ref:t})});Ur.displayName=Ai;var pe="AlertDialogContent",[Ni,Di]=Mi(pe),ki=sa("AlertDialogContent"),Gr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...o}=e,a=q(n),i=c.useRef(null),s=D(t,i),p=c.useRef(null);return d.jsx(hi,{contentName:pe,titleName:Kr,docsSlug:"alert-dialog",children:d.jsx(Ni,{scope:n,cancelRef:p,children:d.jsxs(Ei,{role:"alertdialog",...a,...o,ref:s,onOpenAutoFocus:S(o.onOpenAutoFocus,l=>{var f;l.preventDefault(),(f=p.current)==null||f.focus({preventScroll:!0})}),onPointerDownOutside:l=>l.preventDefault(),onInteractOutside:l=>l.preventDefault(),children:[d.jsx(ki,{children:r}),d.jsx(Ti,{contentRef:i})]})})})});Gr.displayName=pe;var Kr="AlertDialogTitle",zr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(_i,{...o,...r,ref:t})});zr.displayName=Kr;var Hr="AlertDialogDescription",Vr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(Si,{...o,...r,ref:t})});Vr.displayName=Hr;var Ii="AlertDialogAction",Yr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=q(n);return d.jsx(Lr,{...o,...r,ref:t})});Yr.displayName=Ii;var Xr="AlertDialogCancel",qr=c.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=Di(Xr,n),a=q(n),i=D(t,o);return d.jsx(Lr,{...a,...r,ref:i})});qr.displayName=Xr;var Ti=({contentRef:e})=>{const t=`\`${pe}\` requires a description for the component to be accessible for screen reader users.
You can add a description to the \`${pe}\` by passing a \`${Hr}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${pe}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
-For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return c.useEffect(()=>{var r;document.getElementById((r=e.current)==null?void 0:r.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},Mu=$r,Ru=Wr,Pu=Br,Au=Ur,Nu=Gr,Du=Yr,Iu=qr,ku=zr,Tu=Vr;export{wi as $,Di as A,Ii as B,Ti as C,Zi as D,Fi as E,$i as F,Vi as G,Wi as H,yu as I,Hi as J,Li as K,gu as L,Qi as M,zi as N,Bi as O,hu as P,tu as Q,Cu as R,Eu as S,vu as T,Xi as U,iu as V,vi as W,lu as X,mi as Y,yi as Z,Lr as _,Su as a,gi as a0,Ci as a1,Mu as a2,Ru as a3,Pu as a4,Nu as a5,ku as a6,Tu as a7,Iu as a8,Du as a9,Au as aa,_u as ab,mu as b,wu as c,xu as d,ki as e,Oi as f,bu as g,pu as h,au as i,ou as j,Gi as k,nu as l,eu as m,su as n,du as o,Yi as p,Ki as q,ji as r,qi as s,ei as t,ti as u,ru as v,uu as w,Ji as x,Ui as y,cu as z};
+For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return c.useEffect(()=>{var r;document.getElementById((r=e.current)==null?void 0:r.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},ju=$r,Lu=Wr,Fu=Br,$u=Ur,Wu=Gr,Bu=Yr,Uu=qr,Gu=zr,Ku=Vr;export{wi as $,ji as A,iu as B,$i as C,Li as D,Ki as E,Hi as F,qi as G,Yi as H,Pu as I,hu as J,au as K,Ru as L,cu as M,tu as N,eu as O,Su as P,lu as Q,Nu as R,Iu as S,_u as T,wu as U,Ui as V,Ji as W,xu as X,Xi as Y,ru as Z,gu as _,Tu as a,Ci as a0,Ei as a1,Lr as a2,_i as a3,bi as a4,Si as a5,Ou as a6,ju as a7,Lu as a8,Fu as a9,Wu as aa,Gu as ab,Ku as ac,Uu as ad,Bu as ae,$u as af,Gi as ag,Mu as b,Au as c,Du as d,Fi as e,Wi as f,ku as g,Eu as h,vu as i,Zi as j,du as k,uu as l,mu as m,nu as n,zi as o,ou as p,pu as q,Cu as r,Qi as s,Vi as t,Bi as u,ai as v,ci as w,fu as x,yu as y,su as z};
diff --git a/embed_static/static/spa/assets/virtual-vendor-05wd80F5.js b/embed_static/static/spa/assets/virtual-vendor-DQlhmwRh.js
similarity index 99%
rename from embed_static/static/spa/assets/virtual-vendor-05wd80F5.js
rename to embed_static/static/spa/assets/virtual-vendor-DQlhmwRh.js
index 4fcd29a..b280401 100644
--- a/embed_static/static/spa/assets/virtual-vendor-05wd80F5.js
+++ b/embed_static/static/spa/assets/virtual-vendor-DQlhmwRh.js
@@ -1 +1 @@
-import{r as y,a as k}from"./react-vendor-CgzNJrV9.js";function W(r,u,t){const e=new Array(r);return new Proxy(e,{get(s,i,o){if(typeof i=="string"){const n=i.charCodeAt(0);if(n>=48&&n<=57){const l=+i;if(Number.isInteger(l)&&l>=0&&le[c]!==h))&&(e=n,s=u(...n),t!=null&&t.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(s),i=!1),s}return o.updateDeps=n=>{e=n},o}function A(r,u){if(r===void 0)throw new Error("Unexpected undefined");return r}const D=(r,u)=>Math.abs(r-u)<1.01,L=(r,u,t)=>{let e;return function(...s){r.clearTimeout(e),e=r.setTimeout(()=>u.apply(this,s),t)}};let I;const w=()=>{if(I!==void 0)return I;if(typeof navigator>"u")return I=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return I=!0;const r=navigator.maxTouchPoints;return I=navigator.platform==="MacIntel"&&r!==void 0&&r>0},R=r=>{const{offsetWidth:u,offsetHeight:t}=r;return{width:u,height:t}},j=r=>r,V=r=>{const u=Math.max(r.startIndex-r.overscan,0),e=Math.min(r.endIndex+r.overscan,r.count-1)-u+1,s=new Array(e);for(let i=0;i{const t=r.scrollElement;if(!t)return;const e=r.targetWindow;if(!e)return;const s=o=>{const{width:n,height:l}=o;u({width:Math.round(n),height:Math.round(l)})};if(s(R(t)),!e.ResizeObserver)return()=>{};const i=new e.ResizeObserver(o=>{const n=()=>{const l=o[0];if(l!=null&&l.borderBoxSize){const h=l.borderBoxSize[0];if(h){s({width:h.inlineSize,height:h.blockSize});return}}s(R(t))};r.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},_={passive:!0},P=typeof window>"u"?!0:"onscrollend"in window,N=(r,u,t)=>{const e=r.scrollElement;if(!e)return;const s=r.targetWindow;if(!s)return;const i=r.options.useScrollendEvent&&P;let o=0;const n=i?null:L(s,()=>u(o,!1),r.options.isScrollingResetDelay),l=f=>()=>{o=t(e),n==null||n(),u(o,f)},h=l(!0),c=l(!1);return e.addEventListener("scroll",h,_),i&&e.addEventListener("scrollend",c,_),()=>{e.removeEventListener("scroll",h),i&&e.removeEventListener("scrollend",c)}},B=(r,u)=>N(r,u,t=>{const{horizontal:e,isRtl:s}=r.options;return e?t.scrollLeft*(s&&-1||1):t.scrollTop}),H=(r,u,t)=>{if(t.options.useCachedMeasurements){const e=t.indexFromElement(r),s=t.options.getItemKey(e);return t.itemSizeCache.get(s)??t.options.estimateSize(e)}if(u!=null&&u.borderBoxSize){const e=u.borderBoxSize[0];if(e)return Math.round(e[t.options.horizontal?"inlineSize":"blockSize"])}if(!u){const e=t.indexFromElement(r),s=t.options.getItemKey(e),i=t.itemSizeCache.get(s);if(i!==void 0)return i}return r[t.options.horizontal?"offsetWidth":"offsetHeight"]},J=(r,{adjustments:u=0,behavior:t},e)=>{var s,i;(i=(s=e.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[e.options.horizontal?"left":"top"]:r+u,behavior:t})},$=J;class q{constructor(u){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,e,s;return((s=(e=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:e.now)==null?void 0:s.call(e))??Date.now()},this.observer=(()=>{let t=null;const e=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=()=>{const n=i.target,l=this.indexFromElement(n);if(!n.isConnected){this.observer.unobserve(n);for(const[h,c]of this.elementsCache)if(c===n){this.elementsCache.delete(h);break}return}this.shouldMeasureDuringScroll(l)&&this.resizeItem(l,this.options.measureElement(n,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=e())==null||s.disconnect(),t=null},observe:s=>{var i;return(i=e())==null?void 0:i.observe(s,{box:"border-box"})},unobserve:s=>{var i;return(i=e())==null?void 0:i.unobserve(s)}}})(),this.range=null,this.setOptions=t=>{var e,s;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:j,rangeExtractor:V,onChange:()=>{},measureElement:H,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const a in t){const g=t[a];g!==void 0&&(i[a]=g)}const o=this.options;let n=null,l=null,h=!1;if(o!==void 0&&o.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const a=o.count,g=i.count,d=this.getMeasurements(),S=a>0?((e=d[0])==null?void 0:e.key)??o.getItemKey(0):null,v=a>0?((s=d[a-1])==null?void 0:s.key)??o.getItemKey(a-1):null;if(g!==a||a>0&&g>0&&(i.getItemKey(0)!==S||i.getItemKey(g-1)!==v)){h=!0;const m=a>0?this.getVirtualItemForOffset(this.getScrollOffset())??d[0]:null;m&&(n=[m.key,this.getScrollOffset()-m.start]);const E=i.followOnAppend===!0?"auto":i.followOnAppend||null;E&&g>a&&this.isAtEnd(o.scrollEndThreshold)&&(a===0||i.getItemKey(g-1)!==v)&&(l=E)}}this.options=i,h&&(this.pendingMin=0,this.itemSizeCacheVersion++);let c=!1,f=0;if(n&&this.scrollOffset!==null){const[a,g]=n,d=this.getMeasurements(),{count:S,getItemKey:v}=this.options;let p=0;for(;p{var e,s;(s=(e=this.options).onChange)==null||s.call(e,this,t)},this.maybeNotify=x(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,o)=>{this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset(){this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!w()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",o,_),i.addEventListener("touchend",n,_),this.unsubs.push(()=>{i.removeEventListener("touchstart",o),i.removeEventListener("touchend",n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[i,o,n,l]=s;i!==null&&!n&&(w()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?l!==0&&(this._iosDeferredAdjustment+=l):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),n&&this.scrollToEnd({behavior:n})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),e=this.getMaxScrollOffset();if(t<0||t>e)return;const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(t,e)=>{const s=new Map,i=new Map;for(let o=e-1;o>=0;o--){const n=t[o];if(s.has(n.lane))continue;const l=i.get(n.lane);if(l==null||n.end>l.end?i.set(n.lane,n):n.endo.end===n.end?o.index-n.index:o.end-n.end)[0]:void 0},this.getMeasurementOptions=x(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(t,e,s,i,o,n,l)=>(this.prevLanes!==void 0&&this.prevLanes!==n&&(this.lanesChangedFlag=!0),this.prevLanes=n,this.pendingMin=null,{count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:l}),{key:!1}),this.getMeasurements=x(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:l},h)=>{const c=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const d of this.laneAssignments.keys())d>=t&&this.laneAssignments.delete(d);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(d=>{this.itemSizeCache.set(d.key,d.size)}));const f=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),n===1){const d=this.options.gap,S=t*2;let v=this._flatMeasurements;if(!v||v.length0&&m.set(v.subarray(0,f*2)),v=m,this._flatMeasurements=v}let p;if(f===0)p=e+s;else{const m=f-1;p=v[m*2]+v[m*2+1]+d}for(let m=f;m1){p=v;const O=g[p],C=O!==void 0?a[O]:void 0;b=C?C.end+this.options.gap:e+s}else{const O=this.options.lanes===1?a[d-1]:this.getFurthestMeasurement(a,d);b=O?O.end+this.options.gap:e+s,p=O?O.lane:d%this.options.lanes,this.options.lanes>1&&m&&this.laneAssignments.set(d,p)}const E=c.get(S),z=typeof E=="number"?E:this.options.estimateSize(d),M=b+z;a[d]={index:d,start:b,size:z,end:M,key:S,lane:p},g[p]=d}return this.measurementsCache=a,a},{key:!1,debug:()=>this.options.debug}),this.calculateRange=x(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,e,s,i)=>this.range=t.length>0&&e>0?U({measurements:t,outerSize:e,scrollOffset:s,lanes:i,flat:i===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=x(()=>{let t=null,e=null;const s=this.calculateRange();return s&&(t=s.startIndex,e=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,e]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,e]},(t,e,s,i,o)=>i===null||o===null?[]:t({startIndex:i,endIndex:o,overscan:e,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const e=this.options.indexAttribute,s=t.getAttribute(e);return s?parseInt(s,10):(console.warn(`Missing attribute name '${e}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var e;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((e=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:e.index);if(s!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-i),n=Math.min(this.options.count-1,s+i);return t>=o&&t<=n}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((o,n)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(n))});return}const e=this.indexFromElement(t),s=this.options.getItemKey(e),i=this.elementsCache.get(s);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(s,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(e)&&this.resizeItem(e,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,e)=>{var s,i;if(t<0||t>=this.options.count)return;let o,n,l;const h=this._flatMeasurements;if(this.options.lanes===1&&h!==null)l=this.options.getItemKey(t),n=h[t*2],o=h[t*2+1];else{const a=this.measurementsCache[t];if(!a)return;l=a.key,n=a.start,o=a.size}const c=this.itemSizeCache.get(l)??o,f=e-c;if(f!==0){const a=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,g=a?this.getTotalSize():0,d=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:l,start:n,size:o,end:n+o,lane:0},f,this):n[this.getVirtualIndexes(),this.getMeasurements()],(t,e)=>{const s=[];for(let i=0,o=t.length;ithis.options.debug}),this.getVirtualItemForOffset=t=>{const e=this.getMeasurements();if(e.length===0)return;const s=this._flatMeasurements,i=this.options.lanes===1&&s!=null,o=F(0,e.length-1,i?n=>s[n*2]:n=>A(e[n]).start,t);return A(e[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,e,s=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),o=this.getScrollOffset();e==="auto"&&(e=t>=o+i?"end":"start"),e==="center"?t+=(s-i)/2:e==="end"&&(t-=i);const n=this.getMaxScrollOffset();return Math.max(Math.min(n,t),0)},this.getOffsetForIndex=(t,e="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const s=this.getSize(),i=this.getScrollOffset(),o=this.measurementsCache[t];if(!o)return;if(e==="auto")if(o.end>=i+s-this.options.scrollPaddingEnd)e="end";else if(o.start<=i+this.options.scrollPaddingStart)e="start";else return[i,e];if(e==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),e];const n=e==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,e,o.size),e]},this.scrollToOffset=(t,{align:e="start",behavior:s="auto"}={})=>{const i=this.getOffsetForAlignment(t,e),o=this.now();this.scrollState={index:null,align:e,behavior:s,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:e="auto",behavior:s="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,e);if(!i)return;const[o,n]=i,l=this.now();this.scrollState={index:t,align:n,behavior:s,startedAt:l,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:e="auto"}={})=>{const s=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:e,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const e=this.getMeasurements();let s;if(e.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const i=e.length-1,o=this._flatMeasurements;o!=null?s=o[i*2]+o[i*2+1]:s=((t=e[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let o=e.length-1;for(;o>=0&&i.some(n=>n===null);){const n=e[o];i[n.lane]===null&&(i[n.lane]=n.end),o--}s=Math.max(...i.filter(n=>n!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const e=this.getMeasurements();for(const s of e)s&&this.itemSizeCache.has(s.key)&&t.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return t},this._scrollToOffset=(t,{adjustments:e,behavior:s})=>{this._intendedScrollOffset=t+(e??0),this.options.scrollToFn(t,{behavior:s,adjustments:e},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(u)}applyScrollAdjustment(u,t){u!==0&&(w()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=u:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=u,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const e=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=e?e[0]:this.scrollState.lastTargetOffset,i=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&D(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const n=this.getSize()||600,l=Math.abs(s-this.getScrollOffset()),h=this.scrollState.behavior==="smooth"&&l>n;this.scrollState.lastTargetOffset=s,h||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:h?"smooth":"auto"})}this.scheduleScrollReconcile()}}const F=(r,u,t,e)=>{for(;r<=u;){const s=(r+u)/2|0,i=t(s);if(ie)u=s-1;else return s}return r>0?r-1:0};function U({measurements:r,outerSize:u,scrollOffset:t,lanes:e,flat:s}){const i=r.length-1,o=s?c=>s[c*2]:c=>r[c].start,n=s?c=>s[c*2]+s[c*2+1]:c=>r[c].end;if(r.length<=e)return{startIndex:0,endIndex:i};let l=F(0,i,o,t),h=l;if(e===1)for(;h1){const c=Array(e).fill(0);for(;ha=0&&f.some(a=>a>=t);){const a=r[l];f[a.lane]=a.start,l--}l=Math.max(0,l-l%e),h=Math.min(i,h+(e-1-h%e))}return{startIndex:l,endIndex:h}}const T=typeof document<"u"?y.useLayoutEffect:y.useEffect;function X({useFlushSync:r=!0,directDomUpdates:u=!1,directDomUpdatesMode:t="transform",...e}){const s=y.useReducer(h=>h+1,0)[1],i=y.useRef({enabled:u,mode:t,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});i.current.enabled=u,i.current.mode=t;const o=h=>{const c=i.current;if(!c.enabled)return;const f=h.getTotalSize();if(c.container&&f!==c.lastSize){c.lastSize=f;const p=h.options.horizontal?"width":"height";c.container.style[p]=`${f}px`}const a=!!h.options.horizontal,g=c.mode==="transform",d=a?"left":"top",S=h.options.scrollMargin,v=h.getVirtualItems();for(const p of v){const b=p.start-S,m=h.elementsCache.get(p.key);m&&c.lastPositions.get(m)!==b&&(c.lastPositions.set(m,b),g?m.style.transform=a?`translate3d(${b}px, 0, 0)`:`translate3d(0, ${b}px, 0)`:m.style[d]=`${b}px`)}},n={...e,onChange:(h,c)=>{var f;const a=i.current;let g=!0;if(a.enabled){o(h);const d=h.range,S=a.prevRange;g=!S||S.isScrolling!==h.isScrolling||S.startIndex!==(d==null?void 0:d.startIndex)||S.endIndex!==(d==null?void 0:d.endIndex),g&&(a.prevRange=d?{startIndex:d.startIndex,endIndex:d.endIndex,isScrolling:h.isScrolling}:null)}g&&(r&&c?k.flushSync(s):s()),(f=e.onChange)==null||f.call(e,h,c)}},[l]=y.useState(()=>{const h=new q(n);return Object.assign(h,{containerRef:c=>{const f=i.current;if(f.container=c,f.lastSize=null,c&&f.enabled){const a=h.getTotalSize();f.lastSize=a;const g=h.options.horizontal?"width":"height";c.style[g]=`${a}px`}}})});return l.setOptions(n),T(()=>l._didMount(),[]),T(()=>l._willUpdate()),T(()=>{o(l)}),l}function Q(r){return X({observeElementRect:K,observeElementOffset:B,scrollToFn:$,...r})}export{Q as u};
+import{r as y,a as k}from"./react-vendor-CFzzFOsg.js";function W(r,u,t){const e=new Array(r);return new Proxy(e,{get(s,i,o){if(typeof i=="string"){const n=i.charCodeAt(0);if(n>=48&&n<=57){const l=+i;if(Number.isInteger(l)&&l>=0&&le[c]!==h))&&(e=n,s=u(...n),t!=null&&t.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(s),i=!1),s}return o.updateDeps=n=>{e=n},o}function A(r,u){if(r===void 0)throw new Error("Unexpected undefined");return r}const D=(r,u)=>Math.abs(r-u)<1.01,L=(r,u,t)=>{let e;return function(...s){r.clearTimeout(e),e=r.setTimeout(()=>u.apply(this,s),t)}};let I;const w=()=>{if(I!==void 0)return I;if(typeof navigator>"u")return I=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return I=!0;const r=navigator.maxTouchPoints;return I=navigator.platform==="MacIntel"&&r!==void 0&&r>0},R=r=>{const{offsetWidth:u,offsetHeight:t}=r;return{width:u,height:t}},j=r=>r,V=r=>{const u=Math.max(r.startIndex-r.overscan,0),e=Math.min(r.endIndex+r.overscan,r.count-1)-u+1,s=new Array(e);for(let i=0;i{const t=r.scrollElement;if(!t)return;const e=r.targetWindow;if(!e)return;const s=o=>{const{width:n,height:l}=o;u({width:Math.round(n),height:Math.round(l)})};if(s(R(t)),!e.ResizeObserver)return()=>{};const i=new e.ResizeObserver(o=>{const n=()=>{const l=o[0];if(l!=null&&l.borderBoxSize){const h=l.borderBoxSize[0];if(h){s({width:h.inlineSize,height:h.blockSize});return}}s(R(t))};r.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},_={passive:!0},P=typeof window>"u"?!0:"onscrollend"in window,N=(r,u,t)=>{const e=r.scrollElement;if(!e)return;const s=r.targetWindow;if(!s)return;const i=r.options.useScrollendEvent&&P;let o=0;const n=i?null:L(s,()=>u(o,!1),r.options.isScrollingResetDelay),l=f=>()=>{o=t(e),n==null||n(),u(o,f)},h=l(!0),c=l(!1);return e.addEventListener("scroll",h,_),i&&e.addEventListener("scrollend",c,_),()=>{e.removeEventListener("scroll",h),i&&e.removeEventListener("scrollend",c)}},B=(r,u)=>N(r,u,t=>{const{horizontal:e,isRtl:s}=r.options;return e?t.scrollLeft*(s&&-1||1):t.scrollTop}),H=(r,u,t)=>{if(t.options.useCachedMeasurements){const e=t.indexFromElement(r),s=t.options.getItemKey(e);return t.itemSizeCache.get(s)??t.options.estimateSize(e)}if(u!=null&&u.borderBoxSize){const e=u.borderBoxSize[0];if(e)return Math.round(e[t.options.horizontal?"inlineSize":"blockSize"])}if(!u){const e=t.indexFromElement(r),s=t.options.getItemKey(e),i=t.itemSizeCache.get(s);if(i!==void 0)return i}return r[t.options.horizontal?"offsetWidth":"offsetHeight"]},J=(r,{adjustments:u=0,behavior:t},e)=>{var s,i;(i=(s=e.scrollElement)==null?void 0:s.scrollTo)==null||i.call(s,{[e.options.horizontal?"left":"top"]:r+u,behavior:t})},$=J;class q{constructor(u){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,e,s;return((s=(e=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:e.now)==null?void 0:s.call(e))??Date.now()},this.observer=(()=>{let t=null;const e=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(s=>{s.forEach(i=>{const o=()=>{const n=i.target,l=this.indexFromElement(n);if(!n.isConnected){this.observer.unobserve(n);for(const[h,c]of this.elementsCache)if(c===n){this.elementsCache.delete(h);break}return}this.shouldMeasureDuringScroll(l)&&this.resizeItem(l,this.options.measureElement(n,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=e())==null||s.disconnect(),t=null},observe:s=>{var i;return(i=e())==null?void 0:i.observe(s,{box:"border-box"})},unobserve:s=>{var i;return(i=e())==null?void 0:i.unobserve(s)}}})(),this.range=null,this.setOptions=t=>{var e,s;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:j,rangeExtractor:V,onChange:()=>{},measureElement:H,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const a in t){const g=t[a];g!==void 0&&(i[a]=g)}const o=this.options;let n=null,l=null,h=!1;if(o!==void 0&&o.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const a=o.count,g=i.count,d=this.getMeasurements(),S=a>0?((e=d[0])==null?void 0:e.key)??o.getItemKey(0):null,v=a>0?((s=d[a-1])==null?void 0:s.key)??o.getItemKey(a-1):null;if(g!==a||a>0&&g>0&&(i.getItemKey(0)!==S||i.getItemKey(g-1)!==v)){h=!0;const m=a>0?this.getVirtualItemForOffset(this.getScrollOffset())??d[0]:null;m&&(n=[m.key,this.getScrollOffset()-m.start]);const E=i.followOnAppend===!0?"auto":i.followOnAppend||null;E&&g>a&&this.isAtEnd(o.scrollEndThreshold)&&(a===0||i.getItemKey(g-1)!==v)&&(l=E)}}this.options=i,h&&(this.pendingMin=0,this.itemSizeCacheVersion++);let c=!1,f=0;if(n&&this.scrollOffset!==null){const[a,g]=n,d=this.getMeasurements(),{count:S,getItemKey:v}=this.options;let p=0;for(;p{var e,s;(s=(e=this.options).onChange)==null||s.call(e,this,t)},this.maybeNotify=x(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,o)=>{this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset(){this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!w()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",o,_),i.addEventListener("touchend",n,_),this.unsubs.push(()=>{i.removeEventListener("touchstart",o),i.removeEventListener("touchend",n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){const[i,o,n,l]=s;i!==null&&!n&&(w()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?l!==0&&(this._iosDeferredAdjustment+=l):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),n&&this.scrollToEnd({behavior:n})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),e=this.getMaxScrollOffset();if(t<0||t>e)return;const s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(t,e)=>{const s=new Map,i=new Map;for(let o=e-1;o>=0;o--){const n=t[o];if(s.has(n.lane))continue;const l=i.get(n.lane);if(l==null||n.end>l.end?i.set(n.lane,n):n.endo.end===n.end?o.index-n.index:o.end-n.end)[0]:void 0},this.getMeasurementOptions=x(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(t,e,s,i,o,n,l)=>(this.prevLanes!==void 0&&this.prevLanes!==n&&(this.lanesChangedFlag=!0),this.prevLanes=n,this.pendingMin=null,{count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:l}),{key:!1}),this.getMeasurements=x(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:e,scrollMargin:s,getItemKey:i,enabled:o,lanes:n,laneAssignmentMode:l},h)=>{const c=this.itemSizeCache;if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const d of this.laneAssignments.keys())d>=t&&this.laneAssignments.delete(d);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(d=>{this.itemSizeCache.set(d.key,d.size)}));const f=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),n===1){const d=this.options.gap,S=t*2;let v=this._flatMeasurements;if(!v||v.length0&&m.set(v.subarray(0,f*2)),v=m,this._flatMeasurements=v}let p;if(f===0)p=e+s;else{const m=f-1;p=v[m*2]+v[m*2+1]+d}for(let m=f;m1){p=v;const O=g[p],C=O!==void 0?a[O]:void 0;b=C?C.end+this.options.gap:e+s}else{const O=this.options.lanes===1?a[d-1]:this.getFurthestMeasurement(a,d);b=O?O.end+this.options.gap:e+s,p=O?O.lane:d%this.options.lanes,this.options.lanes>1&&m&&this.laneAssignments.set(d,p)}const E=c.get(S),z=typeof E=="number"?E:this.options.estimateSize(d),M=b+z;a[d]={index:d,start:b,size:z,end:M,key:S,lane:p},g[p]=d}return this.measurementsCache=a,a},{key:!1,debug:()=>this.options.debug}),this.calculateRange=x(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,e,s,i)=>this.range=t.length>0&&e>0?U({measurements:t,outerSize:e,scrollOffset:s,lanes:i,flat:i===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=x(()=>{let t=null,e=null;const s=this.calculateRange();return s&&(t=s.startIndex,e=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,e]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,e]},(t,e,s,i,o)=>i===null||o===null?[]:t({startIndex:i,endIndex:o,overscan:e,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const e=this.options.indexAttribute,s=t.getAttribute(e);return s?parseInt(s,10):(console.warn(`Missing attribute name '${e}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var e;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((e=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:e.index);if(s!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-i),n=Math.min(this.options.count-1,s+i);return t>=o&&t<=n}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((o,n)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(n))});return}const e=this.indexFromElement(t),s=this.options.getItemKey(e),i=this.elementsCache.get(s);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(s,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(e)&&this.resizeItem(e,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,e)=>{var s,i;if(t<0||t>=this.options.count)return;let o,n,l;const h=this._flatMeasurements;if(this.options.lanes===1&&h!==null)l=this.options.getItemKey(t),n=h[t*2],o=h[t*2+1];else{const a=this.measurementsCache[t];if(!a)return;l=a.key,n=a.start,o=a.size}const c=this.itemSizeCache.get(l)??o,f=e-c;if(f!==0){const a=this.options.anchorTo==="end"&&((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,g=a?this.getTotalSize():0,d=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:l,start:n,size:o,end:n+o,lane:0},f,this):n[this.getVirtualIndexes(),this.getMeasurements()],(t,e)=>{const s=[];for(let i=0,o=t.length;ithis.options.debug}),this.getVirtualItemForOffset=t=>{const e=this.getMeasurements();if(e.length===0)return;const s=this._flatMeasurements,i=this.options.lanes===1&&s!=null,o=F(0,e.length-1,i?n=>s[n*2]:n=>A(e[n]).start,t);return A(e[o])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,e,s=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),o=this.getScrollOffset();e==="auto"&&(e=t>=o+i?"end":"start"),e==="center"?t+=(s-i)/2:e==="end"&&(t-=i);const n=this.getMaxScrollOffset();return Math.max(Math.min(n,t),0)},this.getOffsetForIndex=(t,e="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const s=this.getSize(),i=this.getScrollOffset(),o=this.measurementsCache[t];if(!o)return;if(e==="auto")if(o.end>=i+s-this.options.scrollPaddingEnd)e="end";else if(o.start<=i+this.options.scrollPaddingStart)e="start";else return[i,e];if(e==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),e];const n=e==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,e,o.size),e]},this.scrollToOffset=(t,{align:e="start",behavior:s="auto"}={})=>{const i=this.getOffsetForAlignment(t,e),o=this.now();this.scrollState={index:null,align:e,behavior:s,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:e="auto",behavior:s="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,e);if(!i)return;const[o,n]=i,l=this.now();this.scrollState={index:t,align:n,behavior:s,startedAt:l,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:e="auto"}={})=>{const s=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:e,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const e=this.getMeasurements();let s;if(e.length===0)s=this.options.paddingStart;else if(this.options.lanes===1){const i=e.length-1,o=this._flatMeasurements;o!=null?s=o[i*2]+o[i*2+1]:s=((t=e[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let o=e.length-1;for(;o>=0&&i.some(n=>n===null);){const n=e[o];i[n.lane]===null&&(i[n.lane]=n.end),o--}s=Math.max(...i.filter(n=>n!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const e=this.getMeasurements();for(const s of e)s&&this.itemSizeCache.has(s.key)&&t.push({index:s.index,key:s.key,start:s.start,size:s.size,end:s.end,lane:s.lane});return t},this._scrollToOffset=(t,{adjustments:e,behavior:s})=>{this._intendedScrollOffset=t+(e??0),this.options.scrollToFn(t,{behavior:s,adjustments:e},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(u)}applyScrollAdjustment(u,t){u!==0&&(w()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=u:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=u,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const e=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=e?e[0]:this.scrollState.lastTargetOffset,i=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&D(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==s&&this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){const n=this.getSize()||600,l=Math.abs(s-this.getScrollOffset()),h=this.scrollState.behavior==="smooth"&&l>n;this.scrollState.lastTargetOffset=s,h||(this.scrollState.behavior="auto"),this._scrollToOffset(s,{adjustments:void 0,behavior:h?"smooth":"auto"})}this.scheduleScrollReconcile()}}const F=(r,u,t,e)=>{for(;r<=u;){const s=(r+u)/2|0,i=t(s);if(ie)u=s-1;else return s}return r>0?r-1:0};function U({measurements:r,outerSize:u,scrollOffset:t,lanes:e,flat:s}){const i=r.length-1,o=s?c=>s[c*2]:c=>r[c].start,n=s?c=>s[c*2]+s[c*2+1]:c=>r[c].end;if(r.length<=e)return{startIndex:0,endIndex:i};let l=F(0,i,o,t),h=l;if(e===1)for(;h1){const c=Array(e).fill(0);for(;ha=0&&f.some(a=>a>=t);){const a=r[l];f[a.lane]=a.start,l--}l=Math.max(0,l-l%e),h=Math.min(i,h+(e-1-h%e))}return{startIndex:l,endIndex:h}}const T=typeof document<"u"?y.useLayoutEffect:y.useEffect;function X({useFlushSync:r=!0,directDomUpdates:u=!1,directDomUpdatesMode:t="transform",...e}){const s=y.useReducer(h=>h+1,0)[1],i=y.useRef({enabled:u,mode:t,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});i.current.enabled=u,i.current.mode=t;const o=h=>{const c=i.current;if(!c.enabled)return;const f=h.getTotalSize();if(c.container&&f!==c.lastSize){c.lastSize=f;const p=h.options.horizontal?"width":"height";c.container.style[p]=`${f}px`}const a=!!h.options.horizontal,g=c.mode==="transform",d=a?"left":"top",S=h.options.scrollMargin,v=h.getVirtualItems();for(const p of v){const b=p.start-S,m=h.elementsCache.get(p.key);m&&c.lastPositions.get(m)!==b&&(c.lastPositions.set(m,b),g?m.style.transform=a?`translate3d(${b}px, 0, 0)`:`translate3d(0, ${b}px, 0)`:m.style[d]=`${b}px`)}},n={...e,onChange:(h,c)=>{var f;const a=i.current;let g=!0;if(a.enabled){o(h);const d=h.range,S=a.prevRange;g=!S||S.isScrolling!==h.isScrolling||S.startIndex!==(d==null?void 0:d.startIndex)||S.endIndex!==(d==null?void 0:d.endIndex),g&&(a.prevRange=d?{startIndex:d.startIndex,endIndex:d.endIndex,isScrolling:h.isScrolling}:null)}g&&(r&&c?k.flushSync(s):s()),(f=e.onChange)==null||f.call(e,h,c)}},[l]=y.useState(()=>{const h=new q(n);return Object.assign(h,{containerRef:c=>{const f=i.current;if(f.container=c,f.lastSize=null,c&&f.enabled){const a=h.getTotalSize();f.lastSize=a;const g=h.options.horizontal?"width":"height";c.style[g]=`${a}px`}}})});return l.setOptions(n),T(()=>l._didMount(),[]),T(()=>l._willUpdate()),T(()=>{o(l)}),l}function Q(r){return X({observeElementRect:K,observeElementOffset:B,scrollToFn:$,...r})}export{Q as u};
diff --git a/embed_static/static/spa/index.html b/embed_static/static/spa/index.html
index d5c469b..c754597 100644
--- a/embed_static/static/spa/index.html
+++ b/embed_static/static/spa/index.html
@@ -27,10 +27,10 @@
document.documentElement.style.colorScheme = theme;
})();
-
-
-
-
+
+
+
+
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 0537897..84ef07c 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -1,9 +1,10 @@
import { lazy, Suspense } from 'react';
-import { BrowserRouter, Routes, Route } from 'react-router-dom';
+import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import './styles/global.css';
import { AuthProvider } from './hooks/useAuth';
import { ThemeProvider } from './hooks/useTheme';
import MainLayout from './layouts/MainLayout';
+import AdminLayout from './layouts/AdminLayout';
import ErrorBoundary from './components/ErrorBoundary';
import PageLoader from './components/PageLoader';
import { Toaster } from './components/ui/sonner';
@@ -16,6 +17,11 @@ const ComposePage = lazy(() => import('./pages/ComposePage'));
const BoardsManagePage = lazy(() => import('./pages/BoardsManagePage'));
const ProfilePage = lazy(() => import('./pages/ProfilePage'));
const FavoritesPage = lazy(() => import('./pages/FavoritesPage'));
+const AdminDashboardPage = lazy(() => import('./pages/admin/AdminDashboardPage'));
+const AdminPostsPage = lazy(() => import('./pages/admin/AdminPostsPage'));
+const AdminCommentsPage = lazy(() => import('./pages/admin/AdminCommentsPage'));
+const AdminUsersPage = lazy(() => import('./pages/admin/AdminUsersPage'));
+const AdminSettingsPage = lazy(() => import('./pages/admin/AdminSettingsPage'));
export default function App() {
return (
@@ -26,12 +32,21 @@ export default function App() {
}>} />
}>} />
+ } />
+ }>
+ } />
+ }>} />
+ }>} />
+ }>} />
+ }>} />
+ }>} />
+ }>} />
+
}>
} />
} />
} />
} />
- } />
} />
} />
diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts
index 1f79b4b..7f54d3f 100644
--- a/frontend/src/api/client.ts
+++ b/frontend/src/api/client.ts
@@ -1,4 +1,4 @@
-import type { User, Board, PostItem, Comment, Notification, OnlineUser, OnlineStats, ForumStats } from './types';
+import type { User, Board, PostItem, Comment, Notification, OnlineUser, OnlineStats, ForumStats, AdminDashboard, AdminSettings } from './types';
const BASE = '';
@@ -44,6 +44,38 @@ export const api = {
updateBoard: (id: number, body: { name: string; description: string; sort_order: number }) =>
request<{ board: Board }>(`/api/admin/boards/${id}`, { method: 'PUT', body: JSON.stringify(body) }),
deleteBoard: (id: number) => request(`/api/admin/boards/${id}`, { method: 'DELETE' }),
+ // 管理后台 API
+ adminDashboard: () => request('/api/admin/dashboard'),
+ adminSettings: () => request('/api/admin/settings'),
+ adminPosts: (params: { page?: number; keyword?: string }) => {
+ const q = new URLSearchParams();
+ if (params.page) q.set('page', String(params.page));
+ if (params.keyword) q.set('keyword', params.keyword);
+ const qs = q.toString();
+ return request<{ posts: PostItem[]; total: number; page: number; total_pages: number }>(
+ `/api/admin/posts${qs ? `?${qs}` : ''}`,
+ );
+ },
+ adminPinPost: (id: number, pinned: boolean) =>
+ request<{ message: string; pinned: boolean }>(`/api/admin/posts/${id}/pin`, {
+ method: 'POST', body: JSON.stringify({ pinned }),
+ }),
+ adminDeletePost: (id: number) => request(`/api/admin/posts/${id}`, { method: 'DELETE' }),
+ adminComments: (page = 1) =>
+ request<{ comments: Comment[]; total: number; page: number; total_pages: number }>(
+ `/api/admin/comments?page=${page}`,
+ ),
+ adminDeleteComment: (id: number) => request(`/api/admin/comments/${id}`, { method: 'DELETE' }),
+ adminUsers: (page = 1) =>
+ request<{ users: User[]; total: number; page: number; total_pages: number }>(
+ `/api/admin/users?page=${page}`,
+ ),
+ adminBanUser: (id: number, banned: boolean) =>
+ request<{ message: string; banned: boolean }>(`/api/admin/users/${id}/ban`, {
+ method: 'POST', body: JSON.stringify({ banned }),
+ }),
+ adminBackup: () =>
+ request<{ message: string; filename: string; download: string }>('/api/admin/backup', { method: 'POST' }),
updateNickname: (nickname: string) => {
const fd = new FormData();
fd.append('nickname', nickname);
diff --git a/frontend/src/api/types.ts b/frontend/src/api/types.ts
index 347f7b2..a3f9d88 100644
--- a/frontend/src/api/types.ts
+++ b/frontend/src/api/types.ts
@@ -4,6 +4,8 @@ export interface User {
nickname: string;
avatar: string;
role: 'user' | 'admin';
+ banned?: boolean;
+ created_at?: string;
}
export interface Board {
@@ -50,9 +52,33 @@ export interface Comment {
content_hidden?: boolean;
created_at: string;
user?: User;
+ post?: PostItem;
reply_target?: Comment;
}
+export interface AdminDashboard {
+ users: number;
+ posts: number;
+ boards: number;
+ comments: number;
+ online: number;
+ recent_posts: PostItem[];
+}
+
+export interface AdminSettings {
+ filter_path: string;
+ data_dir: string;
+ db_path: string;
+ port: number;
+}
+
+export interface Paginated {
+ total: number;
+ page: number;
+ total_pages: number;
+ items: T;
+}
+
export interface Notification {
id: number;
title: string;
diff --git a/frontend/src/components/BoardGrid.tsx b/frontend/src/components/BoardGrid.tsx
index f14135a..a1cb0ad 100644
--- a/frontend/src/components/BoardGrid.tsx
+++ b/frontend/src/components/BoardGrid.tsx
@@ -33,7 +33,7 @@ export default function BoardGrid({ boards, loading = false, selectedId = 0, onS
{user?.role === 'admin' && (
-