ppbase 0.2.4__tar.gz → 0.2.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ppbase-0.2.4 → ppbase-0.2.6}/PKG-INFO +1 -1
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/__main__.py +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/_id_-BOBW_G85.js → ppbase-0.2.6/ppbase/admin/dist/assets/_id_-CC5ZcWci.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/arrow-right-0CbbMiPK.js → ppbase-0.2.6/ppbase/admin/dist/assets/arrow-right--ZmBDAg_.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/badge-Ds2sADYs.js → ppbase-0.2.6/ppbase/admin/dist/assets/badge-ojkYqB_v.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/breadcrumb-76nPcHet.js → ppbase-0.2.6/ppbase/admin/dist/assets/breadcrumb-DdPL4xPF.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/button-BrD63m6O.js → ppbase-0.2.6/ppbase/admin/dist/assets/button-7ML6_R2C.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/check-D2wjMIaV.js → ppbase-0.2.6/ppbase/admin/dist/assets/check-DDQTQL0A.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/checkbox-kmiNBl7I.js → ppbase-0.2.6/ppbase/admin/dist/assets/checkbox-3ZZXC05J.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/chevron-left-B28RBpkY.js → ppbase-0.2.6/ppbase/admin/dist/assets/chevron-left-CMMUDqtW.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/collection-editor-BGqL1OUi.js → ppbase-0.2.6/ppbase/admin/dist/assets/collection-editor-DXzRGx5V.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/dashboard-9yLGUi0c.js → ppbase-0.2.6/ppbase/admin/dist/assets/dashboard-CBq7yVCn.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/empty-state-DLoUVwRo.js → ppbase-0.2.6/ppbase/admin/dist/assets/empty-state-B14Oqr0t.js +1 -1
- ppbase-0.2.6/ppbase/admin/dist/assets/hooks-DohgjoVQ.js +26 -0
- ppbase-0.2.4/ppbase/admin/dist/assets/index-C7DuRwsh.js → ppbase-0.2.6/ppbase/admin/dist/assets/index-47rT1Ge4.js +1 -1
- ppbase-0.2.6/ppbase/admin/dist/assets/index-BS5N6FQ_.css +1 -0
- ppbase-0.2.4/ppbase/admin/dist/assets/index-WIbkxcQr.js → ppbase-0.2.6/ppbase/admin/dist/assets/index-Cx2itkJ2.js +2 -2
- ppbase-0.2.4/ppbase/admin/dist/assets/index-Bl364kol.js → ppbase-0.2.6/ppbase/admin/dist/assets/index-DYI_N_yi.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/index-DQj8gSLY.js → ppbase-0.2.6/ppbase/admin/dist/assets/index-DlxcrvvQ.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/input-DH6MmAy7.js → ppbase-0.2.6/ppbase/admin/dist/assets/input-D5RANuM_.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/label-BeRSewaZ.js → ppbase-0.2.6/ppbase/admin/dist/assets/label-DmLkmMRs.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/layout-L14mn7rk.js → ppbase-0.2.6/ppbase/admin/dist/assets/layout-Dc4ExUz4.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/loading-spinner-DX1AeaJq.js → ppbase-0.2.6/ppbase/admin/dist/assets/loading-spinner-BtzbLWmm.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/login-B7kN7Yn-.js → ppbase-0.2.6/ppbase/admin/dist/assets/login-BcDl9dRs.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/logs-BZzBtR8O.js → ppbase-0.2.6/ppbase/admin/dist/assets/logs-BrMD0wcS.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/migrations-D3Yj-4ht.js → ppbase-0.2.6/ppbase/admin/dist/assets/migrations-CQOyoGf6.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/refresh-cw-N6x8OBHp.js → ppbase-0.2.6/ppbase/admin/dist/assets/refresh-cw-CTjcp91u.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/select-Di5ved3U.js → ppbase-0.2.6/ppbase/admin/dist/assets/select-69EwUdhq.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/settings-BNapQjSw.js → ppbase-0.2.6/ppbase/admin/dist/assets/settings-BrSjBOzC.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/setup-wGeqZj6R.js → ppbase-0.2.6/ppbase/admin/dist/assets/setup-Cy6Y8QEW.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/sheet-Cy7tiTuK.js → ppbase-0.2.6/ppbase/admin/dist/assets/sheet-DX7J41kf.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/tabs-DTYc7STq.js → ppbase-0.2.6/ppbase/admin/dist/assets/tabs-GgjEIL5r.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/tooltip-CNbMYYPm.js → ppbase-0.2.6/ppbase/admin/dist/assets/tooltip-D4X08FhV.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/triangle-alert-B0WtKTPi.js → ppbase-0.2.6/ppbase/admin/dist/assets/triangle-alert-BJidPwAS.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/use-health-BcZid-l-.js → ppbase-0.2.6/ppbase/admin/dist/assets/use-health-iXOOYdrJ.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/use-logs-DIwdR1lw.js → ppbase-0.2.6/ppbase/admin/dist/assets/use-logs-CD7rFaAE.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/use-migrations-CM7f3jNA.js → ppbase-0.2.6/ppbase/admin/dist/assets/use-migrations-Cb-WQO__.js +1 -1
- ppbase-0.2.4/ppbase/admin/dist/assets/use-settings-BPlWakp9.js → ppbase-0.2.6/ppbase/admin/dist/assets/use-settings-BLEEZQUf.js +1 -1
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/admin/dist/index.html +2 -2
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/files.py +277 -4
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/records.py +614 -307
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/config.py +2 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/models/field_types.py +35 -15
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/filter_parser.py +788 -230
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/process_control.py +36 -11
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/record_service.py +177 -58
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase.egg-info/PKG-INFO +1 -1
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase.egg-info/SOURCES.txt +41 -36
- {ppbase-0.2.4 → ppbase-0.2.6}/pyproject.toml +1 -1
- ppbase-0.2.6/tests/test_field_types.py +102 -0
- ppbase-0.2.6/tests/test_filter_parser_collection_relations.py +205 -0
- ppbase-0.2.6/tests/test_filter_parser_datetime_literals.py +88 -0
- ppbase-0.2.6/tests/test_filter_parser_lazy_relation_index.py +181 -0
- ppbase-0.2.6/tests/test_filter_parser_like_casts.py +21 -0
- ppbase-0.2.4/ppbase/admin/dist/assets/hooks-DJAcTXP5.js +0 -26
- ppbase-0.2.4/ppbase/admin/dist/assets/index-DIMXgOxH.css +0 -1
- {ppbase-0.2.4 → ppbase-0.2.6}/README.md +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/admin/dist/fonts/Inter-Variable.woff2 +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/admins.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/collections.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/deps.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/health.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/hooks.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/logs.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/migrations.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/realtime.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/record_auth.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/router.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/api/settings.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/app.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/core/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/core/id_generator.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/db/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/db/bootstrap.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/db/engine.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/db/ensure_db.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/db/schema_manager.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/db/system_tables.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/ext/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/ext/events.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/ext/flask_like_pb.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/ext/hooks.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/ext/loading.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/ext/record_repository.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/ext/registry.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/middleware/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/middleware/auth.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/middleware/cors.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/middleware/rate_limit.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/middleware/request_logger.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/models/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/models/collection.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/models/record.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/admin_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/auth_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/collection_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/expand_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/file_storage.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/hook_manager.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/mail_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/migration_generator.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/migration_runner.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/oauth2_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/realtime_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/record_auth_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/rule_engine.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/services/setup_service.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase/storage/__init__.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase.egg-info/dependency_links.txt +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase.egg-info/entry_points.txt +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase.egg-info/requires.txt +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/ppbase.egg-info/top_level.txt +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/setup.cfg +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/tests/test_deps_optional_auth.py +0 -0
- {ppbase-0.2.4 → ppbase-0.2.6}/tests/test_oauth2_base_url.py +0 -0
|
@@ -154,7 +154,7 @@ def _cmd_serve(args: argparse.Namespace) -> None:
|
|
|
154
154
|
"""Start the PPBase server (foreground or daemon)."""
|
|
155
155
|
from ppbase import pb
|
|
156
156
|
|
|
157
|
-
os.environ["
|
|
157
|
+
os.environ["PBBASE_RESTART_CMD"] = json.dumps(
|
|
158
158
|
[sys.executable, "-m", "ppbase", *sys.argv[1:]]
|
|
159
159
|
)
|
|
160
160
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as Y,w as Z,x as Re,y as fe,z as ge,B as Q,r as o,j as e,f as ae,E as Ie,F as Ae,I as Ee,J as $e,C as je,i as Te,P as ye,t as Se,K as Le,M as as,Q as rs,X as Me,u as ze,h as ls,R as _,b as is,T as os,m as cs,D as ds,S as ms}from"./index-
|
|
1
|
+
import{c as Y,w as Z,x as Re,y as fe,z as ge,B as Q,r as o,j as e,f as ae,E as Ie,F as Ae,I as Ee,J as $e,C as je,i as Te,P as ye,t as Se,K as Le,M as as,Q as rs,X as Me,u as ze,h as ls,R as _,b as is,T as os,m as cs,D as ds,S as ms}from"./index-Cx2itkJ2.js";import{C as us,B as hs}from"./breadcrumb-DdPL4xPF.js";import{B as F}from"./button-7ML6_R2C.js";import{I as H}from"./input-D5RANuM_.js";import{C as re}from"./checkbox-3ZZXC05J.js";import{F as ne,g as oe,D as Oe,a as qe,b as Ue,c as ps,d as pe,e as ke,f as ue,h as _e,E as xs,C as fs}from"./collection-editor-DXzRGx5V.js";import{T as we,a as be,b as K,c as V,d as ve,e as z,C as Be,E as gs}from"./empty-state-B14Oqr0t.js";import{C as Ne}from"./chevron-left-CMMUDqtW.js";import{L as E}from"./label-DmLkmMRs.js";import{S as He,a as Ve,b as Ke,c as Je,d as js,e as ys}from"./sheet-DX7J41kf.js";import{L as ie}from"./loading-spinner-BtzbLWmm.js";import{B as ce}from"./badge-ojkYqB_v.js";import{S as ws,a as bs,b as vs,c as Ns,d as Cs}from"./select-69EwUdhq.js";import{R as Ss}from"./refresh-cw-CTjcp91u.js";import"./index-DlxcrvvQ.js";import"./index-47rT1Ge4.js";import"./check-DDQTQL0A.js";import"./tabs-GgjEIL5r.js";/**
|
|
2
2
|
* @license lucide-react v0.468.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as o,f as n}from"./index-
|
|
1
|
+
import{j as o,f as n}from"./index-Cx2itkJ2.js";import{a}from"./button-7ML6_R2C.js";const s=a("inline-flex items-center rounded-lg border px-2.5 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-sm hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function u({className:r,variant:e,...t}){return o.jsx("div",{className:n(s({variant:e}),r),...t})}export{u as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,f as a}from"./index-
|
|
1
|
+
import{j as e,f as a}from"./index-Cx2itkJ2.js";function x({left:t,right:s}){return e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 px-6 py-4 md:px-8 md:py-4.5 border-b bg-white shrink-0 shadow-sm",children:[e.jsx("div",{className:"flex items-center gap-3 min-w-0",children:t}),s&&e.jsx("div",{className:"flex items-center gap-2.5 flex-shrink-0 flex-wrap",children:s})]})}function o({items:t,children:s}){return e.jsxs("div",{className:"flex items-center gap-2 text-[15px] md:text-[16px] min-w-0 flex-wrap",children:[t.map((n,r)=>e.jsxs("span",{className:"flex items-center gap-2",children:[r>0&&e.jsx("span",{className:"text-muted-foreground/40 font-light select-none",children:"/"}),e.jsx("span",{className:a("truncate max-w-[200px] sm:max-w-none transition-colors",n.active?"font-semibold text-foreground":"text-muted-foreground cursor-pointer hover:text-foreground"),onClick:n.onClick,title:n.label,children:n.label})]},r)),s]})}export{o as B,x as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,j as m,ap as E,U as S,aq as V,f as j}from"./index-
|
|
1
|
+
import{r as a,j as m,ap as E,U as S,aq as V,f as j}from"./index-Cx2itkJ2.js";var w=Symbol.for("react.lazy"),y=E[" use ".trim().toString()];function N(e){return typeof e=="object"&&e!==null&&"then"in e}function x(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===w&&"_payload"in e&&N(e._payload)}function R(e){const n=P(e),t=a.forwardRef((o,r)=>{let{children:i,...u}=o;x(i)&&typeof y=="function"&&(i=y(i._payload));const l=a.Children.toArray(i),f=l.find(A);if(f){const s=f.props.children,d=l.map(c=>c===f?a.Children.count(s)>1?a.Children.only(null):a.isValidElement(s)?s.props.children:null:c);return m.jsx(n,{...u,ref:r,children:a.isValidElement(s)?a.cloneElement(s,void 0,d):null})}return m.jsx(n,{...u,ref:r,children:i})});return t.displayName=`${e}.Slot`,t}var O=R("Slot");function P(e){const n=a.forwardRef((t,o)=>{let{children:r,...i}=t;if(x(r)&&typeof y=="function"&&(r=y(r._payload)),a.isValidElement(r)){const u=$(r),l=k(i,r.props);return r.type!==a.Fragment&&(l.ref=o?S(o,u):u),a.cloneElement(r,l)}return a.Children.count(r)>1?a.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var z=Symbol("radix.slottable");function A(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===z}function k(e,n){const t={...n};for(const o in n){const r=e[o],i=n[o];/^on[A-Z]/.test(o)?r&&i?t[o]=(...l)=>{const f=i(...l);return r(...l),f}:r&&(t[o]=r):o==="style"?t[o]={...r,...i}:o==="className"&&(t[o]=[r,i].filter(Boolean).join(" "))}return{...e,...t}}function $(e){var o,r;let n=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}const b=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,h=V,T=(e,n)=>t=>{var o;if((n==null?void 0:n.variants)==null)return h(e,t==null?void 0:t.class,t==null?void 0:t.className);const{variants:r,defaultVariants:i}=n,u=Object.keys(r).map(s=>{const d=t==null?void 0:t[s],c=i==null?void 0:i[s];if(d===null)return null;const v=b(d)||b(c);return r[s][v]}),l=t&&Object.entries(t).reduce((s,d)=>{let[c,v]=d;return v===void 0||(s[c]=v),s},{}),f=n==null||(o=n.compoundVariants)===null||o===void 0?void 0:o.reduce((s,d)=>{let{class:c,className:v,..._}=d;return Object.entries(_).every(C=>{let[g,p]=C;return Array.isArray(p)?p.includes({...i,...l}[g]):{...i,...l}[g]===p})?[...s,c,v]:s},[]);return h(e,u,f,t==null?void 0:t.class,t==null?void 0:t.className)},W=T("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 active:scale-[0.98]",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 hover:shadow-md",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground hover:border-slate-300",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-11 px-5 py-2.5 text-[15px] [&_svg]:size-[18px]",sm:"h-9 rounded-md px-3.5 text-sm [&_svg]:size-4",lg:"h-12 rounded-xl px-7 text-base [&_svg]:size-5",icon:"h-11 w-11 [&_svg]:size-[18px]"}},defaultVariants:{variant:"default",size:"default"}}),B=a.forwardRef(({className:e,variant:n,size:t,asChild:o=!1,...r},i)=>{const u=o?O:"button";return m.jsx(u,{className:j(W({variant:n,size:t,className:e})),ref:i,...r})});B.displayName="Button";export{B,T as a,R as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,j as n,Y as H,a1 as _,a8 as z,$ as S,a0 as N,W as G,f as w}from"./index-
|
|
1
|
+
import{r as i,j as n,Y as H,a1 as _,a8 as z,$ as S,a0 as N,W as G,f as w}from"./index-Cx2itkJ2.js";import{u as K}from"./index-DlxcrvvQ.js";import{u as U}from"./index-47rT1Ge4.js";import{C as X}from"./check-DDQTQL0A.js";var g="Checkbox",[$]=G(g),[W,I]=$(g);function Y(t){const{__scopeCheckbox:s,checked:r,children:l,defaultChecked:a,disabled:e,form:p,name:h,onCheckedChange:d,required:m,value:k="on",internal_do_not_use_render:u}=t,[f,v]=z({prop:r,defaultProp:a??!1,onChange:d,caller:g}),[C,x]=i.useState(null),[y,o]=i.useState(null),c=i.useRef(!1),E=C?!!p||!!C.closest("form"):!0,R={checked:f,disabled:e,setChecked:v,control:C,setControl:x,name:h,form:p,value:k,hasConsumerStoppedPropagationRef:c,required:m,defaultChecked:b(a)?!1:a,isFormControl:E,bubbleInput:y,setBubbleInput:o};return n.jsx(W,{scope:s,...R,children:J(u)?u(R):l})}var B="CheckboxTrigger",M=i.forwardRef(({__scopeCheckbox:t,onKeyDown:s,onClick:r,...l},a)=>{const{control:e,value:p,disabled:h,checked:d,required:m,setControl:k,setChecked:u,hasConsumerStoppedPropagationRef:f,isFormControl:v,bubbleInput:C}=I(B,t),x=S(a,k),y=i.useRef(d);return i.useEffect(()=>{const o=e==null?void 0:e.form;if(o){const c=()=>u(y.current);return o.addEventListener("reset",c),()=>o.removeEventListener("reset",c)}},[e,u]),n.jsx(_.button,{type:"button",role:"checkbox","aria-checked":b(d)?"mixed":d,"aria-required":m,"data-state":F(d),"data-disabled":h?"":void 0,disabled:h,value:p,...l,ref:x,onKeyDown:N(s,o=>{o.key==="Enter"&&o.preventDefault()}),onClick:N(r,o=>{u(c=>b(c)?!0:!c),C&&v&&(f.current=o.isPropagationStopped(),f.current||o.stopPropagation())})})});M.displayName=B;var P=i.forwardRef((t,s)=>{const{__scopeCheckbox:r,name:l,checked:a,defaultChecked:e,required:p,disabled:h,value:d,onCheckedChange:m,form:k,...u}=t;return n.jsx(Y,{__scopeCheckbox:r,checked:a,defaultChecked:e,disabled:h,required:p,onCheckedChange:m,name:l,form:k,value:d,internal_do_not_use_render:({isFormControl:f})=>n.jsxs(n.Fragment,{children:[n.jsx(M,{...u,ref:s,__scopeCheckbox:r}),f&&n.jsx(D,{__scopeCheckbox:r})]})})});P.displayName=g;var T="CheckboxIndicator",q=i.forwardRef((t,s)=>{const{__scopeCheckbox:r,forceMount:l,...a}=t,e=I(T,r);return n.jsx(H,{present:l||b(e.checked)||e.checked===!0,children:n.jsx(_.span,{"data-state":F(e.checked),"data-disabled":e.disabled?"":void 0,...a,ref:s,style:{pointerEvents:"none",...t.style}})})});q.displayName=T;var A="CheckboxBubbleInput",D=i.forwardRef(({__scopeCheckbox:t,...s},r)=>{const{control:l,hasConsumerStoppedPropagationRef:a,checked:e,defaultChecked:p,required:h,disabled:d,name:m,value:k,form:u,bubbleInput:f,setBubbleInput:v}=I(A,t),C=S(r,v),x=K(e),y=U(l);i.useEffect(()=>{const c=f;if(!c)return;const E=window.HTMLInputElement.prototype,j=Object.getOwnPropertyDescriptor(E,"checked").set,L=!a.current;if(x!==e&&j){const O=new Event("click",{bubbles:L});c.indeterminate=b(e),j.call(c,b(e)?!1:e),c.dispatchEvent(O)}},[f,x,e,a]);const o=i.useRef(b(e)?!1:e);return n.jsx(_.input,{type:"checkbox","aria-hidden":!0,defaultChecked:p??o.current,required:h,disabled:d,name:m,value:k,form:u,...s,tabIndex:-1,ref:C,style:{...s.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});D.displayName=A;function J(t){return typeof t=="function"}function b(t){return t==="indeterminate"}function F(t){return b(t)?"indeterminate":t?"checked":"unchecked"}const Q=i.forwardRef(({className:t,...s},r)=>n.jsx(P,{ref:r,className:w("peer h-5 w-5 shrink-0 rounded-md border-2 border-primary shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground transition-all duration-150",t),...s,children:n.jsx(q,{className:w("flex items-center justify-center text-current"),children:n.jsx(X,{className:"h-3.5 w-3.5 stroke-[3]"})})}));Q.displayName=P.displayName;export{Q as C};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as Ee,j as e,f as $,r as c,U as Me,V as Ke,W as We,Y as ye,_ as Wt,$ as xe,a0 as E,a1 as ie,a2 as zt,a3 as qt,a4 as Ht,a5 as Xt,a6 as Yt,a7 as Jt,a8 as Qt,a9 as Fe,C as Zt,X as ze,S as en,x as tn,aa as nn,h as sn,P as rn,K as an,ab as on,ac as ln,ad as cn,R as z}from"./index-
|
|
1
|
+
import{c as Ee,j as e,f as $,r as c,U as Me,V as Ke,W as We,Y as ye,_ as Wt,$ as xe,a0 as E,a1 as ie,a2 as zt,a3 as qt,a4 as Ht,a5 as Xt,a6 as Yt,a7 as Jt,a8 as Qt,a9 as Fe,C as Zt,X as ze,S as en,x as tn,aa as nn,h as sn,P as rn,K as an,ab as on,ac as ln,ad as cn,R as z}from"./index-Cx2itkJ2.js";import{S as dn,a as un,b as pn,c as mn,e as xn}from"./sheet-DX7J41kf.js";import{B as J}from"./button-7ML6_R2C.js";import{I as D}from"./input-D5RANuM_.js";import{L as b}from"./label-DmLkmMRs.js";import{u as fn,e as hn,S as re,a as ae,b as oe,c as le,d as T,C as gn}from"./select-69EwUdhq.js";import{R as vn,A as bn,c as qe,C as jn,a as Nn}from"./index-47rT1Ge4.js";import{c as He,I as yn,R as wn,T as Cn,a as Rn,b as ve,d as be}from"./tabs-GgjEIL5r.js";import{C as Sn}from"./check-DDQTQL0A.js";import{C as En}from"./empty-state-B14Oqr0t.js";import{C as ce}from"./checkbox-3ZZXC05J.js";import{B as Xe}from"./badge-ojkYqB_v.js";import{C as Mn}from"./index-DlxcrvvQ.js";import{L as Ue}from"./loading-spinner-BtzbLWmm.js";/**
|
|
2
2
|
* @license lucide-react v0.468.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as X,r as w,h as Y,j as e,A as E,l as r,P as R,p as t,s as Z,t as v,D as ee,G as F,S as se,v as te,H as ae}from"./index-
|
|
1
|
+
import{c as X,r as w,h as Y,j as e,A as E,l as r,P as R,p as t,s as Z,t as v,D as ee,G as F,S as se,v as te,H as ae}from"./index-Cx2itkJ2.js";import{C as re,B as ne}from"./breadcrumb-DdPL4xPF.js";import{B as n}from"./button-7ML6_R2C.js";import{u as ie,a as oe}from"./use-logs-CD7rFaAE.js";import{u as le,a as ce}from"./use-migrations-Cb-WQO__.js";import{u as de}from"./use-settings-BLEEZQUf.js";import{u as me,T as he}from"./use-health-iXOOYdrJ.js";import{T as xe}from"./triangle-alert-BJidPwAS.js";import{A as y}from"./arrow-right--ZmBDAg_.js";/**
|
|
2
2
|
* @license lucide-react v0.468.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,j as e,f as r,E as p,F as u,M as h,I as j,J as g,Q as N}from"./index-
|
|
1
|
+
import{r as l,j as e,f as r,E as p,F as u,M as h,I as j,J as g,Q as N}from"./index-Cx2itkJ2.js";import{B as i}from"./button-7ML6_R2C.js";import{L as y}from"./loading-spinner-BtzbLWmm.js";const T=l.forwardRef(({className:a,...s},t)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:t,className:r("w-full caption-bottom text-[15px]",a),...s})}));T.displayName="Table";const w=l.forwardRef(({className:a,...s},t)=>e.jsx("thead",{ref:t,className:r("[&_tr]:border-b bg-slate-50/80",a),...s}));w.displayName="TableHeader";const C=l.forwardRef(({className:a,...s},t)=>e.jsx("tbody",{ref:t,className:r("[&_tr:last-child]:border-0",a),...s}));C.displayName="TableBody";const R=l.forwardRef(({className:a,...s},t)=>e.jsx("tfoot",{ref:t,className:r("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...s}));R.displayName="TableFooter";const v=l.forwardRef(({className:a,...s},t)=>e.jsx("tr",{ref:t,className:r("border-b transition-all duration-150 hover:bg-slate-50 data-[state=selected]:bg-indigo-50/40",a),...s}));v.displayName="TableRow";const k=l.forwardRef(({className:a,...s},t)=>e.jsx("th",{ref:t,className:r("h-12 px-4 text-left align-middle text-[11px] font-bold uppercase tracking-widest text-slate-500 [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...s}));k.displayName="TableHead";const D=l.forwardRef(({className:a,...s},t)=>e.jsx("td",{ref:t,className:r("px-4 py-3.5 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...s}));D.displayName="TableCell";const E=l.forwardRef(({className:a,...s},t)=>e.jsx("caption",{ref:t,className:r("mt-4 text-sm text-muted-foreground",a),...s}));E.displayName="TableCaption";function L({open:a,onOpenChange:s,title:t,description:o,confirmLabel:c="Confirm",cancelLabel:m="Cancel",variant:x="default",onConfirm:f}){const[d,n]=l.useState(!1),b=async()=>{n(!0);try{await f()}finally{n(!1)}};return e.jsx(p,{open:a,onOpenChange:s,children:e.jsxs(u,{children:[e.jsxs(h,{children:[e.jsx(j,{children:t}),e.jsx(g,{children:o})]}),e.jsxs(N,{children:[e.jsx(i,{variant:"outline",onClick:()=>s(!1),disabled:d,children:m}),e.jsxs(i,{variant:x==="destructive"?"destructive":"default",onClick:b,disabled:d,children:[d&&e.jsx(y,{size:"sm",className:"mr-2"}),c]})]})]})})}function S({icon:a,title:s,description:t,action:o}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[a&&e.jsx("div",{className:"flex items-center justify-center w-12 h-12 rounded-full bg-muted text-muted-foreground mb-4",children:a}),e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-1",children:s}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4 max-w-sm",children:t}),o&&e.jsx(i,{onClick:o.onClick,children:o.label})]})}export{L as C,S as E,T,w as a,v as b,k as c,C as d,D as e,R as f};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import{c as j,w as p,x as U,y,z as N,r as b,j as e,ae as z,Z as E,R as l,C as Z,s as G}from"./index-Cx2itkJ2.js";import{C as V,B as J}from"./breadcrumb-DdPL4xPF.js";import{B as h}from"./button-7ML6_R2C.js";import{B as r}from"./badge-ojkYqB_v.js";import{C as W}from"./checkbox-3ZZXC05J.js";import{L as m}from"./loading-spinner-BtzbLWmm.js";import{T as X,a as F,b as A,c as B}from"./tooltip-D4X08FhV.js";import{R as Y}from"./refresh-cw-CTjcp91u.js";import{C as ee}from"./index-DlxcrvvQ.js";import{T as se}from"./triangle-alert-BJidPwAS.js";import"./index-47rT1Ge4.js";import"./check-DDQTQL0A.js";/**
|
|
2
|
+
* @license lucide-react v0.468.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const te=j("FolderSearch",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);/**
|
|
7
|
+
* @license lucide-react v0.468.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const L=j("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/**
|
|
12
|
+
* @license lucide-react v0.468.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const ae=j("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
|
|
17
|
+
* @license lucide-react v0.468.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const re=j("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);/**
|
|
22
|
+
* @license lucide-react v0.468.0 - ISC
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the ISC license.
|
|
25
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/const ne=j("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);async function le(){return p.request("GET","/api/hooks")}async function ie(s,n){return p.request("PATCH",`/api/hooks/${s}`,n)}async function de(){return p.request("POST","/api/hooks/rescan")}async function oe(s){return p.request("POST",`/api/hooks/${s}/reload`)}async function ce(s){return p.request("PATCH","/api/hooks/runtime",s)}async function me(){return p.request("POST","/api/hooks/restart")}function xe(){return U({queryKey:["hooks"],queryFn:le,retry:!1})}function ue(){const s=y();return N({mutationFn:({hookId:n,enabled:g})=>ie(n,{enabled:g}),onSuccess:()=>{s.invalidateQueries({queryKey:["hooks"]})}})}function he(){const s=y();return N({mutationFn:de,onSuccess:()=>{s.invalidateQueries({queryKey:["hooks"]})}})}function pe(){const s=y();return N({mutationFn:n=>oe(n),onSuccess:()=>{s.invalidateQueries({queryKey:["hooks"]})}})}function ge(){const s=y();return N({mutationFn:n=>ce(n),onSuccess:()=>{s.invalidateQueries({queryKey:["hooks"]})}})}function fe(){const s=y();return N({mutationFn:me,onSuccess:()=>{s.invalidateQueries({queryKey:["hooks"]})}})}function be({status:s}){switch(s){case"loaded":return e.jsxs(r,{className:"bg-emerald-100 text-emerald-700 border-emerald-200 hover:bg-emerald-100",children:[e.jsx(G,{className:"h-3 w-3 mr-1"}),"Loaded"]});case"error":return e.jsxs(r,{className:"bg-red-100 text-red-700 border-red-200 hover:bg-red-100",children:[e.jsx(z,{className:"h-3 w-3 mr-1"}),"Error"]});case"disabled":return e.jsxs(r,{className:"bg-slate-100 text-slate-500 border-slate-200 hover:bg-slate-100",children:[e.jsx(L,{className:"h-3 w-3 mr-1"}),"Disabled"]});case"unsupported_for_hot_reload":return e.jsxs(r,{className:"bg-amber-100 text-amber-700 border-amber-200 hover:bg-amber-100",children:[e.jsx(se,{className:"h-3 w-3 mr-1"}),"Restart required"]});default:return e.jsx(r,{variant:"outline",children:s})}}function je({hook:s,onToggle:n,onReload:g,toggling:o,reloading:d}){const[f,x]=b.useState(!1);return e.jsxs("div",{className:"rounded-lg border bg-white shadow-sm",children:[e.jsxs("div",{className:"flex items-start gap-4 px-5 py-4",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2.5 mb-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-slate-900 truncate",children:s.name}),e.jsx(be,{status:s.status}),s.hasRoutes&&e.jsx(r,{variant:"outline",className:"text-[10px] text-amber-600 border-amber-200 bg-amber-50",children:"Has routes"}),s.hasHttpMiddleware&&e.jsx(r,{variant:"outline",className:"text-[10px] text-amber-600 border-amber-200 bg-amber-50",children:"Has HTTP middleware"})]}),e.jsx("p",{className:"text-xs text-slate-500 mb-1 font-mono truncate",children:s.filename}),s.description&&e.jsx("p",{className:"text-xs text-slate-600 mt-1",children:s.description})]}),e.jsx("div",{className:"flex items-center gap-1.5 shrink-0",children:e.jsxs(X,{delayDuration:200,children:[e.jsxs(F,{children:[e.jsx(A,{asChild:!0,children:e.jsx(h,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>g(s.id),disabled:d||!s.enabled,children:d?e.jsx(m,{size:"sm"}):e.jsx(ne,{className:"h-3.5 w-3.5"})})}),e.jsx(B,{side:"top",className:"text-xs",children:"Reload"})]}),e.jsxs(F,{children:[e.jsx(A,{asChild:!0,children:e.jsx(h,{variant:(s.enabled,"ghost"),size:"icon",className:`h-8 w-8 ${s.enabled?"text-slate-500 hover:text-red-500":"text-emerald-600 hover:text-emerald-700"}`,onClick:()=>n(s.id,!s.enabled),disabled:o,children:o?e.jsx(m,{size:"sm"}):s.enabled?e.jsx(L,{className:"h-3.5 w-3.5"}):e.jsx(ae,{className:"h-3.5 w-3.5"})})}),e.jsx(B,{side:"top",className:"text-xs",children:s.enabled?"Disable":"Enable"})]})]})})]}),(s.functions.length>0||s.error||s.restartRequired)&&e.jsxs("div",{className:"border-t",children:[e.jsxs("button",{className:"flex items-center gap-1.5 w-full px-5 py-2 text-xs text-slate-500 hover:bg-slate-50 transition-colors",onClick:()=>x(!f),children:[f?e.jsx(ee,{className:"h-3 w-3"}):e.jsx(Z,{className:"h-3 w-3"}),s.error?"Error details":s.restartRequired?"Restart details":`${s.functions.length} registered hook${s.functions.length!==1?"s":""}`]}),f&&e.jsxs("div",{className:"px-5 pb-3 space-y-2",children:[s.restartRequired&&!s.error&&e.jsx("div",{className:"rounded-md bg-amber-50 border border-amber-200 p-3",children:e.jsx("p",{className:"text-xs font-medium text-amber-800",children:"Route or middleware changes were detected. Hook handlers were refreshed when possible, but route and middleware updates need a PPBase restart to apply."})}),s.error&&e.jsxs("div",{className:`rounded-md border p-3 ${s.status==="unsupported_for_hot_reload"?"bg-amber-50 border-amber-200":"bg-red-50 border-red-200"}`,children:[e.jsx("p",{className:`text-xs font-medium mb-1 ${s.status==="unsupported_for_hot_reload"?"text-amber-800":"text-red-800"}`,children:s.error}),s.errorTraceback&&e.jsx("pre",{className:"text-[10px] text-red-700 whitespace-pre-wrap overflow-x-auto max-h-48 mt-2 font-mono leading-relaxed",children:s.errorTraceback})]}),s.functions.length>0&&e.jsx("div",{className:"space-y-1",children:s.functions.map((w,v)=>e.jsxs("div",{className:"flex items-center gap-2 text-xs text-slate-600",children:[e.jsx(E,{className:"h-3 w-3 text-indigo-400 shrink-0"}),e.jsx("span",{className:"font-mono text-slate-700",children:w.handlerName}),e.jsx("span",{className:"text-slate-400",children:"on"}),e.jsx(r,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:w.hookType})]},v))}),s.lastLoaded&&e.jsxs("p",{className:"text-[10px] text-slate-400 pt-1",children:["Last loaded: ",new Date(s.lastLoaded).toLocaleString()]})]})]})]})}function Fe(){const{data:s,isLoading:n,isError:g,isFetching:o,refetch:d}=xe(),f=ue(),x=he(),w=pe(),v=ge(),P=fe(),[M,k]=b.useState(null),[_,H]=b.useState(null),[i,u]=b.useState(null),c=(s==null?void 0:s.items)??[],R=(s==null?void 0:s.hooksDir)??"./pb_hooks",a=(s==null?void 0:s.runtime)??{disabled:[],autoRestartOnChange:!1,canRestart:!1,restartPending:!1};b.useEffect(()=>{if(!a.restartPending)return;const t=window.setInterval(()=>{d()},1500);return()=>{window.clearInterval(t)}},[a.restartPending,d]);const $=async(t,S)=>{k(t);try{await f.mutateAsync({hookId:t,enabled:S}),l.success(S?"Hook enabled":"Hook disabled")}catch{l.error("Failed to update hook")}finally{k(null)}},D=async t=>{H(t);try{await w.mutateAsync(t),l.success("Hook reloaded")}catch{l.error("Failed to reload hook")}finally{H(null)}},O=async()=>{u("rescan");try{const t=await x.mutateAsync();await d(),t.reloaded.length>0?l.success(a.autoRestartOnChange?`Detected ${t.reloaded.length} changed file(s). Restart scheduled.`:`Rescanned: ${t.reloaded.length} file(s) updated`):l.success("No changes detected")}catch{l.error("Failed to rescan hooks directory")}finally{u(null)}},Q=async t=>{try{await v.mutateAsync({autoRestartOnChange:t}),l.success(t?"Auto restart on hook change enabled":"Auto restart on hook change disabled")}catch{l.error("Failed to update auto-restart setting")}},I=async()=>{u("restart");try{await P.mutateAsync(),await d(),l.success("PPBase restart scheduled. The app will restart shortly.")}catch{l.error("Failed to schedule PPBase restart")}finally{u(null)}},K=async()=>{u("refresh");try{await d()}finally{u(null)}},T=c.filter(t=>t.status==="loaded").length,C=c.filter(t=>t.status==="error").length,q=c.filter(t=>t.status==="disabled").length;return e.jsxs(e.Fragment,{children:[e.jsx(V,{left:e.jsx(J,{items:[{label:"Hooks",active:!0}]}),right:e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(h,{variant:"outline",size:"sm",onClick:I,disabled:!a.canRestart||a.restartPending||P.isPending,className:"min-w-[148px] justify-center",children:[P.isPending||a.restartPending?e.jsx(m,{size:"sm",className:"mr-1.5"}):e.jsx(re,{className:"h-4 w-4 mr-1.5"}),P.isPending?"Scheduling...":a.restartPending?"Restart pending":"Restart app"]}),e.jsxs(h,{variant:"outline",size:"sm",onClick:O,disabled:x.isPending,className:"min-w-[132px] justify-center",children:[x.isPending?e.jsx(m,{size:"sm",className:"mr-1.5"}):e.jsx(te,{className:"h-4 w-4 mr-1.5"}),x.isPending?"Scanning...":"Rescan"]}),e.jsxs(h,{variant:"outline",size:"sm",onClick:K,disabled:i==="refresh"||o,className:"min-w-[124px] justify-center",children:[i==="refresh"||o?e.jsx(m,{size:"sm",className:"mr-1.5"}):e.jsx(Y,{className:"h-4 w-4 mr-1.5"}),i==="refresh"||o?"Refreshing...":"Refresh"]})]})}),e.jsx("div",{className:"flex-1 overflow-auto p-4 md:p-6 space-y-4",children:n?e.jsx(m,{fullPage:!0}):g?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[e.jsx(z,{className:"h-10 w-10 text-destructive mb-3"}),e.jsx("h3",{className:"text-lg font-semibold mb-1",children:"Failed to load hooks"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Could not connect to the hooks API."}),e.jsx(h,{variant:"outline",onClick:()=>d(),children:"Retry"})]}):e.jsxs(e.Fragment,{children:[(i!==null||a.restartPending||o)&&e.jsx("div",{className:"rounded-lg border bg-slate-50 px-4 py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(m,{size:"sm",className:"mt-0.5 shrink-0"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-slate-900",children:a.restartPending?"Restart scheduled":i==="restart"?"Scheduling app restart":i==="rescan"?"Scanning hooks directory":i==="refresh"?"Refreshing hook state":"Updating hook status"}),e.jsx("p",{className:"text-xs text-slate-500",children:a.restartPending?"PPBase accepted the restart request. This page will refresh automatically while waiting for the process state to change.":i==="restart"?"Sending the restart request to PPBase.":i==="rescan"?"Checking the hooks directory and reloading updated hook files.":i==="refresh"?"Fetching the latest hook and runtime state.":"Synchronizing the latest runtime information."})]})]})}),e.jsxs("div",{className:"rounded-lg border bg-white px-4 py-3 flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-slate-900",children:"Runtime behavior"}),e.jsxs("p",{className:"text-xs text-slate-500",children:["Enable automatic PPBase restart when files inside ",e.jsx("code",{className:"bg-slate-100 px-1 py-0.5 rounded font-mono",children:R})," change."]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm text-slate-700",children:[e.jsx(W,{checked:a.autoRestartOnChange,onCheckedChange:t=>Q(!!t),disabled:v.isPending}),"Auto restart on hook change"]}),!a.canRestart&&e.jsx(r,{variant:"outline",className:"text-[10px]",children:"Restart unavailable"}),a.restartPending&&e.jsx(r,{className:"bg-amber-100 text-amber-700 border-amber-200 hover:bg-amber-100",children:"Restart pending"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 items-center text-sm",children:[e.jsxs("span",{className:"text-slate-600",children:[e.jsx("span",{className:"font-medium text-slate-900",children:c.length})," ","hook file",c.length!==1?"s":""," in"," ",e.jsx("code",{className:"text-xs bg-slate-100 px-1.5 py-0.5 rounded font-mono",children:R})]}),T>0&&e.jsxs(r,{className:"bg-emerald-50 text-emerald-700 border-emerald-200 hover:bg-emerald-50",children:[T," loaded"]}),C>0&&e.jsxs(r,{className:"bg-red-50 text-red-700 border-red-200 hover:bg-red-50",children:[C," error",C!==1?"s":""]}),q>0&&e.jsxs(r,{className:"bg-slate-50 text-slate-500 border-slate-200 hover:bg-slate-50",children:[q," disabled"]})]}),c.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[e.jsx("div",{className:"h-16 w-16 rounded-2xl bg-slate-100 flex items-center justify-center mb-4",children:e.jsx(E,{className:"h-7 w-7 text-slate-400"})}),e.jsx("h3",{className:"text-lg font-semibold mb-1",children:"No hooks found"}),e.jsxs("p",{className:"text-sm text-muted-foreground max-w-md",children:["Create Python files in"," ",e.jsx("code",{className:"text-xs bg-slate-100 px-1.5 py-0.5 rounded font-mono",children:R})," ","with a ",e.jsx("code",{className:"text-xs bg-slate-100 px-1.5 py-0.5 rounded font-mono",children:"register(pb)"})," ","function to add hooks. They will be discovered automatically."]})]}):e.jsx("div",{className:"grid gap-3",children:c.map(t=>e.jsx(je,{hook:t,onToggle:$,onReload:D,toggling:M===t.id,reloading:_===t.id},t.id))})]})})]})}export{Fe as HooksPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as O,ao as Ee,j,a1 as pt,an as vt,$ as Kt,W as Le,V as De}from"./index-WIbkxcQr.js";const Me=["top","right","bottom","left"],Z=Math.min,W=Math.max,at=Math.round,ct=Math.floor,I=t=>({x:t,y:t}),Te={left:"right",right:"left",bottom:"top",top:"bottom"},$e={start:"end",end:"start"};function bt(t,e,n){return W(t,Z(e,n))}function q(t,e){return typeof t=="function"?t(e):t}function U(t){return t.split("-")[0]}function tt(t){return t.split("-")[1]}function Ot(t){return t==="x"?"y":"x"}function St(t){return t==="y"?"height":"width"}const Ne=new Set(["top","bottom"]);function z(t){return Ne.has(U(t))?"y":"x"}function Ct(t){return Ot(z(t))}function ke(t,e,n){n===void 0&&(n=!1);const o=tt(t),r=Ct(t),i=St(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(s=ft(s)),[s,ft(s)]}function Fe(t){const e=ft(t);return[At(t),e,At(e)]}function At(t){return t.replace(/start|end/g,e=>$e[e])}const _t=["left","right"],Bt=["right","left"],We=["top","bottom"],He=["bottom","top"];function _e(t,e,n){switch(t){case"top":case"bottom":return n?e?Bt:_t:e?_t:Bt;case"left":case"right":return e?We:He;default:return[]}}function Be(t,e,n,o){const r=tt(t);let i=_e(U(t),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),e&&(i=i.concat(i.map(At)))),i}function ft(t){return t.replace(/left|right|bottom|top/g,e=>Te[e])}function Ve(t){return{top:0,right:0,bottom:0,left:0,...t}}function Gt(t){return typeof t!="number"?Ve(t):{top:t,right:t,bottom:t,left:t}}function ut(t){const{x:e,y:n,width:o,height:r}=t;return{width:o,height:r,top:n,left:e,right:e+o,bottom:n+r,x:e,y:n}}function Vt(t,e,n){let{reference:o,floating:r}=t;const i=z(e),s=Ct(e),c=St(s),l=U(e),a=i==="y",f=o.x+o.width/2-r.width/2,u=o.y+o.height/2-r.height/2,h=o[c]/2-r[c]/2;let d;switch(l){case"top":d={x:f,y:o.y-r.height};break;case"bottom":d={x:f,y:o.y+o.height};break;case"right":d={x:o.x+o.width,y:u};break;case"left":d={x:o.x-r.width,y:u};break;default:d={x:o.x,y:o.y}}switch(tt(e)){case"start":d[s]-=h*(n&&a?-1:1);break;case"end":d[s]+=h*(n&&a?-1:1);break}return d}async function ze(t,e){var n;e===void 0&&(e={});const{x:o,y:r,platform:i,rects:s,elements:c,strategy:l}=t,{boundary:a="clippingAncestors",rootBoundary:f="viewport",elementContext:u="floating",altBoundary:h=!1,padding:d=0}=q(e,t),p=Gt(d),w=c[h?u==="floating"?"reference":"floating":u],g=ut(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(w)))==null||n?w:w.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:a,rootBoundary:f,strategy:l})),y=u==="floating"?{x:o,y:r,width:s.floating.width,height:s.floating.height}:s.reference,v=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),x=await(i.isElement==null?void 0:i.isElement(v))?await(i.getScale==null?void 0:i.getScale(v))||{x:1,y:1}:{x:1,y:1},R=ut(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:y,offsetParent:v,strategy:l}):y);return{top:(g.top-R.top+p.top)/x.y,bottom:(R.bottom-g.bottom+p.bottom)/x.y,left:(g.left-R.left+p.left)/x.x,right:(R.right-g.right+p.right)/x.x}}const je=async(t,e,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,c=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(e));let a=await s.getElementRects({reference:t,floating:e,strategy:r}),{x:f,y:u}=Vt(a,o,l),h=o,d={},p=0;for(let w=0;w<c.length;w++){var m;const{name:g,fn:y}=c[w],{x:v,y:x,data:R,reset:b}=await y({x:f,y:u,initialPlacement:o,placement:h,strategy:r,middlewareData:d,rects:a,platform:{...s,detectOverflow:(m=s.detectOverflow)!=null?m:ze},elements:{reference:t,floating:e}});f=v??f,u=x??u,d={...d,[g]:{...d[g],...R}},b&&p<=50&&(p++,typeof b=="object"&&(b.placement&&(h=b.placement),b.rects&&(a=b.rects===!0?await s.getElementRects({reference:t,floating:e,strategy:r}):b.rects),{x:f,y:u}=Vt(a,h,l)),w=-1)}return{x:f,y:u,placement:h,strategy:r,middlewareData:d}},Ie=t=>({name:"arrow",options:t,async fn(e){const{x:n,y:o,placement:r,rects:i,platform:s,elements:c,middlewareData:l}=e,{element:a,padding:f=0}=q(t,e)||{};if(a==null)return{};const u=Gt(f),h={x:n,y:o},d=Ct(r),p=St(d),m=await s.getDimensions(a),w=d==="y",g=w?"top":"left",y=w?"bottom":"right",v=w?"clientHeight":"clientWidth",x=i.reference[p]+i.reference[d]-h[d]-i.floating[p],R=h[d]-i.reference[d],b=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a));let S=b?b[v]:0;(!S||!await(s.isElement==null?void 0:s.isElement(b)))&&(S=c.floating[v]||i.floating[p]);const M=x/2-R/2,k=S/2-m[p]/2-1,D=Z(u[g],k),$=Z(u[y],k),N=D,P=S-m[p]-$,C=S/2-m[p]/2+M,F=bt(N,C,P),E=!l.arrow&&tt(r)!=null&&C!==F&&i.reference[p]/2-(C<N?D:$)-m[p]/2<0,L=E?C<N?C-N:C-P:0;return{[d]:h[d]+L,data:{[d]:F,centerOffset:C-F-L,...E&&{alignmentOffset:L}},reset:E}}}),Ye=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:c,platform:l,elements:a}=e,{mainAxis:f=!0,crossAxis:u=!0,fallbackPlacements:h,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:m=!0,...w}=q(t,e);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const g=U(r),y=z(c),v=U(c)===c,x=await(l.isRTL==null?void 0:l.isRTL(a.floating)),R=h||(v||!m?[ft(c)]:Fe(c)),b=p!=="none";!h&&b&&R.push(...Be(c,m,p,x));const S=[c,...R],M=await l.detectOverflow(e,w),k=[];let D=((o=i.flip)==null?void 0:o.overflows)||[];if(f&&k.push(M[g]),u){const C=ke(r,s,x);k.push(M[C[0]],M[C[1]])}if(D=[...D,{placement:r,overflows:k}],!k.every(C=>C<=0)){var $,N;const C=((($=i.flip)==null?void 0:$.index)||0)+1,F=S[C];if(F&&(!(u==="alignment"?y!==z(F):!1)||D.every(A=>z(A.placement)===y?A.overflows[0]>0:!0)))return{data:{index:C,overflows:D},reset:{placement:F}};let E=(N=D.filter(L=>L.overflows[0]<=0).sort((L,A)=>L.overflows[1]-A.overflows[1])[0])==null?void 0:N.placement;if(!E)switch(d){case"bestFit":{var P;const L=(P=D.filter(A=>{if(b){const T=z(A.placement);return T===y||T==="y"}return!0}).map(A=>[A.placement,A.overflows.filter(T=>T>0).reduce((T,V)=>T+V,0)]).sort((A,T)=>A[1]-T[1])[0])==null?void 0:P[0];L&&(E=L);break}case"initialPlacement":E=c;break}if(r!==E)return{reset:{placement:E}}}return{}}}};function zt(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function jt(t){return Me.some(e=>t[e]>=0)}const Xe=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n,platform:o}=e,{strategy:r="referenceHidden",...i}=q(t,e);switch(r){case"referenceHidden":{const s=await o.detectOverflow(e,{...i,elementContext:"reference"}),c=zt(s,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:jt(c)}}}case"escaped":{const s=await o.detectOverflow(e,{...i,altBoundary:!0}),c=zt(s,n.floating);return{data:{escapedOffsets:c,escaped:jt(c)}}}default:return{}}}}},Jt=new Set(["left","top"]);async function qe(t,e){const{placement:n,platform:o,elements:r}=t,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=U(n),c=tt(n),l=z(n)==="y",a=Jt.has(s)?-1:1,f=i&&l?-1:1,u=q(e,t);let{mainAxis:h,crossAxis:d,alignmentAxis:p}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return c&&typeof p=="number"&&(d=c==="end"?p*-1:p),l?{x:d*f,y:h*a}:{x:h*a,y:d*f}}const Ue=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,o;const{x:r,y:i,placement:s,middlewareData:c}=e,l=await qe(e,t);return s===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:s}}}}},Ze=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:r,platform:i}=e,{mainAxis:s=!0,crossAxis:c=!1,limiter:l={fn:g=>{let{x:y,y:v}=g;return{x:y,y:v}}},...a}=q(t,e),f={x:n,y:o},u=await i.detectOverflow(e,a),h=z(U(r)),d=Ot(h);let p=f[d],m=f[h];if(s){const g=d==="y"?"top":"left",y=d==="y"?"bottom":"right",v=p+u[g],x=p-u[y];p=bt(v,p,x)}if(c){const g=h==="y"?"top":"left",y=h==="y"?"bottom":"right",v=m+u[g],x=m-u[y];m=bt(v,m,x)}const w=l.fn({...e,[d]:p,[h]:m});return{...w,data:{x:w.x-n,y:w.y-o,enabled:{[d]:s,[h]:c}}}}}},Ke=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=e,{offset:c=0,mainAxis:l=!0,crossAxis:a=!0}=q(t,e),f={x:n,y:o},u=z(r),h=Ot(u);let d=f[h],p=f[u];const m=q(c,e),w=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(l){const v=h==="y"?"height":"width",x=i.reference[h]-i.floating[v]+w.mainAxis,R=i.reference[h]+i.reference[v]-w.mainAxis;d<x?d=x:d>R&&(d=R)}if(a){var g,y;const v=h==="y"?"width":"height",x=Jt.has(U(r)),R=i.reference[u]-i.floating[v]+(x&&((g=s.offset)==null?void 0:g[u])||0)+(x?0:w.crossAxis),b=i.reference[u]+i.reference[v]+(x?0:((y=s.offset)==null?void 0:y[u])||0)-(x?w.crossAxis:0);p<R?p=R:p>b&&(p=b)}return{[h]:d,[u]:p}}}},Ge=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,o;const{placement:r,rects:i,platform:s,elements:c}=e,{apply:l=()=>{},...a}=q(t,e),f=await s.detectOverflow(e,a),u=U(r),h=tt(r),d=z(r)==="y",{width:p,height:m}=i.floating;let w,g;u==="top"||u==="bottom"?(w=u,g=h===(await(s.isRTL==null?void 0:s.isRTL(c.floating))?"start":"end")?"left":"right"):(g=u,w=h==="end"?"top":"bottom");const y=m-f.top-f.bottom,v=p-f.left-f.right,x=Z(m-f[w],y),R=Z(p-f[g],v),b=!e.middlewareData.shift;let S=x,M=R;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(M=v),(o=e.middlewareData.shift)!=null&&o.enabled.y&&(S=y),b&&!h){const D=W(f.left,0),$=W(f.right,0),N=W(f.top,0),P=W(f.bottom,0);d?M=p-2*(D!==0||$!==0?D+$:W(f.left,f.right)):S=m-2*(N!==0||P!==0?N+P:W(f.top,f.bottom))}await l({...e,availableWidth:M,availableHeight:S});const k=await s.getDimensions(c.floating);return p!==k.width||m!==k.height?{reset:{rects:!0}}:{}}}};function ht(){return typeof window<"u"}function et(t){return Qt(t)?(t.nodeName||"").toLowerCase():"#document"}function H(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function X(t){var e;return(e=(Qt(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function Qt(t){return ht()?t instanceof Node||t instanceof H(t).Node:!1}function _(t){return ht()?t instanceof Element||t instanceof H(t).Element:!1}function Y(t){return ht()?t instanceof HTMLElement||t instanceof H(t).HTMLElement:!1}function It(t){return!ht()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof H(t).ShadowRoot}const Je=new Set(["inline","contents"]);function rt(t){const{overflow:e,overflowX:n,overflowY:o,display:r}=B(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!Je.has(r)}const Qe=new Set(["table","td","th"]);function tn(t){return Qe.has(et(t))}const en=[":popover-open",":modal"];function mt(t){return en.some(e=>{try{return t.matches(e)}catch{return!1}})}const nn=["transform","translate","scale","rotate","perspective"],on=["transform","translate","scale","rotate","perspective","filter"],rn=["paint","layout","strict","content"];function Pt(t){const e=Et(),n=_(t)?B(t):t;return nn.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||on.some(o=>(n.willChange||"").includes(o))||rn.some(o=>(n.contain||"").includes(o))}function sn(t){let e=K(t);for(;Y(e)&&!Q(e);){if(Pt(e))return e;if(mt(e))return null;e=K(e)}return null}function Et(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const cn=new Set(["html","body","#document"]);function Q(t){return cn.has(et(t))}function B(t){return H(t).getComputedStyle(t)}function gt(t){return _(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function K(t){if(et(t)==="html")return t;const e=t.assignedSlot||t.parentNode||It(t)&&t.host||X(t);return It(e)?e.host:e}function te(t){const e=K(t);return Q(e)?t.ownerDocument?t.ownerDocument.body:t.body:Y(e)&&rt(e)?e:te(e)}function ot(t,e,n){var o;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=te(t),i=r===((o=t.ownerDocument)==null?void 0:o.body),s=H(r);if(i){const c=Rt(s);return e.concat(s,s.visualViewport||[],rt(r)?r:[],c&&n?ot(c):[])}return e.concat(r,ot(r,[],n))}function Rt(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function ee(t){const e=B(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const r=Y(t),i=r?t.offsetWidth:n,s=r?t.offsetHeight:o,c=at(n)!==i||at(o)!==s;return c&&(n=i,o=s),{width:n,height:o,$:c}}function Lt(t){return _(t)?t:t.contextElement}function J(t){const e=Lt(t);if(!Y(e))return I(1);const n=e.getBoundingClientRect(),{width:o,height:r,$:i}=ee(e);let s=(i?at(n.width):n.width)/o,c=(i?at(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!c||!Number.isFinite(c))&&(c=1),{x:s,y:c}}const ln=I(0);function ne(t){const e=H(t);return!Et()||!e.visualViewport?ln:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function an(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==H(t)?!1:e}function G(t,e,n,o){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=Lt(t);let s=I(1);e&&(o?_(o)&&(s=J(o)):s=J(t));const c=an(i,n,o)?ne(i):I(0);let l=(r.left+c.x)/s.x,a=(r.top+c.y)/s.y,f=r.width/s.x,u=r.height/s.y;if(i){const h=H(i),d=o&&_(o)?H(o):o;let p=h,m=Rt(p);for(;m&&o&&d!==p;){const w=J(m),g=m.getBoundingClientRect(),y=B(m),v=g.left+(m.clientLeft+parseFloat(y.paddingLeft))*w.x,x=g.top+(m.clientTop+parseFloat(y.paddingTop))*w.y;l*=w.x,a*=w.y,f*=w.x,u*=w.y,l+=v,a+=x,p=H(m),m=Rt(p)}}return ut({width:f,height:u,x:l,y:a})}function wt(t,e){const n=gt(t).scrollLeft;return e?e.left+n:G(X(t)).left+n}function oe(t,e){const n=t.getBoundingClientRect(),o=n.left+e.scrollLeft-wt(t,n),r=n.top+e.scrollTop;return{x:o,y:r}}function fn(t){let{elements:e,rect:n,offsetParent:o,strategy:r}=t;const i=r==="fixed",s=X(o),c=e?mt(e.floating):!1;if(o===s||c&&i)return n;let l={scrollLeft:0,scrollTop:0},a=I(1);const f=I(0),u=Y(o);if((u||!u&&!i)&&((et(o)!=="body"||rt(s))&&(l=gt(o)),Y(o))){const d=G(o);a=J(o),f.x=d.x+o.clientLeft,f.y=d.y+o.clientTop}const h=s&&!u&&!i?oe(s,l):I(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-l.scrollLeft*a.x+f.x+h.x,y:n.y*a.y-l.scrollTop*a.y+f.y+h.y}}function un(t){return Array.from(t.getClientRects())}function dn(t){const e=X(t),n=gt(t),o=t.ownerDocument.body,r=W(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),i=W(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+wt(t);const c=-n.scrollTop;return B(o).direction==="rtl"&&(s+=W(e.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:c}}const Yt=25;function pn(t,e){const n=H(t),o=X(t),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,c=0,l=0;if(r){i=r.width,s=r.height;const f=Et();(!f||f&&e==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}const a=wt(o);if(a<=0){const f=o.ownerDocument,u=f.body,h=getComputedStyle(u),d=f.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,p=Math.abs(o.clientWidth-u.clientWidth-d);p<=Yt&&(i-=p)}else a<=Yt&&(i+=a);return{width:i,height:s,x:c,y:l}}const hn=new Set(["absolute","fixed"]);function mn(t,e){const n=G(t,!0,e==="fixed"),o=n.top+t.clientTop,r=n.left+t.clientLeft,i=Y(t)?J(t):I(1),s=t.clientWidth*i.x,c=t.clientHeight*i.y,l=r*i.x,a=o*i.y;return{width:s,height:c,x:l,y:a}}function Xt(t,e,n){let o;if(e==="viewport")o=pn(t,n);else if(e==="document")o=dn(X(t));else if(_(e))o=mn(e,n);else{const r=ne(t);o={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return ut(o)}function re(t,e){const n=K(t);return n===e||!_(n)||Q(n)?!1:B(n).position==="fixed"||re(n,e)}function gn(t,e){const n=e.get(t);if(n)return n;let o=ot(t,[],!1).filter(c=>_(c)&&et(c)!=="body"),r=null;const i=B(t).position==="fixed";let s=i?K(t):t;for(;_(s)&&!Q(s);){const c=B(s),l=Pt(s);!l&&c.position==="fixed"&&(r=null),(i?!l&&!r:!l&&c.position==="static"&&!!r&&hn.has(r.position)||rt(s)&&!l&&re(t,s))?o=o.filter(f=>f!==s):r=c,s=K(s)}return e.set(t,o),o}function wn(t){let{element:e,boundary:n,rootBoundary:o,strategy:r}=t;const s=[...n==="clippingAncestors"?mt(e)?[]:gn(e,this._c):[].concat(n),o],c=s[0],l=s.reduce((a,f)=>{const u=Xt(e,f,r);return a.top=W(u.top,a.top),a.right=Z(u.right,a.right),a.bottom=Z(u.bottom,a.bottom),a.left=W(u.left,a.left),a},Xt(e,c,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function xn(t){const{width:e,height:n}=ee(t);return{width:e,height:n}}function yn(t,e,n){const o=Y(e),r=X(e),i=n==="fixed",s=G(t,!0,i,e);let c={scrollLeft:0,scrollTop:0};const l=I(0);function a(){l.x=wt(r)}if(o||!o&&!i)if((et(e)!=="body"||rt(r))&&(c=gt(e)),o){const d=G(e,!0,i,e);l.x=d.x+e.clientLeft,l.y=d.y+e.clientTop}else r&&a();i&&!o&&r&&a();const f=r&&!o&&!i?oe(r,c):I(0),u=s.left+c.scrollLeft-l.x-f.x,h=s.top+c.scrollTop-l.y-f.y;return{x:u,y:h,width:s.width,height:s.height}}function xt(t){return B(t).position==="static"}function qt(t,e){if(!Y(t)||B(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return X(t)===n&&(n=n.ownerDocument.body),n}function ie(t,e){const n=H(t);if(mt(t))return n;if(!Y(t)){let r=K(t);for(;r&&!Q(r);){if(_(r)&&!xt(r))return r;r=K(r)}return n}let o=qt(t,e);for(;o&&tn(o)&&xt(o);)o=qt(o,e);return o&&Q(o)&&xt(o)&&!Pt(o)?n:o||sn(t)||n}const vn=async function(t){const e=this.getOffsetParent||ie,n=this.getDimensions,o=await n(t.floating);return{reference:yn(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function bn(t){return B(t).direction==="rtl"}const An={convertOffsetParentRelativeRectToViewportRelativeRect:fn,getDocumentElement:X,getClippingRect:wn,getOffsetParent:ie,getElementRects:vn,getClientRects:un,getDimensions:xn,getScale:J,isElement:_,isRTL:bn};function se(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function Rn(t,e){let n=null,o;const r=X(t);function i(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function s(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),i();const a=t.getBoundingClientRect(),{left:f,top:u,width:h,height:d}=a;if(c||e(),!h||!d)return;const p=ct(u),m=ct(r.clientWidth-(f+h)),w=ct(r.clientHeight-(u+d)),g=ct(f),v={rootMargin:-p+"px "+-m+"px "+-w+"px "+-g+"px",threshold:W(0,Z(1,l))||1};let x=!0;function R(b){const S=b[0].intersectionRatio;if(S!==l){if(!x)return s();S?s(!1,S):o=setTimeout(()=>{s(!1,1e-7)},1e3)}S===1&&!se(a,t.getBoundingClientRect())&&s(),x=!1}try{n=new IntersectionObserver(R,{...v,root:r.ownerDocument})}catch{n=new IntersectionObserver(R,v)}n.observe(t)}return s(!0),i}function On(t,e,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,a=Lt(t),f=r||i?[...a?ot(a):[],...ot(e)]:[];f.forEach(g=>{r&&g.addEventListener("scroll",n,{passive:!0}),i&&g.addEventListener("resize",n)});const u=a&&c?Rn(a,n):null;let h=-1,d=null;s&&(d=new ResizeObserver(g=>{let[y]=g;y&&y.target===a&&d&&(d.unobserve(e),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var v;(v=d)==null||v.observe(e)})),n()}),a&&!l&&d.observe(a),d.observe(e));let p,m=l?G(t):null;l&&w();function w(){const g=G(t);m&&!se(m,g)&&n(),m=g,p=requestAnimationFrame(w)}return n(),()=>{var g;f.forEach(y=>{r&&y.removeEventListener("scroll",n),i&&y.removeEventListener("resize",n)}),u==null||u(),(g=d)==null||g.disconnect(),d=null,l&&cancelAnimationFrame(p)}}const Sn=Ue,Cn=Ze,Pn=Ye,En=Ge,Ln=Xe,Ut=Ie,Dn=Ke,Mn=(t,e,n)=>{const o=new Map,r={platform:An,...n},i={...r.platform,_c:o};return je(t,e,{...r,platform:i})};var Tn=typeof document<"u",$n=function(){},lt=Tn?O.useLayoutEffect:$n;function dt(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,o,r;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(o=n;o--!==0;)if(!dt(t[o],e[o]))return!1;return!0}if(r=Object.keys(t),n=r.length,n!==Object.keys(e).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(e,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&t.$$typeof)&&!dt(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function ce(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Zt(t,e){const n=ce(t);return Math.round(e*n)/n}function yt(t){const e=O.useRef(t);return lt(()=>{e.current=t}),e}function Nn(t){t===void 0&&(t={});const{placement:e="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:s}={},transform:c=!0,whileElementsMounted:l,open:a}=t,[f,u]=O.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[h,d]=O.useState(o);dt(h,o)||d(o);const[p,m]=O.useState(null),[w,g]=O.useState(null),y=O.useCallback(A=>{A!==b.current&&(b.current=A,m(A))},[]),v=O.useCallback(A=>{A!==S.current&&(S.current=A,g(A))},[]),x=i||p,R=s||w,b=O.useRef(null),S=O.useRef(null),M=O.useRef(f),k=l!=null,D=yt(l),$=yt(r),N=yt(a),P=O.useCallback(()=>{if(!b.current||!S.current)return;const A={placement:e,strategy:n,middleware:h};$.current&&(A.platform=$.current),Mn(b.current,S.current,A).then(T=>{const V={...T,isPositioned:N.current!==!1};C.current&&!dt(M.current,V)&&(M.current=V,Ee.flushSync(()=>{u(V)}))})},[h,e,n,$,N]);lt(()=>{a===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,u(A=>({...A,isPositioned:!1})))},[a]);const C=O.useRef(!1);lt(()=>(C.current=!0,()=>{C.current=!1}),[]),lt(()=>{if(x&&(b.current=x),R&&(S.current=R),x&&R){if(D.current)return D.current(x,R,P);P()}},[x,R,P,D,k]);const F=O.useMemo(()=>({reference:b,floating:S,setReference:y,setFloating:v}),[y,v]),E=O.useMemo(()=>({reference:x,floating:R}),[x,R]),L=O.useMemo(()=>{const A={position:n,left:0,top:0};if(!E.floating)return A;const T=Zt(E.floating,f.x),V=Zt(E.floating,f.y);return c?{...A,transform:"translate("+T+"px, "+V+"px)",...ce(E.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:T,top:V}},[n,c,E.floating,f.x,f.y]);return O.useMemo(()=>({...f,update:P,refs:F,elements:E,floatingStyles:L}),[f,P,F,E,L])}const kn=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:o,padding:r}=typeof t=="function"?t(n):t;return o&&e(o)?o.current!=null?Ut({element:o.current,padding:r}).fn(n):{}:o?Ut({element:o,padding:r}).fn(n):{}}}},Fn=(t,e)=>({...Sn(t),options:[t,e]}),Wn=(t,e)=>({...Cn(t),options:[t,e]}),Hn=(t,e)=>({...Dn(t),options:[t,e]}),_n=(t,e)=>({...Pn(t),options:[t,e]}),Bn=(t,e)=>({...En(t),options:[t,e]}),Vn=(t,e)=>({...Ln(t),options:[t,e]}),zn=(t,e)=>({...kn(t),options:[t,e]});var jn="Arrow",le=O.forwardRef((t,e)=>{const{children:n,width:o=10,height:r=5,...i}=t;return j.jsx(pt.svg,{...i,ref:e,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:j.jsx("polygon",{points:"0,0 30,0 15,10"})})});le.displayName=jn;var In=le;function Yn(t){const[e,n]=O.useState(void 0);return vt(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let s,c;if("borderBoxSize"in i){const l=i.borderBoxSize,a=Array.isArray(l)?l[0]:l;s=a.inlineSize,c=a.blockSize}else s=t.offsetWidth,c=t.offsetHeight;n({width:s,height:c})});return o.observe(t,{box:"border-box"}),()=>o.unobserve(t)}else n(void 0)},[t]),e}var Dt="Popper",[ae,eo]=Le(Dt),[Xn,fe]=ae(Dt),ue=t=>{const{__scopePopper:e,children:n}=t,[o,r]=O.useState(null);return j.jsx(Xn,{scope:e,anchor:o,onAnchorChange:r,children:n})};ue.displayName=Dt;var de="PopperAnchor",pe=O.forwardRef((t,e)=>{const{__scopePopper:n,virtualRef:o,...r}=t,i=fe(de,n),s=O.useRef(null),c=Kt(e,s),l=O.useRef(null);return O.useEffect(()=>{const a=l.current;l.current=(o==null?void 0:o.current)||s.current,a!==l.current&&i.onAnchorChange(l.current)}),o?null:j.jsx(pt.div,{...r,ref:c})});pe.displayName=de;var Mt="PopperContent",[qn,Un]=ae(Mt),he=O.forwardRef((t,e)=>{var Tt,$t,Nt,kt,Ft,Wt;const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:i="center",alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:a=[],collisionPadding:f=0,sticky:u="partial",hideWhenDetached:h=!1,updatePositionStrategy:d="optimized",onPlaced:p,...m}=t,w=fe(Mt,n),[g,y]=O.useState(null),v=Kt(e,nt=>y(nt)),[x,R]=O.useState(null),b=Yn(x),S=(b==null?void 0:b.width)??0,M=(b==null?void 0:b.height)??0,k=o+(i!=="center"?"-"+i:""),D=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},$=Array.isArray(a)?a:[a],N=$.length>0,P={padding:D,boundary:$.filter(Kn),altBoundary:N},{refs:C,floatingStyles:F,placement:E,isPositioned:L,middlewareData:A}=Nn({strategy:"fixed",placement:k,whileElementsMounted:(...nt)=>On(...nt,{animationFrame:d==="always"}),elements:{reference:w.anchor},middleware:[Fn({mainAxis:r+M,alignmentAxis:s}),l&&Wn({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?Hn():void 0,...P}),l&&_n({...P}),Bn({...P,apply:({elements:nt,rects:Ht,availableWidth:Oe,availableHeight:Se})=>{const{width:Ce,height:Pe}=Ht.reference,st=nt.floating.style;st.setProperty("--radix-popper-available-width",`${Oe}px`),st.setProperty("--radix-popper-available-height",`${Se}px`),st.setProperty("--radix-popper-anchor-width",`${Ce}px`),st.setProperty("--radix-popper-anchor-height",`${Pe}px`)}}),x&&zn({element:x,padding:c}),Gn({arrowWidth:S,arrowHeight:M}),h&&Vn({strategy:"referenceHidden",...P})]}),[T,V]=we(E),it=De(p);vt(()=>{L&&(it==null||it())},[L,it]);const ye=(Tt=A.arrow)==null?void 0:Tt.x,ve=($t=A.arrow)==null?void 0:$t.y,be=((Nt=A.arrow)==null?void 0:Nt.centerOffset)!==0,[Ae,Re]=O.useState();return vt(()=>{g&&Re(window.getComputedStyle(g).zIndex)},[g]),j.jsx("div",{ref:C.setFloating,"data-radix-popper-content-wrapper":"",style:{...F,transform:L?F.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ae,"--radix-popper-transform-origin":[(kt=A.transformOrigin)==null?void 0:kt.x,(Ft=A.transformOrigin)==null?void 0:Ft.y].join(" "),...((Wt=A.hide)==null?void 0:Wt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:j.jsx(qn,{scope:n,placedSide:T,onArrowChange:R,arrowX:ye,arrowY:ve,shouldHideArrow:be,children:j.jsx(pt.div,{"data-side":T,"data-align":V,...m,ref:v,style:{...m.style,animation:L?void 0:"none"}})})})});he.displayName=Mt;var me="PopperArrow",Zn={top:"bottom",right:"left",bottom:"top",left:"right"},ge=O.forwardRef(function(e,n){const{__scopePopper:o,...r}=e,i=Un(me,o),s=Zn[i.placedSide];return j.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:j.jsx(In,{...r,ref:n,style:{...r.style,display:"block"}})})});ge.displayName=me;function Kn(t){return t!==null}var Gn=t=>({name:"transformOrigin",options:t,fn(e){var w,g,y;const{placement:n,rects:o,middlewareData:r}=e,s=((w=r.arrow)==null?void 0:w.centerOffset)!==0,c=s?0:t.arrowWidth,l=s?0:t.arrowHeight,[a,f]=we(n),u={start:"0%",center:"50%",end:"100%"}[f],h=(((g=r.arrow)==null?void 0:g.x)??0)+c/2,d=(((y=r.arrow)==null?void 0:y.y)??0)+l/2;let p="",m="";return a==="bottom"?(p=s?u:`${h}px`,m=`${-l}px`):a==="top"?(p=s?u:`${h}px`,m=`${o.floating.height+l}px`):a==="right"?(p=`${-l}px`,m=s?u:`${d}px`):a==="left"&&(p=`${o.floating.width+l}px`,m=s?u:`${d}px`),{data:{x:p,y:m}}}});function we(t){const[e,n="center"]=t.split("-");return[e,n]}var no=ue,oo=pe,ro=he,io=ge,Jn=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Qn="VisuallyHidden",xe=O.forwardRef((t,e)=>j.jsx(pt.span,{...t,ref:e,style:{...Jn,...t.style}}));xe.displayName=Qn;var so=xe;export{oo as A,ro as C,no as R,Jn as V,io as a,so as b,eo as c,Yn as u};
|
|
1
|
+
import{r as O,ao as Ee,j,a1 as pt,an as vt,$ as Kt,W as Le,V as De}from"./index-Cx2itkJ2.js";const Me=["top","right","bottom","left"],Z=Math.min,W=Math.max,at=Math.round,ct=Math.floor,I=t=>({x:t,y:t}),Te={left:"right",right:"left",bottom:"top",top:"bottom"},$e={start:"end",end:"start"};function bt(t,e,n){return W(t,Z(e,n))}function q(t,e){return typeof t=="function"?t(e):t}function U(t){return t.split("-")[0]}function tt(t){return t.split("-")[1]}function Ot(t){return t==="x"?"y":"x"}function St(t){return t==="y"?"height":"width"}const Ne=new Set(["top","bottom"]);function z(t){return Ne.has(U(t))?"y":"x"}function Ct(t){return Ot(z(t))}function ke(t,e,n){n===void 0&&(n=!1);const o=tt(t),r=Ct(t),i=St(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(s=ft(s)),[s,ft(s)]}function Fe(t){const e=ft(t);return[At(t),e,At(e)]}function At(t){return t.replace(/start|end/g,e=>$e[e])}const _t=["left","right"],Bt=["right","left"],We=["top","bottom"],He=["bottom","top"];function _e(t,e,n){switch(t){case"top":case"bottom":return n?e?Bt:_t:e?_t:Bt;case"left":case"right":return e?We:He;default:return[]}}function Be(t,e,n,o){const r=tt(t);let i=_e(U(t),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),e&&(i=i.concat(i.map(At)))),i}function ft(t){return t.replace(/left|right|bottom|top/g,e=>Te[e])}function Ve(t){return{top:0,right:0,bottom:0,left:0,...t}}function Gt(t){return typeof t!="number"?Ve(t):{top:t,right:t,bottom:t,left:t}}function ut(t){const{x:e,y:n,width:o,height:r}=t;return{width:o,height:r,top:n,left:e,right:e+o,bottom:n+r,x:e,y:n}}function Vt(t,e,n){let{reference:o,floating:r}=t;const i=z(e),s=Ct(e),c=St(s),l=U(e),a=i==="y",f=o.x+o.width/2-r.width/2,u=o.y+o.height/2-r.height/2,h=o[c]/2-r[c]/2;let d;switch(l){case"top":d={x:f,y:o.y-r.height};break;case"bottom":d={x:f,y:o.y+o.height};break;case"right":d={x:o.x+o.width,y:u};break;case"left":d={x:o.x-r.width,y:u};break;default:d={x:o.x,y:o.y}}switch(tt(e)){case"start":d[s]-=h*(n&&a?-1:1);break;case"end":d[s]+=h*(n&&a?-1:1);break}return d}async function ze(t,e){var n;e===void 0&&(e={});const{x:o,y:r,platform:i,rects:s,elements:c,strategy:l}=t,{boundary:a="clippingAncestors",rootBoundary:f="viewport",elementContext:u="floating",altBoundary:h=!1,padding:d=0}=q(e,t),p=Gt(d),w=c[h?u==="floating"?"reference":"floating":u],g=ut(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(w)))==null||n?w:w.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:a,rootBoundary:f,strategy:l})),y=u==="floating"?{x:o,y:r,width:s.floating.width,height:s.floating.height}:s.reference,v=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),x=await(i.isElement==null?void 0:i.isElement(v))?await(i.getScale==null?void 0:i.getScale(v))||{x:1,y:1}:{x:1,y:1},R=ut(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:y,offsetParent:v,strategy:l}):y);return{top:(g.top-R.top+p.top)/x.y,bottom:(R.bottom-g.bottom+p.bottom)/x.y,left:(g.left-R.left+p.left)/x.x,right:(R.right-g.right+p.right)/x.x}}const je=async(t,e,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,c=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(e));let a=await s.getElementRects({reference:t,floating:e,strategy:r}),{x:f,y:u}=Vt(a,o,l),h=o,d={},p=0;for(let w=0;w<c.length;w++){var m;const{name:g,fn:y}=c[w],{x:v,y:x,data:R,reset:b}=await y({x:f,y:u,initialPlacement:o,placement:h,strategy:r,middlewareData:d,rects:a,platform:{...s,detectOverflow:(m=s.detectOverflow)!=null?m:ze},elements:{reference:t,floating:e}});f=v??f,u=x??u,d={...d,[g]:{...d[g],...R}},b&&p<=50&&(p++,typeof b=="object"&&(b.placement&&(h=b.placement),b.rects&&(a=b.rects===!0?await s.getElementRects({reference:t,floating:e,strategy:r}):b.rects),{x:f,y:u}=Vt(a,h,l)),w=-1)}return{x:f,y:u,placement:h,strategy:r,middlewareData:d}},Ie=t=>({name:"arrow",options:t,async fn(e){const{x:n,y:o,placement:r,rects:i,platform:s,elements:c,middlewareData:l}=e,{element:a,padding:f=0}=q(t,e)||{};if(a==null)return{};const u=Gt(f),h={x:n,y:o},d=Ct(r),p=St(d),m=await s.getDimensions(a),w=d==="y",g=w?"top":"left",y=w?"bottom":"right",v=w?"clientHeight":"clientWidth",x=i.reference[p]+i.reference[d]-h[d]-i.floating[p],R=h[d]-i.reference[d],b=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a));let S=b?b[v]:0;(!S||!await(s.isElement==null?void 0:s.isElement(b)))&&(S=c.floating[v]||i.floating[p]);const M=x/2-R/2,k=S/2-m[p]/2-1,D=Z(u[g],k),$=Z(u[y],k),N=D,P=S-m[p]-$,C=S/2-m[p]/2+M,F=bt(N,C,P),E=!l.arrow&&tt(r)!=null&&C!==F&&i.reference[p]/2-(C<N?D:$)-m[p]/2<0,L=E?C<N?C-N:C-P:0;return{[d]:h[d]+L,data:{[d]:F,centerOffset:C-F-L,...E&&{alignmentOffset:L}},reset:E}}}),Ye=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:c,platform:l,elements:a}=e,{mainAxis:f=!0,crossAxis:u=!0,fallbackPlacements:h,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:m=!0,...w}=q(t,e);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const g=U(r),y=z(c),v=U(c)===c,x=await(l.isRTL==null?void 0:l.isRTL(a.floating)),R=h||(v||!m?[ft(c)]:Fe(c)),b=p!=="none";!h&&b&&R.push(...Be(c,m,p,x));const S=[c,...R],M=await l.detectOverflow(e,w),k=[];let D=((o=i.flip)==null?void 0:o.overflows)||[];if(f&&k.push(M[g]),u){const C=ke(r,s,x);k.push(M[C[0]],M[C[1]])}if(D=[...D,{placement:r,overflows:k}],!k.every(C=>C<=0)){var $,N;const C=((($=i.flip)==null?void 0:$.index)||0)+1,F=S[C];if(F&&(!(u==="alignment"?y!==z(F):!1)||D.every(A=>z(A.placement)===y?A.overflows[0]>0:!0)))return{data:{index:C,overflows:D},reset:{placement:F}};let E=(N=D.filter(L=>L.overflows[0]<=0).sort((L,A)=>L.overflows[1]-A.overflows[1])[0])==null?void 0:N.placement;if(!E)switch(d){case"bestFit":{var P;const L=(P=D.filter(A=>{if(b){const T=z(A.placement);return T===y||T==="y"}return!0}).map(A=>[A.placement,A.overflows.filter(T=>T>0).reduce((T,V)=>T+V,0)]).sort((A,T)=>A[1]-T[1])[0])==null?void 0:P[0];L&&(E=L);break}case"initialPlacement":E=c;break}if(r!==E)return{reset:{placement:E}}}return{}}}};function zt(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function jt(t){return Me.some(e=>t[e]>=0)}const Xe=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n,platform:o}=e,{strategy:r="referenceHidden",...i}=q(t,e);switch(r){case"referenceHidden":{const s=await o.detectOverflow(e,{...i,elementContext:"reference"}),c=zt(s,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:jt(c)}}}case"escaped":{const s=await o.detectOverflow(e,{...i,altBoundary:!0}),c=zt(s,n.floating);return{data:{escapedOffsets:c,escaped:jt(c)}}}default:return{}}}}},Jt=new Set(["left","top"]);async function qe(t,e){const{placement:n,platform:o,elements:r}=t,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=U(n),c=tt(n),l=z(n)==="y",a=Jt.has(s)?-1:1,f=i&&l?-1:1,u=q(e,t);let{mainAxis:h,crossAxis:d,alignmentAxis:p}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return c&&typeof p=="number"&&(d=c==="end"?p*-1:p),l?{x:d*f,y:h*a}:{x:h*a,y:d*f}}const Ue=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,o;const{x:r,y:i,placement:s,middlewareData:c}=e,l=await qe(e,t);return s===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:s}}}}},Ze=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:r,platform:i}=e,{mainAxis:s=!0,crossAxis:c=!1,limiter:l={fn:g=>{let{x:y,y:v}=g;return{x:y,y:v}}},...a}=q(t,e),f={x:n,y:o},u=await i.detectOverflow(e,a),h=z(U(r)),d=Ot(h);let p=f[d],m=f[h];if(s){const g=d==="y"?"top":"left",y=d==="y"?"bottom":"right",v=p+u[g],x=p-u[y];p=bt(v,p,x)}if(c){const g=h==="y"?"top":"left",y=h==="y"?"bottom":"right",v=m+u[g],x=m-u[y];m=bt(v,m,x)}const w=l.fn({...e,[d]:p,[h]:m});return{...w,data:{x:w.x-n,y:w.y-o,enabled:{[d]:s,[h]:c}}}}}},Ke=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:o,placement:r,rects:i,middlewareData:s}=e,{offset:c=0,mainAxis:l=!0,crossAxis:a=!0}=q(t,e),f={x:n,y:o},u=z(r),h=Ot(u);let d=f[h],p=f[u];const m=q(c,e),w=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(l){const v=h==="y"?"height":"width",x=i.reference[h]-i.floating[v]+w.mainAxis,R=i.reference[h]+i.reference[v]-w.mainAxis;d<x?d=x:d>R&&(d=R)}if(a){var g,y;const v=h==="y"?"width":"height",x=Jt.has(U(r)),R=i.reference[u]-i.floating[v]+(x&&((g=s.offset)==null?void 0:g[u])||0)+(x?0:w.crossAxis),b=i.reference[u]+i.reference[v]+(x?0:((y=s.offset)==null?void 0:y[u])||0)-(x?w.crossAxis:0);p<R?p=R:p>b&&(p=b)}return{[h]:d,[u]:p}}}},Ge=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,o;const{placement:r,rects:i,platform:s,elements:c}=e,{apply:l=()=>{},...a}=q(t,e),f=await s.detectOverflow(e,a),u=U(r),h=tt(r),d=z(r)==="y",{width:p,height:m}=i.floating;let w,g;u==="top"||u==="bottom"?(w=u,g=h===(await(s.isRTL==null?void 0:s.isRTL(c.floating))?"start":"end")?"left":"right"):(g=u,w=h==="end"?"top":"bottom");const y=m-f.top-f.bottom,v=p-f.left-f.right,x=Z(m-f[w],y),R=Z(p-f[g],v),b=!e.middlewareData.shift;let S=x,M=R;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(M=v),(o=e.middlewareData.shift)!=null&&o.enabled.y&&(S=y),b&&!h){const D=W(f.left,0),$=W(f.right,0),N=W(f.top,0),P=W(f.bottom,0);d?M=p-2*(D!==0||$!==0?D+$:W(f.left,f.right)):S=m-2*(N!==0||P!==0?N+P:W(f.top,f.bottom))}await l({...e,availableWidth:M,availableHeight:S});const k=await s.getDimensions(c.floating);return p!==k.width||m!==k.height?{reset:{rects:!0}}:{}}}};function ht(){return typeof window<"u"}function et(t){return Qt(t)?(t.nodeName||"").toLowerCase():"#document"}function H(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function X(t){var e;return(e=(Qt(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function Qt(t){return ht()?t instanceof Node||t instanceof H(t).Node:!1}function _(t){return ht()?t instanceof Element||t instanceof H(t).Element:!1}function Y(t){return ht()?t instanceof HTMLElement||t instanceof H(t).HTMLElement:!1}function It(t){return!ht()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof H(t).ShadowRoot}const Je=new Set(["inline","contents"]);function rt(t){const{overflow:e,overflowX:n,overflowY:o,display:r}=B(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!Je.has(r)}const Qe=new Set(["table","td","th"]);function tn(t){return Qe.has(et(t))}const en=[":popover-open",":modal"];function mt(t){return en.some(e=>{try{return t.matches(e)}catch{return!1}})}const nn=["transform","translate","scale","rotate","perspective"],on=["transform","translate","scale","rotate","perspective","filter"],rn=["paint","layout","strict","content"];function Pt(t){const e=Et(),n=_(t)?B(t):t;return nn.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||on.some(o=>(n.willChange||"").includes(o))||rn.some(o=>(n.contain||"").includes(o))}function sn(t){let e=K(t);for(;Y(e)&&!Q(e);){if(Pt(e))return e;if(mt(e))return null;e=K(e)}return null}function Et(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const cn=new Set(["html","body","#document"]);function Q(t){return cn.has(et(t))}function B(t){return H(t).getComputedStyle(t)}function gt(t){return _(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function K(t){if(et(t)==="html")return t;const e=t.assignedSlot||t.parentNode||It(t)&&t.host||X(t);return It(e)?e.host:e}function te(t){const e=K(t);return Q(e)?t.ownerDocument?t.ownerDocument.body:t.body:Y(e)&&rt(e)?e:te(e)}function ot(t,e,n){var o;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=te(t),i=r===((o=t.ownerDocument)==null?void 0:o.body),s=H(r);if(i){const c=Rt(s);return e.concat(s,s.visualViewport||[],rt(r)?r:[],c&&n?ot(c):[])}return e.concat(r,ot(r,[],n))}function Rt(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function ee(t){const e=B(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const r=Y(t),i=r?t.offsetWidth:n,s=r?t.offsetHeight:o,c=at(n)!==i||at(o)!==s;return c&&(n=i,o=s),{width:n,height:o,$:c}}function Lt(t){return _(t)?t:t.contextElement}function J(t){const e=Lt(t);if(!Y(e))return I(1);const n=e.getBoundingClientRect(),{width:o,height:r,$:i}=ee(e);let s=(i?at(n.width):n.width)/o,c=(i?at(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!c||!Number.isFinite(c))&&(c=1),{x:s,y:c}}const ln=I(0);function ne(t){const e=H(t);return!Et()||!e.visualViewport?ln:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function an(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==H(t)?!1:e}function G(t,e,n,o){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=Lt(t);let s=I(1);e&&(o?_(o)&&(s=J(o)):s=J(t));const c=an(i,n,o)?ne(i):I(0);let l=(r.left+c.x)/s.x,a=(r.top+c.y)/s.y,f=r.width/s.x,u=r.height/s.y;if(i){const h=H(i),d=o&&_(o)?H(o):o;let p=h,m=Rt(p);for(;m&&o&&d!==p;){const w=J(m),g=m.getBoundingClientRect(),y=B(m),v=g.left+(m.clientLeft+parseFloat(y.paddingLeft))*w.x,x=g.top+(m.clientTop+parseFloat(y.paddingTop))*w.y;l*=w.x,a*=w.y,f*=w.x,u*=w.y,l+=v,a+=x,p=H(m),m=Rt(p)}}return ut({width:f,height:u,x:l,y:a})}function wt(t,e){const n=gt(t).scrollLeft;return e?e.left+n:G(X(t)).left+n}function oe(t,e){const n=t.getBoundingClientRect(),o=n.left+e.scrollLeft-wt(t,n),r=n.top+e.scrollTop;return{x:o,y:r}}function fn(t){let{elements:e,rect:n,offsetParent:o,strategy:r}=t;const i=r==="fixed",s=X(o),c=e?mt(e.floating):!1;if(o===s||c&&i)return n;let l={scrollLeft:0,scrollTop:0},a=I(1);const f=I(0),u=Y(o);if((u||!u&&!i)&&((et(o)!=="body"||rt(s))&&(l=gt(o)),Y(o))){const d=G(o);a=J(o),f.x=d.x+o.clientLeft,f.y=d.y+o.clientTop}const h=s&&!u&&!i?oe(s,l):I(0);return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-l.scrollLeft*a.x+f.x+h.x,y:n.y*a.y-l.scrollTop*a.y+f.y+h.y}}function un(t){return Array.from(t.getClientRects())}function dn(t){const e=X(t),n=gt(t),o=t.ownerDocument.body,r=W(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),i=W(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+wt(t);const c=-n.scrollTop;return B(o).direction==="rtl"&&(s+=W(e.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:c}}const Yt=25;function pn(t,e){const n=H(t),o=X(t),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,c=0,l=0;if(r){i=r.width,s=r.height;const f=Et();(!f||f&&e==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}const a=wt(o);if(a<=0){const f=o.ownerDocument,u=f.body,h=getComputedStyle(u),d=f.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,p=Math.abs(o.clientWidth-u.clientWidth-d);p<=Yt&&(i-=p)}else a<=Yt&&(i+=a);return{width:i,height:s,x:c,y:l}}const hn=new Set(["absolute","fixed"]);function mn(t,e){const n=G(t,!0,e==="fixed"),o=n.top+t.clientTop,r=n.left+t.clientLeft,i=Y(t)?J(t):I(1),s=t.clientWidth*i.x,c=t.clientHeight*i.y,l=r*i.x,a=o*i.y;return{width:s,height:c,x:l,y:a}}function Xt(t,e,n){let o;if(e==="viewport")o=pn(t,n);else if(e==="document")o=dn(X(t));else if(_(e))o=mn(e,n);else{const r=ne(t);o={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return ut(o)}function re(t,e){const n=K(t);return n===e||!_(n)||Q(n)?!1:B(n).position==="fixed"||re(n,e)}function gn(t,e){const n=e.get(t);if(n)return n;let o=ot(t,[],!1).filter(c=>_(c)&&et(c)!=="body"),r=null;const i=B(t).position==="fixed";let s=i?K(t):t;for(;_(s)&&!Q(s);){const c=B(s),l=Pt(s);!l&&c.position==="fixed"&&(r=null),(i?!l&&!r:!l&&c.position==="static"&&!!r&&hn.has(r.position)||rt(s)&&!l&&re(t,s))?o=o.filter(f=>f!==s):r=c,s=K(s)}return e.set(t,o),o}function wn(t){let{element:e,boundary:n,rootBoundary:o,strategy:r}=t;const s=[...n==="clippingAncestors"?mt(e)?[]:gn(e,this._c):[].concat(n),o],c=s[0],l=s.reduce((a,f)=>{const u=Xt(e,f,r);return a.top=W(u.top,a.top),a.right=Z(u.right,a.right),a.bottom=Z(u.bottom,a.bottom),a.left=W(u.left,a.left),a},Xt(e,c,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function xn(t){const{width:e,height:n}=ee(t);return{width:e,height:n}}function yn(t,e,n){const o=Y(e),r=X(e),i=n==="fixed",s=G(t,!0,i,e);let c={scrollLeft:0,scrollTop:0};const l=I(0);function a(){l.x=wt(r)}if(o||!o&&!i)if((et(e)!=="body"||rt(r))&&(c=gt(e)),o){const d=G(e,!0,i,e);l.x=d.x+e.clientLeft,l.y=d.y+e.clientTop}else r&&a();i&&!o&&r&&a();const f=r&&!o&&!i?oe(r,c):I(0),u=s.left+c.scrollLeft-l.x-f.x,h=s.top+c.scrollTop-l.y-f.y;return{x:u,y:h,width:s.width,height:s.height}}function xt(t){return B(t).position==="static"}function qt(t,e){if(!Y(t)||B(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return X(t)===n&&(n=n.ownerDocument.body),n}function ie(t,e){const n=H(t);if(mt(t))return n;if(!Y(t)){let r=K(t);for(;r&&!Q(r);){if(_(r)&&!xt(r))return r;r=K(r)}return n}let o=qt(t,e);for(;o&&tn(o)&&xt(o);)o=qt(o,e);return o&&Q(o)&&xt(o)&&!Pt(o)?n:o||sn(t)||n}const vn=async function(t){const e=this.getOffsetParent||ie,n=this.getDimensions,o=await n(t.floating);return{reference:yn(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function bn(t){return B(t).direction==="rtl"}const An={convertOffsetParentRelativeRectToViewportRelativeRect:fn,getDocumentElement:X,getClippingRect:wn,getOffsetParent:ie,getElementRects:vn,getClientRects:un,getDimensions:xn,getScale:J,isElement:_,isRTL:bn};function se(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function Rn(t,e){let n=null,o;const r=X(t);function i(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function s(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),i();const a=t.getBoundingClientRect(),{left:f,top:u,width:h,height:d}=a;if(c||e(),!h||!d)return;const p=ct(u),m=ct(r.clientWidth-(f+h)),w=ct(r.clientHeight-(u+d)),g=ct(f),v={rootMargin:-p+"px "+-m+"px "+-w+"px "+-g+"px",threshold:W(0,Z(1,l))||1};let x=!0;function R(b){const S=b[0].intersectionRatio;if(S!==l){if(!x)return s();S?s(!1,S):o=setTimeout(()=>{s(!1,1e-7)},1e3)}S===1&&!se(a,t.getBoundingClientRect())&&s(),x=!1}try{n=new IntersectionObserver(R,{...v,root:r.ownerDocument})}catch{n=new IntersectionObserver(R,v)}n.observe(t)}return s(!0),i}function On(t,e,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,a=Lt(t),f=r||i?[...a?ot(a):[],...ot(e)]:[];f.forEach(g=>{r&&g.addEventListener("scroll",n,{passive:!0}),i&&g.addEventListener("resize",n)});const u=a&&c?Rn(a,n):null;let h=-1,d=null;s&&(d=new ResizeObserver(g=>{let[y]=g;y&&y.target===a&&d&&(d.unobserve(e),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var v;(v=d)==null||v.observe(e)})),n()}),a&&!l&&d.observe(a),d.observe(e));let p,m=l?G(t):null;l&&w();function w(){const g=G(t);m&&!se(m,g)&&n(),m=g,p=requestAnimationFrame(w)}return n(),()=>{var g;f.forEach(y=>{r&&y.removeEventListener("scroll",n),i&&y.removeEventListener("resize",n)}),u==null||u(),(g=d)==null||g.disconnect(),d=null,l&&cancelAnimationFrame(p)}}const Sn=Ue,Cn=Ze,Pn=Ye,En=Ge,Ln=Xe,Ut=Ie,Dn=Ke,Mn=(t,e,n)=>{const o=new Map,r={platform:An,...n},i={...r.platform,_c:o};return je(t,e,{...r,platform:i})};var Tn=typeof document<"u",$n=function(){},lt=Tn?O.useLayoutEffect:$n;function dt(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,o,r;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(o=n;o--!==0;)if(!dt(t[o],e[o]))return!1;return!0}if(r=Object.keys(t),n=r.length,n!==Object.keys(e).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(e,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&t.$$typeof)&&!dt(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function ce(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Zt(t,e){const n=ce(t);return Math.round(e*n)/n}function yt(t){const e=O.useRef(t);return lt(()=>{e.current=t}),e}function Nn(t){t===void 0&&(t={});const{placement:e="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:s}={},transform:c=!0,whileElementsMounted:l,open:a}=t,[f,u]=O.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[h,d]=O.useState(o);dt(h,o)||d(o);const[p,m]=O.useState(null),[w,g]=O.useState(null),y=O.useCallback(A=>{A!==b.current&&(b.current=A,m(A))},[]),v=O.useCallback(A=>{A!==S.current&&(S.current=A,g(A))},[]),x=i||p,R=s||w,b=O.useRef(null),S=O.useRef(null),M=O.useRef(f),k=l!=null,D=yt(l),$=yt(r),N=yt(a),P=O.useCallback(()=>{if(!b.current||!S.current)return;const A={placement:e,strategy:n,middleware:h};$.current&&(A.platform=$.current),Mn(b.current,S.current,A).then(T=>{const V={...T,isPositioned:N.current!==!1};C.current&&!dt(M.current,V)&&(M.current=V,Ee.flushSync(()=>{u(V)}))})},[h,e,n,$,N]);lt(()=>{a===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,u(A=>({...A,isPositioned:!1})))},[a]);const C=O.useRef(!1);lt(()=>(C.current=!0,()=>{C.current=!1}),[]),lt(()=>{if(x&&(b.current=x),R&&(S.current=R),x&&R){if(D.current)return D.current(x,R,P);P()}},[x,R,P,D,k]);const F=O.useMemo(()=>({reference:b,floating:S,setReference:y,setFloating:v}),[y,v]),E=O.useMemo(()=>({reference:x,floating:R}),[x,R]),L=O.useMemo(()=>{const A={position:n,left:0,top:0};if(!E.floating)return A;const T=Zt(E.floating,f.x),V=Zt(E.floating,f.y);return c?{...A,transform:"translate("+T+"px, "+V+"px)",...ce(E.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:T,top:V}},[n,c,E.floating,f.x,f.y]);return O.useMemo(()=>({...f,update:P,refs:F,elements:E,floatingStyles:L}),[f,P,F,E,L])}const kn=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:o,padding:r}=typeof t=="function"?t(n):t;return o&&e(o)?o.current!=null?Ut({element:o.current,padding:r}).fn(n):{}:o?Ut({element:o,padding:r}).fn(n):{}}}},Fn=(t,e)=>({...Sn(t),options:[t,e]}),Wn=(t,e)=>({...Cn(t),options:[t,e]}),Hn=(t,e)=>({...Dn(t),options:[t,e]}),_n=(t,e)=>({...Pn(t),options:[t,e]}),Bn=(t,e)=>({...En(t),options:[t,e]}),Vn=(t,e)=>({...Ln(t),options:[t,e]}),zn=(t,e)=>({...kn(t),options:[t,e]});var jn="Arrow",le=O.forwardRef((t,e)=>{const{children:n,width:o=10,height:r=5,...i}=t;return j.jsx(pt.svg,{...i,ref:e,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:j.jsx("polygon",{points:"0,0 30,0 15,10"})})});le.displayName=jn;var In=le;function Yn(t){const[e,n]=O.useState(void 0);return vt(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let s,c;if("borderBoxSize"in i){const l=i.borderBoxSize,a=Array.isArray(l)?l[0]:l;s=a.inlineSize,c=a.blockSize}else s=t.offsetWidth,c=t.offsetHeight;n({width:s,height:c})});return o.observe(t,{box:"border-box"}),()=>o.unobserve(t)}else n(void 0)},[t]),e}var Dt="Popper",[ae,eo]=Le(Dt),[Xn,fe]=ae(Dt),ue=t=>{const{__scopePopper:e,children:n}=t,[o,r]=O.useState(null);return j.jsx(Xn,{scope:e,anchor:o,onAnchorChange:r,children:n})};ue.displayName=Dt;var de="PopperAnchor",pe=O.forwardRef((t,e)=>{const{__scopePopper:n,virtualRef:o,...r}=t,i=fe(de,n),s=O.useRef(null),c=Kt(e,s),l=O.useRef(null);return O.useEffect(()=>{const a=l.current;l.current=(o==null?void 0:o.current)||s.current,a!==l.current&&i.onAnchorChange(l.current)}),o?null:j.jsx(pt.div,{...r,ref:c})});pe.displayName=de;var Mt="PopperContent",[qn,Un]=ae(Mt),he=O.forwardRef((t,e)=>{var Tt,$t,Nt,kt,Ft,Wt;const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:i="center",alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:a=[],collisionPadding:f=0,sticky:u="partial",hideWhenDetached:h=!1,updatePositionStrategy:d="optimized",onPlaced:p,...m}=t,w=fe(Mt,n),[g,y]=O.useState(null),v=Kt(e,nt=>y(nt)),[x,R]=O.useState(null),b=Yn(x),S=(b==null?void 0:b.width)??0,M=(b==null?void 0:b.height)??0,k=o+(i!=="center"?"-"+i:""),D=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},$=Array.isArray(a)?a:[a],N=$.length>0,P={padding:D,boundary:$.filter(Kn),altBoundary:N},{refs:C,floatingStyles:F,placement:E,isPositioned:L,middlewareData:A}=Nn({strategy:"fixed",placement:k,whileElementsMounted:(...nt)=>On(...nt,{animationFrame:d==="always"}),elements:{reference:w.anchor},middleware:[Fn({mainAxis:r+M,alignmentAxis:s}),l&&Wn({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?Hn():void 0,...P}),l&&_n({...P}),Bn({...P,apply:({elements:nt,rects:Ht,availableWidth:Oe,availableHeight:Se})=>{const{width:Ce,height:Pe}=Ht.reference,st=nt.floating.style;st.setProperty("--radix-popper-available-width",`${Oe}px`),st.setProperty("--radix-popper-available-height",`${Se}px`),st.setProperty("--radix-popper-anchor-width",`${Ce}px`),st.setProperty("--radix-popper-anchor-height",`${Pe}px`)}}),x&&zn({element:x,padding:c}),Gn({arrowWidth:S,arrowHeight:M}),h&&Vn({strategy:"referenceHidden",...P})]}),[T,V]=we(E),it=De(p);vt(()=>{L&&(it==null||it())},[L,it]);const ye=(Tt=A.arrow)==null?void 0:Tt.x,ve=($t=A.arrow)==null?void 0:$t.y,be=((Nt=A.arrow)==null?void 0:Nt.centerOffset)!==0,[Ae,Re]=O.useState();return vt(()=>{g&&Re(window.getComputedStyle(g).zIndex)},[g]),j.jsx("div",{ref:C.setFloating,"data-radix-popper-content-wrapper":"",style:{...F,transform:L?F.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ae,"--radix-popper-transform-origin":[(kt=A.transformOrigin)==null?void 0:kt.x,(Ft=A.transformOrigin)==null?void 0:Ft.y].join(" "),...((Wt=A.hide)==null?void 0:Wt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:j.jsx(qn,{scope:n,placedSide:T,onArrowChange:R,arrowX:ye,arrowY:ve,shouldHideArrow:be,children:j.jsx(pt.div,{"data-side":T,"data-align":V,...m,ref:v,style:{...m.style,animation:L?void 0:"none"}})})})});he.displayName=Mt;var me="PopperArrow",Zn={top:"bottom",right:"left",bottom:"top",left:"right"},ge=O.forwardRef(function(e,n){const{__scopePopper:o,...r}=e,i=Un(me,o),s=Zn[i.placedSide];return j.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:j.jsx(In,{...r,ref:n,style:{...r.style,display:"block"}})})});ge.displayName=me;function Kn(t){return t!==null}var Gn=t=>({name:"transformOrigin",options:t,fn(e){var w,g,y;const{placement:n,rects:o,middlewareData:r}=e,s=((w=r.arrow)==null?void 0:w.centerOffset)!==0,c=s?0:t.arrowWidth,l=s?0:t.arrowHeight,[a,f]=we(n),u={start:"0%",center:"50%",end:"100%"}[f],h=(((g=r.arrow)==null?void 0:g.x)??0)+c/2,d=(((y=r.arrow)==null?void 0:y.y)??0)+l/2;let p="",m="";return a==="bottom"?(p=s?u:`${h}px`,m=`${-l}px`):a==="top"?(p=s?u:`${h}px`,m=`${o.floating.height+l}px`):a==="right"?(p=`${-l}px`,m=s?u:`${d}px`):a==="left"&&(p=`${o.floating.width+l}px`,m=s?u:`${d}px`),{data:{x:p,y:m}}}});function we(t){const[e,n="center"]=t.split("-");return[e,n]}var no=ue,oo=pe,ro=he,io=ge,Jn=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Qn="VisuallyHidden",xe=O.forwardRef((t,e)=>j.jsx(pt.span,{...t,ref:e,style:{...Jn,...t.style}}));xe.displayName=Qn;var so=xe;export{oo as A,ro as C,no as R,Jn as V,io as a,so as b,eo as c,Yn as u};
|
|
@@ -0,0 +1 @@
|
|
|
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:Inter,system-ui,-apple-system,sans-serif;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: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 243 75% 59%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 243 75% 59%;--radius: .6rem}html{font-size:17px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{border-color:hsl(var(--border));box-sizing:border-box}body{background-color:hsl(var(--background));font-family:Inter,system-ui,-apple-system,sans-serif;color:hsl(var(--foreground));margin:0;line-height:1.6;letter-spacing:-.011em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c3cfe0;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#89a2c2}button,a,input,select,textarea,[role=button]{transition-property:color,background-color,border-color,box-shadow,opacity,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.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}.visible{visibility:visible}.\!static{position:static!important}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.\!left-auto{left:auto!important}.\!right-auto{right:auto!important}.\!top-auto{top:auto!important}.-right-0\.5{right:-.125rem}.-top-0\.5{top:-.125rem}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-3\.5{left:.875rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[50\%\]{top:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.order-3{order:3}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-\[1px\]{height:1px}.h-\[400px\]{height:400px}.h-\[82px\]{height:82px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:12rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[200px\]{max-height:200px}.max-h-\[380px\]{max-height:380px}.max-h-\[460px\]{max-height:460px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[95vh\]{max-height:95vh}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[200px\]{min-height:200px}.min-h-\[36px\]{min-height:36px}.min-h-\[400px\]{min-height:400px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[140px\]{width:140px}.w-\[160px\]{width:160px}.w-\[18px\]{width:18px}.w-\[1px\]{width:1px}.w-\[200px\]{width:200px}.w-\[375px\]{width:375px}.w-\[50px\]{width:50px}.w-\[600px\]{width:600px}.w-\[72px\]{width:72px}.w-\[min\(560px\,calc\(100vw-2rem\)\)\]{width:min(560px,calc(100vw - 2rem))}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-3\.5{min-width:.875rem}.min-w-\[124px\]{min-width:124px}.min-w-\[132px\]{min-width:132px}.min-w-\[148px\]{min-width:148px}.min-w-\[200px\]{min-width:200px}.min-w-\[500px\]{min-width:500px}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.max-w-\[120px\]{max-width:120px}.max-w-\[200px\]{max-width:200px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[420px\]{max-width:420px}.max-w-\[80\%\]{max-width:80%}.max-w-\[85vw\]{max-width:85vw}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.\!translate-x-0{--tw-translate-x: 0px !important;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))!important}.\!translate-y-0{--tw-translate-y: 0px !important;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))!important}.-translate-y-1\/2{--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))}.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))}.rotate-90{--tw-rotate: 90deg;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))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.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)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.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-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * 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))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.\!border-emerald-200{--tw-border-opacity: 1 !important;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))!important}.\!border-red-200{--tw-border-opacity: 1 !important;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))!important}.border-amber-100{--tw-border-opacity: 1;border-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-blue-100{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-current{border-color:currentColor}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-green-100{--tw-border-opacity: 1;border-color:rgb(220 252 231 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-indigo-100{--tw-border-opacity: 1;border-color:rgb(224 231 255 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-indigo-400{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/80{border-color:#e2e8f0cc}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.\!bg-emerald-50\/90{background-color:#ecfdf5e6!important}.\!bg-red-50\/90{background-color:#fef2f2e6!important}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/20{background-color:#0003}.bg-black\/5{background-color:#0000000d}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50\/40{background-color:#eef2ff66}.bg-indigo-50\/70{background-color:#eef2ffb3}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.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-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/40{background-color:#fef2f266}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-100\/70{background-color:#f1f5f9b3}.bg-slate-100\/80{background-color:#f1f5f9cc}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/80{background-color:#f8fafccc}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-100{--tw-gradient-from: #f1f5f9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(241 245 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-slate-50{--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #f8fafc var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-indigo-50\/30{--tw-gradient-to: rgb(238 242 255 / .3) var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.stroke-\[3\]{stroke-width:3}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.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-10{padding-top:2.5rem;padding-bottom:2.5rem}.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-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pl-12{padding-left:3rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-3\.5{padding-right:.875rem}.pr-8{padding-right:2rem}.pr-9{padding-right:2.25rem}.pt-1{padding-top:.25rem}.pt-14{padding-top:3.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-\[9px\]{padding-top:9px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.5\]{line-height:1.5}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-current{color:currentColor}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-200{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-100{--tw-text-opacity: 1;color:rgb(224 231 255 / var(--tw-text-opacity, 1))}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-indigo-800\/80{color:#3730a3cc}.text-indigo-900{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.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-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.caret-foreground{caret-color:hsl(var(--foreground))}.accent-indigo-600{accent-color:#4f46e5}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px 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-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;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-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)!important}.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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@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))}}.animate-in{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}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-100{animation-duration:.1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.animate-fade-in{animation:fadeIn .18s cubic-bezier(.4,0,.2,1) both}.animate-page-swap{animation:pageSwapIn .22s cubic-bezier(.22,1,.36,1) both;will-change:opacity,transform}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.card-lift{transition:box-shadow .2s ease,transform .2s ease}.card-lift:hover{box-shadow:0 4px 20px -4px #00000014;transform:translateY(-1px)}.animate-enter-up{animation:enterUp .32s cubic-bezier(.22,1,.36,1) both}.animate-enter-delay-1{animation-delay:50ms}.animate-enter-delay-2{animation-delay:.1s}.skeleton-shimmer{position:relative;overflow:hidden;background:#ebeff5}.skeleton-shimmer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.7) 45%,rgba(255,255,255,.95) 50%,rgba(255,255,255,.7) 55%,transparent 100%);animation:shimmer 1.2s ease-in-out infinite}@keyframes enterUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes pageSwapIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_/assets/fonts/Inter-Variable.woff2) format("woff2")}@supports (view-transition-name: root){:root{view-transition-name:root}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s;animation-timing-function:cubic-bezier(.22,1,.36,1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:border-0:last-child{border-width:0px}.focus-within\:ring-1:focus-within{--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-within\:ring-ring:focus-within{--tw-ring-color: hsl(var(--ring))}.hover\:translate-x-\[1px\]:hover{--tw-translate-x: 1px;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))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;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))}.hover\:border-indigo-400:hover{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1))}.hover\:border-slate-200:hover{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:border-slate-400:hover{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity, 1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-black\/40:hover{background-color:#0006}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-100:hover{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.hover\:bg-green-100:hover{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-50\/50:hover{background-color:#eef2ff80}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted-foreground\/20:hover{background-color:hsl(var(--muted-foreground) / .2)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted) / .4)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100\/80:hover{background-color:#f1f5f9cc}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-200\/80:hover{background-color:#e2e8f0cc}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-emerald-700:hover{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-indigo-600:hover{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-slate-500:hover{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--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)}.hover\:shadow-sm:hover{--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)}.hover\:ring-2:hover{--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)}.hover\:ring-primary\/50:hover{--tw-ring-color: hsl(var(--primary) / .5)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-destructive:focus{color:hsl(var(--destructive))}.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\:border-ring\/50:focus-visible{border-color:hsl(var(--ring) / .5)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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)}.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-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:scale-\[0\.98\]:active{--tw-scale-x: .98;--tw-scale-y: .98;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))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\: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)}.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-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;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-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;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-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;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-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;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\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-indigo-50\/40[data-state=selected]{background-color:#eef2ff66}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow-sm[data-state=active]{--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)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.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-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}@media(min-width:640px){.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-\[560px\]{max-width:560px}.sm\:max-w-\[700px\]{max-width:700px}.sm\:max-w-none{max-width:none}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-3{gap:.75rem}.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}}@media(min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-\[16px\]{font-size:16px}}@media(min-width:1024px){.lg\:col-span-1{grid-column:span 1 / span 1}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\[data-icon\]\]\:text-emerald-600 [data-icon]{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.\[\&_\[data-icon\]\]\:text-red-600 [data-icon]{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:size-5 svg{width:1.25rem;height:1.25rem}.\[\&_svg\]\:size-\[18px\] svg{width:18px;height:18px}.\[\&_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}
|