@tinyrack/issuary-server 0.26.0 → 0.27.0
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/dist/entities/terms-content.entity.d.ts +9 -0
- package/dist/entities/terms-content.entity.d.ts.map +1 -1
- package/dist/entities/terms.entity.d.ts +9 -0
- package/dist/entities/terms.entity.d.ts.map +1 -1
- package/dist/entities/terms.entity.js +4 -0
- package/dist/entities/terms.entity.js.map +1 -1
- package/dist/entities/user-terms-consent.entity.d.ts +9 -0
- package/dist/entities/user-terms-consent.entity.d.ts.map +1 -1
- package/dist/entrypoints/app.d.ts +598 -3
- package/dist/entrypoints/app.d.ts.map +1 -1
- package/dist/entrypoints/database/postgres/compiled-functions.d.ts +19 -16
- package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -1
- package/dist/entrypoints/database/postgres/compiled-functions.js +133 -76
- package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -1
- package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +19 -16
- package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -1
- package/dist/entrypoints/database/sqlite/compiled-functions.js +133 -76
- package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -1
- package/dist/lib/config/branding.d.ts +5 -0
- package/dist/lib/config/branding.d.ts.map +1 -1
- package/dist/lib/config/branding.js +23 -1
- package/dist/lib/config/branding.js.map +1 -1
- package/dist/lib/config/resolved.d.ts +3 -0
- package/dist/lib/config/resolved.d.ts.map +1 -1
- package/dist/lib/interpolate-html.d.ts +3 -3
- package/dist/lib/interpolate-html.js +3 -3
- package/dist/lib/interpolate-html.js.map +1 -1
- package/dist/migrations/postgres/Migration20260827090000_archive_terms.d.ts +6 -0
- package/dist/migrations/postgres/Migration20260827090000_archive_terms.d.ts.map +1 -0
- package/dist/migrations/postgres/Migration20260827090000_archive_terms.js +12 -0
- package/dist/migrations/postgres/Migration20260827090000_archive_terms.js.map +1 -0
- package/dist/migrations/postgres/index.d.ts.map +1 -1
- package/dist/migrations/postgres/index.js +2 -0
- package/dist/migrations/postgres/index.js.map +1 -1
- package/dist/migrations/sqlite/Migration20260827090000_archive_terms.d.ts +6 -0
- package/dist/migrations/sqlite/Migration20260827090000_archive_terms.d.ts.map +1 -0
- package/dist/migrations/sqlite/Migration20260827090000_archive_terms.js +12 -0
- package/dist/migrations/sqlite/Migration20260827090000_archive_terms.js.map +1 -0
- package/dist/migrations/sqlite/index.d.ts.map +1 -1
- package/dist/migrations/sqlite/index.js +2 -0
- package/dist/migrations/sqlite/index.js.map +1 -1
- package/dist/repositories/terms.repository.d.ts.map +1 -1
- package/dist/repositories/terms.repository.js +1 -1
- package/dist/repositories/terms.repository.js.map +1 -1
- package/dist/routes/api/admin/console/index.d.ts +523 -0
- package/dist/routes/api/admin/console/index.d.ts.map +1 -0
- package/dist/routes/api/admin/console/index.js +212 -0
- package/dist/routes/api/admin/console/index.js.map +1 -0
- package/dist/routes/api/admin/index.d.ts +584 -0
- package/dist/routes/api/admin/index.d.ts.map +1 -1
- package/dist/routes/api/admin/index.js +3 -1
- package/dist/routes/api/admin/index.js.map +1 -1
- package/dist/routes/api/admin/users/index.d.ts +64 -0
- package/dist/routes/api/admin/users/index.d.ts.map +1 -1
- package/dist/routes/api/admin/users/index.js +47 -0
- package/dist/routes/api/admin/users/index.js.map +1 -1
- package/dist/routes/api/config/get.d.ts +10 -3
- package/dist/routes/api/config/get.d.ts.map +1 -1
- package/dist/routes/api/config/get.js +3 -0
- package/dist/routes/api/config/get.js.map +1 -1
- package/dist/routes/api/config/index.d.ts +10 -3
- package/dist/routes/api/config/index.d.ts.map +1 -1
- package/dist/routes/api/index.d.ts +594 -3
- package/dist/routes/api/index.d.ts.map +1 -1
- package/dist/routes/index.d.ts +594 -3
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/schemas/response.d.ts +4 -1
- package/dist/schemas/response.d.ts.map +1 -1
- package/dist/schemas/response.js +11 -2
- package/dist/schemas/response.js.map +1 -1
- package/dist/services/admin-console.service.d.ts +407 -0
- package/dist/services/admin-console.service.d.ts.map +1 -0
- package/dist/services/admin-console.service.js +377 -0
- package/dist/services/admin-console.service.js.map +1 -0
- package/dist/services/container.d.ts +5 -0
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +3 -0
- package/dist/services/container.js.map +1 -1
- package/dist/services/user.service.d.ts +21 -0
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +65 -1
- package/dist/services/user.service.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/2fa-BowFczF7.js +2 -0
- package/public/assets/2fa-BowFczF7.js.map +1 -0
- package/public/assets/2fa-C_pA-n2i.js +2 -0
- package/public/assets/{2fa-DFTcWEMb.js.map → 2fa-C_pA-n2i.js.map} +1 -1
- package/public/assets/2fa-Cpfhakvn.js +2 -0
- package/public/assets/{2fa-huNZDYU9.js.map → 2fa-Cpfhakvn.js.map} +1 -1
- package/public/assets/2fa-o1a13VHx.js +2 -0
- package/public/assets/2fa-o1a13VHx.js.map +1 -0
- package/public/assets/FieldControl-ShLuCjvG.js +2 -0
- package/public/assets/FieldControl-ShLuCjvG.js.map +1 -0
- package/public/assets/Separator-C6MmGAmP.js +2 -0
- package/public/assets/Separator-C6MmGAmP.js.map +1 -0
- package/public/assets/admin-_jFLs8Ve.js +2 -0
- package/public/assets/admin-_jFLs8Ve.js.map +1 -0
- package/public/assets/admin-shell-B91U4-Ro.js +2 -0
- package/public/assets/admin-shell-B91U4-Ro.js.map +1 -0
- package/public/assets/alert-D3aaK-_3.js +2 -0
- package/public/assets/alert-D3aaK-_3.js.map +1 -0
- package/public/assets/alert-kRxM1xsM.js +2 -0
- package/public/assets/alert-kRxM1xsM.js.map +1 -0
- package/public/assets/auth-choice-row-h4heOMHs.js +2 -0
- package/public/assets/auth-choice-row-h4heOMHs.js.map +1 -0
- package/public/assets/auth-field-BpJ4AHtU.js +2 -0
- package/public/assets/{auth-field-CWyXGKoC.js.map → auth-field-BpJ4AHtU.js.map} +1 -1
- package/public/assets/auth-footer-Du6S-oDG.js +2 -0
- package/public/assets/auth-footer-Du6S-oDG.js.map +1 -0
- package/public/assets/auth-layout-BdRRr0vT.js +2 -0
- package/public/assets/auth-layout-BdRRr0vT.js.map +1 -0
- package/public/assets/auth-page-header-ChaCNNrn.js +2 -0
- package/public/assets/{auth-page-header-DgGAaIiP.js.map → auth-page-header-ChaCNNrn.js.map} +1 -1
- package/public/assets/authorization-context-banner-zVxGX5e8.js +2 -0
- package/public/assets/{authorization-context-banner-DznMDPOX.js.map → authorization-context-banner-zVxGX5e8.js.map} +1 -1
- package/public/assets/avatar-BxTPQIDp.js +2 -0
- package/public/assets/{avatar-D-FRGa1m.js.map → avatar-BxTPQIDp.js.map} +1 -1
- package/public/assets/badge-B8D0Q2qq.js +2 -0
- package/public/assets/{badge-CsOfUji0.js.map → badge-B8D0Q2qq.js.map} +1 -1
- package/public/assets/checkbox-DTPGfvmq.js +2 -0
- package/public/assets/{checkbox-C90dDDza.js.map → checkbox-DTPGfvmq.js.map} +1 -1
- package/public/assets/{circle-check-6QTLhwM_.js → circle-check-Cnzuu7xR.js} +2 -2
- package/public/assets/{circle-check-6QTLhwM_.js.map → circle-check-Cnzuu7xR.js.map} +1 -1
- package/public/assets/clients-DLqy7K3N.js +5 -0
- package/public/assets/clients-DLqy7K3N.js.map +1 -0
- package/public/assets/config-C18-l7z7.js +2 -0
- package/public/assets/config-C18-l7z7.js.map +1 -0
- package/public/assets/{consent-RtCi_85E.js → consent-BWniDzI3.js} +2 -2
- package/public/assets/{consent-RtCi_85E.js.map → consent-BWniDzI3.js.map} +1 -1
- package/public/assets/consent-r_tX8DTb.js +2 -0
- package/public/assets/{consent-B9sQEyO8.js.map → consent-r_tX8DTb.js.map} +1 -1
- package/public/assets/{createLucideIcon-BPpAIXR_.js → createLucideIcon-D-yizrWN.js} +2 -2
- package/public/assets/{createLucideIcon-BPpAIXR_.js.map → createLucideIcon-D-yizrWN.js.map} +1 -1
- package/public/assets/design-system-rich-text-B3NzIRoJ.js +2 -0
- package/public/assets/design-system-rich-text-B3NzIRoJ.js.map +1 -0
- package/public/assets/email-Bx9JlWp3.js +2 -0
- package/public/assets/email-Bx9JlWp3.js.map +1 -0
- package/public/assets/email-Cpfhakvn.js +2 -0
- package/public/assets/email-Cpfhakvn.js.map +1 -0
- package/public/assets/error-DDY8m_Px.js +2 -0
- package/public/assets/error-DDY8m_Px.js.map +1 -0
- package/public/assets/field-CsrUbl__.js +3 -0
- package/public/assets/field-CsrUbl__.js.map +1 -0
- package/public/assets/{fingerprint-pattern-DP62Vk8x.js → fingerprint-pattern-BwUoN1_w.js} +2 -2
- package/public/assets/{fingerprint-pattern-DP62Vk8x.js.map → fingerprint-pattern-BwUoN1_w.js.map} +1 -1
- package/public/assets/forgot-Cpfhakvn.js +2 -0
- package/public/assets/forgot-Cpfhakvn.js.map +1 -0
- package/public/assets/forgot-u52JMu6e.js +2 -0
- package/public/assets/forgot-u52JMu6e.js.map +1 -0
- package/public/assets/form-sJw-V9wb.js +2 -0
- package/public/assets/form-sJw-V9wb.js.map +1 -0
- package/public/assets/index-8mX6CKcW.css +2 -0
- package/public/assets/index-lTEyHSus.js +11 -0
- package/public/assets/index-lTEyHSus.js.map +1 -0
- package/public/assets/initial-avatar-WMjxW3Zz.js +2 -0
- package/public/assets/initial-avatar-WMjxW3Zz.js.map +1 -0
- package/public/assets/input-QvBxPgy5.js +2 -0
- package/public/assets/{input-CxVeC8Pn.js.map → input-QvBxPgy5.js.map} +1 -1
- package/public/assets/{key-round-CdvHb8vT.js → key-round-BxWppK6h.js} +2 -2
- package/public/assets/{key-round-CdvHb8vT.js.map → key-round-BxWppK6h.js.map} +1 -1
- package/public/assets/labeled-separator-DdkyYDWH.js +2 -0
- package/public/assets/labeled-separator-DdkyYDWH.js.map +1 -0
- package/public/assets/link-BHmn75Zo.js +2 -0
- package/public/assets/{link-C-WdTj3F.js.map → link-BHmn75Zo.js.map} +1 -1
- package/public/assets/{lock-7NRyvXBS.js → lock-8wpR2C78.js} +2 -2
- package/public/assets/{lock-7NRyvXBS.js.map → lock-8wpR2C78.js.map} +1 -1
- package/public/assets/login-Cpfhakvn.js +2 -0
- package/public/assets/login-Cpfhakvn.js.map +1 -0
- package/public/assets/login-DRcHjJ2-.js +2 -0
- package/public/assets/login-DRcHjJ2-.js.map +1 -0
- package/public/assets/logout-Dphj1d_0.js +2 -0
- package/public/assets/logout-Dphj1d_0.js.map +1 -0
- package/public/assets/{mail-D0B_1Dzd.js → mail-DVP_XMUi.js} +2 -2
- package/public/assets/{mail-D0B_1Dzd.js.map → mail-DVP_XMUi.js.map} +1 -1
- package/public/assets/modal-JuaLVSyx.js +2 -0
- package/public/assets/modal-JuaLVSyx.js.map +1 -0
- package/public/assets/mutationOptions-Cv_vJkJn.js +2 -0
- package/public/assets/{mutationOptions-DyYFUbyn.js.map → mutationOptions-Cv_vJkJn.js.map} +1 -1
- package/public/assets/passkey-CObBlfKK.js +2 -0
- package/public/assets/passkey-CObBlfKK.js.map +1 -0
- package/public/assets/{passkey-J1qnYp9A.js → passkey-CWTjw19S.js} +2 -2
- package/public/assets/{passkey-J1qnYp9A.js.map → passkey-CWTjw19S.js.map} +1 -1
- package/public/assets/passkey-CavITajY.js +2 -0
- package/public/assets/passkey-CavITajY.js.map +1 -0
- package/public/assets/passkey-Cpfhakvn.js +2 -0
- package/public/assets/passkey-Cpfhakvn.js.map +1 -0
- package/public/assets/{passkey-error-ZqqPQUta.js → passkey-error-CZ26Ss-I.js} +2 -2
- package/public/assets/{passkey-error-ZqqPQUta.js.map → passkey-error-CZ26Ss-I.js.map} +1 -1
- package/public/assets/password-Cpfhakvn.js +2 -0
- package/public/assets/password-Cpfhakvn.js.map +1 -0
- package/public/assets/password-Dk8PwtZN.js +2 -0
- package/public/assets/password-Dk8PwtZN.js.map +1 -0
- package/public/assets/password-reset-BcFpGOop.js +2 -0
- package/public/assets/{password-reset-sU5KkBKi.js.map → password-reset-BcFpGOop.js.map} +1 -1
- package/public/assets/password-strength-Bgvy7kz6.js +2 -0
- package/public/assets/{password-strength-BIPcWiM_.js.map → password-strength-Bgvy7kz6.js.map} +1 -1
- package/public/assets/pin-input-DhsRO4Ei.js +2 -0
- package/public/assets/{pin-input-CITrr-Yc.js.map → pin-input-DhsRO4Ei.js.map} +1 -1
- package/public/assets/profile-PjXEnzA-.js +2 -0
- package/public/assets/profile-PjXEnzA-.js.map +1 -0
- package/public/assets/profile-k66ruDWl.js +2 -0
- package/public/assets/{profile-BHPL9Px_.js.map → profile-k66ruDWl.js.map} +1 -1
- package/public/assets/provider-mark-CeYazOfu.js +2 -0
- package/public/assets/provider-mark-CeYazOfu.js.map +1 -0
- package/public/assets/recovery-hdRyezmb.js +2 -0
- package/public/assets/recovery-hdRyezmb.js.map +1 -0
- package/public/assets/register-Cpfhakvn.js +2 -0
- package/public/assets/register-Cpfhakvn.js.map +1 -0
- package/public/assets/register-DMgKT_fm.js +2 -0
- package/public/assets/register-DMgKT_fm.js.map +1 -0
- package/public/assets/reset-Cpfhakvn.js +2 -0
- package/public/assets/reset-Cpfhakvn.js.map +1 -0
- package/public/assets/reset-DBu3wYpE.js +2 -0
- package/public/assets/reset-DBu3wYpE.js.map +1 -0
- package/public/assets/select-5LheSsRl.js +2 -0
- package/public/assets/select-5LheSsRl.js.map +1 -0
- package/public/assets/select-Cpfhakvn.js +2 -0
- package/public/assets/{select-huNZDYU9.js.map → select-Cpfhakvn.js.map} +1 -1
- package/public/assets/separator-CMGc2Y1q.js +2 -0
- package/public/assets/separator-CMGc2Y1q.js.map +1 -0
- package/public/assets/settings-BVe4k3kJ.js +2 -0
- package/public/assets/settings-BVe4k3kJ.js.map +1 -0
- package/public/assets/shell-header-bar-CdOEWmCT.js +2 -0
- package/public/assets/shell-header-bar-CdOEWmCT.js.map +1 -0
- package/public/assets/{shield-check-D_p8H0ni.js → shield-check-DpYF8yeI.js} +2 -2
- package/public/assets/{shield-check-D_p8H0ni.js.map → shield-check-DpYF8yeI.js.map} +1 -1
- package/public/assets/standard-schema-C50nwAaQ.js +2 -0
- package/public/assets/{standard-schema-e8gtSzGE.js.map → standard-schema-C50nwAaQ.js.map} +1 -1
- package/public/assets/system-BoUqxc5h.js +2 -0
- package/public/assets/system-BoUqxc5h.js.map +1 -0
- package/public/assets/table-Dl89o43x.js +2 -0
- package/public/assets/table-Dl89o43x.js.map +1 -0
- package/public/assets/terms-B2wWfx1d.js +2 -0
- package/public/assets/terms-B2wWfx1d.js.map +1 -0
- package/public/assets/terms-COr3cDw5.js +2 -0
- package/public/assets/terms-COr3cDw5.js.map +1 -0
- package/public/assets/terms-checkbox-list-C9TkDC8Y.js +2 -0
- package/public/assets/terms-checkbox-list-C9TkDC8Y.js.map +1 -0
- package/public/assets/terms-k66ruDWl.js +2 -0
- package/public/assets/terms-k66ruDWl.js.map +1 -0
- package/public/assets/totp-BJycMMTC.js +2 -0
- package/public/assets/totp-BJycMMTC.js.map +1 -0
- package/public/assets/{totp-BNZ904Zm.js → totp-BhElob6P.js} +2 -2
- package/public/assets/{totp-BNZ904Zm.js.map → totp-BhElob6P.js.map} +1 -1
- package/public/assets/totp-C1ba10Is.js +2 -0
- package/public/assets/totp-C1ba10Is.js.map +1 -0
- package/public/assets/{trash-2-DZdKBLvC.js → trash-2-B3NVE8pR.js} +2 -2
- package/public/assets/{trash-2-DZdKBLvC.js.map → trash-2-B3NVE8pR.js.map} +1 -1
- package/public/assets/{triangle-alert-CqNn0kPs.js → triangle-alert-DATO9o3k.js} +2 -2
- package/public/assets/{triangle-alert-CqNn0kPs.js.map → triangle-alert-DATO9o3k.js.map} +1 -1
- package/public/assets/use-admin-selection-D2b7jnym.js +2 -0
- package/public/assets/use-admin-selection-D2b7jnym.js.map +1 -0
- package/public/assets/use-totp-setup-KOVNS2DC.js +3 -0
- package/public/assets/use-totp-setup-KOVNS2DC.js.map +1 -0
- package/public/assets/useAriaLabelledBy-CF3crxLc.js +2 -0
- package/public/assets/{useAriaLabelledBy-IIwdHUss.js.map → useAriaLabelledBy-CF3crxLc.js.map} +1 -1
- package/public/assets/useMutation-DqIIIiBW.js +2 -0
- package/public/assets/{useMutation-BWZ0G4Td.js.map → useMutation-DqIIIiBW.js.map} +1 -1
- package/public/assets/useQuery-CLr9TaKA.js +2 -0
- package/public/assets/{useQuery-Ccv_nzQl.js.map → useQuery-CLr9TaKA.js.map} +1 -1
- package/public/assets/users-BQQQm353.js +2 -0
- package/public/assets/users-BQQQm353.js.map +1 -0
- package/public/assets/{zod-C87S6Tec.js → zod-Dszyrytb.js} +2 -2
- package/public/assets/{zod-C87S6Tec.js.map → zod-Dszyrytb.js.map} +1 -1
- package/public/index.html +6 -6
- package/public/issuary-app-icon-512.png +0 -0
- package/public/issuary-app-icon.svg +8 -0
- package/public/assets/2fa-C9wUlSBS.js +0 -2
- package/public/assets/2fa-C9wUlSBS.js.map +0 -1
- package/public/assets/2fa-DFTcWEMb.js +0 -2
- package/public/assets/2fa-TtshNxXv.js +0 -2
- package/public/assets/2fa-TtshNxXv.js.map +0 -1
- package/public/assets/2fa-huNZDYU9.js +0 -2
- package/public/assets/DialogHandle-DICBMcjK.js +0 -2
- package/public/assets/DialogHandle-DICBMcjK.js.map +0 -1
- package/public/assets/FieldItemContext-BeNfhOsU.js +0 -2
- package/public/assets/FieldItemContext-BeNfhOsU.js.map +0 -1
- package/public/assets/admin-CFZaO1bM.js +0 -2
- package/public/assets/admin-CFZaO1bM.js.map +0 -1
- package/public/assets/admin-users-BK_BN8jm.js +0 -2
- package/public/assets/admin-users-BK_BN8jm.js.map +0 -1
- package/public/assets/alert-leqyvHOp.js +0 -2
- package/public/assets/alert-leqyvHOp.js.map +0 -1
- package/public/assets/auth-choice-row-CXuyJgkR.js +0 -2
- package/public/assets/auth-choice-row-CXuyJgkR.js.map +0 -1
- package/public/assets/auth-field-CWyXGKoC.js +0 -2
- package/public/assets/auth-footer-Cz5ivsDc.js +0 -2
- package/public/assets/auth-footer-Cz5ivsDc.js.map +0 -1
- package/public/assets/auth-layout-CiNn2-Nb.js +0 -2
- package/public/assets/auth-layout-CiNn2-Nb.js.map +0 -1
- package/public/assets/auth-page-header-DgGAaIiP.js +0 -2
- package/public/assets/authorization-context-banner-DznMDPOX.js +0 -2
- package/public/assets/avatar-D-FRGa1m.js +0 -2
- package/public/assets/badge-CsOfUji0.js +0 -2
- package/public/assets/checkbox-C90dDDza.js +0 -2
- package/public/assets/chevron-right-CN0jUyV0.js +0 -2
- package/public/assets/chevron-right-CN0jUyV0.js.map +0 -1
- package/public/assets/config-DTQCUlfZ.js +0 -2
- package/public/assets/config-DTQCUlfZ.js.map +0 -1
- package/public/assets/consent-B9sQEyO8.js +0 -2
- package/public/assets/email-8RKQzeig.js +0 -2
- package/public/assets/email-8RKQzeig.js.map +0 -1
- package/public/assets/email-huNZDYU9.js +0 -2
- package/public/assets/email-huNZDYU9.js.map +0 -1
- package/public/assets/error-BYe3gUMO.js +0 -2
- package/public/assets/error-BYe3gUMO.js.map +0 -1
- package/public/assets/field-BMT214_m.js +0 -3
- package/public/assets/field-BMT214_m.js.map +0 -1
- package/public/assets/forgot-BenoOUxC.js +0 -2
- package/public/assets/forgot-BenoOUxC.js.map +0 -1
- package/public/assets/forgot-huNZDYU9.js +0 -2
- package/public/assets/forgot-huNZDYU9.js.map +0 -1
- package/public/assets/index-CKpnrw9M.js +0 -11
- package/public/assets/index-CKpnrw9M.js.map +0 -1
- package/public/assets/index-Ct9o0oCZ.css +0 -2
- package/public/assets/initial-avatar-E5DK9Igm.js +0 -2
- package/public/assets/initial-avatar-E5DK9Igm.js.map +0 -1
- package/public/assets/input-CxVeC8Pn.js +0 -2
- package/public/assets/labeled-separator-CV7nb0XW.js +0 -2
- package/public/assets/labeled-separator-CV7nb0XW.js.map +0 -1
- package/public/assets/link-C-WdTj3F.js +0 -2
- package/public/assets/login-1YuiZD30.js +0 -2
- package/public/assets/login-1YuiZD30.js.map +0 -1
- package/public/assets/login-huNZDYU9.js +0 -2
- package/public/assets/login-huNZDYU9.js.map +0 -1
- package/public/assets/logout-B5T52P8u.js +0 -2
- package/public/assets/logout-B5T52P8u.js.map +0 -1
- package/public/assets/modal-tByFpy18.js +0 -2
- package/public/assets/modal-tByFpy18.js.map +0 -1
- package/public/assets/mutationOptions-DyYFUbyn.js +0 -2
- package/public/assets/passkey-CgAHaQ1p.js +0 -2
- package/public/assets/passkey-CgAHaQ1p.js.map +0 -1
- package/public/assets/passkey-huNZDYU9.js +0 -2
- package/public/assets/passkey-huNZDYU9.js.map +0 -1
- package/public/assets/passkey-v9Pzv-4A.js +0 -2
- package/public/assets/passkey-v9Pzv-4A.js.map +0 -1
- package/public/assets/password-Cuh9Hnjp.js +0 -2
- package/public/assets/password-Cuh9Hnjp.js.map +0 -1
- package/public/assets/password-huNZDYU9.js +0 -2
- package/public/assets/password-huNZDYU9.js.map +0 -1
- package/public/assets/password-reset-sU5KkBKi.js +0 -2
- package/public/assets/password-strength-BIPcWiM_.js +0 -2
- package/public/assets/pin-input-CITrr-Yc.js +0 -2
- package/public/assets/plus-DSBBSrgj.js +0 -2
- package/public/assets/plus-DSBBSrgj.js.map +0 -1
- package/public/assets/profile-BHPL9Px_.js +0 -2
- package/public/assets/profile-C8KaELVe.js +0 -2
- package/public/assets/profile-C8KaELVe.js.map +0 -1
- package/public/assets/provider-logos-u1YURWQr.js +0 -2
- package/public/assets/provider-logos-u1YURWQr.js.map +0 -1
- package/public/assets/recovery-CVROV9nj.js +0 -2
- package/public/assets/recovery-CVROV9nj.js.map +0 -1
- package/public/assets/register-cpxjX3qr.js +0 -2
- package/public/assets/register-cpxjX3qr.js.map +0 -1
- package/public/assets/register-huNZDYU9.js +0 -2
- package/public/assets/register-huNZDYU9.js.map +0 -1
- package/public/assets/reset-huNZDYU9.js +0 -2
- package/public/assets/reset-huNZDYU9.js.map +0 -1
- package/public/assets/reset-iNqYdsoa.js +0 -2
- package/public/assets/reset-iNqYdsoa.js.map +0 -1
- package/public/assets/select-DdjQtcLJ.js +0 -2
- package/public/assets/select-DdjQtcLJ.js.map +0 -1
- package/public/assets/select-huNZDYU9.js +0 -2
- package/public/assets/separator-B0Bvh1he.js +0 -2
- package/public/assets/separator-B0Bvh1he.js.map +0 -1
- package/public/assets/shell-header-bar-JcFhS7mb.js +0 -2
- package/public/assets/shell-header-bar-JcFhS7mb.js.map +0 -1
- package/public/assets/standard-schema-e8gtSzGE.js +0 -2
- package/public/assets/terms-BHPL9Px_.js +0 -2
- package/public/assets/terms-BHPL9Px_.js.map +0 -1
- package/public/assets/terms-BjwMWDFp.js +0 -2
- package/public/assets/terms-BjwMWDFp.js.map +0 -1
- package/public/assets/terms-checkbox-list-DNOq4Pb2.js +0 -2
- package/public/assets/terms-checkbox-list-DNOq4Pb2.js.map +0 -1
- package/public/assets/totp-D_EWG1h8.js +0 -2
- package/public/assets/totp-D_EWG1h8.js.map +0 -1
- package/public/assets/totp-DetFwOkk.js +0 -2
- package/public/assets/totp-DetFwOkk.js.map +0 -1
- package/public/assets/use-totp-setup-DtlgPUPJ.js +0 -3
- package/public/assets/use-totp-setup-DtlgPUPJ.js.map +0 -1
- package/public/assets/useAriaLabelledBy-IIwdHUss.js +0 -2
- package/public/assets/useMutation-BWZ0G4Td.js +0 -2
- package/public/assets/useQuery-Ccv_nzQl.js +0 -2
- package/public/assets/users-B1gvPM_x.js +0 -2
- package/public/assets/users-B1gvPM_x.js.map +0 -1
- package/public/vite.svg +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-DMgKT_fm.js","names":["standardSchemaResolver","useMutation","useQueryClient","useSuspenseQuery","Link","useNavigate","TRButton","TRForm","LockIcon","MailIcon","useDeferredValue","useMemo","useForm","useTranslation","z","AuthField","AuthFooter","AuthFooterLink","AuthPageHeader","AuthorizationContextBanner","PasswordStrength","TermsCheckboxList","DesignSystemRichText","LabeledSeparator","AuthLayout","IssuaryError","buildAuthenticatedAuthorizeUrl","extractOAuthParams","isOAuthFlow","tick","appConfigQueryOptions","registerMutationOptions","getSessionQueryOptions","getTermsQueryOptions","Route","Register","t","i18n","navigate","queryClient","search","useSearch","lang","language","deferredLang","data","configData","termsData","isPasswordAuthEnabled","auth","password","enabled","passwordPolicy","policy","hasTerms","terms","length","explicitTerms","filter","term","consentMode","hasExplicitTerms","implicitNotice","registration","signup_notice","fallback_language","registerSchema","object","email","string","min","pipe","min_length","count","max","max_length","termsConsents","Object","fromEntries","map","id","required","literal","message","boolean","RegisterFormValues","infer","registerMutation","onSuccess","params","user","email_verification_required","email_verified","to","setQueryData","queryKey","second_factor_required","available_2fa_methods","SecondFactorMethod","totp","push","passkey","method","passkey_name","window","location","href","onError","error","code","setError","type","onSettled","invalidateQueries","register","handleSubmit","control","setValue","watch","formState","errors","defaultValues","resolver","mode","passwordValue","onSubmit","values","consents","termsId","agreed","undefined","mutate","isPending","component"],"sources":["../../../frontend/src/queries/register.ts","../../../frontend/src/routes/register/index.tsx?tsr-split=component"],"sourcesContent":["import { mutationOptions } from '@tanstack/react-query';\nimport type { InferResponseType } from 'hono/client';\nimport { client, jsonOk } from '#frontend/libs/api.ts';\nimport type { TermsConsentItem } from './terms';\n\nexport type RegisterParams = {\n email: string;\n password: string;\n consents?: TermsConsentItem[];\n};\n\nexport type RegisterResponse = InferResponseType<\n (typeof client.api.auth.register)['$post'],\n 200\n>;\n\nexport const registerMutationOptions = mutationOptions({\n mutationFn: async (values: RegisterParams) => {\n const res = await client.api.auth.register.$post({\n json: values,\n header: {},\n });\n return jsonOk(res);\n },\n});\n","import { standardSchemaResolver } from '@hookform/resolvers/standard-schema';\nimport {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from '@tanstack/react-query';\nimport {\n createFileRoute,\n Link,\n redirect,\n useNavigate,\n} from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRForm } from '@tinyrack/ui/components/form';\nimport { LockIcon, MailIcon } from 'lucide-react';\nimport { useDeferredValue, useMemo } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthField } from '#frontend/components/auth/auth-field.tsx';\nimport {\n AuthFooter,\n AuthFooterLink,\n} from '#frontend/components/auth/auth-footer.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { AuthorizationContextBanner } from '#frontend/components/auth/authorization-context-banner.tsx';\nimport { PasswordStrength } from '#frontend/components/auth/password-strength.tsx';\nimport { TermsCheckboxList } from '#frontend/components/terms/terms-checkbox-list.tsx';\nimport { DesignSystemRichText } from '#frontend/components/ui/design-system-rich-text.tsx';\nimport { LabeledSeparator } from '#frontend/components/ui/labeled-separator.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport { IssuaryError } from '#frontend/libs/error.ts';\n\nimport {\n buildAuthenticatedAuthorizeUrl,\n extractOAuthParams,\n hasAuthorizationContext,\n isOAuthFlow,\n OAuthSearchSchema,\n type SecondFactorMethod,\n} from '#frontend/libs/oauth-search.ts';\nimport { tick } from '#frontend/libs/promise.ts';\nimport { getAuthorizationContextQueryOptions } from '#frontend/queries/authorization-context.ts';\nimport { appConfigQueryOptions } from '#frontend/queries/config.ts';\nimport { registerMutationOptions } from '#frontend/queries/register.ts';\nimport { getSessionQueryOptions } from '#frontend/queries/session.ts';\nimport { getTermsQueryOptions } from '#frontend/queries/terms.ts';\n\nexport const Route = createFileRoute('/register/')({\n component: Register,\n errorComponent: RouteErrorFallback,\n validateSearch: OAuthSearchSchema,\n beforeLoad: async ({ context }) => {\n const config = await context.queryClient.ensureQueryData(\n appConfigQueryOptions,\n );\n if (!config.registration.public_registration) {\n throw redirect({\n to: '/',\n replace: true,\n });\n }\n },\n loaderDeps: ({ search }) => ({\n lang: search.lang,\n search,\n }),\n loader: async ({ context, deps }) => {\n const lang = deps.lang ?? context.i18n.language;\n const queries: Array<Promise<unknown>> = [\n context.queryClient.ensureQueryData(appConfigQueryOptions),\n context.queryClient.ensureQueryData(getTermsQueryOptions(lang)),\n ];\n\n if (hasAuthorizationContext(deps.search)) {\n queries.push(\n context.queryClient.ensureQueryData(\n getAuthorizationContextQueryOptions(deps.search),\n ),\n );\n }\n\n await Promise.all(queries);\n },\n});\n\nfunction Register() {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n const queryClient = useQueryClient();\n const search = Route.useSearch();\n\n const lang = search.lang ?? i18n.language;\n const deferredLang = useDeferredValue(lang);\n\n const { data: configData } = useSuspenseQuery(appConfigQueryOptions);\n const { data: termsData } = useSuspenseQuery(\n getTermsQueryOptions(deferredLang),\n );\n\n const isPasswordAuthEnabled = configData.auth.password.enabled;\n const passwordPolicy = configData.auth.password.policy;\n\n // Check if there are any terms to display\n const hasTerms = termsData.terms.length > 0;\n const explicitTerms = useMemo(\n () => termsData.terms.filter((term) => term.consentMode === 'explicit'),\n [termsData.terms],\n );\n const hasExplicitTerms = explicitTerms.length > 0;\n\n // Get implicit notice from config\n const implicitNotice =\n configData.registration.signup_notice?.[lang] ??\n configData.registration.signup_notice?.[configData.i18n.fallback_language];\n\n const registerSchema = useMemo(\n () =>\n z.object({\n email: z\n .string()\n .min(1, t('validation.email.required'))\n .pipe(z.email(t('validation.email.invalid'))),\n password: z\n .string()\n .min(\n passwordPolicy.min_length,\n t('validation.password.min', {\n count: passwordPolicy.min_length,\n }),\n )\n .max(\n passwordPolicy.max_length,\n t('validation.password.max', {\n count: passwordPolicy.max_length,\n }),\n ),\n termsConsents: z.object(\n Object.fromEntries(\n explicitTerms.map((term) => [\n term.id,\n term.required\n ? z.literal(true, {\n message: t('validation.terms.required'),\n })\n : z.boolean(),\n ]),\n ),\n ),\n }),\n [explicitTerms, passwordPolicy.max_length, passwordPolicy.min_length, t],\n );\n\n type RegisterFormValues = z.infer<typeof registerSchema>;\n\n const registerMutation = useMutation({\n ...registerMutationOptions,\n onSuccess: async (data, params) => {\n const user = data.user;\n\n if (user.email_verification_required && !user.email_verified) {\n return navigate({\n to: '/verify/email',\n search: {\n email: params.email,\n ...extractOAuthParams(search),\n },\n });\n }\n\n queryClient.setQueryData(getSessionQueryOptions.queryKey, {\n user: user,\n });\n await tick();\n\n if (user.second_factor_required) {\n const available_2fa_methods: SecondFactorMethod[] = [];\n if (configData.auth.password.totp.enabled) {\n available_2fa_methods.push('totp');\n }\n if (configData.auth.passkey.enabled) {\n available_2fa_methods.push('passkey');\n }\n\n if (available_2fa_methods.length === 1) {\n const method = available_2fa_methods[0];\n if (method === 'totp') {\n return navigate({\n to: '/setup/totp',\n search: extractOAuthParams(search),\n });\n } else {\n return navigate({\n to: '/setup/passkey',\n search: {\n ...extractOAuthParams(search),\n passkey_name: 'default',\n },\n });\n }\n } else {\n return navigate({\n to: '/setup/2fa',\n search: extractOAuthParams(search),\n });\n }\n }\n\n if (isOAuthFlow(search)) {\n window.location.href = buildAuthenticatedAuthorizeUrl(search);\n } else {\n navigate({ to: '/profile' });\n }\n },\n onError: (error) => {\n if (error instanceof IssuaryError) {\n if (error.code === 'REGISTRATION_EMAIL_NOT_ALLOWED') {\n setError('email', {\n type: 'manual',\n message: t('register.error.emailNotAllowed'),\n });\n } else if (error.code === 'REGISTRATION_DISABLED') {\n setError('email', {\n type: 'manual',\n message: t('register.error.registrationDisabled'),\n });\n } else {\n setError('email', {\n type: 'manual',\n message: t('register.error.emailExists'),\n });\n }\n } else {\n setError('email', {\n type: 'manual',\n message: t('register.error.emailExists'),\n });\n }\n },\n onSettled: async () => {\n await queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n },\n });\n\n const {\n register,\n setError,\n handleSubmit,\n control,\n setValue,\n watch,\n formState: { errors },\n } = useForm<RegisterFormValues>({\n defaultValues: {\n email: '',\n password: '',\n termsConsents: Object.fromEntries(\n explicitTerms.map((term) => [term.id, false]),\n ),\n },\n resolver: standardSchemaResolver(registerSchema),\n mode: 'onChange',\n });\n\n const passwordValue = watch('password');\n\n const onSubmit = (values: RegisterFormValues) => {\n // Build consents array for registration\n // Only send explicit consents - implicit ones are handled by backend\n const consents = hasTerms\n ? explicitTerms.map((term) => ({\n termsId: term.id,\n agreed: values.termsConsents[term.id] ?? false,\n }))\n : undefined;\n\n registerMutation.mutate({\n email: values.email,\n password: values.password,\n consents,\n });\n };\n\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('register.subtitle')}\n title={t('register.title')}\n />\n\n <AuthorizationContextBanner search={search} />\n\n {isPasswordAuthEnabled && (\n <TRForm\n className=\"flex flex-col gap-tinyrack-lg\"\n onSubmit={handleSubmit(onSubmit)}\n >\n <AuthField\n autoComplete=\"email\"\n error={errors.email}\n icon={MailIcon}\n label={t('register.email.label')}\n placeholder={t('register.email.placeholder')}\n {...register('email')}\n type=\"email\"\n />\n\n <div className=\"flex flex-col gap-tinyrack-sm\">\n <AuthField\n autoComplete=\"new-password\"\n error={errors.password}\n hint={t('register.password.hint', {\n count: passwordPolicy.min_length,\n })}\n icon={LockIcon}\n label={t('register.password.label')}\n placeholder={t('register.password.placeholder')}\n {...register('password')}\n type=\"password\"\n />\n\n <PasswordStrength\n password={passwordValue}\n policy={passwordPolicy}\n />\n </div>\n\n {/* tinyrack-check-ignore-next-line components/no-native-text -- Structural terms group; descendants own visible typography. */}\n <div className=\"flex flex-col gap-tinyrack-md\">\n {implicitNotice && (\n <div data-testid=\"terms-implicit-notice\">\n <DesignSystemRichText html={implicitNotice} variant=\"notice\" />\n </div>\n )}\n\n {implicitNotice && hasExplicitTerms && (\n <LabeledSeparator label={t('terms.additionalOptionalConsent')} />\n )}\n\n {hasTerms && hasExplicitTerms && (\n <TermsCheckboxList\n control={control}\n disabled={registerMutation.isPending}\n errors={errors}\n setValue={setValue}\n terms={explicitTerms}\n />\n )}\n </div>\n\n <TRButton\n className=\"w-full\"\n intent=\"primary\"\n loading={registerMutation.isPending}\n loadingLabel={t('register.submitting')}\n type=\"submit\"\n uiSize=\"lg\"\n >\n {t('register.submit')}\n </TRButton>\n </TRForm>\n )}\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link search={extractOAuthParams(search)} to=\"/login\">\n {t('register.link.login')}\n </Link>\n }\n text={t('register.footer.haveAccount')}\n />\n </AuthFooter>\n </AuthLayout>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset-Cpfhakvn.js","names":["RouteErrorFallback","ResetPasswordFormValues","token","password","confirmPassword","SplitErrorComponent","errorComponent"],"sources":["../../../frontend/src/routes/password/reset/index.tsx?tsr-split=errorComponent"],"sourcesContent":["import { standardSchemaResolver } from '@hookform/resolvers/standard-schema';\nimport { useMutation, useSuspenseQuery } from '@tanstack/react-query';\nimport {\n createFileRoute,\n Link,\n redirect,\n useNavigate,\n} from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRForm } from '@tinyrack/ui/components/form';\nimport {\n CircleAlertIcon,\n CircleCheckIcon,\n KeyRoundIcon,\n LockIcon,\n LockKeyholeIcon,\n} from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthField } from '#frontend/components/auth/auth-field.tsx';\nimport {\n AuthFooter,\n AuthFooterLink,\n} from '#frontend/components/auth/auth-footer.tsx';\nimport { AuthOutcome } from '#frontend/components/auth/auth-outcome.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { PasswordStrength } from '#frontend/components/auth/password-strength.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\n\nimport { appConfigQueryOptions } from '#frontend/queries/config.ts';\nimport { resetPasswordMutationOptions } from '#frontend/queries/password-reset.ts';\n\nconst SearchSchema = z.object({\n token: z.string().default(''),\n});\n\nexport const Route = createFileRoute('/password/reset/')({\n component: ResetPassword,\n errorComponent: RouteErrorFallback,\n validateSearch: SearchSchema,\n beforeLoad: async ({ context }) => {\n const config = await context.queryClient.ensureQueryData(\n appConfigQueryOptions,\n );\n const isPasswordAuthEnabled = config.auth.password.enabled;\n if (!isPasswordAuthEnabled) {\n throw redirect({ to: '/login' });\n }\n },\n loader: async ({ context }) => {\n await context.queryClient.ensureQueryData(appConfigQueryOptions);\n },\n});\n\ntype ResetPasswordFormValues = {\n token: string;\n password: string;\n confirmPassword: string;\n};\n\nfunction ResetPassword() {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const search = Route.useSearch();\n const { token: queryToken } = search;\n const [resetSuccess, setResetSuccess] = useState(false);\n const { data: configData } = useSuspenseQuery(appConfigQueryOptions);\n const passwordPolicy = configData.auth.password.policy;\n\n const resetPasswordSchema = useMemo(\n () =>\n z\n .object({\n token: z.string().min(1, t('validation.token.required')),\n password: z\n .string()\n .min(\n passwordPolicy.min_length,\n t('validation.password.min', {\n count: passwordPolicy.min_length,\n }),\n )\n .max(\n passwordPolicy.max_length,\n t('validation.password.max', {\n count: passwordPolicy.max_length,\n }),\n ),\n confirmPassword: z\n .string()\n .min(1, t('validation.confirmPassword.required')),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: t('validation.confirmPassword.mismatch'),\n path: ['confirmPassword'],\n }),\n [passwordPolicy.max_length, passwordPolicy.min_length, t],\n );\n\n const resetPasswordMutation = useMutation({\n ...resetPasswordMutationOptions,\n onSuccess: () => {\n setResetSuccess(true);\n },\n });\n\n const {\n register,\n setError,\n handleSubmit,\n watch,\n formState: { errors },\n } = useForm<ResetPasswordFormValues>({\n defaultValues: {\n token: queryToken || '',\n password: '',\n confirmPassword: '',\n },\n resolver: standardSchemaResolver(resetPasswordSchema),\n });\n\n const passwordValue = watch('password');\n\n const onSubmit = async (values: ResetPasswordFormValues) => {\n try {\n await resetPasswordMutation.mutateAsync({\n token: values.token,\n password: values.password,\n });\n } catch (error) {\n if (error && typeof error === 'object' && 'code' in error) {\n if (error.code === 'INVALID_PASSWORD_RESET_TOKEN') {\n setError('token', {\n type: 'manual',\n message: t('resetPassword.error.invalidToken'),\n });\n } else if (error.code === 'USER_NOT_EDITABLE') {\n setError('token', {\n type: 'manual',\n message: t('resetPassword.error.notEditable'),\n });\n }\n } else {\n setError('token', {\n type: 'manual',\n message: t('resetPassword.error.invalidToken'),\n });\n }\n }\n };\n\n if (resetSuccess) {\n return (\n <AuthLayout>\n {/*\n The testid stays on a wrapper: e2e treats \"the success alert\" as the\n whole terminal state, which is now the outcome block rather than a\n banner stacked above a header.\n */}\n <div data-testid=\"alert-success\">\n <AuthOutcome\n description={\n <>\n {t('resetPassword.success.subtitle')}\n <br />\n {t('resetPassword.success.description')}\n </>\n }\n icon={CircleCheckIcon}\n title={t('resetPassword.success.title')}\n tone=\"success\"\n >\n <TRButton\n className=\"w-full\"\n data-testid=\"reset-password-go-login\"\n intent=\"primary\"\n onClick={() => navigate({ to: '/login' })}\n type=\"button\"\n uiSize=\"lg\"\n >\n {t('resetPassword.success.goToLogin')}\n </TRButton>\n </AuthOutcome>\n </div>\n </AuthLayout>\n );\n }\n\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('resetPassword.subtitle')}\n title={t('resetPassword.title')}\n />\n\n <TRForm\n className=\"flex flex-col gap-tinyrack-lg\"\n onSubmit={handleSubmit(onSubmit)}\n >\n {!queryToken && (\n <AuthField\n error={errors.token}\n icon={KeyRoundIcon}\n label={t('resetPassword.token.label')}\n placeholder={t('resetPassword.token.placeholder')}\n {...register('token')}\n type=\"text\"\n />\n )}\n\n {/*\n A token that arrived in the URL has no field to attach an error to,\n so a rejected link is reported as a banner above the form. The form\n stays put: the user can paste a fresh token without a round trip.\n */}\n {queryToken && errors.token && (\n <Alert\n data-testid=\"reset-password-token-error\"\n icon={CircleAlertIcon}\n type=\"error\"\n >\n {errors.token.message}\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-tinyrack-sm\">\n <AuthField\n autoComplete=\"new-password\"\n error={errors.password}\n icon={LockIcon}\n label={t('resetPassword.password.label')}\n placeholder={t('resetPassword.password.placeholder')}\n {...register('password')}\n type=\"password\"\n />\n\n <PasswordStrength password={passwordValue} policy={passwordPolicy} />\n </div>\n\n <AuthField\n autoComplete=\"new-password\"\n error={errors.confirmPassword}\n icon={LockKeyholeIcon}\n label={t('resetPassword.confirmPassword.label')}\n placeholder={t('resetPassword.confirmPassword.placeholder')}\n {...register('confirmPassword')}\n type=\"password\"\n />\n\n <TRButton\n className=\"w-full\"\n intent=\"primary\"\n loading={resetPasswordMutation.isPending}\n loadingLabel={t('resetPassword.submitting')}\n type=\"submit\"\n uiSize=\"lg\"\n >\n {t('resetPassword.submit')}\n </TRButton>\n </TRForm>\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link data-testid=\"reset-password-back-to-login\" to=\"/login\">\n {t('resetPassword.backToLogin')}\n </Link>\n }\n />\n </AuthFooter>\n </AuthLayout>\n );\n}\n"],"mappings":"wCA8DE,IAAAK,EAhCOL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,Z as t,et as n,i as r,s as i,t as a}from"./createLucideIcon-D-yizrWN.js";import{An as o,t as s}from"./config-C18-l7z7.js";import{t as c}from"./useMutation-DqIIIiBW.js";import{Dt as l}from"./shell-header-bar-CdOEWmCT.js";import{t as u}from"./circle-check-Cnzuu7xR.js";import{t as d}from"./auth-field-BpJ4AHtU.js";import{t as f}from"./key-round-BxWppK6h.js";import{t as p}from"./lock-8wpR2C78.js";import{c as m,o as h}from"./zod-Dszyrytb.js";import{H as g,K as _,V as v,f as y}from"./index-lTEyHSus.js";import{t as b}from"./auth-page-header-ChaCNNrn.js";import{t as x}from"./alert-D3aaK-_3.js";import{t as S}from"./auth-layout-BdRRr0vT.js";import{t as C}from"./form-sJw-V9wb.js";import{n as w,t as T}from"./auth-footer-Du6S-oDG.js";import{r as E,t as D}from"./standard-schema-C50nwAaQ.js";import{n as O}from"./password-reset-BcFpGOop.js";import{t as k}from"./password-strength-Bgvy7kz6.js";var A=a(`lock-keyhole`,[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]),j=n(t()),M=e();function N(){let{t:e}=r(),t=_(),{token:n}=y.useSearch(),[a,N]=(0,j.useState)(!1),{data:P}=l(s),F=P.auth.password.policy,I=(0,j.useMemo)(()=>h({token:m().min(1,e(`validation.token.required`)),password:m().min(F.min_length,e(`validation.password.min`,{count:F.min_length})).max(F.max_length,e(`validation.password.max`,{count:F.max_length})),confirmPassword:m().min(1,e(`validation.confirmPassword.required`))}).refine(e=>e.password===e.confirmPassword,{message:e(`validation.confirmPassword.mismatch`),path:[`confirmPassword`]}),[F.max_length,F.min_length,e]),L=c({...O,onSuccess:()=>{N(!0)}}),{register:R,setError:z,handleSubmit:B,watch:V,formState:{errors:H}}=E({defaultValues:{token:n||``,password:``,confirmPassword:``},resolver:D(I)}),U=V(`password`);return a?(0,M.jsx)(S,{children:(0,M.jsx)(`div`,{"data-testid":`alert-success`,children:(0,M.jsx)(v,{description:(0,M.jsxs)(M.Fragment,{children:[e(`resetPassword.success.subtitle`),(0,M.jsx)(`br`,{}),e(`resetPassword.success.description`)]}),icon:u,title:e(`resetPassword.success.title`),tone:`success`,children:(0,M.jsx)(i,{className:`w-full`,"data-testid":`reset-password-go-login`,intent:`primary`,onClick:()=>t({to:`/login`}),type:`button`,uiSize:`lg`,children:e(`resetPassword.success.goToLogin`)})})})}):(0,M.jsxs)(S,{children:[(0,M.jsx)(b,{subtitle:e(`resetPassword.subtitle`),title:e(`resetPassword.title`)}),(0,M.jsxs)(C,{className:`flex flex-col gap-tinyrack-lg`,onSubmit:B(async t=>{try{await L.mutateAsync({token:t.token,password:t.password})}catch(t){t&&typeof t==`object`&&`code`in t?t.code===`INVALID_PASSWORD_RESET_TOKEN`?z(`token`,{type:`manual`,message:e(`resetPassword.error.invalidToken`)}):t.code===`USER_NOT_EDITABLE`&&z(`token`,{type:`manual`,message:e(`resetPassword.error.notEditable`)}):z(`token`,{type:`manual`,message:e(`resetPassword.error.invalidToken`)})}}),children:[!n&&(0,M.jsx)(d,{error:H.token,icon:f,label:e(`resetPassword.token.label`),placeholder:e(`resetPassword.token.placeholder`),...R(`token`),type:`text`}),n&&H.token&&(0,M.jsx)(x,{"data-testid":`reset-password-token-error`,icon:g,type:`error`,children:H.token.message}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-sm`,children:[(0,M.jsx)(d,{autoComplete:`new-password`,error:H.password,icon:p,label:e(`resetPassword.password.label`),placeholder:e(`resetPassword.password.placeholder`),...R(`password`),type:`password`}),(0,M.jsx)(k,{password:U,policy:F})]}),(0,M.jsx)(d,{autoComplete:`new-password`,error:H.confirmPassword,icon:A,label:e(`resetPassword.confirmPassword.label`),placeholder:e(`resetPassword.confirmPassword.placeholder`),...R(`confirmPassword`),type:`password`}),(0,M.jsx)(i,{className:`w-full`,intent:`primary`,loading:L.isPending,loadingLabel:e(`resetPassword.submitting`),type:`submit`,uiSize:`lg`,children:e(`resetPassword.submit`)})]}),(0,M.jsx)(T,{children:(0,M.jsx)(w,{link:(0,M.jsx)(o,{"data-testid":`reset-password-back-to-login`,to:`/login`,children:e(`resetPassword.backToLogin`)})})})]})}export{N as component};
|
|
2
|
+
//# sourceMappingURL=reset-DBu3wYpE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset-DBu3wYpE.js","names":["standardSchemaResolver","useMutation","useSuspenseQuery","Link","useNavigate","TRButton","TRForm","CircleAlertIcon","CircleCheckIcon","KeyRoundIcon","LockIcon","LockKeyholeIcon","useMemo","useState","useForm","useTranslation","z","AuthField","AuthFooter","AuthFooterLink","AuthOutcome","AuthPageHeader","PasswordStrength","Alert","AuthLayout","appConfigQueryOptions","resetPasswordMutationOptions","Route","ResetPasswordFormValues","token","password","confirmPassword","ResetPassword","t","navigate","search","useSearch","queryToken","resetSuccess","setResetSuccess","data","configData","passwordPolicy","auth","policy","resetPasswordSchema","object","string","min","min_length","count","max","max_length","refine","message","path","resetPasswordMutation","onSuccess","register","setError","handleSubmit","watch","formState","errors","defaultValues","resolver","passwordValue","onSubmit","values","mutateAsync","error","code","type","to","isPending","component"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/lock-keyhole.mjs","../../../frontend/src/routes/password/reset/index.tsx?tsr-split=component"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"16\", r: \"1\", key: \"1au0dj\" }],\n [\"rect\", { x: \"3\", y: \"10\", width: \"18\", height: \"12\", rx: \"2\", key: \"6s8ecr\" }],\n [\"path\", { d: \"M7 10V7a5 5 0 0 1 10 0v3\", key: \"1pqi11\" }]\n];\nconst LockKeyhole = createLucideIcon(\"lock-keyhole\", __iconNode);\n\nexport { __iconNode, LockKeyhole as default };\n//# sourceMappingURL=lock-keyhole.mjs.map\n","import { standardSchemaResolver } from '@hookform/resolvers/standard-schema';\nimport { useMutation, useSuspenseQuery } from '@tanstack/react-query';\nimport {\n createFileRoute,\n Link,\n redirect,\n useNavigate,\n} from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRForm } from '@tinyrack/ui/components/form';\nimport {\n CircleAlertIcon,\n CircleCheckIcon,\n KeyRoundIcon,\n LockIcon,\n LockKeyholeIcon,\n} from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthField } from '#frontend/components/auth/auth-field.tsx';\nimport {\n AuthFooter,\n AuthFooterLink,\n} from '#frontend/components/auth/auth-footer.tsx';\nimport { AuthOutcome } from '#frontend/components/auth/auth-outcome.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { PasswordStrength } from '#frontend/components/auth/password-strength.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\n\nimport { appConfigQueryOptions } from '#frontend/queries/config.ts';\nimport { resetPasswordMutationOptions } from '#frontend/queries/password-reset.ts';\n\nconst SearchSchema = z.object({\n token: z.string().default(''),\n});\n\nexport const Route = createFileRoute('/password/reset/')({\n component: ResetPassword,\n errorComponent: RouteErrorFallback,\n validateSearch: SearchSchema,\n beforeLoad: async ({ context }) => {\n const config = await context.queryClient.ensureQueryData(\n appConfigQueryOptions,\n );\n const isPasswordAuthEnabled = config.auth.password.enabled;\n if (!isPasswordAuthEnabled) {\n throw redirect({ to: '/login' });\n }\n },\n loader: async ({ context }) => {\n await context.queryClient.ensureQueryData(appConfigQueryOptions);\n },\n});\n\ntype ResetPasswordFormValues = {\n token: string;\n password: string;\n confirmPassword: string;\n};\n\nfunction ResetPassword() {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const search = Route.useSearch();\n const { token: queryToken } = search;\n const [resetSuccess, setResetSuccess] = useState(false);\n const { data: configData } = useSuspenseQuery(appConfigQueryOptions);\n const passwordPolicy = configData.auth.password.policy;\n\n const resetPasswordSchema = useMemo(\n () =>\n z\n .object({\n token: z.string().min(1, t('validation.token.required')),\n password: z\n .string()\n .min(\n passwordPolicy.min_length,\n t('validation.password.min', {\n count: passwordPolicy.min_length,\n }),\n )\n .max(\n passwordPolicy.max_length,\n t('validation.password.max', {\n count: passwordPolicy.max_length,\n }),\n ),\n confirmPassword: z\n .string()\n .min(1, t('validation.confirmPassword.required')),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: t('validation.confirmPassword.mismatch'),\n path: ['confirmPassword'],\n }),\n [passwordPolicy.max_length, passwordPolicy.min_length, t],\n );\n\n const resetPasswordMutation = useMutation({\n ...resetPasswordMutationOptions,\n onSuccess: () => {\n setResetSuccess(true);\n },\n });\n\n const {\n register,\n setError,\n handleSubmit,\n watch,\n formState: { errors },\n } = useForm<ResetPasswordFormValues>({\n defaultValues: {\n token: queryToken || '',\n password: '',\n confirmPassword: '',\n },\n resolver: standardSchemaResolver(resetPasswordSchema),\n });\n\n const passwordValue = watch('password');\n\n const onSubmit = async (values: ResetPasswordFormValues) => {\n try {\n await resetPasswordMutation.mutateAsync({\n token: values.token,\n password: values.password,\n });\n } catch (error) {\n if (error && typeof error === 'object' && 'code' in error) {\n if (error.code === 'INVALID_PASSWORD_RESET_TOKEN') {\n setError('token', {\n type: 'manual',\n message: t('resetPassword.error.invalidToken'),\n });\n } else if (error.code === 'USER_NOT_EDITABLE') {\n setError('token', {\n type: 'manual',\n message: t('resetPassword.error.notEditable'),\n });\n }\n } else {\n setError('token', {\n type: 'manual',\n message: t('resetPassword.error.invalidToken'),\n });\n }\n }\n };\n\n if (resetSuccess) {\n return (\n <AuthLayout>\n {/*\n The testid stays on a wrapper: e2e treats \"the success alert\" as the\n whole terminal state, which is now the outcome block rather than a\n banner stacked above a header.\n */}\n <div data-testid=\"alert-success\">\n <AuthOutcome\n description={\n <>\n {t('resetPassword.success.subtitle')}\n <br />\n {t('resetPassword.success.description')}\n </>\n }\n icon={CircleCheckIcon}\n title={t('resetPassword.success.title')}\n tone=\"success\"\n >\n <TRButton\n className=\"w-full\"\n data-testid=\"reset-password-go-login\"\n intent=\"primary\"\n onClick={() => navigate({ to: '/login' })}\n type=\"button\"\n uiSize=\"lg\"\n >\n {t('resetPassword.success.goToLogin')}\n </TRButton>\n </AuthOutcome>\n </div>\n </AuthLayout>\n );\n }\n\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('resetPassword.subtitle')}\n title={t('resetPassword.title')}\n />\n\n <TRForm\n className=\"flex flex-col gap-tinyrack-lg\"\n onSubmit={handleSubmit(onSubmit)}\n >\n {!queryToken && (\n <AuthField\n error={errors.token}\n icon={KeyRoundIcon}\n label={t('resetPassword.token.label')}\n placeholder={t('resetPassword.token.placeholder')}\n {...register('token')}\n type=\"text\"\n />\n )}\n\n {/*\n A token that arrived in the URL has no field to attach an error to,\n so a rejected link is reported as a banner above the form. The form\n stays put: the user can paste a fresh token without a round trip.\n */}\n {queryToken && errors.token && (\n <Alert\n data-testid=\"reset-password-token-error\"\n icon={CircleAlertIcon}\n type=\"error\"\n >\n {errors.token.message}\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-tinyrack-sm\">\n <AuthField\n autoComplete=\"new-password\"\n error={errors.password}\n icon={LockIcon}\n label={t('resetPassword.password.label')}\n placeholder={t('resetPassword.password.placeholder')}\n {...register('password')}\n type=\"password\"\n />\n\n <PasswordStrength password={passwordValue} policy={passwordPolicy} />\n </div>\n\n <AuthField\n autoComplete=\"new-password\"\n error={errors.confirmPassword}\n icon={LockKeyholeIcon}\n label={t('resetPassword.confirmPassword.label')}\n placeholder={t('resetPassword.confirmPassword.placeholder')}\n {...register('confirmPassword')}\n type=\"password\"\n />\n\n <TRButton\n className=\"w-full\"\n intent=\"primary\"\n loading={resetPasswordMutation.isPending}\n loadingLabel={t('resetPassword.submitting')}\n type=\"submit\"\n uiSize=\"lg\"\n >\n {t('resetPassword.submit')}\n </TRButton>\n </TRForm>\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link data-testid=\"reset-password-back-to-login\" to=\"/login\">\n {t('resetPassword.backToLogin')}\n </Link>\n }\n />\n </AuthFooter>\n </AuthLayout>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,i as t,s as n,t as r}from"./createLucideIcon-D-yizrWN.js";import{Ar as i,n as a}from"./config-C18-l7z7.js";import{t as o}from"./useMutation-DqIIIiBW.js";import{Dt as s,Y as c}from"./shell-header-bar-CdOEWmCT.js";import{t as l}from"./auth-choice-row-h4heOMHs.js";import{t as u}from"./trash-2-B3NVE8pR.js";import{I as d,L as f,U as p,a as m,i as h,n as g,r as _}from"./index-lTEyHSus.js";import{t as v}from"./badge-B8D0Q2qq.js";import{t as y}from"./auth-page-header-ChaCNNrn.js";import{t as b}from"./alert-D3aaK-_3.js";import{t as x}from"./initial-avatar-WMjxW3Zz.js";import{t as S}from"./auth-layout-BdRRr0vT.js";var C=r(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),w=r(`circle-user-round`,[[`path`,{d:`M17.925 20.056a6 6 0 0 0-11.851.001`,key:`z69sun`}],[`circle`,{cx:`12`,cy:`11`,r:`4`,key:`1gt34v`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),T=r(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),E=e();function D(e){let t=e?.split(` `).filter(Boolean)??[];return t.includes(`login`)||t.push(`login`),t.join(` `)}function O(e){let t=f(e),n=new URLSearchParams;for(let[e,r]of Object.entries({...t,prompt:D(t.prompt),account_selected:1}))r!==void 0&&n.set(e,String(r));return`/login?${n.toString()}`}function k(){let{t:e}=t(),r=g.useSearch(),f=i(),{data:D}=s(_(r.client_id)),k=D.accounts.length===0&&!D.allow_add_account,A=()=>{window.location.href=d({...r,account_selected:1})},j=o({...m,onSuccess:A}),M=o({...h,onSuccess:()=>{f.invalidateQueries({queryKey:a.accounts(r.client_id)})}});return(0,E.jsxs)(S,{width:`wide`,children:[(0,E.jsx)(y,{subtitle:e(`accountSelect.subtitle`),title:e(`accountSelect.title`)}),D.accounts.length===0?(0,E.jsx)(b,{icon:w,type:`info`,children:e(k?`accountSelect.unavailable`:`accountSelect.noRememberedAccounts`)}):(0,E.jsx)(`div`,{className:`flex flex-col gap-tinyrack-xs`,"data-testid":`account-list`,children:D.accounts.map(t=>(0,E.jsx)(`div`,{"data-testid":`remembered-account`,children:(0,E.jsx)(l,{description:t.current?e(`accountSelect.currentAccount`):e(`accountSelect.rememberedAccount`),label:t.email,leading:(0,E.jsx)(x,{email:t.email,size:`sm`}),render:(0,E.jsx)(n,{"data-testid":`select-account-${t.sub}`,disabled:j.isPending,onClick:()=>j.mutate({sub:t.sub}),type:`button`,uiSize:`lg`}),trailing:(0,E.jsxs)(E.Fragment,{children:[t.current?(0,E.jsx)(v,{uiSize:`md`,variant:`info`,children:e(`accountSelect.current`)}):null,D.allow_remove_account&&!t.current?(0,E.jsx)(c,{appearance:`ghost`,"aria-label":e(`accountSelect.removeAccount`,{email:t.email}),"data-testid":`remove-account-${t.sub}`,disabled:M.isPending,intent:`neutral`,onClick:()=>M.mutate({sub:t.sub}),type:`button`,uiSize:`sm`,children:(0,E.jsx)(u,{"aria-hidden":!0,className:`size-tinyrack-lg`})}):null]})})},t.sub))}),D.allow_add_account?(0,E.jsxs)(p,{appearance:`outline`,className:`w-full justify-between`,intent:`neutral`,render:(0,E.jsx)(`a`,{href:O(r)}),uiSize:`lg`,children:[(0,E.jsx)(T,{"aria-hidden":!0,className:`size-tinyrack-lg`}),e(`accountSelect.useAnotherAccount`),(0,E.jsx)(C,{"aria-hidden":!0,className:`size-tinyrack-lg`})]}):null]})}export{k as component};
|
|
2
|
+
//# sourceMappingURL=select-5LheSsRl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-5LheSsRl.js","names":["__iconNode","__iconNode","useMutation","useQueryClient","useSuspenseQuery","TRBadge","TRButton","TRIconButton","TRLinkButton","ArrowRightIcon","CircleUserRoundIcon","PlusIcon","Trash2Icon","useTranslation","AuthChoiceRow","AuthPageHeader","Alert","InitialAvatar","AuthLayout","buildAuthorizeUrl","extractOAuthParams","accountsQueryOptions","removeAccountMutationOptions","selectAccountMutationOptions","queryKeys","Route","appendLoginPrompt","prompt","values","split","filter","Boolean","includes","push","join","buildLoginHref","search","ReturnType","useSearch","oauthParams","params","URLSearchParams","key","value","Object","entries","account_selected","undefined","set","String","toString","AccountSelect","t","queryClient","data","client_id","accountSelectionUnavailable","accounts","length","allow_add_account","continueWithSelectedAccount","window","location","href","selectMutation","onSuccess","removeMutation","invalidateQueries","queryKey","map","account","sub","current","email","isPending","mutate","allow_remove_account","component"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/arrow-right.mjs","../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/circle-user-round.mjs","../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/plus.mjs","../../../frontend/src/routes/account/select/index.tsx?tsr-split=component"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.mjs.map\n","/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M17.925 20.056a6 6 0 0 0-11.851.001\", key: \"z69sun\" }],\n [\"circle\", { cx: \"12\", cy: \"11\", r: \"4\", key: \"1gt34v\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]\n];\nconst CircleUserRound = createLucideIcon(\"circle-user-round\", __iconNode);\n\nexport { __iconNode, CircleUserRound as default };\n//# sourceMappingURL=circle-user-round.mjs.map\n","/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n];\nconst Plus = createLucideIcon(\"plus\", __iconNode);\n\nexport { __iconNode, Plus as default };\n//# sourceMappingURL=plus.mjs.map\n","import {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from '@tanstack/react-query';\nimport { createFileRoute } from '@tanstack/react-router';\nimport { TRBadge } from '@tinyrack/ui/components/badge';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRIconButton } from '@tinyrack/ui/components/icon-button';\nimport { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport {\n ArrowRightIcon,\n CircleUserRoundIcon,\n PlusIcon,\n Trash2Icon,\n} from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { AuthChoiceRow } from '#frontend/components/auth/auth-choice-row.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { InitialAvatar } from '#frontend/components/ui/initial-avatar.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthorizeUrl,\n extractOAuthParams,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport {\n accountsQueryOptions,\n removeAccountMutationOptions,\n selectAccountMutationOptions,\n} from '#frontend/queries/accounts.ts';\nimport { queryKeys } from '#frontend/queries/keys.ts';\n\nexport const Route = createFileRoute('/account/select/')({\n component: AccountSelect,\n errorComponent: RouteErrorFallback,\n validateSearch: OAuthSearchSchema,\n loader: async ({ context, location }) => {\n const search = location.search as { client_id?: string };\n await context.queryClient.ensureQueryData(\n accountsQueryOptions(search.client_id),\n );\n },\n});\n\nfunction appendLoginPrompt(prompt: string | undefined): string {\n const values = prompt?.split(' ').filter(Boolean) ?? [];\n if (!values.includes('login')) {\n values.push('login');\n }\n return values.join(' ');\n}\n\nfunction buildLoginHref(search: ReturnType<typeof Route.useSearch>) {\n const oauthParams = extractOAuthParams(search);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries({\n ...oauthParams,\n prompt: appendLoginPrompt(oauthParams.prompt),\n account_selected: 1,\n })) {\n if (value !== undefined) {\n params.set(key, String(value));\n }\n }\n return `/login?${params.toString()}`;\n}\n\nfunction AccountSelect() {\n const { t } = useTranslation();\n const search = Route.useSearch();\n const queryClient = useQueryClient();\n const { data } = useSuspenseQuery(accountsQueryOptions(search.client_id));\n const accountSelectionUnavailable =\n data.accounts.length === 0 && !data.allow_add_account;\n\n const continueWithSelectedAccount = () => {\n window.location.href = buildAuthorizeUrl({\n ...search,\n account_selected: 1,\n });\n };\n\n const selectMutation = useMutation({\n ...selectAccountMutationOptions,\n onSuccess: continueWithSelectedAccount,\n });\n const removeMutation = useMutation({\n ...removeAccountMutationOptions,\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: queryKeys.accounts(search.client_id),\n });\n },\n });\n\n return (\n <AuthLayout width=\"wide\">\n <AuthPageHeader\n subtitle={t('accountSelect.subtitle')}\n title={t('accountSelect.title')}\n />\n\n {data.accounts.length === 0 ? (\n <Alert icon={CircleUserRoundIcon} type=\"info\">\n {accountSelectionUnavailable\n ? t('accountSelect.unavailable')\n : t('accountSelect.noRememberedAccounts')}\n </Alert>\n ) : (\n /* tinyrack-check-ignore-next-line components/no-native-text -- Structural account list; AuthChoiceRow owns visible typography. */\n <div\n className=\"flex flex-col gap-tinyrack-xs\"\n data-testid=\"account-list\"\n >\n {data.accounts.map((account) => (\n <div data-testid=\"remembered-account\" key={account.sub}>\n <AuthChoiceRow\n description={\n account.current\n ? t('accountSelect.currentAccount')\n : t('accountSelect.rememberedAccount')\n }\n label={account.email}\n leading={<InitialAvatar email={account.email} size=\"sm\" />}\n /*\n Picking an account is a mutation, not navigation, so this\n one is a button. No children — the row supplies them.\n */\n render={\n <TRButton\n data-testid={`select-account-${account.sub}`}\n disabled={selectMutation.isPending}\n onClick={() => selectMutation.mutate({ sub: account.sub })}\n type=\"button\"\n uiSize=\"lg\"\n />\n }\n trailing={\n <>\n {account.current ? (\n <TRBadge uiSize=\"md\" variant=\"info\">\n {t('accountSelect.current')}\n </TRBadge>\n ) : null}\n {data.allow_remove_account && !account.current ? (\n <TRIconButton\n appearance=\"ghost\"\n aria-label={t('accountSelect.removeAccount', {\n email: account.email,\n })}\n data-testid={`remove-account-${account.sub}`}\n disabled={removeMutation.isPending}\n intent=\"neutral\"\n onClick={() =>\n removeMutation.mutate({ sub: account.sub })\n }\n type=\"button\"\n uiSize=\"sm\"\n >\n <Trash2Icon aria-hidden className=\"size-tinyrack-lg\" />\n </TRIconButton>\n ) : null}\n </>\n }\n />\n </div>\n ))}\n </div>\n )}\n\n {data.allow_add_account ? (\n <TRLinkButton\n appearance=\"outline\"\n className=\"w-full justify-between\"\n intent=\"neutral\"\n render={<a href={buildLoginHref(search)} />}\n uiSize=\"lg\"\n >\n <PlusIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('accountSelect.useAnotherAccount')}\n <ArrowRightIcon aria-hidden className=\"size-tinyrack-lg\" />\n </TRLinkButton>\n ) : null}\n </AuthLayout>\n );\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-
|
|
1
|
+
{"version":3,"file":"select-Cpfhakvn.js","names":["RouteErrorFallback","SplitErrorComponent","errorComponent"],"sources":["../../../frontend/src/routes/account/select/index.tsx?tsr-split=errorComponent"],"sourcesContent":["import {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from '@tanstack/react-query';\nimport { createFileRoute } from '@tanstack/react-router';\nimport { TRBadge } from '@tinyrack/ui/components/badge';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRIconButton } from '@tinyrack/ui/components/icon-button';\nimport { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport {\n ArrowRightIcon,\n CircleUserRoundIcon,\n PlusIcon,\n Trash2Icon,\n} from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { AuthChoiceRow } from '#frontend/components/auth/auth-choice-row.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { InitialAvatar } from '#frontend/components/ui/initial-avatar.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthorizeUrl,\n extractOAuthParams,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport {\n accountsQueryOptions,\n removeAccountMutationOptions,\n selectAccountMutationOptions,\n} from '#frontend/queries/accounts.ts';\nimport { queryKeys } from '#frontend/queries/keys.ts';\n\nexport const Route = createFileRoute('/account/select/')({\n component: AccountSelect,\n errorComponent: RouteErrorFallback,\n validateSearch: OAuthSearchSchema,\n loader: async ({ context, location }) => {\n const search = location.search as { client_id?: string };\n await context.queryClient.ensureQueryData(\n accountsQueryOptions(search.client_id),\n );\n },\n});\n\nfunction appendLoginPrompt(prompt: string | undefined): string {\n const values = prompt?.split(' ').filter(Boolean) ?? [];\n if (!values.includes('login')) {\n values.push('login');\n }\n return values.join(' ');\n}\n\nfunction buildLoginHref(search: ReturnType<typeof Route.useSearch>) {\n const oauthParams = extractOAuthParams(search);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries({\n ...oauthParams,\n prompt: appendLoginPrompt(oauthParams.prompt),\n account_selected: 1,\n })) {\n if (value !== undefined) {\n params.set(key, String(value));\n }\n }\n return `/login?${params.toString()}`;\n}\n\nfunction AccountSelect() {\n const { t } = useTranslation();\n const search = Route.useSearch();\n const queryClient = useQueryClient();\n const { data } = useSuspenseQuery(accountsQueryOptions(search.client_id));\n const accountSelectionUnavailable =\n data.accounts.length === 0 && !data.allow_add_account;\n\n const continueWithSelectedAccount = () => {\n window.location.href = buildAuthorizeUrl({\n ...search,\n account_selected: 1,\n });\n };\n\n const selectMutation = useMutation({\n ...selectAccountMutationOptions,\n onSuccess: continueWithSelectedAccount,\n });\n const removeMutation = useMutation({\n ...removeAccountMutationOptions,\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: queryKeys.accounts(search.client_id),\n });\n },\n });\n\n return (\n <AuthLayout width=\"wide\">\n <AuthPageHeader\n subtitle={t('accountSelect.subtitle')}\n title={t('accountSelect.title')}\n />\n\n {data.accounts.length === 0 ? (\n <Alert icon={CircleUserRoundIcon} type=\"info\">\n {accountSelectionUnavailable\n ? t('accountSelect.unavailable')\n : t('accountSelect.noRememberedAccounts')}\n </Alert>\n ) : (\n /* tinyrack-check-ignore-next-line components/no-native-text -- Structural account list; AuthChoiceRow owns visible typography. */\n <div\n className=\"flex flex-col gap-tinyrack-xs\"\n data-testid=\"account-list\"\n >\n {data.accounts.map((account) => (\n <div data-testid=\"remembered-account\" key={account.sub}>\n <AuthChoiceRow\n description={\n account.current\n ? t('accountSelect.currentAccount')\n : t('accountSelect.rememberedAccount')\n }\n label={account.email}\n leading={<InitialAvatar email={account.email} size=\"sm\" />}\n /*\n Picking an account is a mutation, not navigation, so this\n one is a button. No children — the row supplies them.\n */\n render={\n <TRButton\n data-testid={`select-account-${account.sub}`}\n disabled={selectMutation.isPending}\n onClick={() => selectMutation.mutate({ sub: account.sub })}\n type=\"button\"\n uiSize=\"lg\"\n />\n }\n trailing={\n <>\n {account.current ? (\n <TRBadge uiSize=\"md\" variant=\"info\">\n {t('accountSelect.current')}\n </TRBadge>\n ) : null}\n {data.allow_remove_account && !account.current ? (\n <TRIconButton\n appearance=\"ghost\"\n aria-label={t('accountSelect.removeAccount', {\n email: account.email,\n })}\n data-testid={`remove-account-${account.sub}`}\n disabled={removeMutation.isPending}\n intent=\"neutral\"\n onClick={() =>\n removeMutation.mutate({ sub: account.sub })\n }\n type=\"button\"\n uiSize=\"sm\"\n >\n <Trash2Icon aria-hidden className=\"size-tinyrack-lg\" />\n </TRIconButton>\n ) : null}\n </>\n }\n />\n </div>\n ))}\n </div>\n )}\n\n {data.allow_add_account ? (\n <TRLinkButton\n appearance=\"outline\"\n className=\"w-full justify-between\"\n intent=\"neutral\"\n render={<a href={buildLoginHref(search)} />}\n uiSize=\"lg\"\n >\n <PlusIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('accountSelect.useAnotherAccount')}\n <ArrowRightIcon aria-hidden className=\"size-tinyrack-lg\" />\n </TRLinkButton>\n ) : null}\n </AuthLayout>\n );\n}\n"],"mappings":"wCAqBsF,IAAAC,EAA7ED"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e}from"./createLucideIcon-D-yizrWN.js";import{On as t}from"./config-C18-l7z7.js";import{t as n}from"./Separator-C6MmGAmP.js";var r=e(),i=t(n,`tr-separator`);function a({"aria-orientation":e,orientation:t=`horizontal`,role:n=`separator`,...a}){return(0,r.jsx)(i,{...a,"aria-orientation":n===`separator`?e??t:void 0,orientation:t,role:n})}export{a as t};
|
|
2
|
+
//# sourceMappingURL=separator-CMGc2Y1q.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator-CMGc2Y1q.js","names":[],"sources":["../../../../node_modules/.pnpm/@tinyrack+ui@0.31.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.4.2_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/separator/separator.js"],"sourcesContent":["import { createComponentPart } from \"../../internal/component-part.js\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Separator } from \"@base-ui/react/separator\";\n//#region src/components/separator/separator.tsx\nconst SeparatorPart = createComponentPart(Separator, \"tr-separator\");\nfunction TRSeparator({ \"aria-orientation\": ariaOrientation, orientation = \"horizontal\", role = \"separator\", ...props }) {\n\treturn /* @__PURE__ */ jsx(SeparatorPart, {\n\t\t...props,\n\t\t\"aria-orientation\": role === \"separator\" ? ariaOrientation ?? orientation : void 0,\n\t\torientation,\n\t\trole\n\t});\n}\n//#endregion\nexport { TRSeparator };\n\n//# sourceMappingURL=separator.js.map"],"x_google_ignoreList":[0],"mappings":"mJAIM,EAAgB,EAAoB,EAAW,cAAc,EACnE,SAAS,EAAY,CAAE,mBAAoB,EAAiB,cAAc,aAAc,OAAO,YAAa,GAAG,GAAS,CACvH,OAAuB,EAAA,EAAA,IAAA,CAAI,EAAe,CACzC,GAAG,EACH,mBAAoB,IAAS,YAAc,GAAmB,EAAc,IAAK,GACjF,cACA,MACD,CAAC,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,i as t,n}from"./createLucideIcon-D-yizrWN.js";import{a as r,t as i}from"./config-C18-l7z7.js";import{Dt as a,Q as o,Z as s,c,s as l}from"./shell-header-bar-CdOEWmCT.js";import{h as u,t as d}from"./admin-shell-B91U4-Ro.js";import{s as f}from"./index-lTEyHSus.js";var p=e();function m(){let e=f.useRouteContext({select:e=>e.user});return e?.role===`admin`?(0,p.jsx)(h,{user:e}):(0,p.jsx)(u,{reason:`access-required`})}function h({user:e}){let{data:t}=a(i);return t.admin.enabled?(0,p.jsx)(g,{user:e}):(0,p.jsx)(u,{reason:`console-disabled`})}function g({user:e}){let{t:i}=t(),{colorScheme:a,setColorScheme:u}=r(),f=[[`light`,i(`common.theme.light`)],[`dark`,i(`common.theme.dark`)]];return(0,p.jsx)(d,{current:`settings`,title:i(`admin.settings.title`),user:e,children:(0,p.jsxs)(`div`,{className:`mx-auto flex w-full max-w-tinyrack-measure-xl flex-col gap-tinyrack-2xl`,children:[(0,p.jsxs)(`header`,{className:`flex flex-col gap-tinyrack-xs`,children:[(0,p.jsx)(n,{as:`h1`,variant:`headingMd`,weight:`heading`,children:i(`admin.settings.title`)}),(0,p.jsx)(n,{as:`p`,color:`muted`,variant:`bodySm`,children:i(`admin.settings.description`)})]}),(0,p.jsxs)(`section`,{className:`grid items-start gap-tinyrack-md sm:grid-cols-2`,children:[(0,p.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs`,children:[(0,p.jsx)(n,{as:`h2`,variant:`headingSm`,children:i(`admin.settings.language`)}),(0,p.jsx)(n,{as:`p`,color:`muted`,variant:`bodySm`,children:i(`admin.settings.languageDescription`)})]}),(0,p.jsx)(l,{alwaysVisible:!0,className:`w-full sm:justify-self-end`,presentation:`field`,triggerClassName:`w-full min-w-full`,uiSize:`md`})]}),(0,p.jsxs)(`section`,{className:`grid items-start gap-tinyrack-md sm:grid-cols-2`,children:[(0,p.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs`,children:[(0,p.jsx)(n,{as:`h2`,variant:`headingSm`,children:i(`admin.settings.theme`)}),(0,p.jsx)(n,{as:`p`,color:`muted`,variant:`bodySm`,children:i(`admin.settings.themeDescription`)})]}),(0,p.jsxs)(c.Root,{onValueChange:e=>{(e===`light`||e===`dark`)&&u(e)},value:a,children:[(0,p.jsxs)(c.Trigger,{appearance:`solid`,"aria-label":i(`admin.settings.theme`),className:`w-full sm:justify-self-end`,uiSize:`md`,children:[(0,p.jsx)(c.Value,{children:f.find(([e])=>e===a)?.[1]}),(0,p.jsx)(c.Icon,{children:(0,p.jsx)(s,{"aria-hidden":!0})})]}),(0,p.jsx)(c.Portal,{children:(0,p.jsx)(c.Positioner,{children:(0,p.jsx)(c.Popup,{children:(0,p.jsx)(c.List,{children:f.map(([e,t])=>(0,p.jsxs)(c.Item,{value:e,children:[(0,p.jsx)(c.ItemText,{children:t}),(0,p.jsx)(c.ItemIndicator,{children:(0,p.jsx)(o,{"aria-hidden":!0})})]},e))})})})})]})]})]})})}export{m as component};
|
|
2
|
+
//# sourceMappingURL=settings-BVe4k3kJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-BVe4k3kJ.js","names":["useSuspenseQuery","TRSelect","TRText","CheckIcon","ChevronDownIcon","useTranslation","AdminGateScreen","AdminShell","LanguageSelector","useColorScheme","appConfigQueryOptions","Route","AdminSettingsPage","user","useRouteContext","select","context","role","AdminSettingsGate","SessionUser","data","config","admin","enabled","AdminSettingsContent","t","colorScheme","setColorScheme","themeOptions","value","find","map","label","component"],"sources":["../../../frontend/src/routes/admin/settings/index.tsx?tsr-split=component"],"sourcesContent":["import { useSuspenseQuery } from '@tanstack/react-query';\nimport { createFileRoute, redirect } from '@tanstack/react-router';\nimport { TRSelect } from '@tinyrack/ui/components/select';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { CheckIcon, ChevronDownIcon } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { AdminGateScreen } from '#frontend/features/admin/admin-gate-screen.tsx';\nimport { AdminShell } from '#frontend/features/admin/admin-shell.tsx';\nimport { LanguageSelector } from '#frontend/features/layout/language-selector.tsx';\nimport { useColorScheme } from '#frontend/hooks/use-theme.ts';\nimport { appConfigQueryOptions } from '#frontend/queries/config.ts';\nimport type { SessionUser } from '#frontend/queries/session.ts';\n\nexport const Route = createFileRoute('/admin/settings/')({\n component: AdminSettingsPage,\n beforeLoad: async ({ context }) => {\n if (!context.user) throw redirect({ to: '/login' });\n },\n});\n\nfunction AdminSettingsPage() {\n const user = Route.useRouteContext({ select: (context) => context.user });\n if (user?.role !== 'admin')\n return <AdminGateScreen reason=\"access-required\" />;\n return <AdminSettingsGate user={user} />;\n}\n\nfunction AdminSettingsGate({ user }: { user: SessionUser }) {\n const { data: config } = useSuspenseQuery(appConfigQueryOptions);\n if (!config.admin.enabled)\n return <AdminGateScreen reason=\"console-disabled\" />;\n return <AdminSettingsContent user={user} />;\n}\n\nfunction AdminSettingsContent({ user }: { user: SessionUser }) {\n const { t } = useTranslation();\n const { colorScheme, setColorScheme } = useColorScheme();\n const themeOptions = [\n ['light', t('common.theme.light')],\n ['dark', t('common.theme.dark')],\n ];\n\n return (\n <AdminShell\n current=\"settings\"\n title={t('admin.settings.title')}\n user={user}\n >\n <div className=\"mx-auto flex w-full max-w-tinyrack-measure-xl flex-col gap-tinyrack-2xl\">\n <header className=\"flex flex-col gap-tinyrack-xs\">\n <TRText as=\"h1\" variant=\"headingMd\" weight=\"heading\">\n {t('admin.settings.title')}\n </TRText>\n <TRText as=\"p\" color=\"muted\" variant=\"bodySm\">\n {t('admin.settings.description')}\n </TRText>\n </header>\n\n <section className=\"grid items-start gap-tinyrack-md sm:grid-cols-2\">\n <div className=\"flex flex-col gap-tinyrack-xs\">\n <TRText as=\"h2\" variant=\"headingSm\">\n {t('admin.settings.language')}\n </TRText>\n <TRText as=\"p\" color=\"muted\" variant=\"bodySm\">\n {t('admin.settings.languageDescription')}\n </TRText>\n </div>\n <LanguageSelector\n alwaysVisible\n className=\"w-full sm:justify-self-end\"\n presentation=\"field\"\n triggerClassName=\"w-full min-w-full\"\n uiSize=\"md\"\n />\n </section>\n\n <section className=\"grid items-start gap-tinyrack-md sm:grid-cols-2\">\n <div className=\"flex flex-col gap-tinyrack-xs\">\n <TRText as=\"h2\" variant=\"headingSm\">\n {t('admin.settings.theme')}\n </TRText>\n <TRText as=\"p\" color=\"muted\" variant=\"bodySm\">\n {t('admin.settings.themeDescription')}\n </TRText>\n </div>\n <TRSelect.Root\n onValueChange={(value) => {\n if (value === 'light' || value === 'dark') setColorScheme(value);\n }}\n value={colorScheme}\n >\n <TRSelect.Trigger\n appearance=\"solid\"\n aria-label={t('admin.settings.theme')}\n className=\"w-full sm:justify-self-end\"\n uiSize=\"md\"\n >\n <TRSelect.Value>\n {themeOptions.find(([value]) => value === colorScheme)?.[1]}\n </TRSelect.Value>\n <TRSelect.Icon>\n <ChevronDownIcon aria-hidden />\n </TRSelect.Icon>\n </TRSelect.Trigger>\n <TRSelect.Portal>\n <TRSelect.Positioner>\n <TRSelect.Popup>\n <TRSelect.List>\n {themeOptions.map(([value, label]) => (\n <TRSelect.Item key={value} value={value}>\n <TRSelect.ItemText>{label}</TRSelect.ItemText>\n <TRSelect.ItemIndicator>\n <CheckIcon aria-hidden />\n </TRSelect.ItemIndicator>\n </TRSelect.Item>\n ))}\n </TRSelect.List>\n </TRSelect.Popup>\n </TRSelect.Positioner>\n </TRSelect.Portal>\n </TRSelect.Root>\n </section>\n </div>\n </AdminShell>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{C as e,D as t,F as n,H as r,J as i,L as a,P as o,R as s,S as c,T as l,V as u,X as d,Y as f,Z as p,_ as m,c as h,d as g,et as _,f as v,h as y,i as b,j as x,m as S,n as C,s as w,t as T,u as E,w as D,x as O,z as k}from"./createLucideIcon-D-yizrWN.js";import{$ as A,$t as ee,A as j,Ar as M,B as N,Bt as P,C as F,Cn as I,Cr as L,Ct as R,Dn as z,Dr as B,Dt as V,E as H,En as te,Er as U,Et as ne,F as W,Ft as re,G,Gt as ie,Ht as K,I as ae,Ir as oe,It as se,Jt as ce,K as le,Kt as ue,L as de,Lr as fe,Lt as pe,Mn as me,Mt as he,N as ge,Nt as _e,On as ve,Or as ye,Ot as be,P as xe,Pt as Se,Q as Ce,Qt as we,R as q,Rt as Te,S as Ee,Sn as De,Sr as Oe,St as ke,T as Ae,Tn as je,Tr as Me,Tt as Ne,U as Pe,Ur as Fe,Ut as Ie,Vt as Le,W as Re,Wt as ze,X as Be,Xt as Ve,Yt as He,Zt as Ue,_ as We,_n as Ge,_t as Ke,a as qe,an as Je,at as Ye,b as Xe,bn as Ze,br as Qe,bt as $e,c as et,cn as tt,dn as nt,en as rt,et as it,f as at,ft as ot,g as st,gn as ct,gt as lt,hn as ut,in as J,it as dt,j as ft,jn as pt,jr as mt,kt as ht,l as gt,ln as _t,m as vt,nn as yt,o as bt,on as xt,ot as St,p as Ct,pn as wt,qt as Tt,rn as Et,rt as Dt,s as Ot,sn as kt,st as At,t as jt,tn as Mt,un as Nt,v as Pt,vn as Ft,vt as It,w as Lt,wn as Y,wr as Rt,wt as zt,x as Bt,xn as X,xr as Vt,y as Ht,yn as Ut,yr as Wt,yt as Gt,zt as Kt}from"./config-C18-l7z7.js";var Z=_(p(),1);function qt(e,t,n){let r=ye(),i=B(),a=M(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,Qe(o),Rt(o,i,s),U(i);let l=!a.getQueryCache().get(o.queryHash),[u]=Z.useState(()=>new t(a,o)),d=u.getOptimisticResult(o),f=!r&&c;if(Z.useSyncExternalStore(Z.useCallback(e=>{let t=f?u.subscribe(oe.batchCalls(e)):Fe;return u.updateResult(),t},[u,f]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),Z.useEffect(()=>{u.setOptions(o)},[o,u]),Oe(o,d))throw Vt(o,u,i);if(Me({result:d,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw d.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,d),o.experimental_prefetchInRender&&!fe.isServer()&&L(d,r)&&(l?Vt(o,u,i):s?.promise)?.catch(Fe).finally(()=>{u.updateResult()}),o.notifyOnChangeProps?d:u.trackResult(d)}function Jt(e,t){return qt({...e,enabled:!0,suspense:!0,throwOnError:Wt,placeholderData:void 0},mt,t)}var Q=d();function Yt(e,t,n=!0){return e.filter(e=>e.parentId===t).flatMap(t=>[...!n||t.context?.open?[t]:[],...Yt(e,t.id,n)])}function Xt(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function Zt(e,t){return t!=null&&!ze(t)?0:typeof e==`function`?e():e}function Qt(e,t,n){let r=Zt(e,n);return typeof r==`number`?r:r?.[t]}function $t(e){return typeof e==`function`?e():e}function en(e,t){return t||e===`click`||e===`mousedown`}function tn(e){return e?.includes(`mouse`)&&e!==`mousedown`}var nn=Z.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new Ge,currentIdRef:{current:null},currentContextRef:{current:null}});function rn(e,t){e.current=t.current}function an(t){let{children:n,delay:r,timeoutMs:i=0}=t,a=Z.useRef(r),o=Z.useRef(r),s=Z.useRef(null),c=Z.useRef(null),l=Ft();return e(()=>{if(o.current=r,!s.current){a.current=r;return}a.current={open:Qt(a.current,`open`),close:Qt(r,`close`)}},[r,s,a,o]),(0,Q.jsx)(nn.Provider,{value:Z.useMemo(()=>({hasProvider:!0,delayRef:a,initialDelayRef:o,currentIdRef:s,timeoutMs:i,currentContextRef:c,timeout:l}),[i,l]),children:n})}function on(t,n={open:!1}){let{open:r}=n,i=`rootStore`in t?t.rootStore:t,a=i.useState(`floatingId`),{currentIdRef:o,delayRef:s,timeoutMs:c,initialDelayRef:l,currentContextRef:u,hasProvider:d,timeout:f}=Z.useContext(nn),[p,m]=Z.useState(!1),h=Z.useRef(r);return e(()=>{h.current=r},[r]),e(()=>{function e(){u.current?.setIsInstantPhase(!1),o.current=null,u.current=null,s.current=l.current,f.clear()}if(o.current&&!r&&o.current===a){if(m(!1),c){let t=a;return f.start(c,()=>{i.select(`open`)||o.current&&o.current!==t||e()}),()=>{(h.current||o.current!==t)&&f.clear()}}e()}},[r,a,o,s,c,l,u,f,i]),e(()=>{if(!r)return;let e=u.current,t=o.current;f.clear(),u.current={onOpenChange:i.setOpen,setIsInstantPhase:m},o.current=a,s.current={open:0,close:Qt(l.current,`close`)},t!==null&&t!==a?(m(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1,q(A))):(m(!1),e?.setIsInstantPhase(!1))},[r,a,i,o,s,l,u,f]),e(()=>()=>{if(o.current===a){if(u.current=null,!h.current)return;o.current=null,rn(s,l),f.clear()}},[u,o,s,a,l,f]),Z.useMemo(()=>({hasProvider:d,delayRef:s,isInstantPhase:p}),[d,s,p])}var sn=0;function cn(e,t={}){let{preventScroll:n=!1,sync:r=!1,shouldFocus:i}=t;cancelAnimationFrame(sn);function a(){i&&!i()||e?.focus({preventScroll:n})}if(r)return a(),v;let o=requestAnimationFrame(a);return sn=o,()=>{sn===o&&(cancelAnimationFrame(o),sn=0)}}var ln={inert:new WeakMap,"aria-hidden":new WeakMap},un=`data-base-ui-inert`,dn={inert:new WeakSet,"aria-hidden":new WeakSet},fn=new WeakMap,pn=0;function mn(e){return dn[e]}function hn(e){return e?r(e)?e.host:hn(e.parentNode):null}var gn=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=hn(t);return e.contains(n)?n:null}).filter(e=>e!=null),_n=e=>{let t=new Set;return e.forEach(e=>{let n=e;for(;n&&!t.has(n);)t.add(n),n=n.parentNode}),t},vn=(e,t,n)=>{let r=[],i=e=>{!e||n.has(e)||Array.from(e.children).forEach(e=>{x(e)!==`script`&&(t.has(e)?i(e):r.push(e))})};return i(e),r};function yn(e,t,n,r,{mark:i=!0}){let a=null;r?a=`inert`:n&&(a=`aria-hidden`);let o=null,s=null,c=gn(t,e),l=i?vn(t,_n(c),new Set(c)):[],u=[],d=[];if(a){let e=ln[a],n=mn(a);s=n,o=e;let r=gn(t,Array.from(t.querySelectorAll(`[aria-live]`))),i=c.concat(r);vn(t,_n(i),new Set(i)).forEach(t=>{let r=t.getAttribute(a),i=r!==null&&r!==`false`,o=(e.get(t)||0)+1;e.set(t,o),u.push(t),o===1&&i&&n.add(t),i||t.setAttribute(a,a===`inert`?``:`true`)})}return i&&l.forEach(e=>{let t=(fn.get(e)||0)+1;fn.set(e,t),d.push(e),t===1&&e.setAttribute(un,``)}),pn+=1,()=>{o&&u.forEach(e=>{let t=(o.get(e)||0)-1;o.set(e,t),t||(!s?.has(e)&&a&&e.removeAttribute(a),s?.delete(e))}),i&&d.forEach(e=>{let t=(fn.get(e)||0)-1;fn.set(e,t),t||e.removeAttribute(un)}),--pn,pn||(ln.inert=new WeakMap,ln[`aria-hidden`]=new WeakMap,dn.inert=new WeakSet,dn[`aria-hidden`]=new WeakSet,fn=new WeakMap)}}function bn(e,t={}){let{ariaHidden:n=!1,inert:r=!1,mark:i=!0}=t,a=m(e[0]).body;return yn(e,a,n,r,{mark:i})}function xn(e,t){let r=n(Je(e));return e instanceof r.KeyboardEvent?`keyboard`:e instanceof r.FocusEvent?t||`keyboard`:`pointerType`in e?e.pointerType||`keyboard`:`touches`in e?`touch`:e instanceof r.MouseEvent?t||(e.detail===0?`keyboard`:`mouse`):``}var Sn=20,Cn=[];function wn(){Cn=Cn.filter(e=>e.deref()?.isConnected)}function Tn(e){wn(),e&&x(e)!==`body`&&(Cn.push(new WeakRef(e)),Cn.length>Sn&&(Cn=Cn.slice(-20)))}function En(){return wn(),Cn[Cn.length-1]?.deref()}function Dn(e){return e?_e(e)?e:Se(e)[0]||e:null}function On(e){if(e.hasAttribute(`tabindex`)&&!e.hasAttribute(`data-tabindex`)||!e.getAttribute(`role`)?.includes(`dialog`))return;let t=V(e).filter(e=>{let t=e.getAttribute(`data-tabindex`)||``;return _e(e)||e.hasAttribute(`data-tabindex`)&&!t.startsWith(`-`)}),n=e.getAttribute(`tabindex`);t.length===0?n!==`0`&&(e.setAttribute(`tabindex`,`0`),e.setAttribute(`data-tabindex`,`0`)):(n!==`-1`||e.hasAttribute(`data-tabindex`)&&e.getAttribute(`data-tabindex`)!==`-1`)&&(e.setAttribute(`tabindex`,`-1`),e.setAttribute(`data-tabindex`,`-1`))}function kn(t){let{context:n,children:r,disabled:i=!1,initialFocus:a=!0,returnFocus:o=!0,restoreFocus:c=!1,modal:l=!0,closeOnFocusOut:u=!0,openInteractionType:d=``,nextFocusableElement:f,previousFocusableElement:p,beforeContentFocusGuardRef:h,externalTree:g,getInsideElements:_}=t,v=`rootStore`in n?n.rootStore:n,y=v.useState(`open`),b=v.useState(`domReferenceElement`),C=v.useState(`floatingElement`),{events:w,dataRef:T}=v.context,E=D(()=>T.current.floatingContext?.nodeId),O=a===!1,k=rt(b)&&O,A=ge(a),ee=ge(o),j=ge(d),M=ge(y),N=ft(g),P=ae(),F=Z.useRef(!1),I=Z.useRef(!1),L=Z.useRef(!1),R=Z.useRef(null),z=Z.useRef(``),B=Z.useRef(``),V=Z.useRef(null),H=Z.useRef(null),te=S(V,h,P?.beforeInsideRef),U=S(H,P?.afterInsideRef),ne=Ft(),W=Ft(),re=Ze(),ie=P!=null,K=He(C),oe=D((e=K)=>e?Se(e):[]),se=D(()=>_?.().filter(e=>e!=null)??[]);Z.useEffect(()=>{if(i||!l)return;function e(e){e.key===`Tab`&&J(K,Et(m(K)))&&oe().length===0&&!k&&ce(e)}return X(m(K),`keydown`,e)},[i,K,l,k,oe]),Z.useEffect(()=>{if(i||!y)return;let e=m(K);function t(){L.current=!1}function n(e){let t=Je(e),n=se(),r=J(C,t)||J(b,t)||J(P?.portalNode,t)||n.some(e=>e===t||J(e,t));L.current=!r,B.current=e.pointerType||`keyboard`,t?.closest(`[data-base-ui-click-trigger]`)&&(I.current=!0,W.start(0,()=>{I.current=!1}))}function r(){B.current=`keyboard`}return De(X(e,`pointerdown`,n,!0),X(e,`pointerup`,t,!0),X(e,`pointercancel`,t,!0),X(e,`keydown`,r,!0),t)},[i,C,b,K,y,P,W,se]),Z.useEffect(()=>{if(i||!u)return;let e=m(K);function t(){I.current=!0,W.start(0,()=>{I.current=!1})}function n(e){let t=Je(e);_e(t)&&(R.current=t)}function r(t){let n=t.relatedTarget,r=t.currentTarget,i=Je(t);l&&n==null&&i!=null&&J(C,i)&&Tn(i),queueMicrotask(()=>{let a=E(),o=v.context.triggerElements,u=se(),d=n?.hasAttribute(de(`focus-guard`))&&[V.current,H.current,P?.beforeInsideRef.current,P?.afterInsideRef.current,P?.beforeOutsideRef.current,P?.afterOutsideRef.current,$e(p),$e(f)].includes(n),m=!(J(b,n)||J(C,n)||J(n,C)||J(P?.portalNode,n)||u.some(e=>e===n||J(e,n))||o.hasMatchingElement(e=>J(e,n))||d||N&&(Yt(N.nodesRef.current,a).find(e=>J(e.context?.elements.floating,n)||J(e.context?.elements.domReference,n))||Xt(N.nodesRef.current,a).find(e=>[e.context?.elements.floating,He(e.context?.elements.floating)].includes(n)||e.context?.elements.domReference===n)));if(r===b&&K&&On(K),c&&r!==b&&!Te(i)&&Et(e)===e.body){if(s(K)&&(K.focus(),c===`popup`)){re.request(()=>{K.focus()});return}let e=oe(),t=R.current,n=(t&&e.includes(t)?t:null)||e[e.length-1]||K;s(n)&&n.focus()}if(T.current.insideReactTree){T.current.insideReactTree=!1;return}(k||!l)&&n&&m&&!I.current&&(k||n!==En())&&(F.current=!0,v.setOpen(!1,q(G,t)))})}function a(){L.current||(T.current.insideReactTree=!0,ne.start(0,()=>{T.current.insideReactTree=!1}))}let o=s(b)?b:null;if(!(!C&&!o))return De(o&&X(o,`focusout`,r),o&&X(o,`pointerdown`,t),C&&X(C,`focusin`,n),C&&X(C,`focusout`,r),C&&P&&X(C,`focusout`,a,!0))},[i,b,C,K,l,N,P,v,u,c,oe,k,E,T,ne,W,re,f,p,se]),Z.useEffect(()=>{if(i||!C||!y)return;let e=Array.from(P?.portalNode?.querySelectorAll(`[${de(`portal`)}]`)||[]),t=(N?Xt(N.nodesRef.current,E()):[]).find(e=>rt(e.context?.elements.domReference||null))?.context?.elements.domReference,n=bn([C,...e,V.current,H.current,P?.beforeOutsideRef.current,P?.afterOutsideRef.current,...se(),t,$e(p),$e(f),k?b:null].filter(e=>e!=null),{ariaHidden:l||k,mark:!1}),r=bn([C,...e].filter(e=>e!=null));return()=>{r(),n()}},[y,i,b,C,l,P,k,N,E,f,p,se]),e(()=>{if(!y||i||!s(K))return;z.current=``,B.current=``;let e=m(K),t=Et(e);queueMicrotask(()=>{let n=A.current,r=typeof n==`function`?n(j.current||``):n;if(r===void 0||r===!1||J(K,t))return;let i=null,a=()=>(i??=oe(K),i[0]||K),o;o=r===!0||r===null?a():$e(r),o||=a();let s=J(K,Et(e));cn(o,{preventScroll:o===K,shouldFocus(){if(!M.current)return!1;if(s)return!0;let t=Et(e);return!(t!==o&&J(K,t))}})})},[i,y,K,oe,A,j,M]),e(()=>{if(i||!K)return;let e=m(K),t=Et(e),n=j.current==null;Tn(t);function r(e){if(e.open||(z.current=xn(e.nativeEvent,B.current)),e.reason===`trigger-hover`&&e.nativeEvent.type===`mouseleave`&&(F.current=!0),e.reason===`outside-press`)if(e.nested)F.current=!1;else if(ue(e.nativeEvent)||Tt(e.nativeEvent))F.current=!1;else{let e=!1;m(K).createElement(`div`).focus({get preventScroll(){return e=!0,!1}}),e?F.current=!1:F.current=!0}}w.on(`openchange`,r);function a(e){let r=ee.current,i=typeof r==`function`?r(e):r;if(i===void 0||i===!1)return null;i===null&&(i=!0);let a=b?.isConnected?b:null,o=t?.isConnected&&x(t)!==`body`?t:null,s=n?o||a:a||o;return s||=En()||null,typeof i==`boolean`?s:$e(i)||s||null}return()=>{w.off(`openchange`,r);let t=Et(e),n=se(),i=J(C,t)||n.some(e=>e===t||J(e,t))||N&&Yt(N.nodesRef.current,E(),!1).some(e=>J(e.context?.elements.floating,t)),o=ee.current,c=z.current,l=a(c);queueMicrotask(()=>{let n=Dn(l),r=typeof o!=`boolean`;if(o&&!F.current&&s(n)&&(!(!r&&n!==t&&t!==e.body)||i)){let e={preventScroll:!0};c===`keyboard`&&(e.focusVisible=!0),n.focus(e)}F.current=!1})}},[i,C,K,ee,j,w,N,b,E,se]),e(()=>{if(!wt||y||!C)return;let e=Et(m(C));!s(e)||!Mt(e)||J(C,e)&&e.blur()},[y,C]),e(()=>{if(!(i||!P))return P.setFocusManagerState({modal:l,closeOnFocusOut:u,open:y,onOpenChange:v.setOpen,domReference:b}),()=>{P.setFocusManagerState(null)}},[i,P,l,y,v,u,b]),e(()=>{if(!(i||!K))return On(K),()=>{queueMicrotask(wn)}},[i,K]);let le=!i&&(l?!k:!0)&&(ie||l);return(0,Q.jsxs)(Z.Fragment,{children:[le&&(0,Q.jsx)(zt,{"data-type":`inside`,ref:te,onFocus:e=>{if(l){let e=oe();cn(e[e.length-1])}else P?.portalNode&&(F.current=!1,he(e,P.portalNode)?be(b)?.focus():$e(p??P.beforeOutsideRef)?.focus())}}),r,le&&(0,Q.jsx)(zt,{"data-type":`inside`,ref:U,onFocus:e=>{l?cn(oe()[0]):P?.portalNode&&(u&&(F.current=!0),he(e,P.portalNode)?ht(b)?.focus():$e(f??P.afterOutsideRef)?.focus())}})]})}function An(e,t={}){let{enabled:n=!0,event:r=`click`,toggle:i=!0,ignoreMouse:a=!1,stickIfOpen:o=!0,touchOpenDelay:s=0,reason:c=Ye}=t,l=`rootStore`in e?e.rootStore:e,u=l.context.dataRef,d=Z.useRef(void 0),f=Ze(),p=Ft(),m=Z.useMemo(()=>{function e(e,t,n,r){let i=q(c,t,n);e&&r===`touch`&&s>0?p.start(s,()=>{l.setOpen(!0,i)}):l.setOpen(e,i)}function t(e,t,n){let r=u.current.openEvent,a=l.select(`domReferenceElement`)!==t;return e&&a||!e||!i?!0:r&&o?!n(r.type):!1}return{onPointerDown(e){d.current=ze(e.pointerType,!0)&&Tt(e.nativeEvent)?`virtual`:e.pointerType},onMouseDown(n){let i=d.current,o=n.nativeEvent,s=l.select(`open`);if(n.button!==0||r===`click`||ze(i,!0)&&a)return;let c=t(s,n.currentTarget,e=>e===`click`||e===`mousedown`),u=Je(o);if(Mt(u)){e(c,o,u,i);return}let p=n.currentTarget;f.request(()=>{e(c,o,p,i)})},onClick(n){if(r===`mousedown-only`)return;let i=d.current;if(r===`mousedown`&&i){d.current=void 0;return}ze(i,!0)&&a||e(t(l.select(`open`),n.currentTarget,e=>e===`click`||e===`mousedown`||e===`keydown`||e===`keyup`),n.nativeEvent,n.currentTarget,i)},onKeyDown(){d.current=void 0}}},[u,r,a,c,l,o,i,f,p,s]);return Z.useMemo(()=>n?{reference:m}:g,[n,m])}function jn(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=a.width,u=a.height,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,l=0,u=0,!i||c?(l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f):i&&!c&&(u=t.axis===`x`?a.height:u,l=t.axis===`y`?a.width:l),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function Mn(e){return e!=null&&e.clientX!=null}function Nn(e,t={}){let{enabled:r=!0,axis:i=`both`}=t,a=`rootStore`in e?e.rootStore:e,o=a.useState(`open`),s=a.useState(`floatingElement`),c=a.useState(`domReferenceElement`),l=a.context.dataRef,u=Z.useRef(!1),d=Z.useRef(null),[f,p]=Z.useState(),[m,h]=Z.useState([]),g=D(e=>{a.set(`positionReference`,e)}),_=D((e,t,n)=>{u.current||l.current.openEvent&&!Mn(l.current.openEvent)||a.set(`positionReference`,jn(n??c,{x:e,y:t,axis:i,dataRef:l,pointerType:f}))}),v=D(e=>{o?d.current||(_(e.clientX,e.clientY,e.currentTarget),h([])):_(e.clientX,e.clientY,e.currentTarget)}),y=ze(f)?s:o;Z.useEffect(()=>{if(!r){g(c);return}if(!y)return;function e(){d.current?.(),d.current=null}let t=n(s);function i(t){let n=Je(t);J(s,n)?e():_(t.clientX,t.clientY)}return!l.current.openEvent||Mn(l.current.openEvent)?d.current=X(t,`mousemove`,i):g(c),e},[y,r,s,l,c,a,_,g,m]),Z.useEffect(()=>()=>{a.set(`positionReference`,null)},[a]),Z.useEffect(()=>{r&&!s&&(u.current=!1)},[r,s]),Z.useEffect(()=>{!r&&o&&(u.current=!0)},[r,o]);let b=Z.useMemo(()=>{function e(e){p(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:v,onMouseEnter:v}},[v]);return Z.useMemo(()=>r?{reference:b,trigger:b}:{},[r,b])}function Pn(){return!1}function Fn(e){return{escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0}}function In(e,n={}){let{enabled:i=!0,escapeKey:c=!0,outsidePress:l=!0,outsidePressEvent:u=`sloppy`,referencePress:d=Pn,bubbles:f,externalTree:p}=n,h=`rootStore`in e?e.rootStore:e,g=h.useState(`open`),_=h.useState(`floatingElement`),{dataRef:v}=h.context,y=ft(p),b=D(typeof l==`function`?l:()=>!1),x=typeof l==`function`?b:l,S=x!==!1,C=D(()=>u),{escapeKey:w,outsidePress:T}=Fn(f),E=Z.useRef(!1),O=Z.useRef(!1),A=Z.useRef(!1),ee=Z.useRef(!1),j=Z.useRef(``),M=Z.useRef(null),N=Ft(),P=Ft(),F=D(()=>{P.clear(),v.current.insideReactTree=!1}),I=D(e=>{let t=v.current.floatingContext?.nodeId;return(y?Yt(y.nodesRef.current,t):[]).some(t=>t.context?.open&&!t.context.dataRef.current[e])}),L=D(e=>Ve(e,h.select(`floatingElement`))||Ve(e,h.select(`domReferenceElement`))),R=D(e=>{d()&&h.setOpen(!1,q(Ye,e.nativeEvent))}),z=D(e=>{if(!g||!i||!c||e.key!==`Escape`||ee.current||!w&&I(`__escapeKeyBubbles`))return;let t=q(Re,ie(e)?e.nativeEvent:e);h.setOpen(!1,t),t.isCanceled||e.preventDefault(),!w&&!t.isPropagationAllowed&&e.stopPropagation()}),B=D(()=>{v.current.insideReactTree=!0,P.start(0,F)}),V=D(e=>{if(!g||!i||e.button!==0)return;let t=Je(e.nativeEvent);J(h.select(`floatingElement`),t)&&(E.current||(E.current=!0,O.current=!1))}),H=D(e=>{!g||!i||(e.defaultPrevented||e.nativeEvent.defaultPrevented)&&E.current&&(O.current=!0)});Z.useEffect(()=>{if(!g||!i)return F;v.current.__escapeKeyBubbles=w,v.current.__outsidePressBubbles=T;let e=new Ge,n=new Ge;function l(){e.clear(),ee.current=!0}function u(){e.start(wt?5:0,()=>{ee.current=!1})}function d(){A.current=!0,n.start(0,()=>{A.current=!1})}function f(){E.current=!1,O.current=!1}function p(){let e=j.current,t=e===`pen`||!e?`mouse`:e,n=C(),r=typeof n==`function`?n():n;return typeof r==`string`?r:r[t]}function b(e){let t=p();return t===`intentional`&&e.type!==`click`||t===`sloppy`&&e.type===`click`}function D(e){let t=v.current.floatingContext?.nodeId,n=y&&Yt(y.nodesRef.current,t).some(t=>Ve(e,t.context?.elements.floating));return L(e)||n}function P(e){if(b(e)){e.type!==`click`&&!L(e)&&(n.clear(),A.current=!1),F();return}if(v.current.insideReactTree){F();return}let i=Je(e),c=`[${de(`inert`)}]`,l=a(i)?i.getRootNode():null,u=Array.from((r(l)?l:m(h.select(`floatingElement`))).querySelectorAll(c)),d=h.context.triggerElements;if(i&&(d.hasElement(i)||d.hasMatchingElement(e=>J(e,i))))return;let f=a(i)?i:null;for(;f&&!k(f);){let e=o(f);if(k(e)||!a(e))break;f=e}if(!(u.length&&a(i)&&!we(i)&&!J(i,h.select(`floatingElement`))&&u.every(e=>!J(f,e)))){if(s(i)&&!(`touches`in e)){let n=k(i),r=t(i),a=/auto|scroll/,o=n||a.test(r.overflowX),s=n||a.test(r.overflowY),c=o&&i.clientWidth>0&&i.scrollWidth>i.clientWidth,l=s&&i.clientHeight>0&&i.scrollHeight>i.clientHeight,u=r.direction===`rtl`,d=l&&(u?e.offsetX<=i.offsetWidth-i.clientWidth:e.offsetX>i.clientWidth),f=c&&e.offsetY>i.clientHeight;if(d||f)return}if(!D(e)){if(p()===`intentional`&&A.current){n.clear(),A.current=!1;return}typeof x==`function`&&!x(e)||I(`__outsidePressBubbles`)||(h.setOpen(!1,q(it,e)),F())}}}function R(e){p()!==`sloppy`||e.pointerType===`touch`||!h.select(`open`)||!i||L(e)||P(e)}function B(e){if(p()!==`sloppy`||!h.select(`open`)||!i||L(e))return;let t=e.touches[0];t&&(M.current={startTime:Date.now(),startX:t.clientX,startY:t.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},N.start(1e3,()=>{M.current&&(M.current.dismissOnTouchEnd=!1,M.current.dismissOnMouseDown=!1)}))}function V(e,t){let n=Je(e);if(!n)return;let r=X(n,e.type,()=>{t(e),r()})}function H(e){j.current=`touch`,V(e,B)}function te(e){N.clear(),e.type===`pointerdown`&&(j.current=e.pointerType),!(e.type===`mousedown`&&M.current&&!M.current.dismissOnMouseDown)&&V(e,e=>{e.type===`pointerdown`?R(e):P(e)})}function U(e){if(!E.current)return;let t=O.current;if(f(),p()===`intentional`){if(e.type===`pointercancel`){t&&d();return}if(!D(e)){if(t){d();return}typeof x==`function`&&!x(e)||(n.clear(),A.current=!0,F())}}}function ne(e){if(p()!==`sloppy`||!M.current||L(e))return;let t=e.touches[0];if(!t)return;let n=Math.abs(t.clientX-M.current.startX),r=Math.abs(t.clientY-M.current.startY),i=Math.sqrt(n*n+r*r);i>5&&(M.current.dismissOnTouchEnd=!0),i>10&&(P(e),N.clear(),M.current=null)}function W(e){V(e,ne)}function re(e){p()!==`sloppy`||!M.current||L(e)||(M.current.dismissOnTouchEnd&&P(e),N.clear(),M.current=null)}function G(e){V(e,re)}let ie=m(_),K=De(c&&De(X(ie,`keydown`,z),X(ie,`compositionstart`,l),X(ie,`compositionend`,u)),S&&De(X(ie,`click`,te,!0),X(ie,`pointerdown`,te,!0),X(ie,`pointerup`,U,!0),X(ie,`pointercancel`,U,!0),X(ie,`mousedown`,te,!0),X(ie,`mouseup`,U,!0),X(ie,`touchstart`,H,!0),X(ie,`touchmove`,W,!0),X(ie,`touchend`,G,!0)));return()=>{K(),e.clear(),n.clear(),f(),A.current=!1,F()}},[v,_,c,S,x,g,i,w,T,z,F,C,I,L,y,h,N]);let te=Z.useMemo(()=>({onKeyDown:z,onPointerDown:R,onClick:R}),[z,R]),U=Z.useMemo(()=>({onKeyDown:z,onPointerDown:H,onMouseDown:H,onClickCapture:B,onMouseDownCapture(e){B(),V(e)},onPointerDownCapture(e){B(),V(e)},onMouseUpCapture:B,onTouchEndCapture:B,onTouchMoveCapture:B}),[z,B,V,H]);return Z.useMemo(()=>i?{reference:te,floating:U,trigger:te}:{},[i,te,U])}var Ln=f(),Rn=_(pt(),1),zn=class{attachedStores=[];attachedStoreValue=null;storeListeners=new Set;constructor(e,t,n=!0){this.fallbackStore=e,this.componentName=t,this.throwOnMissingTrigger=n}get attachedStore(){return this.attachedStoreValue}get store(){return this.attachedStoreValue??this.fallbackStore}get serverStore(){return this.fallbackStore}subscribeStore(e){return this.storeListeners.add(e),()=>{this.storeListeners.delete(e)}}attachStore(e){return this.attachedStores.push(e),this.setActiveStore(e),()=>{let t=this.attachedStores.lastIndexOf(e);t!==-1&&this.attachedStores.splice(t,1),this.setActiveStore(this.attachedStores[this.attachedStores.length-1]??null)}}setActiveStore(e){this.attachedStoreValue!==e&&(this.attachedStoreValue=e,this.storeListeners.forEach(e=>{e()}))}openByTrigger(e){let t=this.attachedStore;if(t===null)return;let n;if(e){for(let t=this.attachedStores.length-1;t>=0&&!n;--t)n=this.attachedStores[t].context.triggerElements.getById(e);n??=this.fallbackStore.context.triggerElements.getById(e)}if(e&&!n&&this.throwOnMissingTrigger)throw Error(O(99,this.componentName,e,this.componentName));t.setOpen(!0,q(le,void 0,n))}closePopup(){let e=this.attachedStore;e!==null&&e.setOpen(!1,q(le))}};function Bn(t){let{popupStore:n,treatPopupAsFloatingElement:r=!1,floatingRootContext:i,floatingId:o,nested:s,onOpenChange:c}=t,l=n.useState(`open`),u=n.useState(`activeTriggerElement`),d=n.useState(r?`popupElement`:`positionerElement`),f=n.context.triggerElements,p=c,m=Z.useRef(null);i===void 0&&m.current===null&&(m.current=new Ae({open:l,transitionStatus:void 0,referenceElement:u,floatingElement:d,triggerElements:f,onOpenChange:p,floatingId:o,syncOnly:!0,nested:s}));let h=i??m.current;return n.useSyncedValue(`floatingId`,o),e(()=>{let e={open:l,floatingId:o,referenceElement:u,floatingElement:d};a(u)&&(e.domReferenceElement=u),h.state.positionReference===h.state.referenceElement&&(e.positionReference=u),h.update(e)},[l,o,u,d,h]),h.context.onOpenChange=p,h.context.nested=s,h}function Vn(t,n=!1,r=!1){let[i,a]=Z.useState(t&&n?`idle`:void 0),[o,s]=Z.useState(t);return t&&!o&&(s(!0),a(`starting`)),!t&&o&&i!==`ending`&&!r&&a(`ending`),!t&&!o&&i===`ending`&&a(void 0),e(()=>{if(!t&&o&&i!==`ending`&&r){let e=Ut.request(()=>{a(`ending`)});return()=>{Ut.cancel(e)}}},[t,o,i,r]),e(()=>{if(!t||n)return;let e=Ut.request(()=>{a(void 0)});return()=>{Ut.cancel(e)}},[n,t]),e(()=>{if(!t||!n)return;t&&o&&i!==`idle`&&a(`starting`);let e=Ut.request(()=>{a(`idle`)});return()=>{Ut.cancel(e)}},[n,t,o,i]),{mounted:o,setMounted:s,transitionStatus:i}}var Hn={tabIndex:-1,[Nt]:``};function Un(e){return t=>t===`touch`?e.current:!0}function Wn(e,t=!1){let n=At(),r=j()!=null,i=l(()=>e(n,r)).current;return Bn({popupStore:i,treatPopupAsFloatingElement:t,floatingRootContext:i.state.floatingRootContext,floatingId:n,nested:r,onOpenChange:i.setOpen}),i}function Gn({handle:t,store:n}){return e(()=>t.attachStore(n),[t,n]),null}function Kn(e,t){let n=Z.useRef(null),r=Z.useRef(null);return Z.useCallback(i=>{if(e===void 0)return;let a=!1;if(n.current!==null){let e=n.current,i=r.current,o=t.context.triggerElements.getById(e);i&&o===i&&(t.context.triggerElements.delete(e),a=!0),n.current=null,r.current=null}if(i!==null&&(n.current=e,r.current=i,t.context.triggerElements.add(e,i),a=!0),a){let e=t.context.triggerElements.size;t.select(`open`)&&t.state.triggerCount!==e&&t.set(`triggerCount`,e)}},[t,e])}function qn(e,t,n,r=!1){t?e.preventUnmountingOnClose=!1:r&&(e.preventUnmountingOnClose=!0);let i=n?.id??null;(i||t)&&(e.activeTriggerId=i,e.activeTriggerElement=n??null)}function Jn(e){let t=!1;return e.preventUnmountOnClose=()=>{t=!0},()=>t}function Yn(e,t,n,r={}){let i=n.reason,a=i===dt,o=t&&i===`trigger-focus`,s=!t&&(i===`trigger-press`||i===`escape-key`),c=Jn(n);if(e.context.onOpenChange?.(t,n),n.isCanceled)return;r.onBeforeDispatch?.(),e.state.floatingRootContext.dispatchOpenChange(t,n);let l=()=>{let i={...r.extraState,open:t};o?i.instantType=`focus`:s?i.instantType=`dismiss`:a&&(i.instantType=void 0),qn(i,t,n.trigger,c()),e.update(i)};a?Rn.flushSync(l):l()}function Xn(t,n,r,i){let a=r.useState(`isMountedByTrigger`,t),o=Kn(t,r),s=D(e=>{let n=r.select(`open`),a=r.select(`activeTriggerId`);if(a===t){r.update({activeTriggerElement:e,...n?i:null});return}a==null&&n&&r.update({activeTriggerId:t,activeTriggerElement:e,...i})}),c=Z.useCallback(e=>{o(e),e&&s(e)},[o,s]);return e(()=>{a&&r.update({activeTriggerElement:n.current,...i})},[a,r,n,...Object.values(i)]),{registerTrigger:c,isMountedByThisTrigger:a}}function Zn(t,n={}){let{closeOnActiveTriggerUnmount:r=!1}=n,i=Z.useRef(null),a=t.useState(`open`);e(()=>{if(!a){i.current=null,t.state.triggerCount!==0&&t.set(`triggerCount`,0);return}let e=t.context.triggerElements.size,n={};t.state.triggerCount!==e&&(n.triggerCount=e);let o=t.select(`activeTriggerId`),s=null;if(o){let e=t.context.triggerElements.getById(o);if(e)i.current=o,e!==t.state.activeTriggerElement&&(n.activeTriggerElement=e);else{for(let[e,r]of t.context.triggerElements.entries())if(r===t.state.activeTriggerElement){n.activeTriggerId=e,n.activeTriggerElement=r,i.current=e;break}n.activeTriggerId===void 0&&(i.current===o?s=o:i.current=null)}}else i.current=null;if(!s&&!o&&e===1){let e=t.context.triggerElements.entries().next();if(!e.done){let[t,r]=e.value;n.activeTriggerId=t,n.activeTriggerElement=r,i.current=t}}(n.triggerCount!==void 0||n.activeTriggerId!==void 0||n.activeTriggerElement!==void 0)&&t.update(n),s&&r&&queueMicrotask(()=>{if(t.select(`open`)&&t.select(`activeTriggerId`)===s&&!t.context.triggerElements.getById(s)){let e=q(A);t.setOpen(!1,e),e.isCanceled||t.update({activeTriggerId:null,activeTriggerElement:null})}})},[a,t,t.useState(`triggerCount`),t.useState(`activeTriggerId`),t.useState(`activeTriggerElement`),r])}function Qn(e,t,n){let{mounted:r,setMounted:i,transitionStatus:a}=Vn(e),o=t.useState(`preventUnmountingOnClose`),s=e?!1:o;t.useSyncedValues({mounted:r,transitionStatus:a,preventUnmountingOnClose:s});let c=D(()=>{i(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)});return It({enabled:r&&!e&&!s,open:e,ref:t.context.popupRef,onComplete(){e||c()}}),{forceUnmount:c,transitionStatus:a}}function $n(t,n){t.useSyncedValues(n),e(()=>()=>{t.update({activeTriggerProps:g,inactiveTriggerProps:g,popupProps:g})},[t])}function er(t,n){e(()=>{!n&&t.state.openMethod!==null&&t.set(`openMethod`,null)},[n,t]),e(()=>()=>{t.state.openMethod!==null&&t.set(`openMethod`,null)},[t])}function tr(){return new Ae({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new Lt,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function nr(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:tr(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:g,inactiveTriggerProps:g,popupProps:g}}function rr(e,t,n=!1){return new Ae({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:t,syncOnly:!0,nested:n,onOpenChange:void 0})}var ir=e=>e.triggerIdProp??e.activeTriggerId,ar=e=>e.openProp??e.open,or=e=>(e.popupElement?.id??e.floatingId)||void 0;function sr(e,t){return t!==void 0&&ar(e)&&ir(e)===t}function cr(e,t){return sr(e,t)?!0:t!==void 0&&ar(e)&&ir(e)==null&&e.triggerCount===1}var lr={open:ar,mounted:e=>e.mounted,transitionStatus:e=>e.transitionStatus,floatingRootContext:e=>e.floatingRootContext,triggerCount:e=>e.triggerCount,preventUnmountingOnClose:e=>e.preventUnmountingOnClose,payload:e=>e.payload,activeTriggerId:ir,activeTriggerElement:e=>e.mounted?e.activeTriggerElement:null,popupId:or,isTriggerActive:(e,t)=>t!==void 0&&ir(e)===t,isOpenedByTrigger:(e,t)=>sr(e,t),isMountedByTrigger:(e,t)=>t!==void 0&&ir(e)===t&&e.mounted,triggerProps:(e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps,triggerPopupId:(e,t)=>cr(e,t)?or(e):void 0,popupProps:e=>e.popupProps,popupElement:e=>e.popupElement,positionerElement:e=>e.positionerElement};function ur(e){return(0,Ln.useSyncExternalStore)(Z.useCallback(t=>e===void 0?v:e.subscribeStore(t),[e]),Z.useCallback(()=>e===void 0?void 0:e.store,[e]),()=>e?.serverStore)}var dr=ct&&wt;function fr(e,t={}){let{enabled:r=!0,delay:i}=t,o=`rootStore`in e?e.rootStore:e,{events:c,dataRef:l}=o.context,u=Z.useRef(!1),d=Z.useRef(null),f=Z.useRef(!0),p=Ft();Z.useEffect(()=>{let e=o.select(`domReferenceElement`);if(!r)return;let t=n(e);function i(){let e=o.select(`domReferenceElement`);!o.select(`open`)&&s(e)&&e===Et(m(e))&&(u.current=!0)}function a(){f.current=!0}function c(){f.current=!1}return De(X(t,`blur`,i),dr&&X(t,`keydown`,a,!0),dr&&X(t,`pointerdown`,c,!0))},[o,r]),Z.useEffect(()=>{if(!r)return;function e(e){if(e.reason===`trigger-press`||e.reason===`escape-key`){let e=o.select(`domReferenceElement`);a(e)&&(d.current=e,u.current=!0)}}return c.on(`openchange`,e),()=>{c.off(`openchange`,e)}},[c,r,o]);let h=Z.useMemo(()=>{function e(){u.current=!1,d.current=null}return{onMouseLeave(){e()},onFocus(t){let n=t.currentTarget;if(u.current){if(d.current===n)return;e()}let r=Je(t.nativeEvent);if(a(r)){if(dr&&!t.relatedTarget){if(!f.current&&!Mt(r))return}else if(!yt(r))return}let s=ee(t.relatedTarget,o.context.triggerElements),{nativeEvent:c,currentTarget:l}=t,m=typeof i==`function`?i():i;if(o.select(`open`)&&s||m===0||m===void 0){o.setOpen(!0,q(Dt,c,l));return}p.start(m,()=>{u.current||o.setOpen(!0,q(Dt,c,l))})},onBlur(t){e();let n=t.relatedTarget,r=t.nativeEvent,i=a(n)&&n.hasAttribute(de(`focus-guard`))&&n.getAttribute(`data-type`)===`outside`;p.start(0,()=>{let e=o.select(`domReferenceElement`),t=Et(m(e));!n&&t===e||J(l.current.floatingContext?.refs.floating.current,t)||J(e,t)||i||ee(n??t,o.context.triggerElements)||o.setOpen(!1,q(Dt,r))})}}},[l,i,o,p]);return Z.useMemo(()=>r?{reference:h,trigger:h}:{},[r,h])}var pr=class e{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new Ge,this.restTimeout=new Ge,this.handleCloseOptions=void 0}static create(){return new e}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose},mr=new WeakMap;function hr(e){if(!e.performedPointerEventsMutation)return;let t=e.pointerEventsScopeElement;t&&mr.get(t)===e&&(e.pointerEventsScopeElement?.style.removeProperty(`pointer-events`),e.pointerEventsReferenceElement?.style.removeProperty(`pointer-events`),e.pointerEventsFloatingElement?.style.removeProperty(`pointer-events`),mr.delete(t)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function gr(e,t){let{scopeElement:n,referenceElement:r,floatingElement:i}=t,a=mr.get(n);a&&a!==e&&hr(a),hr(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=n,e.pointerEventsReferenceElement=r,e.pointerEventsFloatingElement=i,mr.set(n,e),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,i.style.pointerEvents=`auto`}function _r(e){let t=e.context.dataRef.current,n=l(()=>t.hoverInteractionState??pr.create()).current;return t.hoverInteractionState||=n,z(t.hoverInteractionState.disposeEffect),t.hoverInteractionState}function vr(t,n={}){let{enabled:r=!0,closeDelay:i=0,nodeId:o}=n,s=`rootStore`in t?t.rootStore:t,c=s.useState(`open`),l=s.useState(`floatingElement`),u=s.useState(`domReferenceElement`),{dataRef:d}=s.context,f=ft(),p=j(),h=_r(s),g=Ft(),_=D(()=>en(d.current.openEvent?.type,h.interactedInside)),v=D(()=>tn(d.current.openEvent?.type)),y=D(()=>{hr(h)});e(()=>{c||(h.pointerType=void 0,h.restTimeoutPending=!1,h.interactedInside=!1,y())},[c,h,y]),Z.useEffect(()=>y,[y]),e(()=>{if(r&&c&&h.handleCloseOptions?.blockPointerEvents&&v()&&a(u)&&l){let e=u,t=l,n=m(l),r=f?.nodesRef.current.find(e=>e.id===p)?.context?.elements.floating;r&&(r.style.pointerEvents=``);let i=h.pointerEventsScopeElement===t?null:h.pointerEventsScopeElement,a=r===t?null:r,o=h.handleCloseOptions?.getScope?.()??i??a??e.closest(`[data-rootownerid]`)??n.body;return gr(h,{scopeElement:o,referenceElement:e,floatingElement:t}),()=>{y()}}},[r,c,u,l,h,v,f,p,y]),Z.useEffect(()=>{if(!r)return;function e(){return!!(f&&p&&Yt(f.nodesRef.current,p).length>0)}function t(e){let t=Qt(i,`close`,h.pointerType),n=()=>{s.setOpen(!1,q(dt,e)),f?.events.emit(`floating.closed`,e)};t?h.openChangeTimeout.start(t,n):(h.openChangeTimeout.clear(),n())}function n(e){let t=Je(e);if(!Ue(t)){h.interactedInside=!1;return}h.interactedInside=t?.closest(`[aria-haspopup]`)!=null}function c(){h.openChangeTimeout.clear(),g.clear(),f?.events.off(`floating.closed`,m),y()}function u(n){if(e()&&f){f.events.on(`floating.closed`,m);return}if(ee(n.relatedTarget,s.context.triggerElements))return;let r=d.current.floatingContext?.nodeId??o,i=n.relatedTarget;if(!(f&&r&&a(i)&&Yt(f.nodesRef.current,r,!1).some(e=>J(e.context?.elements.floating,i)))){if(h.handler){h.handler(n);return}y(),v()&&!_()&&t(n)}}function m(t){!f||!p||e()||g.start(0,()=>{f.events.off(`floating.closed`,m),s.setOpen(!1,q(dt,t)),f.events.emit(`floating.closed`,t)})}let b=l;return De(b&&X(b,`mouseenter`,c),b&&X(b,`mouseleave`,u),b&&X(b,`pointerdown`,n,!0),()=>{f?.events.off(`floating.closed`,m)})},[r,l,s,d,i,o,v,_,y,h,f,p,g])}var yr={current:null};function br(e,t={}){let{enabled:n=!0,delay:r=0,handleClose:i=null,mouseOnly:o=!1,restMs:s=0,move:c=!0,triggerElementRef:l=yr,externalTree:u,isActiveTrigger:d=!0,getHandleCloseContext:f,isClosing:p,shouldOpen:h,guardStaleOpen:g=!1}=t,_=`rootStore`in e?e.rootStore:e,{dataRef:v,events:y}=_.context,b=ft(u),x=_r(_),S=Z.useRef(!1),C=ge(i),w=ge(r),T=ge(s),E=ge(n),O=ge(h),k=ge(p),A=D(()=>en(v.current.openEvent?.type,x.interactedInside)),j=D(()=>O.current?.()!==!1),M=D((e,t,n)=>{let r=_.context.triggerElements;if(r.hasElement(t))return!e||!J(e,t);if(!a(n))return!1;let i=n;return r.hasMatchingElement(e=>J(e,i))&&(!e||!J(e,i))}),N=D(()=>{x.handler&&=(m(_.select(`domReferenceElement`)).removeEventListener(`mousemove`,x.handler),void 0)}),P=D(()=>{hr(x)});return d&&(x.handleCloseOptions=C.current?.__options),Z.useEffect(()=>N,[N]),Z.useEffect(()=>{if(!n)return;function e(e){e.open?S.current=!1:(S.current=e.reason===dt,N(),x.openChangeTimeout.clear(),x.restTimeout.clear(),x.blockMouseMove=!0,x.restTimeoutPending=!1)}return y.on(`openchange`,e),()=>{y.off(`openchange`,e)}},[n,y,x,N]),Z.useEffect(()=>{if(!n)return;function e(e,t=!0){let n=Qt(w.current,`close`,x.pointerType);n?x.openChangeTimeout.start(n,()=>{_.setOpen(!1,q(dt,e)),b?.events.emit(`floating.closed`,e)}):t&&(x.openChangeTimeout.clear(),_.setOpen(!1,q(dt,e)),b?.events.emit(`floating.closed`,e))}let t=l.current??(d?_.select(`domReferenceElement`):null);if(!a(t))return;function r(e){if(x.openChangeTimeout.clear(),x.blockMouseMove=!1,o&&!ze(x.pointerType))return;let t=$t(T.current),n=Qt(w.current,`open`,x.pointerType),r=Je(e),i=e.currentTarget??null,s=_.select(`domReferenceElement`),c=i;if(a(r)&&!_.context.triggerElements.hasElement(r)){for(let e of _.context.triggerElements.elements())if(J(e,r)){c=e;break}}a(i)&&a(s)&&!_.context.triggerElements.hasElement(i)&&J(i,s)&&(c=s);let l=c==null?!1:M(s,c,r),u=_.select(`open`),d=k.current?.()??_.select(`transitionStatus`)===`ending`,f=!u&&d&&S.current,p=!l&&a(c)&&a(s)&&J(s,c)&&f,m=t>0&&!n,h=l&&(u||f)||p,g=!u||l;if(h){j()&&_.setOpen(!0,q(dt,e,c));return}m||(n?x.openChangeTimeout.start(n,()=>{g&&j()&&_.setOpen(!0,q(dt,e,c))}):g&&j()&&_.setOpen(!0,q(dt,e,c)))}function i(t){if(A()){P();return}N();let n=m(_.select(`domReferenceElement`));x.restTimeout.clear(),x.restTimeoutPending=!1;let r=v.current.floatingContext??f?.();if(!ee(t.relatedTarget,_.context.triggerElements)){if(C.current&&r){_.select(`open`)||x.openChangeTimeout.clear();let i=l.current;x.handler=C.current({...r,tree:b,x:t.clientX,y:t.clientY,onClose(){P(),N(),E.current&&!A()&&i===_.select(`domReferenceElement`)&&e(t,!0)}}),n.addEventListener(`mousemove`,x.handler),x.handler(t);return}(x.pointerType!==`touch`||!J(_.select(`floatingElement`),t.relatedTarget))&&e(t)}}function s(e){J(t,e.relatedTarget)||(x.openChangeTimeout.clear(),x.restTimeout.clear(),x.restTimeoutPending=!1)}let u=g?X(t,`mouseout`,s):void 0;return c?De(X(t,`mousemove`,r,{once:!0}),X(t,`mouseenter`,r),X(t,`mouseleave`,i),u):De(X(t,`mouseenter`,r),X(t,`mouseleave`,i),u)},[N,P,v,w,_,n,C,x,d,M,A,o,c,T,l,b,E,f,k,j,g]),Z.useMemo(()=>{if(!n)return;function e(e){x.pointerType=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e,n=e.currentTarget,r=_.select(`domReferenceElement`),i=_.select(`open`),a=M(r,n,e.target);if(o&&!ze(x.pointerType))return;if(i&&a&&x.handleCloseOptions?.blockPointerEvents){let e=_.select(`floatingElement`);if(e){let t=x.handleCloseOptions?.getScope?.()??n.ownerDocument.body;gr(x,{scopeElement:t,referenceElement:n,floatingElement:e})}}let s=$t(T.current);if(i&&!a||s===0||!a&&x.restTimeoutPending&&e.movementX**2+e.movementY**2<2)return;x.restTimeout.clear();function c(){if(x.restTimeoutPending=!1,A())return;let e=_.select(`open`);!x.blockMouseMove&&(!e||a)&&j()&&_.setOpen(!0,q(dt,t,n))}x.pointerType===`touch`?Rn.flushSync(()=>{c()}):a&&i?c():(x.restTimeoutPending=!0,x.restTimeout.start(s,c))}}},[n,x,A,M,o,_,T,j])}var xr=`Escape`;function Sr(e){return wt&&e.movementX===0&&e.movementY===0}function Cr(e,t,n){switch(e){case`vertical`:return t;case`horizontal`:return n;default:return t||n}}function wr(e,t){return Cr(t,e===`ArrowUp`||e===`ArrowDown`,e===`ArrowLeft`||e===`ArrowRight`)}function Tr(e,t,n){return Cr(t,e===`ArrowDown`,n?e===`ArrowLeft`:e===`ArrowRight`)||e===`Enter`||e===` `||e===``}function Er(e,t,n){return Cr(t,n?e===kt:e===tt,e===xt)}function Dr(e,t,n,r){return t===`both`||t===`horizontal`&&r?e===xr:Cr(t,n?e===tt:e===kt,e===_t)}function Or(t,n){let{listRef:r,activeIndex:i,onNavigate:a=()=>{},enabled:o=!0,selectedIndex:c=null,allowEscape:l=!1,loopFocus:u=!1,nested:d=!1,rtl:f=!1,virtual:p=!1,focusItemOnOpen:h=`auto`,focusItemOnHover:g=!0,openOnArrowKeyDown:_=!0,disabledIndices:v=void 0,orientation:y=`vertical`,parentOrientation:b,id:x,resetOnPointerLeave:S=!0,externalTree:C,grid:w}=n,T=w!=null,E=`rootStore`in t?t.rootStore:t,O=E.useState(`open`),k=E.useState(`floatingElement`),A=E.useState(`domReferenceElement`),ee=E.context.dataRef,M=He(k),N=rt(A),P=ge(M),F=j(),I=ft(C),L=Z.useRef(h),R=Z.useRef(c??-1),z=Z.useRef(null),B=Z.useRef(!0),V=D(e=>{a(R.current===-1?null:R.current,e)}),H=Z.useRef(!!k),te=Z.useRef(O),U=Z.useRef(!1),ne=Z.useRef(!1),W=Z.useRef(null),ie=ge(v),K=ge(O),ae=ge(c),oe=ge(S),le=Ze(),de=Ze(),fe=D(()=>{function e(e){p?I?.events.emit(`virtualfocus`,e):W.current=cn(e,{sync:U.current,preventScroll:!0})}let t=r.current[R.current],n=ne.current;t&&e(t),(U.current?e=>e():e=>le.request(e))(()=>{let i=r.current[R.current]||t;i&&(t||e(i),be&&(n||!B.current)&&i.scrollIntoView?.({block:`nearest`,inline:`nearest`}))})});e(()=>{ee.current.orientation=y},[ee,y]),e(()=>{o&&(O&&k?(R.current=c??-1,L.current&&c!=null&&(ne.current=!0,V())):H.current&&(R.current=-1,V()))},[o,O,k,c,V]),e(()=>{if(o){if(!O){U.current=!1;return}if(k)if(i==null){if(U.current=!1,ae.current!=null)return;if(H.current&&(R.current=-1,fe()),(!te.current||!H.current)&&L.current&&(z.current!=null||L.current===!0&&z.current==null)){let e=0,t=()=>{r.current[0]==null?(e<2&&(e?e=>de.request(e):queueMicrotask)(t),e+=1):(R.current=z.current==null||Tr(z.current,y,f)||d?pe(r):se(r),z.current=null,V())};t()}}else Kt(r.current,i)||(R.current=i,fe(),ne.current=!1)}},[o,O,k,i,ae,d,r,y,f,V,fe,de]),e(()=>{if(!o||k||!I||p||!H.current)return;let e=I.nodesRef.current,t=e.find(e=>e.id===F)?.context?.elements.floating,n=Et(m(A??t??null)),r=e.some(e=>e.context&&J(e.context.elements.floating,n));t&&!r&&B.current&&t.focus({preventScroll:!0})},[o,k,A,I,F,p]),e(()=>{te.current=O,H.current=!!k}),e(()=>{O||(z.current=null,L.current=h)},[O,h]);let me=i!=null,he=D(e=>{if(!K.current)return;let t=r.current.indexOf(e.currentTarget);t!==-1&&(R.current!==t||i!==t)&&(R.current=t,V(e))}),_e=D(()=>b??I?.nodesRef.current.find(e=>e.id===F)?.context?.dataRef?.current.orientation),ve=D(()=>pe(r,ie.current)),ye=D(e=>{if(B.current=!1,U.current=!0,e.which===229||!K.current&&e.currentTarget===P.current)return;if(d&&Dr(e.key,y,f,T)){wr(e.key,_e())||ce(e),E.setOpen(!1,q(Ce,e.nativeEvent)),s(A)&&(p?I?.events.emit(`virtualfocus`,A):A.focus());return}let t=R.current,n=pe(r,v),i=se(r,v);if(N||(e.key===`Home`&&(ce(e),R.current=n,V(e)),e.key===`End`&&(ce(e),R.current=i,V(e))),w!=null){let t=w(e,R.current,r,y,u,f,v,n,i);if(t!=null&&(R.current=t,V(e)),y===`both`)return}if(wr(e.key,y)){if(ce(e),O&&!p&&Et(e.currentTarget.ownerDocument)===e.currentTarget){R.current=Tr(e.key,y,f)?n:i,V(e);return}Tr(e.key,y,f)?u?t>=i?l&&t!==r.current.length?R.current=-1:(U.current=!1,R.current=n):R.current=re(r.current,{startingIndex:t,disabledIndices:v}):R.current=Math.min(i,re(r.current,{startingIndex:t,disabledIndices:v})):u?t<=n?l&&t!==-1?R.current=r.current.length:(U.current=!1,R.current=i):R.current=re(r.current,{startingIndex:t,decrement:!0,disabledIndices:v}):R.current=Math.max(n,re(r.current,{startingIndex:t,decrement:!0,disabledIndices:v})),Kt(r.current,R.current)&&(R.current=-1),V(e)}}),be=Z.useMemo(()=>({onFocus(e){U.current=!0,he(e)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(e){Sr(e)||(U.current=!0,ne.current=!1,g&&he(e))},onPointerLeave(e){if(!K.current||!B.current||e.pointerType===`touch`)return;U.current=!0;let t=e.relatedTarget;if(!(!g||r.current.includes(t))&&oe.current&&(W.current?.(),W.current=null,R.current=-1,V(e),!p)){let e=P.current,t=Et(m(e));e&&J(e,t)&&e.focus({preventScroll:!0})}}}),[he,K,P,g,r,V,oe,p]),xe=Z.useMemo(()=>p&&O&&me&&{"aria-activedescendant":`${x}-${i}`},[p,O,me,x,i]),Se=Z.useMemo(()=>({"aria-orientation":y===`both`?void 0:y,...N?{}:xe,onKeyDown(e){if(e.key===`Tab`&&e.shiftKey&&O&&!p){let t=Je(e.nativeEvent);if(t&&!J(P.current,t))return;ce(e),E.setOpen(!1,q(G,e.nativeEvent)),s(A)&&A.focus();return}ye(e)},onPointerMove(e){Sr(e)||(B.current=!0)}}),[xe,ye,P,y,N,E,O,p,A]),we=Z.useMemo(()=>{function e(e){E.setOpen(!0,q(Ce,e.nativeEvent,e.currentTarget))}function t(e){h===`auto`&&ue(e.nativeEvent)&&(L.current=!p)}function n(e){L.current=h,h===`auto`&&Tt(e.nativeEvent)&&(L.current=!0)}return{onKeyDown(t){let n=E.select(`open`);B.current=!1;let r=t.key.startsWith(`Arrow`),i=Er(t.key,_e(),f),a=wr(t.key,y),o=(d?i:a)||t.key===`Enter`||t.key.trim()===``;if(p&&n)return ye(t);if(!(!n&&!_&&r)){if(o){let e=wr(t.key,_e());z.current=d&&e?null:t.key}if(d){i&&(ce(t),n?(R.current=ve(),V(t)):e(t));return}a&&(ae.current!=null&&(R.current=ae.current),ce(t),!n&&_?e(t):ye(t),n&&V(t))}},onFocus(e){E.select(`open`)&&!p&&(R.current=-1,V(e))},onPointerDown:n,onPointerEnter:n,onMouseDown:t,onClick:t}},[ye,h,ve,d,V,E,_,y,_e,f,ae,p]),Te=Z.useMemo(()=>({...xe,...we}),[xe,we]);return Z.useMemo(()=>o?{reference:Te,floating:Se,item:be,trigger:we}:{},[o,Te,Se,we,be])}function kr(t,n){let{listRef:r,elementsRef:i,activeIndex:a,onMatch:o,disabledIndices:s,onTyping:c,enabled:l=!0,resetMs:u=750,selectedIndex:d=null}=n,f=`rootStore`in t?t.rootStore:t,p=f.useState(`open`),m=Ft(),h=Z.useRef(``),g=Z.useRef(d??a??-1),_=Z.useRef(null),v=D(e=>{function t(e){return i?.current[e]}function n(e){let n=t(e);return n&&!Te(n)||n?.matches(`:disabled`)?!1:s==null||!P(E,e,s)}function l(e,t,r=0){if(e.length===0)return-1;let i=(r%e.length+e.length)%e.length,a=t.toLowerCase();for(let t=0;t<e.length;t+=1){let r=(i+t)%e.length;if(!(!e[r]?.toLowerCase().startsWith(a)||!n(r)))return r}return-1}let f=r.current;if(h.current.length>0&&e.key===` `&&(ce(e),c?.(!0)),h.current.length>0&&h.current[0]!==` `&&l(f,h.current)===-1&&e.key!==` `&&c?.(!1),f==null||e.key.length!==1||e.ctrlKey||e.metaKey||e.altKey)return;p&&e.key!==` `&&(ce(e),c?.(!0));let v=h.current===``;v&&(g.current=d??a??-1),f.every((e,t)=>e&&n(t)?e[0]?.toLowerCase()!==e[1]?.toLowerCase():!0)&&h.current===e.key&&(h.current=``,g.current=_.current),h.current+=e.key,m.start(u,()=>{h.current=``,g.current=_.current,c?.(!1)});let y=((v?d??a??-1:g.current)??0)+1,b=l(f,h.current,y);b===-1?e.key!==` `&&(h.current=``,c?.(!1)):(o?.(b),_.current=b)}),y=D(e=>{let t=e.relatedTarget,n=f.select(`domReferenceElement`),r=f.select(`floatingElement`);J(n,t)||J(r,t)||(m.clear(),h.current=``,g.current=_.current,c?.(!1))});e(()=>{!p&&d!==null||(m.clear(),_.current=null,h.current!==``&&(h.current=``))},[p,d,m]);let b=Z.useMemo(()=>({onKeyDown:v,onBlur:y}),[v,y]);return Z.useMemo(()=>l?{reference:b,floating:b}:{},[l,b])}var Ar=.1,jr=Ar*Ar,Mr=.5;function Nr(e,t,n,r,i,a){return r>=t!=a>=t&&e<=(i-n)*(t-r)/(a-r)+n}function Pr(e,t,n,r,i,a,o,s,c,l){let u=!1;return Nr(e,t,n,r,i,a)&&(u=!u),Nr(e,t,i,a,o,s)&&(u=!u),Nr(e,t,o,s,c,l)&&(u=!u),Nr(e,t,c,l,n,r)&&(u=!u),u}function Fr(e,t,n){return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height}function Ir(e,t,n,r,i,a){return e>=Math.min(n,i)&&e<=Math.max(n,i)&&t>=Math.min(r,a)&&t<=Math.max(r,a)}function Lr(e={}){let{blockPointerEvents:t=!1}=e,n=new Ge,r=({x:e,y:t,placement:r,elements:i,onClose:o,nodeId:s,tree:c})=>{let l=r?.split(`-`)[0],u=!1,d=null,f=null,p=typeof performance<`u`?performance.now():0;function m(e,t){let n=performance.now(),r=n-p;if(d===null||f===null||r===0)return d=e,f=t,p=n,!1;let i=e-d,a=t-f,o=i*i+a*a,s=r*r*jr;return d=e,f=t,p=n,o<s}function h(){n.clear(),o()}return function(r){n.clear();let o=i.domReference,d=i.floating;if(!o||!d||l==null||e==null||t==null)return;let{clientX:f,clientY:p}=r,g=Je(r),_=r.type===`mouseleave`,v=J(d,g),y=J(o,g);if(v&&(u=!0,!_))return;if(y&&(u=!1,!_)){u=!0;return}if(_&&a(r.relatedTarget)&&J(d,r.relatedTarget))return;function b(){return!!(c&&Yt(c.nodesRef.current,s).length>0)}function x(){b()||h()}if(b())return;let S=o.getBoundingClientRect(),C=d.getBoundingClientRect(),w=e>C.right-C.width/2,T=t>C.bottom-C.height/2,E=C.width>S.width,D=C.height>S.height,O=(E?S:C).left,k=(E?S:C).right,A=(D?S:C).top,ee=(D?S:C).bottom;if(l===`top`&&t>=S.bottom-1||l===`bottom`&&t<=S.top+1||l===`left`&&e>=S.right-1||l===`right`&&e<=S.left+1){x();return}let j=!1;switch(l){case`top`:j=Ir(f,p,O,S.top+1,k,C.bottom-1);break;case`bottom`:j=Ir(f,p,O,C.top+1,k,S.bottom-1);break;case`left`:j=Ir(f,p,C.right-1,ee,S.left+1,A);break;case`right`:j=Ir(f,p,S.right-1,ee,C.left+1,A);break;default:}if(j)return;if(u&&!Fr(f,p,S)){x();return}if(!_&&m(f,p)){x();return}let M=!1;switch(l){case`top`:{let n=E?Mr/2:Mr*4,r=E||w?e+n:e-n,i=E?e-n:w?e+n:e-n,a=t+Mr+1,o=w||E?C.bottom-Mr:C.top,s=w?E?C.bottom-Mr:C.top:C.bottom-Mr;M=Pr(f,p,r,a,i,a,C.left,o,C.right,s);break}case`bottom`:{let n=E?Mr/2:Mr*4,r=E||w?e+n:e-n,i=E?e-n:w?e+n:e-n,a=t-Mr,o=w||E?C.top+Mr:C.bottom,s=w?E?C.top+Mr:C.bottom:C.top+Mr;M=Pr(f,p,r,a,i,a,C.left,o,C.right,s);break}case`left`:{let n=D?Mr/2:Mr*4,r=D||T?t+n:t-n,i=D?t-n:T?t+n:t-n,a=e+Mr+1,o=T||D?C.right-Mr:C.left,s=T?D?C.right-Mr:C.left:C.right-Mr;M=Pr(f,p,o,C.top,s,C.bottom,a,r,a,i);break}case`right`:{let n=D?Mr/2:Mr*4,r=D||T?t+n:t-n,i=D?t-n:T?t+n:t-n,a=e-Mr,o=T||D?C.left+Mr:C.right,s=T?D?C.left+Mr:C.right:C.left+Mr;M=Pr(f,p,a,r,a,i,o,C.top,s,C.bottom);break}default:}M?u||n.start(40,x):x()}};return r.__options={...e,blockPointerEvents:t},r}var Rr=T(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),zr=T(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Br=T(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),Vr=T(`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`}]]),Hr=T(`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`}]]),Ur=T(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function Wr({"aria-labelledby":e,children:t,className:n,loading:r,...a}){return(0,Q.jsx)(w,{...a,...(!r||a.loadingLabel===void 0)&&e?{"aria-labelledby":e}:{},...r===void 0?{}:{loading:r},className:i(`tr-icon-btn`,n),children:r?null:t})}function Gr(){let{i18n:e}=b(),{data:t}=Jt(jt),n=me({strict:!1}),r=`lang`in n?n.lang:void 0,i=typeof r==`string`?r:e.language,a=t.i18n.fallback_language,o=e=>e?.[i]??e?.[a];return{title:o(t.branding.title),subtitle:o(t.branding.subtitle),loginMethodDescription:o(t.branding.login_method_description),iconUrl:t.branding.icon_url??`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%20role='img'%20aria-labelledby='issuary-app-icon-title%20issuary-app-icon-description'%20data-row-starts='14.666667%2028%2041.333333'%20data-row-height='8'%20data-row-bounds='14.666667%2049.333333'%3e%3ctitle%20id='issuary-app-icon-title'%3eIssuary%20app%20icon%3c/title%3e%3cdesc%20id='issuary-app-icon-description'%3eThree%20connected%20authorization%20bars%20shaped%20around%20a%20bold%20central%20keyhole%20on%20a%20Tinyrack%20tile%3c/desc%3e%3cpath%20fill='%230a0a0a'%20d='M16%200h32a16%2016%200%200%201%2016%2016v32a16%2016%200%200%201-16%2016H16A16%2016%200%200%201%200%2048V16A16%2016%200%200%201%2016%200Z'/%3e%3cpath%20fill='%23fafafa'%20d='M17%2014.667h30a5%205%200%200%201%205%205v0a5%205%200%200%201-5%205H17a5%205%200%200%201-5-5v0a5%205%200%200%201%205-5Zm0%2027.333h30a5%205%200%200%201%205%205v0a5%205%200%200%201-5%205H17a5%205%200%200%201-5-5v0a5%205%200%200%201%205-5Z'/%3e%3cpath%20fill='%2338bdf8'%20d='M17%2028h30a5%205%200%200%201%205%205v0a5%205%200%200%201-5%205H17a5%205%200%200%201-5-5v0a5%205%200%200%201%205-5Z'/%3e%3cpath%20fill='%230a0a0a'%20d='M27%2024.667h10v4.5l-1.5%201.5h-7l-1.5-1.5v-4.5Zm5-1.5a7.5%207.5%200%200%201%207.5%207.5c0%202.554-1.275%204.81-3.223%206.167L37.75%2052h-11.5l1.473-15.166A7.5%207.5%200%200%201%2024.5%2030.667a7.5%207.5%200%200%201%207.5-7.5Z'/%3e%3c/svg%3e`,logoUrl:t.branding.logo_url??void 0}}function Kr(){let{t:e}=b(),{toasts:t}=at.useToastManager();return(0,Q.jsx)(at.Portal,{children:(0,Q.jsx)(at.Viewport,{position:`block-start-center`,children:t.map(t=>(0,Q.jsxs)(at.Root,{toast:t,children:[(0,Q.jsxs)(at.Content,{children:[(0,Q.jsx)(at.Title,{}),(0,Q.jsx)(at.Description,{})]}),(0,Q.jsx)(at.Close,{"aria-label":e(`common.dismiss`),children:(0,Q.jsx)(Ur,{"aria-hidden":!0,className:`size-tinyrack-lg`})})]},t.id))})})}function qr(e){let t=Z.useRef(!0);t.current&&(t.current=!1,e())}function Jr(e){let[t,n]=Z.useState({current:e,previous:null});return Object.is(e,t.current)||n({current:e,previous:t.current}),t.previous}function Yr(e){return e==null||e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`}function Xr({controlled:e,default:t,name:n,state:r=`value`}){let{current:i}=Z.useRef(e!==void 0),[a,o]=Z.useState(t);return[i?e:a,Z.useCallback(e=>{i||o(e)},[])]}var Zr=Z.createContext(null);function Qr(){let e=Z.useContext(Zr);if(e===null)throw Error(O(60));return e}var $r={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},ei={disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},ti={valid(e){return e===null?null:e?{"data-valid":``}:{"data-invalid":``}}},ni={invalid:void 0,name:void 0,validityData:{state:$r,errors:[],error:``,value:``,initialValue:null},setValidityData:v,disabled:void 0,setTouched:v,setDirty:v,setFilled:v,setFocused:v,validationMode:`onSubmit`,shouldValidateOnChange:()=>!1,state:ei,registerFieldControl:v,validation:{getValidationProps:(e,t=g)=>t,inputRef:{current:null},registeredInputs:new Map,registerInput:v,getInputControl:()=>null,commit:async()=>{},change:v}},ri=Z.createContext(ni);function ii(e=!0){let t=Z.useContext(ri);if(t.setValidityData===v&&!e)throw Error(O(28));return t}function ai(t,n,r,i,a=!0,o){let{registerFieldControl:s}=ii(),c=l(()=>Symbol());e(()=>{let e=c.current;if(!a){s(e,void 0);return}s(e,{controlRef:t,getValue:i,id:n,name:o,value:r})},[t,a,i,n,o,s,c,r]),e(()=>{let e=c.current;return()=>{s(e,void 0)}},[s,c])}function oi(e){return At(e,`base-ui`)}var si=Z.createContext({controlId:void 0,registerControlId:v,labelId:void 0,setLabelId:v,messageIds:[],setMessageIds:v,getDescriptionProps:e=>e});function ci(){return Z.useContext(si)}function li(t={}){let{id:n,implicit:r=!1,controlRef:i}=t,{controlId:o,registerControlId:s}=ci(),c=oi(n),u=r?o:void 0,d=l(()=>Symbol()),f=Z.useRef(!1),p=Z.useRef(n!=null),m=D(()=>{!f.current||s===v||(f.current=!1,s(d.current,void 0))});return e(()=>{if(s===v)return;let e;if(r){let t=i?.current;e=a(t)&&t.closest(`label`)!=null?n??null:u??c}else if(n!=null)p.current=!0,e=n;else if(p.current)e=c;else{m();return}if(e===void 0){m();return}f.current=!0,s(d.current,e)},[n,i,u,s,r,c,d,m]),Z.useEffect(()=>m,[m]),o??c}var ui=(e,t)=>Object.is(e,t);function di(e,t,n){return e==null||t==null?Object.is(e,t):n(e,t)}function fi(e,t,n){return!e||e.length===0?-1:e.findIndex(e=>e===void 0?!1:di(e,t,n))}function pi(e,t,n){return e.filter(e=>!di(t,e,n))}function mi(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function hi(e){return e!=null&&e.length>0&&typeof e[0]==`object`&&e[0]!=null&&`items`in e[0]}function gi(e){if(!Array.isArray(e))return e!=null&&`null`in e;let t=e;if(hi(t)){for(let e of t)for(let t of e.items)if(t&&t.value==null&&t.label!=null)return!0;return!1}for(let e of t)if(e&&e.value==null&&e.label!=null)return!0;return!1}function _i(e,t){if(t&&e!=null)return t(e)??``;if(e&&typeof e==`object`){if(`label`in e&&e.label!=null)return String(e.label);if(`value`in e)return String(e.value)}return mi(e)}function vi(e,t){return t&&e!=null?t(e)??``:e&&typeof e==`object`&&`value`in e&&`label`in e?mi(e.value):mi(e)}function yi(e,t,n){function r(){return _i(e,n)}if(n&&e!=null)return n(e);if(e&&typeof e==`object`&&`label`in e&&e.label!=null)return e.label;if(t&&!Array.isArray(t))return t[e]??r();if(Array.isArray(t)){let n=t,i=hi(n)?n.flatMap(e=>e.items):n;if(typeof e!=`object`||!e){let t=i.find(t=>t.value===e);return t&&t.label!=null?t.label:r()}if(`value`in e){let t=i.find(t=>t&&t.value===e.value);if(t&&t.label!=null)return t.label}}return r()}function bi(e,t,n){return e.reduce((e,r,i)=>(i>0&&e.push(`, `),e.push((0,Q.jsx)(Z.Fragment,{children:yi(r,t,n)},i)),e),[])}var $={id:e=>e.id,labelId:e=>e.labelId,modal:e=>e.modal,items:e=>e.items,itemToStringLabel:e=>e.itemToStringLabel,isItemEqualToValue:e=>e.isItemEqualToValue,value:e=>e.value,hasSelectedValue:e=>{let{value:t,multiple:n,itemToStringValue:r}=e;return t==null?!1:n&&Array.isArray(t)?t.length>0:vi(t,r)!==``},hasNullItemLabel:(e,t)=>t?gi(e.items):!1,open:e=>e.open,mounted:e=>e.mounted,forceMount:e=>e.forceMount,transitionStatus:e=>e.transitionStatus,openMethod:e=>e.openMethod,activeIndex:e=>e.activeIndex,selectedIndex:e=>e.selectedIndex,isActive:(e,t)=>e.activeIndex===t,isSelected:(e,t)=>{let n=e.isItemEqualToValue,r=e.value;return e.multiple?Array.isArray(r)&&r.some(e=>di(t,e,n)):di(t,r,n)},isSelectedByFocus:(e,t)=>e.selectedIndex===t,popupProps:e=>e.popupProps,triggerProps:e=>e.triggerProps,triggerElement:e=>e.triggerElement,positionerElement:e=>e.positionerElement,listElement:e=>e.listElement,popupSide:e=>e.popupSide,scrollUpArrowVisible:e=>e.scrollUpArrowVisible,scrollDownArrowVisible:e=>e.scrollDownArrowVisible,hasScrollArrows:e=>e.hasScrollArrows},xi=Z.createContext({elementRef:{current:null},formRef:{current:{fields:new Map}},errors:{},clearErrors:v,validationMode:`onSubmit`,submitAttemptedRef:{current:!1}});function Si(){return Z.useContext(xi)}function Ci(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,r)=>n(e,t[r]))}function wi(t,n){let r=Z.useRef(t),i=D(n);e(()=>{r.current!==t&&i(r.current),r.current=t},[t,i])}function Ti(e){let t=Z.useRef(``),n=Z.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:Z.useCallback(n=>{if(n.detail===0){e(n,`keyboard`);return}`pointerType`in n?e(n,n.pointerType):e(n,t.current),t.current=``},[e]),onPointerDown:n}}function Ei(e,t){let{onClick:n,onPointerDown:r}=Ti(D((n,r)=>{(typeof e==`function`?e():e)||t(r||(ut?`touch`:``))}));return Z.useMemo(()=>({onClick:n,onPointerDown:r}),[n,r])}function Di(e){let[t,n]=Z.useState(null),r=Ei(e,n);return wi(e,t=>{t&&!e&&n(null)}),Z.useMemo(()=>({openMethod:t,triggerProps:r}),[t,r])}function Oi(e,t){return Math.max(0,e-t)}function ki(e,t){if(t<=0)return 0;let n=ot(e,0,t),r=n,i=t-n,a=r<=1,o=i<=1;return a&&o?r<=i?0:t:a?0:o?t:n}function Ai(t){let{id:n,value:r,defaultValue:i=null,onValueChange:a,open:o,defaultOpen:s=!1,onOpenChange:u,name:d,form:f,autoComplete:p,disabled:m=!1,readOnly:h=!1,required:_=!1,modal:v=!0,actionsRef:y,inputRef:b,onOpenChangeComplete:x,items:C,multiple:w=!1,itemToStringLabel:T,itemToStringValue:O,isItemEqualToValue:k=ui,highlightItemOnHover:ee=!0,children:j}=t,{clearErrors:M}=Si(),{setDirty:N,setTouched:P,setFocused:L,validityData:R,setFilled:z,name:B,disabled:V,validation:H,validationMode:te}=ii(),U=li({id:n}),W=V||m,re=B??d,[G,ie]=Xr({controlled:r,default:w?i??E:i,name:`Select`,state:`value`}),[K,ae]=Xr({controlled:o,default:s,name:`Select`,state:`open`}),oe=Z.useRef([]),se=Z.useRef([]),ce=Z.useRef(null),le=Z.useRef(null),ue=Z.useRef(0),de=Z.useRef(null),fe=Z.useRef([]),pe=Z.useRef(!1),me=Z.useRef(null),he=Z.useRef(null),_e=Z.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0}),ve=Z.useRef(!1),{mounted:ye,setMounted:be,transitionStatus:xe}=Vn(K),{openMethod:Se,triggerProps:Ce}=Di(K),we=l(()=>new I({id:U,labelId:void 0,modal:v,multiple:w,itemToStringLabel:T,itemToStringValue:O,isItemEqualToValue:k,value:G,open:K,mounted:ye,transitionStatus:xe,items:C,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:{},triggerProps:{},triggerElement:null,positionerElement:null,listElement:null,popupSide:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1})).current,Te=Y(we,$.activeIndex),Ee=Y(we,$.selectedIndex),De=Y(we,$.triggerElement),Oe=Y(we,$.positionerElement),ke=Jr(Se),Ae=Se??ke,je=Z.useMemo(()=>w?``:vi(G,O),[w,G,O]),Me=Z.useMemo(()=>w&&Array.isArray(G)?G.map(e=>vi(e,O)):vi(G,O),[w,G,O]);ai(ge(De),U,G,D(()=>Me),!W,d);let Pe=Z.useRef(G),Fe=w?Array.isArray(G)&&G.length>0:G!=null&&je!==``;e(()=>{z(Fe)},[Fe,z]),e(function(){let e=G,t=!1;if(w){let n=Array.isArray(G)?G:[];t=n.length===0,e=n[n.length-1]}let n=t?-1:fi(fe.current,e,k),r=n===-1?null:n;r===null&&(he.current=null),!K&&we.set(`selectedIndex`,r)},[w,K,G,k,we]);function Ie(e){let t=R.initialValue;return Array.isArray(e)&&Array.isArray(t)?!Ci(e,t,(e,t)=>di(e,t,k)):e!==t}wi(G,()=>{M(re),N(Ie(G)),H.change(G)});let Le=D((e,t)=>{u?.(e,t),!t.isCanceled&&(ae(e),!e&&(t.reason===`focus-out`||t.reason===`outside-press`)&&(P(!0),L(!1),te===`onBlur`&&H.commit(G)))}),Re=D(()=>{be(!1),we.update({activeIndex:null,openMethod:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1}),x?.(!1)});It({enabled:!y,open:K,ref:ce,onComplete(){K||Re()}}),Z.useImperativeHandle(y,()=>({unmount:Re}),[Re]);let ze=D((e,t)=>{a?.(e,t),!t.isCanceled&&ie(e)}),Be=D(e=>{let t=Oi(e.scrollHeight,e.clientHeight),n=ki(e.scrollTop,t),r=n>0,i=n<t;we.set(`scrollUpArrowVisible`,r),we.set(`scrollDownArrowVisible`,i)}),Ve=F({open:K,onOpenChange:Le,elements:{reference:De,floating:Oe}}),He=An(Ve,{enabled:!h&&!W,event:`mousedown`}),Ue=In(Ve),We=Or(Ve,{enabled:!h&&!W,listRef:oe,activeIndex:Te,selectedIndex:Ee,disabledIndices:E,onNavigate(e){e===null&&!K||we.set(`activeIndex`,e)},focusItemOnHover:ee}),Ge=kr(Ve,{enabled:!h&&!W&&(K||!w),listRef:se,activeIndex:Te,selectedIndex:Ee,disabledIndices:e=>Yr(oe.current[e]),onMatch(e){K?we.set(`activeIndex`,e):ze(fe.current[e],q(A))},onTyping(e){pe.current=e}}),Ke=Z.useMemo(()=>c(Ge.reference,We.reference,Ue.reference,He.reference,Ce),[He.reference,Ge.reference,We.reference,Ue.reference,Ce]),qe=Z.useMemo(()=>c(Hn,Ge.floating,We.floating,Ue.floating),[Ge.floating,We.floating,Ue.floating]),Je=We.item??g;qr(()=>{we.update({popupProps:qe,triggerProps:Ke})}),we.useSyncedValues({id:U,modal:v,multiple:w,value:G,open:K,mounted:ye,transitionStatus:xe,popupProps:qe,triggerProps:Ke,items:C,itemToStringLabel:T,itemToStringValue:O,isItemEqualToValue:k,openMethod:Ae});let Ye=Z.useMemo(()=>({store:we,floatingContext:Ve,required:_,disabled:W,readOnly:h,multiple:w,highlightItemOnHover:ee,setValue:ze,setOpen:Le,listRef:oe,popupRef:ce,scrollHandlerRef:le,handleScrollArrowVisibility:Be,scrollArrowsMountedCountRef:ue,itemProps:Je,valueRef:de,valuesRef:fe,labelsRef:se,typingRef:pe,selectionRef:_e,firstItemTextRef:me,selectedItemTextRef:he,validation:H,onOpenChangeComplete:x,alignItemWithTriggerActiveRef:ve,initialValueRef:Pe}),[we,Ve,_,W,h,w,ee,ze,Le,Je,H,x,Be]),Xe=S(b,H.inputRef),Ze=w?void 0:re,Qe=Z.useMemo(()=>!w||!Array.isArray(G)||!re?null:G.map(e=>{let t=vi(e,O);return(0,Q.jsx)(`input`,{type:`hidden`,form:f,name:re,value:t,disabled:W},t)}),[w,G,f,re,O,W]);return(0,Q.jsxs)(Zr.Provider,{value:Ye,children:[j,(0,Q.jsx)(`input`,{...H.getValidationProps(W,{onFocus(){we.state.triggerElement?.focus({focusVisible:!0})},onChange(e){if(e.nativeEvent.defaultPrevented||W||h)return;let t=e.currentTarget.value,n=q(A,e.nativeEvent);function r(){if(w)return;let e=t.toLowerCase(),r=fe.current.findIndex(t=>vi(t,O).toLowerCase()===e||_i(t,T).toLowerCase()===e);r===-1&&(r=fe.current.findIndex((t,n)=>{let r=se.current[n];return r!=null&&r.toLowerCase()===e}));let i=fe.current[r];i!=null&&ze(i,n)}we.set(`forceMount`,!0),queueMicrotask(r)}}),id:U&&Ze==null?`${U}-hidden-input`:void 0,form:f,name:Ze,autoComplete:p,value:je,disabled:W,required:_&&!(w&&Fe),readOnly:h,ref:Xe,style:re?ne:Ne,tabIndex:-1,"aria-hidden":!0,suppressHydrationWarning:!0}),Qe]})}function ji(t,n){let r=oi(t);return e(()=>(n(r),()=>{n(e=>e===r?void 0:e)}),[r,n]),r}function Mi(e={}){let{id:t,fallbackControlId:n,native:r=!1,setLabelId:i,focusControl:a}=e,{controlId:o,setLabelId:c}=ci(),l=ji(t,D(e=>{c(e),i?.(e)})),u=o??n;function d(e){if(a){a(e,u);return}if(!u)return;let t=m(e.currentTarget).getElementById(u);s(t)&&Ni(t)}function f(e){Je(e.nativeEvent)?.closest(`button,input,select,textarea`)||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),!r&&d(e))}return r?{id:l,htmlFor:u??void 0,onMouseDown:f}:{id:l,onClick:f,onPointerDown(e){e.preventDefault()}}}function Ni(e){e.focus({focusVisible:!0})}function Pi(e){return e==null?void 0:`${e}-label`}function Fi(e,t){return e??t}var Ii=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=a;delete o.id;let s=ii(),{store:c}=Qr(),l=Y(c,$.triggerElement),u=Y(c,$.id),d=Mi({id:Pi(u),fallbackControlId:l?.id??u,setLabelId(e){let t=typeof e==`function`?e(c.state.labelId):e;c.set(`labelId`,t)}});return h(`div`,e,{ref:t,state:s.state,props:[d,a],stateAttributesMapping:ti})}),Li=5;function Ri(e,t){let n=zi(t);return e.clientX>=n.left-Li&&e.clientX<=n.right+Li&&e.clientY>=n.top-Li&&e.clientY<=n.bottom+Li}function zi(e){let t=e.getBoundingClientRect(),r=n(e);if(nt)return t;let i=r.getComputedStyle(e,`::before`),a=r.getComputedStyle(e,`::after`);if(!(i.content!==`none`||a.content!==`none`))return t;let o=parseFloat(i.width)||0,s=parseFloat(i.height)||0,c=parseFloat(a.width)||0,l=parseFloat(a.height)||0,u=Math.max(t.width,o,c),d=Math.max(t.height,s,l),f=u-t.width,p=d-t.height;return{left:t.left-f/2,right:t.right+f/2,top:t.top-p/2,bottom:t.bottom+p/2}}var Bi=400,Vi={...Pt,...ti,popupSide:e=>e?{"data-popup-side":e}:null,value:()=>null},Hi=Z.forwardRef(function(e,t){let{render:n,className:r,id:i,disabled:a=!1,nativeButton:o=!0,style:s,...l}=e,{setTouched:u,setFocused:d,validationMode:f,state:p,disabled:g}=ii(),{labelId:_}=ci(),{store:v,setOpen:b,selectionRef:x,validation:S,readOnly:C,required:w,alignItemWithTriggerActiveRef:T,disabled:E}=Qr(),D=g||E||a,O=Y(v,$.open),k=Y(v,$.mounted),ee=Y(v,$.value),j=Y(v,$.triggerProps),M=Y(v,$.positionerElement),P=Y(v,$.listElement),F=Y(v,$.popupSide),I=Y(v,$.id),L=Y(v,$.labelId),R=Y(v,$.hasSelectedValue),z=k&&M?F:null,B=i??I,V=Fi(_,L);li({id:B});let H=ge(M),te=Z.useRef(null),{getButtonProps:U,buttonRef:ne}=y({disabled:D,native:o}),W=v.useStateSetter(`triggerElement`),re=Ft(),G=Ft(),ie=Ft();Z.useEffect(()=>{if(O)return ie.start(Bi,()=>{x.current.allowUnselectedMouseUp=!0,x.current.allowSelectedMouseUp=!0}),()=>{ie.clear()};x.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0},G.clear()},[O,x,G,ie]);let K=c(j,{id:B,role:`combobox`,"aria-expanded":O,"aria-haspopup":`listbox`,"aria-controls":O?P?.id??He(M)?.id:void 0,"aria-labelledby":V,"aria-readonly":C||void 0,"aria-required":w||void 0,tabIndex:D?-1:0,onFocus(e){d(!0),O&&T.current&&b(!1,q(A,e.nativeEvent)),re.start(0,()=>{v.set(`forceMount`,!0)})},onBlur(e){J(M,e.relatedTarget)||(u(!0),d(!1),f===`onBlur`&&S.commit(ee))},onMouseDown(e){if(O)return;let t=m(e.currentTarget);function n(e){if(!te.current)return;let t=e.target;J(te.current,t)||J(H.current,t)||Ri(e,te.current)||b(!1,q(N,e))}G.start(0,()=>{t.addEventListener(`mouseup`,n,{once:!0})})}},l,U),ae=S.getValidationProps(D,K);ae.role=`combobox`;let oe={...p,open:O,disabled:D,value:ee,readOnly:C,popupSide:z,placeholder:!R};return h(`button`,e,{ref:[t,te,ne,W],state:oe,stateAttributesMapping:Vi,props:ae})}),Ui={value:()=>null},Wi=Z.forwardRef(function(e,t){let{className:n,render:r,children:i,placeholder:a,style:o,...s}=e,{store:c,valueRef:l}=Qr(),u=Y(c,$.value),d=Y(c,$.items),f=Y(c,$.itemToStringLabel),p=Y(c,$.hasSelectedValue),m=!p&&a!=null&&i==null,g=Y(c,$.hasNullItemLabel,m),_={value:u,placeholder:!p},v=null;return v=typeof i==`function`?i(u):i??(m&&!g?a:Array.isArray(u)?bi(u,d,f):yi(u,d,f)),h(`span`,e,{state:_,ref:[t,l],props:[{children:v},s],stateAttributesMapping:Ui})}),Gi=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{store:o}=Qr();return h(`span`,e,{state:{open:Y(o,$.open)},ref:t,props:[{"aria-hidden":!0,children:`▼`},a],stateAttributesMapping:Ht})}),Ki=Z.forwardRef(function(e,t){let{store:n}=Qr(),r=Y(n,$.mounted),i=Y(n,$.forceMount);return r||i?(0,Q.jsx)(W,{ref:t,...e}):null}),qi={...st,...ke},Ji=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{store:o}=Qr(),s=Y(o,$.open),c=Y(o,$.mounted);return h(`div`,e,{state:{open:s,transitionStatus:Y(o,$.transitionStatus)},ref:t,props:[{role:`presentation`,hidden:!c,style:{userSelect:`none`,WebkitUserSelect:`none`}},a],stateAttributesMapping:qi})}),Yi=Z.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},nextIndexRef:{current:0}});function Xi(){return Z.useContext(Yi)}function Zi(t){let{children:n,elementsRef:r,labelsRef:i,onMapChange:a}=t,o=D(a),[,s]=Z.useState(!1),c=l($i).current,u=l(Qi).current,d=Z.useRef(0),f=Z.useRef(!0),p=Z.useRef([]),m=Z.useRef(null),h=D(()=>{f.current||(f.current=!0,s(e=>!e))}),g=D((e,t)=>{u.set(e,t),h()}),_=D(e=>{u.delete(e),h()}),v=D(e=>{let t=new Map;return r.current.length=0,i&&(i.current.length=0),e.forEach(e=>{t.set(e.element,{...e.registration.metadata??{},index:e.index}),r.current[e.index]=e.element,i&&(i.current[e.index]=e.registration.label===void 0?e.registration.textRef?.current?.textContent??e.element.textContent:e.registration.label)}),d.current=r.current.length,t});function y(e){if(m.current?.disconnect(),m.current=null,typeof MutationObserver!=`function`||e.length<2)return;let t=new MutationObserver(n=>{if(!na(n))return;let r=null;for(let n of e)if(n.isConnected){if(r&&ra(r,n)>0){t.disconnect(),h();return}r=n}});m.current=t;let n=new Set;for(let t=1;t<e.length;t+=1){let r=ta(e[t-1],e[t]);r&&n.add(r)}n.forEach(e=>t.observe(e,{childList:!0}))}let b=D(()=>{let[e,t]=ea(u),n=v(e);y(t),p.current=e,f.current=!1,c.forEach(e=>e(n)),o(n)});e(()=>(f.current||v(p.current),()=>{r.current=[],i&&(i.current=[])}),[r,i,v]),e(()=>{f.current&&b()}),e(()=>()=>{m.current?.disconnect(),f.current=!0},[]);let x=D(e=>(c.add(e),()=>{c.delete(e)})),S=Z.useMemo(()=>({register:g,unregister:_,subscribeMapChange:x,nextIndexRef:d}),[g,_,x,d]);return(0,Q.jsx)(Yi.Provider,{value:S,children:n})}function Qi(){return new Map}function $i(){return new Set}function ea(e){let t=new Set,n=[],r=[];e.forEach((e,i)=>{if(!i.isConnected)return;let a=e.index,o={index:a??-1,element:i,registration:e};a===null?r.push(o):a>=0&&(t.add(a),n.push(o))});let i=0;return r.sort((e,t)=>ra(e.element,t.element)),r.forEach(e=>{for(;t.has(i);)i+=1;e.index=i,n.push(e),i+=1}),t.size>0&&n.sort((e,t)=>e.index-t.index),[n,r.map(e=>e.element)]}function ta(e,t){let n=e.parentElement;for(;n&&!n.contains(t);)n=n.parentElement;return n}function na(e){for(let t of e)for(let e=0;e<t.removedNodes.length;e+=1)if(t.removedNodes[e].isConnected)return!0;return!1}function ra(e,t){return e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}var ia=Z.createContext(void 0);function aa(){let e=Z.useContext(ia);if(!e)throw Error(O(59));return e}var oa=Z.forwardRef(function(e,t){let{cutout:n,...r}=e,i;if(n){let e=n.getBoundingClientRect();i=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${e.left}px ${e.top}px,${e.left}px ${e.bottom}px,${e.right}px ${e.bottom}px,${e.right}px ${e.top}px,${e.left}px ${e.top}px)`}return(0,Q.jsx)(`div`,{ref:t,role:`presentation`,"data-base-ui-inert":``,...r,style:{position:`fixed`,inset:0,userSelect:`none`,WebkitUserSelect:`none`,clipPath:i}})});function sa(e,t){e&&Object.assign(e.style,t)}var ca={position:`relative`,maxHeight:`100%`,overflowX:`hidden`,overflowY:`auto`},la={},ua={},da=``;function fa(e,t){return u(e)?e:t}function pa(e,t,n){return/hidden|clip/.test(e.getComputedStyle(fa(t,n)).overflowY)}function ma(e){if(typeof document>`u`)return!1;let t=m(e);return n(t).innerWidth-t.documentElement.clientWidth>0}function ha(e){if(!(typeof CSS<`u`&&CSS.supports&&CSS.supports(`scrollbar-gutter`,`stable`))||typeof document>`u`)return!1;let t=m(e),n=t.documentElement,r=t.body,i=fa(n,r),a=i.style.overflowY,o=n.style.scrollbarGutter;n.style.scrollbarGutter=`stable`,i.style.overflowY=`scroll`;let s=i.offsetWidth;i.style.overflowY=`hidden`;let c=i.offsetWidth;return i.style.overflowY=a,n.style.scrollbarGutter=o,s===c}function ga(e){let t=m(e),n=t.documentElement,r=t.body,i=fa(n,r),a={overflowY:i.style.overflowY,overflowX:i.style.overflowX};return Object.assign(i.style,{overflowY:`hidden`,overflowX:`hidden`}),()=>{Object.assign(i.style,a)}}function _a(e){let t=m(e),r=t.documentElement,i=t.body,a=n(r),o=0,s=0,c=!1,l=Ut.create();if(wt&&(a.visualViewport?.scale??1)!==1)return()=>{};function u(){let t=a.getComputedStyle(r),n=a.getComputedStyle(i),l=(t.scrollbarGutter||``).includes(`both-edges`)?`stable both-edges`:`stable`;o=r.scrollTop,s=r.scrollLeft,la={scrollbarGutter:r.style.scrollbarGutter,overflowY:r.style.overflowY,overflowX:r.style.overflowX},da=r.style.scrollBehavior,ua={position:i.style.position,height:i.style.height,width:i.style.width,boxSizing:i.style.boxSizing,overflowY:i.style.overflowY,overflowX:i.style.overflowX,scrollBehavior:i.style.scrollBehavior};let u=r.scrollHeight>r.clientHeight,d=r.scrollWidth>r.clientWidth,f=t.overflowY===`scroll`||n.overflowY===`scroll`,p=t.overflowX===`scroll`||n.overflowX===`scroll`,m=Math.max(0,a.innerWidth-i.clientWidth),h=Math.max(0,a.innerHeight-i.clientHeight),g=parseFloat(n.marginTop)+parseFloat(n.marginBottom),_=parseFloat(n.marginLeft)+parseFloat(n.marginRight),v=fa(r,i);if(c=ha(e),c){r.style.scrollbarGutter=l,v.style.overflowY=`hidden`,v.style.overflowX=`hidden`;return}Object.assign(r.style,{scrollbarGutter:l,overflowY:`hidden`,overflowX:`hidden`}),(u||f)&&(r.style.overflowY=`scroll`),(d||p)&&(r.style.overflowX=`scroll`),Object.assign(i.style,{position:`relative`,height:g||h?`calc(100dvh - ${g+h}px)`:`100dvh`,width:_||m?`calc(100vw - ${_+m}px)`:`100vw`,boxSizing:`border-box`,overflowY:`hidden`,overflowX:`hidden`,scrollBehavior:`unset`}),i.scrollTop=o,i.scrollLeft=s,r.setAttribute(`data-base-ui-scroll-locked`,``),r.style.scrollBehavior=`unset`}function d(){Object.assign(r.style,la),Object.assign(i.style,ua),c||(r.scrollTop=o,r.scrollLeft=s,r.removeAttribute(`data-base-ui-scroll-locked`),r.style.scrollBehavior=da)}function f(){d(),l.request(u)}u();let p=X(a,`resize`,f);return()=>{l.cancel(),d(),typeof a.removeEventListener==`function`&&p()}}var va=new class{lockCount=0;restore=null;timeoutLock=Ge.create();timeoutUnlock=Ge.create();acquire(e){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{--this.lockCount,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(this.lockCount===0||this.restore!==null)return;let t=m(e),r=t.documentElement,i=t.body,a=n(r);if(pa(a,r,i)){let t=new a.MutationObserver(()=>{pa(a,r,i)||(t.disconnect(),this.restore=null,this.lock(e))}),n={attributes:!0};t.observe(r,n),t.observe(i,n),this.restore=()=>t.disconnect();return}let o=ut||!ma(e);this.restore=o?ga(e):_a(e)}};function ya(t=!0,n=null){e(()=>{if(t)return va.acquire(n)},[t,n])}var ba=20;function xa(t,n,r,i){let[a,o]=Z.useState(!1);e(()=>{if(!t||!n||r==null){o(!1);return}let e=m(r).documentElement.clientWidth,i=r.offsetWidth;o(e>0&&i>0&&i>=e-ba)},[t,n,r]),ya(t&&(!n||a),i)}var Sa={position:`fixed`},Ca=Z.forwardRef(function(t,n){let{anchor:r,className:i,render:a,positionMethod:o,side:s,align:c,sideOffset:l,alignOffset:u,collisionBoundary:d=`clipping-ancestors`,collisionPadding:f,arrowPadding:p,sticky:m,disableAnchorTracking:h,alignItemWithTrigger:g=!0,collisionAvoidance:_=lt,style:v,...y}=t,{store:b,listRef:x,labelsRef:S,alignItemWithTriggerActiveRef:C,selectedItemTextRef:w,valuesRef:T,initialValueRef:E,popupRef:O,setValue:k,floatingContext:ee}=Qr(),j=Y(b,$.open),M=Y(b,$.mounted),N=Y(b,$.modal),P=Y(b,$.value),F=Y(b,$.openMethod),I=Y(b,$.positionerElement),L=Y(b,$.triggerElement),z=Y(b,$.isItemEqualToValue),B=Y(b,$.transitionStatus),V=Z.useRef(null),H=Z.useRef(null),[te,U]=Z.useState(g),ne=M&&te&&F!==`touch`;!M&&te!==g&&U(g),Z.useImperativeHandle(C,()=>ne),xa((ne||N)&&j,F===`touch`,I,L);let W=Xe({anchor:r,floatingRootContext:ee,positionMethod:o,mounted:M,side:s,sideOffset:l,align:c,alignOffset:u,arrowPadding:p,collisionBoundary:d,collisionPadding:f,sticky:m,disableAnchorTracking:h??ne,collisionAvoidance:_,keepMounted:!0}),re=ne?`none`:W.side,G=ne?Sa:W.positionerStyles,ie={open:j,side:re,align:W.align,anchorHidden:W.anchorHidden};e(()=>{b.set(`popupSide`,W.side)},[b,W.side]);let K=Ct(t,ie,{styles:G,transitionStatus:B,props:y,refs:[n,b.useStateSetter(`positionerElement`)],hidden:!M,inert:!j}),ae=Z.useRef(0),oe=D(e=>{if(T.current.length===0)return;let t=ae.current;if(ae.current=e.size,e.size===t)return;let n=q(A);if(t!==0&&!b.state.multiple&&P!==null&&fi(T.current,P,z)===-1){let e=E.current,t=e!=null&&fi(T.current,e,z)!==-1?e:null;k(t,n),t===null&&(b.set(`selectedIndex`,null),w.current=null)}if(t!==0&&b.state.multiple&&Array.isArray(P)){let e=P.filter(e=>fi(T.current,e,z)!==-1);e.length!==P.length&&(k(e,n),e.length===0&&(b.set(`selectedIndex`,null),w.current=null))}if(j&&ne){b.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});let e={height:``};sa(I,e),sa(O.current,e)}}),se=Z.useMemo(()=>({...W,side:re,alignItemWithTriggerActive:ne,setControlledAlignItemWithTrigger:U,scrollUpArrowRef:V,scrollDownArrowRef:H}),[W,re,ne,U]);return(0,Q.jsx)(Zi,{elementsRef:x,labelsRef:S,onMapChange:oe,children:(0,Q.jsxs)(ia.Provider,{value:se,children:[M&&N&&(0,Q.jsx)(oa,{inert:R(!j),cutout:L}),K]})})}),wa=`base-ui-disable-scrollbar`,Ta={className:wa,getElement(e){return(0,Q.jsx)(`style`,{nonce:e,href:wa,precedence:`base-ui:low`,children:`.${wa}{scrollbar-width:none}.${wa}::-webkit-scrollbar{display:none}`})}},Ea=Z.createContext(void 0);function Da(e){let t=Z.useContext(Ea);if(t===void 0&&!e)throw Error(O(69));return t}var Oa=`ArrowUp`,ka=`ArrowDown`,Aa=`ArrowLeft`,ja=`ArrowRight`,Ma=`Home`,Na=new Set([Oa,ka,Aa,ja,Ma,`End`]),Pa=[`Shift`,`Control`,`Alt`,`Meta`];function Fa(e){return s(e)&&e.tagName===`INPUT`}function Ia(e){return!!(Fa(e)&&e.selectionStart!=null||s(e)&&e.tagName===`TEXTAREA`)}function La(e,t,n,r){if(!e||!t||!t.scrollTo)return;let i=e.scrollLeft,a=e.scrollTop,o=e.clientWidth<e.scrollWidth,s=e.clientHeight<e.scrollHeight;if(o&&r!==`vertical`){let r=Ra(e,t,`left`),a=za(e),o=za(t);n===`ltr`&&(r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight?i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight:r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft&&(i=r-o.scrollMarginLeft-a.scrollPaddingLeft)),n===`rtl`&&(r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft?i=r-o.scrollMarginLeft-a.scrollPaddingLeft:r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight&&(i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight))}if(s&&r!==`horizontal`){let n=Ra(e,t,`top`),r=za(e),i=za(t);n-i.scrollMarginTop<e.scrollTop+r.scrollPaddingTop?a=n-i.scrollMarginTop-r.scrollPaddingTop:n+t.offsetHeight+i.scrollMarginBottom>e.scrollTop+e.clientHeight-r.scrollPaddingBottom&&(a=n+t.offsetHeight+i.scrollMarginBottom-e.clientHeight+r.scrollPaddingBottom)}e.scrollTo({left:i,top:a,behavior:`auto`})}function Ra(e,t,n){let r=n===`left`?`offsetLeft`:`offsetTop`,i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);)t=t.offsetParent;return i}function za(e){let t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}var Ba=Z.createContext(void 0),Va={disableStyleElements:!1};function Ha(){return Z.useContext(Ba)??Va}var Ua={...st,...ke},Wa=Z.forwardRef(function(t,r){let{render:i,className:a,style:o,finalFocus:s,...c}=t,{store:l,popupRef:u,onOpenChangeComplete:d,setOpen:f,valueRef:p,firstItemTextRef:g,selectedItemTextRef:_,multiple:v,handleScrollArrowVisibility:y,scrollHandlerRef:b,listRef:x,highlightItemOnHover:S,floatingContext:C}=Qr(),{side:w,align:T,alignItemWithTriggerActive:E,isPositioned:O,setControlledAlignItemWithTrigger:k}=aa(),A=Da(!0)!=null,ee=Ee(),{nonce:j,disableStyleElements:M}=Ha(),N=Y(l,$.id),P=Y(l,$.open),F=Y(l,$.openMethod),I=Y(l,$.mounted),L=Y(l,$.popupProps),R=Y(l,$.transitionStatus),z=Y(l,$.triggerElement),B=Y(l,$.positionerElement),V=Y(l,$.listElement),H=Z.useRef(!1),te=Z.useRef(!1),U=Z.useRef({}),ne=Ze(),W=D(e=>{if(!B||!u.current||!te.current)return;let t=B.style.top===`0px`,r=B.style.bottom===`0px`;if(H.current||!E||!t&&!r){y(e);return}let i=qa(B),a=Ja(B.getBoundingClientRect().height,`y`,i),o=m(B),s=n(B),c=s.getComputedStyle(B),l=parseFloat(c.marginTop),d=parseFloat(c.marginBottom),f=Ga(s.getComputedStyle(u.current)),p=Math.min(o.documentElement.clientHeight-l-d,f),h=e.scrollTop,g=Ka(e),_=null,v=e=>{B.style.height=`${e}px`},b=t?g-h:h,x=Math.min(a+b,p);if(b<=1){let n=ot(b,0,p-a);n>0&&v(a+n),e.scrollTop=t?g:0,p-(a+n)<=1&&(H.current=!0),y(e);return}p-x>1?_=t?1/0:0:r&&h<g&&(_=h-(b-(a+b-p)));let S=Math.ceil(x);if(S!==0&&v(S),_!=null){let t=ot(_,0,Ka(e));Math.abs(e.scrollTop-t)>1&&(e.scrollTop=t)}S>=p-1&&(H.current=!0),y(e)});Z.useImperativeHandle(b,()=>W,[W]),It({open:P,ref:u,onComplete(){P&&d?.(!0)}});let re={open:P,transitionStatus:R,side:w,align:T};e(()=>{!B||!u.current||Object.keys(U.current).length||(U.current={top:B.style.top||`0`,left:B.style.left||`0`,right:B.style.right,height:B.style.height,bottom:B.style.bottom,minHeight:B.style.minHeight,maxHeight:B.style.maxHeight,marginTop:B.style.marginTop,marginBottom:B.style.marginBottom})},[u,B]),e(()=>{P||E||(te.current=!1,H.current=!1,sa(B,U.current))},[P,E,B,u]),e(()=>{let e=u.current;if(!P||!z||!B||!e||E&&!O||l.state.transitionStatus===`ending`)return;if(te.current=!0,e.style.removeProperty(`--transform-origin`),!E){ne.request(()=>y(V||e));return}let t=Za(e);try{let t=_.current;t?.isConnected||(t=!$.hasSelectedValue(l.state)&&g.current?.isConnected?g.current:null);let r=p.current,i=n(B),a=i.getComputedStyle(B),o=i.getComputedStyle(e),s=m(z),c=qa(z),u=Ya(z.getBoundingClientRect(),c),d=Ya(B.getBoundingClientRect(),c),f=u.height,h=V||e,v=h.scrollHeight,b=parseFloat(o.borderBottomWidth),C=parseFloat(a.marginTop)||10,w=parseFloat(a.marginBottom)||10,T=parseFloat(a.minHeight)||100,E=Ga(o),D=s.documentElement.clientHeight-C-w,O=s.documentElement.clientWidth,A=D-u.bottom+f,j,M=ee===`rtl`?u.right-d.width:u.left,N=0;if(t&&r){let e=Ya(r.getBoundingClientRect(),c);j=Ya(t.getBoundingClientRect(),c),M=d.left+(ee===`rtl`?e.right-j.right:e.left-j.left);let n=e.top-u.top+e.height/2;N=j.top-d.top+j.height/2-n}let P=A+N+w+b,F=Math.min(D,P),I=D-C-w,L=P-F,R=O-5;B.style.left=`${ot(M,5,R-d.width)}px`,B.style.height=`${F}px`,B.style.maxHeight=`none`,B.style.marginTop=`${C}px`,B.style.marginBottom=`${w}px`,e.style.height=`100%`;let te=Ka(h),ne=L>=te-1;ne&&(F=Math.min(D,d.height)-(L-te));let W=u.top<20||u.bottom>D-20||Math.ceil(F)+1<Math.min(v,T),re=(i.visualViewport?.scale??1)!==1&&wt;if(W||re){sa(B,U.current),k(!1);return}let G=Math.max(T,F);if(ne){let e=Math.max(0,D-P);B.style.top=d.height>=I?`0`:`${e}px`,B.style.height=`${F}px`,h.scrollTop=Ka(h)}else B.style.bottom=`0`,h.scrollTop=L;if(j){let t=d.top,n=d.height,r=j.top+j.height/2,i=ot(n>0?(r-t)/n*100:50,0,100);e.style.setProperty(`--transform-origin`,`50% ${i}%`)}(G===D||F>=E)&&(H.current=!0),y(h),S&&l.state.selectedIndex===null&&l.state.activeIndex===null&&x.current[0]!=null&&l.set(`activeIndex`,0)}finally{t()}},[l,P,B,z,p,g,_,u,y,E,k,ne,V,x,S,ee,O]),Z.useEffect(()=>{if(!E||!B||!P)return;let e=n(B);function t(e){f(!1,q(St,e))}return X(e,`resize`,t)},[f,E,B,P]);let G={...V?{role:`presentation`,"aria-orientation":void 0}:{role:`listbox`,"aria-multiselectable":v||void 0,id:`${N}-list`},onKeyDown(e){A&&Na.has(e.key)&&e.stopPropagation()},onScroll(e){V||W(e.currentTarget)},...E&&{style:V?{height:`100%`}:ca},className:!V&&E?Ta.className:void 0},ie=h(`div`,t,{ref:[r,u],state:re,stateAttributesMapping:Ua,props:[L,G,vt(R),c]});return(0,Q.jsxs)(Z.Fragment,{children:[!M&&Ta.getElement(j),(0,Q.jsx)(kn,{context:C,modal:!1,disabled:!I,openInteractionType:F,returnFocus:s,restoreFocus:!0,children:ie})]})});function Ga(e){let t=e.maxHeight;return t.endsWith(`px`)&&parseFloat(t)||1/0}function Ka(e){return Oi(e.scrollHeight,e.clientHeight)}function qa(e){return H.getScale(e)}function Ja(e,t,n){return e/n[t]}function Ya(e,t){return K({x:Ja(e.x,`x`,t),y:Ja(e.y,`y`,t),width:Ja(e.width,`x`,t),height:Ja(e.height,`y`,t)})}var Xa=[[`transform`,`none`],[`scale`,`1`],[`translate`,`0 0`]];function Za(e){let{style:t}=e,n={};for(let[e,r]of Xa)n[e]=t.getPropertyValue(e),t.setProperty(e,r,`important`);return()=>{for(let[e]of Xa){let r=n[e];r?t.setProperty(e,r):t.removeProperty(e)}}}var Qa=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{store:o,scrollHandlerRef:s,multiple:c}=Qr(),{alignItemWithTriggerActive:l}=aa(),u=Y(o,$.hasScrollArrows),d=Y(o,$.openMethod),f={id:`${Y(o,$.id)}-list`,role:`listbox`,"aria-multiselectable":c||void 0,onScroll(e){s.current?.(e.currentTarget)},...l&&{style:ca},className:u&&d!==`touch`?Ta.className:void 0};return h(`div`,e,{ref:[t,o.useStateSetter(`listElement`)],props:[f,a]})});function $a(t={}){let{guess:n,label:r,metadata:i,textRef:a,index:o}=t,{register:s,unregister:c,subscribeMapChange:l,nextIndexRef:u}=Xi(),d=Z.useRef(-1),[f,p]=Z.useState(o==null&&n?()=>{if(d.current===-1){let e=u.current;u.current+=1,d.current=e}return d.current}:-1),m=o??f,h=Z.useRef(null),g=Z.useCallback(e=>{let t=h.current;t&&c(t),h.current=e,e&&s(e,{metadata:i??null,index:o??null,label:r,textRef:a})},[o,s,c,i,r,a]);return e(()=>{if(o==null)return l(e=>{let t=h.current?e.get(h.current)?.index:null;t!=null&&p(t)})},[o,l]),{ref:g,index:m}}var eo=Z.createContext(void 0);function to(){let e=Z.useContext(eo);if(!e)throw Error(O(57));return e}var no=Z.memo(Z.forwardRef(function(t,n){let{render:r,className:i,style:a,value:o=null,label:s,disabled:c=!1,nativeButton:l=!1,...u}=t,d=Z.useRef(null),f=$a({guess:!0,label:s,textRef:d}),{store:p,itemProps:m,setOpen:g,setValue:_,selectionRef:v,typingRef:b,valuesRef:x,multiple:S,selectedItemTextRef:C,disabled:w,readOnly:T}=Qr(),E=w||c,D=Y(p,$.isActive,f.index),O=Y(p,$.open),k=Y(p,$.isSelected,o),A=Y(p,$.isSelectedByFocus,f.index),ee=Y(p,$.isItemEqualToValue),j=f.index,M=Z.useRef(null);e(()=>{let e=x.current;return e[j]=o,()=>{delete e[j]}},[j,o,x]),e(()=>{let e=p.state.value,t=e;S&&Array.isArray(e)&&(t=e.length>0?e[e.length-1]:void 0),t!==void 0&&di(o,t,ee)&&(p.set(`selectedIndex`,j),d.current&&(C.current=d.current))},[j,S,ee,p,o,C]);let N=Z.useRef(`mouse`),P=Z.useRef(!1),{getButtonProps:F,buttonRef:I}=y({disabled:E,focusableWhenDisabled:!0,native:l,composite:!0}),L={disabled:E,selected:k,highlighted:D};function R(e){if(w||T)return;let t=p.state.value;if(S){let n=Array.isArray(t)?t:[],r=k?pi(n,o,ee):[...n,o];_(r,q(Be,e))}else _(o,q(Be,e)),g(!1,q(Be,e))}function z(){v.current.dragY=0}let B={role:`option`,"aria-selected":k,tabIndex:O&&D?0:-1,onKeyDown(e){p.set(`activeIndex`,j),e.key===` `&&b.current&&e.preventDefault()},onClick(e){let t=N.current!==`touch`,n=e.nativeEvent.pointerType,r=t&&ue(e.nativeEvent)&&(n!==void 0||D),i=t&&!r&&!P.current;P.current=!1,!(E||i)&&R(e.nativeEvent)},onPointerEnter(e){N.current=e.pointerType},onPointerMove(e){if(e.pointerType===`mouse`&&e.buttons===1){let t=v.current;t.dragY+=e.movementY,t.dragY**2>=64&&(t.allowUnselectedMouseUp=!0)}},onPointerDown(e){N.current=e.pointerType,P.current=!0,z()},onMouseUp(){if(z(),E||N.current===`touch`||P.current)return;let e=!v.current.allowSelectedMouseUp&&k,t=!v.current.allowUnselectedMouseUp&&!k;e||t||(P.current=!0,M.current?.click(),P.current=!1)}},V=h(`div`,t,{ref:[I,n,f.ref,M],state:L,props:[m,B,u,F]}),H=Z.useMemo(()=>({selected:k,index:j,textRef:d,selectedByFocus:A}),[k,j,d,A]);return(0,Q.jsx)(eo.Provider,{value:H,children:V})})),ro=Z.forwardRef(function(e,t){let{selected:n}=to();return e.keepMounted||n?(0,Q.jsx)(io,{...e,ref:t}):null}),io=Z.memo(Z.forwardRef((e,t)=>{let{render:n,className:r,style:i,keepMounted:a,...o}=e,{selected:s}=to(),c=Z.useRef(null),{transitionStatus:l,setMounted:u}=Vn(s),d=h(`span`,e,{ref:[t,c],state:{selected:s,transitionStatus:l},props:[{"aria-hidden":!0,children:`✔️`},o],stateAttributesMapping:ke});return It({open:s,ref:c,onComplete(){s||u(!1)}}),d})),ao=Z.memo(Z.forwardRef(function(e,t){let{index:n,textRef:r,selectedByFocus:i}=to(),{firstItemTextRef:a,selectedItemTextRef:o}=Qr(),{render:s,className:c,style:l,...u}=e;return h(`div`,e,{ref:[Z.useCallback(e=>{e&&(n===0&&(a.current=e),i&&(o.current=e))},[a,o,n,i]),t,r],props:u})})),oo=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{store:o}=Qr(),{side:s,align:c,arrowRef:l,arrowStyles:u,arrowUncentered:d,alignItemWithTriggerActive:f}=aa(),p=h(`div`,e,{state:{open:Y(o,$.open),side:s,align:c,uncentered:d},ref:[l,t],props:[{style:u,"aria-hidden":!0},a],stateAttributesMapping:We});return f?null:p}),so=Z.forwardRef(function(t,n){let{render:r,className:i,style:a,direction:o,keepMounted:s,...c}=t,l=o===`up`,{store:u,popupRef:d,listRef:f,handleScrollArrowVisibility:p,scrollArrowsMountedCountRef:m}=Qr(),{side:g,scrollDownArrowRef:_,scrollUpArrowRef:v}=aa(),y=Y(u,l?$.scrollUpArrowVisible:$.scrollDownArrowVisible),b=Y(u,$.openMethod),x=y&&b!==`touch`,S=Ft(),C=l?v:_,{mounted:w,transitionStatus:T,setMounted:E}=Vn(x);e(()=>(m.current+=1,u.set(`hasScrollArrows`,!0),()=>{m.current=Math.max(0,m.current-1),m.current===0&&u.set(`hasScrollArrows`,!1)}),[u,m]),It({open:x,ref:C,onComplete(){x||E(!1)}});let D=h(`div`,t,{ref:[n,C],state:{direction:o,visible:x,side:g,transitionStatus:T},props:[{"aria-hidden":!0,children:l?`▲`:`▼`,style:{position:`absolute`},onMouseMove(e){if(e.movementX===0&&e.movementY===0||S.isStarted())return;u.set(`activeIndex`,null);function t(){let e=u.state.listElement??d.current;if(!e)return;u.set(`activeIndex`,null),p(e);let n=Oi(e.scrollHeight,e.clientHeight),r=ki(e.scrollTop,n),i=r===(l?0:n),a=f.current;if(r!==e.scrollTop&&(e.scrollTop=r),i){S.clear();return}if(a.length>0){let t=C.current?.offsetHeight||0;e.scrollTop=co(a,l,r,e.clientHeight,t,n)}S.start(40,t)}S.start(40,t)},onMouseLeave(){S.clear()}},c],stateAttributesMapping:ke});return w||s?D:null});function co(e,t,n,r,i,a){if(t){let t=0,r=n+i-1;for(let n=0;n<e.length;n+=1){let i=e[n];if(i&&i.offsetTop>=r){t=n;break}}let o=Math.max(0,t-1),s=e[o];return o<t&&s?ki(s.offsetTop-i,a):0}let o=e.length-1,s=n+r-i+1;for(let t=0;t<e.length;t+=1){let n=e[t];if(n&&n.offsetTop+n.offsetHeight>s){o=Math.max(0,t-1);break}}let c=Math.min(e.length-1,o+1),l=e[c];return c>o&&l?ki(l.offsetTop+l.offsetHeight-r+i,a):a}var lo=Z.forwardRef(function(e,t){return(0,Q.jsx)(so,{...e,ref:t,direction:`down`})}),uo=Z.forwardRef(function(e,t){return(0,Q.jsx)(so,{...e,ref:t,direction:`up`})}),fo=Z.createContext(void 0);function po(){let e=Z.useContext(fo);if(e===void 0)throw Error(O(56));return e}var mo=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,[o,s]=Z.useState(),c=Z.useMemo(()=>({labelId:o,setLabelId:s}),[o,s]),l=h(`div`,e,{ref:t,props:[{role:`group`,"aria-labelledby":o},a]});return(0,Q.jsx)(fo.Provider,{value:c,children:l})}),ho=Z.forwardRef(function(t,n){let{render:r,className:i,style:a,id:o,...s}=t,{setLabelId:c}=po(),l=oi(o);return e(()=>(c(l),()=>{c(e=>e===l?void 0:e)}),[l,c]),h(`div`,t,{ref:n,props:[{id:l},s]})}),go=Z.forwardRef(function(e,t){let{className:n,render:r,orientation:i=`horizontal`,style:a,...o}=e;return h(`div`,e,{state:{orientation:i},ref:t,props:[{role:`presentation`},o]})}),_o=ve(oo,`tr-layer-arrow tr-select-arrow`),vo=ve(Ji,`tr-layer-backdrop tr-select-backdrop`),yo=ve(mo,`tr-select-group`),bo=ve(ho,`tr-select-group-label`),xo=ve(Gi,`tr-select-icon`),So=ve(no,`tr-select-item`),Co=ve(ro,`tr-select-item-indicator`),wo=ve(ao,`tr-select-item-text`),To=ve(Ii,`tr-select-label`),Eo=ve(Qa,`tr-select-list`),Do=ve(Wa,`tr-layer tr-select-popup`),Oo=ve(Ki,`tr-select-portal`),ko=[`align`,`alignItemWithTrigger`,`alignOffset`,`anchor`,`arrowPadding`,`collisionAvoidance`,`collisionBoundary`,`collisionPadding`,`disableAnchorTracking`,`positionMethod`,`side`,`sideOffset`,`sticky`];function Ao({className:e,...t}){let n={...t};for(let e of ko)Reflect.deleteProperty(n,e);return(0,Q.jsx)(Ca,{...n,align:`center`,alignItemWithTrigger:!1,className:i(`tr-layer-positioner tr-select-positioner`,e),side:`bottom`,sideOffset:4})}function jo({form:e,inputRef:t,value:n,...r}){let i=(0,Z.useRef)(null),[a,o]=(0,Z.useState)(0);return(0,Z.useEffect)(()=>{if(n!==void 0)return;let t=e?document.getElementById(e):i.current?.form;if(!(t instanceof HTMLFormElement))return;let r=()=>o(e=>e+1);return t.addEventListener(`reset`,r),()=>t.removeEventListener(`reset`,r)},[e,n]),(0,Z.createElement)(Ai,{...r,form:e,inputRef:e=>{i.current=e,typeof t==`function`?t(e):t&&(t.current=e)},key:a,value:n})}var Mo=ve(lo,`tr-select-scroll-down-arrow`),No=ve(uo,`tr-select-scroll-up-arrow`),Po=ve(go,`tr-separator tr-select-separator`),Fo=ve(Hi,`tr-select-trigger`);function Io({className:e,uiSize:t=`md`,appearance:n=`solid`,...r}){return(0,Q.jsx)(Fo,{...r,className:e,"data-appearance":n,"data-ui-size":t})}var Lo={Root:jo,Label:To,Trigger:Io,Value:ve(Wi,`tr-select-value`),Icon:xo,Portal:Oo,Backdrop:vo,Positioner:Ao,Popup:Do,List:Eo,Item:So,ItemIndicator:Co,ItemText:wo,Arrow:_o,ScrollDownArrow:Mo,ScrollUpArrow:No,Group:yo,GroupLabel:bo,Separator:Po};function Ro(e){let t=t=>{t.key===`issuary-language`&&e()};return window.addEventListener(`storage`,t),window.addEventListener(`language-storage-change`,e),()=>{window.removeEventListener(`storage`,t),window.removeEventListener(`language-storage-change`,e)}}function zo(){return localStorage.getItem(Ot)}function Bo(){window.dispatchEvent(new Event(`language-storage-change`))}function Vo(){let{i18n:e}=b(),{data:t}=Jt(jt),n=t.i18n.supported_languages,r=gt(n),i=(0,Z.useSyncExternalStore)(Ro,zo,zo)===null,a=et(r,t.i18n.fallback_language),o=(0,Z.useCallback)(t=>{r.includes(t)&&(e.changeLanguage(t),localStorage.setItem(Ot,t),Bo())},[r,e]),s=(0,Z.useCallback)(()=>{localStorage.removeItem(Ot),Bo(),e.changeLanguage(a)},[a,e]);return{language:e.language,languages:r,setLanguage:o,setAutoLanguage:s,isAutoMode:i,detectedLanguage:a,showLanguageSelector:r.length>1}}function Ho({alwaysVisible:e=!1,className:t=``,presentation:n=`toolbar`,triggerClassName:r,uiSize:i=`sm`}){let{t:a}=b(),{language:o,languages:s,setLanguage:c,setAutoLanguage:l,isAutoMode:u,detectedLanguage:d,showLanguageSelector:f}=Vo();if(!(f||e))return null;let p=bt[d]||d,m=[{label:`${a(`common.language.auto`)} (${p})`,value:`auto`},...s.map(e=>({label:bt[e]||e,value:e}))],h=u?`auto`:o;return(0,Q.jsx)(`div`,{className:t,children:(0,Q.jsxs)(Lo.Root,{items:m,onValueChange:e=>{typeof e==`string`&&(e===`auto`?l():c(e))},value:h,children:[(0,Q.jsxs)(Lo.Trigger,{appearance:n===`toolbar`?`ghost`:`solid`,"aria-label":a(`common.language.select`),className:r,"data-testid":`language-selector`,uiSize:i,children:[(0,Q.jsx)(Br,{"aria-hidden":!0,className:`size-tinyrack-lg`}),(0,Q.jsx)(Lo.Value,{}),(0,Q.jsx)(Lo.Icon,{children:(0,Q.jsx)(zr,{"aria-hidden":!0})})]}),(0,Q.jsx)(Lo.Portal,{children:(0,Q.jsx)(Lo.Positioner,{children:(0,Q.jsx)(Lo.Popup,{children:(0,Q.jsx)(Lo.List,{children:m.map(e=>(0,Q.jsxs)(Lo.Item,{value:e.value,children:[(0,Q.jsx)(Lo.ItemText,{children:e.label}),(0,Q.jsx)(Lo.ItemIndicator,{children:(0,Q.jsx)(Rr,{"aria-hidden":!0})})]},e.value))})})})})]})})}function Uo(){return(0,Q.jsx)(`footer`,{className:`flex justify-center px-tinyrack-lg pb-tinyrack-lg empty:hidden`,children:(0,Q.jsx)(Ho,{})})}var Wo=Z.createContext(void 0);function Go(e){let t=Z.useContext(Wo);if(t===void 0&&!e)throw Error(O(72));return t}var Ko=class extends I{setState(e){}update(e){}set(e,t){}notifyAll(){}},qo={...lr,disabled:e=>e.disabled,instantType:e=>e.instantType,isInstantPhase:e=>e.isInstantPhase,trackCursorAxis:e=>e.trackCursorAxis,disableHoverablePopup:e=>e.disableHoverablePopup,lastOpenChangeReason:e=>e.openChangeReason,closeOnClick:e=>e.closeOnClick,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin},Jo=class extends I{constructor(e,t,n){let r=new Lt;super(Xo(e,r,t,n),Zo(r),qo)}setOpen=(e,t)=>{Yn(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,q(Ye,e))}};function Yo(){let e=new Lt,t=new Ko(Object.freeze(Xo(void 0,e)),Object.freeze(Zo(e)),qo);return Object.assign(t,{setOpen:v,cancelPendingOpen:v})}function Xo(e,t,n,r=!1){let i={...nr(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...e};return i.floatingRootContext=rr(t,n,r),i}function Zo(e){return{popupRef:Z.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:e}}var Qo=je(function(t){let{disabled:n=!1,defaultOpen:r=!1,open:i,disableHoverablePopup:a=!1,trackCursorAxis:o=`none`,actionsRef:s,onOpenChange:c,onOpenChangeComplete:l,handle:u,triggerId:d,defaultTriggerId:f=null,children:p}=t,m=Wn((e,t)=>new Jo({open:r,openProp:i,activeTriggerId:f,triggerIdProp:d},e,t));m.useControlledProp(`openProp`,i),m.useControlledProp(`triggerIdProp`,d),m.useContextCallback(`onOpenChange`,c),m.useContextCallback(`onOpenChangeComplete`,l);let h=m.useState(`open`),g=!n&&h,_=m.useState(`activeTriggerId`),v=m.useState(`mounted`),y=m.useState(`payload`);m.useSyncedValues({trackCursorAxis:o,disableHoverablePopup:a,disabled:n}),Zn(m,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:b,transitionStatus:x}=Qn(g,m),S=m.useState(`isInstantPhase`),C=m.useState(`instantType`),w=m.useState(`lastOpenChangeReason`),T=Z.useRef(null);e(()=>{h&&n&&m.setOpen(!1,q(Pe))},[h,n,m]),e(()=>{x===`ending`&&w===`none`||x!==`ending`&&S?(C!==`delay`&&(T.current=C),m.set(`instantType`,`delay`)):T.current!==null&&(m.set(`instantType`,T.current),T.current=null)},[x,S,w,C,m]),e(()=>{g&&(_??m.set(`payload`,void 0))},[m,_,g]),Z.useImperativeHandle(s,()=>({unmount:b,close:()=>m.setOpen(!1,q(le))}),[b,m]);let E=g||v||!n&&o!==`none`;return(0,Q.jsxs)(Wo.Provider,{value:m,children:[u&&(0,Q.jsx)(Gn,{handle:u,store:m}),E&&(0,Q.jsx)($o,{store:m,disabled:n,trackCursorAxis:o}),typeof p==`function`?p({payload:y}):p]})});function $o({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=In(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=Nn(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=Z.useMemo(()=>c(a.reference,i.reference),[a.reference,i.reference]);return $n(e,{activeTriggerProps:o,inactiveTriggerProps:o,popupProps:i.floating??g}),null}var es=Z.createContext(void 0);function ts(){return Z.useContext(es)}var ns=`data-base-ui-tooltip-trigger`;function rs(e){if(`composedPath`in e){let t=e.composedPath();for(let e=0;e<t.length;e+=1){let n=t[e];if(a(n))return n}}let t=e.target;return a(t)?t:null}function is(e){let t=e;for(;t;){let e=t.closest(`[${ns}]`);if(e)return e;let n=t.getRootNode();t=`host`in n&&a(n.host)?n.host:null}return null}var as=te(function(e,t){let{render:n,className:r,style:i,handle:a,payload:o,disabled:s,delay:c,closeOnClick:l=!0,closeDelay:u,id:d,...f}=e,p=Go(!0),m=ur(a)??p;if(!m)throw Error(O(82));let g=oi(d),_=m.useState(`isTriggerActive`,g),v=m.useState(`isOpenedByTrigger`,g),y=m.useState(`floatingRootContext`),b=Z.useRef(null),x=c??600,S=u??0,{registerTrigger:C,isMountedByThisTrigger:w}=Xn(g,b,m,{payload:o,closeOnClick:l,closeDelay:S}),T=ts(),{delayRef:E,isInstantPhase:D,hasProvider:k}=on(y,{open:v}),A=_r(y);m.useSyncedValue(`isInstantPhase`,D);let ee=m.useState(`disabled`),j=s??ee,M=ge(j),N=m.useState(`trackCursorAxis`),P=m.useState(`disableHoverablePopup`),F=Z.useRef(!1),I=Ft(),L=Z.useRef(void 0);function R(){return k?Qt(E.current,`open`)===0?0:c??T??600:x}function z(e){let t=b.current;if(!t||!e)return!1;let n=is(e);return n!==null&&n!==t&&J(t,n)}function B(e){let t=z(e);return F.current=t,t&&(A.openChangeTimeout.clear(),A.restTimeout.clear(),A.restTimeoutPending=!1,I.clear()),t}let V=br(y,{enabled:!j,mouseOnly:!0,move:!1,handleClose:!P&&N!==`both`?Lr():null,restMs:R,delay(){return u==null&&k?{close:Qt(E.current,`close`)}:{close:S}},triggerElementRef:b,isActiveTrigger:_,isClosing:()=>m.select(`transitionStatus`)===`ending`,shouldOpen(){return!F.current}}),H=fr(y,{enabled:!j}).reference,te=e=>{let t=F.current,n=rs(e),r=B(n),i=b.current,a=i&&n&&J(i,n);if(r&&m.select(`open`)&&m.select(`lastOpenChangeReason`)===`trigger-hover`){m.setOpen(!1,q(dt,e));return}if(t&&!r&&a&&!M.current&&!m.select(`open`)&&i&&ze(L.current)){let t=()=>{!F.current&&!M.current&&!m.select(`open`)&&m.setOpen(!0,q(dt,e,i))},n=R();n===0?(I.clear(),t()):I.start(n,t)}},U=m.useState(`triggerProps`,w);return h(`button`,e,{state:{open:v},ref:[t,C,b],props:[V,H,w||N!==`none`?U:void 0,{onMouseOver(e){te(e.nativeEvent)},onFocus(e){z(rs(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){F.current=!1,I.clear(),L.current=void 0},onPointerEnter(e){L.current=e.pointerType},onPointerDown(e){L.current=e.pointerType,m.set(`closeOnClick`,l),l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},onClick(e){l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},id:g,"data-trigger-disabled":j?``:void 0,[ns]:j?void 0:``},f],stateAttributesMapping:Ht})}),os=Z.createContext(void 0);function ss(){let e=Z.useContext(os);if(e===void 0)throw Error(O(70));return e}var cs=Z.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return Go().useState(`mounted`)||n?(0,Q.jsx)(os.Provider,{value:n,children:(0,Q.jsx)(xe,{ref:t,...r})}):null}),ls=Z.createContext(void 0);function us(){let e=Z.useContext(ls);if(e===void 0)throw Error(O(71));return e}var ds=Z.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=Ke,style:g,..._}=e,v=Go(),y=ss(),b=v.useState(`open`),x=v.useState(`mounted`),S=v.useState(`trackCursorAxis`),C=v.useState(`disableHoverablePopup`),w=v.useState(`floatingRootContext`),T=v.useState(`instantType`),E=v.useState(`transitionStatus`),D=Xe({anchor:i,positionMethod:a,floatingRootContext:w,mounted:x,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,disableAnchorTracking:m,keepMounted:y,collisionAvoidance:h,adaptiveOrigin:v.useState(`adaptiveOrigin`)}),O=Ct(e,Z.useMemo(()=>({open:b,side:D.side,align:D.align,anchorHidden:D.anchorHidden,instant:S===`none`?T:`tracking-cursor`}),[b,D.side,D.align,D.anchorHidden,S,T]),{styles:D.positionerStyles,transitionStatus:E,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!x,inert:!b||S===`both`||C});return(0,Q.jsx)(ls.Provider,{value:D,children:O})}),fs=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=Go(),{side:s,align:c}=us(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),g=o.useState(`closeDelay`);It({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),vr(p,{enabled:!m,closeDelay:g});let _=o.useStateSetter(`popupElement`);return h(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,_],props:[Hn,f,vt(d),a],stateAttributesMapping:We})}),ps=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=Go(),{arrowRef:s,side:c,align:l,arrowUncentered:u,arrowStyles:d}=us();return h(`div`,e,{state:{open:o.useState(`open`),side:c,align:l,uncentered:u,instant:o.useState(`instantType`)},ref:[t,s],props:[{style:d,"aria-hidden":!0},a],stateAttributesMapping:st})}),ms=function(e){let{delay:t,closeDelay:n,timeout:r=400}=e,i=Z.useMemo(()=>({open:t,close:n}),[t,n]);return(0,Q.jsx)(es.Provider,{value:t,children:(0,Q.jsx)(an,{delay:i,timeoutMs:r,children:e.children})})};function hs(e){let n=t(e),r=parseFloat(n.width)||0,i=parseFloat(n.height)||0,a=s(e),o=a?e.offsetWidth:r,c=a?e.offsetHeight:i;return(Ie(r)!==o||Ie(i)!==c)&&(r=o,i=c),{width:r,height:i}}function gs(t){let{popupElement:n,positionerElement:r,content:i,mounted:a,onMeasureLayout:o,onMeasureLayoutComplete:s,side:c,direction:l}=t,u=Gt(n,!0),d=Ze(),f=Z.useRef(null),p=Z.useRef(!0),m=Z.useRef(v),h=D(o),g=D(s),_=Z.useMemo(()=>_s(c,l),[c,l]);e(()=>{if(!a){m.current=v,p.current=!0,f.current=null;return}if(!n||!r)return;m.current=ys(n,_),bs(n,`auto`);let e=vs(n,`position`,`static`),t=vs(n,`transform`,`none`),i=vs(n,`scale`,`1`),o=ys(r,{"--available-width":`max-content`,"--available-height":`max-content`});function s(){e(),t(),o()}function c(){s(),i()}if(h?.(),p.current||f.current===null){xs(r,`max-content`);let e=hs(n);return f.current=e,xs(r,e),c(),g?.(null,e),p.current=!1,()=>{m.current(),m.current=v}}xs(r,`max-content`);let l=f.current,y=hs(n);f.current=y,bs(n,l),c(),g?.(l,y),xs(r,y);let b=new AbortController;return d.request(()=>{bs(n,y),u(()=>{n.style.setProperty(`--popup-width`,`auto`),n.style.setProperty(`--popup-height`,`auto`)},b.signal)}),()=>{b.abort(),d.cancel(),m.current(),m.current=v}},[i,n,r,u,d,a,h,g,_])}function _s(e,t){let n=e===`top`,r=e===`left`||e===(t===`rtl`?`inline-end`:`inline-start`);return!n&&!r?g:{position:`absolute`,[n?`bottom`:`top`]:`0`,[r?`right`:`left`]:`0`}}function vs(e,t,n){let r=e.style.getPropertyValue(t);return e.style.setProperty(t,n),()=>{e.style.setProperty(t,r)}}function ys(e,t){let n=[];for(let[r,i]of Object.entries(t))n.push(vs(e,r,i));return n.length?()=>{n.forEach(e=>e())}:v}function bs(e,t){let n=t===`auto`?`auto`:`${t.width}px`,r=t===`auto`?`auto`:`${t.height}px`;e.style.setProperty(`--popup-width`,n),e.style.setProperty(`--popup-height`,r)}function xs(e,t){let n=t===`max-content`?`max-content`:`${t.width}px`,r=t===`max-content`?`max-content`:`${t.height}px`;e.style.setProperty(`--positioner-width`,n),e.style.setProperty(`--positioner-height`,r)}var Ss={name:`adaptiveOrigin`,async fn(e){let{x:t,y:r,rects:{floating:i},elements:{floating:a},platform:o,strategy:s,placement:c}=e,l=n(a),u=l.getComputedStyle(a);if(!(u.transitionDuration!==`0s`&&u.transitionDuration!==``))return{x:t,y:r,data:Bt};let d=await o.getOffsetParent?.(a),f={width:0,height:0};if(s===`fixed`&&l?.visualViewport)f={width:l.visualViewport.width,height:l.visualViewport.height};else if(d===l){let e=m(a);f={width:e.documentElement.clientWidth,height:e.documentElement.clientHeight}}else await o.isElement?.(d)&&(f=await o.getDimensions(d));let p=Le(c),h=t,g=r;p===`left`&&(h=f.width-(t+i.width)),p===`top`&&(g=f.height-(r+i.height));let _=p===`left`?`right`:Bt.sideX,v=p===`top`?`bottom`:Bt.sideY;return{x:h,y:g,data:{sideX:_,sideY:v}}}},Cs={activationDirection:e=>e?{"data-activation-direction":e}:null};function ws(t){let{store:n,side:r,children:i}=t,a=Ee(),o=n.useState(`activeTriggerElement`),s=n.useState(`activeTriggerId`),c=n.useState(`open`),l=n.useState(`payload`),u=n.useState(`mounted`),d=n.useState(`popupElement`),f=n.useState(`positionerElement`),p=Jr(c?o:null),h=Os(s,l),g=Z.useRef(null),[_,v]=Z.useState(null),[y,b]=Z.useState(null),x=Z.useRef(null),S=Z.useRef(null),C=Gt(x,!0),w=Ze(),T=Z.useRef(null),[E,O]=Z.useState(null),[k,A]=Z.useState(!1);e(()=>(n.set(`adaptiveOrigin`,Ss),()=>{n.set(`adaptiveOrigin`,void 0)}),[n]);let ee=D(()=>{x.current?.style.setProperty(`animation`,`none`),x.current?.style.setProperty(`transition`,`none`),S.current?.style.setProperty(`display`,`none`)}),j=D(e=>{x.current?.style.removeProperty(`animation`),x.current?.style.removeProperty(`transition`),S.current?.style.removeProperty(`display`),e&&O(e)}),M=D(()=>{T.current?.abort();let e=new AbortController;T.current=e,C(()=>{v(null),O(null),g.current=null},e.signal)}),N=Z.useRef(null);e(()=>{(!c||!u)&&(N.current=null)},[c,u]),e(()=>{if(o&&p&&o!==p&&N.current!==o&&g.current){v(g.current),A(!0);let e=Ds(p,o);b(e),N.current=o}},[o,p]),e(()=>{_!=null&&(T.current?.abort(),A(!0),w.request(()=>{Rn.flushSync(()=>{A(!1)}),M()}))},[h,_,M,w]),e(()=>{let e=x.current;if(!e)return;let t=m(e).createElement(`div`);for(let n of Array.from(e.childNodes))t.appendChild(n.cloneNode(!0));g.current=t});let P=_!=null,F;F=P?(0,Q.jsxs)(Z.Fragment,{children:[(0,Q.jsx)(`div`,{"data-previous":!0,inert:R(!0),ref:S,style:{...E?{"--popup-width":`${E.width}px`,"--popup-height":`${E.height}px`}:null,position:`absolute`},"data-ending-style":k?void 0:``},`previous`),(0,Q.jsx)(`div`,{"data-current":!0,ref:x,"data-starting-style":k?``:void 0,children:i},h)]}):(0,Q.jsx)(`div`,{"data-current":!0,ref:x,children:i},h),e(()=>{let e=S.current;!e||!_||e.replaceChildren(...Array.from(_.childNodes))},[_]),gs({popupElement:d,positionerElement:f,mounted:u,content:l,onMeasureLayout:ee,onMeasureLayoutComplete:j,side:r,direction:a});let I={activationDirection:Ts(y),transitioning:P};return{children:F,state:I}}function Ts(e){if(e)return`${Es(e.horizontal,5,`right`,`left`)} ${Es(e.vertical,5,`down`,`up`)}`}function Es(e,t,n,r){return e>t?n:e<-t?r:``}function Ds(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i={x:n.left+n.width/2,y:n.top+n.height/2},a={x:r.left+r.width/2,y:r.top+r.height/2};return{horizontal:a.x-i.x,vertical:a.y-i.y}}function Os(t,n){let[r,i]=Z.useState(0),a=Z.useRef(t),o=Z.useRef(n),s=Z.useRef(!1);return e(()=>{let e=a.current,r=o.current,c=t!==e,l=n!==r;c?(i(e=>e+1),s.current=!l):s.current&&l&&(i(e=>e+1),s.current=!1),a.current=t,o.current=n},[t,n]),`${t??`current`}-${r}`}var ks=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,children:a,...o}=e,s=Go(),c=us(),l=s.useState(`instantType`),{children:u,state:d}=ws({store:s,side:c.side,children:a});return h(`div`,e,{state:{activationDirection:d.activationDirection,transitioning:d.transitioning,instant:l},ref:t,props:[o,{children:u}],stateAttributesMapping:Cs})}),As=class extends zn{constructor(){super(Yo(),`Tooltip`)}open(e){this.openByTrigger(e)}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select(`open`)??!1}};function js(){return new As}var Ms=ve(ps,`tr-layer-arrow tr-tooltip-arrow`);function Ns(){return js()}var Ps=(0,Z.createContext)(null),Fs=Ps.Provider;function Is(){return(0,Z.useContext)(Ps)}function Ls({className:e,id:t,role:n,...r}){let a=Is();if(a===null)throw Error(`TRTooltip.Popup must be used within TRTooltip.Root.`);let o=t??a.fallbackId,{setPopupId:s}=a;return(0,Z.useEffect)(()=>(s(o),()=>s(null)),[o,s]),(0,Q.jsx)(fs,{...r,className:i(`tr-layer tr-tooltip-content`,e),id:o,role:n??`tooltip`})}var Rs=ve(cs),zs=ve(ds,`tr-layer-positioner tr-tooltip-positioner`),Bs=ve(ms);function Vs(e){let t=(0,Z.useId)(),[n,r]=(0,Z.useState)(null);return(0,Q.jsx)(Fs,{value:(0,Z.useMemo)(()=>({descriptionId:n??t,fallbackId:t,setPopupId:r}),[t,n]),children:(0,Q.jsx)(Qo,{...e})})}function Hs({"aria-describedby":e,className:t,...n}){let r=[e,Is()?.descriptionId].filter(Boolean).join(` `);return(0,Q.jsx)(as,{...n,"aria-describedby":r,className:i(`tr-tooltip`,t)})}var Us={Root:Vs,Trigger:Hs,Portal:Rs,Positioner:zs,Popup:Ls,Arrow:Ms,Provider:Bs,Viewport:ve(ks,`tr-layer-viewport tr-tooltip-viewport`),createHandle:Ns};function Ws({colorScheme:e,onToggle:t,uiSize:n=`lg`}){let{t:r}=b(),i=r(e===`dark`?`common.theme.dark`:`common.theme.light`),a=e===`dark`?Hr:Vr;return(0,Q.jsx)(`div`,{children:(0,Q.jsxs)(Us.Root,{children:[(0,Q.jsx)(Us.Trigger,{"data-testid":`theme-toggle`,render:(0,Q.jsx)(Wr,{appearance:`ghost`,"aria-label":i,onClick:t,uiSize:n,children:(0,Q.jsx)(a,{})})}),(0,Q.jsx)(Us.Portal,{children:(0,Q.jsxs)(Us.Positioner,{children:[(0,Q.jsx)(Us.Popup,{children:i}),(0,Q.jsx)(Us.Arrow,{})]})})]})})}function Gs({brand:e=!1,actions:t}){let{colorScheme:n,toggleColorScheme:r}=qe(),{title:i,iconUrl:a}=Gr();return(0,Q.jsxs)(`div`,{className:`flex items-center gap-tinyrack-sm px-tinyrack-lg py-tinyrack-sm`,children:[e&&(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-tinyrack-sm`,children:[a&&(0,Q.jsx)(`img`,{alt:``,className:`size-tinyrack-xl object-contain`,src:a}),i&&(0,Q.jsx)(C,{as:`h1`,truncate:!0,variant:`headingSm`,weight:`heading`,children:i})]}),(0,Q.jsxs)(`div`,{className:`ms-auto flex items-center gap-tinyrack-sm`,children:[t,(0,Q.jsx)(Ws,{colorScheme:n,onToggle:r})]})]})}export{Lr as $,ki as A,ai as B,xa as C,zn as Ct,Ri as D,Jt as Dt,Zi as E,kn as Et,Si as F,Xr as G,ii as H,li as I,Gr as J,Yr as K,si as L,Ei as M,wi as N,Mi as O,qt as Ot,xi as P,Rr as Q,ci as R,Ta as S,Bn as St,oa as T,An as Tt,$r as U,ri as V,ti as W,Ur as X,Wr as Y,zr as Z,Pa as _,Wn as _t,Ko as a,ur as at,Ea as b,Kn as bt,Lo as c,lr as ct,ka as d,Jn as dt,kr as et,Aa as f,Un as ft,Ma as g,$n as gt,Na as h,Qn as ht,ws as i,fr as it,Di as j,ji as k,$a as l,Hn as lt,Oa as m,Zn as mt,Us as n,br as nt,Uo as o,nr as ot,ja as p,qn as pt,Kr as q,Cs as r,vr as rt,Ho as s,rr as st,Gs as t,Or as tt,Ha as u,Gn as ut,Ia as v,er as vt,ya as w,In as wt,Da as x,Vn as xt,La as y,Xn as yt,oi as z};
|
|
2
|
+
//# sourceMappingURL=shell-header-bar-CdOEWmCT.js.map
|