cartethyia 2.4.5 → 2.4.6
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.
- package/.env.example +4 -1
- package/README.md +18 -0
- package/dist/dashboard/assets/AccountCooldown-ChpdzxRH.js.gz +0 -0
- package/dist/dashboard/assets/{BannedPage-DUrXpp-X.js → BannedPage-QhvbJB9o.js} +1 -1
- package/dist/dashboard/assets/BannedPage-QhvbJB9o.js.gz +0 -0
- package/dist/dashboard/assets/{CliToolDetailPage-BzGevuql.js → CliToolDetailPage-Bcy150Jo.js} +1 -1
- package/dist/dashboard/assets/CliToolDetailPage-Bcy150Jo.js.gz +0 -0
- package/dist/dashboard/assets/{CliToolsPage-BaRM_7We.js → CliToolsPage-DyNXefph.js} +1 -1
- package/dist/dashboard/assets/CliToolsPage-DyNXefph.js.gz +0 -0
- package/dist/dashboard/assets/CombosPage-Cak0ljnO.js +1 -0
- package/dist/dashboard/assets/CombosPage-Cak0ljnO.js.gz +0 -0
- package/dist/dashboard/assets/ConsoleLogPage-CATpAEOz.js +1 -0
- package/dist/dashboard/assets/ConsoleLogPage-CATpAEOz.js.gz +0 -0
- package/dist/dashboard/assets/{CustomizationPage-DqUGcoH0.js → CustomizationPage-D6jEU7nL.js} +1 -1
- package/dist/dashboard/assets/CustomizationPage-D6jEU7nL.js.gz +0 -0
- package/dist/dashboard/assets/HealthEventsModal-CZkpn0a7.js +1 -0
- package/dist/dashboard/assets/HealthEventsModal-CZkpn0a7.js.gz +0 -0
- package/dist/dashboard/assets/{LoginPage-DbhTGfhb.js → LoginPage-BJlMVN4U.js} +1 -1
- package/dist/dashboard/assets/LoginPage-BJlMVN4U.js.gz +0 -0
- package/dist/dashboard/assets/ModelPicker-Br3CXEau.js +1 -0
- package/dist/dashboard/assets/ModelPicker-Br3CXEau.js.gz +0 -0
- package/dist/dashboard/assets/{OverviewPage-C3NIzsDx.js → OverviewPage-CQxXbo2g.js} +1 -1
- package/dist/dashboard/assets/OverviewPage-CQxXbo2g.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage--0RBNh99.js +3 -0
- package/dist/dashboard/assets/ProviderDetailPage--0RBNh99.js.gz +0 -0
- package/dist/dashboard/assets/ProviderIcon-paOCq8I0.js.gz +0 -0
- package/dist/dashboard/assets/ProvidersPage-1M-C3mbu.js +1 -0
- package/dist/dashboard/assets/ProvidersPage-1M-C3mbu.js.gz +0 -0
- package/dist/dashboard/assets/ProxyPage-CXiumA53.js +7 -0
- package/dist/dashboard/assets/ProxyPage-CXiumA53.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-BGDIfIYP.js +1 -0
- package/dist/dashboard/assets/QuotaPage-BGDIfIYP.js.gz +0 -0
- package/dist/dashboard/assets/{SettingsPage-YxRml8AT.js → SettingsPage-BHW4Zt06.js} +1 -1
- package/dist/dashboard/assets/SettingsPage-BHW4Zt06.js.gz +0 -0
- package/dist/dashboard/assets/SetupPage-VOYC_lIa.js +1 -0
- package/dist/dashboard/assets/SetupPage-VOYC_lIa.js.gz +0 -0
- package/dist/dashboard/assets/SortableList-DpOTnGuH.js +1 -0
- package/dist/dashboard/assets/SortableList-DpOTnGuH.js.gz +0 -0
- package/dist/dashboard/assets/StudioPage-BNIDLiU6.js +31 -0
- package/dist/dashboard/assets/StudioPage-BNIDLiU6.js.gz +0 -0
- package/dist/dashboard/assets/ToolIcon-K1ckcDKg.js.gz +0 -0
- package/dist/dashboard/assets/{UsagePage-Djes-Epy.js → UsagePage-BAFaSDQV.js} +14 -14
- package/dist/dashboard/assets/UsagePage-BAFaSDQV.js.gz +0 -0
- package/dist/dashboard/assets/api-keys-BETfaMYZ.js +1 -0
- package/dist/dashboard/assets/api-keys-BETfaMYZ.js.gz +0 -0
- package/dist/dashboard/assets/app-BLCvGdzb.css +2 -0
- package/dist/dashboard/assets/app-BLCvGdzb.css.gz +0 -0
- package/dist/dashboard/assets/{app-BDJWMThu.js → app-Cjq7nrwu.js} +3 -3
- package/dist/dashboard/assets/app-Cjq7nrwu.js.gz +0 -0
- package/dist/dashboard/assets/arrow-left-CpBxkoxI.js.gz +0 -0
- package/dist/dashboard/assets/arrow-right-Dl5yKnp8.js.gz +0 -0
- package/dist/dashboard/assets/{assert-Bwh6DJTK.js → assert-7J6_LVD3.js} +1 -1
- package/dist/dashboard/assets/assert-7J6_LVD3.js.gz +0 -0
- package/dist/dashboard/assets/backup-file-gdKIlg8U.js.gz +0 -0
- package/dist/dashboard/assets/{badge-BwmwEOgA.js → badge-BTyGk_DL.js} +1 -1
- package/dist/dashboard/assets/badge-BTyGk_DL.js.gz +0 -0
- package/dist/dashboard/assets/{banner-BKBfKTqn.js → banner-bujTWYM4.js} +1 -1
- package/dist/dashboard/assets/banner-bujTWYM4.js.gz +0 -0
- package/dist/dashboard/assets/brain-Cwed_72z.js.gz +0 -0
- package/dist/dashboard/assets/{card-BTdbRFFg.js → card-B0Bnx5CA.js} +1 -1
- package/dist/dashboard/assets/card-B0Bnx5CA.js.gz +0 -0
- package/dist/dashboard/assets/check-D69FzdvC.js.gz +0 -0
- package/dist/dashboard/assets/chevron-right-BXIy5l3h.js.gz +0 -0
- package/dist/dashboard/assets/circle-alert-CntYHV5v.js.gz +0 -0
- package/dist/dashboard/assets/circle-check-BU3v_mFW.js.gz +0 -0
- package/dist/dashboard/assets/cli-tools-DE2ug812.js +1 -0
- package/dist/dashboard/assets/cli-tools-DE2ug812.js.gz +0 -0
- package/dist/dashboard/assets/clipboard-button-R_rArH8S.js +1 -0
- package/dist/dashboard/assets/clipboard-button-R_rArH8S.js.gz +0 -0
- package/dist/dashboard/assets/cog-CdWhsajs.js.gz +0 -0
- package/dist/dashboard/assets/copy-ngmQ9zcZ.js.gz +0 -0
- package/dist/dashboard/assets/{dialog-iocKA3jr.js → dialog-BWIP_EvW.js} +1 -1
- package/dist/dashboard/assets/dialog-BWIP_EvW.js.gz +0 -0
- package/dist/dashboard/assets/dialog-actions-B1axpEg7.js.gz +0 -0
- package/dist/dashboard/assets/download-A0SW9OCW.js.gz +0 -0
- package/dist/dashboard/assets/download-dRFo5_Wu.js.gz +0 -0
- package/dist/dashboard/assets/{drawer-CDKOTZdY.js → drawer-BKcgVugF.js} +1 -1
- package/dist/dashboard/assets/drawer-BKcgVugF.js.gz +0 -0
- package/dist/dashboard/assets/entry-7dpgvpJ3.js +4 -0
- package/dist/dashboard/assets/entry-7dpgvpJ3.js.gz +0 -0
- package/dist/dashboard/assets/entry-CcWkGR4a.js +1 -0
- package/dist/dashboard/assets/entry-CcWkGR4a.js.gz +0 -0
- package/dist/dashboard/assets/entry-kTiTFrvh.js +1 -0
- package/dist/dashboard/assets/entry-kTiTFrvh.js.gz +0 -0
- package/dist/dashboard/assets/eye-C_hawfH4.js.gz +0 -0
- package/dist/dashboard/assets/eye-off-Bk5g2luF.js.gz +0 -0
- package/dist/dashboard/assets/fingerprint-pattern-BWuHtbW4.js.gz +0 -0
- package/dist/dashboard/assets/gauge-BbIMy7MB.js.gz +0 -0
- package/dist/dashboard/assets/github-badge-Booc5mNe.js +1 -0
- package/dist/dashboard/assets/github-badge-Booc5mNe.js.gz +0 -0
- package/dist/dashboard/assets/image-BPaouViG.js.gz +0 -0
- package/dist/dashboard/assets/{index-C4hXfAMs.js → index-D70pChfn.js} +2 -2
- package/dist/dashboard/assets/index-D70pChfn.js.gz +0 -0
- package/dist/dashboard/assets/{inline-DCejSLlA.js → inline-D1TCqM2D.js} +1 -1
- package/dist/dashboard/assets/inline-D1TCqM2D.js.gz +0 -0
- package/dist/dashboard/assets/{input-Bn4_kNav.js → input-B9oyU93y.js} +1 -1
- package/dist/dashboard/assets/input-B9oyU93y.js.gz +0 -0
- package/dist/dashboard/assets/jsx-runtime-CXUMngI_.js.gz +0 -0
- package/dist/dashboard/assets/key-round-UkavsGxp.js.gz +0 -0
- package/dist/dashboard/assets/layers-2-glBbjl.js.gz +0 -0
- package/dist/dashboard/assets/{layout-Bv-NxqZ5.js → layout-BArzXirQ.js} +1 -1
- package/dist/dashboard/assets/layout-BArzXirQ.js.gz +0 -0
- package/dist/dashboard/assets/{list-row-BLA0sldD.js → list-row-BVZzaoHF.js} +1 -1
- package/dist/dashboard/assets/list-row-BVZzaoHF.js.gz +0 -0
- package/dist/dashboard/assets/{live-YlifPYox.js → live-EmuIayqp.js} +1 -1
- package/dist/dashboard/assets/live-EmuIayqp.js.gz +0 -0
- package/dist/dashboard/assets/log-in-BmRjy60c.js.gz +0 -0
- package/dist/dashboard/assets/message-circle-CCxGwRvv.js.gz +0 -0
- package/dist/dashboard/assets/{model-bans-CVvHZ-qz.js → model-bans-CSPQ9xB0.js} +1 -1
- package/dist/dashboard/assets/model-bans-CSPQ9xB0.js.gz +0 -0
- package/dist/dashboard/assets/mutation-BkoLM5Ba.js +1 -0
- package/dist/dashboard/assets/mutation-BkoLM5Ba.js.gz +0 -0
- package/dist/dashboard/assets/numbers-CFL4_Dqc.js.gz +0 -0
- package/dist/dashboard/assets/pencil-768ysRAr.js.gz +0 -0
- package/dist/dashboard/assets/plus-DIdX_g-x.js.gz +0 -0
- package/dist/dashboard/assets/power-off-Yjw9GMJh.js +1 -0
- package/dist/dashboard/assets/power-off-Yjw9GMJh.js.gz +0 -0
- package/dist/dashboard/assets/privacy-mode-GM8bej85.js +1 -0
- package/dist/dashboard/assets/privacy-mode-GM8bej85.js.gz +0 -0
- package/dist/dashboard/assets/providers/agentrouter.svg.gz +0 -0
- package/dist/dashboard/assets/providers/aihubmix.svg.gz +0 -0
- package/dist/dashboard/assets/providers/alibaba-coding-plan.svg.gz +0 -0
- package/dist/dashboard/assets/providers/alibaba.svg.gz +0 -0
- package/dist/dashboard/assets/providers/antigravity.svg.gz +0 -0
- package/dist/dashboard/assets/providers/bai.svg.gz +0 -0
- package/dist/dashboard/assets/providers/blackbox.svg.gz +0 -0
- package/dist/dashboard/assets/providers/claude-code.svg.gz +0 -0
- package/dist/dashboard/assets/providers/exa.svg.gz +0 -0
- package/dist/dashboard/assets/providers/gmi-cloud.svg.gz +0 -0
- package/dist/dashboard/assets/providers/inferhub.svg.gz +0 -0
- package/dist/dashboard/assets/providers/muse.svg.gz +0 -0
- package/dist/dashboard/assets/providers/nous-research.svg.gz +0 -0
- package/dist/dashboard/assets/providers/openai-light.svg.gz +0 -0
- package/dist/dashboard/assets/providers/parallel.svg.gz +0 -0
- package/dist/dashboard/assets/providers/tokenharbor.svg.gz +0 -0
- package/dist/dashboard/assets/providers/zai-coding-plan.svg.gz +0 -0
- package/dist/dashboard/assets/{query-keys-ROf-g1Wi.js → query-keys-D7wX2vM5.js} +1 -1
- package/dist/dashboard/assets/query-keys-D7wX2vM5.js.gz +0 -0
- package/dist/dashboard/assets/quota-DZGyp0N5.js.gz +0 -0
- package/dist/dashboard/assets/refresh-cw-BqJFk4sU.js.gz +0 -0
- package/dist/dashboard/assets/rotate-ccw-CufcqITi.js.gz +0 -0
- package/dist/dashboard/assets/route-CNSNj9Zm.js.gz +0 -0
- package/dist/dashboard/assets/{routing-jntw9-Ui.js → routing-BExgxxBU.js} +1 -1
- package/dist/dashboard/assets/routing-BExgxxBU.js.gz +0 -0
- package/dist/dashboard/assets/scaling-nWE4Cx8f.js.gz +0 -0
- package/dist/dashboard/assets/search-JOKus9rb.js.gz +0 -0
- package/dist/dashboard/assets/{select-CGUuTQmj.js → select-C9mMoEpJ.js} +1 -1
- package/dist/dashboard/assets/select-C9mMoEpJ.js.gz +0 -0
- package/dist/dashboard/assets/settings-C4_Gn_wq.js +1 -0
- package/dist/dashboard/assets/settings-C4_Gn_wq.js.gz +0 -0
- package/dist/dashboard/assets/shield-check-DVS0Foqh.js.gz +0 -0
- package/dist/dashboard/assets/sliders-horizontal-ClG7dBeJ.js.gz +0 -0
- package/dist/dashboard/assets/sparkles-BRaRUxAU.js.gz +0 -0
- package/dist/dashboard/assets/{stack-C1kTcOmP.js → stack-Ca5HxI5i.js} +1 -1
- package/dist/dashboard/assets/stack-Ca5HxI5i.js.gz +0 -0
- package/dist/dashboard/assets/{state-DHKdg-pm.js → state-CzUPfLXo.js} +1 -1
- package/dist/dashboard/assets/state-CzUPfLXo.js.gz +0 -0
- package/dist/dashboard/assets/stream-retry-5QnVuSSo.js.gz +0 -0
- package/dist/dashboard/assets/{switch-DIDeAiz9.js → switch-DOUIky_i.js} +1 -1
- package/dist/dashboard/assets/switch-DOUIky_i.js.gz +0 -0
- package/dist/dashboard/assets/terminal-Bd4ee8TA.js +1 -0
- package/dist/dashboard/assets/terminal-Bd4ee8TA.js.gz +0 -0
- package/dist/dashboard/assets/toast-C76WrMhc.js +2 -0
- package/dist/dashboard/assets/toast-C76WrMhc.js.gz +0 -0
- package/dist/dashboard/assets/tokens-DDxMbSRL.js.gz +0 -0
- package/dist/dashboard/assets/trash-Cppn5c3R.js.gz +0 -0
- package/dist/dashboard/assets/use-clipboard-B0Sy03fE.js.gz +0 -0
- package/dist/dashboard/assets/use-presence-BSZEBx7U.js.gz +0 -0
- package/dist/dashboard/assets/use-reduced-motion-C4B0R6Sz.js.gz +0 -0
- package/dist/dashboard/assets/use-timeout-BwcBBRrT.js.gz +0 -0
- package/dist/dashboard/assets/{useMutation-DVmwOKU-.js → useMutation-D87FZwH0.js} +1 -1
- package/dist/dashboard/assets/useMutation-D87FZwH0.js.gz +0 -0
- package/dist/dashboard/assets/wrench-B6E1oEuY.js.gz +0 -0
- package/dist/dashboard/index.html +1 -1
- package/dist/dashboard/index.html.gz +0 -0
- package/dist/dashboard/precompressed-assets.json +123 -0
- package/migrations/full-postgres/0013_add_providers_tenant_id_index.sql +22 -0
- package/migrations/full-postgres/0014_add_provider_accounts_tenant_id_index.sql +21 -0
- package/migrations/lite-sqlite3/0000_baseline.sql +4 -2
- package/migrations/lite-sqlite3/0013_add_providers_tenant_id_index.sql +4 -0
- package/migrations/lite-sqlite3/0014_add_provider_accounts_tenant_id_index.sql +4 -0
- package/package.json +25 -30
- package/scripts/cli/{carte-launcher.cjs → bin/carte.cjs} +8 -8
- package/scripts/cli/{cli-launcher.cjs → bin/cartethyia.cjs} +167 -134
- package/scripts/cli/command/admin.ts +65 -0
- package/scripts/cli/command/console-menu.ts +227 -0
- package/scripts/cli/{doctor.ts → command/doctor.ts} +257 -258
- package/scripts/cli/{setup.ts → command/setup.ts} +8 -12
- package/scripts/cli/command/start.ts +13 -0
- package/scripts/cli/command/tray.ts +165 -0
- package/scripts/cli/command/update.ts +23 -0
- package/scripts/cli/{runtime-state.ts → gateway/drain-token.ts} +78 -78
- package/scripts/cli/gateway/spawn.ts +101 -0
- package/scripts/cli/gateway/stop.ts +51 -0
- package/scripts/cli/main.ts +94 -0
- package/scripts/cli/support/bun.ts +27 -0
- package/scripts/cli/support/env.ts +99 -0
- package/scripts/cli/support/platform.ts +64 -0
- package/scripts/cli/support/services.ts +88 -0
- package/scripts/cli/support/startup-signal.ts +23 -0
- package/scripts/cli/{version.ts → support/version.ts} +1 -1
- package/scripts/cli/tray/hidden-window.vbs +28 -0
- package/scripts/cli/{tray.ts → tray/index.ts} +3 -3
- package/scripts/cli/{tray.ps1 → tray/windows.ps1} +107 -98
- package/scripts/cli/ui/background.ts +49 -0
- package/src/boot/app.ts +3 -1
- package/src/boot/dependencies.ts +36 -13
- package/src/config/providers.ts +27 -1
- package/src/config/spec.ts +11 -0
- package/src/console/backup/routes.ts +8 -0
- package/src/console/cli-tools/contracts.ts +6 -6
- package/src/console/console-router.ts +5 -3
- package/src/console/dashboard-assets.ts +81 -11
- package/src/console/observability/contracts.ts +54 -22
- package/src/console/observability/routes.ts +31 -6
- package/src/console/observability/store.ts +68 -28
- package/src/console/providers/catalog/public-model-store.ts +91 -60
- package/src/console/providers/catalog/store.ts +5 -1
- package/src/console/quota/account-quota-tenant.ts +9 -6
- package/src/console/response-compression.ts +69 -2
- package/src/console/routing/pools/probe-verdict.ts +72 -0
- package/src/console/share/share-router.ts +7 -4
- package/src/console/share/share-stats.ts +12 -5
- package/src/console/shared/read-through-cache.ts +133 -7
- package/src/console/updates/repository-updates.ts +39 -34
- package/src/network/outbound-fetch.ts +113 -25
- package/src/network/tls/bun-client-hello.ts +112 -0
- package/src/observability/event-log.ts +29 -8
- package/src/observability/metrics.ts +40 -13
- package/src/observability/runtime-metrics.ts +7 -0
- package/src/persistence/schema.ts +40 -2
- package/src/protocol/response/codex.ts +9 -75
- package/src/protocol/tool-identity.ts +43 -9
- package/src/providers/authentication/jwt-validator.ts +130 -187
- package/src/providers/authentication/oauth-flow-store.ts +16 -9
- package/src/providers/default-registry.ts +4 -0
- package/src/providers/discovery/catalog/catalog-format.ts +20 -0
- package/src/providers/discovery/models-dev-catalog.ts +39 -22
- package/src/providers/discovery/probe-wire.ts +29 -5
- package/src/providers/integrations/buddy/buddy-catalog-shared.ts +3 -2
- package/src/providers/integrations/buddy/buddy-cli-headers.ts +88 -0
- package/src/providers/integrations/buddy/buddy-conversation-headers.ts +4 -0
- package/src/providers/integrations/buddy/buddy-discovery-shared.ts +33 -1
- package/src/providers/integrations/buddy/buddy-identity.ts +46 -0
- package/src/providers/integrations/buddy/buddy-oauth-shared.ts +37 -1
- package/src/providers/integrations/buddy/buddy-usage-store.ts +40 -5
- package/src/providers/integrations/buddy/codebuddy/provider.ts +2 -2
- package/src/providers/integrations/buddy/codebuddy/shared.ts +106 -73
- package/src/providers/integrations/buddy/workbuddy/cn-provider.ts +5 -2
- package/src/providers/integrations/buddy/workbuddy/quota.ts +172 -159
- package/src/providers/integrations/buddy/workbuddy/shared.ts +200 -171
- package/src/providers/integrations/codex/codex.ts +5 -8
- package/src/providers/integrations/factory/factory-oauth.ts +7 -11
- package/src/providers/integrations/opencode/opencode-go-quota.ts +130 -0
- package/src/providers/integrations/opencode/provider.ts +42 -3
- package/src/providers/integrations/qoder/qoder-oauth.ts +3 -9
- package/src/providers/integrations/shared/install-id.ts +29 -2
- package/src/providers/operations/client-versions.ts +11 -1
- package/src/providers/operations/model-catalog-cache.ts +18 -3
- package/src/providers/operations/provider-catalog-service.ts +76 -0
- package/src/transport/dispatch/attempt-finalize.ts +7 -1
- package/src/transport/dispatch/attempt-loop.ts +9 -7
- package/src/transport/dispatch/empty-stream.ts +17 -26
- package/src/transport/failure-policy.ts +20 -0
- package/src/transport/routing/route-catalog.ts +42 -3
- package/src/transport/surface/chat/encode.ts +18 -31
- package/src/transport/surface/messages/stream.ts +3 -2
- package/src/transport/translation/tool-repair.ts +37 -16
- package/src/workers/account-identity-sweep.ts +14 -12
- package/src/workers/daily-checkin.ts +62 -0
- package/src/workers/quota-refresh-sweep.ts +27 -2
- package/dist/dashboard/assets/CombosPage-B7ETkfVH.js +0 -1
- package/dist/dashboard/assets/ConsoleLogPage-AisQzCI1.js +0 -1
- package/dist/dashboard/assets/HealthEventsModal-BNflDm_f.js +0 -1
- package/dist/dashboard/assets/ModelPicker-CAiPR5Vd.js +0 -1
- package/dist/dashboard/assets/ProviderDetailPage-BK8i5B5X.js +0 -3
- package/dist/dashboard/assets/ProvidersPage-CvCVgm1e.js +0 -1
- package/dist/dashboard/assets/ProxyPage-DjabkuzP.js +0 -7
- package/dist/dashboard/assets/QuotaPage-Dxe0B0iu.js +0 -1
- package/dist/dashboard/assets/SetupPage-BaD4P_jW.js +0 -1
- package/dist/dashboard/assets/SortableList-Bol1ASmI.js +0 -1
- package/dist/dashboard/assets/StudioPage-CLP4le3U.js +0 -31
- package/dist/dashboard/assets/api-keys-CjIGQhe7.js +0 -1
- package/dist/dashboard/assets/app-Cjgo4-Lf.css +0 -2
- package/dist/dashboard/assets/cli-tools-DccaOfhX.js +0 -1
- package/dist/dashboard/assets/clipboard-button-DQmMikNQ.js +0 -1
- package/dist/dashboard/assets/entry-Cpi0rph1.js +0 -4
- package/dist/dashboard/assets/entry-Dm3PpDCO.js +0 -1
- package/dist/dashboard/assets/entry-keNDZ_Wz.js +0 -1
- package/dist/dashboard/assets/github-badge-BuAJr8oU.js +0 -1
- package/dist/dashboard/assets/mutation-BIizFZav.js +0 -1
- package/dist/dashboard/assets/privacy-mode-CQjbZ3xk.js +0 -1
- package/dist/dashboard/assets/settings-BAS6QbmJ.js +0 -1
- package/dist/dashboard/assets/terminal-C9mZ4Ugm.js +0 -1
- package/dist/dashboard/assets/toast-DKAdP2mo.js +0 -2
- package/scripts/cli/cli.ts +0 -771
- package/scripts/operations/probe-egress.ts +0 -335
- package/scripts/operations/restart.ts +0 -120
- package/scripts/shared/env.ts +0 -269
- /package/{tray-assets → scripts/cli/tray/assets}/cartethyia.ico +0 -0
- /package/{tray-assets → scripts/cli/tray/assets}/cartethyia.png +0 -0
- /package/scripts/cli/{menu.ts → ui/prompt.ts} +0 -0
- /package/scripts/cli/{wordmark.ts → ui/wordmark.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{a as i,o as a,s as o}from"./app-BDJWMThu.js";import{n as s,t as c}from"./brain-Cwed_72z.js";import{t as l}from"./chevron-right-BXIy5l3h.js";import{t as u}from"./circle-check-BU3v_mFW.js";import{_ as ee,c as d,f as te,g as f,h as p,l as ne,n as m,o as re,p as ie,s as h,t as g,u as _}from"./toast-DKAdP2mo.js";import{t as v}from"./eye-C_hawfH4.js";import{n as ae,t as oe}from"./github-badge-BuAJr8oU.js";import{n as se,r as ce,t as le}from"./state-DHKdg-pm.js";import{t as ue}from"./key-round-UkavsGxp.js";import{n as de,r as fe,t as y}from"./clipboard-button-DQmMikNQ.js";import{t as pe}from"./scaling-nWE4Cx8f.js";import{t as b}from"./wrench-B6E1oEuY.js";import{n as me,t as x}from"./card-BTdbRFFg.js";import{n as he}from"./download-dRFo5_Wu.js";import{a as S,l as C,m as w,o as T,s as E}from"./tokens-DDxMbSRL.js";import{a as D}from"./numbers-CFL4_Dqc.js";import{t as O}from"./stream-retry-5QnVuSSo.js";var k=e(`chart-column`,[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M18 17V9`,key:`2bz60n`}],[`path`,{d:`M13 17V5`,key:`1frdt8`}],[`path`,{d:`M8 17v-3`,key:`17ska0`}]]),ge=e(`heart`,[[`path`,{d:`M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5`,key:`mvr1a0`}]]),A=t(n(),1),j=o();function M(e){if(e===`link_expired_or_used`)return`This enrollment link has expired or has already been used.`;if(e===`key_unavailable`)return`The shared access template is no longer available.`;if(e===`link_not_found`)return`This enrollment link is unavailable.`;if(e===`link_disabled`)return`This share link's API key is paused. Ask whoever shared this link to re-enable it.`;if(e===`link_expired`)return`This share link has expired.`;if(e===`link_revoked`)return`This share link has been revoked.`}function N(e,t){let n=e.error;return M(typeof n==`string`?n:n?.code)??(typeof n==`string`?n:n?.message)??e.message??t}function P(e){let t=e.error;return(typeof t==`string`?t:t?.code)??null}function _e(e,t){let n=t?.streamEvent,[r,i]=(0,A.useState)({data:null,error:null,code:null,loading:!0});return(0,A.useEffect)(()=>{let t=!0,r=new AbortController,a,o,s=e=>{i({data:e,error:null,code:null,loading:!1})};if(n===void 0)return fetch(e,{signal:r.signal,credentials:`same-origin`,cache:`no-store`,referrerPolicy:`no-referrer`}).then(async e=>{let n=await e.json();if(t){if(!e.ok){i({data:null,error:N(n,`This enrollment link is unavailable.`),code:P(n),loading:!1});return}s(n)}}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||t&&i({data:null,error:`Unable to reach the Cartethyia gateway.`,code:null,loading:!1})}),()=>{t=!1,r.abort()};let c=!1,l=()=>{if(!t)return;let r=new EventSource(e);a=r,r.addEventListener(n,e=>{if(t)try{s(JSON.parse(e.data))}catch{}}),r.addEventListener(`error`,()=>{r.close(),t&&(c||(c=!0,i(e=>e.data===null?{...e,loading:!1}:e)),o=setTimeout(l,O))})};return l(),()=>{t=!1,a?.close(),clearTimeout(o)}},[e,n]),r}var F=r(),I=`max-h-168 w-full min-w-0 overflow-x-auto overflow-y-auto touch-pan-x touch-pan-y [&_thead_th]:sticky [&_thead_th]:top-0 [&_thead_th]:z-card [&_thead_th]:bg-surface-2`,L=`w-full border-collapse text-caption [&_th]:border-b [&_th]:border-inner-border [&_th]:px-5 [&_th]:py-3 [&_th]:text-left [&_th]:font-mono [&_th]:text-micro [&_th]:font-bold [&_th]:uppercase [&_th]:tracking-label [&_th]:text-text-tertiary [&_td]:border-b [&_td]:border-surface-muted [&_td]:px-5 [&_td]:py-4 [&_td]:text-text-secondary [&_tr:last-child_td]:border-b-0 [&_code]:overflow-hidden [&_code]:text-ellipsis [&_code]:whitespace-nowrap`,R=(0,A.createContext)({data:null,loading:!0,unit:S,cycleUnit:()=>void 0}),z=`cartethyia:share-token-unit`;function B(){try{let e=window.localStorage.getItem(z);if(e===null)return S;if(e===`auto`)return-1;let t=Number(e);return Number.isInteger(t)&&t>=0&&t<=S?t:S}catch{return S}}function V(e){return e===-1?0:e>=S?-1:e+1}function H(e){return e===-1?`auto`:e>=S?`raw`:T[e]?.suffix??`auto`}function ve({path:e,children:t}){let n=_e(e,{streamEvent:`stats`}),[r,i]=(0,A.useState)(()=>typeof window>`u`?S:B()),a=(0,A.useCallback)(()=>{i(e=>{let t=V(e);try{window.localStorage.setItem(z,t===-1?`auto`:String(t))}catch{}return t})},[]);return(0,F.jsx)(R.Provider,{value:{data:n.data,loading:n.loading,unit:r,cycleUnit:a},children:t})}function U(){let{unit:e,cycleUnit:t}=(0,A.useContext)(R),n=H(e),r=H(V(e));return(0,F.jsxs)(`button`,{type:`button`,className:`ml-auto inline-flex min-h-6 items-center gap-1 rounded-chip border border-inner-border bg-surface-2 px-2 text-text-secondary font-mono text-micro font-bold uppercase tracking-[0.04em] cursor-pointer hover:border-accent hover:text-text-primary`,"aria-label":`Token unit: currently ${n}, switch to ${r}`,title:`Show ${r}`,onClick:t,children:[(0,F.jsx)(pe,{size:11,"aria-hidden":`true`}),n]})}function ye({policy:e}){let{data:t}=(0,A.useContext)(R);return(0,F.jsx)(xe,{policy:e,stats:t})}function be(){let{data:e,loading:t}=(0,A.useContext)(R);return(0,F.jsx)(Q,{stats:e,loading:t})}function W(){let{unit:e}=(0,A.useContext)(R);return(0,A.useCallback)(t=>w(t,e),[e])}function G(e){return Number.isFinite(e)?Math.max(0,Math.round(e)).toLocaleString():`—`}function K(e){return e===null||!Number.isFinite(e)||e<=0?`—`:`${Number(e.toFixed(1))} t/s`}function q(e){return e===null||!Number.isFinite(e)||e<=0?`—`:e>=1e3?`${Number((e/1e3).toFixed(1))}s`:`${Math.round(e)}ms`}function J(e){if(!e)return`—`;let t=new Date(e).getTime();if(!Number.isFinite(t))return`—`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`just now`;let r=Math.round(n/60);if(r<60)return`${r} min ago`;let i=Math.round(r/60);return i<24?`${i} h ago`:new Date(e).toLocaleDateString()}function Y(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:00`}function xe({policy:e,stats:t}){let n=W(),r=[{label:`Lifetime`,used:t?.totals?.totalTokens??0,limit:e.oneTimeLimit},{label:`Daily`,used:t?.totals?.todayTokens??0,limit:e.dailyLimit},{label:`Monthly`,used:t?.totals?.monthTokens??0,limit:e.monthlyLimit}],i=t?.recipients;return(0,F.jsxs)(`div`,{className:`mt-5 flex flex-col gap-6 border-t border-inner-border pt-9`,children:[r.map(e=>{let t=e.limit!==null&&e.limit>0,r=t?Math.min(1,e.used/e.limit):1;return(0,F.jsxs)(`div`,{className:`flex items-center gap-6 max-sm:flex-col max-sm:items-stretch max-sm:gap-3`,children:[(0,F.jsx)(`span`,{className:`w-39 shrink-0 text-text-secondary font-mono text-micro uppercase tracking-label max-sm:w-auto`,children:e.label}),(0,F.jsx)(`div`,{className:`relative h-4 flex-1 overflow-hidden rounded-tiny bg-teal max-sm:flex-none`,title:t?`${n(e.used)} of ${n(e.limit)} used`:`${n(e.used)} used (no limit set)`,children:t?(0,F.jsx)(`div`,{className:`h-full rounded-tiny bg-red transition-[width] duration-200`,style:{width:`${Math.round(r*100)}%`}}):null}),(0,F.jsxs)(`span`,{className:`whitespace-nowrap text-text-secondary font-mono text-micro [&>strong]:text-text-primary [&>strong]:font-semibold max-sm:self-start`,children:[(0,F.jsx)(`strong`,{children:n(e.used)}),t?` / ${n(e.limit)}`:` used`]})]},e.label)}),(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,F.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[`RPM `,e.requestsPerMinute??`unlimited`]}),(0,F.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[`Concurrent `,e.maxConcurrentRequests??`unlimited`]}),i?(0,F.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[i.active,` / `,i.total,` recipients active`]}):null,(0,F.jsx)(U,{})]})]})}function X({hourly:e}){let t=W(),n=Math.max(1,...e.map(e=>e.requests)),r=e.length*10,[i,a]=(0,A.useState)(null),o=(t,n)=>{let r=t.getBoundingClientRect();if(r.width===0||e.length===0)return null;let i=Math.floor((n-r.left)/r.width*e.length);return i>=0&&i<e.length?i:null},s=i===null?void 0:e[i];return(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`div`,{className:`mb-2 flex min-h-9 items-baseline gap-4 text-text-tertiary font-mono text-badge [&>strong]:text-text-primary [&>strong]:font-head [&>strong]:text-body-lg [&>strong]:font-semibold`,"aria-live":`polite`,children:s?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`strong`,{children:t(s.tokens)}),(0,F.jsxs)(`span`,{children:[Y(s.hour),` · `,G(s.requests),` req`]})]}):(0,F.jsx)(`span`,{children:`drag a bar`})}),(0,F.jsx)(`div`,{className:`cursor-crosshair touch-none`,onPointerEnter:e=>a(o(e.currentTarget,e.clientX)),onPointerMove:e=>a(o(e.currentTarget,e.clientX)),onPointerLeave:()=>a(null),children:(0,F.jsx)(`svg`,{className:`h-22 w-full`,viewBox:`0 0 ${r} 44`,preserveAspectRatio:`none`,role:`img`,"aria-label":`Requests per hour over the last 24 hours`,children:e.map((e,r)=>{let a=Math.round(e.requests/n*40);return(0,F.jsx)(`rect`,{className:`${e.requests===0?`fill-track`:`fill-teal`}${r===i?` fill-text-primary`:``}`,x:r*10+1,y:44-Math.max(2,a),width:7,height:Math.max(2,a),rx:1.5,children:(0,F.jsx)(`title`,{children:`${t(e.tokens)} tokens · ${G(e.requests)} requests`})},e.hour)})})}),(0,F.jsxs)(`div`,{className:`mt-1.5 flex justify-between text-text-tertiary font-mono text-micro`,children:[(0,F.jsx)(`span`,{children:e.length?Y(e[0].hour):``}),(0,F.jsx)(`span`,{children:`last 24h`}),(0,F.jsx)(`span`,{children:e.length?Y(e[e.length-1].hour):``})]})]})}function Z({value:e,max:t,label:n}){let r=t>0?Math.min(1,e/t):0;return(0,F.jsxs)(`div`,{className:`flex min-w-55 items-center gap-4 max-sm:min-w-32`,children:[(0,F.jsx)(`div`,{className:`h-3 min-w-0 flex-1 overflow-hidden rounded-tiny bg-surface-muted`,children:(0,F.jsx)(`div`,{className:`h-full rounded-tiny bg-teal`,style:{width:`${Math.round(r*100)}%`}})}),(0,F.jsx)(`span`,{className:`min-w-8 text-right font-mono text-micro text-text-secondary`,children:n})]})}function Q({stats:e,loading:t}){let[n,r]=(0,A.useState)(!1),i=W(),a=e?.totals,o=e?.models??[],s=e?.clientIps??[],c=Math.max(1,...o.map(e=>e.tokens)),u=Math.max(1,...s.map(e=>e.requests));return(0,F.jsxs)(x,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg p-5 backdrop-blur-md backdrop-saturate-150`,children:[(0,F.jsxs)(`button`,{type:`button`,className:`group flex w-full cursor-pointer items-center gap-3 bg-transparent p-0 text-left`,"aria-expanded":n,onClick:()=>r(e=>!e),children:[(0,F.jsx)(l,{size:14,className:`shrink-0 text-text-secondary transition-transform duration-200${n?` rotate-90`:``}`,"aria-hidden":`true`}),(0,F.jsx)(`span`,{className:`text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150 group-hover:text-text-primary`,children:`STATS & ACTIVITY`}),(0,F.jsxs)(`span`,{className:`ml-auto flex flex-wrap items-center gap-2 text-text-tertiary font-mono text-micro max-medium:hidden`,children:[(0,F.jsxs)(`span`,{children:[s.length,` IPs`]}),(0,F.jsx)(`span`,{children:`·`}),(0,F.jsxs)(`span`,{children:[o.length,` models`]}),(0,F.jsx)(`span`,{children:`·`}),(0,F.jsxs)(`span`,{children:[G(a?.requests??0),` req`]})]})]}),n?(0,F.jsx)(`div`,{className:`mt-5 flex flex-col gap-5`,children:t&&!e?(0,F.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`Loading activity…`}):e?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`grid grid-cols-4 gap-5 max-wide:grid-cols-2 max-narrow:grid-cols-1`,children:[(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,F.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Requests`}),(0,F.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:G(a?.requests??0)}),(0,F.jsxs)(`span`,{className:`text-text-secondary text-micro`,children:[G(a?.errors??0),` errors`]})]}),(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,F.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Tokens`}),(0,F.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:i(a?.totalTokens??0)}),(0,F.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`all time`})]}),(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,F.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Last hour`}),(0,F.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:G(a?.lastHourRequests??0)}),(0,F.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`requests in 60 min`})]}),(0,F.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,F.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Models`}),(0,F.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:o.length}),(0,F.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`in use`})]})]}),(0,F.jsx)(X,{hourly:e.hourly}),(0,F.jsxs)(`section`,{"aria-label":`Top models`,children:[(0,F.jsx)(`div`,{className:`flex items-center justify-between gap-6`,children:(0,F.jsxs)(`h3`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150`,children:[(0,F.jsx)(k,{size:13,"aria-hidden":`true`}),` TOP MODELS`]})}),o.length===0?(0,F.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`No model traffic yet.`}):(0,F.jsx)(`div`,{className:I,children:(0,F.jsxs)(`table`,{className:L,children:[(0,F.jsx)(`thead`,{children:(0,F.jsxs)(`tr`,{children:[(0,F.jsx)(`th`,{scope:`col`,"aria-label":`Rank`}),(0,F.jsx)(`th`,{scope:`col`,children:`Model`}),(0,F.jsx)(`th`,{scope:`col`,className:`text-right`,children:`Req`}),(0,F.jsx)(`th`,{scope:`col`,className:`text-right`,title:`Average output tokens per second`,children:`Avg t/s`}),(0,F.jsx)(`th`,{scope:`col`,className:`text-right`,title:`Average time to first token`,children:`TTFT`}),(0,F.jsx)(`th`,{scope:`col`,children:`Tokens`})]})}),(0,F.jsx)(`tbody`,{children:o.map((e,t)=>(0,F.jsxs)(`tr`,{children:[(0,F.jsx)(`td`,{className:`w-13 font-mono text-micro text-text-tertiary`,children:t+1}),(0,F.jsx)(`td`,{children:(0,F.jsx)(`span`,{className:`flex min-w-0 flex-col gap-1 [&_code]:overflow-hidden [&_code]:text-ellipsis [&_code]:whitespace-nowrap [&_code]:text-text-primary [&_code]:text-caption [&_span]:font-mono [&_span]:text-micro [&_span]:text-text-tertiary`,children:(0,F.jsx)(`code`,{title:e.modelId,children:e.modelId})})}),(0,F.jsx)(`td`,{className:`text-right`,children:G(e.requests)}),(0,F.jsx)(`td`,{className:`text-right`,children:K(e.avgTokensPerSec)}),(0,F.jsx)(`td`,{className:`text-right`,children:q(e.avgTtfbMs)}),(0,F.jsx)(`td`,{children:(0,F.jsx)(Z,{value:e.tokens,max:c,label:i(e.tokens)})})]},e.modelId))})]})})]}),(0,F.jsxs)(`section`,{"aria-label":`Client IPs`,children:[(0,F.jsx)(`div`,{className:`flex items-center justify-between gap-6`,children:(0,F.jsxs)(`h3`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150`,children:[(0,F.jsx)(p,{size:13,"aria-hidden":`true`}),` CLIENT IPS`]})}),s.length===0?(0,F.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`No client addresses recorded yet.`}):(0,F.jsx)(`div`,{className:I,children:(0,F.jsxs)(`table`,{className:L,children:[(0,F.jsx)(`thead`,{children:(0,F.jsxs)(`tr`,{children:[(0,F.jsx)(`th`,{scope:`col`,children:`Address`}),(0,F.jsx)(`th`,{scope:`col`,children:`Client`}),(0,F.jsx)(`th`,{scope:`col`,className:`text-right`,children:`Req`}),(0,F.jsx)(`th`,{scope:`col`,children:`Tokens`}),(0,F.jsx)(`th`,{scope:`col`,children:`Last seen`})]})}),(0,F.jsx)(`tbody`,{children:s.map(e=>(0,F.jsxs)(`tr`,{children:[(0,F.jsx)(`td`,{children:(0,F.jsx)(`code`,{children:e.ip})}),(0,F.jsx)(`td`,{children:e.clientType?(0,F.jsx)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro text-text-secondary`,children:e.clientType}):(0,F.jsx)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro italic text-text-tertiary`,children:`unknown`})}),(0,F.jsx)(`td`,{className:`text-right`,children:G(e.requests)}),(0,F.jsx)(`td`,{children:(0,F.jsx)(Z,{value:e.requests,max:u,label:i(e.tokens)})}),(0,F.jsx)(`td`,{children:J(e.lastSeenAt)})]},e.ip))})]})})]})]}):(0,F.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`Activity is unavailable right now.`})}):null]})}var Se=`cartethyia-share-keys`,$=`issued-keys`,Ce=1;function we(){return new Promise((e,t)=>{if(typeof indexedDB>`u`){t(Error(`IndexedDB is unavailable`));return}let n=indexedDB.open(Se,Ce);n.onupgradeneeded=()=>{n.result.objectStoreNames.contains($)||n.result.createObjectStore($)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Could not open share-key storage`))})}function Te(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.key==`string`&&typeof t.keyId==`string`&&typeof t.keyPrefix==`string`&&typeof t.createdAt==`string`}async function Ee(e){let t=await we();return await new Promise((n,r)=>{let i=t.transaction($,`readonly`).objectStore($).get(e);i.onsuccess=()=>n(Te(i.result)?i.result:null),i.onerror=()=>r(i.error??Error(`Could not read share-key storage`))})}async function De(e,t){let n=await we();await new Promise((r,i)=>{let a=n.transaction($,`readwrite`);a.objectStore($).put(t,e),a.oncomplete=()=>r(),a.onerror=()=>i(a.error??Error(`Could not save share key in this browser`)),a.onabort=()=>i(a.error??Error(`Could not save share key in this browser`))})}async function Oe(e){let t=await we();await new Promise((n,r)=>{let i=t.transaction($,`readwrite`);i.objectStore($).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error??Error(`Could not clear share-key storage`)),i.onabort=()=>r(i.error??Error(`Could not clear share-key storage`))})}function ke(e){return typeof e.error==`string`?e.error:e.error?.message??e.message??`Unable to generate an API key.`}function Ae(e){let t=e.replace(/\/$/,``);return t.slice(t.lastIndexOf(`/`)+1)}var je=20;function Me({id:e,label:t,info:n,canProbe:r,probing:i,onProbe:a,result:o}){let l=(n?.capabilities?.input??[]).some(e=>e===`image`||e===`vision`);return(0,F.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2.5 rounded-control border border-inner-border bg-surface-2 p-3`,children:[(0,F.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,F.jsx)(`span`,{className:`inline-flex size-13 shrink-0 items-center justify-center rounded-lg bg-teal-soft text-teal`,"aria-hidden":`true`,children:(0,F.jsx)(s,{size:14})}),(0,F.jsx)(`span`,{className:`min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap font-mono text-caption font-semibold leading-[1.35] text-text-primary`,title:e,children:t})]}),(0,F.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-text-secondary text-badge`,children:[(0,F.jsxs)(`span`,{className:`inline-flex gap-1 [&>span]:inline-flex`,children:[n?.reasoning?(0,F.jsx)(`span`,{title:`Reasoning`,"aria-label":`Reasoning`,className:`text-purple`,children:(0,F.jsx)(c,{size:12})}):null,l?(0,F.jsx)(`span`,{title:`Vision`,"aria-label":`Vision`,className:`text-status-info`,children:(0,F.jsx)(v,{size:12})}):null,n?.toolCall?(0,F.jsx)(`span`,{title:`Tool calling`,"aria-label":`Tool calling`,className:`text-orange`,children:(0,F.jsx)(b,{size:12})}):null,n?.webSearch?(0,F.jsx)(`span`,{title:`Web search`,"aria-label":`Web search`,className:`text-teal`,children:(0,F.jsx)(p,{size:12})}):null]}),(0,F.jsxs)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-nowrap`,children:[n?.contextLength==null?(0,F.jsx)(`span`,{title:E,className:`cursor-help`,children:`n/a ctx`}):`${C(n.contextLength)} ctx`,` · `,n?.maxOutputTokens==null?(0,F.jsx)(`span`,{title:E,className:`cursor-help`,children:`n/a out`}):`${C(n.maxOutputTokens)} out`]})]}),o?.ok?(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 font-mono text-badge text-text-secondary [&>strong]:font-sans [&>strong]:text-green`,role:`status`,children:[(0,F.jsx)(`strong`,{children:`OK`}),(0,F.jsxs)(`span`,{children:[`TTFT `,D(o.ttftMs)]}),(0,F.jsxs)(`span`,{children:[`Done `,D(o.totalMs)]})]}):null,(0,F.jsxs)(`div`,{className:`mt-auto grid min-w-0 grid-cols-2 items-center gap-4 [&>*]:w-full [&>*]:min-w-0 [&_.btn]:w-full [&_.btn]:min-w-0`,children:[r?(0,F.jsx)(m,{variant:`secondary`,size:`sm`,icon:o?.ok?(0,F.jsx)(`span`,{className:`inline-flex text-green`,children:(0,F.jsx)(u,{size:13})}):(0,F.jsx)(f,{size:13}),loading:i,disabled:i,onClick:()=>a(e),title:o?.ok?`Last test passed in ${D(o.totalMs)} — click to re-test`:o?`Last test failed${o.status===null?``:` with HTTP ${o.status}`} — click to re-test`:`Test this model using the shared API key`,children:i?`Testing…`:o?.ok?`Done ${D(o.totalMs)}`:o?`Failed${o.status===null?``:` ${o.status}`}`:`Test`}):null,(0,F.jsx)(y,{value:e,size:`sm`,variant:`secondary`,label:`Copy`,copiedLabel:`Copied`,"aria-label":`Copy ${e}`,title:`Copy ${e}`})]})]})}function Ne(){let e=typeof window>`u`?`/share`:window.location.pathname.replace(/\/$/,``),t=`${e}/data`,n=`${e}/issue`,r=typeof window>`u`?``:Ae(e),o=typeof window>`u`?``:window.location.origin,c=_e(t),[l,u]=(0,A.useState)(null),[f,_]=(0,A.useState)(null),[v,pe]=(0,A.useState)(``),[b,S]=(0,A.useState)(null),[C,w]=(0,A.useState)(!1),[T,E]=(0,A.useState)(null),[D,O]=(0,A.useState)(()=>new Set),[k,j]=(0,A.useState)(()=>new Map),M=(0,A.useRef)(new Map),[N,P]=(0,A.useState)(!1),I=(0,A.useRef)(null),L=(0,A.useRef)(null);i({open:N,mounted:N,panelRef:I,onClose:()=>P(!1)});let[R,z]=(0,A.useState)(()=>d(`dark`)),[B,V]=(0,A.useState)(!1),[H,U]=(0,A.useState)(`raw`);(0,A.useEffect)(()=>{let e=()=>V(window.scrollY>24);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),(0,A.useEffect)(()=>{document.title=`Cartethyia — Shared access`,z(d(`dark`)),re(d(`dark`))},[]);let W=c.data?.kind===`enroll`?c.data:null;(0,A.useEffect)(()=>{let e=!0;if(u(null),_(null),S(null),!r||!W){c.error&&Oe(r).catch(()=>void 0);return}return Ee(r).then(t=>{e&&t&&(_(t),u(null))}).catch(()=>{e&&S(`This browser could not read the stored key. Issue a new key only if this enrollment permits one.`)}),()=>{e=!1}},[r,W,c.error]);let G=async()=>{w(!0),E(null),S(null);try{let e=await fetch(n,{method:`POST`,credentials:`same-origin`,cache:`no-store`,referrerPolicy:`no-referrer`,headers:{"content-type":`application/json`},body:JSON.stringify(v.trim()?{nameHint:v.trim().slice(0,je)}:{})}),t=await e.json();if(!e.ok){E(ke(t));return}let i=t;if(_(null),u(i),!r)return;try{await De(r,{key:i.key,keyId:i.keyId,keyPrefix:i.keyPrefix,createdAt:i.createdAt}),_({key:i.key,keyId:i.keyId,keyPrefix:i.keyPrefix,createdAt:i.createdAt}),u(null)}catch{S(`Your key was issued, but this browser could not save it. Copy it now: refreshing will not restore it.`)}}catch{E(`Unable to reach the Cartethyia gateway. Please try again.`)}finally{w(!1)}},K=f??l,q=c.data,J=q?.kind===`handoff`?!!q.key:!!K?.key,Y=()=>{let e=L.current;e&&(e.scrollIntoView({behavior:`smooth`,block:`center`}),e.focus({preventScroll:!0}))},xe=async e=>{let t=q?.kind===`handoff`?q.key:(f??l)?.key;if(D.has(e))return;if(!t){g.error(`Create your API key first`,`Generate a key in the API key panel before testing a model.`),Y();return}let n=new AbortController;M.current.set(e,n),O(t=>new Set(t).add(e));let r=performance.now(),i=null;try{let a=await fetch(`${o}/v1/chat/completions`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,"Content-Type":`application/json`,Accept:`text/event-stream`},body:JSON.stringify({model:e,messages:[{role:`user`,content:`Reply with exactly: OK`}],stream:!0,max_tokens:16}),cache:`no-store`,referrerPolicy:`no-referrer`,signal:n.signal});if(!a.ok||!a.body){j(t=>new Map(t).set(e,{ok:!1,status:a.status})),g.error(`Model probe failed`,`Request failed with HTTP ${a.status}`);return}let s=a.body.getReader();try{for(;;){let e=await s.read();if(e.value&&e.value.byteLength>0&&i===null&&(i=performance.now()),e.done)break}}finally{s.releaseLock()}let c=Math.round(performance.now()-r),l=Math.round((i??performance.now())-r);j(t=>new Map(t).set(e,{ok:!0,ttftMs:l,totalMs:c})),g.success(`Model test complete`,`${e} · TTFT ${l} ms · Done ${c} ms`)}catch(t){t instanceof DOMException&&t.name===`AbortError`||(j(t=>new Map(t).set(e,{ok:!1,status:null})),g.error(`Model probe failed`,t instanceof Error?t.message:`The request could not be completed.`))}finally{M.current.get(e)===n&&M.current.delete(e),O(t=>{let n=new Set(t);return n.delete(e),n})}};(0,A.useEffect)(()=>()=>{for(let e of M.current.values())e.abort()},[]);let X=!!W?.canIssue&&!K,Z=q?.kind===`handoff`?q.key:null,Q=new Map;for(let e of q?.models??[]){let t=e.indexOf(`/`),n=t>0?e.slice(0,t):`Other`,r=Q.get(n)??[];r.push(e),Q.set(n,r)}return(0,F.jsx)(ve,{path:`${e}/stats/stream`,children:(0,F.jsxs)(`div`,{className:`min-h-screen text-text-primary font-sans`,children:[(0,F.jsx)(`div`,{className:`share-backdrop`,"aria-hidden":`true`}),(0,F.jsx)(`header`,{className:`share-header`,"data-scrolled":B,children:(0,F.jsxs)(`div`,{className:`share-header-inner`,"data-scrolled":B,children:[(0,F.jsxs)(`a`,{className:`inline-flex items-center gap-5 font-head text-lead tracking-[-0.03em] text-text-primary no-underline`,href:`/`,children:[(0,F.jsx)(`span`,{className:`grid size-17 place-items-center overflow-hidden rounded-control border border-inner-border bg-accent-soft text-accent`,"aria-hidden":`true`,children:(0,F.jsx)(`img`,{className:`block size-full object-cover`,src:`/assets/brand/favicon.jpg`,alt:``,width:34,height:34})}),(0,F.jsx)(`b`,{children:`Cartethyia`})]}),(0,F.jsxs)(`div`,{className:`inline-flex items-center gap-4 max-narrow:gap-3`,children:[(0,F.jsx)(oe,{className:`max-narrow:min-w-17 max-narrow:justify-center max-narrow:px-0 max-narrow:[&_.github-badge-metric]:hidden`}),(0,F.jsx)(`button`,{type:`button`,className:`grid size-17 cursor-pointer place-items-center rounded-pill border border-inner-border bg-surface-2 text-text-secondary hover:border-border-strong hover:text-text-primary focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-2`,onClick:()=>{let e=h(R)?`light`:`dark`;z(e),ne(e)},"aria-label":`Toggle theme`,"aria-pressed":h(R),title:h(R)?`Switch to light mode`:`Switch to dark mode`,children:h(R)?(0,F.jsx)(te,{size:15}):(0,F.jsx)(ie,{size:15})}),(0,F.jsxs)(`a`,{href:`/`,className:`inline-flex min-h-17 items-center gap-3 rounded-pill border border-inner-border bg-surface-2 px-6 text-badge font-semibold text-text-secondary no-underline hover:border-border-strong hover:text-text-primary max-narrow:px-5`,children:[(0,F.jsx)(ae,{size:13,"aria-hidden":`true`}),` Home`]})]})]})}),(0,F.jsx)(`main`,{className:`relative z-1 mx-auto flex w-full max-w-480 flex-col gap-8 px-12 pb-24 pt-40 max-narrow:gap-6 max-narrow:px-6 max-narrow:pb-16 max-narrow:pt-36`,children:c.loading?(0,F.jsx)(x,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,F.jsx)(me,{children:(0,F.jsx)(ce,{label:`Loading enrollment policy…`})})}):c.error?(0,F.jsx)(x,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,F.jsx)(me,{children:(0,F.jsx)(se,{title:c.code===`link_disabled`?`Key paused`:`Link not available`,message:c.error,onRetry:()=>window.location.reload()})})}):q?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(x,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-7 max-sm:p-5`,children:[(0,F.jsxs)(`p`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[q.kind===`handoff`?(0,F.jsx)(ue,{size:13,"aria-hidden":`true`}):(0,F.jsx)(fe,{size:13,"aria-hidden":`true`}),q.kind===`handoff`?`SHARED ACCESS / KEY`:`SHARED ACCESS / ENROLLMENT`]}),(0,F.jsx)(`h1`,{children:q.name||`Shared API access`}),q.kind===`handoff`?(0,F.jsx)(`p`,{className:`mt-2.5 text-text-secondary text-body leading-[1.55]`,children:`The API key for this gateway, provided through a share link. It is subject to the limits below.`}):null,(0,F.jsx)(`div`,{className:`mt-5 flex flex-wrap items-center gap-2`,children:q.expiresAt?(0,F.jsxs)(`span`,{className:`inline-flex min-h-7 items-center gap-1.5 rounded-chip border border-inner-border bg-surface-2 px-2.5 py-1 text-text-secondary font-mono text-micro leading-[1.3]`,children:[(0,F.jsx)(ee,{size:12,"aria-hidden":`true`}),`Link expires `,new Date(q.expiresAt).toLocaleString()]}):null}),(0,F.jsx)(ye,{policy:q})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-2 gap-8 max-md:grid-cols-1`,children:[(0,F.jsxs)(x,{surface:`muted`,className:`flex min-w-0 flex-col items-start gap-6 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,F.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,F.jsx)(p,{size:13,"aria-hidden":`true`}),` BASE URL`]}),(0,F.jsxs)(`div`,{className:`flex w-full min-w-0 items-center gap-4 [&>code]:block [&>code]:min-w-0 [&>code]:flex-1 [&>code]:overflow-hidden [&>code]:text-ellipsis [&>code]:whitespace-nowrap [&>code]:rounded-inset [&>code]:border [&>code]:border-inner-border [&>code]:bg-code-surface [&>code]:p-5 [&>code]:text-text-primary [&>code]:font-mono [&>code]:text-caption [&>code]:leading-normal [&>button]:shrink-0`,children:[(0,F.jsxs)(`code`,{children:[o,`/v1`]}),(0,F.jsx)(y,{value:`${o}/v1`,size:`sm`,variant:`secondary`,label:`Copy URL`,copiedLabel:`Copied`,"aria-label":`Copy Base URL`})]}),(0,F.jsx)(`p`,{className:`text-caption leading-[1.55] text-text-secondary`,children:`Point your SDK, Opencode, Claude Code, Droid, and any other CLI`}),q.sharePopup.enabled?(0,F.jsxs)(`button`,{type:`button`,className:`flex w-full min-w-0 cursor-pointer items-center gap-6 rounded-panel border border-orange/30 bg-gradient-to-br from-orange-soft to-surface-2 p-6 text-left text-text-primary transition-transform duration-150 ease-spring hover:-translate-y-px hover:border-orange`,onClick:()=>P(!0),"aria-haspopup":`dialog`,"aria-label":`Open popup`,children:[(0,F.jsx)(`span`,{className:`grid size-19 flex-none place-items-center rounded-control bg-orange-soft text-orange`,"aria-hidden":`true`,children:(0,F.jsx)(ge,{size:16})}),(0,F.jsx)(`span`,{className:`grid min-w-0 gap-1.5`,children:(0,F.jsx)(`strong`,{className:`text-caption`,children:q.sharePopup.title||`More information`})}),(0,F.jsx)(`span`,{className:`ml-auto text-lead text-orange`,"aria-hidden":`true`,children:`↗`})]}):null]}),(0,F.jsx)(`div`,{ref:L,tabIndex:-1,children:(0,F.jsxs)(x,{surface:`muted`,className:`flex min-w-0 flex-col items-start gap-6 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,F.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,F.jsx)(ue,{size:13,"aria-hidden":`true`}),` YOUR API KEY`]}),q.kind===`handoff`?Z?(0,F.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-5`,role:`status`,children:[(0,F.jsx)(`p`,{className:`font-mono text-micro font-bold tracking-label text-orange`,children:`REVEALED BY THE LINK OWNER`}),(0,F.jsx)(`code`,{className:`block min-w-0 flex-1 overflow-hidden rounded-inset border border-inner-border bg-code-surface p-5 font-mono text-caption leading-normal text-text-primary [overflow-wrap:anywhere] [user-select:all]`,children:Z}),(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5 [&>span]:font-mono [&>span]:text-micro [&>span]:text-text-tertiary`,children:[(0,F.jsx)(y,{value:Z,size:`sm`,variant:`primary`,label:`Copy key`,copiedLabel:`Copied`}),(0,F.jsx)(m,{variant:`secondary`,size:`sm`,onClick:()=>he(`cartethyia-api-key.txt`,`Cartethyia API key\n\n${Z}\n\nKeep this secret.\n`,`text/plain;charset=utf-8`),children:`Save this key`}),(0,F.jsxs)(`span`,{children:[`Prefix `,q.keyPrefix??`—`]})]}),(0,F.jsx)(`p`,{className:`text-caption leading-[1.55] text-text-secondary`,children:`This link reveals the key itself, so anyone holding the URL can read it. Keep the URL private; the link owner regenerates it to replace this key.`})]}):(0,F.jsx)(`p`,{className:`text-caption leading-normal text-text-secondary`,children:`This link can no longer reveal its key. Ask the link owner to regenerate it.`}):K?(0,F.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-5`,role:`status`,children:[(0,F.jsx)(`p`,{className:`font-mono text-micro font-bold tracking-[0.06em] text-orange`,children:`GENERATED ONCE · COPY AND KEEP IT`}),(0,F.jsx)(`code`,{className:`block min-w-0 flex-1 overflow-hidden rounded-inset border border-inner-border bg-code-surface p-5 font-mono text-caption leading-normal text-text-primary [overflow-wrap:anywhere] [user-select:all]`,children:K.key}),(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5 [&>span]:font-mono [&>span]:text-micro [&>span]:text-text-tertiary`,children:[(0,F.jsx)(y,{value:K.key,size:`sm`,variant:`primary`,label:`Copy key`,copiedLabel:`Copied`}),(0,F.jsx)(m,{variant:`secondary`,size:`sm`,onClick:()=>he(`cartethyia-api-key.txt`,`Cartethyia API key\n\n${K.key}\n\nKeep this secret.\n`,`text/plain;charset=utf-8`),children:`Save this key`}),(0,F.jsxs)(`span`,{children:[`Key ID `,K.keyId.slice(0,12),`…`]})]}),(0,F.jsx)(`p`,{className:`text-caption leading-[1.55] text-text-secondary`,children:`Saved in this browser while this enrollment link remains valid. It is not shown again from another browser, and an expired, revoked, or unavailable link does not restore a local copy.`})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`p`,{className:`text-caption leading-normal text-text-secondary`,children:X?`Issue a personal key to use the shared endpoint.`:`No key is available in this browser.`}),X?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`label`,{className:`flex w-full flex-col gap-1.5 text-text-secondary text-micro font-bold [&>input]:w-full [&>input]:min-h-11 [&>input]:rounded-control [&>input]:border [&>input]:border-inner-border [&>input]:bg-surface-1 [&>input]:px-3 [&>input]:text-text-primary [&>input]:text-body [&>input]:font-medium [&>input]:focus-visible:outline-2 [&>input]:focus-visible:outline-focus-ring [&>input]:focus-visible:outline-offset-2`,children:[(0,F.jsx)(`span`,{children:`Your name`}),(0,F.jsx)(`input`,{type:`text`,value:v,required:!0,maxLength:je,autoComplete:`nickname`,onChange:e=>pe(e.target.value)}),(0,F.jsx)(`span`,{className:`text-text-tertiary text-micro font-normal leading-normal`,children:`Shown on your key (best kept to ~5 letters) — the gateway appends its own code.`})]}),(0,F.jsx)(`p`,{className:`-mt-3 text-text-tertiary text-micro font-normal leading-normal`,children:`Enter your name to generate a personal key.`}),(0,F.jsx)(m,{variant:`primary`,size:`sm`,loading:C,disabled:C||!v.trim(),onClick:()=>void G(),children:C?`Generating…`:`Generate API Key`})]}):null]}),q.kind===`enroll`&&!X&&!K?(0,F.jsx)(`p`,{role:`status`,className:`w-full rounded-inset border border-orange-soft bg-orange-soft px-5 py-4 text-badge leading-normal text-orange`,children:T??`This enrollment link is not currently accepting key requests.`}):null,T&&X?(0,F.jsx)(`p`,{role:`alert`,className:`form-error`,children:T}):null,b?(0,F.jsx)(`p`,{role:`alert`,className:`form-error`,children:b}):null]})})]}),N&&q.sharePopup.enabled?(0,F.jsx)(`div`,{className:`fixed inset-0 z-drawer grid place-items-center overflow-y-auto bg-black/70 p-10 backdrop-blur max-sm:place-items-end max-sm:p-5`,role:`presentation`,onClick:e=>{e.target===e.currentTarget&&P(!1)},children:(0,F.jsxs)(`section`,{ref:I,tabIndex:-1,className:`relative grid max-h-[min(calc(var(--spacing)*340),calc(100dvh-var(--spacing)*20))] w-full max-w-380 grid-cols-2 overflow-auto rounded-hero border border-glass-border-2 bg-surface-1 shadow-popout max-sm:max-h-[calc(100dvh-var(--spacing)*10)] max-sm:w-full max-sm:max-w-240 max-sm:grid-cols-1 max-sm:rounded-card`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`share-support-title`,children:[(0,F.jsx)(`button`,{type:`button`,className:`absolute top-6 right-6 z-card grid size-18 place-items-center rounded-pill border border-inner-border bg-surface-1 text-text-secondary focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-2`,onClick:()=>P(!1),"aria-label":`Close popup`,children:(0,F.jsx)(a,{size:18,"aria-hidden":`true`})}),q.sharePopup.hasImage?(0,F.jsx)(`img`,{className:`h-full min-h-180 w-full object-cover max-sm:h-auto max-sm:max-h-[min(52dvh,calc(var(--spacing)*210))] max-sm:min-h-0 max-sm:object-contain`,src:`/share/${r}/popup-image`,alt:``}):(0,F.jsx)(`div`,{className:`grid h-full min-h-180 w-full place-items-center bg-gradient-to-br from-orange-soft to-surface-2 text-7xl text-orange max-sm:h-[clamp(calc(var(--spacing)*85),34dvh,calc(var(--spacing)*130))] max-sm:min-h-85 max-sm:max-h-130`,"aria-hidden":`true`,children:(0,F.jsx)(`span`,{children:`♡`})}),(0,F.jsxs)(`div`,{className:`flex flex-col justify-center gap-7 p-[clamp(calc(var(--spacing)*12),5vw,calc(var(--spacing)*22))] max-sm:gap-6 max-sm:p-11`,children:[(0,F.jsx)(`h2`,{id:`share-support-title`,className:`pr-10 font-head text-display leading-tight tracking-tight wrap-anywhere`,children:q.sharePopup.title||`More information`}),q.sharePopup.body?(0,F.jsx)(`p`,{id:`share-support-message`,className:`text-body leading-loose whitespace-pre-wrap text-text-secondary wrap-anywhere`,children:q.sharePopup.body}):null,(0,F.jsx)(`div`,{className:`mt-4 flex flex-wrap items-center gap-5 [&>*]:flex-auto`,children:(0,F.jsx)(`button`,{type:`button`,className:`inline-flex min-h-21 items-center justify-center rounded-pill border border-inner-border bg-surface-2 px-8 text-caption font-bold text-text-primary no-underline hover:brightness-110 focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-2`,onClick:()=>P(!1),children:`Close`})})]})]})}):null,q.notes.title||q.notes.subtitle||q.notes.body?(0,F.jsxs)(x,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,F.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,F.jsx)(de,{size:13,"aria-hidden":`true`}),` NOTES`]}),q.notes.title?(0,F.jsx)(`h3`,{className:`mt-5 font-head text-title font-semibold`,children:q.notes.title}):null,q.notes.subtitle?(0,F.jsx)(`p`,{className:`mt-3 text-caption font-semibold text-text-secondary`,children:q.notes.subtitle}):null,q.notes.body?(0,F.jsx)(`p`,{className:`mt-5 text-body leading-loose whitespace-pre-wrap text-text-secondary`,children:q.notes.body}):null]}):null,(0,F.jsx)(be,{}),(0,F.jsxs)(x,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-6`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsxs)(`p`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,F.jsx)(s,{size:13,"aria-hidden":`true`}),` MODEL ACCESS`]}),(0,F.jsx)(`h2`,{className:`mt-3 font-head text-lead font-semibold tracking-tight`,children:`Allowed models`})]}),(0,F.jsxs)(`div`,{className:`inline-flex items-center gap-4`,children:[(0,F.jsxs)(`div`,{className:`inline-flex rounded-pill border border-inner-border bg-surface-2 p-1`,role:`tablist`,"aria-label":`Allowed model layout`,children:[(0,F.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":H===`raw`,className:`min-h-13 cursor-pointer rounded-pill border-0 bg-transparent px-5 font-mono text-micro font-bold tracking-label text-text-secondary uppercase hover:text-text-primary${H===`raw`?` bg-accent text-accent-foreground`:``}`,onClick:()=>U(`raw`),children:`Raw`}),(0,F.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":H===`grouped`,className:`min-h-13 cursor-pointer rounded-pill border-0 bg-transparent px-5 font-mono text-micro font-bold tracking-label text-text-secondary uppercase hover:text-text-primary${H===`grouped`?` bg-accent text-accent-foreground`:``}`,onClick:()=>U(`grouped`),children:`Grouped`})]}),q.models.length?(0,F.jsx)(y,{value:q.models.join(`, `),size:`sm`,variant:`secondary`,label:`Copy all`,copiedLabel:`Copied`,"aria-label":`Copy all granted models`}):null]})]}),Q.size?H===`raw`?(0,F.jsx)(`div`,{className:`mt-8 grid grid-cols-3 gap-4 max-wide:grid-cols-2 max-narrow:grid-cols-1`,children:q.models.map(e=>(0,F.jsx)(Me,{id:e,label:e,info:q.modelInfo?.[e],canProbe:J,probing:D.has(e),onProbe:xe,result:k.get(e)},e))}):(0,F.jsx)(`div`,{className:`mt-8 grid grid-cols-2 gap-6 min-extra-wide:grid-cols-3 max-medium:grid-cols-1`,children:[...Q].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>(0,F.jsxs)(`section`,{className:`min-w-0 overflow-hidden rounded-panel border border-inner-border bg-surface-2`,"aria-label":`${e} models`,children:[(0,F.jsxs)(`div`,{className:`flex items-center justify-between gap-6 border-b border-inner-border px-6 py-5`,children:[(0,F.jsx)(`h3`,{className:`font-mono text-badge font-bold text-text-primary wrap-anywhere`,children:e}),(0,F.jsx)(`span`,{className:`rounded-pill bg-accent-soft px-4 py-1 font-mono text-micro font-bold text-accent`,children:t.length})]}),(0,F.jsx)(`div`,{className:`mt-0 grid max-h-150 grid-cols-1 gap-3 overflow-y-auto p-4`,children:t.map(t=>(0,F.jsx)(Me,{id:t,label:e===`Other`?t:t.slice(e.length+1),info:q.modelInfo?.[t],canProbe:J,probing:D.has(t),onProbe:xe,result:k.get(t)},t))})]},e))}):(0,F.jsx)(`p`,{className:`mt-8 rounded-control border border-inner-border bg-surface-2 p-7 text-caption text-text-secondary`,children:`Model access follows the share template policy.`}),q.modelPrefix?(0,F.jsxs)(`p`,{className:`mt-6 text-badge leading-normal text-text-secondary wrap-anywhere`,children:[`Required model prefix: `,q.modelPrefix]}):null]})]}):(0,F.jsx)(x,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,F.jsx)(me,{children:(0,F.jsx)(le,{title:`No enrollment data`,message:`This enrollment link did not return usable policy data.`})})})})]})})}var Pe=document.getElementById(`root`);if(Pe===null)throw Error(`Share root element is missing`);(0,j.createRoot)(Pe).render((0,F.jsxs)(A.StrictMode,{children:[(0,F.jsx)(Ne,{}),(0,F.jsx)(_,{position:`top-right`,offset:{top:`1rem`,right:`1rem`},mobileOffset:{top:`1rem`,left:`1rem`,right:`1rem`},visibleToasts:2,toastOptions:{className:`toast-surface select-text`,style:{background:`var(--glass-bg-2)`,border:`1px solid var(--glass-border-2)`,color:`var(--text-primary)`,fontSize:`12.5px`},classNames:{title:`select-text`,description:`select-text`},actionButtonStyle:{background:`var(--accent)`,color:`var(--accent-foreground)`},cancelButtonStyle:{background:`var(--surface-muted)`,color:`var(--text-primary)`}}})]}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{i,o as a,r as o,s}from"./app-BDJWMThu.js";import{i as c,n as l,r as u,t as d}from"./terminal-C9mZ4Ugm.js";import{t as f}from"./arrow-right-Dl5yKnp8.js";import{n as p,t as m}from"./github-badge-BuAJr8oU.js";import{t as h}from"./message-circle-CCxGwRvv.js";import{t as g}from"./shield-check-DVS0Foqh.js";import{t as _}from"./sparkles-BRaRUxAU.js";import{t as v}from"./use-reduced-motion-C4B0R6Sz.js";var y=e(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),b=s(),x=t(n(),1),S=r(),C=`/`,w=`/console`,T={night:{"--story-accent":`var(--color-story-night)`},core:{"--story-accent":`var(--color-story-core)`},blossom:{"--story-accent":`var(--color-story-blossom)`},voices:{"--story-accent":`var(--color-story-voices)`},red:{"--story-accent":`var(--color-story-red)`},denial:{"--story-accent":`var(--color-story-denial)`},shore:{"--story-accent":`var(--color-story-shore)`}},E=e=>`${C}assets/story/${e}`,D=e=>e.toLowerCase().replace(/\b\w/g,e=>e.toUpperCase()),O=e=>{let t=k[e+1];return t===void 0?`Back to ${k[0]?.label??`the beginning`}`:`Go to ${D(t.location)}`},k=[{id:`blessed-maiden`,number:`01`,label:`The Blessed Maiden`,location:`THE FIRST CROSSING`,theme:`night`,title:`A single signal enters the unknown.`,description:`Every client begins with one request and a question: where should it go? Cartethyia gives that signal a reliable gateway — self-hosted, authenticated, and ready for the crossing.`,image:E(`fleurdelys_plus.webp`),imageAlt:`The Blessed Maiden beneath a luminous blue sky`,signals:[{label:`The first crossing`,value:`OPEN`,icon:`network`},{label:`The chosen vessel`,value:`YOURS`,icon:`shield`},{label:`The gate`,value:`ALIGNED`,icon:`sparkles`}]},{id:`resonant-core`,number:`02`,label:`The Resonant Core`,location:`THE ROUTING SANCTUM`,theme:`core`,title:`The route becomes the power.`,description:`One surface can speak to many providers. Cartethyia translates protocols, balances targets, and keeps each request moving through the right vessel — even when the first path goes quiet.`,image:E(`cartethyia-god.webp`),imageAlt:`Cartethyia surrounded by a celestial blue routing field`,signals:[{label:`The many voices`,value:`30+`,icon:`network`},{label:`The bridge`,value:`ALIGNED`,icon:`terminal`},{label:`The fallback`,value:`AWARE`,icon:`activity`}]},{id:`pink-blossom`,number:`03`,label:`The Pink Blossom Calm`,location:`THE QUIET CONTROL`,theme:`blossom`,title:`Behind every powerful system, there is a quiet place to govern.`,description:`Observe the flow, tune the balance, and let the models answer. Provider accounts, credentials, usage, and health stay in one calm console built for the person operating the route.`,image:E(`jinhsi-blossom.webp`),imageAlt:`Jinhsi beneath soft pink blossoms`,signals:[{label:`The quiet engine`,value:`AWAKE`,icon:`activity`},{label:`The studio`,value:`READY`,icon:`sparkles`},{label:`The balance`,value:`HELD`,icon:`shield`}]},{id:`many-voices`,number:`04`,label:`The Many Voices`,location:`THE LIVING NETWORK`,theme:`voices`,title:`Every route carries a living world.`,description:`Providers, clients, and models bring different voices to the crossing. Cartethyia gives them one dependable gateway without silencing what makes each path unique.`,image:E(`wuthering-waves-hiyuki-aemeath-hiyuki-rover.webp`),imageAlt:`A bright celebration of characters and connected voices`,signals:[{label:`The many voices`,value:`CONNECTED`,icon:`network`},{label:`The shared world`,value:`OPEN`,icon:`sparkles`},{label:`The crossing`,value:`ALIGNED`,icon:`terminal`}]},{id:`red-thread`,number:`05`,label:`The Red Thread`,location:`THE FRACTURED PATH`,theme:`red`,title:`A beautiful signal can still be dangerous.`,description:`Every powerful route attracts pressure. Cartethyia watches the boundary, rejects hostile paths, and keeps a single failure from tearing through the whole network.`,image:E(`phrolova-a.webp`),imageAlt:`A figure surrounded by dark red threads and fractured signals`,signals:[{label:`The threat`,value:`SEEN`,icon:`activity`},{label:`The boundary`,value:`HELD`,icon:`shield`},{label:`The fallback`,value:`READY`,icon:`network`}]},{id:`request-denial`,number:`06`,label:`The Gate of Discernment`,location:`THE GATE OF DISCERNMENT`,theme:`denial`,title:`Not every signal should pass.`,description:`Every game needs a gatekeeper. Cartethyia verifies intent, protects the route, and denies the requests that would fracture the system.`,image:E(`requestdeniawokkjpg.webp`),imageAlt:`A radiant gatekeeper surrounded by cascading signals`,signals:[{label:`The verdict`,value:`CLEAR`,icon:`shield`},{label:`The boundary`,value:`GUARDED`,icon:`network`},{label:`The route`,value:`TRUSTED`,icon:`sparkles`}]},{id:`shorekeeper`,number:`07`,label:`The Open Shore`,location:`THE SHOREKEEPER`,theme:`shore`,title:`The gateway is yours to shape.`,description:`Find your way back to the source, share your route, and join the people building a dependable gateway across a changing AI landscape.`,image:E(`Shorekeeper.webp`),imageAlt:`Shorekeeper watching over a luminous open shore`,signals:[{label:`The source`,value:`OPEN`,icon:`terminal`},{label:`The shore`,value:`AWAITS`,icon:`network`},{label:`The next step`,value:`YOURS`,icon:`sparkles`}]}],A={activity:c,network:l,shield:g,sparkles:_,terminal:d};function j({signal:e}){let t=A[e.icon];return(0,S.jsxs)(`div`,{className:`landing-signal-tile`,children:[(0,S.jsx)(`span`,{className:`landing-signal-icon`,children:(0,S.jsx)(t,{size:12,"aria-hidden":!0})}),(0,S.jsxs)(`div`,{className:`landing-signal-copy`,children:[(0,S.jsx)(`div`,{className:`landing-signal-label`,children:e.label}),(0,S.jsx)(`div`,{className:`landing-signal-value`,children:e.value})]})]})}function M(){let e=v(),t=e?`auto`:`smooth`,[n,r]=(0,x.useState)(0),[s,c]=(0,x.useState)(!1),[l,g]=(0,x.useState)(()=>new Set([0])),[_,b]=(0,x.useState)(!1),[E,D]=(0,x.useState)(!1);(0,x.useEffect)(()=>{let e=()=>D(window.scrollY>24);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]);let M=(0,x.useRef)([]);(0,x.useEffect)(()=>{if(s)return i(document.body)},[s]),(0,x.useEffect)(()=>{if(typeof IntersectionObserver>`u`)return;let e=new IntersectionObserver(e=>{let t=e.filter(e=>e.isIntersecting).sort((e,t)=>t.intersectionRatio-e.intersectionRatio)[0];if(t){let e=Number(t.target.dataset.chapterIndex);r(e),g(t=>t.has(e)?t:new Set([...t,e]))}},{threshold:[.35,.6,.85]});M.current.forEach(t=>{t&&e.observe(t)});let i=e=>{if(!e.target?.matches(`input, textarea, select, [contenteditable="true"]`)){if(e.key===`ArrowDown`||e.key===`ArrowRight`||e.key===`PageDown`){e.preventDefault();let r=Math.min(k.length-1,n+1);M.current[r]?.scrollIntoView({behavior:t,block:`start`})}else if(e.key===`ArrowUp`||e.key===`ArrowLeft`||e.key===`PageUp`){e.preventDefault();let r=Math.max(0,n-1);M.current[r]?.scrollIntoView({behavior:t,block:`start`})}}};return window.addEventListener(`keydown`,i),()=>{e.disconnect(),window.removeEventListener(`keydown`,i)}},[n,t]);let N=e=>{c(!1),M.current[e]?.scrollIntoView({behavior:t,block:`start`})},P=k[n]?.theme??`night`,F=(t,n=``)=>l.has(t)?e?``:`animate-story-reveal-up ${n}`.trim():`opacity-0`;return(0,S.jsxs)(`div`,{className:`relative min-h-screen overflow-x-clip bg-story-deep font-sans text-story-ink`,id:`top`,style:T[P],children:[(0,S.jsxs)(`header`,{className:`landing-header`,"data-scrolled":E,children:[(0,S.jsxs)(`div`,{className:`landing-header-inner`,"data-scrolled":E,children:[(0,S.jsxs)(`a`,{className:`landing-header-brand`,href:`#top`,onClick:e=>{e.preventDefault(),N(0)},children:[(0,S.jsx)(`span`,{className:`flex size-9 items-center justify-center rounded-xl border border-story-white/25 bg-story-white p-0.5`,children:(0,S.jsx)(`img`,{className:`size-full rounded-lg object-cover`,src:`${C}assets/brand/favicon.jpg`,alt:``})}),(0,S.jsxs)(`span`,{children:[(0,S.jsx)(`strong`,{className:`block font-heading text-lead leading-none`,children:`Cartethyia`}),(0,S.jsx)(`small`,{className:`mt-1 block font-mono text-micro font-medium leading-none tracking-code text-story-white/50`,children:`AI PROXY ROUTER`})]})]}),(0,S.jsxs)(`nav`,{className:`landing-header-desktop-nav`,"aria-label":`Primary navigation`,children:[(0,S.jsxs)(`button`,{type:`button`,onClick:()=>N(0),children:[(0,S.jsx)(p,{size:14,"aria-hidden":!0}),`Home`]}),(0,S.jsxs)(`a`,{href:w,children:[(0,S.jsx)(d,{size:14,"aria-hidden":!0}),`Console`]}),(0,S.jsxs)(`a`,{href:o,target:`_blank`,rel:`noreferrer`,children:[(0,S.jsx)(h,{size:14,"aria-hidden":!0}),`Community`]})]}),(0,S.jsxs)(`div`,{className:`landing-header-actions`,children:[(0,S.jsx)(m,{className:`landing-header-github`}),(0,S.jsxs)(`button`,{type:`button`,"aria-label":_?`Show story`:`Show all`,"aria-pressed":_,onClick:()=>b(e=>!e),className:`landing-header-control landing-header-show-all${_?` is-active`:``}`,children:[(0,S.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-full bg-current`,"aria-hidden":!0}),_?`Story`:`All view`]}),(0,S.jsxs)(`a`,{className:`landing-header-control landing-header-console`,href:w,children:[`Enter console`,(0,S.jsx)(y,{size:14,"aria-hidden":!0})]}),(0,S.jsx)(`button`,{className:`landing-header-menu-toggle`,type:`button`,"aria-label":s?`Close menu`:`Open menu`,"aria-expanded":s,onClick:()=>c(e=>!e),children:s?(0,S.jsx)(a,{size:17,"aria-hidden":!0}):(0,S.jsx)(u,{size:17,"aria-hidden":!0})})]})]}),(0,S.jsx)(`div`,{className:`landing-header-menu-overlay`,"data-open":s,"aria-hidden":!0,onClick:()=>c(!1)}),(0,S.jsx)(`nav`,{className:`landing-header-mobile-nav`,"data-scrolled":E,"data-open":s,"aria-label":`Mobile navigation`,"aria-hidden":!s,children:(0,S.jsxs)(`a`,{className:`mt-1 inline-flex h-11 items-center justify-center gap-2 rounded-control border border-story-white bg-story-white px-3.5 text-badge font-bold text-story-deep no-underline transition-colors hover:bg-story-white/90`,href:w,children:[`Enter console`,(0,S.jsx)(y,{size:14,"aria-hidden":!0})]})})]}),_?(0,S.jsx)(`main`,{className:`px-12 pb-17.5 pt-44 max-compact:px-8`,children:(0,S.jsxs)(`div`,{className:`mx-auto w-full max-w-640`,children:[(0,S.jsxs)(`div`,{className:`mb-10.5 flex flex-wrap items-end justify-between gap-5.25`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`p`,{className:`text-badge font-bold uppercase tracking-code text-story-white/50`,children:`All chapters · 7 stories`}),(0,S.jsx)(`h2`,{className:`mt-3.5 font-serif text-hero font-normal leading-none tracking-tight text-story-white`,children:`Everything at a glance`}),(0,S.jsx)(`p`,{className:`mt-3.5 max-w-60ch text-body leading-5 text-story-white/65`,children:`Hover a card to lift it — click to jump to its story. All 7 visuals, captions and signals visible without scrolling forever.`})]}),(0,S.jsxs)(`div`,{className:`flex items-center gap-3.5 text-badge text-story-white/50`,children:[(0,S.jsx)(`span`,{className:`h-3 w-3 rounded-full bg-story-success shadow-glow-success`,"aria-hidden":!0}),` Stylish overview`]})]}),(0,S.jsx)(`div`,{className:`grid gap-7 sm:grid-cols-2 lg:grid-cols-3`,children:k.map((e,t)=>(0,S.jsxs)(`article`,{onClick:()=>{b(!1),requestAnimationFrame(()=>N(t))},className:`group relative flex cursor-pointer flex-col overflow-hidden rounded-hero border bg-story-surface text-left transition hover:-translate-y-1 hover:shadow-window focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-story-white/30`,style:T[e.theme],tabIndex:0,role:`button`,"aria-label":`Open ${e.label}`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),b(!1),requestAnimationFrame(()=>N(t)))},children:[(0,S.jsxs)(`div`,{className:`relative h-95 overflow-hidden`,children:[(0,S.jsx)(`img`,{src:e.image,alt:e.imageAlt,className:`h-full w-full object-cover transition duration-500 group-hover:scale-104`,loading:`lazy`,decoding:`async`}),(0,S.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-story-deep/85 via-story-deep/10 to-transparent`}),(0,S.jsxs)(`div`,{className:`absolute left-3 top-3 flex items-center gap-3`,children:[(0,S.jsx)(`span`,{className:`rounded-chip bg-story-white px-3 py-1 font-mono text-micro font-bold tracking-label text-story-deep`,children:e.number}),(0,S.jsx)(`span`,{className:`rounded-chip border border-story-white/20 bg-story-black/25 px-3.5 py-1 text-micro font-bold uppercase tracking-label text-story-white backdrop-blur`,children:e.theme})]}),(0,S.jsxs)(`div`,{className:`absolute bottom-2 left-3 right-3 flex items-center justify-between text-micro font-bold uppercase tracking-label text-story-white/75`,children:[(0,S.jsx)(`span`,{className:`truncate`,children:e.location}),(0,S.jsx)(y,{size:13,"aria-hidden":!0,className:`opacity-60 group-hover:opacity-100`})]})]}),(0,S.jsxs)(`div`,{className:`flex flex-1 flex-col gap-3.5 p-7`,children:[(0,S.jsx)(`h3`,{className:`font-serif text-title font-normal leading-tight tracking-tight text-story-white`,children:e.title}),(0,S.jsx)(`p`,{className:`line-clamp-2 text-caption leading-5 text-story-white/65`,children:e.description}),(0,S.jsx)(`div`,{className:`mt-1.75 flex flex-wrap gap-3`,children:e.signals.map(t=>{let n=A[t.icon];return(0,S.jsxs)(`span`,{className:`inline-flex items-center gap-1.75 rounded-chip border border-story-white/10 bg-story-white/6 px-3.5 py-1.75 text-micro font-semibold uppercase tracking-label text-story-white/75`,children:[(0,S.jsx)(n,{size:12,"aria-hidden":!0,className:`text-story-accent`}),t.label,(0,S.jsx)(`strong`,{className:`font-bold text-story-white`,children:t.value})]},`${e.id}-${t.label}`)})})]})]},e.id))})]})}):(0,S.jsx)(`main`,{className:`relative z-1`,children:k.map((e,t)=>(0,S.jsxs)(`article`,{id:`chapter-${t}`,"data-chapter-index":t,ref:e=>{M.current[t]=e},className:`relative flex min-h-screen items-center overflow-hidden bg-story-deep bg-[linear-gradient(to_right,color-mix(in_srgb,var(--story-accent)_2.4%,transparent)_1px,transparent_1px),linear-gradient(to_bottom,color-mix(in_srgb,var(--story-accent)_2.4%,transparent)_1px,transparent_1px)] bg-[length:44px_100%,100%_40px] py-16 max-medium:min-h-0 max-medium:py-36 max-compact:py-52 max-compact:pb-16`,style:T[e.theme],"aria-labelledby":`chapter-title-${t}`,children:[(0,S.jsx)(`div`,{className:`absolute inset-0 z-0 scale-108 bg-cover bg-center mix-blend-screen`,style:{backgroundImage:`url(${e.image})`,filter:`blur(27px) saturate(1.14)`,opacity:.24},"aria-hidden":!0}),(0,S.jsxs)(`div`,{className:`landing-story-shell relative z-1 mx-auto`,children:[(0,S.jsxs)(`figure`,{className:`landing-story-visual relative row-start-1 min-w-0 w-full self-center overflow-hidden border border-story-white/20 bg-[#090d16] shadow-popout after:absolute after:inset-0 after:bg-gradient-to-b after:from-story-deep/4 after:via-story-deep/30 after:to-story-deep/60 after:content-[''] ${t%2==0?`col-start-1`:`col-start-2`}`,children:[(0,S.jsx)(`img`,{className:`block size-full object-cover object-center`,src:e.image,alt:e.imageAlt,loading:t===0?`eager`:`lazy`,fetchPriority:t===0?`high`:`low`,decoding:`async`}),(0,S.jsxs)(`figcaption`,{className:`absolute inset-x-4 bottom-4 z-1 flex justify-between font-mono text-micro font-medium leading-none tracking-label text-story-white/70 uppercase`,children:[e.location,` `,(0,S.jsx)(`span`,{className:`text-story-accent`,children:e.number})]})]}),(0,S.jsxs)(`div`,{className:`min-w-0 ${t%2==0?`col-start-2 row-start-1`:`col-start-1 row-start-1`}`,children:[(0,S.jsx)(`h1`,{className:`mt-6 max-w-12ch font-head text-story-hero font-normal leading-[0.98] tracking-[-0.045em] text-balance max-compact:max-w-13ch max-compact:text-story-hero-compact ${F(t,`delay-100`)}`,id:`chapter-title-${t}`,children:e.title}),(0,S.jsx)(`p`,{className:`landing-story-description mt-10 max-h-none max-w-[545px] text-lead leading-14 text-story-white/70 max-compact:max-w-full max-compact:text-body max-compact:leading-6 ${F(t,`delay-150`)}`,children:e.description}),(0,S.jsx)(`div`,{className:`landing-signal-grid ${F(t,`delay-200`)}`,children:e.signals.map(t=>(0,S.jsx)(j,{signal:t},`${e.id}-${t.label}`))}),(0,S.jsx)(`div`,{className:`mt-7 flex flex-wrap gap-3.5 max-compact:mt-5 ${F(t,`delay-300`)}`,children:(0,S.jsxs)(`button`,{className:`inline-flex h-22 items-center gap-2 rounded-control border border-story-white/25 bg-story-white/8 px-4.5 text-body font-bold text-story-white transition-transform active:scale-97 hover:bg-story-white/18 max-compact:h-21 max-compact:px-3.5 max-compact:text-badge`,type:`button`,onClick:()=>N(t===k.length-1?0:t+1),children:[O(t),(0,S.jsx)(f,{size:15,"aria-hidden":!0})]})})]})]})]},e.id))})]})}function N(e){document.title=`Cartethyia — The One-Stop AI Proxy Router`,(0,b.createRoot)(e).render((0,S.jsx)(x.StrictMode,{children:(0,S.jsx)(M,{})}))}export{N as mountLanding};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./jsx-runtime-CXUMngI_.js";import{n,r}from"./app-BDJWMThu.js";var i=e(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),a=t(),o=`https://img.shields.io`;function s(e,t){let r=new URLSearchParams({style:`flat-square`,labelColor:`0b1220`,color:t});return`${o}/github/${e}/${n}?${r.toString()}`}function c({size:e=16}){return(0,a.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,a.jsx)(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8Z`})})}function l({className:e=``}){return(0,a.jsxs)(`a`,{className:`github-badge ${e}`.trim(),href:r,target:`_blank`,rel:`noreferrer`,"aria-label":`Cartethyia on GitHub`,children:[(0,a.jsx)(c,{size:15}),(0,a.jsx)(`img`,{className:`github-badge-metric`,src:s(`stars`,`2ea043`),alt:`GitHub stars`,height:20,loading:`lazy`,decoding:`async`}),(0,a.jsx)(`img`,{className:`github-badge-metric`,src:s(`forks`,`1f6feb`),alt:`GitHub forks`,height:20,loading:`lazy`,decoding:`async`})]})}export{i as n,l as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,m as t,p as n}from"./query-keys-ROf-g1Wi.js";var r=class extends n{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||i(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(e){let n=()=>{this.#i({type:`continue`})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},i=this.#r=t({fn:()=>this.options.mutationFn?this.options.mutationFn(e,r):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),a=this.state.status===`pending`,o=!i.canStart();try{if(a)n();else{this.#i({type:`pending`,variables:e,isPaused:o}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,r);let t=await this.options.onMutate?.(e,r);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:o})}let t=await i.start();return await this.#n.config.onSuccess?.(t,e,this.state.context,this,r),await this.options.onSuccess?.(t,e,this.state.context,r),await this.#n.config.onSettled?.(t,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(t,null,e,this.state.context,r),this.#i({type:`success`,data:t}),t}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,r)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,r)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#r===i&&(this.#r=void 0),this.#n.runNext(this)}}#i(t){let n=e=>{switch(t.type){case`failed`:return{...e,failureCount:t.failureCount,failureReason:t.error};case`pause`:return{...e,isPaused:!0};case`continue`:return{...e,isPaused:!1};case`pending`:return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:`pending`,variables:t.variables,submittedAt:Date.now()};case`success`:return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:`error`}}};this.state=n(this.state),e.batch(()=>{this.#t.forEach(e=>{e.onMutationUpdate(t)}),this.#n.notify({mutation:this,type:`updated`,action:t})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}export{i as n,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,r as n}from"./jsx-runtime-CXUMngI_.js";var r=e(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),i=t(n(),1);function a(e,t){let n=()=>localStorage.getItem(e)===`1`,[r,a]=(0,i.useState)(n);return(0,i.useEffect)(()=>{let e=()=>a(n());return window.addEventListener(t,e),window.addEventListener(`storage`,e),()=>{window.removeEventListener(t,e),window.removeEventListener(`storage`,e)}},[]),{enabled:r,setEnabled:n=>{localStorage.setItem(e,n?`1`:`0`),window.dispatchEvent(new Event(t))}}}function o(){return a(`cartethyia.privacy-mode`,`cartethyia:privacy-mode`)}var s=`cartethyia.mysterious-accounts`,c=`cartethyia:mysterious-accounts`;function l(){try{let e=localStorage.getItem(s);if(!e)return new Set;let t=JSON.parse(e);return Array.isArray(t)?new Set(t.filter(e=>typeof e==`string`&&e.length>0)):new Set}catch{return new Set}}function u(e){let[t,n]=(0,i.useState)(l);return(0,i.useEffect)(()=>{let e=()=>n(l());return window.addEventListener(c,e),window.addEventListener(`storage`,e),()=>{window.removeEventListener(c,e),window.removeEventListener(`storage`,e)}},[]),{enabled:t.has(e),setEnabled:t=>{let n=l();t?n.add(e):n.delete(e),localStorage.setItem(s,JSON.stringify([...n])),window.dispatchEvent(new Event(c))}}}function d(){return a(`cartethyia.mask-ip`,`cartethyia:mask-ip`)}export{r as i,u as n,o as r,d as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./jsx-runtime-CXUMngI_.js";import{S as t,_ as n,w as r}from"./assert-Bwh6DJTK.js";import{a as i,r as a,t as o}from"./query-keys-ROf-g1Wi.js";import{t as s}from"./useMutation-DVmwOKU-.js";var c=e(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]);function l(){return t({queryKey:o.settings.runtime,queryFn:e=>i(`/settings/runtime`,{signal:n(e)}),...a})}function u(){let e=r();return s({mutationFn:e=>i(`/settings/runtime`,{method:`PATCH`,body:JSON.stringify(e)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:o.settings.runtime})}})}export{u as n,c as r,l as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./jsx-runtime-CXUMngI_.js";var t=e(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),n=e(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),r=e(`network`,[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`4q2zg0`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`8cvhb9`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`,key:`1egb70`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,key:`1jsf9p`}],[`path`,{d:`M12 12V8`,key:`2874zd`}]]),i=e(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]);export{t as i,r as n,n as r,i as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{c as i}from"./app-BDJWMThu.js";var a=e(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),o=e(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),s=e(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),c=e(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),l=e(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),u=e(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),d=r(),f=t(n(),1),p=t(i(),1);function ee(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var m=e=>{switch(e){case`success`:return g;case`info`:return v;case`warning`:return _;case`error`:return ne;default:return null}},h=Array(12).fill(0),te=({visible:e,className:t})=>f.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},f.createElement(`div`,{className:`sonner-spinner`},h.map((e,t)=>f.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),g=f.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},f.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),_=f.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},f.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),v=f.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},f.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),ne=f.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},f.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),re=f.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`},f.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),f.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),ie=()=>{let[e,t]=f.useState(document.hidden);return f.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),e},y=1,b=100,x=e=>typeof e?.id==`number`||e?.id?.length>0?e.id:y++,S=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),this.getActiveToasts().forEach(t=>e(t)),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e],this.trimHistory()},this.trimHistory=()=>{let e=this.toasts.length-b;e<=0||(this.toasts=this.toasts.filter(t=>e>0&&this.dismissedToasts.has(t.id)?(this.dismissedToasts.delete(t.id),e--,!1):!0))},this.create=e=>{let{message:t,...n}=e,r=x(e),i=this.pendingDismissals.get(r);i!==void 0&&(cancelAnimationFrame(i),this.pendingDismissals.delete(r),this.dismissedToasts.delete(r));let a=this.dismissedToasts.has(r),o=e.dismissible===void 0||e.dismissible;return a&&(this.dismissedToasts.delete(r),this.toasts=this.toasts.filter(e=>e.id!==r)),!a&&this.toasts.find(e=>e.id===r)?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:o,title:t}):n):this.addToast({title:t,...n,dismissible:o,id:r}),r},this.dismiss=e=>{if(e==null)return this.getActiveToasts().forEach(e=>{this.dismissedToasts.add(e.id),this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e;this.dismissedToasts.add(e);let t=this.pendingDismissals.get(e);return t!==void 0&&cancelAnimationFrame(t),this.pendingDismissals.set(e,requestAnimationFrame(()=>{this.pendingDismissals.delete(e),this.subscribers.forEach(t=>t({id:e,dismiss:!0}))})),e},this.message=(e,t)=>this.create({...t,message:e,type:void 0}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],f.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(w(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!f.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!f.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!f.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!f.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=x(t);return this.create({...t,jsx:e(n),id:n,type:void 0}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set,this.pendingDismissals=new Map}},C=(e,t)=>S.message(e,t),w=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,T=Object.assign(C,{success:S.success,info:S.info,warning:S.warning,error:S.error,custom:S.custom,message:S.message,promise:S.promise,dismiss:S.dismiss,loading:S.loading},{getHistory:()=>S.toasts,getToasts:()=>S.getActiveToasts()});ee(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--normal-text);background:var(--normal-bg);border:1px solid var(--normal-border);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function E(e){return e.label!==void 0}var D=3,O=`24px`,k=`16px`,A=4e3,j=356,M=14,ae=45,N=200;function P(...e){return e.filter(Boolean).join(` `)}function F(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var I=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:p,closeButton:ee,style:h,cancelButtonStyle:g,actionButtonStyle:_,className:v=``,descriptionClassName:ne=``,duration:y,position:b,gap:x,expandByDefault:S,classNames:C,icons:w,closeButtonAriaLabel:T=`Close toast`}=e,[D,O]=f.useState(null),[k,j]=f.useState(null),[M,I]=f.useState(!1),[L,oe]=f.useState(!1),[R,z]=f.useState(!1),[B,se]=f.useState(!1),[ce,V]=f.useState(!1),[le,ue]=f.useState(0),[de,fe]=f.useState(0),pe=f.useRef(n.duration||y||A),me=f.useRef(null),H=f.useRef(null),he=c===0,ge=c+1<=o,U=n.type,_e=U??`default`,ve=n.dismissible!==!1,ye=n.className||``,be=n.descriptionClassName||``,xe=f.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),Se=f.useMemo(()=>n.closeButton??ee,[n.closeButton,ee]),Ce=f.useMemo(()=>n.duration||y||A,[n.duration,y]),we=f.useRef(0),Te=f.useRef(0),Ee=f.useRef(0),De=f.useRef(null),[Oe,ke]=b.split(`-`),Ae=f.useMemo(()=>s.reduce((e,t,n)=>n>=xe?e:e+t.height,0),[s,xe]),je=ie(),W=f.useMemo(()=>e.swipeDirections??F(b),[e.swipeDirections,b]),Me=n.invert||t,Ne=U===`loading`;Te.current=f.useMemo(()=>xe*x+Ae,[xe,Ae]),f.useEffect(()=>{pe.current=Ce},[Ce]),f.useEffect(()=>{I(!0)},[]),f.useEffect(()=>{let e=H.current;if(e){let t=e.getBoundingClientRect().height;return fe(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),f.useLayoutEffect(()=>{if(!M)return;let e=H.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,fe(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[M,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let G=f.useCallback(()=>{oe(!0),ue(Te.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},N)},[n,d,a,Te]);f.useEffect(()=>{if(n.promise&&U===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||je?(()=>{if(Ee.current<we.current){let e=new Date().getTime()-we.current;pe.current-=e}Ee.current=new Date().getTime()})():pe.current!==1/0&&(we.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),G()},pe.current)),()=>clearTimeout(e)},[u,i,n,U,je,G]),f.useEffect(()=>{n.delete&&(G(),n.onDismiss==null||n.onDismiss.call(n,n))},[G,n.delete]);function Pe(){return w?.loading?f.createElement(`div`,{className:P(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":U===`loading`},w.loading):f.createElement(te,{className:P(C?.loader,n?.classNames?.loader),visible:U===`loading`})}let Fe=n.icon||w?.[U]||m(U);return f.createElement(`li`,{tabIndex:0,ref:H,className:P(v,ye,C?.toast,n?.classNames?.toast,C?.[_e],n?.classNames?.[_e]),"data-sonner-toast":``,"data-rich-colors":n.richColors??p,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":M,"data-promise":!!n.promise,"data-swiped":ce,"data-removed":L,"data-visible":ge,"data-y-position":Oe,"data-x-position":ke,"data-index":c,"data-front":he,"data-swiping":R,"data-dismissible":ve,"data-type":U,"data-invert":Me,"data-swipe-out":B,"data-swipe-direction":k,"data-expanded":!!(u||S&&M),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${L?le:Te.current}px`,"--initial-height":S?`auto`:`${de}px`,...h,...n.style},onDragEnd:()=>{z(!1),O(null),De.current=null},onPointerDown:e=>{e.button!==2&&!Ne&&ve&&(me.current=new Date,ue(Te.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(z(!0),De.current={x:e.clientX,y:e.clientY}))},onPointerUp:()=>{if(B||!ve)return;De.current=null;let e=Number(H.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(H.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-me.current?.getTime(),i=D===`x`?e:t,a=Math.abs(i)/r;if((D===`x`?W.includes(e>0?`right`:`left`):W.includes(t>0?`bottom`:`top`))&&(Math.abs(i)>=ae||a>.11)){ue(Te.current),n.onDismiss==null||n.onDismiss.call(n,n),j(D===`x`?e>0?`right`:`left`:t>0?`down`:`up`),G(),se(!0);return}var o,s;(o=H.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=H.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`),V(!1),z(!1),O(null)},onPointerMove:e=>{var t,n;if(!De.current||!ve||window.getSelection()?.toString().length>0)return;let r=e.clientY-De.current.y,i=e.clientX-De.current.x;!D&&(Math.abs(i)>1||Math.abs(r)>1)&&O(Math.abs(i)>Math.abs(r)?`x`:`y`);let a={x:0,y:0},o=e=>1/(1.5+Math.abs(e)/20);if(D===`y`){if(W.includes(`top`)||W.includes(`bottom`)){if(W.includes(`top`)&&r<0||W.includes(`bottom`)&&r>0)a.y=r;else{let e=r*o(r);a.y=Math.abs(e)<Math.abs(r)?e:r}}}else if(D===`x`&&(W.includes(`left`)||W.includes(`right`))){if(W.includes(`left`)&&i<0||W.includes(`right`)&&i>0)a.x=i;else{let e=i*o(i);a.x=Math.abs(e)<Math.abs(i)?e:i}}(Math.abs(a.x)>0||Math.abs(a.y)>0)&&V(!0),(t=H.current)==null||t.style.setProperty(`--swipe-amount-x`,`${a.x}px`),(n=H.current)==null||n.style.setProperty(`--swipe-amount-y`,`${a.y}px`)}},Se&&!n.jsx&&U!==`loading`?f.createElement(`button`,{"aria-label":T,"data-disabled":Ne,"data-close-button":!0,onClick:Ne||!ve?()=>{}:()=>{G(),n.onDismiss==null||n.onDismiss.call(n,n)},className:P(C?.closeButton,n?.classNames?.closeButton)},w?.close??re):null,(U||n.icon||n.promise)&&n.icon!==null&&(w?.[U]!==null||n.icon)?f.createElement(`div`,{"data-icon":``,className:P(C?.icon,n?.classNames?.icon)},U===`loading`?n.icon||Pe():n.promise?Pe():null,U===`loading`?null:Fe):null,f.createElement(`div`,{"data-content":``,className:P(C?.content,n?.classNames?.content)},f.createElement(`div`,{"data-title":``,className:P(C?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?f.createElement(`div`,{"data-description":``,className:P(ne,be,C?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),f.isValidElement(n.cancel)?n.cancel:n.cancel&&E(n.cancel)?f.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||g,onClick:e=>{E(n.cancel)&&ve&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),G())},className:P(C?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,f.isValidElement(n.action)?n.action:n.action&&E(n.action)?f.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||_,onClick:e=>{E(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&G())},className:P(C?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function L(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function oe(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?k:O;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var R=f.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:ee,duration:m,style:h,visibleToasts:te=D,toastOptions:g,dir:_=L(),gap:v=M,icons:ne,customAriaLabel:re,containerAriaLabel:ie=`Notifications`}=e,[y,b]=f.useState([]),x=f.useMemo(()=>n?y.filter(e=>e.toasterId===n):y.filter(e=>!e.toasterId),[y,n]),C=f.useMemo(()=>Array.from(new Set([i].concat(x.filter(e=>e.position).map(e=>e.position)))),[x,i]),[w,T]=f.useState([]),[E,O]=f.useState(!1),[k,A]=f.useState(!1),[ae,N]=f.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),P=f.useRef(null),F=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),R=f.useRef(null),z=f.useRef(!1),B=f.useCallback(e=>{b(t=>(t.find(t=>t.id===e.id)?.delete||S.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return f.useEffect(()=>S.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{b(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{p.flushSync(()=>{b(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[]),f.useEffect(()=>{if(d!==`system`){N(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?N(`dark`):N(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{N(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{N(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),f.useEffect(()=>{y.length<=1&&O(!1)},[y]),f.useEffect(()=>{let e=e=>{if(a.length>0&&a.every(t=>e[t]||e.code===t)){var t;O(!0),(t=P.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===P.current||P.current?.contains(document.activeElement))&&O(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),f.useEffect(()=>{if(P.current)return()=>{R.current&&(R.current.focus({preventScroll:!0}),R.current=null,z.current=!1)}},[P.current]),f.createElement(`section`,{ref:t,"aria-label":re??`${ie} ${F}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0,"data-react-aria-top-layer":!0},C.map((t,n)=>{let[i,a]=t.split(`-`);return x.length?f.createElement(`ol`,{key:t,dir:_===`auto`?L():_,tabIndex:-1,ref:P,className:c,"data-sonner-toaster":!0,"data-sonner-theme":ae,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${w[0]?.height||0}px`,"--width":`${j}px`,"--gap":`${v}px`,...h,...oe(l,u)},onBlur:e=>{z.current&&!e.currentTarget.contains(e.relatedTarget)&&(z.current=!1,R.current&&=(R.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||z.current||(z.current=!0,R.current=e.relatedTarget)},onMouseEnter:()=>O(!0),onMouseMove:()=>O(!0),onMouseLeave:()=>{k||O(!1)},onDragEnd:()=>O(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||A(!0)},onPointerUp:()=>A(!1)},x.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>f.createElement(I,{key:n.id,icons:ne,index:i,toast:n,defaultRichColors:ee,duration:g?.duration??m,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:te,closeButton:g?.closeButton??s,interacting:k,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:B,toasts:x.filter(e=>e.position==n.position),heights:w.filter(e=>e.position==n.position),setHeights:T,expandByDefault:o,gap:v,expanded:E,swipeDirections:e.swipeDirections}))):null}))}),z=`console-theme`;function B(e){return e===`light`||e===`dark`?e:`dark`}function se(e=`dark`){if(typeof window>`u`||!window.localStorage)return e;try{return B(window.localStorage.getItem(`console-theme`)??e)}catch{return e}}function ce(e){return e===`dark`}function V(e){typeof document>`u`||(document.documentElement.dataset.theme=ce(e)?`dark`:`light`)}function le(e){if(typeof window<`u`)try{window.localStorage.setItem(z,e)}catch{}V(e)}function ue(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ue(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function de(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ue(e))&&(r&&(r+=` `),r+=t);return r}var fe=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},pe=(e,t)=>({classGroupId:e,validator:t}),me=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),H=`-`,he=[],ge=`arbitrary..`,U=e=>{let t=ye(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return ve(e);let n=e.split(H);return _e(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?fe(i,t):t:i||he}return n[e]||he}}},_e=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=_e(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(H):e.slice(t).join(H),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},ve=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?ge+r:void 0})(),ye=e=>{let{theme:t,classGroups:n}=e;return be(n,t)},be=(e,t)=>{let n=me();for(let r in e){let i=e[r];xe(i,n,r,t)}return n},xe=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Se(i,t,n,r)}},Se=(e,t,n,r)=>{if(typeof e==`string`){Ce(e,t,n);return}if(typeof e==`function`){we(e,t,n,r);return}Te(e,t,n,r)},Ce=(e,t,n)=>{let r=e===``?t:Ee(t,e);r.classGroupId=n},we=(e,t,n,r)=>{if(De(e)){xe(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(pe(n,e))},Te=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];xe(o,Ee(t,a),n,r)}},Ee=(e,t)=>{let n=e,r=t.split(H),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=me(),n.nextPart.set(t,i)),n=i}return n},De=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Oe=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},ke=`!`,Ae=`:`,je=[],W=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Me=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Ae){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(ke)?(c=s.slice(0,-1),l=!0):s.startsWith(ke)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return W(t,l,c,u)};if(t){let e=t+Ae,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):W(je,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Ne=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},G=e=>({cache:Oe(e.cacheSize),parseClassName:Me(e),sortModifiers:Ne(e),postfixLookupClassGroupIds:Pe(e),...U(e)}),Pe=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},Fe=/\s+/,Ie=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(Fe),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:ee}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let m=!!ee,h;if(m){h=r(p.substring(0,ee));let e=h&&o[h]?r(p):void 0;e&&e!==h&&(h=e,m=!1)}else h=r(p);if(!h){if(!m){l=t+(l.length>0?` `+l:l);continue}if(h=r(p),!h){l=t+(l.length>0?` `+l:l);continue}m=!1}let te=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),g=f?te+ke:te,_=g+h;if(s.indexOf(_)>-1)continue;s.push(_);let v=i(h,m);for(let e=0;e<v.length;++e){let t=v[e];s.push(g+t)}l=t+(l.length>0?` `+l:l)}return l},Le=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Re(n))&&(i&&(i+=` `),i+=r);return i},Re=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Re(e[r]))&&(n&&(n+=` `),n+=t);return n},ze=(e,...t)=>{let n,r,i,a,o=o=>(n=G(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=Ie(e,n);return i(e,a),a};return a=o,(...e)=>a(Le(...e))},Be=[],K=e=>{let t=t=>t[e]||Be;return t.isThemeGetter=!0,t.themeKey=e,t},Ve=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,He=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ue=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,We=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ge=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ke=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,qe=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Je=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>Ue.test(e),J=e=>!!e&&!Number.isNaN(Number(e)),Y=e=>!!e&&Number.isInteger(Number(e)),Ye=e=>e.endsWith(`%`)&&J(e.slice(0,-1)),X=e=>We.test(e),Xe=()=>!0,Ze=e=>Ge.test(e)&&!Ke.test(e),Qe=()=>!1,$e=e=>qe.test(e),et=e=>Je.test(e),tt=e=>!Z(e)&&!Q(e),nt=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),rt=e=>$(e,xt,Qe),Z=e=>Ve.test(e),it=e=>$(e,St,Ze),at=e=>$(e,Ct,J),ot=e=>$(e,Tt,Xe),st=e=>$(e,wt,Qe),ct=e=>$(e,yt,Qe),lt=e=>$(e,bt,et),ut=e=>$(e,Et,$e),Q=e=>He.test(e),dt=e=>vt(e,St),ft=e=>vt(e,wt),pt=e=>vt(e,yt),mt=e=>vt(e,xt),ht=e=>vt(e,bt),gt=e=>vt(e,Et,!0),_t=e=>vt(e,Tt,!0),$=(e,t,n)=>{let r=Ve.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},vt=(e,t,n=!1)=>{let r=He.exec(e);return r?r[1]?t(r[1]):n:!1},yt=e=>e===`position`||e===`percentage`,bt=e=>e===`image`||e===`url`,xt=e=>e===`length`||e===`size`||e===`bg-size`,St=e=>e===`length`,Ct=e=>e===`number`,wt=e=>e===`family-name`,Tt=e=>e===`number`||e===`weight`,Et=e=>e===`shadow`,Dt=()=>{let e=K(`color`),t=K(`font`),n=K(`text`),r=K(`font-weight`),i=K(`tracking`),a=K(`leading`),o=K(`breakpoint`),s=K(`container`),c=K(`spacing`),l=K(`radius`),u=K(`shadow`),d=K(`inset-shadow`),f=K(`text-shadow`),p=K(`drop-shadow`),ee=K(`blur`),m=K(`perspective`),h=K(`aspect`),te=K(`ease`),g=K(`animate`),_=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],v=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],ne=()=>[...v(),Q,Z],re=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],ie=()=>[`auto`,`contain`,`none`],y=()=>[Q,Z,c],b=()=>[q,`full`,`auto`,...y()],x=()=>[Y,`none`,`subgrid`,Q,Z],S=()=>[`auto`,{span:[`full`,Y,Q,Z]},Y,Q,Z],C=()=>[Y,`auto`,Q,Z],w=()=>[`auto`,`min`,`max`,`fr`,Q,Z],T=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],E=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],D=()=>[`auto`,...y()],O=()=>[q,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...y()],k=()=>[s,q,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...y()],A=()=>[q,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...y()],j=()=>[e,Q,Z],M=()=>[...v(),pt,ct,{position:[Q,Z]}],ae=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],N=()=>[`auto`,`cover`,`contain`,mt,rt,{size:[Q,Z]}],P=()=>[Ye,dt,it],F=()=>[``,`none`,`full`,l,Q,Z],I=()=>[``,J,dt,it],L=()=>[`solid`,`dashed`,`dotted`,`double`],oe=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],R=()=>[J,Ye,pt,ct],z=()=>[``,`none`,ee,Q,Z],B=()=>[`none`,J,Q,Z],se=()=>[`none`,J,Q,Z],ce=()=>[J,Q,Z],V=()=>[q,`full`,...y()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[X],breakpoint:[X],color:[Xe],container:[X],"drop-shadow":[X],ease:[`in`,`out`,`in-out`],font:[tt],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[X],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[X],shadow:[X],spacing:[`px`,J],text:[X],"text-shadow":[X],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,q,Z,Q,h]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Q,Z]}],"container-named":[nt],columns:[{columns:[J,`auto`,Z,Q,s]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:ne()}],overflow:[{overflow:re()}],"overflow-x":[{"overflow-x":re()}],"overflow-y":[{"overflow-y":re()}],overscroll:[{overscroll:ie()}],"overscroll-x":[{"overscroll-x":ie()}],"overscroll-y":[{"overscroll-y":ie()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:b()}],"inset-x":[{"inset-x":b()}],"inset-y":[{"inset-y":b()}],start:[{"inset-s":b(),start:b()}],end:[{"inset-e":b(),end:b()}],"inset-bs":[{"inset-bs":b()}],"inset-be":[{"inset-be":b()}],top:[{top:b()}],right:[{right:b()}],bottom:[{bottom:b()}],left:[{left:b()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[Y,`auto`,Q,Z]}],basis:[{basis:[q,`full`,`auto`,s,...y()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[J,q,`auto`,`initial`,`none`,Z]}],grow:[{grow:[``,J,Q,Z]}],shrink:[{shrink:[``,J,Q,Z]}],order:[{order:[Y,`first`,`last`,`none`,Q,Z]}],"grid-cols":[{"grid-cols":x()}],"col-start-end":[{col:S()}],"col-start":[{"col-start":C()}],"col-end":[{"col-end":C()}],"grid-rows":[{"grid-rows":x()}],"row-start-end":[{row:S()}],"row-start":[{"row-start":C()}],"row-end":[{"row-end":C()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":w()}],"auto-rows":[{"auto-rows":w()}],gap:[{gap:y()}],"gap-x":[{"gap-x":y()}],"gap-y":[{"gap-y":y()}],"justify-content":[{justify:[...T(),`normal`]}],"justify-items":[{"justify-items":[...E(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...E()]}],"align-content":[{content:[`normal`,...T()]}],"align-items":[{items:[...E(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...E(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":T()}],"place-items":[{"place-items":[...E(),`baseline`]}],"place-self":[{"place-self":[`auto`,...E()]}],p:[{p:y()}],px:[{px:y()}],py:[{py:y()}],ps:[{ps:y()}],pe:[{pe:y()}],pbs:[{pbs:y()}],pbe:[{pbe:y()}],pt:[{pt:y()}],pr:[{pr:y()}],pb:[{pb:y()}],pl:[{pl:y()}],m:[{m:D()}],mx:[{mx:D()}],my:[{my:D()}],ms:[{ms:D()}],me:[{me:D()}],mbs:[{mbs:D()}],mbe:[{mbe:D()}],mt:[{mt:D()}],mr:[{mr:D()}],mb:[{mb:D()}],ml:[{ml:D()}],"space-x":[{"space-x":y()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":y()}],"space-y-reverse":[`space-y-reverse`],size:[{size:O()}],"inline-size":[{inline:[`auto`,...k()]}],"min-inline-size":[{"min-inline":[`auto`,...k()]}],"max-inline-size":[{"max-inline":[`none`,...k()]}],"block-size":[{block:[`auto`,...A()]}],"min-block-size":[{"min-block":[`auto`,...A()]}],"max-block-size":[{"max-block":[`none`,...A()]}],w:[{w:[s,`screen`,...O()]}],"min-w":[{"min-w":[s,`screen`,`none`,...O()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...O()]}],h:[{h:[`screen`,`lh`,...O()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...O()]}],"max-h":[{"max-h":[`screen`,`lh`,`none`,...O()]}],"font-size":[{text:[`base`,n,dt,it]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,_t,ot]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Ye,Z]}],"font-family":[{font:[ft,st,t]}],"font-features":[{"font-features":[Z]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Q,Z]}],"line-clamp":[{"line-clamp":[J,`none`,Q,at]}],leading:[{leading:[`none`,a,...y()]}],"list-image":[{"list-image":[`none`,Q,Z]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Q,Z]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:j()}],"text-color":[{text:j()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...L(),`wavy`]}],"text-decoration-thickness":[{decoration:[J,`from-font`,`auto`,Q,it]}],"text-decoration-color":[{decoration:j()}],"underline-offset":[{"underline-offset":[J,`auto`,Q,Z]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:y()}],"tab-size":[{tab:[Y,Q,Z]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Q,Z]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Q,Z]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:M()}],"bg-repeat":[{bg:ae()}],"bg-size":[{bg:N()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},Y,Q,Z],radial:[``,Q,Z],conic:[``,Y,Q,Z]},ht,lt]}],"bg-color":[{bg:j()}],"gradient-from-pos":[{from:P()}],"gradient-via-pos":[{via:P()}],"gradient-to-pos":[{to:P()}],"gradient-from":[{from:j()}],"gradient-via":[{via:j()}],"gradient-to":[{to:j()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:I()}],"border-w-x":[{"border-x":I()}],"border-w-y":[{"border-y":I()}],"border-w-s":[{"border-s":I()}],"border-w-e":[{"border-e":I()}],"border-w-bs":[{"border-bs":I()}],"border-w-be":[{"border-be":I()}],"border-w-t":[{"border-t":I()}],"border-w-r":[{"border-r":I()}],"border-w-b":[{"border-b":I()}],"border-w-l":[{"border-l":I()}],"divide-x":[{"divide-x":I()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":I()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...L(),`hidden`,`none`]}],"divide-style":[{divide:[...L(),`hidden`,`none`]}],"border-color":[{border:j()}],"border-color-x":[{"border-x":j()}],"border-color-y":[{"border-y":j()}],"border-color-s":[{"border-s":j()}],"border-color-e":[{"border-e":j()}],"border-color-bs":[{"border-bs":j()}],"border-color-be":[{"border-be":j()}],"border-color-t":[{"border-t":j()}],"border-color-r":[{"border-r":j()}],"border-color-b":[{"border-b":j()}],"border-color-l":[{"border-l":j()}],"divide-color":[{divide:j()}],"outline-style":[{outline:[...L(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[J,Q,Z]}],"outline-w":[{outline:[``,J,dt,it]}],"outline-color":[{outline:j()}],shadow:[{shadow:[``,`inner`,`none`,u,gt,ut]}],"shadow-color":[{shadow:j()}],"inset-shadow":[{"inset-shadow":[`none`,d,gt,ut]}],"inset-shadow-color":[{"inset-shadow":j()}],"ring-w":[{ring:I()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:j()}],"ring-offset-w":[{"ring-offset":[J,it]}],"ring-offset-color":[{"ring-offset":j()}],"inset-ring-w":[{"inset-ring":I()}],"inset-ring-color":[{"inset-ring":j()}],"text-shadow":[{"text-shadow":[`none`,f,gt,ut]}],"text-shadow-color":[{"text-shadow":j()}],opacity:[{opacity:[J,Q,Z]}],"mix-blend":[{"mix-blend":[...oe(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":oe()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[J]}],"mask-image-linear-from-pos":[{"mask-linear-from":R()}],"mask-image-linear-to-pos":[{"mask-linear-to":R()}],"mask-image-linear-from-color":[{"mask-linear-from":j()}],"mask-image-linear-to-color":[{"mask-linear-to":j()}],"mask-image-t-from-pos":[{"mask-t-from":R()}],"mask-image-t-to-pos":[{"mask-t-to":R()}],"mask-image-t-from-color":[{"mask-t-from":j()}],"mask-image-t-to-color":[{"mask-t-to":j()}],"mask-image-r-from-pos":[{"mask-r-from":R()}],"mask-image-r-to-pos":[{"mask-r-to":R()}],"mask-image-r-from-color":[{"mask-r-from":j()}],"mask-image-r-to-color":[{"mask-r-to":j()}],"mask-image-b-from-pos":[{"mask-b-from":R()}],"mask-image-b-to-pos":[{"mask-b-to":R()}],"mask-image-b-from-color":[{"mask-b-from":j()}],"mask-image-b-to-color":[{"mask-b-to":j()}],"mask-image-l-from-pos":[{"mask-l-from":R()}],"mask-image-l-to-pos":[{"mask-l-to":R()}],"mask-image-l-from-color":[{"mask-l-from":j()}],"mask-image-l-to-color":[{"mask-l-to":j()}],"mask-image-x-from-pos":[{"mask-x-from":R()}],"mask-image-x-to-pos":[{"mask-x-to":R()}],"mask-image-x-from-color":[{"mask-x-from":j()}],"mask-image-x-to-color":[{"mask-x-to":j()}],"mask-image-y-from-pos":[{"mask-y-from":R()}],"mask-image-y-to-pos":[{"mask-y-to":R()}],"mask-image-y-from-color":[{"mask-y-from":j()}],"mask-image-y-to-color":[{"mask-y-to":j()}],"mask-image-radial":[{"mask-radial":[Q,Z]}],"mask-image-radial-from-pos":[{"mask-radial-from":R()}],"mask-image-radial-to-pos":[{"mask-radial-to":R()}],"mask-image-radial-from-color":[{"mask-radial-from":j()}],"mask-image-radial-to-color":[{"mask-radial-to":j()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[J]}],"mask-image-conic-from-pos":[{"mask-conic-from":R()}],"mask-image-conic-to-pos":[{"mask-conic-to":R()}],"mask-image-conic-from-color":[{"mask-conic-from":j()}],"mask-image-conic-to-color":[{"mask-conic-to":j()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:M()}],"mask-repeat":[{mask:ae()}],"mask-size":[{mask:N()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Q,Z]}],filter:[{filter:[``,`none`,Q,Z]}],blur:[{blur:z()}],brightness:[{brightness:[J,Q,Z]}],contrast:[{contrast:[J,Q,Z]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,gt,ut]}],"drop-shadow-color":[{"drop-shadow":j()}],grayscale:[{grayscale:[``,J,Q,Z]}],"hue-rotate":[{"hue-rotate":[J,Q,Z]}],invert:[{invert:[``,J,Q,Z]}],saturate:[{saturate:[J,Q,Z]}],sepia:[{sepia:[``,J,Q,Z]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Q,Z]}],"backdrop-blur":[{"backdrop-blur":z()}],"backdrop-brightness":[{"backdrop-brightness":[J,Q,Z]}],"backdrop-contrast":[{"backdrop-contrast":[J,Q,Z]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,J,Q,Z]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[J,Q,Z]}],"backdrop-invert":[{"backdrop-invert":[``,J,Q,Z]}],"backdrop-opacity":[{"backdrop-opacity":[J,Q,Z]}],"backdrop-saturate":[{"backdrop-saturate":[J,Q,Z]}],"backdrop-sepia":[{"backdrop-sepia":[``,J,Q,Z]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":y()}],"border-spacing-x":[{"border-spacing-x":y()}],"border-spacing-y":[{"border-spacing-y":y()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Q,Z]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[J,`initial`,Q,Z]}],ease:[{ease:[`linear`,`initial`,te,Q,Z]}],delay:[{delay:[J,Q,Z]}],animate:[{animate:[`none`,g,Q,Z]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[m,Q,Z]}],"perspective-origin":[{"perspective-origin":ne()}],rotate:[{rotate:B()}],"rotate-x":[{"rotate-x":B()}],"rotate-y":[{"rotate-y":B()}],"rotate-z":[{"rotate-z":B()}],scale:[{scale:se()}],"scale-x":[{"scale-x":se()}],"scale-y":[{"scale-y":se()}],"scale-z":[{"scale-z":se()}],"scale-3d":[`scale-3d`],skew:[{skew:ce()}],"skew-x":[{"skew-x":ce()}],"skew-y":[{"skew-y":ce()}],transform:[{transform:[Q,Z,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:ne()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:V()}],"translate-x":[{"translate-x":V()}],"translate-y":[{"translate-y":V()}],"translate-z":[{"translate-z":V()}],"translate-none":[`translate-none`],zoom:[{zoom:[Y,Q,Z]}],accent:[{accent:j()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:j()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Q,Z]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":j()}],"scrollbar-track-color":[{"scrollbar-track":j()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":y()}],"scroll-mx":[{"scroll-mx":y()}],"scroll-my":[{"scroll-my":y()}],"scroll-ms":[{"scroll-ms":y()}],"scroll-me":[{"scroll-me":y()}],"scroll-mbs":[{"scroll-mbs":y()}],"scroll-mbe":[{"scroll-mbe":y()}],"scroll-mt":[{"scroll-mt":y()}],"scroll-mr":[{"scroll-mr":y()}],"scroll-mb":[{"scroll-mb":y()}],"scroll-ml":[{"scroll-ml":y()}],"scroll-p":[{"scroll-p":y()}],"scroll-px":[{"scroll-px":y()}],"scroll-py":[{"scroll-py":y()}],"scroll-ps":[{"scroll-ps":y()}],"scroll-pe":[{"scroll-pe":y()}],"scroll-pbs":[{"scroll-pbs":y()}],"scroll-pbe":[{"scroll-pbe":y()}],"scroll-pt":[{"scroll-pt":y()}],"scroll-pr":[{"scroll-pr":y()}],"scroll-pb":[{"scroll-pb":y()}],"scroll-pl":[{"scroll-pl":y()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Q,Z]}],fill:[{fill:[`none`,...j()]}],"stroke-w":[{stroke:[J,dt,it,at]}],stroke:[{stroke:[`none`,...j()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`start`,`end`,`right`,`left`],"inset-y":[`inset-bs`,`inset-be`,`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`ps`,`pe`,`pr`,`pl`],py:[`pbs`,`pbe`,`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`ms`,`me`,`mr`,`ml`],my:[`mbs`,`mbe`,`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-s`,`border-w-e`,`border-w-r`,`border-w-l`],"border-w-y":[`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-s`,`border-color-e`,`border-color-r`,`border-color-l`],"border-color-y":[`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-ms`,`scroll-me`,`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-ps`,`scroll-pe`,`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}},Ot=(e,{cacheSize:t,prefix:n,experimentalParseClassName:r,extend:i={},override:a={}})=>(kt(e,`cacheSize`,t),kt(e,`prefix`,n),kt(e,`experimentalParseClassName`,r),At(e.theme,a.theme),At(e.classGroups,a.classGroups),At(e.conflictingClassGroups,a.conflictingClassGroups),At(e.conflictingClassGroupModifiers,a.conflictingClassGroupModifiers),kt(e,`postfixLookupClassGroups`,a.postfixLookupClassGroups),kt(e,`orderSensitiveModifiers`,a.orderSensitiveModifiers),jt(e.theme,i.theme),jt(e.classGroups,i.classGroups),jt(e.conflictingClassGroups,i.conflictingClassGroups),jt(e.conflictingClassGroupModifiers,i.conflictingClassGroupModifiers),Mt(e,i,`postfixLookupClassGroups`),Mt(e,i,`orderSensitiveModifiers`),e),kt=(e,t,n)=>{n!==void 0&&(e[t]=n)},At=(e,t)=>{if(t)for(let n in t)kt(e,n,t[n])},jt=(e,t)=>{if(t)for(let n in t)Mt(e,t,n)},Mt=(e,t,n)=>{let r=t[n];r!==void 0&&(e[n]=e[n]?e[n].concat(r):r)},Nt=((e,...t)=>typeof e==`function`?ze(Dt,e,...t):ze(()=>Ot(Dt(),e),...t))({extend:{classGroups:{"font-size":[{text:[`micro`,`badge`,`caption`,`body`,`body-lg`,`lead`,`title`,`display`,`hero`]}]}}});function Pt(...e){return Nt(de(e))}var Ft={primary:`btn-primary bg-accent text-accent-foreground hover:bg-accent-hover`,secondary:`btn-secondary border border-inner-border bg-hover text-text-primary hover:bg-active-pill hover:border-border-strong`,ghost:`btn-ghost text-text-secondary hover:bg-hover hover:text-text-primary`,danger:`btn-danger bg-red text-white hover:opacity-90`},It={sm:`btn-sm h-15 px-5 text-badge [&_svg]:size-6.5`,md:``,lg:``,icon:`btn-icon size-17 p-0 grid place-items-center [&_svg]:size-7.5`};function Lt({variant:e=`secondary`,size:t=`md`,className:n}={}){return Pt(`btn inline-flex items-center justify-center gap-3.5 rounded-control font-semibold text-caption px-7 py-2 transition-all active:scale-[0.97]`,Ft[e],It[t],n)}var Rt=(0,f.forwardRef)(({className:e=``,variant:t=`secondary`,size:n=`md`,icon:r,label:i,loading:a=!1,children:o,type:s=`button`,...l},u)=>{let f=n===`icon`&&i!==void 0,p=a?(0,d.jsx)(c,{size:14,className:`animate-spin`}):r;return(0,d.jsxs)(`button`,{ref:u,type:s,className:Lt({variant:t,size:f?`md`:n,className:f?Pt(`btn-labeled h-15 px-5 gap-3 text-badge [&_svg]:size-6.5`,e):e}),"aria-busy":a||void 0,...l,children:[p?(0,d.jsx)(`span`,{className:`btn-icon-wrapper inline-flex items-center`,"aria-hidden":`true`,children:p}):null,f?(0,d.jsx)(`span`,{className:`btn-label`,children:i}):o]})});Rt.displayName=`Button`;function zt(e,t){let n=[e,t].filter(e=>!!e).join(`
|
|
2
|
-
`);return{...t?{description:t}:{},action:{label:`Copy`,onClick:()=>{if(!navigator.clipboard){T.error(`Clipboard unavailable`);return}navigator.clipboard.writeText(n).then(()=>T.success(`Toast content copied`,{duration:2e3}),()=>T.error(`Copy failed`,{duration:2e3}))}}}}var Bt={success:(e,t)=>T.success(e,zt(e,t)),successRich:(e,t,n)=>T.success(e,{description:t,action:{label:`Copy`,onClick:()=>{if(!navigator.clipboard){T.error(`Clipboard unavailable`);return}navigator.clipboard.writeText(`${e}\n${n}`).then(()=>T.success(`Toast content copied`,{duration:2e3}),()=>T.error(`Copy failed`,{duration:2e3}))}}}),error:(e,t)=>T.error(e,zt(e,t)),dismiss:e=>T.dismiss(e)};export{a as _,de as a,se as c,T as d,u as f,o as g,s as h,Pt as i,le as l,c as m,Rt as n,V as o,l as p,Lt as r,ce as s,Bt as t,R as u};
|