@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,2 @@
|
|
|
1
|
+
import{X as e}from"./createLucideIcon-D-yizrWN.js";import{t}from"./alert-kRxM1xsM.js";var n=e(),r={success:`success`,error:`danger`,info:`info`,warning:`warning`};function i({type:e,icon:i,children:a,title:o,actions:s,className:c=``,"data-testid":l}){return(0,n.jsxs)(t.Root,{className:c,"data-testid":l??`alert-${e}`,variant:r[e],children:[(0,n.jsx)(i,{className:`size-tinyrack-xl`}),o&&(0,n.jsx)(t.Title,{children:o}),(0,n.jsx)(t.Description,{children:a}),s&&(0,n.jsx)(t.Actions,{children:s})]})}export{i as t};
|
|
2
|
+
//# sourceMappingURL=alert-D3aaK-_3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-D3aaK-_3.js","names":[],"sources":["../../../frontend/src/components/ui/alert.tsx"],"sourcesContent":["import { TRAlert } from '@tinyrack/ui/components/alert';\nimport type { LucideIcon } from 'lucide-react';\n\ntype AlertProps = {\n type: 'success' | 'error' | 'info' | 'warning';\n icon: LucideIcon;\n children: React.ReactNode;\n title?: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n 'data-testid'?: string;\n};\n\nconst variantMap: Record<\n AlertProps['type'],\n 'success' | 'danger' | 'info' | 'warning'\n> = {\n success: 'success',\n error: 'danger',\n info: 'info',\n warning: 'warning',\n};\n\nexport function Alert({\n type,\n icon: IconComponent,\n children,\n title,\n actions,\n className = '',\n 'data-testid': dataTestid,\n}: AlertProps) {\n return (\n <TRAlert.Root\n className={className}\n data-testid={dataTestid ?? `alert-${type}`}\n variant={variantMap[type]}\n >\n <IconComponent className=\"size-tinyrack-xl\" />\n {title && <TRAlert.Title>{title}</TRAlert.Title>}\n <TRAlert.Description>{children}</TRAlert.Description>\n {actions && <TRAlert.Actions>{actions}</TRAlert.Actions>}\n </TRAlert.Root>\n );\n}\n"],"mappings":"gGAaM,EAGF,CACF,QAAS,UACT,MAAO,SACP,KAAM,OACN,QAAS,SACX,EAEA,SAAgB,EAAM,CACpB,OACA,KAAM,EACN,WACA,QACA,UACA,YAAY,GACZ,cAAe,GACF,CACb,OACE,EAAA,EAAA,KAAA,CAAC,EAAQ,KAAT,CACa,YACX,cAAa,GAAc,SAAS,IACpC,QAAS,EAAW,YAHtB,EAKE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,UAAU,kBAAoB,CAAA,EAC5C,IAAS,EAAA,EAAA,IAAA,CAAC,EAAQ,MAAT,CAAA,SAAgB,CAAqB,CAAA,GAC/C,EAAA,EAAA,IAAA,CAAC,EAAQ,YAAT,CAAsB,UAA8B,CAAA,EACnD,IAAW,EAAA,EAAA,IAAA,CAAC,EAAQ,QAAT,CAAA,SAAkB,CAAyB,CAAA,CAC3C,GAElB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,o as t,q as n}from"./createLucideIcon-D-yizrWN.js";var r=e();function i({className:e,...t}){return(0,r.jsx)(`div`,{...t,className:n(`tr-alert-actions`,e)})}function a({className:e,ref:r,render:i,...a}){return t({defaultTagName:`p`,props:{...a,className:n(`tr-alert-description`,e)},ref:r,render:i})}function o({className:e,variant:t=`neutral`,...i}){return(0,r.jsx)(`div`,{...i,className:n(`tr-alert`,e),"data-variant":t})}function s({className:e,ref:r,render:i,...a}){return t({defaultTagName:`div`,props:{...a,className:n(`tr-alert-title`,e)},ref:r,render:i})}var c={Root:o,Title:s,Description:a,Actions:i};export{c as t};
|
|
2
|
+
//# sourceMappingURL=alert-kRxM1xsM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-kRxM1xsM.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/alert/alert-actions.js","../../../../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/alert/alert-description.js","../../../../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/alert/alert-root.js","../../../../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/alert/alert-title.js","../../../../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/alert/index.js"],"sourcesContent":["import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/alert/alert-actions.tsx\nfunction TRAlertActions({ className, ...props }) {\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-alert-actions\", className)\n\t});\n}\n//#endregion\nexport { TRAlertActions };\n\n//# sourceMappingURL=alert-actions.js.map","\"use client\";\nimport { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { useRender } from \"@base-ui/react/use-render\";\n//#region src/components/alert/alert-description.tsx\nfunction TRAlertDescription({ className, ref, render, ...props }) {\n\treturn useRender({\n\t\tdefaultTagName: \"p\",\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: mergeClassNames(\"tr-alert-description\", className)\n\t\t},\n\t\tref,\n\t\trender\n\t});\n}\n//#endregion\nexport { TRAlertDescription };\n\n//# sourceMappingURL=alert-description.js.map","import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/alert/alert-root.tsx\nfunction TRAlertRoot({ className, variant = \"neutral\", ...props }) {\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-alert\", className),\n\t\t\"data-variant\": variant\n\t});\n}\n//#endregion\nexport { TRAlertRoot };\n\n//# sourceMappingURL=alert-root.js.map","\"use client\";\nimport { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { useRender } from \"@base-ui/react/use-render\";\n//#region src/components/alert/alert-title.tsx\nfunction TRAlertTitle({ className, ref, render, ...props }) {\n\treturn useRender({\n\t\tdefaultTagName: \"div\",\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: mergeClassNames(\"tr-alert-title\", className)\n\t\t},\n\t\tref,\n\t\trender\n\t});\n}\n//#endregion\nexport { TRAlertTitle };\n\n//# sourceMappingURL=alert-title.js.map","import { TRAlertActions } from \"./alert-actions.js\";\nimport { TRAlertDescription } from \"./alert-description.js\";\nimport { TRAlertRoot } from \"./alert-root.js\";\nimport { TRAlertTitle } from \"./alert-title.js\";\n//#region src/components/alert/index.tsx\nconst TRAlert = {\n\tRoot: TRAlertRoot,\n\tTitle: TRAlertTitle,\n\tDescription: TRAlertDescription,\n\tActions: TRAlertActions\n};\n//#endregion\nexport { TRAlert, TRAlertActions, TRAlertDescription, TRAlertRoot, TRAlertTitle };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"2EAGA,SAAS,EAAe,CAAE,YAAW,GAAG,GAAS,CAChD,OAAuB,EAAA,EAAA,IAAA,CAAI,MAAO,CACjC,GAAG,EACH,UAAW,EAAgB,mBAAoB,CAAS,CACzD,CAAC,CACF,CCJA,SAAS,EAAmB,CAAE,YAAW,MAAK,SAAQ,GAAG,GAAS,CACjE,OAAO,EAAU,CAChB,eAAgB,IAChB,MAAO,CACN,GAAG,EACH,UAAW,EAAgB,uBAAwB,CAAS,CAC7D,EACA,MACA,QACD,CAAC,CACF,CCXA,SAAS,EAAY,CAAE,YAAW,UAAU,UAAW,GAAG,GAAS,CAClE,OAAuB,EAAA,EAAA,IAAA,CAAI,MAAO,CACjC,GAAG,EACH,UAAW,EAAgB,WAAY,CAAS,EAChD,eAAgB,CACjB,CAAC,CACF,CCLA,SAAS,EAAa,CAAE,YAAW,MAAK,SAAQ,GAAG,GAAS,CAC3D,OAAO,EAAU,CAChB,eAAgB,MAChB,MAAO,CACN,GAAG,EACH,UAAW,EAAgB,iBAAkB,CAAS,CACvD,EACA,MACA,QACD,CAAC,CACF,CCTA,IAAM,EAAU,CACf,KAAM,EACN,MAAO,EACP,YAAa,EACb,QAAS,CACV"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,n as t,t as n}from"./createLucideIcon-D-yizrWN.js";import{U as r}from"./index-lTEyHSus.js";var i=n(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),a=e();function o({render:e,icon:n,leading:o,label:s,description:c,trailing:l}){return(0,a.jsxs)(`div`,{className:`flex items-center gap-tinyrack-xs`,children:[(0,a.jsxs)(r,{appearance:`outline`,className:`h-auto min-w-0 flex-1 justify-start gap-tinyrack-md px-tinyrack-lg py-tinyrack-md text-start transition-colors duration-tinyrack-fast ease-tinyrack-standard`,intent:`neutral`,render:e,uiSize:`lg`,children:[o??(n?(0,a.jsx)(n,{"aria-hidden":!0,className:`size-tinyrack-xl shrink-0`}):null),(0,a.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col whitespace-normal`,children:[(0,a.jsx)(t,{variant:`body`,weight:`medium`,children:s}),c&&(0,a.jsx)(t,{color:`muted`,variant:`caption`,children:c})]}),(0,a.jsx)(i,{"aria-hidden":!0,className:`size-tinyrack-lg shrink-0 text-tinyrack-text-muted`})]}),l]})}export{o as t};
|
|
2
|
+
//# sourceMappingURL=auth-choice-row-h4heOMHs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-choice-row-h4heOMHs.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/chevron-right.mjs","../../../frontend/src/components/auth/auth-choice-row.tsx"],"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 = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.mjs.map\n","import { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { ChevronRightIcon, type LucideIcon } from 'lucide-react';\nimport type { ReactElement, ReactNode } from 'react';\n\ntype AuthChoiceRowProps = {\n /**\n * The element the row navigates with, styled by `TRLinkButton`. These stay\n * real anchors with an `href` — the e2e suite selects the second-factor\n * choices by href, and they must survive a middle click.\n */\n render: ReactElement;\n icon?: LucideIcon;\n /** Replaces `icon` when the leading slot needs richer content (an avatar). */\n leading?: ReactNode;\n label: string;\n description?: string;\n /** Trailing slot outside the row's control, e.g. a remove button. */\n trailing?: ReactNode;\n};\n\n/**\n * A full-width, tappable row for picking one of several options.\n *\n * Used by the second-factor choosers and the account switcher, which each\n * hand-rolled a different version of the same thing — one as a stretched\n * button with a gap, another as a bare `<button>` inside a bordered div that\n * had no focus ring of its own.\n *\n * The row itself is one control, so it is a single tab stop and its label and\n * description are both part of its accessible name.\n */\nexport function AuthChoiceRow({\n render,\n icon: Icon,\n leading,\n label,\n description,\n trailing,\n}: AuthChoiceRowProps) {\n return (\n /* tinyrack-check-ignore-next-line components/no-native-text -- Structural row; text is rendered by TRText and trailing is a control slot. */\n <div className=\"flex items-center gap-tinyrack-xs\">\n <TRLinkButton\n appearance=\"outline\"\n className=\"h-auto min-w-0 flex-1 justify-start gap-tinyrack-md px-tinyrack-lg py-tinyrack-md text-start transition-colors duration-tinyrack-fast ease-tinyrack-standard\"\n intent=\"neutral\"\n render={render}\n uiSize=\"lg\"\n >\n {leading ??\n (Icon ? (\n <Icon aria-hidden className=\"size-tinyrack-xl shrink-0\" />\n ) : null)}\n {/*\n Wraps rather than truncates. These rows carry the only description of\n what each option does, and at phone width even the English strings\n exceed the available space — silently clipping them would hide the\n difference between the choices.\n */}\n {/* tinyrack-check-ignore-next-line components/no-native-text -- Structural stack containing only TRText parts. */}\n <span className=\"flex min-w-0 flex-1 flex-col whitespace-normal\">\n <TRText variant=\"body\" weight=\"medium\">\n {label}\n </TRText>\n {description && (\n <TRText color=\"muted\" variant=\"caption\">\n {description}\n </TRText>\n )}\n </span>\n <ChevronRightIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-text-muted\"\n />\n </TRLinkButton>\n {trailing}\n </div>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"yGAUA,IAAM,EAAe,EAAiB,gBAAiB,CADnC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CACX,CAAU,QCsBjE,SAAgB,EAAc,CAC5B,SACA,KAAM,EACN,UACA,QACA,cACA,YACqB,CACrB,OAEE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,6CAAf,EACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,WAAW,UACX,UAAU,+JACV,OAAO,UACC,SACR,OAAO,cALT,CAOG,IACE,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,cAAA,GAAY,UAAU,2BAA6B,CAAA,EACvD,OAQN,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,0DAAhB,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,QAAQ,OAAO,OAAO,kBAC3B,CACK,CAAA,EACP,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,mBAC3B,CACK,CAAA,CAEN,KACN,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,oDACX,CAAA,CACW,IACb,CACE,GAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,Z as t,et as n,i as r,t as i}from"./createLucideIcon-D-yizrWN.js";import{t as a}from"./field-CsrUbl__.js";import{t as o}from"./input-QvBxPgy5.js";var s=i(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),c=i(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),l=n(t(),1),u=e();function d({icon:e,type:t=`text`,label:n,placeholder:i,hint:d,labelAction:f,autoComplete:p,error:m,errorTestId:h=`field-error`,hideLabel:g=!1,className:_=``,ref:v,...y}){let{t:b}=r(),x=(0,l.useId)(),[S,C]=(0,l.useState)(!1),w=y.id??x,T=d?`${w}-hint`:void 0,E=m?`${w}-error`:void 0,D=E??T,O=t===`password`,k=O&&S?`text`:t;return(0,u.jsxs)(a.Root,{className:_,children:[g?(0,u.jsx)(a.Label,{className:`sr-only`,htmlFor:w,children:n}):(0,u.jsx)(u.Fragment,{children:(0,u.jsxs)(`div`,{className:`flex items-baseline justify-between gap-tinyrack-sm`,children:[(0,u.jsx)(a.Label,{htmlFor:w,children:n}),f]})}),(0,u.jsxs)(o.Group,{"data-invalid":m?``:void 0,"data-testid":m?`input-error-wrapper`:void 0,uiSize:`lg`,children:[e&&(0,u.jsx)(o.Adornment,{children:(0,u.jsx)(e,{"aria-hidden":!0,className:`size-tinyrack-xl opacity-tinyrack-hover`})}),(0,u.jsx)(o,{"aria-describedby":D,"aria-invalid":m?!0:void 0,autoComplete:p,"data-invalid":m?``:void 0,id:w,placeholder:i,ref:v,type:k,uiSize:`lg`,...y}),O&&(0,u.jsx)(o.Action,{"aria-label":b(S?`common.password.hide`:`common.password.show`),onClick:()=>C(e=>!e),children:S?(0,u.jsx)(s,{"aria-hidden":!0,className:`size-tinyrack-lg`}):(0,u.jsx)(c,{"aria-hidden":!0,className:`size-tinyrack-lg`})})]}),d&&!m&&(0,u.jsx)(a.Description,{id:T,children:d}),(0,u.jsx)(a.Error,{"data-testid":h,id:E,match:!!m,children:m?.message})]})}export{d as t};
|
|
2
|
+
//# sourceMappingURL=auth-field-BpJ4AHtU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-field-
|
|
1
|
+
{"version":3,"file":"auth-field-BpJ4AHtU.js","names":["__iconNode"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/eye-off.mjs","../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/eye.mjs","../../../frontend/src/components/auth/auth-field.tsx"],"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 [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode);\n\nexport { __iconNode, EyeOff as default };\n//# sourceMappingURL=eye-off.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 [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Eye = createLucideIcon(\"eye\", __iconNode);\n\nexport { __iconNode, Eye as default };\n//# sourceMappingURL=eye.mjs.map\n","import { TRField } from '@tinyrack/ui/components/field';\nimport { TRInput } from '@tinyrack/ui/components/input';\nimport { EyeIcon, EyeOffIcon, type LucideIcon } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { FieldError } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\n\ntype AuthFieldProps = {\n /** Leading adornment glyph. */\n icon?: LucideIcon;\n type?: 'email' | 'password' | 'text';\n label: string;\n placeholder?: string;\n hint?: string;\n /** Rendered on the label row, e.g. a \"Forgot password?\" link. */\n labelAction?: React.ReactNode;\n autoComplete?: string;\n error?: FieldError;\n /**\n * Overrides the error node's test id. The auth screens share the default;\n * the profile modals each have their own, which e2e selects on.\n */\n errorTestId?: string;\n /**\n * Renders the label to assistive technology only. For fields whose purpose\n * is obvious from context — an inline rename inside a list row — where a\n * visible label would be noise but a missing one leaves a nameless textbox.\n */\n hideLabel?: boolean;\n className?: string;\n ref?: React.Ref<HTMLInputElement>;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'className'>;\n\n/**\n * The auth surface's text input.\n *\n * Composes `TRInput.Group` so the icon, field, and reveal toggle read as one\n * control.\n *\n * Password fields get a reveal toggle. It is a real button in the tab order\n * with a state-dependent accessible name, and it never changes the field's\n * `name` or `autocomplete`, so password managers keep working.\n */\nexport function AuthField({\n icon: Icon,\n type = 'text',\n label,\n placeholder,\n hint,\n labelAction,\n autoComplete,\n error,\n errorTestId = 'field-error',\n hideLabel = false,\n className = '',\n ref,\n ...props\n}: AuthFieldProps) {\n const { t } = useTranslation();\n const generatedId = useId();\n const [revealed, setRevealed] = useState(false);\n\n const inputId = props.id ?? generatedId;\n const hintId = hint ? `${inputId}-hint` : undefined;\n const errorId = error ? `${inputId}-error` : undefined;\n const describedBy = errorId ?? hintId;\n\n const canReveal = type === 'password';\n const resolvedType = canReveal && revealed ? 'text' : type;\n\n return (\n <TRField.Root className={className}>\n {hideLabel ? (\n <TRField.Label className=\"sr-only\" htmlFor={inputId}>\n {label}\n </TRField.Label>\n ) : (\n <>\n {/* tinyrack-check-ignore-next-line components/no-native-text -- Structural row combining the DS field label with an optional action. */}\n <div className=\"flex items-baseline justify-between gap-tinyrack-sm\">\n <TRField.Label htmlFor={inputId}>{label}</TRField.Label>\n {labelAction}\n </div>\n </>\n )}\n <TRInput.Group\n data-invalid={error ? '' : undefined}\n data-testid={error ? 'input-error-wrapper' : undefined}\n uiSize=\"lg\"\n >\n {Icon && (\n <TRInput.Adornment>\n <Icon\n aria-hidden\n className=\"size-tinyrack-xl opacity-tinyrack-hover\"\n />\n </TRInput.Adornment>\n )}\n <TRInput\n aria-describedby={describedBy}\n aria-invalid={error ? true : undefined}\n autoComplete={autoComplete}\n data-invalid={error ? '' : undefined}\n id={inputId}\n placeholder={placeholder}\n ref={ref}\n type={resolvedType}\n uiSize=\"lg\"\n {...props}\n />\n {canReveal && (\n <TRInput.Action\n aria-label={\n revealed ? t('common.password.hide') : t('common.password.show')\n }\n onClick={() => setRevealed((value) => !value)}\n >\n {revealed ? (\n <EyeOffIcon aria-hidden className=\"size-tinyrack-lg\" />\n ) : (\n <EyeIcon aria-hidden className=\"size-tinyrack-lg\" />\n )}\n </TRInput.Action>\n )}\n </TRInput.Group>\n {hint && !error && (\n <TRField.Description id={hintId}>{hint}</TRField.Description>\n )}\n <TRField.Error\n data-testid={errorTestId}\n id={errorId}\n match={Boolean(error)}\n >\n {error?.message}\n </TRField.Error>\n </TRField.Root>\n );\n}\n"],"x_google_ignoreList":[0,1],"mappings":"gKA2BA,IAAM,EAAS,EAAiB,UAAWA,CAjBzC,CACE,OACA,CACE,EAAG,iGACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,uCAAwC,IAAK,QAAS,CAAC,EACrE,CACE,OACA,CACE,EAAG,+FACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAS,CAAC,CAEFA,CAAU,ECR/C,EAAM,EAAiB,MAAO,CATlC,CACE,OACA,CACE,EAAG,wGACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CAEtB,CAAU,mBCwB9C,SAAgB,EAAU,CACxB,KAAM,EACN,OAAO,OACP,QACA,cACA,OACA,cACA,eACA,QACA,cAAc,cACd,YAAY,GACZ,YAAY,GACZ,MACA,GAAG,GACc,CACjB,GAAM,CAAE,KAAM,EAAe,EACvB,GAAA,EAAA,EAAA,MAAA,CAAoB,EACpB,CAAC,EAAU,IAAA,EAAA,EAAA,SAAA,CAAwB,EAAK,EAExC,EAAU,EAAM,IAAM,EACtB,EAAS,EAAO,GAAG,EAAQ,OAAS,IAAA,GACpC,EAAU,EAAQ,GAAG,EAAQ,QAAU,IAAA,GACvC,EAAc,GAAW,EAEzB,EAAY,IAAS,WACrB,EAAe,GAAa,EAAW,OAAS,EAEtD,OACE,EAAA,EAAA,KAAA,CAAC,EAAQ,KAAT,CAAyB,qBAAzB,CACG,GACC,EAAA,EAAA,IAAA,CAAC,EAAQ,MAAT,CAAe,UAAU,UAAU,QAAS,WACzC,CACY,CAAA,GAEf,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAA,UAEE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,+DAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAQ,MAAT,CAAe,QAAS,WAAU,CAAqB,CAAA,EACtD,CACE,GACL,CAAA,GAEJ,EAAA,EAAA,KAAA,CAAC,EAAQ,MAAT,CACE,eAAc,EAAQ,GAAK,IAAA,GAC3B,cAAa,EAAQ,sBAAwB,IAAA,GAC7C,OAAO,cAHT,CAKG,IACC,EAAA,EAAA,IAAA,CAAC,EAAQ,UAAT,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,yCACX,CAAA,CACgB,CAAA,GAErB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,mBAAkB,EAClB,eAAc,EAAQ,GAAO,IAAA,GACf,eACd,eAAc,EAAQ,GAAK,IAAA,GAC3B,GAAI,EACS,cACR,MACL,KAAM,EACN,OAAO,KACP,GAAI,CACL,CAAA,EACA,IACC,EAAA,EAAA,IAAA,CAAC,EAAQ,OAAT,CACE,aACa,EAAX,EAAa,uBAA4B,sBAAsB,EAEjE,YAAe,EAAa,GAAU,CAAC,CAAK,WAE3C,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAY,cAAA,GAAY,UAAU,kBAAoB,CAAA,GAEtD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,cAAA,GAAY,UAAU,kBAAoB,CAAA,CAEvC,CAAA,CAEL,IACd,GAAQ,CAAC,IACR,EAAA,EAAA,IAAA,CAAC,EAAQ,YAAT,CAAqB,GAAI,WAAS,CAA0B,CAAA,GAE9D,EAAA,EAAA,IAAA,CAAC,EAAQ,MAAT,CACE,cAAa,EACb,GAAI,EACJ,MAAO,EAAQ,WAEd,GAAO,OACK,CAAA,CACH,GAElB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,n as t}from"./createLucideIcon-D-yizrWN.js";import{t as n}from"./link-BHmn75Zo.js";var r=e();function i({children:e}){return(0,r.jsx)(`div`,{className:`flex flex-col items-center gap-tinyrack-sm text-center`,children:e})}function a({text:e,link:i}){return(0,r.jsxs)(t,{color:`muted`,variant:`caption`,children:[e?`${e} `:null,(0,r.jsx)(n,{className:`font-tinyrack-medium`,render:i})]})}export{a as n,i as t};
|
|
2
|
+
//# sourceMappingURL=auth-footer-Du6S-oDG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-footer-Du6S-oDG.js","names":[],"sources":["../../../frontend/src/components/auth/auth-footer.tsx"],"sourcesContent":["import { TRLink } from '@tinyrack/ui/components/link';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport type { ReactElement, ReactNode } from 'react';\n\ntype AuthFooterProps = {\n children: ReactNode;\n};\n\n/**\n * The block of secondary navigation at the bottom of an auth screen.\n *\n * Several screens need more than one of these (\"no account? sign up\", \"other\n * sign in options\", \"back to login\"), so the footer owns the row layout and\n * each link is a child. The old `FooterLink` baked one prompt-and-link pair\n * plus its own margin into every call site, which is why six of them passed\n * an empty prompt just to get a bare link.\n */\nexport function AuthFooter({ children }: AuthFooterProps) {\n return (\n /* tinyrack-check-ignore-next-line components/no-native-text -- Structural action stack; callers provide DS text and link components. */\n <div className=\"flex flex-col items-center gap-tinyrack-sm text-center\">\n {children}\n </div>\n );\n}\n\ntype AuthFooterLinkProps = {\n /** Optional lead-in, e.g. \"Don't have an account?\". */\n text?: string;\n /**\n * The link element itself, styled by `TRLink`. Passing the element rather\n * than an `as` component plus loose props keeps the router's `to`/`search`\n * types checked at the call site.\n */\n link: ReactElement;\n};\n\nexport function AuthFooterLink({ text, link }: AuthFooterLinkProps) {\n return (\n <TRText color=\"muted\" variant=\"caption\">\n {text ? `${text} ` : null}\n <TRLink className=\"font-tinyrack-medium\" render={link} />\n </TRText>\n );\n}\n"],"mappings":"2GAiBA,SAAgB,EAAW,CAAE,YAA6B,CACxD,OAEE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,yDACZ,UACE,CAAA,CAET,CAaA,SAAgB,EAAe,CAAE,OAAM,QAA6B,CAClE,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,mBAA9B,CACG,EAAO,GAAG,EAAK,GAAK,MACrB,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,UAAU,uBAAuB,OAAQ,CAAO,CAAA,CAClD,GAEZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,n as t}from"./createLucideIcon-D-yizrWN.js";import{J as n,o as r,q as i,t as a}from"./shell-header-bar-CdOEWmCT.js";var o=e();function s({showSubtitle:e=!1}){let{title:r,subtitle:i,iconUrl:a,logoUrl:s}=n();return(0,o.jsxs)(`div`,{className:`flex min-w-0 flex-col items-start gap-tinyrack-sm`,children:[s?(0,o.jsx)(t,{"aria-label":r??`Issuary`,as:`h1`,className:`w-full`,variant:`headingLg`,children:(0,o.jsx)(`img`,{alt:``,className:`h-tinyrack-3xl w-full object-contain object-center`,src:s})}):(0,o.jsxs)(`div`,{className:`flex w-full min-w-0 items-center justify-center gap-tinyrack-sm`,children:[(0,o.jsx)(`img`,{alt:``,className:`size-tinyrack-2xl shrink-0 object-contain`,src:a}),r&&(0,o.jsx)(t,{as:`h1`,truncate:!0,variant:`headingLg`,weight:`heading`,children:r})]}),e&&i&&(0,o.jsx)(t,{align:`center`,as:`p`,className:`w-full text-tinyrack-xl`,color:`muted`,variant:`body`,children:i})]})}var c={form:`max-w-tinyrack-measure-xl`,wide:`max-w-tinyrack-overlay-width-md`};function l({children:e,width:t=`form`,showBrandSubtitle:n=!1}){return(0,o.jsxs)(`div`,{className:`flex min-h-dvh flex-col bg-tinyrack-surface`,children:[(0,o.jsx)(i,{}),(0,o.jsx)(a,{}),(0,o.jsx)(`main`,{className:`flex flex-1 px-tinyrack-lg py-tinyrack-xl`,children:(0,o.jsxs)(`div`,{className:`auth-enter m-auto flex w-full flex-col gap-tinyrack-xl ${c[t]}`,children:[(0,o.jsx)(s,{showSubtitle:n}),e]})}),(0,o.jsx)(r,{})]})}export{l as t};
|
|
2
|
+
//# sourceMappingURL=auth-layout-BdRRr0vT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-layout-BdRRr0vT.js","names":[],"sources":["../../../frontend/src/features/layout/auth-brand-header.tsx","../../../frontend/src/features/layout/auth-layout.tsx"],"sourcesContent":["import { TRText } from '@tinyrack/ui/components/text';\nimport { useBranding } from '#frontend/features/layout/use-branding.ts';\n\ntype AuthBrandHeaderProps = {\n showSubtitle?: boolean;\n};\n\n/**\n * The deployment identity shown at the start of the centred auth column.\n *\n * The product name remains the page's `h1`. A custom logo visually replaces\n * both the app icon and title while retaining the configured title as its\n * accessible name.\n */\nexport function AuthBrandHeader({\n showSubtitle = false,\n}: AuthBrandHeaderProps) {\n const { title, subtitle, iconUrl, logoUrl } = useBranding();\n\n return (\n // tinyrack-check-ignore-next-line components/no-native-text -- Structural brand stack; title and subtitle use TRText and images are approved brand assets.\n <div className=\"flex min-w-0 flex-col items-start gap-tinyrack-sm\">\n {logoUrl ? (\n <TRText\n aria-label={title ?? 'Issuary'}\n as=\"h1\"\n className=\"w-full\"\n variant=\"headingLg\"\n >\n <img\n alt=\"\"\n className=\"h-tinyrack-3xl w-full object-contain object-center\"\n src={logoUrl}\n />\n </TRText>\n ) : (\n /* tinyrack-check-ignore-next-line components/no-native-text -- Structural brand row; visible title uses TRText. */\n <div className=\"flex w-full min-w-0 items-center justify-center gap-tinyrack-sm\">\n <img\n alt=\"\"\n className=\"size-tinyrack-2xl shrink-0 object-contain\"\n src={iconUrl}\n />\n {title && (\n <TRText as=\"h1\" truncate variant=\"headingLg\" weight=\"heading\">\n {title}\n </TRText>\n )}\n </div>\n )}\n {showSubtitle && subtitle && (\n <TRText\n align=\"center\"\n as=\"p\"\n className=\"w-full text-tinyrack-xl\"\n color=\"muted\"\n variant=\"body\"\n >\n {subtitle}\n </TRText>\n )}\n </div>\n );\n}\n","import { Toaster } from '#frontend/components/ui/toaster.tsx';\nimport { AuthBrandHeader } from '#frontend/features/layout/auth-brand-header.tsx';\nimport { ShellFooter } from '#frontend/features/layout/shell-footer.tsx';\nimport { ShellHeaderBar } from '#frontend/features/layout/shell-header-bar.tsx';\n\ntype AuthLayoutProps = {\n children: React.ReactNode;\n /**\n * `form` (default) fits a single column of fields. `wide` is for screens\n * that present a list to review before deciding — consent scopes, terms,\n * account selection, recovery codes.\n */\n width?: 'form' | 'wide';\n showBrandSubtitle?: boolean;\n};\n\nconst widthClasses: Record<NonNullable<AuthLayoutProps['width']>, string> = {\n form: 'max-w-tinyrack-measure-xl',\n wide: 'max-w-tinyrack-overlay-width-md',\n};\n\n/**\n * The shell every auth screen sits in.\n *\n * A single, flat column keeps the deployment identity and the current task on\n * one reading line at every breakpoint. The column uses auto block margins so\n * short tasks sit centrally while long consent and setup flows keep their\n * viewport padding and scroll instead of overflowing above the canvas.\n */\nexport function AuthLayout({\n children,\n width = 'form',\n showBrandSubtitle = false,\n}: AuthLayoutProps) {\n return (\n // tinyrack-check-ignore-next-line components/no-native-text -- Structural authentication shell; page content owns descendant typography.\n <div className=\"flex min-h-dvh flex-col bg-tinyrack-surface\">\n <Toaster />\n <ShellHeaderBar />\n <main className=\"flex flex-1 px-tinyrack-lg py-tinyrack-xl\">\n {/*\n The stack owns vertical rhythm so screens compose as a flat list of\n brand, header, alerts, form, and footer blocks. `m-auto` centres both\n axes only when space is available and collapses safely for tall flows.\n */}\n {/* tinyrack-check-ignore-next-line components/no-native-text -- Structural auth stack; visible descendants use design-system typography. */}\n <div\n className={`auth-enter m-auto flex w-full flex-col gap-tinyrack-xl ${widthClasses[width]}`}\n >\n <AuthBrandHeader showSubtitle={showBrandSubtitle} />\n {children}\n </div>\n </main>\n <ShellFooter />\n </div>\n );\n}\n"],"mappings":"4IAcA,SAAgB,EAAgB,CAC9B,eAAe,IACQ,CACvB,GAAM,CAAE,QAAO,WAAU,UAAS,WAAY,EAAY,EAE1D,OAEE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,6DAAf,CACG,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,aAAY,GAAS,UACrB,GAAG,KACH,UAAU,SACV,QAAQ,sBAER,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,IAAI,GACJ,UAAU,qDACV,IAAK,CACN,CAAA,CACK,CAAA,GAGR,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,2EAAf,EACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,IAAI,GACJ,UAAU,4CACV,IAAK,CACN,CAAA,EACA,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,GAAG,KAAK,SAAA,GAAS,QAAQ,YAAY,OAAO,mBACjD,CACK,CAAA,CAEP,IAEN,GAAgB,IACf,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAM,SACN,GAAG,IACH,UAAU,0BACV,MAAM,QACN,QAAQ,gBAEP,CACK,CAAA,CAEP,GAET,CC/CA,IAAM,EAAsE,CAC1E,KAAM,4BACN,KAAM,iCACR,EAUA,SAAgB,EAAW,CACzB,WACA,QAAQ,OACR,oBAAoB,IACF,CAClB,OAEE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,uDAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAU,CAAA,GACV,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,CAAA,GACjB,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,sDAOd,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,UAAW,0DAA0D,EAAa,cADpF,EAGE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,aAAc,CAAoB,CAAA,EAClD,CACE,GACD,CAAA,GACN,EAAA,EAAA,IAAA,CAAC,EAAD,CAAc,CAAA,CACX,GAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,n as t}from"./createLucideIcon-D-yizrWN.js";import{J as n}from"./shell-header-bar-CdOEWmCT.js";var r=e();function i({title:e,subtitle:i,eyebrow:a,align:o=`start`}){let{title:s,logoUrl:c}=n();return(0,r.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs ${o===`center`?`items-center text-center`:`items-start text-start`}`,children:[a,(0,r.jsx)(t,{align:o,as:s||c?`h2`:`h1`,variant:`headingLg`,children:e}),i&&(0,r.jsx)(t,{align:o,as:`p`,color:`muted`,variant:`body`,children:i})]})}export{i as t};
|
|
2
|
+
//# sourceMappingURL=auth-page-header-ChaCNNrn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-page-header-
|
|
1
|
+
{"version":3,"file":"auth-page-header-ChaCNNrn.js","names":[],"sources":["../../../frontend/src/components/auth/auth-page-header.tsx"],"sourcesContent":["import { TRText } from '@tinyrack/ui/components/text';\nimport { useBranding } from '#frontend/features/layout/use-branding.ts';\n\ntype AuthPageHeaderProps = {\n title: string;\n subtitle?: string;\n /** Small label above the title — wizard progress, flow context. */\n eyebrow?: React.ReactNode;\n /** Centre for terminal states (success, error) where there is no form to scan. */\n align?: 'start' | 'center';\n};\n\n/**\n * Titles the current screen.\n *\n * Heading level follows the brand header: when the deployment has configured\n * a product name that name is the page's `h1`, so this is an `h2` beneath it.\n * With no branding there is no other heading, so this becomes the `h1` rather\n * than leaving the page starting at level 2.\n *\n * Left-aligned by default. Centred auth copy reads as a consumer sign-up;\n * aligning it with the fields below reads as a console and gives the eye one\n * vertical line to follow into the form.\n *\n * Carries no margin — spacing is the caller's, so it composes into a stack.\n */\nexport function AuthPageHeader({\n title,\n subtitle,\n eyebrow,\n align = 'start',\n}: AuthPageHeaderProps) {\n const { title: brandTitle, logoUrl } = useBranding();\n const headingTag = brandTitle || logoUrl ? 'h2' : 'h1';\n\n return (\n /* tinyrack-check-ignore-next-line components/no-native-text -- Structural header stack; eyebrow is a caller-owned DS node and copy uses TRText. */\n <div\n className={`flex flex-col gap-tinyrack-xs ${align === 'center' ? 'items-center text-center' : 'items-start text-start'}`}\n >\n {eyebrow}\n <TRText align={align} as={headingTag} variant=\"headingLg\">\n {title}\n </TRText>\n {subtitle && (\n <TRText align={align} as=\"p\" color=\"muted\" variant=\"body\">\n {subtitle}\n </TRText>\n )}\n </div>\n );\n}\n"],"mappings":"uHA0BA,SAAgB,EAAe,CAC7B,QACA,WACA,UACA,QAAQ,SACc,CACtB,GAAM,CAAE,MAAO,EAAY,WAAY,EAAY,EAGnD,OAEE,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,UAAW,iCAAiC,IAAU,SAAW,2BAA6B,oCADhG,CAGG,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,QAAO,GARP,GAAc,EAAU,KAAO,KAQR,QAAQ,qBAC3C,CACK,CAAA,EACP,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,QAAO,GAAG,IAAI,MAAM,QAAQ,QAAQ,gBAChD,CACK,CAAA,CAEP,GAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,i as t,n,t as r}from"./createLucideIcon-D-yizrWN.js";import{Dt as i}from"./shell-header-bar-CdOEWmCT.js";import{t as a}from"./shield-check-DpYF8yeI.js";import{G as o,R as s,j as c}from"./index-lTEyHSus.js";import{t as l}from"./badge-B8D0Q2qq.js";var u=r(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),d=e();function f({search:e,className:t=``}){return s(e)?(0,d.jsx)(p,{className:t,search:e}):null}function p({search:e,className:r}){let{t:s}=t(),{data:f}=i(c(e));return(0,d.jsx)(o.Root,{"aria-label":s(`authorizationContext.label`),className:r,"data-testid":`authorization-context`,padding:`lg`,render:(0,d.jsx)(`section`,{}),variant:`outlined`,children:(0,d.jsxs)(o.Content,{className:`flex flex-col gap-tinyrack-sm`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-tinyrack-sm`,children:[(0,d.jsx)(a,{"aria-hidden":!0,className:`size-tinyrack-lg shrink-0 text-tinyrack-info-foreground`}),(0,d.jsx)(n,{variant:`body`,weight:`medium`,children:s(`authorizationContext.title`,{app:f.client.name})})]}),(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-tinyrack-xs`,children:[(0,d.jsx)(u,{"aria-hidden":!0,className:`size-tinyrack-lg shrink-0 text-tinyrack-text-muted`}),(0,d.jsx)(n,{color:`muted`,truncate:!0,variant:`caption`,children:s(`authorizationContext.redirect`,{origin:f.redirect_origin})})]}),(0,d.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs`,children:[(0,d.jsx)(n,{color:`muted`,variant:`caption`,weight:`medium`,children:s(`authorizationContext.permissions`)}),f.scopes.length>0?(0,d.jsx)(`ul`,{className:`flex flex-wrap gap-tinyrack-xs`,children:f.scopes.map(e=>(0,d.jsx)(`li`,{children:(0,d.jsx)(l,{uiSize:`md`,variant:`neutral`,children:s(`consent.scope.${e.name}`,{defaultValue:e.description})})},e.name))}):(0,d.jsx)(n,{color:`muted`,variant:`caption`,children:s(`authorizationContext.noScopes`)})]})]})})}export{f as t};
|
|
2
|
+
//# sourceMappingURL=authorization-context-banner-zVxGX5e8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-context-banner-
|
|
1
|
+
{"version":3,"file":"authorization-context-banner-zVxGX5e8.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/globe.mjs","../../../frontend/src/components/auth/authorization-context-banner.tsx"],"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: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\", key: \"13o1zl\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }]\n];\nconst Globe = createLucideIcon(\"globe\", __iconNode);\n\nexport { __iconNode, Globe as default };\n//# sourceMappingURL=globe.mjs.map\n","import { useSuspenseQuery } from '@tanstack/react-query';\nimport { TRBadge } from '@tinyrack/ui/components/badge';\nimport { TRCard } from '@tinyrack/ui/components/card';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { GlobeIcon, ShieldCheckIcon } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport {\n type AuthorizationContextSearch,\n hasAuthorizationContext,\n type OAuthSearch,\n} from '#frontend/libs/oauth-search.ts';\nimport { getAuthorizationContextQueryOptions } from '#frontend/queries/authorization-context.ts';\n\ntype AuthorizationContextBannerProps = {\n search: OAuthSearch;\n className?: string;\n};\n\nexport function AuthorizationContextBanner({\n search,\n className = '',\n}: AuthorizationContextBannerProps) {\n if (!hasAuthorizationContext(search)) {\n return null;\n }\n\n return <AuthorizationContextContent className={className} search={search} />;\n}\n\nfunction AuthorizationContextContent({\n search,\n className,\n}: {\n search: AuthorizationContextSearch;\n className: string;\n}) {\n const { t } = useTranslation();\n const { data } = useSuspenseQuery(\n getAuthorizationContextQueryOptions(search),\n );\n\n return (\n <TRCard.Root\n aria-label={t('authorizationContext.label')}\n className={className}\n data-testid=\"authorization-context\"\n padding=\"lg\"\n render={<section />}\n variant=\"outlined\"\n >\n <TRCard.Content className=\"flex flex-col gap-tinyrack-sm\">\n <div className=\"flex items-center gap-tinyrack-sm\">\n <ShieldCheckIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-info-foreground\"\n />\n <TRText variant=\"body\" weight=\"medium\">\n {t('authorizationContext.title', { app: data.client.name })}\n </TRText>\n </div>\n\n <div className=\"flex min-w-0 items-center gap-tinyrack-xs\">\n <GlobeIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-text-muted\"\n />\n <TRText color=\"muted\" truncate variant=\"caption\">\n {t('authorizationContext.redirect', {\n origin: data.redirect_origin,\n })}\n </TRText>\n </div>\n\n {/* tinyrack-check-ignore-next-line components/no-native-text -- Structural permissions group containing DS text and badges. */}\n <div className=\"flex flex-col gap-tinyrack-xs\">\n <TRText color=\"muted\" variant=\"caption\" weight=\"medium\">\n {t('authorizationContext.permissions')}\n </TRText>\n {data.scopes.length > 0 ? (\n <ul className=\"flex flex-wrap gap-tinyrack-xs\">\n {data.scopes.map((scope) => (\n <li key={scope.name}>\n <TRBadge uiSize=\"md\" variant=\"neutral\">\n {t(`consent.scope.${scope.name}`, {\n defaultValue: scope.description,\n })}\n </TRBadge>\n </li>\n ))}\n </ul>\n ) : (\n <TRText color=\"muted\" variant=\"caption\">\n {t('authorizationContext.noScopes')}\n </TRText>\n )}\n </div>\n </TRCard.Content>\n </TRCard.Root>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"oQAcA,IAAM,EAAQ,EAAiB,QAAS,CAJtC,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,kDAAmD,IAAK,QAAS,CAAC,EAChF,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAEH,CAAU,QCIlD,SAAgB,EAA2B,CACzC,SACA,YAAY,IACsB,CAKlC,OAJK,EAAwB,CAAM,GAI5B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAwC,YAAmB,QAAS,CAAA,EAHlE,IAIX,CAEA,SAAS,EAA4B,CACnC,SACA,aAIC,CACD,GAAM,CAAE,KAAM,EAAe,EACvB,CAAE,QAAS,EACf,EAAoC,CAAM,CAC5C,EAEA,OACE,EAAA,EAAA,IAAA,CAAC,EAAO,KAAR,CACE,aAAY,EAAE,4BAA4B,EAC/B,YACX,cAAY,wBACZ,QAAQ,KACR,QAAQ,EAAA,EAAA,IAAA,CAAC,UAAD,CAAU,CAAA,EAClB,QAAQ,qBAER,EAAA,EAAA,KAAA,CAAC,EAAO,QAAR,CAAgB,UAAU,yCAA1B,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,6CAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,yDACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,QAAQ,OAAO,OAAO,kBAC3B,EAAE,6BAA8B,CAAE,IAAK,EAAK,OAAO,IAAK,CAAC,CACpD,CAAA,CACL,KAEL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,qDAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,oDACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,SAAA,GAAS,QAAQ,mBACpC,EAAE,gCAAiC,CAClC,OAAQ,EAAK,eACf,CAAC,CACK,CAAA,CACL,KAGL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,yCAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,UAAU,OAAO,kBAC5C,EAAE,kCAAkC,CAC/B,CAAA,EACP,EAAK,OAAO,OAAS,GACpB,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,0CACX,EAAK,OAAO,IAAK,IAChB,EAAA,EAAA,IAAA,CAAC,KAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,OAAO,KAAK,QAAQ,mBAC1B,EAAE,iBAAiB,EAAM,OAAQ,CAChC,aAAc,EAAM,WACtB,CAAC,CACM,CAAA,CACP,EANK,EAAM,IAMX,CACL,CACC,CAAA,GAEJ,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,mBAC3B,EAAE,+BAA+B,CAC5B,CAAA,CAEP,GACS,GACL,CAAA,CAEjB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{C as e,J as t,X as n,Z as r,c as i,et as a,f as o,w as s,x as c}from"./createLucideIcon-D-yizrWN.js";import{On as l,St as u,vn as d,vt as f}from"./config-C18-l7z7.js";import{xt as p}from"./shell-header-bar-CdOEWmCT.js";var m=a(r(),1),h=m.createContext(void 0);function g(){let e=m.useContext(h);if(e===void 0)throw Error(c(13));return e}var _={imageLoadingStatus:()=>null},v=n(),y=m.forwardRef(function(e,t){let{className:n,render:r,style:a,...o}=e,[s,c]=m.useState(`idle`),l={imageLoadingStatus:s},u=m.useMemo(()=>({imageLoadingStatus:s,setImageLoadingStatus:c}),[s,c]),d=i(`span`,e,{state:l,ref:t,props:o,stateAttributesMapping:_});return(0,v.jsx)(h.Provider,{value:u,children:d})});function b(t,{referrerPolicy:n,crossOrigin:r,sizes:i,srcSet:a}){let[s,c]=m.useState(`idle`);return e(()=>{if(!t&&!a)return c(`error`),o;let e=!0,s=new window.Image,l=t=>()=>{e&&c(t)};return c(`loading`),s.onload=l(`loaded`),s.onerror=l(`error`),n&&(s.referrerPolicy=n),s.crossOrigin=r??null,i&&(s.sizes=i),a&&(s.srcset=a),t&&(s.src=t),s.complete&&c(s.naturalWidth>0?`loaded`:`error`),()=>{e=!1}},[t,a,i,r,n]),s}var x={..._,...u},S=m.forwardRef(function(t,n){let{className:r,render:a,onLoadingStatusChange:o,style:c,...l}=t,{setImageLoadingStatus:u}=g(),d=b(l.src,l),h=d===`loaded`,{mounted:_,transitionStatus:v,setMounted:y}=p(h),S=m.useRef(null),C=s(e=>{o?.(e),u(e)});e(()=>{d!==`idle`&&C(d)},[d,C]),e(()=>()=>u(`idle`),[u]),f({open:h,ref:S,onComplete(){h||y(!1)}});let w=i(`img`,t,{state:{imageLoadingStatus:d,transitionStatus:v},ref:[n,S],props:l,stateAttributesMapping:x,enabled:_});return _?w:null}),C=l(m.forwardRef(function(e,t){let{className:n,render:r,delay:a=0,style:o,...s}=e,{imageLoadingStatus:c}=g(),[l,u]=m.useState(a===0),f=d();return m.useEffect(()=>(a>0?f.start(a,()=>u(!0)):u(!0),f.clear),[f,a]),i(`span`,e,{state:{imageLoadingStatus:c},ref:t,props:s,stateAttributesMapping:_,enabled:c!==`loaded`&&(a===0||l)})}),`tr-avatar-fallback`),w=l(S,`tr-avatar-image`);function T({className:e,shape:n=`circle`,uiSize:r=`md`,...i}){return(0,v.jsx)(y,{...i,className:t(`tr-avatar`,e),"data-shape":n,"data-ui-size":r})}var E={Root:T,Image:w,Fallback:C};export{E as t};
|
|
2
|
+
//# sourceMappingURL=avatar-BxTPQIDp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar-D-FRGa1m.js","names":["_formatErrorMessage","Avatar.Fallback","Avatar.Image","Avatar.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/stateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/useImageLoadingStatus.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/AvatarImage.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/fallback/AvatarFallback.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.29.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/avatar/avatar-fallback.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.29.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/avatar/avatar-image.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.29.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/avatar/avatar-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.29.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/avatar/index.js"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const AvatarRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") AvatarRootContext.displayName = \"AvatarRootContext\";\nexport function useAvatarRootContext() {\n const context = React.useContext(AvatarRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: AvatarRootContext is missing. Avatar parts must be placed within <Avatar.Root>.' : _formatErrorMessage(13));\n }\n return context;\n}","export const avatarStateAttributesMapping = {\n imageLoadingStatus: () => null\n};","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { AvatarRootContext } from \"./AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"./stateAttributesMapping.mjs\";\n\n/**\n * Displays a user's profile picture, initials, or fallback icon.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const AvatarRoot = /*#__PURE__*/React.forwardRef(function AvatarRoot(componentProps, forwardedRef) {\n const {\n className,\n render,\n style,\n ...elementProps\n } = componentProps;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');\n const state = {\n imageLoadingStatus\n };\n const contextValue = React.useMemo(() => ({\n imageLoadingStatus,\n setImageLoadingStatus\n }), [imageLoadingStatus, setImageLoadingStatus]);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(AvatarRootContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") AvatarRoot.displayName = \"AvatarRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { NOOP } from \"../../internals/noop.mjs\";\nexport function useImageLoadingStatus(src, {\n referrerPolicy,\n crossOrigin,\n sizes,\n srcSet\n}) {\n const [loadingStatus, setLoadingStatus] = React.useState('idle');\n useIsoLayoutEffect(() => {\n if (!src && !srcSet) {\n setLoadingStatus('error');\n return NOOP;\n }\n let isMounted = true;\n const image = new window.Image();\n const updateStatus = status => () => {\n if (!isMounted) {\n return;\n }\n setLoadingStatus(status);\n };\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n image.crossOrigin = crossOrigin ?? null;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcSet) {\n image.srcset = srcSet;\n }\n if (src) {\n image.src = src;\n }\n\n // Fast path for cached/decoded images\n if (image.complete) {\n setLoadingStatus(image.naturalWidth > 0 ? 'loaded' : 'error');\n }\n return () => {\n isMounted = false;\n };\n }, [src, srcSet, sizes, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.mjs\";\nconst stateAttributesMapping = {\n ...avatarStateAttributesMapping,\n ...transitionStatusMapping\n};\n\n/**\n * The image to be displayed in the avatar.\n * Renders an `<img>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarImage = /*#__PURE__*/React.forwardRef(function AvatarImage(componentProps, forwardedRef) {\n const {\n className,\n render,\n onLoadingStatusChange: onLoadingStatusChangeProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n setImageLoadingStatus\n } = useAvatarRootContext();\n const imageLoadingStatus = useImageLoadingStatus(elementProps.src, elementProps);\n const isVisible = imageLoadingStatus === 'loaded';\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(isVisible);\n const imageRef = React.useRef(null);\n const handleLoadingStatusChange = useStableCallback(status => {\n onLoadingStatusChangeProp?.(status);\n setImageLoadingStatus(status);\n });\n useIsoLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n useIsoLayoutEffect(() => {\n return () => setImageLoadingStatus('idle');\n }, [setImageLoadingStatus]);\n useOpenChangeComplete({\n open: isVisible,\n ref: imageRef,\n onComplete() {\n if (!isVisible) {\n setMounted(false);\n }\n }\n });\n const state = {\n imageLoadingStatus,\n transitionStatus\n };\n const element = useRenderElement('img', componentProps, {\n state,\n ref: [forwardedRef, imageRef],\n props: elementProps,\n stateAttributesMapping,\n enabled: mounted\n });\n if (!mounted) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarImage.displayName = \"AvatarImage\";","'use client';\n\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\n\n/**\n * Rendered when the image fails to load or when no image is provided.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarFallback = /*#__PURE__*/React.forwardRef(function AvatarFallback(componentProps, forwardedRef) {\n const {\n className,\n render,\n delay = 0,\n style,\n ...elementProps\n } = componentProps;\n const {\n imageLoadingStatus\n } = useAvatarRootContext();\n const [delayPassed, setDelayPassed] = React.useState(delay === 0);\n const timeout = useTimeout();\n React.useEffect(() => {\n if (delay > 0) {\n timeout.start(delay, () => setDelayPassed(true));\n } else {\n // Once the fallback is shown without a delay, keep it visible. Otherwise a later\n // change from no delay to a number would re-hide an already-visible fallback.\n setDelayPassed(true);\n }\n return timeout.clear;\n }, [timeout, delay]);\n const state = {\n imageLoadingStatus\n };\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping,\n enabled: imageLoadingStatus !== 'loaded' && (delay === 0 || delayPassed)\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarFallback.displayName = \"AvatarFallback\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-fallback.tsx\nconst TRAvatarFallback = createComponentPart(Avatar.Fallback, \"tr-avatar-fallback\");\n//#endregion\nexport { TRAvatarFallback };\n\n//# sourceMappingURL=avatar-fallback.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-image.tsx\nconst TRAvatarImage = createComponentPart(Avatar.Image, \"tr-avatar-image\");\n//#endregion\nexport { TRAvatarImage };\n\n//# sourceMappingURL=avatar-image.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-root.tsx\nfunction TRAvatarRoot({ className, shape = \"circle\", uiSize = \"md\", ...props }) {\n\treturn /* @__PURE__ */ jsx(Avatar.Root, {\n\t\t...props,\n\t\tclassName: mergeComponentClassName(\"tr-avatar\", className),\n\t\t\"data-shape\": shape,\n\t\t\"data-ui-size\": uiSize\n\t});\n}\n//#endregion\nexport { TRAvatarRoot };\n\n//# sourceMappingURL=avatar-root.js.map","import { TRAvatarFallback } from \"./avatar-fallback.js\";\nimport { TRAvatarImage } from \"./avatar-image.js\";\nimport { TRAvatarRoot } from \"./avatar-root.js\";\n//#region src/components/avatar/index.tsx\nconst TRAvatar = {\n\tRoot: TRAvatarRoot,\n\tImage: TRAvatarImage,\n\tFallback: TRAvatarFallback\n};\n//#endregion\nexport { TRAvatar, TRAvatarFallback, TRAvatarImage, TRAvatarRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avatar-BxTPQIDp.js","names":["_formatErrorMessage","Avatar.Fallback","Avatar.Image","Avatar.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/stateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/root/AvatarRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/useImageLoadingStatus.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/image/AvatarImage.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/avatar/fallback/AvatarFallback.mjs","../../../../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/avatar/avatar-fallback.js","../../../../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/avatar/avatar-image.js","../../../../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/avatar/avatar-root.js","../../../../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/avatar/index.js"],"sourcesContent":["'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const AvatarRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") AvatarRootContext.displayName = \"AvatarRootContext\";\nexport function useAvatarRootContext() {\n const context = React.useContext(AvatarRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: AvatarRootContext is missing. Avatar parts must be placed within <Avatar.Root>.' : _formatErrorMessage(13));\n }\n return context;\n}","export const avatarStateAttributesMapping = {\n imageLoadingStatus: () => null\n};","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { AvatarRootContext } from \"./AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"./stateAttributesMapping.mjs\";\n\n/**\n * Displays a user's profile picture, initials, or fallback icon.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const AvatarRoot = /*#__PURE__*/React.forwardRef(function AvatarRoot(componentProps, forwardedRef) {\n const {\n className,\n render,\n style,\n ...elementProps\n } = componentProps;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');\n const state = {\n imageLoadingStatus\n };\n const contextValue = React.useMemo(() => ({\n imageLoadingStatus,\n setImageLoadingStatus\n }), [imageLoadingStatus, setImageLoadingStatus]);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(AvatarRootContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") AvatarRoot.displayName = \"AvatarRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { NOOP } from \"../../internals/noop.mjs\";\nexport function useImageLoadingStatus(src, {\n referrerPolicy,\n crossOrigin,\n sizes,\n srcSet\n}) {\n const [loadingStatus, setLoadingStatus] = React.useState('idle');\n useIsoLayoutEffect(() => {\n if (!src && !srcSet) {\n setLoadingStatus('error');\n return NOOP;\n }\n let isMounted = true;\n const image = new window.Image();\n const updateStatus = status => () => {\n if (!isMounted) {\n return;\n }\n setLoadingStatus(status);\n };\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n image.crossOrigin = crossOrigin ?? null;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcSet) {\n image.srcset = srcSet;\n }\n if (src) {\n image.src = src;\n }\n\n // Fast path for cached/decoded images\n if (image.complete) {\n setLoadingStatus(image.naturalWidth > 0 ? 'loaded' : 'error');\n }\n return () => {\n isMounted = false;\n };\n }, [src, srcSet, sizes, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { useImageLoadingStatus } from \"./useImageLoadingStatus.mjs\";\nconst stateAttributesMapping = {\n ...avatarStateAttributesMapping,\n ...transitionStatusMapping\n};\n\n/**\n * The image to be displayed in the avatar.\n * Renders an `<img>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarImage = /*#__PURE__*/React.forwardRef(function AvatarImage(componentProps, forwardedRef) {\n const {\n className,\n render,\n onLoadingStatusChange: onLoadingStatusChangeProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n setImageLoadingStatus\n } = useAvatarRootContext();\n const imageLoadingStatus = useImageLoadingStatus(elementProps.src, elementProps);\n const isVisible = imageLoadingStatus === 'loaded';\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(isVisible);\n const imageRef = React.useRef(null);\n const handleLoadingStatusChange = useStableCallback(status => {\n onLoadingStatusChangeProp?.(status);\n setImageLoadingStatus(status);\n });\n useIsoLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n useIsoLayoutEffect(() => {\n return () => setImageLoadingStatus('idle');\n }, [setImageLoadingStatus]);\n useOpenChangeComplete({\n open: isVisible,\n ref: imageRef,\n onComplete() {\n if (!isVisible) {\n setMounted(false);\n }\n }\n });\n const state = {\n imageLoadingStatus,\n transitionStatus\n };\n const element = useRenderElement('img', componentProps, {\n state,\n ref: [forwardedRef, imageRef],\n props: elementProps,\n stateAttributesMapping,\n enabled: mounted\n });\n if (!mounted) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarImage.displayName = \"AvatarImage\";","'use client';\n\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useAvatarRootContext } from \"../root/AvatarRootContext.mjs\";\nimport { avatarStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\n\n/**\n * Rendered when the image fails to load or when no image is provided.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Avatar](https://base-ui.com/react/components/avatar)\n */\nexport const AvatarFallback = /*#__PURE__*/React.forwardRef(function AvatarFallback(componentProps, forwardedRef) {\n const {\n className,\n render,\n delay = 0,\n style,\n ...elementProps\n } = componentProps;\n const {\n imageLoadingStatus\n } = useAvatarRootContext();\n const [delayPassed, setDelayPassed] = React.useState(delay === 0);\n const timeout = useTimeout();\n React.useEffect(() => {\n if (delay > 0) {\n timeout.start(delay, () => setDelayPassed(true));\n } else {\n // Once the fallback is shown without a delay, keep it visible. Otherwise a later\n // change from no delay to a number would re-hide an already-visible fallback.\n setDelayPassed(true);\n }\n return timeout.clear;\n }, [timeout, delay]);\n const state = {\n imageLoadingStatus\n };\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: avatarStateAttributesMapping,\n enabled: imageLoadingStatus !== 'loaded' && (delay === 0 || delayPassed)\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") AvatarFallback.displayName = \"AvatarFallback\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-fallback.tsx\nconst TRAvatarFallback = createComponentPart(Avatar.Fallback, \"tr-avatar-fallback\");\n//#endregion\nexport { TRAvatarFallback };\n\n//# sourceMappingURL=avatar-fallback.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-image.tsx\nconst TRAvatarImage = createComponentPart(Avatar.Image, \"tr-avatar-image\");\n//#endregion\nexport { TRAvatarImage };\n\n//# sourceMappingURL=avatar-image.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Avatar } from \"@base-ui/react/avatar\";\n//#region src/components/avatar/avatar-root.tsx\nfunction TRAvatarRoot({ className, shape = \"circle\", uiSize = \"md\", ...props }) {\n\treturn /* @__PURE__ */ jsx(Avatar.Root, {\n\t\t...props,\n\t\tclassName: mergeComponentClassName(\"tr-avatar\", className),\n\t\t\"data-shape\": shape,\n\t\t\"data-ui-size\": uiSize\n\t});\n}\n//#endregion\nexport { TRAvatarRoot };\n\n//# sourceMappingURL=avatar-root.js.map","import { TRAvatarFallback } from \"./avatar-fallback.js\";\nimport { TRAvatarImage } from \"./avatar-image.js\";\nimport { TRAvatarRoot } from \"./avatar-root.js\";\n//#region src/components/avatar/index.tsx\nconst TRAvatar = {\n\tRoot: TRAvatarRoot,\n\tImage: TRAvatarImage,\n\tFallback: TRAvatarFallback\n};\n//#endregion\nexport { TRAvatar, TRAvatarFallback, TRAvatarImage, TRAvatarRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X as e,q as t}from"./createLucideIcon-D-yizrWN.js";var n=e();function r({className:e,uiSize:r=`md`,variant:i=`neutral`,...a}){return(0,n.jsx)(`span`,{...a,className:t(`tr-badge`,e),"data-ui-size":r,"data-variant":i})}export{r as t};
|
|
2
|
+
//# sourceMappingURL=badge-B8D0Q2qq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge-
|
|
1
|
+
{"version":3,"file":"badge-B8D0Q2qq.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/badge/badge.js"],"sourcesContent":["import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/badge/badge.tsx\nfunction TRBadge({ className, uiSize = \"md\", variant = \"neutral\", ...props }) {\n\treturn /* @__PURE__ */ jsx(\"span\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-badge\", className),\n\t\t\"data-ui-size\": uiSize,\n\t\t\"data-variant\": variant\n\t});\n}\n//#endregion\nexport { TRBadge };\n\n//# sourceMappingURL=badge.js.map"],"x_google_ignoreList":[0],"mappings":"oEAGA,SAAS,EAAQ,CAAE,YAAW,SAAS,KAAM,UAAU,UAAW,GAAG,GAAS,CAC7E,OAAuB,EAAA,EAAA,IAAA,CAAI,OAAQ,CAClC,GAAG,EACH,UAAW,EAAgB,WAAY,CAAS,EAChD,eAAgB,EAChB,eAAgB,CACjB,CAAC,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{C as e,F as t,J as n,S as r,T as i,X as a,Z as o,c as s,d as c,et as l,f as u,g as ee,h as d,m as f,x as p}from"./createLucideIcon-D-yizrWN.js";import{$ as m,Et as h,On as g,R as te,St as ne,Tt as re,vt as _}from"./config-C18-l7z7.js";import{B as ie,F as ae,G as oe,H as se,N as ce,R as le,W as v,xt as y,z as b}from"./shell-header-bar-CdOEWmCT.js";import{r as ue}from"./form-sJw-V9wb.js";import{t as de}from"./useAriaLabelledBy-CF3crxLc.js";var x=l(o(),1);function fe(e){if(!e)return null;for(let t of e.elements){let e=t.tagName;if(e===`BUTTON`||e===`INPUT`){let e=t;if(e.type===`submit`)return e}}return null}function pe(e){return{checked(t){return e.indeterminate?{}:t?{"data-checked":``}:{"data-unchecked":``}},...v}}var me=x.createContext(void 0);function he(){return x.useContext(me)}var S=x.createContext(void 0);function C(){let e=x.useContext(S);if(e===void 0)throw Error(p(14));return e}var w=a(),ge=`data-parent`,_e=x.forwardRef(function(n,a){let{checked:o,className:l,defaultChecked:p=!1,"aria-labelledby":g,disabled:ne=!1,form:_,id:v,indeterminate:y=!1,inputRef:me,name:C,onCheckedChange:_e,parent:T=!1,readOnly:E=!1,render:ve,required:D=!1,uncheckedValue:O,value:k,nativeButton:A=!1,style:ye,...be}=n,{clearErrors:xe}=ae(),{disabled:Se,name:Ce,setDirty:we,setFilled:j,setFocused:Te,setTouched:Ee,state:De,validationMode:Oe,validityData:ke,validation:Ae}=se(),je=ue(),{labelId:Me,controlId:Ne,registerControlId:M,getDescriptionProps:N}=le(),P=he(),F=P?.allValues===void 0?void 0:P.parent,I=F!==void 0,L=Se||je.disabled||P?.disabled||ne,R=Ce??C,z=k??R,B=b(),V=b(),H=v||Ne;I&&(T?H=V:z===void 0?H||=V:H=`${F.id}-${z}`);let U={};I&&(T?U=F.getParentProps():z!==void 0&&(U=F.getChildProps(z)));let{checked:Pe=o,indeterminate:Fe=y,onCheckedChange:Ie,...Le}=U,W=P?.value,G=x.useRef(null),K=i(()=>Symbol()),q=x.useRef(!1),{getButtonProps:Re,buttonRef:ze}=d({disabled:L,native:A}),J=P?.validation??Ae,[Y,Be]=oe({controlled:z!==void 0&&W!==void 0&&!T?W.includes(z):Pe,default:p,name:`Checkbox`,state:`checked`}),X=I?!!Pe:Y,Z=I&&Fe||y;e(()=>{M!==u&&(q.current=!0,M(K.current,H))},[H,M,K]),x.useEffect(()=>{let e=K.current;return()=>{!q.current||M===u||(q.current=!1,M(e,void 0))}},[M,K]),ie(G,B,Y,void 0,!P&&!L,C);let Q=x.useRef(null),Ve=J.registerInput,He=P?z:void 0,Ue=x.useCallback(e=>Ve(e,{controlRef:G,value:He}),[Ve,He]),We=f(me,Q,T?void 0:Ue),Ge=de(g,Me,Q,!A,H??void 0);e(()=>{Q.current&&(Q.current.indeterminate=Z,Y&&j(!0))},[Y,Z,j]),ce(Y,()=>{P||(xe(R),j(Y),we(Y!==ke.initialValue),J.change(Y))});let Ke=r({checked:Y,disabled:L,form:_,name:T?void 0:R,id:A?void 0:H??void 0,required:D,ref:We,style:R?h:re,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(E){e.preventDefault();return}let t=e.currentTarget.checked,n=te(m,e.nativeEvent);if(_e?.(t,n),!n.isCanceled&&(Ie?.(t,n),!n.isCanceled&&(Be(t),z!==void 0&&P!==void 0&&!T&&!I))){let e=t?[...P.value,z]:P.value.filter(e=>e!==z);P.setValue(e,n)}},onClick(e){e.stopPropagation()},onFocus(){G.current?.focus()}},k===void 0?c:{value:(P?Y&&k:k)||``},N,e=>J.getValidationProps(L,e));x.useEffect(()=>{if(!F||z===void 0)return;let e=F.disabledStatesRef.current;return e.set(z,L),()=>{e.delete(z)}},[F,L,z]);let $=x.useMemo(()=>({...De,checked:X,disabled:L,readOnly:E,required:D,indeterminate:Z}),[De,X,L,E,D,Z]),qe=pe($),Je=s(`span`,n,{state:$,ref:[ze,G,a],props:[{id:A?H??void 0:B,role:`checkbox`,"aria-checked":Z?`mixed`:X,"aria-readonly":E||void 0,"aria-required":D||void 0,"aria-labelledby":Ge,[ge]:T?``:void 0,onFocus(){L||Te(!0)},onBlur(){let e=Q.current;e&&(Ee(!0),Te(!1),Oe===`onBlur`&&J.commit(P?W:e.checked))},onKeyDown(e){if(e.key!==`Enter`||(e.preventBaseUIHandler(),e.defaultPrevented))return;let n=Q.current?.form??null,r=e.currentTarget,i=e.nativeEvent,a=e.preventDefault,o=i.preventDefault,s=!1;e.preventDefault=()=>{s=!0,a.call(e)},i.preventDefault=()=>{s=!0,o.call(i)},o.call(i),t(r).queueMicrotask(()=>{e.preventDefault=a,i.preventDefault=o,s||fe(n)?.click()})},onClick(e){if(E||L)return;e.preventDefault();let t=Q.current;t&&ee(t,e)}},be,Le,Re,N,e=>J.getValidationProps(L,e)],stateAttributesMapping:qe});return(0,w.jsxs)(S.Provider,{value:$,children:[Je,!Y&&!P&&R&&!T&&O!==void 0&&(0,w.jsx)(`input`,{type:`hidden`,form:_,name:R,value:O,disabled:L}),(0,w.jsx)(`input`,{...Ke,suppressHydrationWarning:!0})]})}),T=g(x.forwardRef(function(e,t){let{render:n,className:r,style:i,keepMounted:a=!1,...o}=e,c=C(),l=c.checked||c.indeterminate,{mounted:u,transitionStatus:ee,setMounted:d}=y(l),f=x.useRef(null),p={...c,transitionStatus:ee};_({open:l,ref:f,onComplete(){l||d(!1)}});let m={...pe(c),...ne},h=a||u,g=s(`span`,e,{ref:[t,f],state:p,stateAttributesMapping:m,props:o});return h?g:null}),`tr-checkbox-indicator`);function E({checked:e,className:t,ref:r,uiSize:i=`md`,...a}){let o=(0,x.useRef)(null),[s,c]=(0,x.useState)(0);return(0,x.useEffect)(()=>{if(e!==void 0)return;let t=e=>{let t=e.target;if(!(t instanceof HTMLFormElement))return;let n=o.current?.nextElementSibling??null;for(;n instanceof HTMLInputElement;){if(n.type===`checkbox`&&n.form===t){c(e=>e+1);return}n=n.nextElementSibling}};return document.addEventListener(`reset`,t,!0),()=>document.removeEventListener(`reset`,t,!0)},[e]),(0,x.createElement)(_e,{...a,checked:e,className:n(`tr-checkbox`,t),"data-ui-size":i,key:s,ref:e=>{o.current=e,typeof r==`function`?r(e):r&&(r.current=e)}})}var ve={Root:E,Indicator:T};export{ve as t};
|
|
2
|
+
//# sourceMappingURL=checkbox-DTPGfvmq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-C90dDDza.js","names":["_formatErrorMessage","REASONS.none","Checkbox.Indicator","Checkbox.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+utils@0.3.2_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/utils/getDefaultFormSubmitter.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/utils/getCheckboxStateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox-group/CheckboxGroupContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/indicator/CheckboxIndicator.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.29.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/checkbox/checkbox-indicator.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.29.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/checkbox/checkbox-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.29.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/checkbox/index.js"],"sourcesContent":["/**\n * Returns the default button a browser uses for implicit form submission.\n *\n * This is useful for custom form controls that need to mirror native Enter key behavior.\n * Clicking the returned submitter preserves browser semantics such as the submitter's click\n * event, `SubmitEvent.submitter`, and submitter-specific attributes.\n *\n * The function follows the controls exposed by `form.elements`, which includes controls associated\n * through the `form` attribute. Disabled submitters can be returned because the default button is\n * determined before disabled state is considered; clicking a disabled submitter is a no-op.\n */\nexport function getDefaultFormSubmitter(form) {\n if (!form) {\n return null;\n }\n for (const candidate of form.elements) {\n const tagName = candidate.tagName;\n if (tagName === 'BUTTON' || tagName === 'INPUT') {\n const button = candidate;\n\n // Intentionally excludes input[type=\"image\"]: Chromium omits it from form.elements,\n // so supporting it would require separate traversal for an exotic submitter type.\n if (button.type === 'submit') {\n return button;\n }\n }\n }\n return null;\n}","import { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nexport function getCheckboxStateAttributesMapping(state) {\n return {\n checked(value) {\n if (state.indeterminate) {\n // `data-indeterminate` is already handled by the `indeterminate` prop.\n return {};\n }\n if (value) {\n return {\n 'data-checked': ''\n };\n }\n return {\n 'data-unchecked': ''\n };\n },\n ...fieldValidityMapping\n };\n}","'use client';\n\nimport * as React from 'react';\nexport const CheckboxGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxGroupContext.displayName = \"CheckboxGroupContext\";\nexport function useCheckboxGroupContext() {\n return React.useContext(CheckboxGroupContext);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const CheckboxRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxRootContext.displayName = \"CheckboxRootContext\";\nexport function useCheckboxRootContext() {\n const context = React.useContext(CheckboxRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: CheckboxRootContext is missing. Checkbox parts must be placed within <Checkbox.Root>.' : _formatErrorMessage(14));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { getDefaultFormSubmitter } from '@base-ui/utils/getDefaultFormSubmitter';\nimport { NOOP } from \"../../internals/noop.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { dispatchClickWithModifiers } from \"../../utils/dispatchClickWithModifiers.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.mjs\";\nimport { useFieldItemContext } from \"../../field/item/FieldItemContext.mjs\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.mjs\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { useAriaLabelledBy } from \"../../internals/labelable-provider/useAriaLabelledBy.mjs\";\nimport { useCheckboxGroupContext } from \"../../checkbox-group/CheckboxGroupContext.mjs\";\nimport { CheckboxRootContext } from \"./CheckboxRootContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const PARENT_CHECKBOX = 'data-parent';\n\n/**\n * Represents the checkbox itself.\n * Renders a `<span>` element and a hidden `<input>` beside.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxRoot = /*#__PURE__*/React.forwardRef(function CheckboxRoot(componentProps, forwardedRef) {\n const {\n checked: checkedProp,\n className,\n defaultChecked = false,\n 'aria-labelledby': ariaLabelledByProp,\n disabled: disabledProp = false,\n form,\n id: idProp,\n indeterminate = false,\n inputRef: inputRefProp,\n name: nameProp,\n onCheckedChange,\n parent = false,\n readOnly = false,\n render,\n required = false,\n uncheckedValue,\n value: valueProp,\n nativeButton = false,\n style,\n ...elementProps\n } = componentProps;\n const {\n clearErrors\n } = useFormContext();\n const {\n disabled: rootDisabled,\n name: fieldName,\n setDirty,\n setFilled,\n setFocused,\n setTouched,\n state: fieldState,\n validationMode,\n validityData,\n validation: localValidation\n } = useFieldRootContext();\n const fieldItemContext = useFieldItemContext();\n const {\n labelId,\n controlId,\n registerControlId,\n getDescriptionProps\n } = useLabelableContext();\n const groupContext = useCheckboxGroupContext();\n const parentContext = groupContext?.allValues === undefined ? undefined : groupContext.parent;\n const isGroupedWithParent = parentContext !== undefined;\n const disabled = rootDisabled || fieldItemContext.disabled || groupContext?.disabled || disabledProp;\n const name = fieldName ?? nameProp;\n const value = valueProp ?? name;\n const id = useBaseUiId();\n const generatedInputId = useBaseUiId();\n let inputId = idProp || controlId;\n if (isGroupedWithParent) {\n if (parent) {\n inputId = generatedInputId;\n } else if (value !== undefined) {\n inputId = `${parentContext.id}-${value}`;\n } else {\n inputId ||= generatedInputId;\n }\n }\n let groupProps = {};\n if (isGroupedWithParent) {\n if (parent) {\n groupProps = parentContext.getParentProps();\n } else if (value !== undefined) {\n groupProps = parentContext.getChildProps(value);\n }\n }\n const {\n checked: groupChecked = checkedProp,\n indeterminate: groupIndeterminate = indeterminate,\n onCheckedChange: groupOnChange,\n ...otherGroupProps\n } = groupProps;\n const groupValue = groupContext?.value;\n const controlRef = React.useRef(null);\n const controlSourceRef = useRefWithInit(() => Symbol());\n const hasRegisteredRef = React.useRef(false);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const validation = groupContext?.validation ?? localValidation;\n const [checked, setCheckedState] = useControlled({\n controlled: value !== undefined && groupValue !== undefined && !parent ? groupValue.includes(value) : groupChecked,\n default: defaultChecked,\n name: 'Checkbox',\n state: 'checked'\n });\n const computedChecked = isGroupedWithParent ? Boolean(groupChecked) : checked;\n const computedIndeterminate = isGroupedWithParent ? groupIndeterminate || indeterminate : indeterminate;\n\n // can't use useLabelableId because of optional groupContext and/or parent\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, inputId);\n return undefined;\n }, [inputId, registerControlId, controlSourceRef]);\n React.useEffect(() => {\n const controlSource = controlSourceRef.current;\n return () => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSource, undefined);\n };\n }, [registerControlId, controlSourceRef]);\n useRegisterFieldControl(controlRef, id, checked, undefined, !groupContext && !disabled, nameProp);\n const inputRef = React.useRef(null);\n const registerFieldInput = validation.registerInput;\n const registeredInputValue = groupContext ? value : undefined;\n const registerInput = React.useCallback(element => registerFieldInput(element, {\n controlRef,\n value: registeredInputValue\n }), [registerFieldInput, registeredInputValue]);\n const mergedInputRef = useMergedRefs(inputRefProp, inputRef, parent ? undefined : registerInput);\n const ariaLabelledBy = useAriaLabelledBy(ariaLabelledByProp, labelId, inputRef, !nativeButton, inputId ?? undefined);\n useIsoLayoutEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = computedIndeterminate;\n if (checked) {\n setFilled(true);\n }\n }\n }, [checked, computedIndeterminate, setFilled]);\n useValueChanged(checked, () => {\n if (groupContext) {\n return;\n }\n clearErrors(name);\n setFilled(checked);\n setDirty(checked !== validityData.initialValue);\n validation.change(checked);\n });\n const inputProps = mergeProps({\n checked,\n disabled,\n form,\n // parent checkboxes unset `name` to be excluded from form submission\n name: parent ? undefined : name,\n // Set `id` to stop Chrome warning about an unassociated input.\n // When using a native button, the `id` is applied to the button instead.\n id: nativeButton ? undefined : inputId ?? undefined,\n required,\n ref: mergedInputRef,\n style: name ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n type: 'checkbox',\n 'aria-hidden': true,\n onChange(event) {\n // Workaround for https://github.com/react/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const nextChecked = event.currentTarget.checked;\n const details = createChangeEventDetails(REASONS.none, event.nativeEvent);\n onCheckedChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n groupOnChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n setCheckedState(nextChecked);\n if (value !== undefined && groupContext !== undefined && !parent && !isGroupedWithParent) {\n const nextGroupValue = nextChecked ? [...groupContext.value, value] : groupContext.value.filter(item => item !== value);\n groupContext.setValue(nextGroupValue, details);\n }\n },\n onClick(event) {\n // The click dispatched from the root's `onClick` is an implementation detail\n // and must not reach ancestors, which already receive the original click.\n event.stopPropagation();\n },\n onFocus() {\n controlRef.current?.focus();\n }\n },\n // React <19 sets an empty value if `undefined` is passed explicitly\n // To avoid this, we only set the value if it's defined\n valueProp !== undefined ? {\n value: (groupContext ? checked && valueProp : valueProp) || ''\n } : EMPTY_OBJECT, getDescriptionProps, props => validation.getValidationProps(disabled, props));\n React.useEffect(() => {\n if (!parentContext || value === undefined) {\n return undefined;\n }\n const disabledStates = parentContext.disabledStatesRef.current;\n disabledStates.set(value, disabled);\n return () => {\n disabledStates.delete(value);\n };\n }, [parentContext, disabled, value]);\n const state = React.useMemo(() => ({\n ...fieldState,\n checked: computedChecked,\n disabled,\n readOnly,\n required,\n indeterminate: computedIndeterminate\n }), [fieldState, computedChecked, disabled, readOnly, required, computedIndeterminate]);\n const stateAttributesMapping = getCheckboxStateAttributesMapping(state);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: [buttonRef, controlRef, forwardedRef],\n props: [{\n id: nativeButton ? inputId ?? undefined : id,\n role: 'checkbox',\n 'aria-checked': computedIndeterminate ? 'mixed' : computedChecked,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': ariaLabelledBy,\n [PARENT_CHECKBOX]: parent ? '' : undefined,\n onFocus() {\n if (!disabled) {\n setFocused(true);\n }\n },\n onBlur() {\n const inputEl = inputRef.current;\n if (!inputEl) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(groupContext ? groupValue : inputEl.checked);\n }\n },\n onKeyDown(event) {\n if (event.key !== 'Enter') {\n return;\n }\n\n // Let consumer `preventDefault()` handlers opt out while defensively stopping\n // any remaining Base UI Enter handling from treating the checkbox as a button.\n event.preventBaseUIHandler();\n if (event.defaultPrevented) {\n return;\n }\n const formToSubmit = inputRef.current?.form ?? null;\n const currentTarget = event.currentTarget;\n const nativeEvent = event.nativeEvent;\n const originalPreventDefault = event.preventDefault;\n const originalNativePreventDefault = nativeEvent.preventDefault;\n let preventDefaultCalledAfterPropagation = false;\n event.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalPreventDefault.call(event);\n };\n nativeEvent.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalNativePreventDefault.call(nativeEvent);\n };\n\n // Enter should not activate/toggle the checkbox. Cancel the native button behavior\n // without setting React's synthetic `defaultPrevented`, so ancestor React handlers\n // can still opt out by calling `preventDefault()` during propagation.\n originalNativePreventDefault.call(nativeEvent);\n ownerWindow(currentTarget).queueMicrotask(() => {\n event.preventDefault = originalPreventDefault;\n nativeEvent.preventDefault = originalNativePreventDefault;\n if (!preventDefaultCalledAfterPropagation) {\n getDefaultFormSubmitter(formToSubmit)?.click();\n }\n });\n },\n onClick(event) {\n if (readOnly || disabled) {\n return;\n }\n event.preventDefault();\n const input = inputRef.current;\n if (!input) {\n return;\n }\n dispatchClickWithModifiers(input, event);\n }\n }, elementProps, otherGroupProps, getButtonProps, getDescriptionProps, props => validation.getValidationProps(disabled, props)],\n stateAttributesMapping\n });\n return /*#__PURE__*/_jsxs(CheckboxRootContext.Provider, {\n value: state,\n children: [element, !checked && !groupContext && name && !parent && uncheckedValue !== undefined && /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: uncheckedValue,\n disabled: disabled\n }), /*#__PURE__*/_jsx(\"input\", {\n ...inputProps,\n suppressHydrationWarning: true\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxRoot.displayName = \"CheckboxRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useCheckboxRootContext } from \"../root/CheckboxRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\n\n/**\n * Indicates whether the checkbox is ticked.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxIndicator = /*#__PURE__*/React.forwardRef(function CheckboxIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted = false,\n ...elementProps\n } = componentProps;\n const rootState = useCheckboxRootContext();\n const rendered = rootState.checked || rootState.indeterminate;\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(rendered);\n const indicatorRef = React.useRef(null);\n const state = {\n ...rootState,\n transitionStatus\n };\n useOpenChangeComplete({\n open: rendered,\n ref: indicatorRef,\n onComplete() {\n if (!rendered) {\n setMounted(false);\n }\n }\n });\n const baseStateAttributesMapping = getCheckboxStateAttributesMapping(rootState);\n const stateAttributesMapping = {\n ...baseStateAttributesMapping,\n ...transitionStatusMapping\n };\n const shouldRender = keepMounted || mounted;\n const element = useRenderElement('span', componentProps, {\n ref: [forwardedRef, indicatorRef],\n state,\n stateAttributesMapping,\n props: elementProps\n });\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxIndicator.displayName = \"CheckboxIndicator\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-indicator.tsx\nconst TRCheckboxIndicator = createComponentPart(Checkbox.Indicator, \"tr-checkbox-indicator\");\n//#endregion\nexport { TRCheckboxIndicator };\n\n//# sourceMappingURL=checkbox-indicator.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { createElement, useEffect, useRef, useState } from \"react\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-root.tsx\nfunction TRCheckboxRoot({ checked, className, ref, uiSize = \"md\", ...props }) {\n\tconst rootRef = useRef(null);\n\tconst [resetKey, setResetKey] = useState(0);\n\tuseEffect(() => {\n\t\tif (checked !== void 0) return;\n\t\tconst reset = (event) => {\n\t\t\tconst form = event.target;\n\t\t\tif (!(form instanceof HTMLFormElement)) return;\n\t\t\tlet sibling = rootRef.current?.nextElementSibling ?? null;\n\t\t\twhile (sibling instanceof HTMLInputElement) {\n\t\t\t\tif (sibling.type === \"checkbox\" && sibling.form === form) {\n\t\t\t\t\tsetResetKey((current) => current + 1);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsibling = sibling.nextElementSibling;\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"reset\", reset, true);\n\t\treturn () => document.removeEventListener(\"reset\", reset, true);\n\t}, [checked]);\n\treturn /* @__PURE__ */ createElement(Checkbox.Root, {\n\t\t...props,\n\t\tchecked,\n\t\tclassName: mergeComponentClassName(\"tr-checkbox\", className),\n\t\t\"data-ui-size\": uiSize,\n\t\tkey: resetKey,\n\t\tref: (node) => {\n\t\t\trootRef.current = node;\n\t\t\tif (typeof ref === \"function\") ref(node);\n\t\t\telse if (ref) ref.current = node;\n\t\t}\n\t});\n}\n//#endregion\nexport { TRCheckboxRoot };\n\n//# sourceMappingURL=checkbox-root.js.map","import { TRCheckboxIndicator } from \"./checkbox-indicator.js\";\nimport { TRCheckboxRoot } from \"./checkbox-root.js\";\n//#region src/components/checkbox/index.tsx\nconst TRCheckbox = {\n\tRoot: TRCheckboxRoot,\n\tIndicator: TRCheckboxIndicator\n};\n//#endregion\nexport { TRCheckbox, TRCheckboxIndicator, TRCheckboxRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox-DTPGfvmq.js","names":["_formatErrorMessage","REASONS.none","Checkbox.Indicator","Checkbox.Root"],"sources":["../../../../node_modules/.pnpm/@base-ui+utils@0.3.2_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/utils/getDefaultFormSubmitter.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/utils/getCheckboxStateAttributesMapping.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox-group/CheckboxGroupContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRootContext.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/root/CheckboxRoot.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/checkbox/indicator/CheckboxIndicator.mjs","../../../../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/checkbox/checkbox-indicator.js","../../../../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/checkbox/checkbox-root.js","../../../../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/checkbox/index.js"],"sourcesContent":["/**\n * Returns the default button a browser uses for implicit form submission.\n *\n * This is useful for custom form controls that need to mirror native Enter key behavior.\n * Clicking the returned submitter preserves browser semantics such as the submitter's click\n * event, `SubmitEvent.submitter`, and submitter-specific attributes.\n *\n * The function follows the controls exposed by `form.elements`, which includes controls associated\n * through the `form` attribute. Disabled submitters can be returned because the default button is\n * determined before disabled state is considered; clicking a disabled submitter is a no-op.\n */\nexport function getDefaultFormSubmitter(form) {\n if (!form) {\n return null;\n }\n for (const candidate of form.elements) {\n const tagName = candidate.tagName;\n if (tagName === 'BUTTON' || tagName === 'INPUT') {\n const button = candidate;\n\n // Intentionally excludes input[type=\"image\"]: Chromium omits it from form.elements,\n // so supporting it would require separate traversal for an exotic submitter type.\n if (button.type === 'submit') {\n return button;\n }\n }\n }\n return null;\n}","import { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nexport function getCheckboxStateAttributesMapping(state) {\n return {\n checked(value) {\n if (state.indeterminate) {\n // `data-indeterminate` is already handled by the `indeterminate` prop.\n return {};\n }\n if (value) {\n return {\n 'data-checked': ''\n };\n }\n return {\n 'data-unchecked': ''\n };\n },\n ...fieldValidityMapping\n };\n}","'use client';\n\nimport * as React from 'react';\nexport const CheckboxGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxGroupContext.displayName = \"CheckboxGroupContext\";\nexport function useCheckboxGroupContext() {\n return React.useContext(CheckboxGroupContext);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const CheckboxRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CheckboxRootContext.displayName = \"CheckboxRootContext\";\nexport function useCheckboxRootContext() {\n const context = React.useContext(CheckboxRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: CheckboxRootContext is missing. Checkbox parts must be placed within <Checkbox.Root>.' : _formatErrorMessage(14));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { getDefaultFormSubmitter } from '@base-ui/utils/getDefaultFormSubmitter';\nimport { NOOP } from \"../../internals/noop.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { dispatchClickWithModifiers } from \"../../utils/dispatchClickWithModifiers.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.mjs\";\nimport { useFieldItemContext } from \"../../field/item/FieldItemContext.mjs\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.mjs\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { useAriaLabelledBy } from \"../../internals/labelable-provider/useAriaLabelledBy.mjs\";\nimport { useCheckboxGroupContext } from \"../../checkbox-group/CheckboxGroupContext.mjs\";\nimport { CheckboxRootContext } from \"./CheckboxRootContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const PARENT_CHECKBOX = 'data-parent';\n\n/**\n * Represents the checkbox itself.\n * Renders a `<span>` element and a hidden `<input>` beside.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxRoot = /*#__PURE__*/React.forwardRef(function CheckboxRoot(componentProps, forwardedRef) {\n const {\n checked: checkedProp,\n className,\n defaultChecked = false,\n 'aria-labelledby': ariaLabelledByProp,\n disabled: disabledProp = false,\n form,\n id: idProp,\n indeterminate = false,\n inputRef: inputRefProp,\n name: nameProp,\n onCheckedChange,\n parent = false,\n readOnly = false,\n render,\n required = false,\n uncheckedValue,\n value: valueProp,\n nativeButton = false,\n style,\n ...elementProps\n } = componentProps;\n const {\n clearErrors\n } = useFormContext();\n const {\n disabled: rootDisabled,\n name: fieldName,\n setDirty,\n setFilled,\n setFocused,\n setTouched,\n state: fieldState,\n validationMode,\n validityData,\n validation: localValidation\n } = useFieldRootContext();\n const fieldItemContext = useFieldItemContext();\n const {\n labelId,\n controlId,\n registerControlId,\n getDescriptionProps\n } = useLabelableContext();\n const groupContext = useCheckboxGroupContext();\n const parentContext = groupContext?.allValues === undefined ? undefined : groupContext.parent;\n const isGroupedWithParent = parentContext !== undefined;\n const disabled = rootDisabled || fieldItemContext.disabled || groupContext?.disabled || disabledProp;\n const name = fieldName ?? nameProp;\n const value = valueProp ?? name;\n const id = useBaseUiId();\n const generatedInputId = useBaseUiId();\n let inputId = idProp || controlId;\n if (isGroupedWithParent) {\n if (parent) {\n inputId = generatedInputId;\n } else if (value !== undefined) {\n inputId = `${parentContext.id}-${value}`;\n } else {\n inputId ||= generatedInputId;\n }\n }\n let groupProps = {};\n if (isGroupedWithParent) {\n if (parent) {\n groupProps = parentContext.getParentProps();\n } else if (value !== undefined) {\n groupProps = parentContext.getChildProps(value);\n }\n }\n const {\n checked: groupChecked = checkedProp,\n indeterminate: groupIndeterminate = indeterminate,\n onCheckedChange: groupOnChange,\n ...otherGroupProps\n } = groupProps;\n const groupValue = groupContext?.value;\n const controlRef = React.useRef(null);\n const controlSourceRef = useRefWithInit(() => Symbol());\n const hasRegisteredRef = React.useRef(false);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const validation = groupContext?.validation ?? localValidation;\n const [checked, setCheckedState] = useControlled({\n controlled: value !== undefined && groupValue !== undefined && !parent ? groupValue.includes(value) : groupChecked,\n default: defaultChecked,\n name: 'Checkbox',\n state: 'checked'\n });\n const computedChecked = isGroupedWithParent ? Boolean(groupChecked) : checked;\n const computedIndeterminate = isGroupedWithParent ? groupIndeterminate || indeterminate : indeterminate;\n\n // can't use useLabelableId because of optional groupContext and/or parent\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, inputId);\n return undefined;\n }, [inputId, registerControlId, controlSourceRef]);\n React.useEffect(() => {\n const controlSource = controlSourceRef.current;\n return () => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSource, undefined);\n };\n }, [registerControlId, controlSourceRef]);\n useRegisterFieldControl(controlRef, id, checked, undefined, !groupContext && !disabled, nameProp);\n const inputRef = React.useRef(null);\n const registerFieldInput = validation.registerInput;\n const registeredInputValue = groupContext ? value : undefined;\n const registerInput = React.useCallback(element => registerFieldInput(element, {\n controlRef,\n value: registeredInputValue\n }), [registerFieldInput, registeredInputValue]);\n const mergedInputRef = useMergedRefs(inputRefProp, inputRef, parent ? undefined : registerInput);\n const ariaLabelledBy = useAriaLabelledBy(ariaLabelledByProp, labelId, inputRef, !nativeButton, inputId ?? undefined);\n useIsoLayoutEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = computedIndeterminate;\n if (checked) {\n setFilled(true);\n }\n }\n }, [checked, computedIndeterminate, setFilled]);\n useValueChanged(checked, () => {\n if (groupContext) {\n return;\n }\n clearErrors(name);\n setFilled(checked);\n setDirty(checked !== validityData.initialValue);\n validation.change(checked);\n });\n const inputProps = mergeProps({\n checked,\n disabled,\n form,\n // parent checkboxes unset `name` to be excluded from form submission\n name: parent ? undefined : name,\n // Set `id` to stop Chrome warning about an unassociated input.\n // When using a native button, the `id` is applied to the button instead.\n id: nativeButton ? undefined : inputId ?? undefined,\n required,\n ref: mergedInputRef,\n style: name ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n type: 'checkbox',\n 'aria-hidden': true,\n onChange(event) {\n // Workaround for https://github.com/react/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const nextChecked = event.currentTarget.checked;\n const details = createChangeEventDetails(REASONS.none, event.nativeEvent);\n onCheckedChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n groupOnChange?.(nextChecked, details);\n if (details.isCanceled) {\n return;\n }\n setCheckedState(nextChecked);\n if (value !== undefined && groupContext !== undefined && !parent && !isGroupedWithParent) {\n const nextGroupValue = nextChecked ? [...groupContext.value, value] : groupContext.value.filter(item => item !== value);\n groupContext.setValue(nextGroupValue, details);\n }\n },\n onClick(event) {\n // The click dispatched from the root's `onClick` is an implementation detail\n // and must not reach ancestors, which already receive the original click.\n event.stopPropagation();\n },\n onFocus() {\n controlRef.current?.focus();\n }\n },\n // React <19 sets an empty value if `undefined` is passed explicitly\n // To avoid this, we only set the value if it's defined\n valueProp !== undefined ? {\n value: (groupContext ? checked && valueProp : valueProp) || ''\n } : EMPTY_OBJECT, getDescriptionProps, props => validation.getValidationProps(disabled, props));\n React.useEffect(() => {\n if (!parentContext || value === undefined) {\n return undefined;\n }\n const disabledStates = parentContext.disabledStatesRef.current;\n disabledStates.set(value, disabled);\n return () => {\n disabledStates.delete(value);\n };\n }, [parentContext, disabled, value]);\n const state = React.useMemo(() => ({\n ...fieldState,\n checked: computedChecked,\n disabled,\n readOnly,\n required,\n indeterminate: computedIndeterminate\n }), [fieldState, computedChecked, disabled, readOnly, required, computedIndeterminate]);\n const stateAttributesMapping = getCheckboxStateAttributesMapping(state);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: [buttonRef, controlRef, forwardedRef],\n props: [{\n id: nativeButton ? inputId ?? undefined : id,\n role: 'checkbox',\n 'aria-checked': computedIndeterminate ? 'mixed' : computedChecked,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': ariaLabelledBy,\n [PARENT_CHECKBOX]: parent ? '' : undefined,\n onFocus() {\n if (!disabled) {\n setFocused(true);\n }\n },\n onBlur() {\n const inputEl = inputRef.current;\n if (!inputEl) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(groupContext ? groupValue : inputEl.checked);\n }\n },\n onKeyDown(event) {\n if (event.key !== 'Enter') {\n return;\n }\n\n // Let consumer `preventDefault()` handlers opt out while defensively stopping\n // any remaining Base UI Enter handling from treating the checkbox as a button.\n event.preventBaseUIHandler();\n if (event.defaultPrevented) {\n return;\n }\n const formToSubmit = inputRef.current?.form ?? null;\n const currentTarget = event.currentTarget;\n const nativeEvent = event.nativeEvent;\n const originalPreventDefault = event.preventDefault;\n const originalNativePreventDefault = nativeEvent.preventDefault;\n let preventDefaultCalledAfterPropagation = false;\n event.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalPreventDefault.call(event);\n };\n nativeEvent.preventDefault = () => {\n preventDefaultCalledAfterPropagation = true;\n originalNativePreventDefault.call(nativeEvent);\n };\n\n // Enter should not activate/toggle the checkbox. Cancel the native button behavior\n // without setting React's synthetic `defaultPrevented`, so ancestor React handlers\n // can still opt out by calling `preventDefault()` during propagation.\n originalNativePreventDefault.call(nativeEvent);\n ownerWindow(currentTarget).queueMicrotask(() => {\n event.preventDefault = originalPreventDefault;\n nativeEvent.preventDefault = originalNativePreventDefault;\n if (!preventDefaultCalledAfterPropagation) {\n getDefaultFormSubmitter(formToSubmit)?.click();\n }\n });\n },\n onClick(event) {\n if (readOnly || disabled) {\n return;\n }\n event.preventDefault();\n const input = inputRef.current;\n if (!input) {\n return;\n }\n dispatchClickWithModifiers(input, event);\n }\n }, elementProps, otherGroupProps, getButtonProps, getDescriptionProps, props => validation.getValidationProps(disabled, props)],\n stateAttributesMapping\n });\n return /*#__PURE__*/_jsxs(CheckboxRootContext.Provider, {\n value: state,\n children: [element, !checked && !groupContext && name && !parent && uncheckedValue !== undefined && /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: uncheckedValue,\n disabled: disabled\n }), /*#__PURE__*/_jsx(\"input\", {\n ...inputProps,\n suppressHydrationWarning: true\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxRoot.displayName = \"CheckboxRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useCheckboxRootContext } from \"../root/CheckboxRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { getCheckboxStateAttributesMapping } from \"../utils/getCheckboxStateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\n\n/**\n * Indicates whether the checkbox is ticked.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Checkbox](https://base-ui.com/react/components/checkbox)\n */\nexport const CheckboxIndicator = /*#__PURE__*/React.forwardRef(function CheckboxIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted = false,\n ...elementProps\n } = componentProps;\n const rootState = useCheckboxRootContext();\n const rendered = rootState.checked || rootState.indeterminate;\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(rendered);\n const indicatorRef = React.useRef(null);\n const state = {\n ...rootState,\n transitionStatus\n };\n useOpenChangeComplete({\n open: rendered,\n ref: indicatorRef,\n onComplete() {\n if (!rendered) {\n setMounted(false);\n }\n }\n });\n const baseStateAttributesMapping = getCheckboxStateAttributesMapping(rootState);\n const stateAttributesMapping = {\n ...baseStateAttributesMapping,\n ...transitionStatusMapping\n };\n const shouldRender = keepMounted || mounted;\n const element = useRenderElement('span', componentProps, {\n ref: [forwardedRef, indicatorRef],\n state,\n stateAttributesMapping,\n props: elementProps\n });\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") CheckboxIndicator.displayName = \"CheckboxIndicator\";","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-indicator.tsx\nconst TRCheckboxIndicator = createComponentPart(Checkbox.Indicator, \"tr-checkbox-indicator\");\n//#endregion\nexport { TRCheckboxIndicator };\n\n//# sourceMappingURL=checkbox-indicator.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { createElement, useEffect, useRef, useState } from \"react\";\nimport { Checkbox } from \"@base-ui/react/checkbox\";\n//#region src/components/checkbox/checkbox-root.tsx\nfunction TRCheckboxRoot({ checked, className, ref, uiSize = \"md\", ...props }) {\n\tconst rootRef = useRef(null);\n\tconst [resetKey, setResetKey] = useState(0);\n\tuseEffect(() => {\n\t\tif (checked !== void 0) return;\n\t\tconst reset = (event) => {\n\t\t\tconst form = event.target;\n\t\t\tif (!(form instanceof HTMLFormElement)) return;\n\t\t\tlet sibling = rootRef.current?.nextElementSibling ?? null;\n\t\t\twhile (sibling instanceof HTMLInputElement) {\n\t\t\t\tif (sibling.type === \"checkbox\" && sibling.form === form) {\n\t\t\t\t\tsetResetKey((current) => current + 1);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsibling = sibling.nextElementSibling;\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"reset\", reset, true);\n\t\treturn () => document.removeEventListener(\"reset\", reset, true);\n\t}, [checked]);\n\treturn /* @__PURE__ */ createElement(Checkbox.Root, {\n\t\t...props,\n\t\tchecked,\n\t\tclassName: mergeComponentClassName(\"tr-checkbox\", className),\n\t\t\"data-ui-size\": uiSize,\n\t\tkey: resetKey,\n\t\tref: (node) => {\n\t\t\trootRef.current = node;\n\t\t\tif (typeof ref === \"function\") ref(node);\n\t\t\telse if (ref) ref.current = node;\n\t\t}\n\t});\n}\n//#endregion\nexport { TRCheckboxRoot };\n\n//# sourceMappingURL=checkbox-root.js.map","import { TRCheckboxIndicator } from \"./checkbox-indicator.js\";\nimport { TRCheckboxRoot } from \"./checkbox-root.js\";\n//#region src/components/checkbox/index.tsx\nconst TRCheckbox = {\n\tRoot: TRCheckboxRoot,\n\tIndicator: TRCheckboxIndicator\n};\n//#endregion\nexport { TRCheckbox, TRCheckboxIndicator, TRCheckboxRoot };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-
|
|
2
|
-
//# sourceMappingURL=circle-check-
|
|
1
|
+
import{t as e}from"./createLucideIcon-D-yizrWN.js";var t=e(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]);export{t};
|
|
2
|
+
//# sourceMappingURL=circle-check-Cnzuu7xR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle-check-
|
|
1
|
+
{"version":3,"file":"circle-check-Cnzuu7xR.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/circle-check.mjs"],"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: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n];\nconst CircleCheck = createLucideIcon(\"circle-check\", __iconNode);\n\nexport { __iconNode, CircleCheck as default };\n//# sourceMappingURL=circle-check.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAaA,IAAM,EAAc,EAAiB,eAAgB,CAHnD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,EACzD,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAEK,CAAU"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{C as e,X as t,Z as n,c as r,d as i,et as a,h as o,i as s,m as c,n as l,s as u,u as d,v as f,w as p,y as m}from"./createLucideIcon-D-yizrWN.js";import{Ar as h,Bt as g,Ft as _,It as v,Lt as y,On as b,S as x,an as S,t as C,zt as w}from"./config-C18-l7z7.js";import{t as T}from"./useMutation-DqIIIiBW.js";import{Dt as E,E as D,K as O,_ as k,b as A,c as j,d as ee,f as M,h as N,m as P,p as F,v as I,x as L,y as te}from"./shell-header-bar-CdOEWmCT.js";import{a as ne,c as R,d as re,f as ie,i as ae,l as z,n as oe,o as se,p as ce,r as B,s as le,t as ue,u as V}from"./use-admin-selection-D2b7jnym.js";import{c as de,d as fe,g as H,h as U,n as pe,o as me,t as he,u as ge}from"./admin-shell-B91U4-Ro.js";import{W,o as _e}from"./index-lTEyHSus.js";import{t as ve}from"./badge-B8D0Q2qq.js";import{t as G}from"./checkbox-DTPGfvmq.js";import{t as ye}from"./form-sJw-V9wb.js";import{t as be}from"./field-CsrUbl__.js";import{t as xe}from"./input-QvBxPgy5.js";import{t as K}from"./table-Dl89o43x.js";import{t as Se}from"./Separator-C6MmGAmP.js";import{n as q,t as J}from"./modal-JuaLVSyx.js";var Y=a(n(),1),X=t(),Ce=Y.forwardRef(function(e,t){return(0,X.jsx)(Se,{orientation:L().orientation===`vertical`?`horizontal`:`vertical`,...e,ref:t})}),we=[];function Te(t){let{loopFocus:n=!0,orientation:r=`both`,grid:i,onLoop:a,direction:o,highlightedIndex:s,onHighlightedIndexChange:l,rootRef:u,enableHomeAndEndKeys:d=!1,stopEventPropagation:f,disabledIndices:m,modifierKeys:h=we}=t,[b,x]=Y.useState(0),C=i!=null,T=Y.useRef(null),E=c(T,u),D=Y.useRef([]),k=Y.useRef(!1),A=s??b,j=p((e,t=!1)=>{if((l??x)(e),t){let t=D.current[e];te(T.current,t,o,r)}}),L=p(e=>{if(e.size===0||k.current)return;k.current=!0;let t=Array.from(e.keys()),n=t.find(e=>e?.hasAttribute(`data-composite-item-active`))??null,i=n?e.get(n)?.index??-1:-1;if(i!==-1)j(i);else if(g(t,A,m)){let e=_(t,{disabledIndices:m});w(t,e)||j(e)}te(T.current,n,o,r)});e(()=>{if(m==null||s!=null||!k.current)return;let e=D.current;if(g(e,A,m)){let t=_(e,{disabledIndices:m});w(e,t)||j(t)}},[m,s,A,D,j]);let ne=p((e,t,n)=>a?a(e,t,n,D):n),R=p(e=>{let t=e.key===`Home`||e.key===`End`;if(!N.has(e.key)||!d&&t||Ee(e,h)||!T.current)return;let s=o===`rtl`,c=s?M:F,l=s?F:M,u=r===`vertical`?ee:c,p=r===`vertical`?P:l,g=S(e.nativeEvent);if(g!=null&&I(g)&&!O(g)){let t=g.selectionStart,n=g.selectionEnd,r=g.value;if(t==null||e.shiftKey||t!==n||e.key!==p&&t<r.length||e.key!==u&&t>0)return}let b=A,x=y(D,m),E=v(D,m);i!=null&&(b=i({disabledIndices:m,elementsRef:D,event:e,highlightedIndex:A,loopFocus:n,maxIndex:E,minIndex:x,onLoop:ne,orientation:r,rtl:s}));let k=r!==`vertical`&&e.key===c||r!==`horizontal`&&e.key===`ArrowDown`,L=r!==`vertical`&&e.key===l||r!==`horizontal`&&e.key===`ArrowUp`;d&&(e.key===`Home`?b=x:e.key===`End`&&(b=E)),b===A&&(k||L)&&(n&&b===E&&k?(b=x,a&&(b=a(e,A,b,D))):n&&b===x&&L?(b=E,a&&(b=a(e,A,b,D))):b=_(D.current,{startingIndex:b,decrement:L,disabledIndices:m})),b!==A&&!w(D.current,b)&&(f&&e.stopPropagation(),(C||t||k||L)&&e.preventDefault(),j(b,!0),queueMicrotask(()=>{D.current[b]?.focus()}))});return{props:{ref:E,onFocus(e){let t=T.current,n=S(e.nativeEvent);!t||n==null||!I(n)||n.setSelectionRange(0,n.value.length)},onKeyDown:R},highlightedIndex:A,onHighlightedIndexChange:j,elementsRef:D,onMapChange:L,relayKeyboardEvent:R}}function Ee(e,t){for(let n of k)if(!t.includes(n)&&e.getModifierState(n))return!0;return!1}function De(e){let{render:t,className:n,style:a,refs:o=d,props:s=d,state:c=i,stateAttributesMapping:l,highlightedIndex:u,onHighlightedIndexChange:f,orientation:p,grid:h,loopFocus:g,onLoop:_,enableHomeAndEndKeys:v,onMapChange:y,stopEventPropagation:b=!0,rootRef:S,disabledIndices:C,modifierKeys:w,highlightItemOnHover:T=!1,tag:E=`div`,...O}=e,{props:k,highlightedIndex:A,onHighlightedIndexChange:j,elementsRef:ee,onMapChange:M,relayKeyboardEvent:N}=Te({grid:h,loopFocus:g,onLoop:_,orientation:p,highlightedIndex:u,onHighlightedIndexChange:f,rootRef:S,stopEventPropagation:b,enableHomeAndEndKeys:v,direction:x(),disabledIndices:C,modifierKeys:w}),P=r(E,e,{state:c,ref:o,props:[k,...s,O],stateAttributesMapping:l}),F=Y.useMemo(()=>({highlightedIndex:A,onHighlightedIndexChange:j,highlightItemOnHover:T,relayKeyboardEvent:N}),[A,j,T,N]);return(0,X.jsx)(m.Provider,{value:F,children:(0,X.jsx)(D,{elementsRef:ee,onMapChange:e=>{y?.(e),M(e)},children:P})})}var Oe=Y.forwardRef(function(e,t){let{disabled:n=!1,loopFocus:r,orientation:i=`horizontal`,className:a,render:o,style:s,...c}=e,[l,u]=Y.useState(()=>new Map),d=Y.useMemo(()=>{let e=[];for(let t of l.values())t.disabled&&!t.focusableWhenDisabled&&e.push(t.index);return e},[l]),f=Y.useMemo(()=>({disabled:n,orientation:i}),[n,i]),p={disabled:n,orientation:i},m={"aria-orientation":i,role:`toolbar`};return(0,X.jsx)(A.Provider,{value:f,children:(0,X.jsx)(De,{render:o,className:a,style:s,state:p,refs:[t],props:[m,c],disabledIndices:d,loopFocus:r,onMapChange:u,orientation:i})})}),ke=Y.createContext(void 0);function Ae(){return Y.useContext(ke)}var je=Y.forwardRef(function(e,t){let{className:n,disabled:i=!1,render:a,style:o,...s}=e,{orientation:c,disabled:l}=L(),u=l||i,d=Y.useMemo(()=>({disabled:u}),[u]),f=r(`div`,e,{state:{disabled:u,orientation:c},ref:t,props:[{role:`group`},s]});return(0,X.jsx)(ke.Provider,{value:d,children:f})}),Me=Y.forwardRef(function(e,t){let{className:n,disabled:r=!1,focusableWhenDisabled:a=!0,render:s,nativeButton:c,style:l,...u}=e,{disabled:d,orientation:f}=L(),p=Ae(),m=d||(p?.disabled??!1)||r,h=Y.useMemo(()=>({disabled:m,focusableWhenDisabled:a}),[m,a]),{getButtonProps:g,buttonRef:_}=o({disabled:m,focusableWhenDisabled:a,native:c});return(0,X.jsx)(H,{tag:`button`,render:s,className:n,style:l,metadata:h,state:{disabled:m,orientation:f,focusable:a},refs:[t,_],props:[u,s?{disabled:m}:i,g]})}),Ne={disabled:!1,focusableWhenDisabled:!0},Pe=Y.forwardRef(function(e,t){let{className:n,render:r,style:i,...a}=e,{orientation:o}=L();return(0,X.jsx)(H,{tag:`a`,render:r,className:n,style:i,metadata:Ne,state:{orientation:o},refs:[t],props:[a]})}),Fe=Y.forwardRef(function(e,t){let{className:n,focusableWhenDisabled:r=!0,render:i,disabled:a=!1,style:o,...s}=e,{disabled:c,orientation:l}=L(),u=Ae(),d=c||(u?.disabled??!1)||a,p=Y.useMemo(()=>({disabled:d,focusableWhenDisabled:r}),[d,r]),{props:m}=f({composite:!0,disabled:d,focusableWhenDisabled:r,isNativeButton:!1}),h={disabled:d,orientation:l,focusable:r},g=e=>{d&&e.preventDefault()};return(0,X.jsx)(H,{tag:`input`,render:i,className:n,style:o,metadata:p,state:h,refs:[t],props:[{onClick:g,onPointerDown:g},s,m]})}),Ie=b(Me,`tr-toolbar-button`),Le=b(je,`tr-toolbar-group`),Re=b(Fe,`tr-toolbar-input`,{tracksFocusModality:!0}),ze=b(Pe,`tr-toolbar-link`),Be={Root:b(Oe,`tr-toolbar`),Group:Le,Button:Ie,Link:ze,Input:Re,Separator:b(Ce,`tr-toolbar-separator`)};function Ve(){let e=_e.useRouteContext({select:e=>e.user});return e?.role===`admin`?(0,X.jsx)(He,{user:e}):(0,X.jsx)(U,{reason:`access-required`})}function He({user:e}){let{data:t}=E(C);return t.admin.enabled?(0,X.jsx)(Ue,{user:e}):(0,X.jsx)(U,{reason:`console-disabled`})}function Ue({user:e}){let{t}=s(),n=h(),[r,i]=(0,Y.useState)(``),[a,o]=(0,Y.useState)({page:1,pageSize:20}),[c,d]=(0,Y.useState)(null),[f,p]=(0,Y.useState)(null),[m,g]=(0,Y.useState)(null),{data:_}=E(pe(a)),v=ue(_.clients.map(e=>e.id)),y=()=>n.invalidateQueries({queryKey:[`admin`]}),b=T({mutationFn:de,onSuccess:e=>{y(),d(null),g(e.client_secret??null)}}),x=T({mutationFn:({id:e,input:t})=>fe(e,t),onSuccess:()=>{y(),d(null)}}),S=T({mutationFn:ge,onSuccess:e=>{y(),g(e.client_secret)}}),C=T({mutationFn:me,onSuccess:()=>{y(),v.clear(),p(null)}}),w=a.page??1,D=a.pageSize??20,O=v.selection.kind===`filter`?_.pagination.total:v.selectedCount??0,k=v.selection.kind===`filter`?{kind:`filter`,filter:{query:a.query,managed_by:a.managedBy,enabled:a.enabled}}:{kind:`ids`,ids:[...v.selection.ids]},A=e=>{v.clear(),o(e)};return(0,X.jsxs)(he,{current:`clients`,title:t(`admin.clients.title`),user:e,children:[(0,X.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,X.jsxs)(ae,{onCreate:()=>d(`create`),onQueryChange:i,onSearch:()=>A({...a,query:r.trim(),page:1}),query:r,title:t(`admin.clients.title`),total:_.pagination.total,children:[(0,X.jsx)(B,{label:t(`admin.clients.type`),onChange:e=>A({...a,type:e===`public`?`public`:e===`confidential`?`confidential`:void 0,page:1}),options:[[`all`,t(`admin.filter.allTypes`)],[`public`,t(`admin.clients.public`)],[`confidential`,t(`admin.clients.confidential`)]],value:a.type??`all`}),(0,X.jsx)(B,{label:t(`admin.table.status`),onChange:e=>A({...a,enabled:e===`all`?void 0:e===`active`,page:1}),options:[[`all`,t(`admin.filter.allStatuses`)],[`active`,t(`admin.status.active`)],[`inactive`,t(`admin.status.inactive`)]],value:a.enabled===void 0?`all`:a.enabled?`active`:`inactive`})]}),(0,X.jsxs)(ce,{children:[(0,X.jsxs)(ie,{label:t(`admin.clients.title`),children:[(0,X.jsx)(K.Header,{className:`sticky top-0 z-tinyrack-component-raised`,children:(0,X.jsxs)(K.Row,{children:[(0,X.jsx)(re,{header:!0,children:(0,X.jsx)(le,{checked:v.allOnPage,indeterminate:v.someOnPage,onChange:v.togglePage})}),(0,X.jsx)(V,{header:!0,children:(0,X.jsx)(R,{direction:a.direction??`asc`,label:t(`admin.clients.name`),onClick:()=>A({...a,direction:a.direction===`desc`?`asc`:`desc`,page:1})})}),(0,X.jsx)(K.Head,{children:t(`admin.clients.clientId`)}),(0,X.jsx)(K.Head,{children:t(`admin.clients.type`)}),(0,X.jsx)(K.Head,{children:t(`admin.clients.source`)}),(0,X.jsx)(K.Head,{children:t(`admin.table.status`)}),(0,X.jsx)(K.Head,{children:t(`admin.clients.redirects`)}),(0,X.jsx)(K.Head,{children:t(`admin.clients.scopes`)}),(0,X.jsx)(z,{header:!0,children:t(`admin.table.actions`)})]})}),(0,X.jsx)(K.Body,{children:_.clients.length===0?(0,X.jsx)(K.Row,{children:(0,X.jsx)(K.Cell,{className:`py-tinyrack-3xl text-center`,colSpan:9,children:t(`admin.table.empty`)})}):_.clients.map(e=>(0,X.jsxs)(K.Row,{className:v.isSelected(e.id)?`bg-tinyrack-surface-selected`:void 0,"data-selected":v.isSelected(e.id)?``:void 0,children:[(0,X.jsx)(re,{selected:v.isSelected(e.id),children:(0,X.jsx)(se,{checked:v.isSelected(e.id),label:t(`admin.selection.row`,{name:e.name}),onChange:t=>v.toggleOne(e.id,t)})}),(0,X.jsx)(V,{selected:v.isSelected(e.id),children:(0,X.jsx)(l,{as:`p`,truncate:!0,variant:`bodySm`,weight:`medium`,children:e.name})}),(0,X.jsx)(K.Cell,{children:(0,X.jsx)(W,{children:e.client_id})}),(0,X.jsx)(K.Cell,{children:t(`admin.clients.${e.type}`)}),(0,X.jsx)(K.Cell,{children:t(`admin.source.${e.managed_by}`)}),(0,X.jsx)(K.Cell,{children:(0,X.jsx)(ve,{className:`whitespace-nowrap`,variant:e.enabled?`success`:`neutral`,children:t(e.enabled?`admin.status.active`:`admin.status.inactive`)})}),(0,X.jsx)(K.Cell,{children:e.redirect_uris.length}),(0,X.jsx)(K.Cell,{children:e.scopes.join(`, `)}),(0,X.jsx)(z,{selected:v.isSelected(e.id),children:(0,X.jsxs)(Be.Root,{className:`flex justify-end gap-tinyrack-xs`,children:[(0,X.jsx)(u,{appearance:`ghost`,disabled:e.managed_by===`config`,onClick:()=>d(e),type:`button`,uiSize:`sm`,children:t(`admin.actions.edit`)}),e.type===`confidential`?(0,X.jsx)(u,{appearance:`ghost`,disabled:e.managed_by===`config`,onClick:()=>S.mutate(e.id),type:`button`,uiSize:`sm`,children:t(`admin.clients.rotateSecret`)}):null,(0,X.jsx)(u,{appearance:`ghost`,disabled:e.managed_by===`config`,onClick:()=>C.mutate({target:{kind:`ids`,ids:[e.id]},active:!e.enabled}),type:`button`,uiSize:`sm`,children:t(e.enabled?`admin.actions.deactivate`:`admin.actions.restore`)})]})})]},e.id))})]}),(0,X.jsx)(ne,{onPageChange:e=>A({...a,page:e}),onPageSizeChange:e=>A({...a,page:1,pageSize:e}),page:w,pageSize:D,total:_.pagination.total})]})]}),O>0?(0,X.jsx)(oe,{canExpand:v.allOnPage&&_.pagination.total>_.clients.length,filterSelected:v.selection.kind===`filter`,onActivate:()=>p(!0),onClear:v.clear,onDeactivate:()=>p(!1),onExpand:v.selectFilter,pending:C.isPending,selected:O,total:_.pagination.total}):null,(0,X.jsx)(Ke,{active:f,count:O,filterSelected:v.selection.kind===`filter`,onClose:()=>p(null),onRun:()=>C.mutate({target:k,active:f??!0})}),(0,X.jsx)(We,{client:c===`create`?void 0:c??void 0,isOpen:c!==null,onClose:()=>d(null),onSubmit:e=>{if(c&&c!==`create`){let{client_id:t,type:n,...r}=e;x.mutate({id:c.id,input:r})}else b.mutate(e)},pending:b.isPending||x.isPending}),(0,X.jsx)(J,{description:t(`admin.clients.secretDescription`),isOpen:m!==null,onClose:()=>g(null),title:t(`admin.clients.secretTitle`),children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-md pt-tinyrack-lg`,children:[(0,X.jsx)(W,{className:`break-all rounded-tinyrack-md bg-tinyrack-surface-muted p-tinyrack-md`,children:m}),(0,X.jsx)(l,{color:`warning`,variant:`bodySm`,children:t(`admin.clients.secretWarning`)}),(0,X.jsx)(q,{children:(0,X.jsx)(u,{onClick:()=>g(null),type:`button`,children:t(`common.dismiss`)})})]})})]})}function Z(e,t){let n=e.get(t);return typeof n==`string`?n.trim():``}function Q(e,t){return Z(e,t).split(/[\n,]/).map(e=>e.trim()).filter(Boolean)}function We({isOpen:e,client:t,pending:n,onClose:r,onSubmit:i}){let{t:a}=s();return(0,X.jsx)(J,{description:a(t?`admin.clients.editDescription`:`admin.clients.createDescription`),isOpen:e,onClose:r,title:a(t?`admin.clients.editTitle`:`admin.clients.createTitle`),children:(0,X.jsxs)(ye,{className:`grid gap-tinyrack-md pt-tinyrack-lg sm:grid-cols-2`,onSubmit:e=>{e.preventDefault();let t=new FormData(e.currentTarget),n=Z(t,`type`);i({client_id:Z(t,`client_id`),name:Z(t,`name`),type:n===`confidential`?`confidential`:`public`,redirect_uris:Q(t,`redirect_uris`),post_logout_redirect_uris:Q(t,`post_logout_redirect_uris`),web_origins:Q(t,`web_origins`),grant_types:Q(t,`grant_types`),response_types:Q(t,`response_types`),scopes:Q(t,`scopes`),skip_consent:t.get(`skip_consent`)===`on`})},children:[(0,X.jsx)($,{defaultValue:t?.client_id,disabled:!!t,label:a(`admin.clients.clientId`),name:`client_id`,required:!0}),(0,X.jsx)($,{defaultValue:t?.name,label:a(`admin.clients.name`),name:`name`,required:!0}),(0,X.jsx)(Ge,{defaultValue:t?.type??`public`,disabled:!!t,label:a(`admin.clients.type`),name:`type`,options:[[`public`,a(`admin.clients.public`)],[`confidential`,a(`admin.clients.confidential`)]]}),(0,X.jsx)($,{defaultValue:t?.scopes.join(`, `),label:a(`admin.clients.scopes`),name:`scopes`,required:!0}),(0,X.jsx)($,{defaultValue:t?.redirect_uris.join(`
|
|
2
|
+
`),label:a(`admin.clients.redirectUris`),name:`redirect_uris`,required:!0}),(0,X.jsx)($,{defaultValue:t?.post_logout_redirect_uris.join(`
|
|
3
|
+
`),label:a(`admin.clients.postLogoutUris`),name:`post_logout_redirect_uris`}),(0,X.jsx)($,{defaultValue:t?.web_origins.join(`
|
|
4
|
+
`),label:a(`admin.clients.webOrigins`),name:`web_origins`}),(0,X.jsx)($,{defaultValue:t?.grant_types.join(`, `)??`authorization_code`,label:a(`admin.clients.grantTypes`),name:`grant_types`,required:!0}),(0,X.jsx)($,{defaultValue:t?.response_types.join(`, `)??`code`,label:a(`admin.clients.responseTypes`),name:`response_types`,required:!0}),(0,X.jsxs)(`div`,{className:`flex items-center gap-tinyrack-sm`,children:[(0,X.jsx)(G.Root,{"aria-label":a(`admin.clients.skipConsent`),defaultChecked:t?.skip_consent,name:`skip_consent`,value:`on`,children:(0,X.jsx)(G.Indicator,{})}),(0,X.jsx)(l,{variant:`caption`,children:a(`admin.clients.skipConsent`)})]}),(0,X.jsxs)(q,{children:[(0,X.jsx)(u,{disabled:n,onClick:r,type:`button`,children:a(`common.dismiss`)}),(0,X.jsx)(u,{disabled:n,intent:`primary`,type:`submit`,children:a(`admin.actions.save`)})]})]})})}function $({label:e,name:t,defaultValue:n,disabled:r,required:i}){return(0,X.jsxs)(be.Root,{children:[(0,X.jsx)(be.Label,{children:e}),(0,X.jsx)(xe,{defaultValue:n,disabled:r,name:t,required:i,uiSize:`sm`})]})}function Ge({label:e,name:t,defaultValue:n,disabled:r,options:i}){return(0,X.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-xs text-tinyrack-xs`,children:[(0,X.jsx)(l,{as:`span`,variant:`caption`,children:e}),(0,X.jsxs)(j.Root,{defaultValue:n,disabled:r,name:t,children:[(0,X.jsx)(j.Trigger,{"aria-label":e,uiSize:`sm`,children:(0,X.jsx)(j.Value,{children:i.find(([e])=>e===n)?.[1]??n})}),(0,X.jsx)(j.Positioner,{children:(0,X.jsx)(j.Popup,{children:(0,X.jsx)(j.List,{children:i.map(([e,t])=>(0,X.jsx)(j.Item,{value:e,children:(0,X.jsx)(j.ItemText,{children:t})},e))})})})]})]})}function Ke({active:e,count:t,filterSelected:n,onClose:r,onRun:i}){let{t:a}=s();return(0,X.jsx)(J,{isOpen:e!==null,onClose:r,title:a(e?`admin.bulk.activateTitle`:`admin.bulk.deactivateTitle`),children:(0,X.jsxs)(`div`,{className:`pt-tinyrack-lg`,children:[(0,X.jsx)(l,{color:`muted`,variant:`bodySm`,children:a(`admin.bulk.confirm`,{count:t,scope:a(n?`admin.selection.filterScope`:`admin.selection.pageScope`)})}),(0,X.jsxs)(q,{children:[(0,X.jsx)(u,{onClick:r,type:`button`,children:a(`common.dismiss`)}),(0,X.jsx)(u,{intent:e?`primary`:`danger`,onClick:i,type:`button`,children:a(`admin.bulk.run`)})]})]})})}export{Ve as component};
|
|
5
|
+
//# sourceMappingURL=clients-DLqy7K3N.js.map
|