admin-ui-starter-kit 0.4.2 → 0.4.4
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/.agents/skills/admin-ui-consumer-migration/SKILL.md +10 -0
- package/.agents/skills/admin-ui-consumer-migration/references/actions-service.md +236 -0
- package/.agents/skills/component-library-rules/SKILL.md +7 -1
- package/.agents/skills/component-library-rules/references/base-wrapper.md +24 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.json +4 -3
- package/.agents/skills/component-library-rules/references/components/INDEX.md +4 -3
- package/.agents/skills/component-library-rules/references/components/ui__inputs.md +117 -18
- package/.agents/skills/component-library-rules/references/components/ui__layout-primitives.md +71 -0
- package/.agents/skills/component-library-rules/references/components/ui__menus.md +125 -43
- package/.agents/skills/component-library-rules/references/components/ui__overlays.md +117 -42
- package/AGENTS.md +7 -4
- package/CHANGELOG.md +26 -1
- package/COMPONENT_SELECTION.md +10 -1
- package/INTEGRATION.md +47 -0
- package/README.md +62 -5
- package/dist/_shared/accordion-Df1XrCDv.cjs +2 -0
- package/dist/_shared/accordion-Df1XrCDv.cjs.map +1 -0
- package/dist/_shared/accordion-Rzi9wEl6.js +130 -0
- package/dist/_shared/accordion-Rzi9wEl6.js.map +1 -0
- package/dist/_shared/action-menu-CrOJ63Q9.js +96 -0
- package/dist/_shared/action-menu-CrOJ63Q9.js.map +1 -0
- package/dist/_shared/action-menu-D9OowHKx.cjs +2 -0
- package/dist/_shared/action-menu-D9OowHKx.cjs.map +1 -0
- package/dist/_shared/ai-artifact-D4EjKoq6.cjs +3 -0
- package/dist/_shared/ai-artifact-D4EjKoq6.cjs.map +1 -0
- package/dist/_shared/ai-artifact-nlOrSeqT.js +1099 -0
- package/dist/_shared/ai-artifact-nlOrSeqT.js.map +1 -0
- package/dist/_shared/auth-C5HawWvp.cjs +2 -0
- package/dist/_shared/auth-C5HawWvp.cjs.map +1 -0
- package/dist/_shared/auth-DnMEJXP9.js +643 -0
- package/dist/_shared/auth-DnMEJXP9.js.map +1 -0
- package/dist/_shared/badge-6WYAMJwA.js +108 -0
- package/dist/_shared/badge-6WYAMJwA.js.map +1 -0
- package/dist/_shared/badge-CBof1rbF.cjs +2 -0
- package/dist/_shared/badge-CBof1rbF.cjs.map +1 -0
- package/dist/_shared/button-BGKY8UY0.js +173 -0
- package/dist/_shared/button-BGKY8UY0.js.map +1 -0
- package/dist/_shared/button-BI347RlM.cjs +2 -0
- package/dist/_shared/button-BI347RlM.cjs.map +1 -0
- package/dist/_shared/button-DEFoa7-c.cjs +2 -0
- package/dist/_shared/button-DEFoa7-c.cjs.map +1 -0
- package/dist/_shared/button-DlqryxqA.js +46 -0
- package/dist/_shared/button-DlqryxqA.js.map +1 -0
- package/dist/_shared/buttons-PL-TGJ32.js +143 -0
- package/dist/_shared/buttons-PL-TGJ32.js.map +1 -0
- package/dist/_shared/buttons-kVvSD_oI.cjs +2 -0
- package/dist/_shared/buttons-kVvSD_oI.cjs.map +1 -0
- package/dist/_shared/combobox-B4KmDZK0.cjs +2 -0
- package/dist/_shared/combobox-B4KmDZK0.cjs.map +1 -0
- package/dist/_shared/combobox-YUGi3xSc.js +810 -0
- package/dist/_shared/combobox-YUGi3xSc.js.map +1 -0
- package/dist/_shared/comments-GzXdwpq4.js +952 -0
- package/dist/_shared/comments-GzXdwpq4.js.map +1 -0
- package/dist/_shared/comments-Zj_foV1V.cjs +2 -0
- package/dist/_shared/comments-Zj_foV1V.cjs.map +1 -0
- package/dist/_shared/date-picker-Dl91BM3D.js +1361 -0
- package/dist/_shared/date-picker-Dl91BM3D.js.map +1 -0
- package/dist/_shared/date-picker-zFOqtmAS.cjs +2 -0
- package/dist/_shared/date-picker-zFOqtmAS.cjs.map +1 -0
- package/dist/_shared/date-pickers-BBydcIjN.cjs +2 -0
- package/dist/_shared/date-pickers-BBydcIjN.cjs.map +1 -0
- package/dist/_shared/date-pickers-D2OsgV4V.js +330 -0
- package/dist/_shared/date-pickers-D2OsgV4V.js.map +1 -0
- package/dist/_shared/dialog-CCN4tjU9.js +101 -0
- package/dist/_shared/dialog-CCN4tjU9.js.map +1 -0
- package/dist/_shared/dialog-Dd0ENSrU.cjs +2 -0
- package/dist/_shared/dialog-Dd0ENSrU.cjs.map +1 -0
- package/dist/_shared/display-Dhy5ogxC.cjs +2 -0
- package/dist/_shared/display-Dhy5ogxC.cjs.map +1 -0
- package/dist/_shared/display-NBtWdAMl.js +1154 -0
- package/dist/_shared/display-NBtWdAMl.js.map +1 -0
- package/dist/_shared/forms-BweX9Lm8.cjs +2 -0
- package/dist/_shared/forms-BweX9Lm8.cjs.map +1 -0
- package/dist/_shared/forms-L1hyNKpZ.js +3430 -0
- package/dist/_shared/forms-L1hyNKpZ.js.map +1 -0
- package/dist/_shared/header-BSBPtGn4.cjs +2 -0
- package/dist/_shared/header-BSBPtGn4.cjs.map +1 -0
- package/dist/_shared/header-No6GSp4R.js +360 -0
- package/dist/_shared/header-No6GSp4R.js.map +1 -0
- package/dist/_shared/hooks-BkXvZ4py.js +118 -0
- package/dist/_shared/hooks-BkXvZ4py.js.map +1 -0
- package/dist/_shared/hooks-D3SbLBRk.cjs +2 -0
- package/dist/_shared/hooks-D3SbLBRk.cjs.map +1 -0
- package/dist/_shared/mentions-CA1Ka_Bv.cjs +2 -0
- package/dist/_shared/mentions-CA1Ka_Bv.cjs.map +1 -0
- package/dist/_shared/mentions-CdvvLGQG.js +506 -0
- package/dist/_shared/mentions-CdvvLGQG.js.map +1 -0
- package/dist/_shared/metadata-Ckcmar8d.js +235 -0
- package/dist/_shared/metadata-Ckcmar8d.js.map +1 -0
- package/dist/_shared/metadata-DamdYVZL.cjs +2 -0
- package/dist/_shared/metadata-DamdYVZL.cjs.map +1 -0
- package/dist/_shared/navigation-BemwPPC8.cjs +2 -0
- package/dist/_shared/navigation-BemwPPC8.cjs.map +1 -0
- package/dist/_shared/navigation-DY540HB0.js +419 -0
- package/dist/_shared/navigation-DY540HB0.js.map +1 -0
- package/dist/_shared/overlays-CJs_syAu.js +648 -0
- package/dist/_shared/overlays-CJs_syAu.js.map +1 -0
- package/dist/_shared/overlays-DWFEaAog.cjs +2 -0
- package/dist/_shared/overlays-DWFEaAog.cjs.map +1 -0
- package/dist/_shared/page-Cg_gNpyK.js +262 -0
- package/dist/_shared/page-Cg_gNpyK.js.map +1 -0
- package/dist/_shared/page-CpFWQuWU.cjs +2 -0
- package/dist/_shared/page-CpFWQuWU.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-B2VqNi6j.js +620 -0
- package/dist/_shared/rich-text-editor-B2VqNi6j.js.map +1 -0
- package/dist/_shared/rich-text-editor-ChE-pI3N.cjs +2 -0
- package/dist/_shared/rich-text-editor-ChE-pI3N.cjs.map +1 -0
- package/dist/_shared/sheet-BOgUA4fC.cjs +2 -0
- package/dist/_shared/sheet-BOgUA4fC.cjs.map +1 -0
- package/dist/_shared/sheet-DWQuyRRz.js +100 -0
- package/dist/_shared/sheet-DWQuyRRz.js.map +1 -0
- package/dist/_shared/sidebar-BGpi9K_Q.js +389 -0
- package/dist/_shared/sidebar-BGpi9K_Q.js.map +1 -0
- package/dist/_shared/sidebar-BTFfxmNG.cjs +2 -0
- package/dist/_shared/sidebar-BTFfxmNG.cjs.map +1 -0
- package/dist/_shared/sidebar-CC3lcvNX.cjs +2 -0
- package/dist/_shared/sidebar-CC3lcvNX.cjs.map +1 -0
- package/dist/_shared/sidebar-wmztVpnO.js +538 -0
- package/dist/_shared/sidebar-wmztVpnO.js.map +1 -0
- package/dist/_shared/smart-card-B6m7tmt0.cjs +2 -0
- package/dist/_shared/smart-card-B6m7tmt0.cjs.map +1 -0
- package/dist/_shared/smart-card-thLb85Ih.js +361 -0
- package/dist/_shared/smart-card-thLb85Ih.js.map +1 -0
- package/dist/_shared/table-BItnJ8lG.cjs +2 -0
- package/dist/_shared/table-BItnJ8lG.cjs.map +1 -0
- package/dist/_shared/table-D3349b-v.js +1189 -0
- package/dist/_shared/table-D3349b-v.js.map +1 -0
- package/dist/_shared/workspace-BGVeTeJy.js +357 -0
- package/dist/_shared/workspace-BGVeTeJy.js.map +1 -0
- package/dist/_shared/workspace-CWyzTUmE.cjs +2 -0
- package/dist/_shared/workspace-CWyzTUmE.cjs.map +1 -0
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.js +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/date-pickers/index.cjs +1 -1
- package/dist/components/base/date-pickers/index.js +2 -2
- package/dist/components/base/display/alert.d.ts +1 -1
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.js +6 -6
- package/dist/components/base/display/metadata/index.cjs +1 -1
- package/dist/components/base/display/metadata/index.js +1 -1
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.js +41 -41
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.js +31 -31
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +2 -2
- package/dist/components/base/sheet/index.cjs +1 -1
- package/dist/components/base/sheet/index.js +1 -1
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/index.js +2 -2
- package/dist/components/base/sidebar/sidebar.d.ts +5 -3
- package/dist/components/base/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.js +47 -47
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +105 -105
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.js +89 -89
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +116 -116
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.js +127 -127
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +37 -37
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +3 -3
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +55 -55
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +1 -1
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +2 -2
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +56 -56
- package/dist/components/features/ai-chat/index.cjs +2 -2
- package/dist/components/features/ai-chat/index.js +53 -53
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +21 -21
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +3 -3
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.js +143 -143
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +57 -57
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +14 -14
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.js +178 -178
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/alert-dialog.d.ts.map +1 -1
- package/dist/components/features/overlays/drawer.d.ts +1 -1
- package/dist/components/features/overlays/drawer.d.ts.map +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/overlays/overlays.types.d.ts +1 -0
- package/dist/components/features/overlays/overlays.types.d.ts.map +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.js +124 -124
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +26 -26
- package/dist/components/features/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.js +1 -1
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +6 -6
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/components/ui/alert-dialog.d.ts +19 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts +1 -1
- package/dist/components/ui/aspect-ratio.d.ts +5 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/carousel.d.ts +29 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/direction.d.ts +2 -0
- package/dist/components/ui/direction.d.ts.map +1 -0
- package/dist/components/ui/drawer.d.ts +14 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/field.d.ts +25 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/input-otp.d.ts +12 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/kbd.d.ts +4 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/menubar.d.ts +30 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/native-select.d.ts +9 -0
- package/dist/components/ui/native-select.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +12 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/resizable.d.ts +8 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/services/actions/action-overlay-outlet.d.ts +4 -0
- package/dist/services/actions/action-overlay-outlet.d.ts.map +1 -0
- package/dist/services/actions/action-provider.d.ts +8 -0
- package/dist/services/actions/action-provider.d.ts.map +1 -0
- package/dist/services/actions/action-scope.d.ts +4 -0
- package/dist/services/actions/action-scope.d.ts.map +1 -0
- package/dist/services/actions/action-store.d.ts +44 -0
- package/dist/services/actions/action-store.d.ts.map +1 -0
- package/dist/services/actions/actions.strings.d.ts +3 -0
- package/dist/services/actions/actions.strings.d.ts.map +1 -0
- package/dist/services/actions/actions.types.d.ts +248 -0
- package/dist/services/actions/actions.types.d.ts.map +1 -0
- package/dist/services/actions/hooks.d.ts +8 -0
- package/dist/services/actions/hooks.d.ts.map +1 -0
- package/dist/services/actions/index.cjs +2 -0
- package/dist/services/actions/index.cjs.map +1 -0
- package/dist/services/actions/index.d.ts +8 -0
- package/dist/services/actions/index.d.ts.map +1 -0
- package/dist/services/actions/index.js +562 -0
- package/dist/services/actions/index.js.map +1 -0
- package/dist/showcase/assets/AreaChart-BYEewdc_.js +6 -0
- package/dist/showcase/assets/CSPContext-B11tftuK.js +1 -0
- package/dist/showcase/assets/CompositeItem-Duekeg4m.js +1 -0
- package/dist/showcase/assets/CompositeRoot-BgNU3T7R.js +1 -0
- package/dist/showcase/assets/DialogTrigger-9xWmoeF5.js +1 -0
- package/dist/showcase/assets/FieldItemContext-BSFHjS7g.js +1 -0
- package/dist/showcase/assets/LabelableContext-B3W_70Qk.js +1 -0
- package/dist/showcase/assets/PreviewLayout-nADJqRlP.js +1 -0
- package/dist/showcase/assets/RadioGroup-Bp1VCzxr.js +1 -0
- package/dist/showcase/assets/Separator-9PWX3shz.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-DwELw9xS.js +1 -0
- package/dist/showcase/assets/accordion-CfqHO9_z.js +171 -0
- package/dist/showcase/assets/accordion-variants-pkPHxkLW.js +1 -0
- package/dist/showcase/assets/action-menu-DFzSuDjI.js +1 -0
- package/dist/showcase/assets/activities-Bo97b2-I.js +501 -0
- package/dist/showcase/assets/activities-feed-card-D77gf27B.js +1 -0
- package/dist/showcase/assets/activity-BUlCWLI8.js +1 -0
- package/dist/showcase/assets/admin-CxTV4kZX.js +80 -0
- package/dist/showcase/assets/ai-Bym5H8bn.js +41 -0
- package/dist/showcase/assets/ai-artifact-DZVl1WmK.js +2 -0
- package/dist/showcase/assets/ai-chat-M3X5-PgT.js +568 -0
- package/dist/showcase/assets/ai-elements-DjppcMBD.js +387 -0
- package/dist/showcase/assets/ai-new-CXnrIi5S.js +167 -0
- package/dist/showcase/assets/ai-tool-call-DyMI8DqD.js +1 -0
- package/dist/showcase/assets/alert-D6Pygy2s.js +62 -0
- package/dist/showcase/assets/alert-DCrWLbEx.js +93 -0
- package/dist/showcase/assets/alert-qTNM0vld.js +1 -0
- package/dist/showcase/assets/api-key-list-CCpuHYHc.js +73 -0
- package/dist/showcase/assets/app-sidebar-CxTRNC5L.js +1 -0
- package/dist/showcase/assets/arrow-down--phuskCV.js +1 -0
- package/dist/showcase/assets/arrow-left-B__WWqyA.js +1 -0
- package/dist/showcase/assets/arrow-right-1-EvXxjB.js +1 -0
- package/dist/showcase/assets/arrow-up-lWotnmo7.js +1 -0
- package/dist/showcase/assets/arrow-up-right-IyQ3oeq0.js +1 -0
- package/dist/showcase/assets/avatar-gugtNx4D.js +57 -0
- package/dist/showcase/assets/avatar-n1nywTlx.js +1 -0
- package/dist/showcase/assets/badge-TuE-u3Hv.js +28 -0
- package/dist/showcase/assets/badge-check-CPDvpVzK.js +1 -0
- package/dist/showcase/assets/bell-DeCVddCA.js +1 -0
- package/dist/showcase/assets/bot-B_vzJEJH.js +1 -0
- package/dist/showcase/assets/box-z4O8t_K5.js +1 -0
- package/dist/showcase/assets/brain-DdKBE4Bh.js +1 -0
- package/dist/showcase/assets/brand-CfW7mgTY.js +36 -0
- package/dist/showcase/assets/breadcrumb-B4TBbKv3.js +52 -0
- package/dist/showcase/assets/breadcrumb-bF_sFVBL.js +1 -0
- package/dist/showcase/assets/breadcrumbs-CBv3EaMX.js +1 -0
- package/dist/showcase/assets/briefcase-ClqzeNt3.js +1 -0
- package/dist/showcase/assets/building-2-BQuWgjZj.js +1 -0
- package/dist/showcase/assets/button-CWKNCI82.js +44 -0
- package/dist/showcase/assets/button-group-BYhxtFwV.js +1 -0
- package/dist/showcase/assets/buttons-mBRyBw3Q.js +270 -0
- package/dist/showcase/assets/calendar-BgloJjlW.js +1 -0
- package/dist/showcase/assets/calendar-CJDWspzi.js +1 -0
- package/dist/showcase/assets/calendar-CgML2kJt.js +16 -0
- package/dist/showcase/assets/calendar-days-C0gTLVnY.js +1 -0
- package/dist/showcase/assets/camera-nIlaz4Sn.js +1 -0
- package/dist/showcase/assets/card-1ncRnRvq.js +1 -0
- package/dist/showcase/assets/card-CcgWzFB-.js +188 -0
- package/dist/showcase/assets/card-primitives-By4-RTuP.js +1 -0
- package/dist/showcase/assets/card-radio-group-DeX3qsRg.js +1 -0
- package/dist/showcase/assets/cards-DdqQr8rY.js +328 -0
- package/dist/showcase/assets/carousel-CV8ltDl8.js +449 -0
- package/dist/showcase/assets/chart-BNzHjskC.js +358 -0
- package/dist/showcase/assets/chart-column-CpTxRLEH.js +1 -0
- package/dist/showcase/assets/checkbox-CZTTm4Dv.js +1 -0
- package/dist/showcase/assets/chevron-down-LWBNHe9S.js +1 -0
- package/dist/showcase/assets/chevron-left-BsshO7nf.js +1 -0
- package/dist/showcase/assets/chevron-right-t68um2_G.js +1 -0
- package/dist/showcase/assets/chevron-up-DjhlESJB.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-ZUo0Do59.js +1 -0
- package/dist/showcase/assets/circle-BL52dLr9.js +1 -0
- package/dist/showcase/assets/circle-alert-CXCt6zxc.js +1 -0
- package/dist/showcase/assets/circle-check-CbiRRw7s.js +1 -0
- package/dist/showcase/assets/circle-check-big-BSgn7lyt.js +1 -0
- package/dist/showcase/assets/circle-dot-WEOpGGJf.js +1 -0
- package/dist/showcase/assets/circle-question-mark-C9hLlsD7.js +1 -0
- package/dist/showcase/assets/circle-x-BT9TJbJC.js +1 -0
- package/dist/showcase/assets/clock-3-CfRK8ckc.js +1 -0
- package/dist/showcase/assets/clock-D-3zf0c1.js +1 -0
- package/dist/showcase/assets/code-xml-CQYKKuBU.js +1 -0
- package/dist/showcase/assets/collapsible-BC0hQvat.js +27 -0
- package/dist/showcase/assets/collapsible-CRVtVDCF.js +1 -0
- package/dist/showcase/assets/combobox-D4VYvYCT.js +696 -0
- package/dist/showcase/assets/command-CxeHT4lL.js +1 -0
- package/dist/showcase/assets/command-Do_t_Zou.js +1 -0
- package/dist/showcase/assets/comment-composer-DoFwvVlq.js +1 -0
- package/dist/showcase/assets/comment-item-CT8UbVeg.js +1 -0
- package/dist/showcase/assets/comments-CqdXrjUn.js +357 -0
- package/dist/showcase/assets/commerce-B9V2Wo_q.js +79 -0
- package/dist/showcase/assets/commerce-extras-CNT3QmAT.js +189 -0
- package/dist/showcase/assets/composite-BXLXcagx.js +1 -0
- package/dist/showcase/assets/contact-card-BLcAXepj.js +65 -0
- package/dist/showcase/assets/content-container-DJVD3ZmI.js +1 -0
- package/dist/showcase/assets/copyable-od17NrMu.js +96 -0
- package/dist/showcase/assets/course-card-CdZQr5yy.js +77 -0
- package/dist/showcase/assets/cpu-B8kRNR1R.js +1 -0
- package/dist/showcase/assets/credit-card-BYMQj03s.js +1 -0
- package/dist/showcase/assets/currency-Cxv3Cp6B.js +149 -0
- package/dist/showcase/assets/dark-surfaces-Cfp58iFb.js +90 -0
- package/dist/showcase/assets/database-DuUABvxU.js +1 -0
- package/dist/showcase/assets/date-block-E9qfY7W7.js +1 -0
- package/dist/showcase/assets/date-picker-I8BdaiiU.js +1 -0
- package/dist/showcase/assets/date-pickers-BLJaqhcS.js +73 -0
- package/dist/showcase/assets/dense-info-Bk1K_7Ww.js +106 -0
- package/dist/showcase/assets/dialog-BuatDnQ9.js +1 -0
- package/dist/showcase/assets/dialog-DCx-LydW.js +1 -0
- package/dist/showcase/assets/display-Bt7busw5.js +403 -0
- package/dist/showcase/assets/dist-BPyBHOXU.js +45 -0
- package/dist/showcase/assets/dollar-sign-qXQSS6Gh.js +1 -0
- package/dist/showcase/assets/download-B2JAmHmJ.js +1 -0
- package/dist/showcase/assets/dropdown-menu-DXT3BZLa.js +1 -0
- package/dist/showcase/assets/dropzone-BKIxDJNy.js +1 -0
- package/dist/showcase/assets/earth-7-Z3Gv2v.js +1 -0
- package/dist/showcase/assets/ellipsis-6Krb3RRW.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-DeOMIw1J.js +1 -0
- package/dist/showcase/assets/empty-BSYKaeXQ.js +1 -0
- package/dist/showcase/assets/empty-item-YElgv25f.js +49 -0
- package/dist/showcase/assets/empty-state-D-LrvnKF.js +1 -0
- package/dist/showcase/assets/empty-state-dNh1GtVU.js +188 -0
- package/dist/showcase/assets/enhanced-activities-Bw99ItYl.js +361 -0
- package/dist/showcase/assets/enhanced-combobox-CqLZmU3K.js +1 -0
- package/dist/showcase/assets/event-calendar-CcSi7g5A.js +138 -0
- package/dist/showcase/assets/event-log-2uq-eYxh.js +330 -0
- package/dist/showcase/assets/example-CTJ8AdNR.js +1 -0
- package/dist/showcase/assets/external-link-D0gqSa1q.js +1 -0
- package/dist/showcase/assets/eye-CDMCDLei.js +1 -0
- package/dist/showcase/assets/feature-announcement-BlyNck35.js +34 -0
- package/dist/showcase/assets/file-Y5EbzufX.js +1 -0
- package/dist/showcase/assets/file-text-DH1mBuPi.js +1 -0
- package/dist/showcase/assets/filters-BtHF4GSM.js +78 -0
- package/dist/showcase/assets/flag-CJ08LwLY.js +1 -0
- package/dist/showcase/assets/folder-open-DODo2pjy.js +1 -0
- package/dist/showcase/assets/form-field-CHY7jh1q.js +1 -0
- package/dist/showcase/assets/format-DYJqAuDM.js +1 -0
- package/dist/showcase/assets/forms-DgvQQXHO.js +862 -0
- package/dist/showcase/assets/frame-CdKicP4A.js +167 -0
- package/dist/showcase/assets/getPseudoElementBounds-D9-Hr3mO.js +1 -0
- package/dist/showcase/assets/gift-DD8O7cld.js +1 -0
- package/dist/showcase/assets/giftcard-cards-Dp9eYodY.js +85 -0
- package/dist/showcase/assets/git-branch-DZq1Vo2G.js +1 -0
- package/dist/showcase/assets/global-search-BqDotXql.js +215 -0
- package/dist/showcase/assets/global-search-PH6LXqZw.js +1 -0
- package/dist/showcase/assets/globe-mRTwrUxM.js +1 -0
- package/dist/showcase/assets/gradient-card-CaL88YKv.js +58 -0
- package/dist/showcase/assets/hash-DuqvHQHv.js +1 -0
- package/dist/showcase/assets/header-CiNgDop3.js +1 -0
- package/dist/showcase/assets/header-notifications-B9XMBsK_.js +1 -0
- package/dist/showcase/assets/heart-DsGJfnDx.js +1 -0
- package/dist/showcase/assets/house-B504aFIP.js +1 -0
- package/dist/showcase/assets/icon-badge-DMNu8xb5.js +1 -0
- package/dist/showcase/assets/image-C3DaMxmn.js +1 -0
- package/dist/showcase/assets/inbox-BWKQMLMx.js +1 -0
- package/dist/showcase/assets/index-DN3tqopz.css +2 -0
- package/dist/showcase/assets/index-DaYVSqKu.js +10 -0
- package/dist/showcase/assets/inertValue-DrtTkMGx.js +1 -0
- package/dist/showcase/assets/info-_FrGoCay.js +1 -0
- package/dist/showcase/assets/inline-stat-BYu-tiUU.js +1 -0
- package/dist/showcase/assets/input-C96HMHWR.js +1 -0
- package/dist/showcase/assets/input-fMPi7XxI.js +1 -0
- package/dist/showcase/assets/input-group-BZnSgFCn.js +47 -0
- package/dist/showcase/assets/input-group-CVONNP3T.js +1 -0
- package/dist/showcase/assets/inputs-Blh0LJ8-.js +155 -0
- package/dist/showcase/assets/invoice-header-Bpo4iwX3.js +36 -0
- package/dist/showcase/assets/invoice-items-OVIrbG0k.js +36 -0
- package/dist/showcase/assets/invoice-mini-CaOMTiUO.js +14 -0
- package/dist/showcase/assets/invoice-table-BXd_HhUg.js +30 -0
- package/dist/showcase/assets/isSameDay-NBVO9AKF.js +1 -0
- package/dist/showcase/assets/isToday-Bk5HMXWn.js +1 -0
- package/dist/showcase/assets/italic-BOv5bW4H.js +1 -0
- package/dist/showcase/assets/item-B4rdcVVp.js +134 -0
- package/dist/showcase/assets/item-BVt0zZ12.js +1 -0
- package/dist/showcase/assets/item-C4Xk3DC1.js +1 -0
- package/dist/showcase/assets/kanban-BXbelelR.js +186 -0
- package/dist/showcase/assets/label-Cv6wotdv.js +1 -0
- package/dist/showcase/assets/languages-BofyvcCF.js +1 -0
- package/dist/showcase/assets/layers-DJK0t5px.js +1 -0
- package/dist/showcase/assets/layout-app-shell-D_yMonSl.js +608 -0
- package/dist/showcase/assets/layout-auth-BTvSTwUz.js +754 -0
- package/dist/showcase/assets/layout-containers-PMuo__2O.js +101 -0
- package/dist/showcase/assets/layout-header-DQ3zeCHz.js +170 -0
- package/dist/showcase/assets/layout-page-CbvWdHrK.js +122 -0
- package/dist/showcase/assets/layout-primitives-6nsFFIdE.js +34 -0
- package/dist/showcase/assets/layout-sidebar-CKqeVCSY.js +224 -0
- package/dist/showcase/assets/layout-users-Cypq-42s.js +117 -0
- package/dist/showcase/assets/layout-workspace-DiRR8vDv.js +183 -0
- package/dist/showcase/assets/lock-DXmvLEEx.js +1 -0
- package/dist/showcase/assets/lock-keyhole-Cu6M-jjE.js +1 -0
- package/dist/showcase/assets/mail-CXVFHkzh.js +1 -0
- package/dist/showcase/assets/mail-check-BNEu3j2a.js +1 -0
- package/dist/showcase/assets/map-DnE1pFCQ.js +124 -0
- package/dist/showcase/assets/map-pin-CpOVa8IH.js +1 -0
- package/dist/showcase/assets/media-library-C-KfEvm4.js +695 -0
- package/dist/showcase/assets/mention-inline-suggestions-DlmslsfR.js +1 -0
- package/dist/showcase/assets/mentions-C8ZdNFuC.js +138 -0
- package/dist/showcase/assets/menus-B8yUL75K.js +165 -0
- package/dist/showcase/assets/message-square-DNOTaOFs.js +1 -0
- package/dist/showcase/assets/metadata-list-BQAanxM-.js +1 -0
- package/dist/showcase/assets/metadata-list-DL9qgDAp.js +288 -0
- package/dist/showcase/assets/metric-CYi09Ltx.js +1 -0
- package/dist/showcase/assets/metric-bar-CQH1z8T3.js +1 -0
- package/dist/showcase/assets/metric-grid-H1ixqMCI.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-BBzWzFZ-.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-C7Z2ITl4.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-CZZSWiMn.js +50 -0
- package/dist/showcase/assets/metrics-comparison-BPqz8k30.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-C3NYZAfx.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-RjHfm7um.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-DnBjyDH4.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-CKn405qb.js +42 -0
- package/dist/showcase/assets/metrics-overview-D8YGtdrh.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-Dxh6cAha.js +54 -0
- package/dist/showcase/assets/minus-20OTSSxf.js +1 -0
- package/dist/showcase/assets/money-display-BoiAMxH8.js +1 -0
- package/dist/showcase/assets/month-year-picker-Bl59Ygq9.js +1 -0
- package/dist/showcase/assets/navigation-B8d2CDU6.js +90 -0
- package/dist/showcase/assets/navigation-D16JX3kL.js +230 -0
- package/dist/showcase/assets/navigation-extras-Dm83uT6i.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-DznDpP9M.js +119 -0
- package/dist/showcase/assets/overlays-CzlSqbFz.js +408 -0
- package/dist/showcase/assets/overlays-DUFqbkb9.js +159 -0
- package/dist/showcase/assets/package-BCXIwEPz.js +1 -0
- package/dist/showcase/assets/package-check-Ol-Cw3j-.js +1 -0
- package/dist/showcase/assets/page-action-button-DpzdSYvw.js +1 -0
- package/dist/showcase/assets/page-header-B_b7SqW8.js +1 -0
- package/dist/showcase/assets/pagination-BPDQo9Dl.js +1 -0
- package/dist/showcase/assets/pagination-PvkEX0qs.js +42 -0
- package/dist/showcase/assets/paperclip-CznEsmLN.js +1 -0
- package/dist/showcase/assets/password-input-CWMY5q3b.js +1 -0
- package/dist/showcase/assets/pencil-Cl9qi90g.js +1 -0
- package/dist/showcase/assets/phone-DbvK_QQJ.js +1 -0
- package/dist/showcase/assets/plus-CO8t66Yo.js +1 -0
- package/dist/showcase/assets/popover-3QIVx9lU.js +1 -0
- package/dist/showcase/assets/popover-Cyg9oYIU.js +1 -0
- package/dist/showcase/assets/popover-menu-DJPHeIL1.js +1 -0
- package/dist/showcase/assets/products-WsU-qdMz.js +407 -0
- package/dist/showcase/assets/progress-C61sf-qt.js +1 -0
- package/dist/showcase/assets/progress-PvTl8Fgf.js +18 -0
- package/dist/showcase/assets/props-table-C8la6vcG.js +1 -0
- package/dist/showcase/assets/props.generated-vFrhDrth.json +38618 -0
- package/dist/showcase/assets/quote-N1_lRDnX.js +1 -0
- package/dist/showcase/assets/receipt-C6a_WyLu.js +1 -0
- package/dist/showcase/assets/receipt-text-CDOh8FAv.js +1 -0
- package/dist/showcase/assets/refresh-cw-D4-ECZ1x.js +1 -0
- package/dist/showcase/assets/resolveAriaLabelledBy-iFo8AzEr.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-DqAP3zJd.js +1 -0
- package/dist/showcase/assets/rich-text-editor-CU0IZpwV.js +143 -0
- package/dist/showcase/assets/rich-text-editor-DCU7mMoO.js +124 -0
- package/dist/showcase/assets/rotate-ccw-Dd5zEmr7.js +1 -0
- package/dist/showcase/assets/save-DDmFSQli.js +1 -0
- package/dist/showcase/assets/schema-form-B7naqMvv.js +325 -0
- package/dist/showcase/assets/scroll-area-CdaYm4UK.js +32 -0
- package/dist/showcase/assets/scroll-area-DwWSHYHB.js +1 -0
- package/dist/showcase/assets/select-CNzpb5ug.js +1 -0
- package/dist/showcase/assets/select-DBXZ_Wzf.js +1 -0
- package/dist/showcase/assets/send-eDm7YMmA.js +1 -0
- package/dist/showcase/assets/separator-4IC9ED7s.js +1 -0
- package/dist/showcase/assets/separator-DPGDsZpG.js +28 -0
- package/dist/showcase/assets/settings-IANZGo2i.js +1 -0
- package/dist/showcase/assets/sheet-2oCce5ae.js +1 -0
- package/dist/showcase/assets/shield-CDZhhvFW.js +1 -0
- package/dist/showcase/assets/shield-alert-5hL3sdf3.js +1 -0
- package/dist/showcase/assets/shield-check-CaO2dhVS.js +1 -0
- package/dist/showcase/assets/shopping-bag-Bt3iK-Bv.js +1 -0
- package/dist/showcase/assets/sidebar-Cds60-PS.js +1 -0
- package/dist/showcase/assets/sidebar.context-CdH_DH9M.js +1 -0
- package/dist/showcase/assets/skeleton-2HajJKO4.js +29 -0
- package/dist/showcase/assets/skeleton-CGEJwPdD.js +1 -0
- package/dist/showcase/assets/slider-BjQViBR0.js +1 -0
- package/dist/showcase/assets/sliders-horizontal-C3JH5WQu.js +1 -0
- package/dist/showcase/assets/smart-card-CHouYi8U.js +1 -0
- package/dist/showcase/assets/sonner-Cog559j7.js +22 -0
- package/dist/showcase/assets/sortable.esm-hUEKsxpQ.js +5 -0
- package/dist/showcase/assets/sparkles-B18eTHVN.js +1 -0
- package/dist/showcase/assets/spinner-BSI97i4D.js +1 -0
- package/dist/showcase/assets/spinner-D0WhVyye.js +30 -0
- package/dist/showcase/assets/spinner-DQmJ7k9y.js +49 -0
- package/dist/showcase/assets/square-pen-CLyDWdhj.js +1 -0
- package/dist/showcase/assets/stacked-avatars-ECnU27uV.js +1 -0
- package/dist/showcase/assets/star-C3mhkpSK.js +1 -0
- package/dist/showcase/assets/startOfDay-ECIxhJGC.js +1 -0
- package/dist/showcase/assets/stringifyLocale-CkHjdQTJ.js +1 -0
- package/dist/showcase/assets/styles-CDD7mDye.js +1 -0
- package/dist/showcase/assets/suggestions-DOW6NBJp.js +126 -0
- package/dist/showcase/assets/switch-D59YKmf6.js +1 -0
- package/dist/showcase/assets/switch-NICmdoPn.js +1 -0
- package/dist/showcase/assets/sync-B8nBZXQ9.js +107 -0
- package/dist/showcase/assets/table-CckompuR.js +382 -0
- package/dist/showcase/assets/table-DtA4-Q0p.js +1 -0
- package/dist/showcase/assets/table-actions-DdoPJTMy.js +1 -0
- package/dist/showcase/assets/tabs-BrC_HxL_.js +1 -0
- package/dist/showcase/assets/tabs-UVxr80vY.js +19 -0
- package/dist/showcase/assets/tags-input-iDfvhzZD.js +1 -0
- package/dist/showcase/assets/text-button-DHFCLCoc.js +1 -0
- package/dist/showcase/assets/text-link-nCLLDcS_.js +1 -0
- package/dist/showcase/assets/textarea-DsSuQHQY.js +1 -0
- package/dist/showcase/assets/textarea-DyGI3Kcn.js +1 -0
- package/dist/showcase/assets/timelines-JmMcH657.js +200 -0
- package/dist/showcase/assets/toggle-group-BZKzMmC8.js +1 -0
- package/dist/showcase/assets/toggles-BSJvy4Tw.js +71 -0
- package/dist/showcase/assets/toggles-group-Bsc6eaWw.js +32 -0
- package/dist/showcase/assets/trash-2-C9AC7Pcv.js +1 -0
- package/dist/showcase/assets/trending-up-CGaDZj0S.js +1 -0
- package/dist/showcase/assets/truck-Dq6heokm.js +1 -0
- package/dist/showcase/assets/typography-ByvwR6Kg.js +223 -0
- package/dist/showcase/assets/ui-badge-BYgJSE_w.js +28 -0
- package/dist/showcase/assets/ui-card-BdueUfow.js +30 -0
- package/dist/showcase/assets/ui-table-CxtCQUsg.js +42 -0
- package/dist/showcase/assets/upload-tray-DKJ8nFZp.js +138 -0
- package/dist/showcase/assets/use-layout-link-CGBQHZon.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CywAbxVB.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-B2bZzE7D.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-SLdY_s6S.js +1 -0
- package/dist/showcase/assets/useCompositeItem-g6aCBp84.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-DK0Tpege.js +1 -0
- package/dist/showcase/assets/useControlled-BF8maje6.js +1 -0
- package/dist/showcase/assets/useLabelableId-hdKzFCp2.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CnhifZ1E.js +1 -0
- package/dist/showcase/assets/useRender-QhawWhpb.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-Cht7Sa7e.js +1 -0
- package/dist/showcase/assets/useValueChanged-DURO1kfZ.js +1 -0
- package/dist/showcase/assets/user-plus-DbOuTfr7.js +1 -0
- package/dist/showcase/assets/user-u65Fo7k7.js +1 -0
- package/dist/showcase/assets/users-BUb7CmVp.js +1 -0
- package/dist/showcase/assets/valueToPercent-gleKSaFe.js +1 -0
- package/dist/showcase/assets/vendor-profile-wfI3PBuO.js +37 -0
- package/dist/showcase/assets/video-e4hDbTQ2.js +1 -0
- package/dist/showcase/assets/wrench-CBUvtxdr.js +1 -0
- package/dist/showcase/assets/x-oVTJnCJn.js +1 -0
- package/dist/showcase/assets/zap-CzABYL3c.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +15 -4
- package/scripts/README.md +24 -0
- package/scripts/metadata.json +325 -0
- package/dist/_shared/accordion-BWU7zxlO.cjs +0 -2
- package/dist/_shared/accordion-BWU7zxlO.cjs.map +0 -1
- package/dist/_shared/accordion-DTYKGqWD.js +0 -130
- package/dist/_shared/accordion-DTYKGqWD.js.map +0 -1
- package/dist/_shared/action-menu-BoQnI2UF.cjs +0 -2
- package/dist/_shared/action-menu-BoQnI2UF.cjs.map +0 -1
- package/dist/_shared/action-menu-uyg1Phsn.js +0 -96
- package/dist/_shared/action-menu-uyg1Phsn.js.map +0 -1
- package/dist/_shared/ai-artifact-CY1Jf9gM.cjs +0 -3
- package/dist/_shared/ai-artifact-CY1Jf9gM.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DdlK_l56.js +0 -1099
- package/dist/_shared/ai-artifact-DdlK_l56.js.map +0 -1
- package/dist/_shared/auth-CDjZFJxy.cjs +0 -2
- package/dist/_shared/auth-CDjZFJxy.cjs.map +0 -1
- package/dist/_shared/auth-_udUdWtn.js +0 -643
- package/dist/_shared/auth-_udUdWtn.js.map +0 -1
- package/dist/_shared/badge--o9wFHB_.cjs +0 -2
- package/dist/_shared/badge--o9wFHB_.cjs.map +0 -1
- package/dist/_shared/badge-yGlx9trX.js +0 -108
- package/dist/_shared/badge-yGlx9trX.js.map +0 -1
- package/dist/_shared/button-683R5quQ.js +0 -46
- package/dist/_shared/button-683R5quQ.js.map +0 -1
- package/dist/_shared/button-C1qc97U1.cjs +0 -2
- package/dist/_shared/button-C1qc97U1.cjs.map +0 -1
- package/dist/_shared/button-CjZrRLzR.cjs +0 -2
- package/dist/_shared/button-CjZrRLzR.cjs.map +0 -1
- package/dist/_shared/button-SuocMQFT.js +0 -173
- package/dist/_shared/button-SuocMQFT.js.map +0 -1
- package/dist/_shared/buttons-9YBwevkP.cjs +0 -2
- package/dist/_shared/buttons-9YBwevkP.cjs.map +0 -1
- package/dist/_shared/buttons-BR4BGVYf.js +0 -143
- package/dist/_shared/buttons-BR4BGVYf.js.map +0 -1
- package/dist/_shared/combobox-CpSmiPV8.cjs +0 -2
- package/dist/_shared/combobox-CpSmiPV8.cjs.map +0 -1
- package/dist/_shared/combobox-D01JwyFZ.js +0 -810
- package/dist/_shared/combobox-D01JwyFZ.js.map +0 -1
- package/dist/_shared/comments-D9velZAW.js +0 -952
- package/dist/_shared/comments-D9velZAW.js.map +0 -1
- package/dist/_shared/comments-DyUAKSQu.cjs +0 -2
- package/dist/_shared/comments-DyUAKSQu.cjs.map +0 -1
- package/dist/_shared/date-picker-BnsvBFOZ.cjs +0 -2
- package/dist/_shared/date-picker-BnsvBFOZ.cjs.map +0 -1
- package/dist/_shared/date-picker-TMcjGO26.js +0 -1361
- package/dist/_shared/date-picker-TMcjGO26.js.map +0 -1
- package/dist/_shared/date-pickers-BI4xLjHR.js +0 -330
- package/dist/_shared/date-pickers-BI4xLjHR.js.map +0 -1
- package/dist/_shared/date-pickers-BhaUK5S2.cjs +0 -2
- package/dist/_shared/date-pickers-BhaUK5S2.cjs.map +0 -1
- package/dist/_shared/dialog-A95-614f.js +0 -101
- package/dist/_shared/dialog-A95-614f.js.map +0 -1
- package/dist/_shared/dialog-ivDByBmO.cjs +0 -2
- package/dist/_shared/dialog-ivDByBmO.cjs.map +0 -1
- package/dist/_shared/display-C4n0uuxl.js +0 -1154
- package/dist/_shared/display-C4n0uuxl.js.map +0 -1
- package/dist/_shared/display-oDW0O9yB.cjs +0 -2
- package/dist/_shared/display-oDW0O9yB.cjs.map +0 -1
- package/dist/_shared/forms-CwJci54_.js +0 -3430
- package/dist/_shared/forms-CwJci54_.js.map +0 -1
- package/dist/_shared/forms-E3JkTgcC.cjs +0 -2
- package/dist/_shared/forms-E3JkTgcC.cjs.map +0 -1
- package/dist/_shared/header-BUAddfdE.js +0 -360
- package/dist/_shared/header-BUAddfdE.js.map +0 -1
- package/dist/_shared/header-BnxWOiNm.cjs +0 -2
- package/dist/_shared/header-BnxWOiNm.cjs.map +0 -1
- package/dist/_shared/hooks-MW0UTO3q.cjs +0 -2
- package/dist/_shared/hooks-MW0UTO3q.cjs.map +0 -1
- package/dist/_shared/hooks-ZiPIvs0_.js +0 -118
- package/dist/_shared/hooks-ZiPIvs0_.js.map +0 -1
- package/dist/_shared/mentions-Br-EP9tq.js +0 -506
- package/dist/_shared/mentions-Br-EP9tq.js.map +0 -1
- package/dist/_shared/mentions-DNTsRHJl.cjs +0 -2
- package/dist/_shared/mentions-DNTsRHJl.cjs.map +0 -1
- package/dist/_shared/metadata-CPSQGPJh.cjs +0 -2
- package/dist/_shared/metadata-CPSQGPJh.cjs.map +0 -1
- package/dist/_shared/metadata-qTNAOM7E.js +0 -235
- package/dist/_shared/metadata-qTNAOM7E.js.map +0 -1
- package/dist/_shared/navigation-HnnA6uSV.js +0 -419
- package/dist/_shared/navigation-HnnA6uSV.js.map +0 -1
- package/dist/_shared/navigation-J2g0Tw9D.cjs +0 -2
- package/dist/_shared/navigation-J2g0Tw9D.cjs.map +0 -1
- package/dist/_shared/overlays-CIeniDjj.js +0 -639
- package/dist/_shared/overlays-CIeniDjj.js.map +0 -1
- package/dist/_shared/overlays-Xc_F_Y-E.cjs +0 -2
- package/dist/_shared/overlays-Xc_F_Y-E.cjs.map +0 -1
- package/dist/_shared/page-BFV-KE8H.js +0 -262
- package/dist/_shared/page-BFV-KE8H.js.map +0 -1
- package/dist/_shared/page-UJfWfw2R.cjs +0 -2
- package/dist/_shared/page-UJfWfw2R.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-B6WKHUKC.js +0 -620
- package/dist/_shared/rich-text-editor-B6WKHUKC.js.map +0 -1
- package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs +0 -2
- package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs.map +0 -1
- package/dist/_shared/sheet-BKEfwhCn.js +0 -100
- package/dist/_shared/sheet-BKEfwhCn.js.map +0 -1
- package/dist/_shared/sheet-D4yWgkwC.cjs +0 -2
- package/dist/_shared/sheet-D4yWgkwC.cjs.map +0 -1
- package/dist/_shared/sidebar-BML5ZZ5s.js +0 -537
- package/dist/_shared/sidebar-BML5ZZ5s.js.map +0 -1
- package/dist/_shared/sidebar-Bl_KRk-S.cjs +0 -2
- package/dist/_shared/sidebar-Bl_KRk-S.cjs.map +0 -1
- package/dist/_shared/sidebar-C89O5ho_.cjs +0 -2
- package/dist/_shared/sidebar-C89O5ho_.cjs.map +0 -1
- package/dist/_shared/sidebar-ux-yk-Ph.js +0 -382
- package/dist/_shared/sidebar-ux-yk-Ph.js.map +0 -1
- package/dist/_shared/smart-card-DYZGY_Su.js +0 -361
- package/dist/_shared/smart-card-DYZGY_Su.js.map +0 -1
- package/dist/_shared/smart-card-Df80VF8x.cjs +0 -2
- package/dist/_shared/smart-card-Df80VF8x.cjs.map +0 -1
- package/dist/_shared/table-CBKDA7ZE.js +0 -1189
- package/dist/_shared/table-CBKDA7ZE.js.map +0 -1
- package/dist/_shared/table-CJoxRCWy.cjs +0 -2
- package/dist/_shared/table-CJoxRCWy.cjs.map +0 -1
- package/dist/_shared/workspace-CTjIGCE0.cjs +0 -2
- package/dist/_shared/workspace-CTjIGCE0.cjs.map +0 -1
- package/dist/_shared/workspace-WgJgiSUA.js +0 -357
- package/dist/_shared/workspace-WgJgiSUA.js.map +0 -1
- package/dist/showcase/assets/AreaChart-DUe3j5uB.js +0 -6
- package/dist/showcase/assets/CSPContext-ImKusJJ_.js +0 -1
- package/dist/showcase/assets/CompositeItem-DleE4kTc.js +0 -1
- package/dist/showcase/assets/CompositeRoot-BbNkvtLz.js +0 -1
- package/dist/showcase/assets/DialogTrigger-C0DB0bXw.js +0 -1
- package/dist/showcase/assets/FieldItemContext-CFTR-INZ.js +0 -1
- package/dist/showcase/assets/FormContext-lmjYAh4E.js +0 -1
- package/dist/showcase/assets/LabelableContext-CDv6gSfU.js +0 -1
- package/dist/showcase/assets/PreviewLayout-BG1B5TzA.js +0 -1
- package/dist/showcase/assets/RadioGroup-C-0MNAYY.js +0 -1
- package/dist/showcase/assets/Separator-KsPLUEno.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-AV8xAl2m.js +0 -1
- package/dist/showcase/assets/accordion-BWkuKg77.js +0 -171
- package/dist/showcase/assets/accordion-variants-CVT_62VO.js +0 -1
- package/dist/showcase/assets/action-menu-BOUHlGba.js +0 -1
- package/dist/showcase/assets/activities-DMDQje7Y.js +0 -501
- package/dist/showcase/assets/activities-feed-card-B8wpu4F3.js +0 -1
- package/dist/showcase/assets/activity-B-FxNryB.js +0 -1
- package/dist/showcase/assets/admin-CAhEeKt_.js +0 -80
- package/dist/showcase/assets/ai-UioEgJ90.js +0 -41
- package/dist/showcase/assets/ai-artifact-CUAlhcSX.js +0 -2
- package/dist/showcase/assets/ai-chat-C_w2PSmy.js +0 -568
- package/dist/showcase/assets/ai-elements-DmxqXR6H.js +0 -387
- package/dist/showcase/assets/ai-new-PG02TWQq.js +0 -167
- package/dist/showcase/assets/ai-tool-call-BaJx1rR4.js +0 -1
- package/dist/showcase/assets/alert-D7n-kQoO.js +0 -93
- package/dist/showcase/assets/alert-DIelf1qF.js +0 -1
- package/dist/showcase/assets/alert-TQCZEcn-.js +0 -62
- package/dist/showcase/assets/api-key-list-CSt4trYG.js +0 -73
- package/dist/showcase/assets/app-sidebar-DixqrLf2.js +0 -1
- package/dist/showcase/assets/arrow-down-CYh_aUsd.js +0 -1
- package/dist/showcase/assets/arrow-left-pYYsNkZE.js +0 -1
- package/dist/showcase/assets/arrow-right-Bf1Tl6D5.js +0 -1
- package/dist/showcase/assets/arrow-up-BhmQRZs9.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CuAsO3-r.js +0 -1
- package/dist/showcase/assets/avatar-5EFTnHEG.js +0 -1
- package/dist/showcase/assets/avatar-DLpnivU0.js +0 -57
- package/dist/showcase/assets/badge-check-BRAVo7dA.js +0 -1
- package/dist/showcase/assets/badge-yFoRqbiq.js +0 -28
- package/dist/showcase/assets/bell-Dt3Nz2y2.js +0 -1
- package/dist/showcase/assets/bot-5Ro5Dayc.js +0 -1
- package/dist/showcase/assets/box-mt6TbZO6.js +0 -1
- package/dist/showcase/assets/brain-736080Wh.js +0 -1
- package/dist/showcase/assets/brand-4K8xsJ91.js +0 -36
- package/dist/showcase/assets/breadcrumb-CAlApdCw.js +0 -1
- package/dist/showcase/assets/breadcrumb-DHeGqoTD.js +0 -52
- package/dist/showcase/assets/breadcrumbs-D_lniGJs.js +0 -1
- package/dist/showcase/assets/briefcase-B_Uti-Iu.js +0 -1
- package/dist/showcase/assets/building-2-zgcwuzxP.js +0 -1
- package/dist/showcase/assets/button-PmqgeJKm.js +0 -44
- package/dist/showcase/assets/button-group-DAOmmujV.js +0 -1
- package/dist/showcase/assets/buttons-PtpR_v16.js +0 -270
- package/dist/showcase/assets/calendar-BiOGjB7a.js +0 -1
- package/dist/showcase/assets/calendar-C1A98cz0.js +0 -16
- package/dist/showcase/assets/calendar-DTgagmt7.js +0 -1
- package/dist/showcase/assets/calendar-days-pr8kXiTx.js +0 -1
- package/dist/showcase/assets/camera-CGKLOOep.js +0 -1
- package/dist/showcase/assets/card-CFIG8Dgg.js +0 -1
- package/dist/showcase/assets/card-CRd07Iun.js +0 -188
- package/dist/showcase/assets/card-primitives-YgCOqVDI.js +0 -1
- package/dist/showcase/assets/card-radio-group-Du6yaMZ-.js +0 -1
- package/dist/showcase/assets/cards-H7ywhTNM.js +0 -328
- package/dist/showcase/assets/carousel-Dwll5oz1.js +0 -449
- package/dist/showcase/assets/chart-BWnVf-d-.js +0 -358
- package/dist/showcase/assets/chart-column-DjAyOA-t.js +0 -1
- package/dist/showcase/assets/checkbox-fwuAAaUZ.js +0 -1
- package/dist/showcase/assets/chevron-down-CSn8HCwf.js +0 -1
- package/dist/showcase/assets/chevron-left-Ddj6-KOu.js +0 -1
- package/dist/showcase/assets/chevron-right-d-umkBru.js +0 -1
- package/dist/showcase/assets/chevron-up-CeFY6O0I.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-Ck3rUZtc.js +0 -1
- package/dist/showcase/assets/circle-Dy08kACD.js +0 -1
- package/dist/showcase/assets/circle-alert-ysbx8rsZ.js +0 -1
- package/dist/showcase/assets/circle-check-TT7cFQrr.js +0 -1
- package/dist/showcase/assets/circle-check-big-4RnJfeaC.js +0 -1
- package/dist/showcase/assets/circle-dot-CvoDXS-W.js +0 -1
- package/dist/showcase/assets/circle-question-mark-Dbi-WTYN.js +0 -1
- package/dist/showcase/assets/circle-x-c5z6-eYV.js +0 -1
- package/dist/showcase/assets/clock-3-DDEsD4Tb.js +0 -1
- package/dist/showcase/assets/clock-DuBsP5t3.js +0 -1
- package/dist/showcase/assets/code-xml-SoYTMEdm.js +0 -1
- package/dist/showcase/assets/collapsible-Cv3oGVkH.js +0 -27
- package/dist/showcase/assets/collapsible-DagkA3To.js +0 -1
- package/dist/showcase/assets/combobox-CPC4a_MH.js +0 -696
- package/dist/showcase/assets/command-BtaMPVtf.js +0 -45
- package/dist/showcase/assets/command-C37Q471b.js +0 -1
- package/dist/showcase/assets/comment-composer-W0xfh_HP.js +0 -1
- package/dist/showcase/assets/comment-item-Ctcpx1GX.js +0 -1
- package/dist/showcase/assets/comments-BODDdRry.js +0 -357
- package/dist/showcase/assets/commerce-B9MICTY2.js +0 -79
- package/dist/showcase/assets/commerce-extras-DsgnTkBH.js +0 -189
- package/dist/showcase/assets/composite-B-19wwf9.js +0 -1
- package/dist/showcase/assets/contact-card-CqP3YxTq.js +0 -65
- package/dist/showcase/assets/content-container-x2tsQKwH.js +0 -1
- package/dist/showcase/assets/copyable-DH0w0i_h.js +0 -96
- package/dist/showcase/assets/course-card-qpC4JUUM.js +0 -77
- package/dist/showcase/assets/cpu-DjJeD_0Z.js +0 -1
- package/dist/showcase/assets/credit-card-CYgRtM77.js +0 -1
- package/dist/showcase/assets/currency-hguqIjWU.js +0 -149
- package/dist/showcase/assets/dark-surfaces-Cj34O9A0.js +0 -90
- package/dist/showcase/assets/database-BVwSMeGM.js +0 -1
- package/dist/showcase/assets/date-block-LCTDXG5-.js +0 -1
- package/dist/showcase/assets/date-picker-CbYq8wZ7.js +0 -1
- package/dist/showcase/assets/date-pickers-BaSX23MK.js +0 -73
- package/dist/showcase/assets/dense-info-kY1QmtaP.js +0 -106
- package/dist/showcase/assets/dialog-B85US9Ue.js +0 -1
- package/dist/showcase/assets/dialog-iIgfMvTJ.js +0 -1
- package/dist/showcase/assets/display-DTaQWVJp.js +0 -403
- package/dist/showcase/assets/dollar-sign-DlK6XF_v.js +0 -1
- package/dist/showcase/assets/download-B_EY5cGA.js +0 -1
- package/dist/showcase/assets/dropdown-menu-bPWrLPgm.js +0 -1
- package/dist/showcase/assets/dropzone-Bl7RO_Uk.js +0 -1
- package/dist/showcase/assets/earth-C7n2JAYm.js +0 -1
- package/dist/showcase/assets/ellipsis-ntuo3ejh.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-yH8S83bc.js +0 -1
- package/dist/showcase/assets/empty-CY8f7iFe.js +0 -1
- package/dist/showcase/assets/empty-item-Ct7uCr40.js +0 -49
- package/dist/showcase/assets/empty-state-DlO8SJi8.js +0 -188
- package/dist/showcase/assets/empty-state-IAAUTn6f.js +0 -1
- package/dist/showcase/assets/enhanced-activities-DLwShhof.js +0 -361
- package/dist/showcase/assets/enhanced-combobox-Cs_-wq9p.js +0 -1
- package/dist/showcase/assets/event-calendar-C4KlumlG.js +0 -138
- package/dist/showcase/assets/event-log-BvUU5Rj8.js +0 -330
- package/dist/showcase/assets/example-BIrQab7K.js +0 -1
- package/dist/showcase/assets/external-link-DuJlM_H4.js +0 -1
- package/dist/showcase/assets/eye-CnRPL_H8.js +0 -1
- package/dist/showcase/assets/feature-announcement-0dOcSH7F.js +0 -34
- package/dist/showcase/assets/file-Dc5UHkfE.js +0 -1
- package/dist/showcase/assets/file-text-D3AE37vP.js +0 -1
- package/dist/showcase/assets/filters-CsovNSxS.js +0 -78
- package/dist/showcase/assets/flag-CJJ43K4x.js +0 -1
- package/dist/showcase/assets/folder-open-Dp0sceCi.js +0 -1
- package/dist/showcase/assets/form-field-Cxm4APa9.js +0 -1
- package/dist/showcase/assets/format-bDaUGCSP.js +0 -1
- package/dist/showcase/assets/forms-BrVikK1p.js +0 -862
- package/dist/showcase/assets/frame-CkLEABTd.js +0 -167
- package/dist/showcase/assets/getPseudoElementBounds-Bznj386s.js +0 -1
- package/dist/showcase/assets/gift-Bx8IO1FQ.js +0 -1
- package/dist/showcase/assets/giftcard-cards-CZTXBjv0.js +0 -85
- package/dist/showcase/assets/git-branch-D9jt-u1q.js +0 -1
- package/dist/showcase/assets/global-search-C2R_3Pb3.js +0 -215
- package/dist/showcase/assets/global-search-D9XJ747r.js +0 -1
- package/dist/showcase/assets/globe-BJHI134i.js +0 -1
- package/dist/showcase/assets/gradient-card-CV8w2JG5.js +0 -58
- package/dist/showcase/assets/hash-CtBGoIvf.js +0 -1
- package/dist/showcase/assets/header-B3FSlVv4.js +0 -1
- package/dist/showcase/assets/header-notifications-3VH9lzzJ.js +0 -1
- package/dist/showcase/assets/heart-BWZYF4xJ.js +0 -1
- package/dist/showcase/assets/house-CAQOnHLO.js +0 -1
- package/dist/showcase/assets/icon-badge-CxvxB8Vd.js +0 -1
- package/dist/showcase/assets/image-Byz-p7hT.js +0 -1
- package/dist/showcase/assets/inbox-D4UE_W9O.js +0 -1
- package/dist/showcase/assets/index-ADfexGMA.css +0 -2
- package/dist/showcase/assets/index-Cz4UGUT2.js +0 -10
- package/dist/showcase/assets/inertValue-BVXUUuS4.js +0 -1
- package/dist/showcase/assets/info-DFu8OfxV.js +0 -1
- package/dist/showcase/assets/inline-stat-DqI70yoJ.js +0 -1
- package/dist/showcase/assets/input-BPDdWrB1.js +0 -1
- package/dist/showcase/assets/input-BzafMIDj.js +0 -1
- package/dist/showcase/assets/input-group-BYZYeQ7j.js +0 -1
- package/dist/showcase/assets/input-group-YIWmmLJ6.js +0 -47
- package/dist/showcase/assets/inputs-DjzrYJdb.js +0 -49
- package/dist/showcase/assets/invoice-header-B00JrPAb.js +0 -36
- package/dist/showcase/assets/invoice-items-CUt5D3Wz.js +0 -36
- package/dist/showcase/assets/invoice-mini-CRoaQ9g9.js +0 -14
- package/dist/showcase/assets/invoice-table-DYNnDTQl.js +0 -30
- package/dist/showcase/assets/isSameDay-DVNkwpSk.js +0 -1
- package/dist/showcase/assets/isToday-DZ1HTCty.js +0 -1
- package/dist/showcase/assets/italic-AbetEb3d.js +0 -1
- package/dist/showcase/assets/item-BGA6_5Zh.js +0 -134
- package/dist/showcase/assets/item-BJOYyqeO.js +0 -1
- package/dist/showcase/assets/item-CbiuwbAN.js +0 -1
- package/dist/showcase/assets/kanban-Br-Yz002.js +0 -186
- package/dist/showcase/assets/label-BlCKlLE-.js +0 -1
- package/dist/showcase/assets/languages-CKcUvHnt.js +0 -1
- package/dist/showcase/assets/layers-CakZLRSD.js +0 -1
- package/dist/showcase/assets/layout-app-shell-ukDXqPxC.js +0 -608
- package/dist/showcase/assets/layout-auth-BFza65L3.js +0 -754
- package/dist/showcase/assets/layout-containers-v1jG_b7r.js +0 -101
- package/dist/showcase/assets/layout-header-CqBf9wjY.js +0 -170
- package/dist/showcase/assets/layout-page-WJcljCac.js +0 -122
- package/dist/showcase/assets/layout-sidebar-DL6TLuQC.js +0 -224
- package/dist/showcase/assets/layout-users-B8qpsvV9.js +0 -117
- package/dist/showcase/assets/layout-workspace-iOKZ4-9K.js +0 -183
- package/dist/showcase/assets/lock-Dn4-vUBz.js +0 -1
- package/dist/showcase/assets/lock-keyhole-M6KZ_7RC.js +0 -1
- package/dist/showcase/assets/mail-check-DXqQwivW.js +0 -1
- package/dist/showcase/assets/mail-w1nhszbW.js +0 -1
- package/dist/showcase/assets/map-CquesVXo.js +0 -124
- package/dist/showcase/assets/map-pin-DUl-Lt6t.js +0 -1
- package/dist/showcase/assets/media-library-CCJBQRPu.js +0 -695
- package/dist/showcase/assets/mention-inline-suggestions-DyW6IwL8.js +0 -1
- package/dist/showcase/assets/mentions-Ea4pSJqG.js +0 -138
- package/dist/showcase/assets/menus-CJjtE4fD.js +0 -89
- package/dist/showcase/assets/message-square-B0RnrJV6.js +0 -1
- package/dist/showcase/assets/metadata-list-DkN9yfTj.js +0 -288
- package/dist/showcase/assets/metadata-list-fm8e58ID.js +0 -1
- package/dist/showcase/assets/metric-bar-BydkmggA.js +0 -1
- package/dist/showcase/assets/metric-grid-BKjrYpt9.js +0 -1
- package/dist/showcase/assets/metric-guQTLTAa.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-DehaJ3nC.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-YjwFT4ae.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-B6DspERM.js +0 -50
- package/dist/showcase/assets/metrics-comparison-Nru5wypZ.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-CcumN0Or.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-2WB7w9mz.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-jU3hsB3C.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-CaJ99RXL.js +0 -42
- package/dist/showcase/assets/metrics-overview-Sa7z6jct.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-PLvMkA0M.js +0 -54
- package/dist/showcase/assets/minus-OyRBql2C.js +0 -1
- package/dist/showcase/assets/money-display-23DKz-jK.js +0 -1
- package/dist/showcase/assets/month-year-picker-oEoInnKW.js +0 -1
- package/dist/showcase/assets/navigation-Ds60FMAs.js +0 -230
- package/dist/showcase/assets/navigation-Dufz6qnF.js +0 -90
- package/dist/showcase/assets/navigation-extras-DKufT82I.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-DSkS2ktA.js +0 -119
- package/dist/showcase/assets/overlays-BptoR4sm.js +0 -408
- package/dist/showcase/assets/overlays-CVGJ_FEg.js +0 -88
- package/dist/showcase/assets/package-0ZgMoFm1.js +0 -1
- package/dist/showcase/assets/package-check-CT0dhSM8.js +0 -1
- package/dist/showcase/assets/page-action-button-DrHJKFbp.js +0 -1
- package/dist/showcase/assets/page-header-CikNDnqI.js +0 -1
- package/dist/showcase/assets/pagination-CxuA2zkE.js +0 -42
- package/dist/showcase/assets/pagination-DsPLs2Tx.js +0 -1
- package/dist/showcase/assets/paperclip-CDMZ_JAo.js +0 -1
- package/dist/showcase/assets/password-input-BVaUPw7a.js +0 -1
- package/dist/showcase/assets/pencil-BouoJ5x7.js +0 -1
- package/dist/showcase/assets/phone-DCNFH5yg.js +0 -1
- package/dist/showcase/assets/plus-DkHZm34I.js +0 -1
- package/dist/showcase/assets/popover-BSB11Qjp.js +0 -1
- package/dist/showcase/assets/popover-CECpX3MQ.js +0 -1
- package/dist/showcase/assets/popover-menu-CuA8fb7i.js +0 -1
- package/dist/showcase/assets/products-BJHNTW62.js +0 -407
- package/dist/showcase/assets/progress-DGvRQyPS.js +0 -1
- package/dist/showcase/assets/progress-tpxRVOkp.js +0 -18
- package/dist/showcase/assets/props-table-BR-KjRNe.js +0 -1
- package/dist/showcase/assets/props.generated-qdUud3iu.json +0 -38611
- package/dist/showcase/assets/quote-CN-Sodsj.js +0 -1
- package/dist/showcase/assets/receipt-T8B9lscp.js +0 -1
- package/dist/showcase/assets/receipt-text-CeBruM29.js +0 -1
- package/dist/showcase/assets/refresh-cw-DnxNcOMm.js +0 -1
- package/dist/showcase/assets/resolveAriaLabelledBy-B2ZzrlGb.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-CGuVi0Dj.js +0 -1
- package/dist/showcase/assets/rich-text-editor-Bha0lSKT.js +0 -143
- package/dist/showcase/assets/rich-text-editor-NeOPmoZF.js +0 -124
- package/dist/showcase/assets/rotate-ccw-7aUlKQpX.js +0 -1
- package/dist/showcase/assets/save-AT8JlA8E.js +0 -1
- package/dist/showcase/assets/schema-form-BpkVygoO.js +0 -325
- package/dist/showcase/assets/scroll-area-B0wmaMAD.js +0 -32
- package/dist/showcase/assets/scroll-area-CgXTHlpJ.js +0 -1
- package/dist/showcase/assets/select-BG_Iad8E.js +0 -1
- package/dist/showcase/assets/select-t6dryszf.js +0 -1
- package/dist/showcase/assets/send-BzGRF4t-.js +0 -1
- package/dist/showcase/assets/separator-BjGdXNcn.js +0 -1
- package/dist/showcase/assets/separator-DbiGagrP.js +0 -28
- package/dist/showcase/assets/settings-BSRT_96A.js +0 -1
- package/dist/showcase/assets/sheet-CEuKOBxr.js +0 -1
- package/dist/showcase/assets/shield-CcR2q5u_.js +0 -1
- package/dist/showcase/assets/shield-alert-DhbgXV1X.js +0 -1
- package/dist/showcase/assets/shield-check-CRbBJXw2.js +0 -1
- package/dist/showcase/assets/shopping-bag-B5BzpLV5.js +0 -1
- package/dist/showcase/assets/sidebar--2nHUTn3.js +0 -1
- package/dist/showcase/assets/sidebar.context-BCb20eIt.js +0 -1
- package/dist/showcase/assets/skeleton-BeVdks4r.js +0 -1
- package/dist/showcase/assets/skeleton-DijlT51X.js +0 -29
- package/dist/showcase/assets/slider-Cp4m3NTK.js +0 -1
- package/dist/showcase/assets/sliders-horizontal-C8RwUn0S.js +0 -1
- package/dist/showcase/assets/smart-card-B4P_C0nk.js +0 -1
- package/dist/showcase/assets/sonner-CLYYRmEW.js +0 -22
- package/dist/showcase/assets/sortable.esm-CoekVJlU.js +0 -5
- package/dist/showcase/assets/sparkles-DFJmoAFP.js +0 -1
- package/dist/showcase/assets/spinner-CeQHboSs.js +0 -49
- package/dist/showcase/assets/spinner-DMKANM9S.js +0 -30
- package/dist/showcase/assets/spinner-WEI7TMVk.js +0 -1
- package/dist/showcase/assets/square-pen-CfvmmXYo.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CcCnnUrA.js +0 -1
- package/dist/showcase/assets/star-DK5onZCp.js +0 -1
- package/dist/showcase/assets/startOfDay-BuizEr24.js +0 -1
- package/dist/showcase/assets/styles-BStlbPXe.js +0 -1
- package/dist/showcase/assets/suggestions-Cd_XUmz3.js +0 -126
- package/dist/showcase/assets/switch-5f1vwEZ7.js +0 -1
- package/dist/showcase/assets/switch-arjWj-n7.js +0 -1
- package/dist/showcase/assets/sync-DorQdMfx.js +0 -107
- package/dist/showcase/assets/table-ClYkDRAk.js +0 -1
- package/dist/showcase/assets/table-D9q0odD8.js +0 -382
- package/dist/showcase/assets/table-actions-UJbkGb44.js +0 -1
- package/dist/showcase/assets/tabs-BENBPFif.js +0 -19
- package/dist/showcase/assets/tabs-ePpje8sU.js +0 -1
- package/dist/showcase/assets/tags-input-DRlg3zQH.js +0 -1
- package/dist/showcase/assets/text-button-CQvP6Kic.js +0 -1
- package/dist/showcase/assets/text-link-DT-nOORV.js +0 -1
- package/dist/showcase/assets/textarea-BGHGV17m.js +0 -1
- package/dist/showcase/assets/textarea-pstF1OBP.js +0 -1
- package/dist/showcase/assets/timelines-D8y-IyxW.js +0 -200
- package/dist/showcase/assets/toggle-group-BVyFo04r.js +0 -1
- package/dist/showcase/assets/toggles-dhLpAHSR.js +0 -71
- package/dist/showcase/assets/toggles-group-BJ5Jio2p.js +0 -32
- package/dist/showcase/assets/trash-2-OsaEm8cc.js +0 -1
- package/dist/showcase/assets/trending-up-HlQQXTth.js +0 -1
- package/dist/showcase/assets/truck-CvvBxBeB.js +0 -1
- package/dist/showcase/assets/typography-D_99bjSh.js +0 -223
- package/dist/showcase/assets/ui-badge-C1bu7wRu.js +0 -28
- package/dist/showcase/assets/ui-card-Ct1FFUxv.js +0 -30
- package/dist/showcase/assets/ui-table-Dxu9Jjq0.js +0 -42
- package/dist/showcase/assets/upload-tray-BeOBVU1z.js +0 -138
- package/dist/showcase/assets/use-layout-link-BK_oEoBg.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DLXArfPo.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-etINba8U.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-BNe9r1t_.js +0 -1
- package/dist/showcase/assets/useCompositeItem-CvG1CBEV.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-CcY0U1bY.js +0 -1
- package/dist/showcase/assets/useControlled-Cpg8gDqb.js +0 -1
- package/dist/showcase/assets/useLabelableId-Czdg4nY8.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-eyZ6twES.js +0 -1
- package/dist/showcase/assets/useRender-BAZlIYnj.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-C2I8g7TT.js +0 -1
- package/dist/showcase/assets/useValueChanged-Bz3WRSDy.js +0 -1
- package/dist/showcase/assets/user-Bqmz8M16.js +0 -1
- package/dist/showcase/assets/user-plus-MMxrhI4h.js +0 -1
- package/dist/showcase/assets/users-ERTaffcv.js +0 -1
- package/dist/showcase/assets/valueToPercent-B5BHWU68.js +0 -1
- package/dist/showcase/assets/vendor-profile-BAwCE0wP.js +0 -37
- package/dist/showcase/assets/video-DJm0ubTE.js +0 -1
- package/dist/showcase/assets/wrench-gaXnvr_b.js +0 -1
- package/dist/showcase/assets/x-BqJnRkKw.js +0 -1
- package/dist/showcase/assets/zap-DHBVTfYZ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-NBtWdAMl.js","names":[],"sources":["../../src/components/base/display/notification-banner.tsx","../../src/components/base/display/placeholder-pattern.tsx","../../src/components/base/display/show-if.tsx","../../src/components/base/display/throttle-alert.tsx","../../src/components/base/display/visually-hidden.tsx","../../src/components/base/display/stacked-avatars.tsx","../../src/components/base/display/date-block.tsx","../../src/components/ui/collapsible.tsx","../../src/components/base/display/money-input.tsx","../../src/components/base/display/boolean-indicator.tsx","../../src/components/ui/progress.tsx","../../src/components/base/display/qr-code.tsx","../../src/components/ui/empty.tsx","../../src/components/base/display/empty-state/empty-state.strings.ts","../../src/components/base/display/empty-state/empty-state.tsx","../../src/components/base/display/empty-state/partials/illustrations/document-stack.tsx","../../src/components/base/display/empty-state/partials/illustrations/inbox-clean.tsx","../../src/components/base/display/empty-state/partials/illustrations/search-glass.tsx","../../src/components/base/display/empty-state/partials/illustrations/stacked-cards.tsx","../../src/components/base/display/empty-state/partials/illustrations/users-circle.tsx","../../src/components/base/display/fields/email-display.tsx","../../src/components/base/display/fields/phone-display.tsx","../../src/components/base/display/fields/url-display.tsx","../../src/components/base/display/inline-stat/inline-stat.tsx","../../src/components/base/display/numeric-value/numeric-value.tsx","../../src/components/base/display/user-cell/user-cell.tsx","../../src/components/base/display/section-header/section-header.tsx"],"sourcesContent":["/**\n * NotificationBanner — full-width inline notification with type-specific\n * styling (info / success / error / warning). The icon sits in a soft circle\n * for clear hierarchy, the title (when present) reads at full strength, and\n * the message uses the muted secondary tone so the type colour highlights\n * without overwhelming. Optional dismiss button on the trailing edge.\n *\n * Use inside page bodies for non-blocking notices; reach for `Alert` when\n * the affordance is structural (e.g. inside a form), and Toast for transient\n * feedback.\n */\nimport { AlertTriangle, BadgeCheck, CircleAlert, Info, X } from 'lucide-react';\nimport React from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { sanitizeHtml } from '@/lib/sanitize-html';\nimport { cn } from '@/lib/utils';\n\nexport type NotificationType = 'info' | 'success' | 'error' | 'warning';\n\nexport interface NotificationBannerProps {\n\ttype?: NotificationType;\n\tdismissible?: boolean;\n\ttitle?: string;\n\tmessage?: string;\n\tonDismiss?: () => void;\n\tchildren?: React.ReactNode;\n\tasHTML?: boolean;\n\tdismissAriaLabel?: string;\n\tclassName?: string;\n}\n\ninterface BannerTone {\n\twrapper: string;\n\ticonRing: string;\n\ticonColor: string;\n\ttitle: string;\n\tclose: string;\n}\n\nconst TONES: Record<NotificationType, BannerTone> = {\n\tinfo: {\n\t\twrapper: 'border-info/30 bg-info/5',\n\t\ticonRing: 'bg-info/15',\n\t\ticonColor: 'text-info',\n\t\ttitle: 'text-info',\n\t\tclose: 'text-info/70 hover:text-info hover:bg-info/10',\n\t},\n\tsuccess: {\n\t\twrapper: 'border-success/30 bg-success/5',\n\t\ticonRing: 'bg-success/15',\n\t\ticonColor: 'text-success',\n\t\ttitle: 'text-success',\n\t\tclose: 'text-success/70 hover:text-success hover:bg-success/10',\n\t},\n\terror: {\n\t\twrapper: 'border-destructive/30 bg-destructive/5',\n\t\ticonRing: 'bg-destructive/15',\n\t\ticonColor: 'text-destructive',\n\t\ttitle: 'text-destructive',\n\t\tclose: 'text-destructive/70 hover:text-destructive hover:bg-destructive/10',\n\t},\n\twarning: {\n\t\twrapper: 'border-warning/40 bg-warning/10',\n\t\ticonRing: 'bg-warning/20',\n\t\ticonColor: 'text-warning-foreground',\n\t\ttitle: 'text-warning-foreground',\n\t\tclose: 'text-warning-foreground/70 hover:text-warning-foreground hover:bg-warning/20',\n\t},\n};\n\nconst ICONS: Record<NotificationType, React.ElementType> = {\n\tinfo: Info,\n\tsuccess: BadgeCheck,\n\terror: CircleAlert,\n\twarning: AlertTriangle,\n};\n\nfunction SanitizedSpan({ html }: { html: string }) {\n\treturn React.createElement('span', { dangerouslySetInnerHTML: { __html: html } });\n}\n\nexport function NotificationBanner({\n\ttype = 'info',\n\tdismissible = false,\n\ttitle,\n\tmessage,\n\tonDismiss,\n\tchildren,\n\tasHTML = false,\n\tdismissAriaLabel = 'Dismiss notification',\n\tclassName,\n}: NotificationBannerProps) {\n\tconst tone = TONES[type];\n\tconst IconComponent = ICONS[type];\n\tconst sanitizedHtml = React.useMemo(\n\t\t() => sanitizeHtml(message ?? (typeof children === 'string' ? children : '')),\n\t\t[children, message],\n\t);\n\tconst hasTitle = !!title;\n\n\treturn (\n\t\t<div\n\t\t\trole=\"status\"\n\t\t\tclassName={cn('notification-banner--component', \n\t\t\t\t'flex w-full items-start gap-3 rounded-lg border px-4 py-3',\n\t\t\t\t'animate-in fade-in-0 slide-in-from-bottom-1 duration-200',\n\t\t\t\ttone.wrapper,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\ttone.iconRing,\n\t\t\t\t\ttone.iconColor,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<IconComponent className=\"size-4\" />\n\t\t\t</span>\n\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t{hasTitle && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"leading-snug text-foreground\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"div\"\n\t\t\t\t\ttype={hasTitle ? 'secondary' : 'main'}\n\t\t\t\t\tclassName={cn('break-words leading-snug', hasTitle && 'mt-0.5')}\n\t\t\t\t>\n\t\t\t\t\t{!!asHTML && <SanitizedSpan html={sanitizedHtml} />}\n\t\t\t\t\t{!asHTML && (message ?? children)}\n\t\t\t\t</Text>\n\t\t\t</div>\n\n\t\t\t{!!dismissible && (\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\taria-label={dismissAriaLabel}\n\t\t\t\t\tonClick={onDismiss}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'-mr-1 inline-flex size-7 shrink-0 items-center justify-center rounded-md transition-colors',\n\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\ttone.close,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<X className=\"size-4\" />\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nNotificationBanner.displayName = 'NotificationBanner';\n\nexport default NotificationBanner;\n","/**\n * PlaceholderPattern — diagonal-stripe SVG fill suitable as a skeleton or\n * empty-region indicator. Uses a unique pattern id per instance so multiple\n * copies on the same page don't collide.\n */\nimport { useId } from 'react';\n\nimport { cn } from '@/lib/utils';\nexport interface PlaceholderPatternProps {\n\tclassName?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n\tconst patternId = useId();\n\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('placeholder-pattern--component', className)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\tx=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"10\"\n\t\t\t\t\theight=\"10\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"0.75\"\n\t\t\t\t\t\tstrokeLinecap=\"square\"\n\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t/>\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect\n\t\t\t\tstroke=\"none\"\n\t\t\t\tfill={`url(#${patternId})`}\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"100%\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nPlaceholderPattern.displayName = 'PlaceholderPattern';\n\n","/**\n * ShowIf — conditional render gate. Returns `children` when `when` is truthy,\n * otherwise the optional `fallback`. Useful for inline presentation logic\n * where a ternary would be noisier than a self-explanatory tag.\n */\nimport type { ReactNode } from 'react';\n\nexport type ShowIfProps = { when: boolean; children: ReactNode; fallback?: ReactNode };\n\nexport function ShowIf({ when, children, fallback = null }: ShowIfProps) {\n\tif (when) return children;\n\tif (fallback) return fallback;\n\treturn null;\n}\n\nShowIf.displayName = 'ShowIf';\n\nexport default ShowIf;\n\n","/**\n * ThrottleAlert — destructive alert for rate-limit / throttling errors.\n *\n * Single header icon, primary message, and a tight inline meta row showing\n * `attempts` and `remaining`. Use as a banner above a form when a request\n * has been blocked and the user must wait. Strings overridable for i18n.\n */\nimport { ShieldAlert, Clock, RotateCcw } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface ThrottleAlertStrings {\n\tmaxAttempts: string;\n\ttryAgainIn: string;\n}\n\nexport const defaultThrottleAlertStrings: ThrottleAlertStrings = {\n\tmaxAttempts: 'Max attempts',\n\ttryAgainIn: 'Try again in',\n};\n\nexport interface ThrottleAlertProps {\n\tmessage: string;\n\tattempts: number;\n\tremaining: string;\n\tclassName?: string;\n\tstrings?: Partial<ThrottleAlertStrings>;\n}\n\nexport function ThrottleAlert({\n\tmessage,\n\tattempts,\n\tremaining,\n\tclassName,\n\tstrings: stringsProp,\n}: ThrottleAlertProps) {\n\tconst strings = useStrings(defaultThrottleAlertStrings, stringsProp);\n\n\treturn (\n\t\t<div\n\t\t\trole=\"alert\"\n\t\t\tclassName={cn('throttle-alert--component', \n\t\t\t\t'flex items-start gap-3 rounded-lg border border-destructive/30 bg-destructive/5 px-4 py-3',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName=\"mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full bg-destructive/15 text-destructive\"\n\t\t\t>\n\t\t\t\t<ShieldAlert className=\"size-4\" />\n\t\t\t</span>\n\t\t\t<div className=\"min-w-0 flex-1 space-y-1.5\">\n\t\t\t\t<Text weight=\"medium\" className=\"text-destructive leading-snug\">\n\t\t\t\t\t{message}\n\t\t\t\t</Text>\n\t\t\t\t<div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-destructive/80\">\n\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t<RotateCcw className=\"size-3\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<span>{strings.maxAttempts}</span>\n\t\t\t\t\t\t<span className=\"font-semibold tabular-nums text-destructive\">{attempts}</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t<Clock className=\"size-3\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<span>{strings.tryAgainIn}</span>\n\t\t\t\t\t\t<span className=\"font-semibold tabular-nums text-destructive\">{remaining}</span>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nThrottleAlert.displayName = 'ThrottleAlert';\n","/**\n * VisuallyHidden — hides content from sighted users while keeping it readable\n * by assistive tech (screen readers, voice). Use to label icon-only buttons,\n * give context to status changes, or expose extra structure for AT users.\n */\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface VisuallyHiddenProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function VisuallyHidden({ children, className }: VisuallyHiddenProps) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn('visually-hidden--component', \n\t\t\t\t'absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0',\n\t\t\t\t'[clip:rect(0,0,0,0)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</span>\n\t);\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","/**\n * StackedAvatars — overlapping avatar group with optional `+N` overflow chip,\n * configurable size, and an optional semantic `tone` for fallbacks (initials)\n * when the consumer hasn't passed `imageUrl`.\n *\n * Wraps the shadcn AvatarGroup primitive with library-default sizes and a\n * deterministic tone picker so fallbacks stay stable without raw hue utilities.\n */\nimport * as React from 'react';\nimport {\n\tAvatar,\n\tAvatarFallback,\n\tAvatarGroup,\n\tAvatarGroupCount,\n\tAvatarImage,\n} from '@/components/ui/avatar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type StackedAvatarsSize = 'sm' | 'default' | 'lg';\nexport type StackedAvatarTone =\n\t| 'muted'\n\t| 'primary'\n\t| 'secondary'\n\t| 'info'\n\t| 'success'\n\t| 'warning'\n\t| 'destructive';\n\nexport interface StackedAvatarUser {\n\tid?: string;\n\tname: string;\n\timageUrl?: string;\n\t/** Optional semantic tone override for this user's fallback. Numeric values map to the token set. */\n\ttone?: StackedAvatarTone | number;\n}\n\nexport interface StackedAvatarsProps {\n\tusers: StackedAvatarUser[];\n\tmax?: number;\n\tsize?: StackedAvatarsSize;\n\tclassName?: string;\n\t/** Whether to render a `+N` count when `users.length > max`. Default `true`. */\n\tshowOverflow?: boolean;\n\t/** Provide custom overflow text (e.g. \"+12 more\"). Default `+N`. */\n\toverflowFormatter?: (overflow: number) => React.ReactNode;\n\t/** Extra class names applied to each avatar root. */\n\tavatarClassName?: string;\n}\n\nconst FALLBACK_TONES: StackedAvatarTone[] = [\n\t'muted',\n\t'primary',\n\t'secondary',\n\t'info',\n\t'success',\n];\n\nconst FALLBACK_TONE_CLASSNAMES: Record<StackedAvatarTone, string> = {\n\tmuted: 'bg-muted text-muted-foreground',\n\tprimary: 'bg-primary/10 text-primary',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tinfo: 'bg-info/10 text-info',\n\tsuccess: 'bg-success/10 text-success',\n\twarning: 'bg-warning/15 text-warning',\n\tdestructive: 'bg-destructive/10 text-destructive',\n};\n\nfunction getInitials(name: string, compact = false): string {\n\tconst parts = name.trim().split(/\\s+/);\n\tif (parts.length === 0) return '?';\n\tif (compact) return parts[0].slice(0, 1).toUpperCase();\n\tif (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n\treturn (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction pickFallbackTone(seed: string | number, override?: StackedAvatarTone | number) {\n\tif (typeof override === 'string') {\n\t\treturn override;\n\t}\n\tif (typeof override === 'number') {\n\t\treturn FALLBACK_TONES[Math.abs(override) % FALLBACK_TONES.length];\n\t}\n\tconst key = typeof seed === 'number' ? seed : Array.from(seed).reduce((s, c) => s + c.charCodeAt(0), 0);\n\treturn FALLBACK_TONES[key % FALLBACK_TONES.length];\n}\n\nexport function StackedAvatars({\n\tusers,\n\tmax = 4,\n\tsize = 'default',\n\tclassName,\n\tshowOverflow = true,\n\toverflowFormatter,\n\tavatarClassName,\n}: StackedAvatarsProps) {\n\tconst visible = users.slice(0, max);\n\tconst overflow = Math.max(0, users.length - max);\n\n\treturn (\n\t\t<AvatarGroup className={cn('stacked-avatars--component', className)}>\n\t\t\t{visible.map((user, index) => {\n\t\t\t\tconst initials = getInitials(user.name, size === 'sm');\n\t\t\t\tconst fallbackTone = pickFallbackTone(user.id ?? user.name ?? index, user.tone);\n\t\t\t\treturn (\n\t\t\t\t\t<Avatar\n\t\t\t\t\t\tkey={user.id ?? `${user.name}-${index}`}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tclassName={cn('ring-background', avatarClassName)}\n\t\t\t\t\t\ttitle={user.name}\n\t\t\t\t\t>\n\t\t\t\t\t\t{user.imageUrl ? (\n\t\t\t\t\t\t\t<AvatarImage src={user.imageUrl} alt={user.name} />\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<AvatarFallback\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'font-semibold',\n\t\t\t\t\t\t\t\tFALLBACK_TONE_CLASSNAMES[fallbackTone],\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t</Avatar>\n\t\t\t\t);\n\t\t\t})}\n\t\t\t{!!showOverflow && overflow > 0 && (\n\t\t\t\t<AvatarGroupCount>\n\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\">\n\t\t\t\t\t\t{overflowFormatter ? overflowFormatter(overflow) : `+${overflow}`}\n\t\t\t\t\t</Text>\n\t\t\t\t</AvatarGroupCount>\n\t\t\t)}\n\t\t</AvatarGroup>\n\t);\n}\n\nStackedAvatars.displayName = 'StackedAvatars';\n","/**\n * DateBlock — compact \"boxed\" date display showing weekday + day-of-month\n * + optional month and time. Built on `date-fns` so locales propagate\n * naturally (`enGB`, `bg`, …).\n *\n * Two layouts:\n * - `stacked` (default) — three lines: weekday / day / month\n * - `inline` — single row: weekday + day + month + optional time\n *\n * Time can render `inline` (right of the date), `below` (under the date\n * block), or `hidden`. Compact rooms (booking lists) typically use\n * `stacked` with `time=\"below\"`.\n */\nimport { format, type Locale } from 'date-fns';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport type DateBlockLayout = 'stacked' | 'inline';\nexport type DateBlockTimePlacement = 'inline' | 'below' | 'hidden';\nexport type DateBlockTone = 'default' | 'muted' | 'primary' | 'inverse' | 'success' | 'warning' | 'destructive' | 'info';\n\nexport interface DateBlockStrings {\n\t/** Used by `inline` layout when month is hidden (e.g. \"Apr 30 · 14:00\"). */\n\tseparator: string;\n}\n\nexport const defaultDateBlockStrings: DateBlockStrings = {\n\tseparator: '·',\n};\n\nexport interface DateBlockProps {\n\t/** Date instance, ISO string, or unix timestamp. */\n\tdate: Date | string | number;\n\t/** ISO time string (`HH:mm`) or already-formatted time string. */\n\ttime?: string | null;\n\t/** date-fns `Locale` (e.g. `enGB`, `bg`). Defaults to user-agent. */\n\tlocale?: Locale;\n\t/** Layout. Default `stacked`. */\n\tlayout?: DateBlockLayout;\n\t/** Where to place the time. Default `inline` for `inline` layout, `below` for `stacked`. */\n\ttimePlacement?: DateBlockTimePlacement;\n\t/** Tone of the boxed block. Default `default` (card surface). */\n\ttone?: DateBlockTone;\n\t/** Whether to render a card-like box around the block. Default `true` for stacked, `false` for inline. */\n\tboxed?: boolean;\n\t/** Show month label. Default `true`. */\n\tshowMonth?: boolean;\n\t/** Custom format for the day-of-month token (date-fns format). Default `'d'`. */\n\tdayFormat?: string;\n\t/** Custom format for the weekday token. Default `'EEE'`. */\n\tweekdayFormat?: string;\n\t/** Custom format for the month token. Default `'MMM'`. */\n\tmonthFormat?: string;\n\tclassName?: string;\n\tstrings?: Partial<DateBlockStrings>;\n}\n\nconst toneClassMap: Record<DateBlockTone, { bg: string; text: string; border: string; accent: string; subtle: string }> = {\n\tdefault: { bg: 'bg-card', text: 'text-foreground', border: 'border-border', accent: 'text-foreground', subtle: 'text-muted-foreground' },\n\tinverse: { bg: 'bg-primary', text: 'text-background', border: 'border-primary', accent: 'text-background/80', subtle: 'text-background/65' },\n\tmuted: { bg: 'bg-muted/50', text: 'text-foreground', border: 'border-border', accent: 'text-foreground', subtle: 'text-muted-foreground' },\n\tprimary: { bg: 'bg-primary/10', text: 'text-foreground', border: 'border-primary/30', accent: 'text-primary', subtle: 'text-muted-foreground' },\n\tsuccess: { bg: 'bg-success/10', text: 'text-foreground', border: 'border-success/30', accent: 'text-success', subtle: 'text-muted-foreground' },\n\twarning: { bg: 'bg-warning/15', text: 'text-foreground', border: 'border-warning/40', accent: 'text-warning-foreground', subtle: 'text-muted-foreground' },\n\tdestructive: { bg: 'bg-destructive/10', text: 'text-foreground', border: 'border-destructive/30', accent: 'text-destructive', subtle: 'text-muted-foreground' },\n\tinfo: { bg: 'bg-info/10', text: 'text-foreground', border: 'border-info/30', accent: 'text-info', subtle: 'text-muted-foreground' },\n};\n\nfunction resolveDate(input: Date | string | number): Date {\n\tif (input instanceof Date) return input;\n\tconst d = typeof input === 'number' ? new Date(input) : new Date(input);\n\treturn d;\n}\n\nexport function DateBlock({\n\tdate,\n\ttime,\n\tlocale,\n\tlayout = 'stacked',\n\ttimePlacement,\n\ttone = 'default',\n\tboxed,\n\tshowMonth = true,\n\tdayFormat = 'd',\n\tweekdayFormat = 'EEE',\n\tmonthFormat = 'MMM',\n\tclassName,\n\tstrings: stringsProp,\n}: DateBlockProps) {\n\tconst resolved = resolveDate(date);\n\tconst strings = useStrings(defaultDateBlockStrings, stringsProp);\n\tconst tones = toneClassMap[tone];\n\tconst dateValid = !Number.isNaN(resolved.getTime());\n\n\tconst weekday = dateValid ? format(resolved, weekdayFormat, locale ? { locale } : undefined) : '';\n\tconst day = dateValid ? format(resolved, dayFormat, locale ? { locale } : undefined) : '';\n\tconst month = dateValid ? format(resolved, monthFormat, locale ? { locale } : undefined) : '';\n\n\tconst resolvedTimePlacement: DateBlockTimePlacement =\n\t\ttimePlacement ?? (layout === 'inline' ? 'inline' : 'below');\n\tconst useBox = boxed ?? layout === 'stacked';\n\n\tif (layout === 'inline') {\n\t\treturn (\n\t\t\t<span\n\t\t\t\tclassName={cn('date-block--component', \n\t\t\t\t\t'inline-flex items-center gap-1.5 tabular-nums',\n\t\t\t\t\tuseBox && cn('rounded-md border px-2 py-1', tones.bg, tones.border),\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className={cn(tones.accent, 'uppercase tracking-wide')}>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t\t<Text weight=\"semibold\">{day}</Text>\n\t\t\t\t{!!showMonth && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t{month}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t{!!time && resolvedTimePlacement === 'inline' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\" aria-hidden>\n\t\t\t\t\t\t\t{strings.separator}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{time}</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={cn('inline-flex flex-col items-center gap-0.5', className)}>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex flex-col items-center justify-center gap-1 tabular-nums',\n\t\t\t\t\tuseBox && cn('w-14 min-h-14 rounded-md border px-1.5 py-1.5', tones.bg, tones.border),\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tstyle={{ lineHeight: 1 }}\n\t\t\t\t\tclassName={cn(tones.accent, 'uppercase tracking-wider')}\n\t\t\t\t>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t\t<Text size=\"lg\" weight=\"bold\" style={{ lineHeight: 1 }} className={tones.text}>\n\t\t\t\t\t{day}\n\t\t\t\t</Text>\n\t\t\t\t{!!showMonth && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\tstyle={{ lineHeight: 1 }}\n\t\t\t\t\t\tclassName={cn(tones.subtle, 'uppercase tracking-wider')}\n\t\t\t\t\t>\n\t\t\t\t\t\t{month}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!time && resolvedTimePlacement === 'below' && (\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t{time}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{!!time && resolvedTimePlacement === 'inline' && (\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t{time}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nDateBlock.displayName = 'DateBlock';\n","import { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\nimport * as React from \"react\"\n\nimport { Slot } from \"@/components/ui/slot\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n asChild = false,\n nativeButton,\n render,\n children,\n ...props\n}: CollapsiblePrimitive.Trigger.Props & { asChild?: boolean; nativeButton?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: CollapsiblePrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n let inferredNativeButton = true\n if (asChild && React.isValidElement(children)) {\n if (typeof children.type === \"string\") {\n inferredNativeButton = children.type === \"button\"\n } else {\n const childProps = (children.props ?? {}) as Record<string, unknown>\n inferredNativeButton = !(\"href\" in childProps)\n }\n }\n const resolvedNativeButton = nativeButton ?? (asChild ? inferredNativeButton : true)\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n render={slotRender ?? safeRender}\n nativeButton={resolvedNativeButton}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Trigger>\n )\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import { AlertTriangle, Info } from 'lucide-react';\nimport { useCallback, useMemo, type ReactNode } from 'react';\n\nimport { MoneyInput as BaseMoneyInput, type MoneyInputProps as BaseMoneyInputProps } from '@/components/base/forms/fields/money-input';\nimport { FormField } from '@/components/base/forms/form-field';\nimport { Text } from '@/components/typography';\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\nimport type { CurrencyCode } from '@/lib/ui-provider';\n\n/** Optional money payload for migration hints. Consumers map their domain\n * shape into this — `formatted` is the consumer's pre-rendered display\n * string for the alternate currency leg. */\nexport interface MoneyData {\n amount?: number | string | null;\n currency?: string | null;\n /** Optional original/record currency that triggered a migration warning. */\n recordCurrency?: string | null;\n /** Optional secondary leg the consumer formatted for display. */\n pair?: { formatted?: string | null } | null;\n}\n\nexport interface MoneyInputData {\n amount: number;\n currency: CurrencyCode;\n}\n\nexport interface MoneyInputProps extends Omit<BaseMoneyInputProps, 'invalid'> {\n /** Optional money payload for migration hints */\n money?: MoneyData | null;\n /** Display label */\n label?: string;\n /** Hint next to label */\n hint?: string;\n /** Helper text below input */\n helperText?: string;\n /** Error message */\n error?: string;\n /** Required indicator */\n required?: boolean;\n /** Invalid state override */\n invalid?: boolean;\n /** Optional change handler for combined data */\n onChangeData?: (data: MoneyInputData) => void;\n /** Record currency for migration detection */\n recordCurrency?: CurrencyCode;\n /** Show migration warning block */\n showMigrationWarning?: boolean;\n /** Custom migration warning message */\n migrationWarningMessage?: ReactNode;\n /** Show original currency hint */\n showOriginalHint?: boolean;\n}\n\nconst defaultEmptyFormatted = '—';\n\nconst resolveFormatted = (formatted: unknown): string =>\n typeof formatted === 'string' ? formatted.trim() : '';\n\nexport function MoneyInput({\n money,\n currency = 'EUR',\n onChangeData,\n recordCurrency: recordCurrencyProp,\n label,\n hint,\n helperText,\n error,\n required,\n invalid,\n showMigrationWarning = true,\n migrationWarningMessage,\n showOriginalHint = true,\n className,\n onChange,\n onCurrencyChange,\n ...props\n}: MoneyInputProps) {\n const recordCurrency = recordCurrencyProp ?? money?.recordCurrency ?? undefined;\n\n const willMigrate = useMemo(\n () => recordCurrency !== undefined && recordCurrency !== currency,\n [recordCurrency, currency],\n );\n\n const otherFormatted = useMemo(() => {\n if (!showOriginalHint) return '';\n return resolveFormatted(money?.pair?.formatted);\n }, [showOriginalHint, money?.pair?.formatted]);\n\n const showOriginalHintBlock = otherFormatted.length > 0 && !error;\n const showMigrationBlock = willMigrate && showMigrationWarning;\n\n const handleAmountChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n const parsed = Number.parseFloat(e.target.value);\n const safeAmount = Number.isFinite(parsed) ? parsed : 0;\n onChangeData?.({ amount: safeAmount, currency });\n },\n [onChange, onChangeData, currency],\n );\n\n const handleCurrencyChange = useCallback(\n (nextCurrency: CurrencyCode) => {\n onCurrencyChange?.(nextCurrency);\n const parsedValue = Number.parseFloat(String(props.value ?? ''));\n const safeAmount = Number.isFinite(parsedValue) ? parsedValue : 0;\n onChangeData?.({ amount: safeAmount, currency: nextCurrency });\n },\n [onCurrencyChange, onChangeData, props.value],\n );\n\n const isInvalid = invalid ?? Boolean(error);\n\n const inputNode = (\n <BaseMoneyInput\n {...props}\n currency={currency}\n onChange={handleAmountChange}\n onCurrencyChange={handleCurrencyChange}\n invalid={isInvalid}\n />\n );\n\n const hasChrome = Boolean(label || hint || helperText || error || required);\n const renderedInput = hasChrome ? (\n <FormField\n label={label}\n hint={hint}\n helperText={helperText}\n error={error}\n required={required}\n >\n {inputNode}\n </FormField>\n ) : inputNode;\n\n return (\n <div className={cn('money-input--component', 'space-y-2', className)}>\n {renderedInput}\n\n {!!showOriginalHintBlock && (\n <div className=\"flex items-center gap-1.5 text-muted-foreground\">\n <Info className=\"h-3.5 w-3.5 shrink-0\" />\n <Text size=\"xs\" type=\"secondary\">\n {otherFormatted || defaultEmptyFormatted}\n </Text>\n </div>\n )}\n\n {!!showMigrationBlock && (\n <Alert className=\"border-warning/50 bg-warning/5 py-2\">\n <AlertTriangle className=\"h-4 w-4 text-warning\" />\n <AlertDescription className=\"text-warning-foreground text-xs\">\n {migrationWarningMessage ??\n `Currency will be converted from ${recordCurrency ?? ''} to ${currency}.`}\n </AlertDescription>\n </Alert>\n )}\n </div>\n );\n}\n\nMoneyInput.displayName = 'MoneyInput';\n","/**\n * BooleanIndicator — labelled yes/no chip showing the truth of a value with an\n * optional check/cross icon. Use for compact metadata grids where each row\n * answers a single boolean question. Strings overridable for i18n.\n */\nimport { CheckCircle2, XCircle } from 'lucide-react';\nimport React from 'react';\nimport { Badge, type ComposedBadgeVariant } from '@/components/base/badge';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface BooleanIndicatorStrings {\n\ttrue: string;\n\tfalse: string;\n}\n\nexport const defaultBooleanIndicatorStrings: BooleanIndicatorStrings = {\n\ttrue: 'Yes',\n\tfalse: 'No',\n};\n\nexport type BooleanIndicatorProps = {\n\tlabel: React.ReactNode;\n\tvalue?: boolean | null;\n\tshowIcon?: boolean;\n\ttrueVariant?: ComposedBadgeVariant;\n\tfalseVariant?: ComposedBadgeVariant;\n\tclassName?: string;\n\tbadgeClassName?: string;\n\tstrings?: Partial<BooleanIndicatorStrings>;\n\t/** @deprecated Use `strings.true` instead. */\n\ttrueLabel?: React.ReactNode;\n\t/** @deprecated Use `strings.false` instead. */\n\tfalseLabel?: React.ReactNode;\n};\n\nexport function BooleanIndicator({\n\tlabel,\n\tvalue = false,\n\ttrueLabel,\n\tfalseLabel,\n\tshowIcon = true,\n\ttrueVariant = 'success',\n\tfalseVariant = 'secondary',\n\tclassName,\n\tbadgeClassName,\n\tstrings: stringsProp,\n}: BooleanIndicatorProps) {\n\tconst strings = useStrings(defaultBooleanIndicatorStrings, stringsProp);\n\tconst isTrue = Boolean(value);\n\tconst Icon = isTrue ? CheckCircle2 : XCircle;\n\tconst badgeVariant = isTrue ? trueVariant : falseVariant;\n\tconst fallback = isTrue ? trueLabel : falseLabel;\n\tconst content = fallback ?? (isTrue ? strings.true : strings.false);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('boolean-indicator--component', \n\t\t\t\t'flex items-center justify-between rounded-md border border-border/60 bg-muted/30 px-3 py-2',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t<Badge\n\t\t\t\tvariant={badgeVariant}\n\t\t\t\tsize=\"sm\"\n\t\t\t\tclassName={cn('whitespace-nowrap', badgeClassName)}\n\t\t\t>\n\t\t\t\t{!!showIcon && <Icon className=\"h-3.5 w-3.5\" />}\n\t\t\t\t{content}\n\t\t\t</Badge>\n\t\t</div>\n\t);\n}\n\nBooleanIndicator.displayName = 'BooleanIndicator';\n\nexport default BooleanIndicator;\n","import { Progress as ProgressPrimitive } from \"@base-ui/react/progress\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Progress({\n className,\n children,\n value,\n ...props\n}: ProgressPrimitive.Root.Props) {\n return (\n <ProgressPrimitive.Root\n value={value}\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-3\", className)}\n {...props}\n >\n {children}\n <ProgressTrack>\n <ProgressIndicator />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n )\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"bg-muted h-1.5 rounded-full relative flex w-full items-center overflow-x-hidden\",\n className\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n )\n}\n\nfunction ProgressIndicator({\n className,\n ...props\n}: ProgressPrimitive.Indicator.Props) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"bg-primary h-full transition-all\", className)}\n {...props}\n />\n )\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"text-sm font-medium\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n )\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\"text-muted-foreground ml-auto text-sm tabular-nums\", className)}\n data-slot=\"progress-value\"\n {...props}\n />\n )\n}\n\nexport {\n Progress,\n ProgressTrack,\n ProgressIndicator,\n ProgressLabel,\n ProgressValue,\n}\n","import { formatHex, oklch } from 'culori';\nimport QR from 'qrcode';\nimport type { HTMLAttributes } from 'react';\nimport { useEffect, useState } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type QRCodeProps = HTMLAttributes<HTMLDivElement> & {\n\tdata: string;\n\tforeground?: string;\n\tbackground?: string;\n\trobustness?: 'L' | 'M' | 'Q' | 'H';\n};\n\nconst oklchRegex = /oklch\\\\(([.\\\\d-]+)\\\\s+([.\\\\d]+)\\\\s+([.\\\\d]+)\\\\)/;\n\nfunction getOklch(color: string, fallback: [number, number, number]) {\n\tconst oklchMatch = color.match(oklchRegex);\n\n\tif (!oklchMatch) {\n\t\treturn { l: fallback[0], c: fallback[1], h: fallback[2] };\n\t}\n\n\treturn {\n\t\tl: Number.parseFloat(oklchMatch[1]),\n\t\tc: Number.parseFloat(oklchMatch[2]),\n\t\th: Number.parseFloat(oklchMatch[3]),\n\t};\n}\n\nexport function QRCode({\n\tdata,\n\tforeground,\n\tbackground,\n\trobustness = 'M',\n\tclassName,\n\t...props\n}: QRCodeProps) {\n\tconst [svg, setSvg] = useState<string | null>(null);\n\n\tuseEffect(() => {\n\t\tconst generateQR = async () => {\n\t\t\ttry {\n\t\t\t\tconst text = String(data ?? '').trim();\n\t\t\t\tif (!text) {\n\t\t\t\t\tsetSvg(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst styles = getComputedStyle(document.documentElement);\n\t\t\t\tconst foregroundColor =\n\t\t\t\t\tforeground ?? styles.getPropertyValue('--foreground');\n\t\t\t\tconst backgroundColor =\n\t\t\t\t\tbackground ?? styles.getPropertyValue('--background');\n\n\t\t\t\tconst foregroundOklch = getOklch(foregroundColor, [\n\t\t\t\t\t0.21, 0.006, 285.885,\n\t\t\t\t]);\n\t\t\t\tconst backgroundOklch = getOklch(backgroundColor, [0.985, 0, 0]);\n\n\t\t\t\tconst newSvg = await QR.toString(text, {\n\t\t\t\t\ttype: 'svg',\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tdark: formatHex(\n\t\t\t\t\t\t\toklch({ mode: 'oklch', ...foregroundOklch }),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlight: formatHex(\n\t\t\t\t\t\t\toklch({ mode: 'oklch', ...backgroundOklch }),\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\twidth: 200,\n\t\t\t\t\terrorCorrectionLevel: robustness,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t});\n\n\t\t\t\tsetSvg(newSvg);\n\t\t\t} catch {\n\t\t\t\t// QR generation failure (invalid data, oversized payload) — render falls\n\t\t\t\t// back to empty SVG; consumer can surface their own error from the parent.\n\t\t\t\tsetSvg('');\n\t\t\t}\n\t\t};\n\n\t\tvoid generateQR();\n\t}, [data, foreground, background, robustness]);\n\n\tif (!svg) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('qr-code--component', 'size-full', '[&_svg]:size-full', className)}\n\t\t\tdangerouslySetInnerHTML={{ __html: svg }}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport default QRCode;\n\nQRCode.displayName = 'QRCode';\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"gap-4 rounded-lg border-dashed p-12 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"gap-2 flex max-w-sm flex-col items-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"gap-4 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n","/**\n * Strings for `<EmptyState>`. English defaults — every piece of copy is\n * deep-merge-overridable per rule 8.\n *\n * `title`/`description` here are the *fallback* defaults the component\n * renders when neither the prop nor a per-illustration preset supplies\n * its own copy. In practice, the consumer usually passes an explicit\n * `title` / `description` per resource (\"No products\", \"No invoices yet\")\n * — these defaults exist so a bare `<EmptyState />` still renders\n * sensibly during scaffolding.\n */\nexport interface EmptyStateStrings {\n\ttitle: string;\n\tdescription: string;\n\tariaLabel: string;\n}\n\nexport const defaultEmptyStateStrings: EmptyStateStrings = {\n\ttitle: 'Nothing here yet',\n\tdescription: 'Once data lands, it will show up in this view.',\n\tariaLabel: 'Empty state',\n};\n","/**\n * EmptyState — the canonical zero-data surface for any list, table, or\n * collection in the library. Wraps the shadcn `ui/empty` primitive\n * (rule 1, rule 12) and applies our typography, density, and tokens:\n *\n * - Headline through `<Heading tag=\"h3\">` (admin scale, no marketing inflation)\n * - Description through `<Text size=\"xs\" type=\"secondary\">` — matches\n * the four sibling empty-states across the library\n * - Padding presets driven by props, not arbitrary literals\n * - Optional dashed-border affordance for \"this slot is a drop zone\"\n *\n * Composability:\n * - Slots: `media`, `actions`, `footer`\n * - Render-prop: `renderMedia(ctx)` for fully custom illustrations\n * - Strings: every piece of copy is overridable via `strings`\n *\n * The library ships a small illustration set under\n * `./partials/illustrations/*` — import explicitly per resource:\n *\n * import { StackedCardsIllustration } from\n * '@/components/base/display/empty-state/partials/illustrations';\n *\n * Adaptive shape per resource: pass a different `media` per surface.\n * Don't fork the component.\n */\nimport { forwardRef } from 'react';\n\nimport { Heading, Text } from '@/components/typography';\nimport {\n\tEmpty,\n\tEmptyContent,\n\tEmptyHeader,\n\tEmptyMedia,\n} from '@/components/ui/empty';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultEmptyStateStrings } from './empty-state.strings';\nimport type {\n\tEmptyStateMediaVariant,\n\tEmptyStatePadding,\n\tEmptyStateProps,\n} from './empty-state.types';\n\nconst PADDING_CLASS: Record<EmptyStatePadding, string> = {\n\tcompact: 'py-6',\n\tbase: 'py-12',\n\tloose: 'py-16',\n};\n\nconst MEDIA_VARIANT_TO_PRIMITIVE: Record<EmptyStateMediaVariant, 'default' | 'icon'> = {\n\tnone: 'default',\n\ticon: 'icon',\n\t'icon-soft': 'icon',\n\tillustration: 'default',\n};\n\nconst MEDIA_EXTRA_CLASS: Record<EmptyStateMediaVariant, string | undefined> = {\n\tnone: undefined,\n\ticon: undefined,\n\t'icon-soft': 'bg-muted/40 text-muted-foreground',\n\tillustration: 'mb-4',\n};\n\nexport const EmptyState = forwardRef<HTMLDivElement, EmptyStateProps>(function EmptyState({\n\ttitle,\n\tdescription,\n\tmedia,\n\tmediaVariant = 'none',\n\trenderMedia,\n\tactions,\n\tfooter,\n\tpadding = 'base',\n\tborder = false,\n\tclassName,\n\tstrings: stringsProp,\n\tariaLabel,\n}, ref) {\n\tconst strings = useStrings(defaultEmptyStateStrings, stringsProp);\n\n\tconst resolvedTitle = title ?? strings.title;\n\tconst resolvedDescription =\n\t\tdescription === false ? null : description ?? strings.description;\n\tconst mediaNode = renderMedia ? renderMedia({ mediaVariant }) : media;\n\tconst showMedia = !!mediaNode;\n\n\treturn (\n\t\t<Empty\n\t\t\tref={ref}\n\t\t\trole=\"status\"\n\t\t\taria-label={ariaLabel ?? strings.ariaLabel}\n\t\t\tclassName={cn('empty-state--component', \n\t\t\t\tPADDING_CLASS[padding],\n\t\t\t\tborder ? 'border border-dashed' : 'border-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<EmptyHeader>\n\t\t\t\t{!!showMedia && (\n\t\t\t\t\t<EmptyMedia\n\t\t\t\t\t\tvariant={MEDIA_VARIANT_TO_PRIMITIVE[mediaVariant]}\n\t\t\t\t\t\tclassName={MEDIA_EXTRA_CLASS[mediaVariant]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{mediaNode}\n\t\t\t\t\t</EmptyMedia>\n\t\t\t\t)}\n\t\t\t\t<Heading tag=\"h3\" className=\"border-0 pb-0 text-base\" data-slot=\"empty-title\">\n\t\t\t\t\t{resolvedTitle}\n\t\t\t\t</Heading>\n\t\t\t\t{!!resolvedDescription && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName=\"leading-relaxed [&>a]:text-primary [&>a]:underline [&>a]:underline-offset-4 hover:[&>a]:no-underline\"\n\t\t\t\t\t\tdata-slot=\"empty-description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedDescription}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</EmptyHeader>\n\t\t\t{(!!actions || !!footer) && (\n\t\t\t\t<EmptyContent>\n\t\t\t\t\t{!!actions && (\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2\">\n\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!footer && <div className=\"text-xs text-muted-foreground\">{footer}</div>}\n\t\t\t\t</EmptyContent>\n\t\t\t)}\n\t\t</Empty>\n\t);\n});\n\nEmptyState.displayName = 'EmptyState';\n","import { cn } from '@/lib/utils';\n\n/**\n * Two staggered document silhouettes — for \"no documents\", \"no\n * invoices\", \"no reports\" surfaces.\n */\nexport function DocumentStackIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-32', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/70 dark:bg-muted/40 border-border/50 absolute left-1 top-1 flex h-20 w-20 -rotate-6 flex-col gap-1.5 rounded-md border p-2 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted h-2 w-12 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-10 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-9 rounded\" />\n\t\t\t</div>\n\t\t\t<div className=\"bg-background border-border absolute right-1 top-2 flex h-20 w-20 rotate-3 flex-col gap-1.5 rounded-md border p-2 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted h-2 w-12 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-10 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-9 rounded\" />\n\t\t\t\t<div className=\"mt-auto flex items-center gap-1\">\n\t\t\t\t\t<div className=\"bg-success size-1.5 rounded-full\" />\n\t\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-8 rounded\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nDocumentStackIllustration.displayName = 'DocumentStackIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Open inbox tray with a soft check above — for \"all caught up\",\n * \"no notifications\", \"inbox zero\" surfaces.\n */\nexport function InboxCleanIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-32', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-success/12 border-success/30 absolute left-1/2 top-0 flex size-8 -translate-x-1/2 items-center justify-center rounded-full border\">\n\t\t\t\t<svg\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\tclassName=\"text-success size-3.5\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path d=\"M3 8l3 3 7-7\" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t\t<div className=\"bg-background border-border absolute inset-x-0 bottom-0 flex h-14 flex-col rounded-lg border shadow-sm\">\n\t\t\t\t<div className=\"bg-muted/30 h-3 rounded-t-lg\" />\n\t\t\t\t<div className=\"flex flex-1 items-center justify-between px-3\">\n\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-12 rounded\" />\n\t\t\t\t\t\t<div className=\"bg-muted/40 h-1.5 w-8 rounded\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"bg-muted/40 size-3 rounded-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nInboxCleanIllustration.displayName = 'InboxCleanIllustration';\n","import { Search } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/**\n * Magnifying-glass illustration centered on a soft tinted disk — for\n * \"no search results\", \"nothing matches your filters\" surfaces.\n */\nexport function SearchGlassIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'flex size-20 items-center justify-center rounded-full bg-muted/40 ring-8 ring-muted/20',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<Search className=\"size-8 text-muted-foreground\" />\n\t\t</div>\n\t);\n}\n\nSearchGlassIllustration.displayName = 'SearchGlassIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Three stacked card silhouettes with a fade-out at the bottom — the\n * generic \"no records\" illustration. Token-driven so it adapts to any\n * theme (uses `bg-muted`, `bg-background`, `border-border`, no raw\n * palette).\n */\nexport function StackedCardsIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-52', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/60 dark:bg-muted/30 border-border/50 absolute inset-x-6 top-0 h-6 rounded-t-lg border\" />\n\t\t\t<div className=\"bg-muted/80 dark:bg-muted/50 border-border/60 absolute inset-x-3 top-3 h-6 rounded-t-lg border\" />\n\t\t\t<div className=\"bg-background border-border absolute inset-x-0 top-6 flex h-16 items-center gap-3 rounded-lg border px-4 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted size-8 shrink-0 rounded\" />\n\t\t\t\t<div className=\"flex flex-1 flex-col gap-1.5\">\n\t\t\t\t\t<div className=\"bg-muted h-2.5 w-3/4 rounded\" />\n\t\t\t\t\t<div className=\"bg-muted/60 h-2 w-1/2 rounded\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"from-background/0 via-background/60 to-background pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-linear-to-b\" />\n\t\t</div>\n\t);\n}\n\nStackedCardsIllustration.displayName = 'StackedCardsIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Three overlapping avatar circles — for \"no team members\", \"no\n * customers\", \"no contributors\" surfaces.\n */\nexport function UsersCircleIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative flex h-24 w-32 items-center justify-center', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/70 border-border absolute left-2 size-12 rounded-full border-2\" />\n\t\t\t<div className=\"bg-muted border-border z-10 size-14 rounded-full border-2 shadow-sm\" />\n\t\t\t<div className=\"bg-muted/60 border-border absolute right-2 size-10 rounded-full border-2\" />\n\t\t</div>\n\t);\n}\n\nUsersCircleIllustration.displayName = 'UsersCircleIllustration';\n","/**\n * EmailDisplay — formats an email address as a copyable, optional `mailto:`\n * link. Falls back to the shared EMPTY placeholder when no value is provided.\n * Strings are overridable for i18n via the `strings` prop.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface EmailDisplayStrings {\n\tcopySuccess: string;\n}\n\nexport const defaultEmailDisplayStrings: EmailDisplayStrings = {\n\tcopySuccess: 'Email copied to clipboard',\n};\n\nexport interface EmailDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\temail: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\tstrings?: Partial<EmailDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n}\n\nexport function EmailDisplay({\n\temail,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: EmailDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultEmailDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...stringsProp,\n\t});\n\tif (!email || email.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('email-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst emailText = (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\ttag=\"span\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-medium',\n\t\t\t\t'decoration-dotted decoration-border underline underline-offset-4',\n\t\t\t\t'transition-colors duration-200',\n\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{email}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={email}\n\t\t\t\tdisplayValue={emailText}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName=\"-mx-0\"\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={`mailto:${email}`}\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a href={`mailto:${email}`} className=\"inline-flex items-center no-underline\">\n\t\t\t\t{emailText}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn emailText;\n}\n\nEmailDisplay.displayName = 'EmailDisplay';\n","/**\n * PhoneDisplay — formats a phone number as a copyable, optional `tel:` link.\n * Strips visual separators when generating the `tel:` href; falls back to the\n * shared EMPTY placeholder when no value is provided. Strings overridable.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface PhoneDisplayStrings {\n\tcopySuccess: string;\n}\n\nexport const defaultPhoneDisplayStrings: PhoneDisplayStrings = {\n\tcopySuccess: 'Phone number copied to clipboard',\n};\n\nexport interface PhoneDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\tphone: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\tstrings?: Partial<PhoneDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n}\n\nfunction formatPhoneForTel(phone: string): string {\n\treturn phone.replace(/[\\s().-]/g, '');\n}\n\nexport function PhoneDisplay({\n\tphone,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: PhoneDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultPhoneDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...stringsProp,\n\t});\n\tif (!phone || phone.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('phone-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst phoneText = (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\ttag=\"span\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-medium',\n\t\t\t\t'decoration-dotted decoration-border underline underline-offset-4',\n\t\t\t\t'transition-colors duration-200',\n\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{phone}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={phone}\n\t\t\t\tdisplayValue={phoneText}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName=\"-mx-0\"\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={`tel:${formatPhoneForTel(phone)}`}\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a\n\t\t\t\thref={`tel:${formatPhoneForTel(phone)}`}\n\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t>\n\t\t\t\t{phoneText}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn phoneText;\n}\n\nPhoneDisplay.displayName = 'PhoneDisplay';\n","/**\n * UrlDisplay — formats a URL as a copyable, optional external link.\n * Detects insecure (http://) URLs and renders an inline tooltip warning. The\n * link can be truncated by hostname/path heuristic with a tooltip showing the\n * full URL on hover. Strings overridable for i18n.\n */\nimport { ExternalLink, ShieldAlert } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/base/display/tooltip';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface UrlDisplayStrings {\n\tcopySuccess: string;\n\thttpWarning: string;\n}\n\nexport const defaultUrlDisplayStrings: UrlDisplayStrings = {\n\tcopySuccess: 'URL copied to clipboard',\n\thttpWarning: 'This URL uses HTTP which is not secure',\n};\n\nexport interface UrlDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\turl: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\ttruncate?: boolean;\n\tmaxLength?: number;\n\tshowExternalIcon?: boolean;\n\tstrings?: Partial<UrlDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n\t/** @deprecated Use `strings.httpWarning` instead. */\n\thttpWarningMessage?: string;\n}\n\nfunction isHttpUrl(url: string): boolean {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\treturn parsed.protocol === 'http:';\n\t} catch {\n\t\treturn url.toLowerCase().startsWith('http://');\n\t}\n}\n\nfunction formatUrlForDisplay(url: string, truncate: boolean, maxLength: number): string {\n\tif (!truncate || url.length <= maxLength) {\n\t\treturn url;\n\t}\n\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tconst domain = parsed.hostname;\n\t\tconst remaining = maxLength - domain.length - 5;\n\n\t\tif (remaining > 10) {\n\t\t\tconst pathStart = parsed.pathname.slice(0, remaining);\n\t\t\treturn `${domain}${pathStart}...`;\n\t\t}\n\n\t\treturn `${url.slice(0, maxLength - 3)}...`;\n\t} catch {\n\t\treturn `${url.slice(0, maxLength - 3)}...`;\n\t}\n}\n\nexport function UrlDisplay({\n\turl,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\ttruncate = false,\n\tmaxLength = 50,\n\tshowExternalIcon = true,\n\thttpWarningMessage,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: UrlDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultUrlDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...(httpWarningMessage ? { httpWarning: httpWarningMessage } : {}),\n\t\t...stringsProp,\n\t});\n\n\tif (!url || url.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('url-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst isInsecure = isHttpUrl(url);\n\tconst displayUrl = formatUrlForDisplay(url, truncate, maxLength);\n\tconst shouldShowTitle = truncate && url.length > maxLength;\n\n\tconst urlContent = (\n\t\t<Text size={size} type={type} tag=\"span\" className=\"inline-flex items-center gap-1.5\">\n\t\t\t{!!isInsecure && (\n\t\t\t\t<Tooltip>\n\t\t\t\t\t<TooltipTrigger\n\t\t\t\t\t\trender={(triggerProps) => {\n\t\t\t\t\t\t\t// Tooltip triggers are `<button>` by default; we render a non-button to avoid nested\n\t\t\t\t\t\t\t// interactive elements when UrlDisplay is wrapped in an `<a>`.\n\t\t\t\t\t\t\tconst { type, disabled, className: triggerClassName, ...rest } =\n\t\t\t\t\t\t\t\ttriggerProps as Record<string, unknown> & {\n\t\t\t\t\t\t\t\t\tclassName?: string;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tvoid type;\n\t\t\t\t\t\t\tvoid disabled;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\t\taria-label={strings.httpWarning}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'inline-flex items-center text-warning',\n\t\t\t\t\t\t\t\t\t\ttriggerClassName,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ShieldAlert className=\"size-3.5\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<TooltipContent side=\"top\" className=\"max-w-xs\">\n\t\t\t\t\t\t<Text size=\"xs\">{strings.httpWarning}</Text>\n\t\t\t\t\t</TooltipContent>\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'decoration-dotted underline underline-offset-4',\n\t\t\t\t\t'transition-colors duration-200',\n\t\t\t\t\tisInsecure ? 'decoration-warning' : 'decoration-border',\n\t\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\t)}\n\t\t\t\ttitle={(shouldShowTitle && url) || undefined}\n\t\t\t>\n\t\t\t\t{displayUrl}\n\t\t\t</span>\n\t\t\t{!!clickable && !!showExternalIcon && (\n\t\t\t\t<ExternalLink className=\"size-3 text-muted-foreground\" />\n\t\t\t)}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={url}\n\t\t\t\tdisplayValue={urlContent}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName={cn('-mx-0', className)}\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={url}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a\n\t\t\t\thref={url}\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t>\n\t\t\t\t{urlContent}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn urlContent;\n}\n\nUrlDisplay.displayName = 'UrlDisplay';\n","/**\n * InlineStat — label + value pair, the workhorse of detail panels and card\n * footers. Three layouts:\n *\n * - `between` (default): label and value pushed to opposite ends of the row.\n * - `inline`: label sits immediately before the value, separator-style.\n * - `stacked`: label above (xxs secondary), value below (sm).\n *\n * `mono` toggles `tabular-nums` on the value side for amounts and counters.\n * Use `valueClassName` for one-off colour/weight overrides; the surrounding\n * row is intentionally plain so consumers can stack many of these without\n * visual clutter.\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type InlineStatLayout = 'between' | 'inline' | 'stacked';\n\nexport interface InlineStatProps {\n\tlabel: ReactNode;\n\tvalue: ReactNode;\n\tlayout?: InlineStatLayout;\n\tmono?: boolean;\n\tclassName?: string;\n\tlabelClassName?: string;\n\tvalueClassName?: string;\n}\n\nexport function InlineStat({\n\tlabel,\n\tvalue,\n\tlayout = 'between',\n\tmono = false,\n\tclassName,\n\tlabelClassName,\n\tvalueClassName,\n}: InlineStatProps) {\n\tif (layout === 'stacked') {\n\t\treturn (\n\t\t\t<div className={cn('inline-stat--component', 'flex flex-col gap-0.5', className)}>\n\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"secondary\" className={labelClassName}>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tclassName={cn(mono && 'tabular-nums', valueClassName)}\n\t\t\t\t>\n\t\t\t\t\t{value}\n\t\t\t\t</Text>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst justify = layout === 'between' ? 'justify-between' : 'justify-start';\n\n\treturn (\n\t\t<div className={cn('flex items-center gap-2', justify, className)}>\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={labelClassName}>\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t<Text\n\t\t\t\ttag=\"span\"\n\t\t\t\tclassName={cn(mono && 'tabular-nums', valueClassName)}\n\t\t\t>\n\t\t\t\t{value}\n\t\t\t</Text>\n\t\t</div>\n\t);\n}\n\nInlineStat.displayName = 'InlineStat';\n","/**\n * NumericValue — displays a number with `tabular-nums` and a chosen alignment.\n * Use for amounts, counters, percentages, durations — anywhere the value\n * benefits from monospace digits and consistent column alignment.\n *\n * Pass `value` as a primitive (auto-formatted via `Intl.NumberFormat`) or\n * pre-format upstream and pass a string. When `currency` is set, the value\n * is rendered with a currency symbol via `formatAmount` from `useCurrency()`\n * — defer to `MoneyDisplay` for richer money rendering (pair display, empty\n * fallback, large display sizes); this component is the leaf primitive.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\nexport type NumericValueAlign = 'left' | 'right' | 'center';\n\ntype TextProps = ComponentProps<typeof Text>;\ntype TextSize = NonNullable<TextProps['size']>;\ntype TextWeight = NonNullable<TextProps['weight']>;\ntype TextType = NonNullable<TextProps['type']>;\n\nexport interface NumericValueProps extends Omit<TextProps, 'children' | 'content' | 'align'> {\n\tvalue: number | string | null | undefined;\n\talign?: NumericValueAlign;\n\t/** When set, formats `value` via `Intl.NumberFormat`; ignored if `value` is already a string. */\n\tlocale?: string;\n\t/** Forwarded to `Intl.NumberFormat` when `value` is numeric. */\n\tformatOptions?: Intl.NumberFormatOptions;\n\t/** Rendered when `value` is `null`/`undefined`/empty. Defaults to `'—'`. */\n\temptyLabel?: ReactNode;\n\tsize?: TextSize;\n\tweight?: TextWeight;\n\ttype?: TextType;\n}\n\nconst DEFAULT_EMPTY = '—';\n\nconst formatValue = (\n\tvalue: NumericValueProps['value'],\n\tlocale: string | undefined,\n\toptions: Intl.NumberFormatOptions | undefined,\n): string | null => {\n\tif (value === null || value === undefined || value === '') return null;\n\tif (typeof value === 'string') return value;\n\tif (Number.isNaN(value)) return null;\n\ttry {\n\t\treturn new Intl.NumberFormat(locale, options).format(value);\n\t} catch {\n\t\treturn String(value);\n\t}\n};\n\nexport function NumericValue({\n\tvalue,\n\talign = 'right',\n\tlocale,\n\tformatOptions,\n\temptyLabel = DEFAULT_EMPTY,\n\tsize: sizeProp,\n\tweight,\n\ttype,\n\tclassName,\n\t...props\n}: NumericValueProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst formatted = formatValue(value, locale, formatOptions);\n\tconst alignClass =\n\t\talign === 'right' ? 'text-right' : align === 'center' ? 'text-center' : 'text-left';\n\n\tif (formatted === null) {\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tsize={size}\n\t\t\t\tweight={weight}\n\t\t\t\ttype={type ?? 'secondary'}\n\t\t\t\tclassName={cn('numeric-value--component', 'tabular-nums', alignClass, className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\tweight={weight}\n\t\t\ttype={type}\n\t\t\tclassName={cn('tabular-nums', alignClass, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{formatted}\n\t\t</Text>\n\t);\n}\n\nNumericValue.displayName = 'NumericValue';\n","/**\n * UserCell — avatar + name + optional subtitle list-item row, the canonical\n * shape for team rosters, conversation lists, comment authors, and search\n * result rows. Three sizes match the surrounding row density (sm/base/lg).\n *\n * Pass `avatarUrl` for an image, `initials` for a fallback, or `avatar` for\n * a full custom Avatar tree (e.g. with a status badge). The `trailing` slot\n * sits on the right edge — use it for badges, action buttons, or timestamps.\n *\n * Avatar primitives come from `base/display/avatar` (shadcn-backed) so they\n * match the rest of the system without configuration.\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport { cn } from '@/lib/utils';\n\nexport type UserCellSize = 'sm' | 'base' | 'lg';\n\nexport interface UserCellProps {\n\tname: ReactNode;\n\tsubtitle?: ReactNode;\n\tavatarUrl?: string;\n\tavatarAlt?: string;\n\tinitials?: string;\n\t/** Fully custom avatar element (overrides `avatarUrl` / `initials`). */\n\tavatar?: ReactNode;\n\ttrailing?: ReactNode;\n\tsize?: UserCellSize;\n\tclassName?: string;\n}\n\nconst SIZE_MAP: Record<UserCellSize, { avatar: string; gap: string; nameSize: 'sm' | 'base'; subtitleSize: 'xs' | 'sm' }> = {\n\tsm: { avatar: 'size-7', gap: 'gap-2', nameSize: 'sm', subtitleSize: 'xs' },\n\tbase: { avatar: 'size-9', gap: 'gap-3', nameSize: 'sm', subtitleSize: 'xs' },\n\tlg: { avatar: 'size-11', gap: 'gap-3', nameSize: 'base', subtitleSize: 'sm' },\n};\n\nexport function UserCell({\n\tname,\n\tsubtitle,\n\tavatarUrl,\n\tavatarAlt,\n\tinitials,\n\tavatar,\n\ttrailing,\n\tsize = 'base',\n\tclassName,\n}: UserCellProps) {\n\tconst sizes = SIZE_MAP[size];\n\n\tconst avatarNode = avatar ?? (\n\t\t<Avatar className={sizes.avatar}>\n\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={avatarAlt ?? (typeof name === 'string' ? name : undefined)} />}\n\t\t\t{!!initials && <AvatarFallback>{initials}</AvatarFallback>}\n\t\t</Avatar>\n\t);\n\n\treturn (\n\t\t<div className={cn('user-cell--component', 'flex items-center', sizes.gap, className)}>\n\t\t\t{avatarNode}\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t<Text size={sizes.nameSize} weight=\"semibold\" className=\"truncate\">\n\t\t\t\t\t{name}\n\t\t\t\t</Text>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size={sizes.subtitleSize} type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!trailing && <div className=\"shrink-0\">{trailing}</div>}\n\t\t</div>\n\t);\n}\n\nUserCell.displayName = 'UserCell';\n","/**\n * SectionHeader — title row for in-card sections and standalone groupings:\n *\n * <Text weight=\"semibold\">{title}</Text>\n * {optional Badge | description on the next line}\n * {optional trailing action button on the right}\n *\n * Distinct from `SmartCard.title` (which is the *card's* primary header) —\n * use SectionHeader for nested sections inside a card body, or for grouping\n * blocks on a page that aren't full cards.\n *\n * `dense` tightens vertical spacing and sizes the title down to `xs` for\n * sub-section labels (e.g. \"Recent activity\" stripes inside a longer card).\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface SectionHeaderProps {\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tbadge?: ReactNode;\n\taction?: ReactNode;\n\tdense?: boolean;\n\tclassName?: string;\n}\n\nexport function SectionHeader({\n\ttitle,\n\tdescription,\n\tbadge,\n\taction,\n\tdense = false,\n\tclassName,\n}: SectionHeaderProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('section-header--component', \n\t\t\t\t'flex items-start justify-between',\n\t\t\t\tdense ? 'gap-2' : 'gap-3',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t<div className={cn('flex items-center', dense ? 'gap-1.5' : 'gap-2')}>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize={dense ? 'xs' : 'sm'}\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"truncate\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!badge && <span className=\"shrink-0\">{badge}</span>}\n\t\t\t\t</div>\n\t\t\t\t{!!description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize={dense ? 'xxs' : 'xs'}\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName={dense ? 'mt-0.5' : 'mt-1'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!action && <div className=\"shrink-0\">{action}</div>}\n\t\t</div>\n\t);\n}\n\nSectionHeader.displayName = 'SectionHeader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAyCA,IAAM,KAA8C;CACnD,MAAM;EACL,SAAS;EACT,UAAU;EACV,WAAW;EACX,OAAO;EACP,OAAO;CACR;CACA,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX,OAAO;EACP,OAAO;CACR;CACA,OAAO;EACN,SAAS;EACT,UAAU;EACV,WAAW;EACX,OAAO;EACP,OAAO;CACR;CACA,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX,OAAO;EACP,OAAO;CACR;AACD,GAEM,KAAqD;CAC1D,MAAM;CACN,SAAS;CACT,OAAO;CACP,SAAS;AACV;AAEA,SAAS,GAAc,EAAE,WAA0B;CAClD,OAAO,EAAM,cAAc,QAAQ,EAAE,yBAAyB,EAAE,QAAQ,EAAK,EAAE,CAAC;AACjF;AAEA,SAAgB,EAAmB,EAClC,UAAO,QACP,iBAAc,IACd,UACA,YACA,cACA,aACA,YAAS,IACT,sBAAmB,wBACnB,gBAC2B;CAC3B,IAAM,IAAO,GAAM,IACb,IAAgB,GAAM,IACtB,IAAgB,EAAM,cACrB,EAAa,MAAY,OAAO,KAAa,WAAW,IAAW,GAAG,GAC5E,CAAC,GAAU,CAAO,CACnB,GACM,IAAW,CAAC,CAAC;CAEnB,OACC,kBAAC,OAAD;EACC,MAAK;EACL,WAAW,EAAG,kCACb,6DACA,4DACA,EAAK,SACL,CACD;YAPD;GASC,kBAAC,QAAD;IACC,eAAY;IACZ,WAAW,EACV,+EACA,EAAK,UACL,EAAK,SACN;cAEA,kBAAC,GAAD,EAAe,WAAU,SAAU,CAAA;GAC9B,CAAA;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,KACA,kBAAC,GAAD;KACC,KAAI;KACJ,QAAO;KACP,WAAU;eAET;IACI,CAAA,GAEP,kBAAC,GAAD;KACC,KAAI;KACJ,MAAM,IAAW,cAAc;KAC/B,WAAW,EAAG,4BAA4B,KAAY,QAAQ;eAH/D,CAKE,CAAC,CAAC,KAAU,kBAAC,IAAD,EAAe,MAAM,EAAgB,CAAA,GACjD,CAAC,MAAW,KAAW,EACnB;MACF;;GAEJ,CAAC,CAAC,KACF,kBAAC,GAAD;IACC,MAAK;IACL,SAAQ;IACR,aAAY;IACZ,MAAK;IACL,cAAY;IACZ,SAAS;IACT,WAAW,EACV,8FACA,8EACA,EAAK,KACN;cAEA,kBAAC,IAAD,EAAG,WAAU,SAAU,CAAA;GAChB,CAAA;EAEL;;AAEP;AAEA,EAAmB,cAAc;;;ACxJjC,SAAgB,EAAmB,EAAE,gBAAsC;CAC1E,IAAM,IAAY,EAAM;CAExB,OACC,kBAAC,OAAD;EACC,WAAW,EAAG,kCAAkC,CAAS;EACzD,MAAK;EACL,QAAO;EACP,eAAY;YAJb,CAMC,kBAAC,QAAD,EAAA,UACC,kBAAC,WAAD;GACC,IAAI;GACJ,GAAE;GACF,GAAE;GACF,OAAM;GACN,QAAO;GACP,cAAa;aAEb,kBAAC,QAAD;IACC,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,cAAa;GACb,CAAA;EACO,CAAA,EACJ,CAAA,GACN,kBAAC,QAAD;GACC,QAAO;GACP,MAAM,QAAQ,EAAU;GACxB,OAAM;GACN,QAAO;EACP,CAAA,CACG;;AAEP;AAEA,EAAmB,cAAc;;;ACzCjC,SAAgB,EAAO,EAAE,SAAM,aAAU,cAAW,QAAqB;CAGxE,OAFI,IAAa,IACb,KACG;AACR;AAEA,EAAO,cAAc;;;ACGrB,IAAa,KAAoD;CAChE,aAAa;CACb,YAAY;AACb;AAUA,SAAgB,EAAc,EAC7B,YACA,aACA,cACA,cACA,SAAS,KACa;CACtB,IAAM,IAAU,EAAW,IAA6B,CAAW;CAEnE,OACC,kBAAC,OAAD;EACC,MAAK;EACL,WAAW,EAAG,6BACb,6FACA,CACD;YALD,CAOC,kBAAC,QAAD;GACC,eAAY;GACZ,WAAU;aAEV,kBAAC,GAAD,EAAa,WAAU,SAAU,CAAA;EAC5B,CAAA,GACN,kBAAC,OAAD;GAAK,WAAU;aAAf,CACC,kBAAC,GAAD;IAAM,QAAO;IAAS,WAAU;cAC9B;GACI,CAAA,GACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,QAAD;KAAM,WAAU;eAAhB;MACC,kBAAC,IAAD;OAAW,WAAU;OAAS,eAAY;MAAQ,CAAA;MAClD,kBAAC,QAAD,EAAA,UAAO,EAAQ,YAAkB,CAAA;MACjC,kBAAC,QAAD;OAAM,WAAU;iBAA+C;MAAe,CAAA;KACzE;QACN,kBAAC,QAAD;KAAM,WAAU;eAAhB;MACC,kBAAC,IAAD;OAAO,WAAU;OAAS,eAAY;MAAQ,CAAA;MAC9C,kBAAC,QAAD,EAAA,UAAO,EAAQ,WAAiB,CAAA;MAChC,kBAAC,QAAD;OAAM,WAAU;iBAA+C;MAAgB,CAAA;KAC1E;MACF;KACD;IACD;;AAEP;AAEA,EAAc,cAAc;;;AC7D5B,SAAgB,EAAe,EAAE,aAAU,gBAAkC;CAC5E,OACC,kBAAC,QAAD;EACC,WAAW,EAAG,8BACb,2EACA,wBACA,CACD;EAEC;CACI,CAAA;AAER;AAEA,EAAe,cAAc;;;ACsB7B,IAAM,IAAsC;CAC3C;CACA;CACA;CACA;CACA;AACD,GAEM,KAA8D;CACnE,OAAO;CACP,SAAS;CACT,WAAW;CACX,MAAM;CACN,SAAS;CACT,SAAS;CACT,aAAa;AACd;AAEA,SAAS,GAAY,GAAc,IAAU,IAAe;CAC3D,IAAM,IAAQ,EAAK,KAAK,EAAE,MAAM,KAAK;CAIrC,OAHI,EAAM,WAAW,IAAU,MAC3B,IAAgB,EAAM,GAAG,MAAM,GAAG,CAAC,EAAE,YAAY,IACjD,EAAM,WAAW,IAAU,EAAM,GAAG,MAAM,GAAG,CAAC,EAAE,YAAY,KACxD,EAAM,GAAG,KAAK,EAAM,EAAM,SAAS,GAAG,IAAI,YAAY;AAC/D;AAEA,SAAS,GAAiB,GAAuB,GAAuC;CAQvF,OAPI,OAAO,KAAa,WAChB,IAEJ,OAAO,KAAa,WAChB,EAAe,KAAK,IAAI,CAAQ,IAAI,EAAe,UAGpD,GADK,OAAO,KAAS,WAAW,IAAO,MAAM,KAAK,CAAI,EAAE,QAAQ,GAAG,MAAM,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAC1E,EAAe;AAC5C;AAEA,SAAgB,EAAe,EAC9B,UACA,SAAM,GACN,UAAO,WACP,cACA,kBAAe,IACf,sBACA,sBACuB;CACvB,IAAM,IAAU,EAAM,MAAM,GAAG,CAAG,GAC5B,IAAW,KAAK,IAAI,GAAG,EAAM,SAAS,CAAG;CAE/C,OACC,kBAAC,GAAD;EAAa,WAAW,EAAG,8BAA8B,CAAS;YAAlE,CACE,EAAQ,KAAK,GAAM,MAAU;GAC7B,IAAM,IAAW,GAAY,EAAK,MAAM,MAAS,IAAI,GAC/C,IAAe,GAAiB,EAAK,MAAM,EAAK,QAAQ,GAAO,EAAK,IAAI;GAC9E,OACC,kBAAC,GAAD;IAEO;IACN,WAAW,EAAG,mBAAmB,CAAe;IAChD,OAAO,EAAK;cAJb,CAME,EAAK,WACL,kBAAC,GAAD;KAAa,KAAK,EAAK;KAAU,KAAK,EAAK;IAAO,CAAA,IAC/C,MACJ,kBAAC,GAAD;KACC,WAAW,EACV,iBACA,GAAyB,EAC1B;eAEC;IACc,CAAA,CACT;MAhBF,EAAK,MAAM,GAAG,EAAK,KAAK,GAAG,GAgBzB;EAEV,CAAC,GACA,CAAC,CAAC,KAAgB,IAAW,KAC7B,kBAAC,GAAD,EAAA,UACC,kBAAC,GAAD;GAAM,MAAK;GAAK,QAAO;aACrB,IAAoB,EAAkB,CAAQ,IAAI,IAAI;EAClD,CAAA,EACW,CAAA,CAEP;;AAEf;AAEA,EAAe,cAAc;;;AC5G7B,IAAa,IAA4C,EACxD,WAAW,IACZ,GA6BM,KAAoH;CACzH,SAAS;EAAE,IAAI;EAAW,MAAM;EAAmB,QAAQ;EAAiB,QAAQ;EAAmB,QAAQ;CAAwB;CACvI,SAAS;EAAE,IAAI;EAAc,MAAM;EAAmB,QAAQ;EAAkB,QAAQ;EAAsB,QAAQ;CAAqB;CAC3I,OAAO;EAAE,IAAI;EAAe,MAAM;EAAmB,QAAQ;EAAiB,QAAQ;EAAmB,QAAQ;CAAwB;CACzI,SAAS;EAAE,IAAI;EAAiB,MAAM;EAAmB,QAAQ;EAAqB,QAAQ;EAAgB,QAAQ;CAAwB;CAC9I,SAAS;EAAE,IAAI;EAAiB,MAAM;EAAmB,QAAQ;EAAqB,QAAQ;EAAgB,QAAQ;CAAwB;CAC9I,SAAS;EAAE,IAAI;EAAiB,MAAM;EAAmB,QAAQ;EAAqB,QAAQ;EAA2B,QAAQ;CAAwB;CACzJ,aAAa;EAAE,IAAI;EAAqB,MAAM;EAAmB,QAAQ;EAAyB,QAAQ;EAAoB,QAAQ;CAAwB;CAC9J,MAAM;EAAE,IAAI;EAAc,MAAM;EAAmB,QAAQ;EAAkB,QAAQ;EAAa,QAAQ;CAAwB;AACnI;AAEA,SAAS,GAAY,GAAqC;CAGzD,OAFI,aAAiB,OAAa,IACI,IAAI,KAAK,CAAK;AAErD;AAEA,SAAgB,EAAU,EACzB,SACA,SACA,WACA,YAAS,WACT,kBACA,UAAO,WACP,UACA,eAAY,IACZ,eAAY,KACZ,mBAAgB,OAChB,iBAAc,OACd,cACA,SAAS,KACS;CAClB,IAAM,IAAW,GAAY,CAAI,GAC3B,IAAU,EAAW,GAAyB,CAAW,GACzD,IAAQ,GAAa,IACrB,IAAY,CAAC,OAAO,MAAM,EAAS,QAAQ,CAAC,GAE5C,IAAU,IAAY,EAAO,GAAU,GAAe,IAAS,EAAE,UAAO,IAAI,KAAA,CAAS,IAAI,IACzF,IAAM,IAAY,EAAO,GAAU,GAAW,IAAS,EAAE,UAAO,IAAI,KAAA,CAAS,IAAI,IACjF,IAAQ,IAAY,EAAO,GAAU,GAAa,IAAS,EAAE,UAAO,IAAI,KAAA,CAAS,IAAI,IAErF,IACL,MAAkB,MAAW,WAAW,WAAW,UAC9C,IAAS,KAAS,MAAW;CAgCnC,OA9BI,MAAW,WAEb,kBAAC,QAAD;EACC,WAAW,EAAG,yBACb,iDACA,KAAU,EAAG,+BAA+B,EAAM,IAAI,EAAM,MAAM,GAClE,CACD;YALD;GAOC,kBAAC,GAAD;IAAM,MAAK;IAAK,QAAO;IAAW,WAAW,EAAG,EAAM,QAAQ,yBAAyB;cACrF;GACI,CAAA;GACN,kBAAC,GAAD;IAAM,QAAO;cAAY;GAAU,CAAA;GAClC,CAAC,CAAC,KACF,kBAAC,GAAD;IAAM,MAAK;IAAK,MAAK;IAAY,WAAU;cACzC;GACI,CAAA;GAEN,CAAC,CAAC,KAAQ,MAA0B,YACpC,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,GAAD;IAAM,MAAK;IAAK,MAAK;IAAW,eAAA;cAC9B,EAAQ;GACJ,CAAA,GACN,kBAAC,GAAD;IAAM,MAAK;IAAK,MAAK;cAAa;GAAW,CAAA,CAC5C,EAAA,CAAA;EAEE;MAKP,kBAAC,OAAD;EAAK,WAAW,EAAG,6CAA6C,CAAS;YAAzE;GACC,kBAAC,OAAD;IACC,WAAW,EACV,gEACA,KAAU,EAAG,iDAAiD,EAAM,IAAI,EAAM,MAAM,CACrF;cAJD;KAMC,kBAAC,GAAD;MACC,MAAK;MACL,QAAO;MACP,OAAO,EAAE,YAAY,EAAE;MACvB,WAAW,EAAG,EAAM,QAAQ,0BAA0B;gBAErD;KACI,CAAA;KACN,kBAAC,GAAD;MAAM,MAAK;MAAK,QAAO;MAAO,OAAO,EAAE,YAAY,EAAE;MAAG,WAAW,EAAM;gBACvE;KACI,CAAA;KACL,CAAC,CAAC,KACF,kBAAC,GAAD;MACC,MAAK;MACL,OAAO,EAAE,YAAY,EAAE;MACvB,WAAW,EAAG,EAAM,QAAQ,0BAA0B;gBAErD;KACI,CAAA;IAEH;;GACJ,CAAC,CAAC,KAAQ,MAA0B,WACpC,kBAAC,GAAD;IAAM,MAAK;IAAM,MAAK;IAAY,WAAU;cAC1C;GACI,CAAA;GAEN,CAAC,CAAC,KAAQ,MAA0B,YACpC,kBAAC,GAAD;IAAM,MAAK;IAAM,MAAK;IAAY,WAAU;cAC1C;GACI,CAAA;EAEH;;AAEP;AAEA,EAAU,cAAc;;;AC5KxB,SAAS,GAAY,EAAE,GAAG,KAA0C;CAClE,OAAO,kBAAC,EAAqB,MAAtB;EAA2B,aAAU;EAAc,GAAI;CAAQ,CAAA;AACxE;AAEA,SAAS,GAAmB,EAC1B,aAAU,IACV,iBACA,WACA,aACA,GAAG,KACkF;CACrF,IAAM,IAAa,IAAU,kBAAC,GAAD,CAAO,CAAA,IAAI,KAAA,GAClC,IAA2D,OAAO,KAAW,eAC7E,GAAa,MAAU;EACzB,IAAM,EAAE,cAAc,GAAe,GAAG,MAAS;EAEjD,OAAO,EAAO,GAA4B,CAAK;CACjD,KACE,GACA,IAAuB;CAC3B,AAAI,KAAW,EAAM,eAAe,CAAQ,MAC1C,AAIE,IAJE,OAAO,EAAS,QAAS,WACJ,EAAS,SAAS,WAGlB,EAAE,WADL,EAAS,SAAS,CAAC;CAI3C,IAAM,IAAuB,MAAiB,IAAU,IAAuB;CAC/E,OACE,kBAAC,EAAqB,SAAtB;EACE,aAAU;EACV,QAAQ,KAAc;EACtB,cAAc;EACd,GAAI;EAEH;CAC2B,CAAA;AAElC;AAEA,SAAS,GAAmB,EAAE,GAAG,KAA2C;CAC1E,OACE,kBAAC,EAAqB,OAAtB;EAA4B,aAAU;EAAsB,GAAI;CAAQ,CAAA;AAE5E;;;ACIA,IAAM,KAAwB,KAExB,MAAoB,MACtB,OAAO,KAAc,WAAW,EAAU,KAAK,IAAI;AAEvD,SAAgB,GAAW,EACvB,UACA,cAAW,OACX,iBACA,gBAAgB,GAChB,UACA,SACA,eACA,UACA,aACA,YACA,0BAAuB,IACvB,4BACA,sBAAmB,IACnB,cACA,aACA,qBACA,GAAG,KACa;CAChB,IAAM,IAAiB,KAAsB,GAAO,kBAAkB,KAAA,GAEhE,IAAc,QACV,MAAmB,KAAA,KAAa,MAAmB,GACzD,CAAC,GAAgB,CAAQ,CAC7B,GAEM,IAAiB,QACd,IACE,GAAiB,GAAO,MAAM,SAAS,IADhB,IAE/B,CAAC,GAAkB,GAAO,MAAM,SAAS,CAAC,GAEvC,IAAwB,EAAe,SAAS,KAAK,CAAC,GACtD,IAAqB,KAAe,GAEpC,IAAqB,GACtB,MAA2C;EACxC,IAAW,CAAC;EACZ,IAAM,IAAS,OAAO,WAAW,EAAE,OAAO,KAAK;EAE/C,IAAe;GAAE,QADE,OAAO,SAAS,CAAM,IAAI,IAAS;GACjB;EAAS,CAAC;CACnD,GACA;EAAC;EAAU;EAAc;CAAQ,CACrC,GAEM,IAAuB,GACxB,MAA+B;EAC5B,IAAmB,CAAY;EAC/B,IAAM,IAAc,OAAO,WAAW,OAAO,EAAM,SAAS,EAAE,CAAC;EAE/D,IAAe;GAAE,QADE,OAAO,SAAS,CAAW,IAAI,IAAc;GAC3B,UAAU;EAAa,CAAC;CACjE,GACA;EAAC;EAAkB;EAAc,EAAM;CAAK,CAChD,GAEM,IAAY,KAAW,EAAQ,GAE/B,IACF,kBAAC,GAAD;EACI,GAAI;EACM;EACV,UAAU;EACV,kBAAkB;EAClB,SAAS;CACZ,CAAA,GAIC,KADoB,KAAS,KAAQ,KAAc,KAAS,IAE9D,kBAAC,GAAD;EACW;EACD;EACM;EACL;EACG;YAET;CACM,CAAA,IACX;CAEJ,OACI,kBAAC,OAAD;EAAK,WAAW,EAAG,0BAA0B,aAAa,CAAS;YAAnE;GACK;GAEA,CAAC,CAAC,KACC,kBAAC,OAAD;IAAK,WAAU;cAAf,CACI,kBAAC,GAAD,EAAM,WAAU,uBAAwB,CAAA,GACxC,kBAAC,GAAD;KAAM,MAAK;KAAK,MAAK;eAChB,KAAkB;IACjB,CAAA,CACL;;GAGR,CAAC,CAAC,KACC,kBAAC,GAAD;IAAO,WAAU;cAAjB,CACI,kBAAC,GAAD,EAAe,WAAU,uBAAwB,CAAA,GACjD,kBAAC,GAAD;KAAkB,WAAU;eACvB,KACG,mCAAmC,KAAkB,GAAG,MAAM,EAAS;IAC7D,CAAA,CACf;;EAEV;;AAEb;AAEA,GAAW,cAAc;;;ACnJzB,IAAa,KAA0D;CACtE,MAAM;CACN,OAAO;AACR;AAiBA,SAAgB,GAAiB,EAChC,UACA,WAAQ,IACR,cACA,eACA,cAAW,IACX,iBAAc,WACd,kBAAe,aACf,cACA,mBACA,SAAS,KACgB;CACzB,IAAM,IAAU,EAAW,IAAgC,CAAW,GAChE,IAAS,EAAQ,GACjB,IAAO,IAAS,IAAe,IAC/B,IAAe,IAAS,IAAc,GAEtC,KADW,IAAS,IAAY,OACT,IAAS,EAAQ,OAAO,EAAQ;CAE7D,OACC,kBAAC,OAAD;EACC,WAAW,EAAG,gCACb,8FACA,CACD;YAJD,CAMC,kBAAC,GAAD;GAAM,MAAK;GAAK,MAAK;GAAY,WAAU;aACzC;EACI,CAAA,GACN,kBAAC,GAAD;GACC,SAAS;GACT,MAAK;GACL,WAAW,EAAG,qBAAqB,CAAc;aAHlD,CAKE,CAAC,CAAC,KAAY,kBAAC,GAAD,EAAM,WAAU,cAAe,CAAA,GAC7C,CACK;IACH;;AAEP;AAEA,GAAiB,cAAc;;;AC1E/B,SAAS,GAAS,EAChB,cACA,aACA,UACA,GAAG,KAC4B;CAC/B,OACE,kBAAC,EAAkB,MAAnB;EACS;EACP,aAAU;EACV,WAAW,EAAG,wBAAwB,CAAS;EAC/C,GAAI;YAJN,CAMG,GACD,kBAAC,IAAD,EAAA,UACE,kBAAC,IAAD,CAAoB,CAAA,EACP,CAAA,CACO;;AAE5B;AAEA,SAAS,GAAc,EAAE,cAAW,GAAG,KAAwC;CAC7E,OACE,kBAAC,EAAkB,OAAnB;EACE,WAAW,EACT,mFACA,CACF;EACA,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,GAAkB,EACzB,cACA,GAAG,KACiC;CACpC,OACE,kBAAC,EAAkB,WAAnB;EACE,aAAU;EACV,WAAW,EAAG,oCAAoC,CAAS;EAC3D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,GAAc,EAAE,cAAW,GAAG,KAAwC;CAC7E,OACE,kBAAC,EAAkB,OAAnB;EACE,WAAW,EAAG,uBAAuB,CAAS;EAC9C,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,GAAc,EAAE,cAAW,GAAG,KAAwC;CAC7E,OACE,kBAAC,EAAkB,OAAnB;EACE,WAAW,EAAG,sDAAsD,CAAS;EAC7E,aAAU;EACV,GAAI;CACL,CAAA;AAEL;;;ACxDA,IAAM,KAAa;AAEnB,SAAS,GAAS,GAAe,GAAoC;CACpE,IAAM,IAAa,EAAM,MAAM,EAAU;CAMzC,OAJK,IAIE;EACN,GAAG,OAAO,WAAW,EAAW,EAAE;EAClC,GAAG,OAAO,WAAW,EAAW,EAAE;EAClC,GAAG,OAAO,WAAW,EAAW,EAAE;CACnC,IAPQ;EAAE,GAAG,EAAS;EAAI,GAAG,EAAS;EAAI,GAAG,EAAS;CAAG;AAQ1D;AAEA,SAAgB,GAAO,EACtB,SACA,eACA,eACA,gBAAa,KACb,cACA,GAAG,KACY;CACf,IAAM,CAAC,GAAK,KAAU,EAAwB,IAAI;CAoDlD,OAlDA,QAAgB;EA2Cf,aA1C+B;GAC9B,IAAI;IACH,IAAM,IAAO,OAAO,KAAQ,EAAE,EAAE,KAAK;IACrC,IAAI,CAAC,GAAM;KACV,EAAO,IAAI;KACX;IACD;IAEA,IAAM,IAAS,iBAAiB,SAAS,eAAe,GAClD,IACL,KAAc,EAAO,iBAAiB,cAAc,GAC/C,IACL,KAAc,EAAO,iBAAiB,cAAc,GAE/C,IAAkB,GAAS,GAAiB;KACjD;KAAM;KAAO;IACd,CAAC,GACK,IAAkB,GAAS,GAAiB;KAAC;KAAO;KAAG;IAAC,CAAC;IAiB/D,EAAO,MAfc,GAAG,SAAS,GAAM;KACtC,MAAM;KACN,OAAO;MACN,MAAM,EACL,EAAM;OAAE,MAAM;OAAS,GAAG;MAAgB,CAAC,CAC5C;MACA,OAAO,EACN,EAAM;OAAE,MAAM;OAAS,GAAG;MAAgB,CAAC,CAC5C;KACD;KACA,OAAO;KACP,sBAAsB;KACtB,QAAQ;IACT,CAAC,CAEY;GACd,QAAQ;IAGP,EAAO,EAAE;GACV;EACD,GAEgB;CACjB,GAAG;EAAC;EAAM;EAAY;EAAY;CAAU,CAAC,GAExC,IAKJ,kBAAC,OAAD;EACC,WAAW,EAAG,sBAAsB,aAAa,qBAAqB,CAAS;EAC/E,yBAAyB,EAAE,QAAQ,EAAI;EACvC,GAAI;CACJ,CAAA,IARM;AAUT;AAIA,GAAO,cAAc;;;AChGrB,SAAS,GAAM,EAAE,cAAW,GAAG,KAAsC;CACnE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,gIACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,GAAY,EAAE,cAAW,GAAG,KAAsC;CACzE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,6CACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,KAAqB,GACzB,+FACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;CACR,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF;AAEA,SAAS,GAAW,EAClB,cACA,aAAU,WACV,GAAG,KACqE;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,gBAAc;EACd,WAAW,EAAG,GAAmB;GAAE;GAAS;EAAU,CAAC,CAAC;EACxD,GAAI;CACL,CAAA;AAEL;AAyBA,SAAS,GAAa,EAAE,cAAW,GAAG,KAAsC;CAC1E,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,iFACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;;;AC7EA,IAAa,KAA8C;CAC1D,OAAO;CACP,aAAa;CACb,WAAW;AACZ,GCuBM,KAAmD;CACxD,SAAS;CACT,MAAM;CACN,OAAO;AACR,GAEM,KAAiF;CACtF,MAAM;CACN,MAAM;CACN,aAAa;CACb,cAAc;AACf,GAEM,KAAwE;CAC7E,MAAM,KAAA;CACN,MAAM,KAAA;CACN,aAAa;CACb,cAAc;AACf,GAEa,KAAa,EAA4C,SAAoB,EACzF,UACA,gBACA,UACA,kBAAe,QACf,gBACA,YACA,WACA,aAAU,QACV,YAAS,IACT,cACA,SAAS,GACT,gBACE,GAAK;CACP,IAAM,IAAU,EAAW,IAA0B,CAAW,GAE1D,IAAgB,KAAS,EAAQ,OACjC,IACL,MAAgB,KAAQ,OAAO,KAAe,EAAQ,aACjD,IAAY,IAAc,EAAY,EAAE,gBAAa,CAAC,IAAI,GAC1D,IAAY,CAAC,CAAC;CAEpB,OACC,kBAAC,IAAD;EACM;EACL,MAAK;EACL,cAAY,KAAa,EAAQ;EACjC,WAAW,EAAG,0BACb,GAAc,IACd,IAAS,yBAAyB,YAClC,CACD;YARD,CAUC,kBAAC,IAAD,EAAA,UAAA;GACE,CAAC,CAAC,KACF,kBAAC,IAAD;IACC,SAAS,GAA2B;IACpC,WAAW,GAAkB;cAE5B;GACU,CAAA;GAEb,kBAAC,GAAD;IAAS,KAAI;IAAK,WAAU;IAA0B,aAAU;cAC9D;GACO,CAAA;GACR,CAAC,CAAC,KACF,kBAAC,GAAD;IACC,MAAK;IACL,MAAK;IACL,WAAU;IACV,aAAU;cAET;GACI,CAAA;EAEK,EAAA,CAAA,IACX,CAAC,CAAC,KAAW,CAAC,CAAC,MAChB,kBAAC,IAAD,EAAA,UAAA,CACE,CAAC,CAAC,KACF,kBAAC,OAAD;GAAK,WAAU;aACb;EACG,CAAA,GAEL,CAAC,CAAC,KAAU,kBAAC,OAAD;GAAK,WAAU;aAAiC;EAAY,CAAA,CAC5D,EAAA,CAAA,CAET;;AAET,CAAC;AAED,GAAW,cAAc;;;AChIzB,SAAgB,GAA0B,EAAE,gBAAqC;CAChF,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,sBAAsB,CAAS;EAAG,eAAY;YAAjE,CACC,kBAAC,OAAD;GAAK,WAAU;aAAf;IACC,kBAAC,OAAD,EAAK,WAAU,4BAA6B,CAAA;IAC5C,kBAAC,OAAD,EAAK,WAAU,iCAAkC,CAAA;IACjD,kBAAC,OAAD,EAAK,WAAU,gCAAiC,CAAA;GAC5C;MACL,kBAAC,OAAD;GAAK,WAAU;aAAf;IACC,kBAAC,OAAD,EAAK,WAAU,4BAA6B,CAAA;IAC5C,kBAAC,OAAD,EAAK,WAAU,iCAAkC,CAAA;IACjD,kBAAC,OAAD,EAAK,WAAU,gCAAiC,CAAA;IAChD,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,OAAD,EAAK,WAAU,mCAAoC,CAAA,GACnD,kBAAC,OAAD,EAAK,WAAU,gCAAiC,CAAA,CAC5C;;GACD;IACD;;AAEP;AAEA,GAA0B,cAAc;;;ACrBxC,SAAgB,GAAuB,EAAE,gBAAqC;CAC7E,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,sBAAsB,CAAS;EAAG,eAAY;YAAjE,CACC,kBAAC,OAAD;GAAK,WAAU;aACd,kBAAC,OAAD;IACC,SAAQ;IACR,WAAU;IACV,MAAK;IACL,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;cAEf,kBAAC,QAAD,EAAM,GAAE,eAAgB,CAAA;GACpB,CAAA;EACD,CAAA,GACL,kBAAC,OAAD;GAAK,WAAU;aAAf,CACC,kBAAC,OAAD,EAAK,WAAU,+BAAgC,CAAA,GAC/C,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,OAAD,EAAK,WAAU,iCAAkC,CAAA,GACjD,kBAAC,OAAD,EAAK,WAAU,gCAAiC,CAAA,CAC5C;QACL,kBAAC,OAAD,EAAK,WAAU,kCAAmC,CAAA,CAC9C;KACD;IACD;;AAEP;AAEA,GAAuB,cAAc;;;AC5BrC,SAAgB,GAAwB,EAAE,gBAAqC;CAC9E,OACC,kBAAC,OAAD;EACC,WAAW,EACV,0FACA,CACD;EACA,eAAY;YAEZ,kBAAC,IAAD,EAAQ,WAAU,+BAAgC,CAAA;CAC9C,CAAA;AAEP;AAEA,GAAwB,cAAc;;;ACdtC,SAAgB,GAAyB,EAAE,gBAAqC;CAC/E,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,sBAAsB,CAAS;EAAG,eAAY;YAAjE;GACC,kBAAC,OAAD,EAAK,WAAU,iGAAkG,CAAA;GACjH,kBAAC,OAAD,EAAK,WAAU,iGAAkG,CAAA;GACjH,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,OAAD,EAAK,WAAU,mCAAoC,CAAA,GACnD,kBAAC,OAAD;KAAK,WAAU;eAAf,CACC,kBAAC,OAAD,EAAK,WAAU,+BAAgC,CAAA,GAC/C,kBAAC,OAAD,EAAK,WAAU,gCAAiC,CAAA,CAC5C;MACD;;GACL,kBAAC,OAAD,EAAK,WAAU,uHAAwH,CAAA;EACnI;;AAEP;AAEA,GAAyB,cAAc;;;ACnBvC,SAAgB,GAAwB,EAAE,gBAAqC;CAC9E,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,uDAAuD,CAAS;EAAG,eAAY;YAAlG;GACC,kBAAC,OAAD,EAAK,WAAU,0EAA2E,CAAA;GAC1F,kBAAC,OAAD,EAAK,WAAU,sEAAuE,CAAA;GACtF,kBAAC,OAAD,EAAK,WAAU,2EAA4E,CAAA;EACvF;;AAEP;AAEA,GAAwB,cAAc;;;ACItC,IAAa,KAAkD,EAC9D,aAAa,4BACd;AAYA,SAAgB,EAAa,EAC5B,UACA,cAAW,IACX,uBACA,gBAAA,KACA,eAAY,IACZ,SAAS,GACT,MAAM,GACN,UAAO,QACP,SAAM,QACN,cACA,GAAG,KACkB;CACrB,IAAM,EAAE,uBAAoB,EAAoB,GAC1C,IAAO,KAAY,KAAmB,MAEtC,IAAU,EAAW,IAA4B;EACtD,GAAI,IAAqB,EAAE,aAAa,EAAmB,IAAI,CAAC;EAChE,GAAG;CACJ,CAAC;CACD,IAAI,CAAC,KAAS,EAAM,KAAK,EAAE,WAAW,GACrC,OACC,kBAAC,GAAD;EAAY;EAAM,MAAK;EAAiB;EAAK,WAAW,EAAG,4BAA4B,CAAS;EAAG,GAAI;YACrG;CACI,CAAA;CAIR,IAAM,IACL,kBAAC,GAAD;EACO;EACA;EACN,KAAI;EACJ,WAAW,EACV,eACA,oEACA,kCACA,IAAY,6BAA6B,MACzC,CACD;YAEC;CACI,CAAA;CAGP,IAAI,GAAU;EACb,IAAM,IACL,kBAAC,GAAD;GACC,OAAO;GACP,cAAc;GACd,gBAAgB,EAAQ;GACxB,WAAU;EACV,CAAA;EAeF,OAZI,IAEF,kBAAC,KAAD;GACC,MAAM,UAAU;GAChB,WAAU;GACV,UAAU,MAAM,EAAE,gBAAgB;aAEjC;EACC,CAAA,IAIE;CACR;CAUA,OARI,IAEF,kBAAC,KAAD;EAAG,MAAM,UAAU;EAAS,WAAU;YACpC;CACC,CAAA,IAIE;AACR;AAEA,EAAa,cAAc;;;AC/F3B,IAAa,KAAkD,EAC9D,aAAa,mCACd;AAYA,SAAS,GAAkB,GAAuB;CACjD,OAAO,EAAM,QAAQ,aAAa,EAAE;AACrC;AAEA,SAAgB,GAAa,EAC5B,UACA,cAAW,IACX,uBACA,gBAAA,KACA,eAAY,IACZ,SAAS,GACT,MAAM,GACN,UAAO,QACP,SAAM,QACN,cACA,GAAG,KACkB;CACrB,IAAM,EAAE,uBAAoB,EAAoB,GAC1C,IAAO,KAAY,KAAmB,MAEtC,IAAU,EAAW,IAA4B;EACtD,GAAI,IAAqB,EAAE,aAAa,EAAmB,IAAI,CAAC;EAChE,GAAG;CACJ,CAAC;CACD,IAAI,CAAC,KAAS,EAAM,KAAK,EAAE,WAAW,GACrC,OACC,kBAAC,GAAD;EAAY;EAAM,MAAK;EAAiB;EAAK,WAAW,EAAG,4BAA4B,CAAS;EAAG,GAAI;YACrG;CACI,CAAA;CAIR,IAAM,IACL,kBAAC,GAAD;EACO;EACA;EACN,KAAI;EACJ,WAAW,EACV,eACA,oEACA,kCACA,IAAY,6BAA6B,MACzC,CACD;YAEC;CACI,CAAA;CAGP,IAAI,GAAU;EACb,IAAM,IACL,kBAAC,GAAD;GACC,OAAO;GACP,cAAc;GACd,gBAAgB,EAAQ;GACxB,WAAU;EACV,CAAA;EAeF,OAZI,IAEF,kBAAC,KAAD;GACC,MAAM,OAAO,GAAkB,CAAK;GACpC,WAAU;GACV,UAAU,MAAM,EAAE,gBAAgB;aAEjC;EACC,CAAA,IAIE;CACR;CAaA,OAXI,IAEF,kBAAC,KAAD;EACC,MAAM,OAAO,GAAkB,CAAK;EACpC,WAAU;YAET;CACC,CAAA,IAIE;AACR;AAEA,GAAa,cAAc;;;AClG3B,IAAa,KAA8C;CAC1D,aAAa;CACb,aAAa;AACd;AAiBA,SAAS,GAAU,GAAsB;CACxC,IAAI;EAEH,OAAO,IADY,IAAI,CAChB,EAAO,aAAa;CAC5B,QAAQ;EACP,OAAO,EAAI,YAAY,EAAE,WAAW,SAAS;CAC9C;AACD;AAEA,SAAS,GAAoB,GAAa,GAAmB,GAA2B;CACvF,IAAI,CAAC,KAAY,EAAI,UAAU,GAC9B,OAAO;CAGR,IAAI;EACH,IAAM,IAAS,IAAI,IAAI,CAAG,GACpB,IAAS,EAAO,UAChB,IAAY,IAAY,EAAO,SAAS;EAO9C,OALI,IAAY,KAER,GAAG,IADQ,EAAO,SAAS,MAAM,GAAG,CACxB,EAAU,OAGvB,GAAG,EAAI,MAAM,GAAG,IAAY,CAAC,EAAE;CACvC,QAAQ;EACP,OAAO,GAAG,EAAI,MAAM,GAAG,IAAY,CAAC,EAAE;CACvC;AACD;AAEA,SAAgB,GAAW,EAC1B,QACA,cAAW,IACX,uBACA,gBAAA,KACA,eAAY,IACZ,cAAW,IACX,eAAY,IACZ,sBAAmB,IACnB,uBACA,SAAS,GACT,MAAM,GACN,UAAO,QACP,SAAM,QACN,cACA,GAAG,KACgB;CACnB,IAAM,EAAE,uBAAoB,EAAoB,GAC1C,IAAO,KAAY,KAAmB,MAEtC,IAAU,EAAW,IAA0B;EACpD,GAAI,IAAqB,EAAE,aAAa,EAAmB,IAAI,CAAC;EAChE,GAAI,IAAqB,EAAE,aAAa,EAAmB,IAAI,CAAC;EAChE,GAAG;CACJ,CAAC;CAED,IAAI,CAAC,KAAO,EAAI,KAAK,EAAE,WAAW,GACjC,OACC,kBAAC,GAAD;EAAY;EAAM,MAAK;EAAiB;EAAK,WAAW,EAAG,0BAA0B,CAAS;EAAG,GAAI;YACnG;CACI,CAAA;CAIR,IAAM,IAAa,GAAU,CAAG,GAC1B,IAAa,GAAoB,GAAK,GAAU,CAAS,GACzD,IAAkB,KAAY,EAAI,SAAS,GAE3C,IACL,kBAAC,GAAD;EAAY;EAAY;EAAM,KAAI;EAAO,WAAU;YAAnD;GACE,CAAC,CAAC,KACF,kBAAC,GAAD,EAAA,UAAA,CACC,kBAAC,GAAD,EACC,SAAS,MAAiB;IAGzB,IAAM,EAAE,SAAM,aAAU,WAAW,GAAkB,GAAG,MACvD;IAKD,OACC,kBAAC,QAAD;KACC,GAAI;KACJ,UAAU;KACV,MAAK;KACL,cAAY,EAAQ;KACpB,WAAW,EACV,yCACA,CACD;eAEA,kBAAC,GAAD;MAAa,WAAU;MAAW,eAAY;KAAQ,CAAA;IACjD,CAAA;GAER,EACA,CAAA,GACD,kBAAC,GAAD;IAAgB,MAAK;IAAM,WAAU;cACpC,kBAAC,GAAD;KAAM,MAAK;eAAM,EAAQ;IAAkB,CAAA;GAC5B,CAAA,CACR,EAAA,CAAA;GAEV,kBAAC,QAAD;IACC,WAAW,EACV,kDACA,kCACA,IAAa,uBAAuB,qBACpC,IAAY,6BAA6B,IAC1C;IACA,OAAQ,KAAmB,KAAQ,KAAA;cAElC;GACI,CAAA;GACL,CAAC,CAAC,KAAa,CAAC,CAAC,KACjB,kBAAC,IAAD,EAAc,WAAU,+BAAgC,CAAA;EAEpD;;CAGP,IAAI,GAAU;EACb,IAAM,IACL,kBAAC,GAAD;GACC,OAAO;GACP,cAAc;GACd,gBAAgB,EAAQ;GACxB,WAAW,EAAG,SAAS,CAAS;EAChC,CAAA;EAiBF,OAdI,IAEF,kBAAC,KAAD;GACC,MAAM;GACN,QAAO;GACP,KAAI;GACJ,WAAU;GACV,UAAU,MAAM,EAAE,gBAAgB;aAEjC;EACC,CAAA,IAIE;CACR;CAeA,OAbI,IAEF,kBAAC,KAAD;EACC,MAAM;EACN,QAAO;EACP,KAAI;EACJ,WAAU;YAET;CACC,CAAA,IAIE;AACR;AAEA,GAAW,cAAc;;;ACjLzB,SAAgB,GAAW,EAC1B,UACA,UACA,YAAS,WACT,UAAO,IACP,cACA,mBACA,qBACmB;CAmBnB,OAlBI,MAAW,YAEb,kBAAC,OAAD;EAAK,WAAW,EAAG,0BAA0B,yBAAyB,CAAS;YAA/E,CACC,kBAAC,GAAD;GAAM,KAAI;GAAO,MAAK;GAAM,MAAK;GAAY,WAAW;aACtD;EACI,CAAA,GACN,kBAAC,GAAD;GACC,KAAI;GACJ,WAAW,EAAG,KAAQ,gBAAgB,CAAc;aAEnD;EACI,CAAA,CACF;MAON,kBAAC,OAAD;EAAK,WAAW,EAAG,2BAHJ,MAAW,YAAY,oBAAoB,iBAGH,CAAS;YAAhE,CACC,kBAAC,GAAD;GAAM,KAAI;GAAO,MAAK;GAAK,MAAK;GAAY,WAAW;aACrD;EACI,CAAA,GACN,kBAAC,GAAD;GACC,KAAI;GACJ,WAAW,EAAG,KAAQ,gBAAgB,CAAc;aAEnD;EACI,CAAA,CACF;;AAEP;AAEA,GAAW,cAAc;;;AClCzB,IAAM,KAAgB,KAEhB,MACL,GACA,GACA,MACmB;CACnB,IAAI,KAAU,QAA+B,MAAU,IAAI,OAAO;CAClE,IAAI,OAAO,KAAU,UAAU,OAAO;CACtC,IAAI,OAAO,MAAM,CAAK,GAAG,OAAO;CAChC,IAAI;EACH,OAAO,IAAI,KAAK,aAAa,GAAQ,CAAO,EAAE,OAAO,CAAK;CAC3D,QAAQ;EACP,OAAO,OAAO,CAAK;CACpB;AACD;AAEA,SAAgB,GAAa,EAC5B,UACA,WAAQ,SACR,WACA,kBACA,gBAAa,IACb,MAAM,GACN,WACA,SACA,cACA,GAAG,KACkB;CACrB,IAAM,EAAE,uBAAoB,EAAoB,GAC1C,IAAO,KAAY,KAAmB,MAEtC,IAAY,GAAY,GAAO,GAAQ,CAAa,GACpD,IACL,MAAU,UAAU,eAAe,MAAU,WAAW,gBAAgB;CAgBzE,OAdI,MAAc,OAEhB,kBAAC,GAAD;EACO;EACE;EACR,MAAM,KAAQ;EACd,WAAW,EAAG,4BAA4B,gBAAgB,GAAY,CAAS;EAC/E,GAAI;YAEH;CACI,CAAA,IAKP,kBAAC,GAAD;EACO;EACE;EACF;EACN,WAAW,EAAG,gBAAgB,GAAY,CAAS;EACnD,GAAI;YAEH;CACI,CAAA;AAER;AAEA,GAAa,cAAc;;;ACpE3B,IAAM,KAAsH;CAC3H,IAAI;EAAE,QAAQ;EAAU,KAAK;EAAS,UAAU;EAAM,cAAc;CAAK;CACzE,MAAM;EAAE,QAAQ;EAAU,KAAK;EAAS,UAAU;EAAM,cAAc;CAAK;CAC3E,IAAI;EAAE,QAAQ;EAAW,KAAK;EAAS,UAAU;EAAQ,cAAc;CAAK;AAC7E;AAEA,SAAgB,GAAS,EACxB,SACA,aACA,cACA,cACA,aACA,WACA,aACA,UAAO,QACP,gBACiB;CACjB,IAAM,IAAQ,GAAS,IAEjB,IAAa,KAClB,kBAAC,GAAD;EAAQ,WAAW,EAAM;YAAzB,CACE,CAAC,CAAC,KAAa,kBAAC,GAAD;GAAa,KAAK;GAAW,KAAK,MAAc,OAAO,KAAS,WAAW,IAAO,KAAA;EAAa,CAAA,GAC9G,CAAC,CAAC,KAAY,kBAAC,GAAD,EAAA,UAAiB,EAAyB,CAAA,CAClD;;CAGT,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,wBAAwB,qBAAqB,EAAM,KAAK,CAAS;YAApF;GACE;GACD,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,GAAD;KAAM,MAAM,EAAM;KAAU,QAAO;KAAW,WAAU;eACtD;IACI,CAAA,GACL,CAAC,CAAC,KACF,kBAAC,GAAD;KAAM,MAAM,EAAM;KAAc,MAAK;KAAY,WAAU;eACzD;IACI,CAAA,CAEH;;GACJ,CAAC,CAAC,KAAY,kBAAC,OAAD;IAAK,WAAU;cAAY;GAAc,CAAA;EACpD;;AAEP;AAEA,GAAS,cAAc;;;ACjDvB,SAAgB,EAAc,EAC7B,UACA,gBACA,UACA,WACA,WAAQ,IACR,gBACsB;CACtB,OACC,kBAAC,OAAD;EACC,WAAW,EAAG,6BACb,oCACA,IAAQ,UAAU,SAClB,CACD;YALD,CAOC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACC,kBAAC,OAAD;IAAK,WAAW,EAAG,qBAAqB,IAAQ,YAAY,OAAO;cAAnE,CACC,kBAAC,GAAD;KACC,MAAM,IAAQ,OAAO;KACrB,QAAO;KACP,WAAU;eAET;IACI,CAAA,GACL,CAAC,CAAC,KAAS,kBAAC,QAAD;KAAM,WAAU;eAAY;IAAY,CAAA,CAChD;OACJ,CAAC,CAAC,KACF,kBAAC,GAAD;IACC,MAAM,IAAQ,QAAQ;IACtB,MAAK;IACL,WAAW,IAAQ,WAAW;cAE7B;GACI,CAAA,CAEH;MACJ,CAAC,CAAC,KAAU,kBAAC,OAAD;GAAK,WAAU;aAAY;EAAY,CAAA,CAChD;;AAEP;AAEA,EAAc,cAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-BF4m2cR0.cjs"),r=require("../lib/utils.cjs"),i=require("./button-BI347RlM.cjs"),a=require("./buttons-kVvSD_oI.cjs"),o=require("./heading-0DYCOrgC.cjs"),s=require("./typography-Bzsl7aTu.cjs"),c=require("./badge-CBof1rbF.cjs"),l=require("./input-COMcb1WY.cjs"),u=require("./checkbox-D1n-nfLP.cjs"),d=require("./form-sizing-aVwVuF-w.cjs"),f=require("./textarea-C4SOrh0z.cjs"),p=require("./select-CG5Yq-6A.cjs"),m=require("./form-field-rMGPvHFK.cjs"),h=require("./switch-zFZhhOEP.cjs"),g=require("./card-radio-group-Bna2uZs1.cjs"),_=require("./date-picker-zFOqtmAS.cjs"),v=require("./popover-CaHvG8Vj.cjs");let y=require("react");y=e.t(y,1);let b=require("react/jsx-runtime"),x=require("lucide-react"),S=require("@base-ui/react/slider"),C=require("@base-ui/react/radio"),w=require("@base-ui/react/radio-group"),T=require("@dnd-kit/core"),E=require("@dnd-kit/sortable"),D=require("@dnd-kit/utilities"),O=require("react-hook-form");var k={showPassword:`Show password`,hidePassword:`Hide password`},A=y.forwardRef(function({visible:e,defaultVisible:n=!1,onVisibilityChange:i,revealable:a=!0,wrapperClassName:o,visibilityButtonClassName:s,className:c,disabled:u,isLoading:d,inputStrings:f,strings:p,...m},h){let g=t.useStrings(k,p),[_,v]=y.useState(n),S=e!==void 0,C=S?e:_,w=u||d,T=y.useCallback(()=>{let e=!C;S||v(e),i?.(e)},[S,C,i]);return(0,b.jsxs)(`div`,{className:r.cn(`password-input--component`,`relative`,o),children:[(0,b.jsx)(l.t,{ref:h,type:C?`text`:`password`,disabled:u,isLoading:d,className:r.cn(a&&`pe-10`,c),strings:f,...m}),!!a&&(0,b.jsx)(`button`,{type:`button`,className:r.cn(`password-input--toggle`,`text-muted-foreground/80 hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md transition-[color,box-shadow] outline-none focus-visible:z-10 focus-visible:ring-[3px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,s),"aria-label":C?g.hidePassword:g.showPassword,"aria-pressed":C,disabled:w,onMouseDown:e=>e.preventDefault(),onClick:T,children:C?(0,b.jsx)(x.EyeOff,{className:`size-4`,"aria-hidden":`true`}):(0,b.jsx)(x.Eye,{className:`size-4`,"aria-hidden":`true`})})]})});A.displayName=`PasswordInput`;function j(e,{separator:t=`-`,lowercase:n=!0,trim:r=!0}={}){let i=t||`-`,a=i.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),o=String(e??``).normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).replace(/&/g,` and `).replace(/['’]/g,``);return n&&(o=o.toLowerCase()),o=o.replace(/[^\p{Letter}\p{Number}]+/gu,i).replace(RegExp(`${a}{2,}`,`g`),i),r&&(o=o.replace(RegExp(`^${a}|${a}$`,`g`),``)),o}var M=y.forwardRef(function({value:e,slugify:t,separator:n=`-`,lowercase:i=!0,trim:a=!0,wrapperClassName:o,className:s,...c},u){let d=y.useMemo(()=>t?.(e)??j(e,{separator:n,lowercase:i,trim:a}),[i,n,t,a,e]);return(0,b.jsx)(`div`,{className:r.cn(`slug-field--component`,o),children:(0,b.jsx)(l.t,{ref:u,...c,type:`text`,value:d,readOnly:!0,className:s})})});M.displayName=`SlugField`;var N={placeholder:`Select an option`},P=`__select_empty__`,F=e=>e===``||e===null?P:e??void 0,I=e=>{if(e!==P)return e},L=(0,y.memo)((0,y.forwardRef)(({options:e,placeholder:i,strings:a,allowClear:o=!1,invalid:s,size:c,className:l,onChange:u,disabled:f,defaultOpen:m,open:h,onOpenChange:g,name:_,required:v,"aria-label":x,value:S,defaultValue:C},w)=>{let T=t.useStrings(N,a),{defaultControlSize:E}=n.s(),D=d.i(c,E),O=i??T.placeholder,k=(0,y.useMemo)(()=>{let t=e.map(e=>({...e,value:F(e.value)??``}));return o&&(t.some(e=>e.value===P)||t.unshift({label:O,value:P})),t},[e,o,O]),A=(0,y.useMemo)(()=>F(S),[S]),j=(0,y.useMemo)(()=>F(C),[C]),M=(0,y.useMemo)(()=>{let e=A??j;if(e!==void 0)return k.find(t=>t.value===e)?.label},[j,k,A]),L=(0,y.useCallback)(e=>{e!==null&&u?.(I(e))},[u]),R=!!s;return(0,b.jsxs)(p.t,{onValueChange:e=>L(e),disabled:f,defaultOpen:m,open:h,onOpenChange:g,name:_,required:v,value:A,defaultValue:j,children:[(0,b.jsx)(p.a,{ref:w,"aria-label":x,"aria-invalid":R||void 0,className:r.cn(`select--component`,`flex w-full items-center justify-between rounded-radius border px-3 py-1 !shadow-none`,`transition-[color,box-shadow] outline-none`,d.n[D],`bg-transparent dark:bg-input/30`,`data-[placeholder]:text-muted-foreground`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,`disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,l),children:(0,b.jsx)(p.o,{placeholder:O,children:M})}),(0,b.jsx)(p.n,{children:(0,b.jsx)(p.r,{children:k.map(e=>(0,b.jsxs)(p.i,{value:e.value,disabled:e.disabled,children:[!!e.icon&&(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`span`,{className:`h-4 w-4 shrink-0`,children:e.icon}),e.label]}),!e.icon&&e.label]},e.value))})})]})}));L.displayName=`Select`;function R({label:e,description:t,hint:n,icon:i,name:a,value:c,defaultValue:l,onChange:u,disabled:d=!1,invalid:f,className:p}){let m=c!==void 0,[g,_]=(0,y.useState)(l??!1),v=m?c??!1:g,x=(0,y.useId)(),S=(0,y.useMemo)(()=>a??x,[a,x]),C=typeof t==`string`&&t.trim()!==``,w=C?`${S}-description`:void 0,T=(0,y.useCallback)(e=>{d||(m||_(e),u?.(e))},[d,m,u]),E=(0,y.useCallback)(e=>{e.target.closest(`[role="switch"]`)||T(!v)},[v,T]);return(0,b.jsxs)(`div`,{"aria-invalid":f||void 0,onClick:E,className:r.cn(`switch-card--component`,`group relative flex items-start gap-3 rounded-lg border bg-card p-4 transition-[background,border-color,box-shadow] duration-150`,`border-border`,v&&`border-primary bg-primary/[0.04]`,`aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`,!d&&`cursor-pointer hover:border-foreground/20 hover:bg-muted/30`,d&&`cursor-not-allowed opacity-50`,p),children:[!!a&&(0,b.jsx)(`input`,{type:`hidden`,name:a,value:v?`1`:`0`,"aria-hidden":`true`}),!!i&&(0,b.jsx)(`span`,{className:r.cn(`mt-0.5 inline-flex size-9 shrink-0 items-center justify-center rounded-md transition-colors`,v?`bg-primary/10 text-primary`:`bg-muted/50 text-muted-foreground group-hover:bg-muted group-hover:text-foreground`),children:(0,b.jsx)(i,{className:`size-4`})}),(0,b.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,b.jsx)(s.a,{htmlFor:S,className:r.cn(`block font-semibold tracking-tight`,d?`cursor-not-allowed`:`cursor-pointer`),children:e}),!!C&&(0,b.jsx)(o.n,{type:`secondary`,className:`leading-snug`,children:t}),!!n&&(0,b.jsx)(o.n,{size:`xs`,type:`discrete`,className:`leading-snug`,children:n})]}),(0,b.jsx)(`div`,{className:`mt-1 flex shrink-0 items-center`,children:(0,b.jsx)(h.r,{id:S,checked:v,onCheckedChange:e=>T(e),disabled:d,"aria-label":e,"aria-describedby":w})}),!!C&&(0,b.jsx)(`span`,{id:`${S}-description`,className:`sr-only`,children:t})]})}R.displayName=`SwitchCard`;function z({label:e,description:t,kind:n=`switch`,value:i,defaultValue:a,onChange:c,disabled:l=!1,invalid:d=!1,name:f,className:p,controlPosition:m=`trailing`}){let g=i!==void 0,[_,v]=(0,y.useState)(a??!1),x=g?i??!1:_,S=(0,y.useId)(),C=(0,y.useCallback)(e=>{l||(g||v(e),c?.(e))},[l,g,c]),w=e=>{e.target.closest(`[role="switch"], [role="checkbox"], input[type="checkbox"]`)||C(!x)},T=n===`switch`?(0,b.jsx)(h.r,{id:S,name:f,checked:x,onCheckedChange:e=>C(e),disabled:l,"aria-invalid":d||void 0}):(0,b.jsx)(u.t,{id:S,name:f,checked:x,onCheckedChange:e=>C(e===!0),disabled:l,"aria-invalid":d||void 0}),E=(0,b.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,b.jsx)(s.a,{htmlFor:S,className:r.cn(`block leading-snug`,l?`cursor-not-allowed opacity-50`:`cursor-pointer`),children:e}),!!t&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,className:`mt-0.5 leading-snug`,children:t})]});return(0,b.jsxs)(`div`,{role:`group`,onClick:w,className:r.cn(`toggle-field--component`,`flex items-start gap-3 rounded-md py-1`,l&&`pointer-events-none`,p),children:[m===`leading`&&(0,b.jsx)(`div`,{className:`mt-0.5 flex shrink-0`,children:T}),E,m===`trailing`&&(0,b.jsx)(`div`,{className:`mt-0.5 flex shrink-0`,children:T})]})}z.displayName=`ToggleField`;var B={placeholder:`Add a tag…`,emptyRecommendations:`No recommendations found.`,clearAll:`Clear all`,summary:(e,t)=>`${e} / ${t} tags`};function V({value:e=[],onChange:n,placeholder:i,recommendations:s,maxTags:u,showMaxTags:d=!1,allowDuplicates:f=!1,validate:p,disabled:m=!1,showClearAll:h=!1,renderTag:g,delimiter:_=/[\n,]/,addOnBlur:v=!0,minLength:S=1,maxLength:C,emptyMessage:w,sortTags:T=!1,caseSensitive:E=!1,field:D,invalid:O,className:k,strings:A}){let j=t.useStrings(B,{...i?{placeholder:i}:{},...w?{emptyRecommendations:w}:{},...A}),[M,N]=(0,y.useState)(``),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(-1),R=(0,y.useRef)(null),z=(0,y.useCallback)(e=>{if(typeof e==`string`)return e;if(D&&typeof e==`object`&&e){let t=e[D];return typeof t==`string`?t:t==null?``:String(t)}return String(e)},[D]),V=(0,y.useCallback)(t=>typeof e[0]==`string`||e.length===0?t:D?{[D]:t}:t,[D,e]),H=(0,y.useMemo)(()=>s?s.map(e=>e&&typeof e==`object`&&`value`in e&&`label`in e?e:{value:e,label:z(e)}):[],[s,z]),U=(0,y.useMemo)(()=>{if(!H.length||!M)return H;let t=E?M:M.toLowerCase(),n=new Set(e.map(e=>{let t=z(e);return E?t:t.toLowerCase()}));return H.filter(e=>{let r=E?e.label:e.label.toLowerCase(),i=z(e.value),a=E?i:i.toLowerCase();return(r.includes(t)||a.includes(t))&&(f||!n.has(a))})},[H,M,e,f,E,z]),W=(0,y.useMemo)(()=>T?[...e].sort((e,t)=>{let n=z(e),r=z(t);return n.localeCompare(r)}):e,[e,T,z]),G=(0,y.useCallback)(t=>{let r=typeof t==`string`?V(t):t,i=z(r).trim();if(!i||i.length<S||C&&i.length>C||u&&e.length>=u||!f&&e.some(e=>{let t=z(e);return E?t===i:t.toLowerCase()===i.toLowerCase()})||p&&!p(r))return;let a=[...e,r];n?.(a),N(``),F(!1),L(-1)},[e,n,u,f,p,S,C,E,z,V]),K=(0,y.useCallback)(t=>{let r=e.filter((e,n)=>n!==t);n?.(r)},[e,n]),q=(0,y.useCallback)(e=>{let t=e.target.value;N(t),L(-1),s&&s.length>0&&F(!0)},[s]),ee=(0,y.useCallback)(t=>{m||(t.key===`Enter`?(t.preventDefault(),P&&I>=0&&I<U.length?(G(U[I].value),L(-1)):M.trim()&&G(M)):t.key===`Tab`?M&&(t.preventDefault(),G(M)):t.key===`ArrowDown`?(t.preventDefault(),P&&L(e=>e<U.length-1?e+1:e)):t.key===`ArrowUp`?(t.preventDefault(),P&&L(e=>e>0?e-1:0)):t.key===`Escape`?(F(!1),L(-1)):t.key===`Backspace`&&!M&&e.length>0&&K(e.length-1))},[m,P,I,U,M,G,K,e.length]),te=(0,y.useCallback)(e=>{m||(e.preventDefault(),e.clipboardData.getData(`text`).split(_).map(e=>e.trim()).filter(Boolean).forEach(e=>G(e)))},[m,_,G]),ne=(0,y.useCallback)(()=>{setTimeout(()=>{F(!1),v&&M&&G(M)},200)},[v,M,G]),re=(0,y.useCallback)(()=>{n?.([]),N(``)},[n]),ie=(0,y.useCallback)((e,t,n)=>{let i=`${z(e)}-${t}`;return(0,b.jsxs)(c.t,{variant:`secondary`,className:r.cn(`tags-input--component`,`gap-1 pr-1 font-normal`),children:[z(e),(0,b.jsx)(`button`,{type:`button`,"aria-label":`Remove ${z(e)}`,className:r.cn(`inline-flex size-3.5 items-center justify-center rounded-full`,`text-muted-foreground/70 hover:bg-foreground/10 hover:text-foreground`,`outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,`disabled:opacity-50 disabled:pointer-events-none`),onClick:()=>n(t),disabled:m,children:(0,b.jsx)(x.X,{className:`size-3`,"aria-hidden":`true`})})]},i)},[z,m]),J=!!O;return(0,b.jsxs)(`div`,{className:r.cn(`w-full relative`,k),children:[(0,b.jsxs)(`div`,{className:`relative`,children:[(0,b.jsx)(l.t,{ref:R,type:`text`,placeholder:j.placeholder,value:M,onChange:q,onKeyDown:ee,onPaste:te,onBlur:ne,onFocus:()=>{s&&U.length>0&&F(!0)},disabled:m||u!==void 0&&e.length>=u,invalid:J,maxLength:C,className:`w-full`}),!!s&&!!P&&(0,b.jsx)(`div`,{className:`absolute top-full left-0 right-0 z-50 mt-1 max-h-[200px] overflow-y-auto rounded-md bg-popover text-popover-foreground p-1 text-sm shadow-md ring-1 ring-foreground/10`,children:U.length>0?U.map((t,n)=>{let i=z(t.value),a=e.some(e=>z(e)===z(t.value));return(0,b.jsxs)(`button`,{type:`button`,onMouseDown:e=>{e.preventDefault(),G(t.value),L(-1),R.current?.focus()},onMouseEnter:()=>L(n),className:r.cn(`relative flex w-full cursor-pointer items-center justify-between gap-2 rounded-md px-2 py-(--row-py) text-[length:var(--text-xs)]`,`hover:bg-accent hover:text-accent-foreground`,`focus-visible:outline-none`,I===n&&`bg-accent text-accent-foreground`),children:[(0,b.jsx)(`span`,{children:t.label}),(0,b.jsx)(x.Check,{className:r.cn(`ml-auto size-4`,a?`opacity-100`:`opacity-0`)})]},i)}):(0,b.jsx)(o.n,{tag:`div`,size:`xs`,type:`secondary`,className:`px-2 py-(--row-py)`,children:j.emptyRecommendations})})]}),W.length>0&&(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 mt-2`,children:[W.map((e,t)=>g?g(e,t,K):ie(e,t,K)),!!h&&e.length>0&&!m&&(0,b.jsx)(a.n,{type:`button`,size:`sm`,onClick:re,className:`ml-auto`,children:j.clearAll})]}),!!u&&!!d&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,className:`mt-1`,children:j.summary(e.length,u)})]})}V.displayName=`TagsInput`;var H={prefixPlaceholder:`Prefix`},U={US:{value:`+1`,label:`United States`,iso:`US`},CA:{value:`+1`,label:`Canada`,iso:`CA`},AU:{value:`+61`,label:`Australia`,iso:`AU`},BG:{value:`+359`,label:`Bulgaria`,iso:`BG`},GR:{value:`+30`,label:`Greece`,iso:`GR`},GB:{value:`+44`,label:`United Kingdom`,iso:`GB`},DE:{value:`+49`,label:`Germany`,iso:`DE`},FR:{value:`+33`,label:`France`,iso:`FR`},IT:{value:`+39`,label:`Italy`,iso:`IT`},ES:{value:`+34`,label:`Spain`,iso:`ES`},NL:{value:`+31`,label:`Netherlands`,iso:`NL`},BE:{value:`+32`,label:`Belgium`,iso:`BE`},AT:{value:`+43`,label:`Austria`,iso:`AT`},CH:{value:`+41`,label:`Switzerland`,iso:`CH`},PL:{value:`+48`,label:`Poland`,iso:`PL`},RO:{value:`+40`,label:`Romania`,iso:`RO`},RS:{value:`+381`,label:`Serbia`,iso:`RS`},HR:{value:`+385`,label:`Croatia`,iso:`HR`},SI:{value:`+386`,label:`Slovenia`,iso:`SI`},MK:{value:`+389`,label:`North Macedonia`,iso:`MK`},TR:{value:`+90`,label:`Turkey`,iso:`TR`},RU:{value:`+7`,label:`Russia`,iso:`RU`},UA:{value:`+380`,label:`Ukraine`,iso:`UA`},SK:{value:`+421`,label:`Slovakia`,iso:`SK`},CZ:{value:`+420`,label:`Czech Republic`,iso:`CZ`},HU:{value:`+36`,label:`Hungary`,iso:`HU`},PT:{value:`+351`,label:`Portugal`,iso:`PT`},IE:{value:`+353`,label:`Ireland`,iso:`IE`},SE:{value:`+46`,label:`Sweden`,iso:`SE`},NO:{value:`+47`,label:`Norway`,iso:`NO`},DK:{value:`+45`,label:`Denmark`,iso:`DK`},FI:{value:`+358`,label:`Finland`,iso:`FI`},CY:{value:`+357`,label:`Cyprus`,iso:`CY`},AL:{value:`+355`,label:`Albania`,iso:`AL`},ME:{value:`+382`,label:`Montenegro`,iso:`ME`},BA:{value:`+387`,label:`Bosnia and Herzegovina`,iso:`BA`},XK:{value:`+383`,label:`Kosovo`,iso:`XK`},MD:{value:`+373`,label:`Moldova`,iso:`MD`},BY:{value:`+375`,label:`Belarus`,iso:`BY`},LT:{value:`+370`,label:`Lithuania`,iso:`LT`},LV:{value:`+371`,label:`Latvia`,iso:`LV`},EE:{value:`+372`,label:`Estonia`,iso:`EE`}},W=[`US`,`CA`,`GB`,`DE`,`FR`,`IT`,`ES`,`AU`],G=e=>typeof e==`string`?U[e.toUpperCase()]??null:e,K=e=>e.map(G).filter(e=>e!==null),q=(e,t)=>{let n=e.trim().replace(/\s+/g,` `).replace(/[^\d ()+-]/g,``);return t&&n.startsWith(t)&&(n=n.slice(t.length).replace(/^[\s-]+/,``)),t&&n.startsWith(`0`)&&(n=n.slice(1)),n},ee=(e,t)=>e?e.startsWith(`+`)?e:U[e.toUpperCase()]?.value??e:t[0]?.value??``;function te({normalizeOnBlur:e=!0,onBlur:i,onChange:a,prefix:s,defaultPrefix:c,prefixes:u=W,onPrefixChange:f,disablePrefixSelector:m=!1,prefixPlaceholder:h,prefixWidth:g=`w-[120px]`,showCountryName:_=!0,showPrefixInDropdown:v=!0,invalid:x,disabled:S,className:C,size:w,strings:T,...E},D){let{defaultControlSize:O}=n.s(),k=d.i(w,O),A=t.useStrings(H,T),j=(0,y.useMemo)(()=>K(u),[u]),[M,N]=(0,y.useState)((0,y.useMemo)(()=>ee(c,j),[c,j])),P=s!==void 0,F=P?ee(s,j):M,I=(0,y.useMemo)(()=>j.find(e=>e.value===F),[j,F]),L=(0,y.useCallback)(e=>{e!==null&&(P||N(e),f?.(e))},[P,f]),R=(0,y.useCallback)(e=>{if(!a)return;let t=e.target.value;if(F&&t.startsWith(F)){let n=t.slice(F.length).replace(/^[\s-]+/,``),r=n.startsWith(`0`)?n.slice(1):n;if(r!==t){a({...e,target:{...e.target,value:r},currentTarget:{...e.currentTarget,value:r}});return}}a(e)},[a,F]),z=(0,y.useCallback)(t=>{if(e&&typeof a==`function`){let e=q(t.target.value,F);e!==t.target.value&&a({...t,target:{...t.target,value:e},currentTarget:{...t.currentTarget,value:e}})}i?.(t)},[e,a,i,F]);if(j.length===0||m){let e=F||c;return e?(0,b.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,b.jsx)(`div`,{"aria-invalid":x||void 0,className:r.cn(`flex items-center justify-center rounded-md border border-input bg-muted px-3`,d.n[k],S&&`opacity-50`,`aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`),children:(0,b.jsx)(o.n,{tag:`span`,type:`secondary`,weight:`medium`,children:e})}),(0,b.jsx)(`div`,{className:`flex-1`,children:(0,b.jsx)(l.t,{ref:D,size:k,type:`tel`,autoComplete:`tel`,inputMode:`tel`,onChange:R,onBlur:z,invalid:x,disabled:S,className:C,...E})})]}):(0,b.jsx)(l.t,{ref:D,size:k,type:`tel`,autoComplete:`tel`,inputMode:`tel`,onChange:R,onBlur:z,invalid:x,disabled:S,className:r.cn(`phone-input--component`,C),...E})}return(0,b.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,b.jsxs)(p.t,{value:F,onValueChange:e=>L(e),disabled:S,children:[(0,b.jsx)(p.a,{"aria-invalid":x||void 0,className:r.cn(`border-input bg-transparent shrink-0 !shadow-none`,d.n[k],`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,g,S&&`opacity-50 cursor-not-allowed`),children:(0,b.jsx)(p.o,{placeholder:h??A.prefixPlaceholder,children:!!I&&(0,b.jsx)(o.n,{tag:`span`,children:I.value})})}),(0,b.jsx)(p.n,{children:(0,b.jsx)(p.r,{children:j.map(e=>(0,b.jsx)(p.i,{value:e.value,children:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!!v&&(0,b.jsx)(o.n,{tag:`span`,weight:`medium`,className:`min-w-[50px]`,children:e.value}),!!_&&(0,b.jsx)(o.n,{tag:`span`,type:`secondary`,lineHeight:`tight`,children:e.label})]})},e.value))})})]}),(0,b.jsx)(`div`,{className:`flex-1`,children:(0,b.jsx)(l.t,{ref:D,size:k,type:`tel`,autoComplete:`tel`,inputMode:`tel`,onChange:R,onBlur:z,invalid:x,disabled:S,className:C,...E})})]})}var ne=(0,y.memo)(y.forwardRef(te));ne.displayName=`PhoneInput`;var re=(0,y.forwardRef)(function({decimalPlaces:e=2,min:t=0,max:n=100,step:r,...i},a){return(0,b.jsx)(m.a,{className:`percentage-input--component`,ref:a,decimalPlaces:e,allowNegative:!1,min:t,max:n,step:r,endAddon:`%`,...i})});re.displayName=`PercentageInput`;function ie({className:e,defaultValue:t,value:n,min:i=0,max:a=100,...o}){let s=y.useMemo(()=>Array.isArray(n)?n:Array.isArray(t)?t:[i,a],[n,t,i,a]);return(0,b.jsx)(S.Slider.Root,{className:r.cn(`data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full`,e),"data-slot":`slider`,defaultValue:t,value:n,min:i,max:a,thumbAlignment:`edge`,...o,children:(0,b.jsxs)(S.Slider.Control,{className:`relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col`,children:[(0,b.jsx)(S.Slider.Track,{"data-slot":`slider-track`,className:`relative grow overflow-hidden rounded-full bg-muted select-none data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`,children:(0,b.jsx)(S.Slider.Indicator,{"data-slot":`slider-range`,className:`absolute bg-primary select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`})}),Array.from({length:s.length},(e,t)=>(0,b.jsx)(S.Slider.Thumb,{"data-slot":`slider-thumb`,className:`block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`},t))]})})}function J({name:e,id:t,value:n,defaultValue:i,min:a=0,max:s=100,step:c=1,disabled:l=!1,invalid:u=!1,onChange:d,onValueChange:f,onValueCommitted:p,showValue:m=!1,formatValue:h,unit:g,className:_,orientation:v=`horizontal`},x){let S=(0,y.useId)(),C=t??`slider-${S}`,w=e??C,T=(0,y.useCallback)(e=>{let t=Array.isArray(e)?e[0]:e;f?.(t),d?.({target:{name:w,value:t}})},[w,d,f]),E=(0,y.useCallback)(e=>{let t=Array.isArray(e)?e[0]:e;p?.(t)},[p]),D=(0,y.useMemo)(()=>{if(!m)return null;let e=n??i??a;return h?h(e):g?`${e}${g}`:String(e)},[m,n,i,a,h,g]),O=n===void 0?void 0:[n],k=i===void 0?[a]:[i];return(0,b.jsxs)(`div`,{className:r.cn(`slider--component`,`flex items-center gap-3`,_),children:[(0,b.jsx)(ie,{ref:x,id:C,value:O,defaultValue:k,min:a,max:s,step:c,disabled:l,orientation:v,onValueChange:T,onValueCommitted:E,"aria-invalid":u||void 0,className:r.cn(`min-w-0 flex-1`,u&&`[&_[data-slot=slider-range]]:bg-destructive [&_[data-slot=slider-thumb]]:border-destructive`)}),!!m&&D!==null&&(0,b.jsx)(o.n,{tag:`span`,type:u?`error`:`secondary`,className:`min-w-[3ch] shrink-0 text-right tabular-nums`,children:D})]})}var ae=y.forwardRef(J);ae.displayName=`SliderField`;function oe({options:e,value:t,defaultValue:i,onChange:a,name:s,invalid:c,disabled:l,size:u,className:f}){let{defaultControlSize:p}=n.s(),m=g.r[d.i(u,p)];return(0,b.jsx)(w.RadioGroup,{value:t,defaultValue:i,onValueChange:e=>e&&a?.(e),name:s,disabled:l,"aria-invalid":c||void 0,className:r.cn(`list-radio-group--component`,`overflow-hidden rounded-md border [&>[role=radio]~[role=radio]]:border-t`,`aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`,l&&`pointer-events-none opacity-50`,f),children:e.map(e=>(0,b.jsxs)(C.Radio.Root,{value:e.value,disabled:l||e.disabled,className:r.cn(`group flex w-full items-start gap-3 text-start outline-none cursor-pointer`,`transition-colors hover:bg-muted/40 focus-visible:bg-muted/40`,`data-[checked]:bg-primary/10`,`disabled:cursor-not-allowed disabled:opacity-50`,m),children:[(0,b.jsx)(`div`,{className:`mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-primary group-data-[checked]:border-primary group-not-data-[checked]:border-muted-foreground/50`,children:(0,b.jsx)(C.Radio.Indicator,{render:(0,b.jsx)(x.Circle,{className:`h-2.5 w-2.5 fill-primary text-primary`})})}),(0,b.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,b.jsx)(o.n,{tag:`span`,weight:`medium`,lineHeight:`tight`,className:`block`,children:e.label}),!!e.description&&(0,b.jsx)(o.n,{tag:`span`,size:`xs`,type:`secondary`,className:`block mt-0.5`,children:e.description})]})]},e.value))})}oe.displayName=`ListRadioGroup`;var se=[`floor`,`half_up`,`ceil`];function ce({value:e,onChange:t,labels:n,placeholder:r,...i}){return(0,b.jsx)(L,{className:`rounding-mode-select--component`,options:(0,y.useMemo)(()=>se.map(e=>({value:e,label:n?.[e]??e})),[n]),value:e,onChange:(0,y.useCallback)(e=>{t?.(e)},[t]),placeholder:r,...i})}ce.displayName=`RoundingModeSelect`;var le={placeholder:`Select an item`},ue=`__rich_select_empty__`,de=(0,y.forwardRef)(({options:e,placeholder:i,strings:a,onChange:s,className:c,disabled:l,defaultOpen:u,open:f,onOpenChange:m,name:h,required:g,value:_,defaultValue:v,allowClear:x=!1,invalid:S,size:C},w)=>{let{defaultControlSize:T}=n.s(),E=d.i(C,T),D=t.useStrings(le,a),O=i??D.placeholder,k=(0,y.useCallback)(e=>{if(e!==ue)return e===``||e==null?x?ue:void 0:e},[x]),A=(0,y.useCallback)(e=>{if(e!==ue)return e},[]),j=(0,y.useMemo)(()=>{let t=e.map(e=>({...e,value:k(e.value)??``}));return x&&(t.some(e=>e.label===O)||t.unshift({label:O,value:ue})),t},[e,x,O,k]),M=(0,y.useMemo)(()=>k(_??void 0),[_,k]),N=(0,y.useMemo)(()=>k(v??void 0),[v,k]),P=_!==void 0,[F,I]=(0,y.useState)(N),L=P?M:F,R=(0,y.useMemo)(()=>j.find(e=>e.value===L),[L,j]),z=(0,y.useCallback)(e=>{e!=null&&(P||I(e),s?.(A(e)))},[P,s,A]),B=r.cn(`border-input bg-transparent w-full rounded-radius border outline-none transition-[color,box-shadow] !shadow-none`,d.n[E],d.t[E],`h-auto py-2`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive aria-invalid:text-destructive`,`disabled:cursor-not-allowed disabled:opacity-50`,c),V=P?{value:M}:{};return(0,b.jsxs)(p.t,{onValueChange:e=>z(e),disabled:l,defaultOpen:u,open:f,onOpenChange:m,name:h,required:g,defaultValue:N,...V,children:[(0,b.jsx)(p.a,{ref:w,className:r.cn(`rich-select--component`,B),"aria-invalid":S,children:R?(0,b.jsx)(o.n,{tag:`span`,className:`text-left break-words whitespace-normal`,children:R.label}):(0,b.jsx)(p.o,{placeholder:O})}),(0,b.jsx)(p.n,{children:(0,b.jsx)(p.r,{children:j.map(e=>(0,b.jsx)(p.i,{value:e.value,disabled:e.disabled,children:(0,b.jsxs)(`div`,{className:`flex w-full items-center gap-2`,children:[!!e.icon&&(0,b.jsx)(`span`,{className:`w-4 h-4 shrink-0 flex items-center justify-center self-start mt-0.5`,children:e.icon}),(0,b.jsxs)(`div`,{className:`flex flex-col min-w-0 text-left flex-1`,children:[(0,b.jsx)(o.n,{tag:`span`,weight:`medium`,children:e.label}),!!e.description&&(0,b.jsx)(o.n,{tag:`span`,size:`xs`,type:`secondary`,lineHeight:`tight`,className:`mt-0.5 line-clamp-2`,children:e.description})]})]})},e.value))})})]})});de.displayName=`RichSelect`;var fe={width:`Width`,height:`Height`,depth:`Depth`,unit:`Unit`,widthPlaceholder:`0.00`,heightPlaceholder:`0.00`,depthPlaceholder:`0.00`},pe=[{value:`g`,label:`g (grams)`},{value:`kg`,label:`kg (kilograms)`}],me=(e,t)=>{if(!e)return{width:``,height:``,depth:``};if(t===`string`&&typeof e==`string`){let t=e.split(`x`).map(e=>e.trim());return{width:t[0]||``,height:t[1]||``,depth:t[2]||``}}return t===`object`&&typeof e==`object`?{width:e.width||``,height:e.height||``,depth:e.depth||``}:{width:``,height:``,depth:``}},he=(e,t,n,r)=>r===`string`?`${e}x${t}x${n}`:{width:e,height:t,depth:n};function ge({value:e,defaultValue:i,format:a=`string`,unit:c,defaultUnit:l=`g`,widthLabel:u,heightLabel:f,depthLabel:h,unitLabel:g,unitPlaceholder:_,widthPlaceholder:v,heightPlaceholder:x,depthPlaceholder:S,onChange:C,onUnitChange:w,decimalPlaces:T=2,min:E=0,max:D,showUnitSelector:O=!0,disableUnitSelector:k=!1,layout:A=`horizontal`,invalid:j,disabled:M=!1,className:N,size:P,strings:F}){let{defaultControlSize:I}=n.s(),L=d.i(P,I),R=t.useStrings(fe,F),z=u??R.width,B=f??R.height,V=h??R.depth,H=_??R.unit,U=v??R.widthPlaceholder,W=x??R.heightPlaceholder,G=S??R.depthPlaceholder,K=A===`horizontal`,q=A===`vertical`,ee=O===!0,te=(g??``).length>0,ne=q?z:``,re=q?B:``,ie=q?V:``,J=e!==void 0,ae=c!==void 0,oe=me(J?e:i,a),[se,ce]=(0,y.useState)(oe.width),[le,ue]=(0,y.useState)(oe.height),[de,ge]=(0,y.useState)(oe.depth),[_e,ve]=(0,y.useState)(c||l),ye=me(e,a),be=J?ye.width:se,xe=J?ye.height:le,Se=J?ye.depth:de,Ce=ae?c:_e;(0,y.useEffect)(()=>{if(J){let t=me(e,a);ce(t.width),ue(t.height),ge(t.depth)}},[e,a,J]);let we=(0,y.useCallback)((e,t)=>{let n=be,r=xe,i=Se;e===`width`&&(n=t),e===`height`&&(r=t),e===`depth`&&(i=t),J||(ce(n),ue(r),ge(i));let o=he(n,r,i,a);C?.({target:{value:o}})},[be,xe,Se,J,a,C]),Te=(0,y.useCallback)(e=>{if(e===null)return;let t=e;ae||ve(t),w?.(t)},[ae,w]),Ee=(0,b.jsxs)(`div`,{className:`space-y-2`,children:[!!te&&(0,b.jsx)(s.a,{className:`leading-6`,children:g}),(0,b.jsxs)(p.t,{value:Ce,onValueChange:e=>Te(e),disabled:M||k,children:[(0,b.jsx)(p.a,{"aria-invalid":j||void 0,className:r.cn(`border-input bg-transparent !shadow-none`,d.n[L],`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,`w-32`,M&&`opacity-50 cursor-not-allowed`),children:(0,b.jsx)(p.o,{placeholder:H})}),(0,b.jsx)(p.n,{children:(0,b.jsx)(p.r,{children:pe.map(e=>(0,b.jsx)(p.i,{value:e.value,children:e.label},e.value))})})]})]});return(0,b.jsx)(`div`,{className:r.cn(`dimensions-input--component`,`space-y-2`,N),children:(0,b.jsxs)(`div`,{className:r.cn(`flex gap-2`,A===`vertical`?`flex-col`:`flex-row items-start`),children:[(0,b.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[!!q&&!!ne&&(0,b.jsx)(s.a,{children:ne}),(0,b.jsx)(m.a,{size:L,value:be,onChange:e=>we(`width`,e.target.value),placeholder:U,decimalPlaces:T,min:E,max:D,disabled:M,invalid:j,"aria-label":z}),!!K&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,className:`text-center`,children:z})]}),A===`horizontal`&&(0,b.jsx)(`div`,{className:`flex items-center pt-2`,children:(0,b.jsx)(o.n,{tag:`span`,type:`secondary`,children:`×`})}),(0,b.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[!!q&&!!re&&(0,b.jsx)(s.a,{children:re}),(0,b.jsx)(m.a,{size:L,value:xe,onChange:e=>we(`height`,e.target.value),placeholder:W,decimalPlaces:T,min:E,max:D,disabled:M,invalid:j,"aria-label":B}),!!K&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,className:`text-center`,children:B})]}),A===`horizontal`&&(0,b.jsx)(`div`,{className:`flex items-center pt-2`,children:(0,b.jsx)(o.n,{tag:`span`,type:`secondary`,children:`×`})}),(0,b.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[!!q&&!!ie&&(0,b.jsx)(s.a,{children:ie}),(0,b.jsx)(m.a,{size:L,value:Se,onChange:e=>we(`depth`,e.target.value),placeholder:G,decimalPlaces:T,min:E,max:D,disabled:M,invalid:j,"aria-label":V}),!!K&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,className:`text-center`,children:V})]}),!!ee&&(0,b.jsxs)(`div`,{className:r.cn(A===`vertical`?`w-full`:`w-32 pt-0`),children:[Ee,!!K&&!te&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,className:`mt-1 text-center`,children:H})]})]})})}ge.displayName=`DimensionsInput`;var _e={unitLabel:``,unitPlaceholder:``},ve=[{value:`g`,label:`g`},{value:`kg`,label:`kg`},{value:`lb`,label:`lb`},{value:`oz`,label:`oz`}];function ye({value:e,defaultValue:i,unit:a,defaultUnit:o=`g`,onChange:c,onUnitChange:l,decimalPlaces:u=2,min:f=0,max:h,showUnitSelector:g=!0,disableUnitSelector:_=!1,unitLabel:v,unitPlaceholder:x,unitWidth:S=`w-24`,strings:C,invalid:w,disabled:T=!1,size:E,className:D}){let{defaultControlSize:O}=n.s(),k=d.i(E,O),A=t.useStrings(_e,{...v===void 0?{}:{unitLabel:v},...x===void 0?{}:{unitPlaceholder:x},...C}),j=e!==void 0,M=a!==void 0,[N,P]=(0,y.useState)(i??``),[F,I]=(0,y.useState)(a??o),L=j?e??``:N,R=M?a??o:F,z=(0,y.useCallback)(e=>{j||P(e.target.value),c?.({target:{value:e.target.value}})},[j,c]),B=(0,y.useCallback)(e=>{if(e===null)return;let t=e;M||I(t),l?.(t)},[M,l]),V=(0,y.useMemo)(()=>ve,[]),H=A.unitLabel!==``;return(0,b.jsxs)(`div`,{className:r.cn(`weight-input--component`,`flex items-start gap-2`,D),children:[(0,b.jsx)(`div`,{className:`flex-1`,children:(0,b.jsx)(m.a,{size:k,value:L,onChange:z,decimalPlaces:u,allowNegative:!1,min:f,max:h,disabled:T,invalid:w})}),!!g&&(0,b.jsxs)(`div`,{className:`space-y-2`,children:[!!H&&(0,b.jsx)(s.a,{className:`leading-6`,children:A.unitLabel}),(0,b.jsxs)(p.t,{value:R,onValueChange:e=>B(e),disabled:T||_,children:[(0,b.jsx)(p.a,{"aria-invalid":w||void 0,className:r.cn(`border-input bg-transparent !shadow-none`,d.n[k],`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,(T||_)&&`opacity-50 cursor-not-allowed`,S),children:(0,b.jsx)(p.o,{placeholder:A.unitPlaceholder||void 0})}),(0,b.jsx)(p.n,{children:(0,b.jsx)(p.r,{children:V.map(e=>(0,b.jsx)(p.i,{value:e.value,children:e.label},e.value))})})]})]})]})}ye.displayName=`WeightInput`;var be={latLabel:``,lngLabel:``,latPlaceholder:``,lngPlaceholder:``,previewLinkLabel:``},xe=(e,t)=>{if(!e)return{lat:``,lng:``};if(t===`string`&&typeof e==`string`){let[t,n]=e.split(`,`).map(e=>e.trim());return{lat:t??``,lng:n??``}}return t===`object`&&typeof e==`object`?{lat:e.lat??``,lng:e.lng??``}:{lat:``,lng:``}},Se=(e,t,n)=>n===`string`?`${e},${t}`:{lat:e,lng:t},Ce=(e,t,n)=>{if(!e)return!1;let r=Number(e);return Number.isFinite(r)&&r>=t&&r<=n};function we({value:e,defaultValue:n,format:i=`object`,onChange:a,latLabel:o,lngLabel:c,latPlaceholder:l,lngPlaceholder:u,decimalPlaces:d=6,showPreviewLink:f=!0,previewLinkLabel:p,strings:h,invalid:g,className:_,disabled:v}){let x=t.useStrings(be,{...o===void 0?{}:{latLabel:o},...c===void 0?{}:{lngLabel:c},...l===void 0?{}:{latPlaceholder:l},...u===void 0?{}:{lngPlaceholder:u},...p===void 0?{}:{previewLinkLabel:p},...h}),S=e!==void 0,C=xe(S?e:n,i),[w,T]=(0,y.useState)(C.lat),[E,D]=(0,y.useState)(C.lng),O=xe(e,i),k=S?O.lat:w,A=S?O.lng:E;(0,y.useEffect)(()=>{S&&(T(O.lat),D(O.lng))},[S,O.lat,O.lng]);let j=(0,y.useCallback)((e,t)=>{S||(T(e),D(t)),a?.({target:{value:Se(e,t,i)}})},[S,a,i]),M=(0,y.useMemo)(()=>{let e=Ce(k,-90,90),t=Ce(A,-180,180);return!e||!t?null:`https://www.google.com/maps?q=${encodeURIComponent(`${k},${A}`)}`},[k,A]);return(0,b.jsxs)(`div`,{className:r.cn(`coordinates-input--component`,`space-y-3`,_),children:[(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,b.jsxs)(`div`,{className:`space-y-2`,children:[!!x.latLabel&&(0,b.jsx)(s.a,{children:x.latLabel}),(0,b.jsx)(m.a,{placeholder:x.latPlaceholder||void 0,value:k,onChange:e=>j(e.target.value,A),decimalPlaces:d,allowNegative:!0,min:-90,max:90,invalid:g,disabled:v})]}),(0,b.jsxs)(`div`,{className:`space-y-2`,children:[!!x.lngLabel&&(0,b.jsx)(s.a,{children:x.lngLabel}),(0,b.jsx)(m.a,{placeholder:x.lngPlaceholder||void 0,value:A,onChange:e=>j(k,e.target.value),decimalPlaces:d,allowNegative:!0,min:-180,max:180,invalid:g,disabled:v})]})]}),!!f&&!!M&&!!x.previewLinkLabel&&(0,b.jsx)(s.i,{href:M,type:`secondary`,underline:!1,children:x.previewLinkLabel})]})}we.displayName=`CoordinatesInput`;function Te({value:e,onChange:t,placeholder:n,readableFormat:r=`dd-MM-yyyy HH:mm`,stepMinutes:i=30,modal:a=!0,invalid:o,disabled:s}){let c=e?new Date(e):void 0;return(0,b.jsx)(_.t,{className:`date-time-input--component`,mode:`single`,disabled:s,error:o?` `:void 0,placeholder:n,value:c,onChange:(0,y.useCallback)(e=>{t?.(e.date?e.date.toISOString():void 0)},[t]),readableFormat:r,withTime:{enabled:!0,format:`24`,step:i},modal:a})}Te.displayName=`DateTimeInput`;var Ee={placeholder:`Select time`,dialogTitle:`Select Time`,hours:`Hours`,minutes:`Minutes`,seconds:`Seconds`,now:`Now`,done:`Done`,hoursPlaceholder:`HH`,minutesPlaceholder:`MM`,secondsPlaceholder:`SS`,am:`AM`,pm:`PM`},Y=e=>String(e).padStart(2,`0`),X=e=>{let t=e.trim();if(t===``)return null;let n=Number.parseInt(t,10);return Number.isFinite(n)?n:null},Z=(e,t,n)=>Math.min(Math.max(e,t),n),De=e=>(e??``).replace(/\D/g,``).slice(0,2),Oe=(e,t)=>{if(!Number.isFinite(t)||t<=0||t===1)return e;let n=e%t,r=n>=Math.max(1,Math.floor(t*.8)),i=e-n,a=r?i+t:i;return a>=60?0:a};function ke({className:e,value:n=`00:00:00`,onChange:a,invalid:c,disabled:u,placeholder:d,dialogTitle:f,hoursLabel:p,minutesLabel:m,secondsLabel:h,nowLabel:g,doneLabel:S,format:C=`24`,minuteStep:w=5,showSeconds:T=!0,strings:E}){let D=(0,y.useId)(),O=t.useStrings(Ee,{...d===void 0?{}:{placeholder:d},...f===void 0?{}:{dialogTitle:f},...p===void 0?{}:{hours:p},...m===void 0?{}:{minutes:m},...h===void 0?{}:{seconds:h},...g===void 0?{}:{now:g},...S===void 0?{}:{done:S},...E??{}}),k=(0,y.useCallback)((e,t)=>{let n=X(e??``)??0;return C===`12`?{hours:Y(n>12?12:Z(n===0?12:n,1,12)),meridiem:t}:{hours:Y(n>24?24:Z(n,0,24)),meridiem:t}},[C]),A=(0,y.useCallback)(e=>{let t=X(e??``)??0;return t>59&&(t=0),t=Oe(Z(t,0,59),w),Y(t)},[w]),j=(0,y.useCallback)(e=>{let t=X(e??``)??0;return t>59&&(t=0),t=Z(t,0,59),Y(t)},[]),M=(0,y.useCallback)((e,t,n,r)=>{let i=X(e)??0,a=X(t)??0;a>59&&(a=0),a=Oe(Z(a,0,59),w);let o=T?X(n)??0:0;if(o>59&&(o=0),o=T?Z(o,0,59):0,C===`12`){let e=i>12?12:Z(i===0?12:i,1,12);return`${Y(r===`AM`?e===12?0:e:e===12?12:e+12)}:${Y(a)}:${Y(o)}`}return`${Y(i>24?24:Z(i,0,24))}:${Y(a)}:${Y(o)}`},[C,w,T]),N=(0,y.useCallback)(e=>{let[t=`00`,n=`00`,r=`00`]=(e??``).split(`:`),i=T?r:`00`;return{hours:De(t),minutes:De(n),seconds:De(i)}},[T]),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(()=>N(n)),[R,z]=(0,y.useState)(()=>{let[e=`00`]=(n??``).split(`:`);return(X(e)??0)>=12?`PM`:`AM`}),B=(0,y.useRef)({});(0,y.useEffect)(()=>{if(P)return;L(N(n));let[e=`00`]=(n??``).split(`:`);z((X(e)??0)>=12?`PM`:`AM`)},[P,N,n]);let V=(e,t)=>{let n=De(t);L(t=>({...t,[e]:n})),B.current[e]&&window.clearTimeout(B.current[e]),B.current[e]=window.setTimeout(()=>{L(t=>{let n={...t};if(e===`hours`){let e=(n.hours??``).trim();e.length===1&&(n.hours=`0${e}`),(n.hours??``).trim().length===2&&(n.hours=k(n.hours,R).hours)}if(e===`minutes`){let e=(n.minutes??``).trim();e.length===1&&(n.minutes=`0${e}`),(n.minutes??``).trim().length===2&&(n.minutes=A(n.minutes))}if(e===`seconds`){let e=(n.seconds??``).trim();e.length===1&&(n.seconds=`0${e}`),(n.seconds??``).trim().length===2&&(n.seconds=j(n.seconds))}let r=M(n.hours,n.minutes,n.seconds,R);a?.(r);let[i=`00`,o=`00`,s=`00`]=r.split(`:`);return C===`12`?n.hours=Y((X(i)??0)%12||12):n.hours=i,n.minutes=o,n.seconds=s,n})},400)},H=e=>{B.current[e]&&window.clearTimeout(B.current[e]),L(e=>{let t={...e};t.hours=k(t.hours,R).hours,t.minutes=A(t.minutes),t.seconds=j(t.seconds);let n=M(t.hours,t.minutes,t.seconds,R);a?.(n);let[r=`00`,i=`00`,o=`00`]=n.split(`:`);return{hours:C===`12`?De(String((X(r)??0)%12||12)):r,minutes:i,seconds:o}})},U=(0,y.useMemo)(()=>{let e=M(I.hours,I.minutes,I.seconds,R);if(!T){let[t=`00`,n=`00`]=e.split(`:`);return`${t}:${n}`}return e},[R,M,T,I.hours,I.minutes,I.seconds]);return(0,b.jsxs)(v.n,{open:P,onOpenChange:F,children:[(0,b.jsx)(v.s,{render:t=>(0,b.jsx)(i.t,{...t,id:D,variant:`secondary`,buttonStyle:`outline`,"aria-expanded":P,"aria-invalid":c,disabled:u,className:r.cn(`time-picker--component`,_.n,`w-full justify-between text-left`,!n&&`!text-muted-foreground`,t.className,e),children:t.children}),children:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(x.Clock,{className:`h-4 w-4`}),(0,b.jsx)(`span`,{children:U||O.placeholder})]})}),(0,b.jsx)(v.t,{className:`w-auto p-4`,align:`start`,children:(0,b.jsxs)(`div`,{className:`space-y-4`,children:[(0,b.jsx)(o.n,{tag:`div`,weight:`medium`,align:`center`,children:O.dialogTitle}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(`div`,{className:`text-center`,children:[(0,b.jsx)(s.a,{size:`xs`,className:`text-muted-foreground`,children:O.hours}),(0,b.jsx)(l.t,{inputMode:`numeric`,value:I.hours,onChange:e=>V(`hours`,e.target.value),onFocus:e=>e.currentTarget.select(),onClick:e=>e.currentTarget.select(),onBlur:()=>H(`hours`),placeholder:O.hoursPlaceholder,className:`w-16 text-center`})]}),(0,b.jsx)(o.n,{tag:`div`,className:`text-2xl`,children:`:`}),(0,b.jsxs)(`div`,{className:`text-center`,children:[(0,b.jsx)(s.a,{size:`xs`,className:`text-muted-foreground`,children:O.minutes}),(0,b.jsx)(l.t,{inputMode:`numeric`,value:I.minutes,onChange:e=>V(`minutes`,e.target.value),onFocus:e=>e.currentTarget.select(),onClick:e=>e.currentTarget.select(),onBlur:()=>H(`minutes`),placeholder:O.minutesPlaceholder,className:`w-16 text-center`})]}),!!T&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.n,{tag:`div`,className:`text-2xl`,children:`:`}),(0,b.jsxs)(`div`,{className:`text-center`,children:[(0,b.jsx)(s.a,{size:`xs`,className:`text-muted-foreground`,children:O.seconds}),(0,b.jsx)(l.t,{inputMode:`numeric`,value:I.seconds,onChange:e=>V(`seconds`,e.target.value),onFocus:e=>e.currentTarget.select(),onClick:e=>e.currentTarget.select(),onBlur:()=>H(`seconds`),placeholder:O.secondsPlaceholder,className:`w-16 text-center`})]})]}),C===`12`&&(0,b.jsxs)(`div`,{className:`flex items-end gap-1 pb-0.5`,children:[(0,b.jsx)(i.t,{type:`button`,variant:R===`AM`?`primary`:`secondary`,buttonStyle:R===`AM`?`solid`:`outline`,onClick:()=>z(`AM`),children:O.am}),(0,b.jsx)(i.t,{type:`button`,variant:R===`PM`?`primary`:`secondary`,buttonStyle:R===`PM`?`solid`:`outline`,onClick:()=>z(`PM`),children:O.pm})]})]}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(i.t,{variant:`secondary`,buttonStyle:`outline`,className:`flex-1`,onClick:()=>{let e=new Date,t={hours:String(C===`12`?e.getHours()%12||12:e.getHours()),minutes:String(e.getMinutes()),seconds:``};L(t),z(e.getHours()>=12?`PM`:`AM`),a?.(M(t.hours,t.minutes,t.seconds,e.getHours()>=12?`PM`:`AM`))},children:O.now}),(0,b.jsx)(i.t,{variant:`primary`,buttonStyle:`solid`,className:`flex-1`,onClick:()=>{a?.(M(I.hours,I.minutes,I.seconds,R)),F(!1)},children:O.done})]})]})})]})}ke.displayName=`TimePicker`;var Ae=e=>{if(e===0)return`0 Bytes`;let t=1024,n=[`Bytes`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t));return`${(e/t**r).toFixed(2)} ${n[r]}`},je=0,Me=()=>`${Date.now().toString(36)}-${(je++).toString(36)}`,Ne=e=>{let[t,n]=(0,y.useState)([]),[r,i]=(0,y.useState)({}),a=(0,y.useCallback)(Ae,[]),o=(0,y.useCallback)(t=>{if(e?.minSize!==void 0&&t.size<e.minSize)return`Size (${Ae(t.size)}) is smaller than minimum (${Ae(e.minSize)}).`;if(e?.maxSize!==void 0&&t.size>e.maxSize)return`Size (${Ae(t.size)}) exceeds maximum (${Ae(e.maxSize)}).`;let n=t.name.split(`.`).pop()?.toLowerCase()||``;if(e?.allowedExtensions&&!e.allowedExtensions.map(e=>e.toLowerCase()).includes(n))return`Extension (.${n}) is not allowed.`;if(e?.customValidator){let n=e.customValidator(t);if(n!==!0)return typeof n==`string`?n:`Custom validation failed.`}return null},[e]),s=(0,y.useCallback)((t,r=!1)=>{let a=Array.isArray(t)?t:Array.from(t),s={};n(t=>{let n=r?[]:[...t];return a.forEach(t=>{let r=t.name.split(`.`).pop()?.toLowerCase()||``;if(n.some(e=>e.name===t.name&&e.size===t.size&&e.extension===r))return;let i=o(t);if(i){s[t.name]=i;return}if(e?.maxFiles!==void 0&&n.length+1>e.maxFiles){s[t.name]=`Cannot exceed max files limit of ${e.maxFiles}.`;return}let a={id:Me(),file:t,name:t.name,size:t.size,formattedSize:Ae(t.size),type:t.type,extension:r,lastModified:t.lastModified};n.push(a)}),n}),i(s)},[e?.maxFiles,o]);return{files:t,addFiles:(0,y.useCallback)(e=>s(e,!1),[s]),setFiles:(0,y.useCallback)(e=>s(e,!0),[s]),remove:(0,y.useCallback)(e=>{n(t=>t.filter(t=>t.id!==e))},[]),removeAll:(0,y.useCallback)(()=>{n(e=>e.length===0?e:[]),i({})},[]),formatSize:a,validationErrors:r}},Pe={instruction:`Drag a file here or click to browse`,helper:``,browse:`Browse files`,remove:`Remove`};function Fe({accept:e,multiple:n=!1,value:a,onChange:s,onChangeFiles:c,disabled:l,invalid:u,instructionText:d,browseButtonText:f,removeButtonText:p,helperText:m,strings:h},g){let _=t.useStrings(Pe,{...d===void 0?{}:{instruction:d},...m===void 0?{}:{helper:m},...f===void 0?{}:{browse:f},...p===void 0?{}:{remove:p},...h}),{files:v,setFiles:S,remove:C,removeAll:w,validationErrors:T}=Ne({maxFiles:n?void 0:1}),E=(0,y.useRef)(null),[D,O]=(0,y.useState)(!1);(0,y.useEffect)(()=>{if(n){Array.isArray(a)&&a.length>0?S(a):a||w();return}a instanceof File?S([a]):a||w()},[a,n]);let k=v[0],A=k?.name??(a instanceof File?a.name:``),j=k?.formattedSize??(a instanceof File?`${Math.round(a.size/1024*100)/100} KB`:``),M=n&&v.length>0,N=!n&&A.length>0,P=(0,y.useCallback)(()=>{l||E.current?.click()},[l]),F=(0,y.useCallback)(e=>{if(!e||e.length===0){w(),n?c?.([]):s?.(void 0);return}let t=Array.from(e);S(e),n?c?.(t):s?.(t[0])},[n,s,c,w,S]),I=(0,y.useCallback)(e=>{let t=e.target.files;if(!t||t.length===0){E.current&&(E.current.value=``);return}F(t),E.current&&(E.current.value=``)},[F]),L=(0,y.useCallback)(()=>{k&&C(k.id),E.current&&(E.current.value=``),s?.(void 0)},[s,C,k]),R=(0,y.useCallback)(e=>{let t=v.filter(t=>t.id!==e).map(e=>e.file);C(e),c?.(t),E.current&&(E.current.value=``)},[v,c,C]),z=(0,y.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),B=(0,y.useCallback)(e=>{z(e),l||O(!0)},[l,z]),V=(0,y.useCallback)(e=>{z(e),O(!1)},[z]),H=(0,y.useCallback)(e=>{if(z(e),O(!1),l)return;let t=e.dataTransfer?.files;!t||t.length===0||(F(t),E.current&&(E.current.value=``))},[l,F,z]),U=(0,y.useMemo)(()=>r.cn(`relative flex min-h-[180px] flex-col items-center justify-center gap-4 rounded-xl border border-dashed px-6 py-10 text-center transition-colors duration-150`,u?`border-destructive`:`border-muted-foreground/60`,`bg-muted/40`,`hover:border-primary hover:bg-primary/5 hover:text-primary`,l?`cursor-not-allowed opacity-50 hover:border-muted-foreground/60 hover:bg-muted/40 hover:text-muted-foreground`:``,!l&&D?`border-primary bg-primary/10 text-primary`:``),[l,D,u]);return(0,b.jsxs)(`div`,{className:r.cn(`file-upload--component`,`space-y-3`),children:[(0,b.jsxs)(`div`,{role:`button`,tabIndex:l?-1:0,className:U,onClick:e=>{e.defaultPrevented||P()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),P())},onDragEnter:B,onDragOver:B,onDragLeave:V,onDrop:H,"aria-disabled":l,"aria-invalid":u||void 0,children:[(0,b.jsx)(`input`,{ref:e=>{E.current=e,typeof g==`function`?g(e):g&&(g.current=e)},type:`file`,className:`hidden`,accept:e,multiple:n,onChange:I,onClick:e=>{e.stopPropagation()},disabled:l}),(0,b.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-primary/10 text-primary`,children:(0,b.jsx)(x.UploadIcon,{className:`h-6 w-6`,"aria-hidden":`true`})}),(0,b.jsxs)(`div`,{className:`space-y-1`,children:[(0,b.jsx)(o.n,{weight:`medium`,children:_.instruction}),!!_.helper&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:_.helper})]}),(0,b.jsx)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,onClick:e=>{e.preventDefault(),e.stopPropagation(),P()},disabled:l,children:_.browse})]}),!!M&&(0,b.jsx)(`div`,{className:`space-y-2`,children:v.map(e=>(0,b.jsxs)(`div`,{className:`flex items-center gap-3 border rounded-md p-3 bg-card`,children:[(0,b.jsx)(`div`,{className:`shrink-0 h-10 w-10 rounded bg-muted flex items-center justify-center`,children:(0,b.jsx)(x.File,{className:`h-5 w-5 text-muted-foreground`})}),(0,b.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,b.jsx)(o.n,{tag:`div`,weight:`medium`,className:`truncate`,title:e.name,children:e.name}),(0,b.jsx)(o.n,{tag:`div`,size:`xs`,type:`secondary`,children:e.formattedSize})]}),(0,b.jsx)(i.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`xs`,icon:x.Trash2Icon,onClick:()=>R(e.id),children:_.remove})]},e.id))}),!!N&&(0,b.jsxs)(`div`,{className:`flex items-center gap-3 border rounded-md p-3 bg-card`,children:[(0,b.jsx)(`div`,{className:`shrink-0 h-10 w-10 rounded bg-muted flex items-center justify-center`,children:(0,b.jsx)(x.File,{className:`h-5 w-5 text-muted-foreground`})}),(0,b.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,b.jsx)(o.n,{tag:`div`,weight:`medium`,className:`truncate`,title:A,children:A}),(0,b.jsx)(o.n,{tag:`div`,size:`xs`,type:`secondary`,children:j})]}),(0,b.jsx)(i.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`xs`,icon:x.Trash2Icon,onClick:L,children:_.remove})]}),Object.keys(T).length>0&&(0,b.jsx)(`ul`,{className:`space-y-1.5`,children:Object.entries(T).map(([e,t])=>(0,b.jsxs)(`li`,{role:`alert`,className:`flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2`,children:[(0,b.jsx)(`span`,{"aria-hidden":`true`,className:`mt-0.5 inline-flex size-4 shrink-0 items-center justify-center rounded-full bg-destructive/15 text-destructive`,children:(0,b.jsx)(`span`,{className:`size-1.5 rounded-full bg-destructive`})}),(0,b.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,b.jsx)(o.n,{size:`xs`,weight:`medium`,className:`truncate text-destructive`,children:e}),(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,className:`text-destructive/80`,children:t})]})]},e))})]})}var Ie=y.default.forwardRef(Fe);Ie.displayName=`FileUpload`;var Le=2,Re={square:`aspect-square`,standard:`aspect-[4/3]`,widescreen:`aspect-[16/9]`,portrait:`aspect-[9/16]`},ze={select:`Select image`,change:`Change image`,remove:`Remove`,noSelection:`No file selected yet.`,keepCurrent:`Current image stays until you upload a new one.`,supportsTemplate:`Supports {ext} files up to {size} MB.`,moreFiles:e=>`+ ${e} more file${e===1?``:`s`}`};function Be({accept:e=`.png,.jpg,.jpeg,.gif,.svg`,multiple:n=!1,value:a,onChange:s,disabled:c,defaultPreviewUrl:l,aspectRatio:u=`square`,fit:d=`cover`,maxWidth:f,layout:p=`stacked`,invalid:m,selectButtonText:h,changeButtonText:g,removeButtonText:_,strings:v},S){let C=t.useStrings(ze,{...h===void 0?{}:{select:h},...g===void 0?{}:{change:g},..._===void 0?{}:{remove:_},...v}),w=(0,y.useId)(),T=(0,y.useRef)(null),E=(0,y.useMemo)(()=>{if(!e)return[`png`,`jpg`,`jpeg`,`gif`,`svg`];let t=e.split(`,`).map(e=>e.trim()).map(e=>{if(!e)return null;if(e.startsWith(`.`))return e.slice(1).toLowerCase();if(e.includes(`/`)){let t=e.split(`/`)[1]??``;return t===`*`||t.length===0?null:t.replace(/\+.*/,``).toLowerCase()}return e.toLowerCase()}).filter(e=>!!e);if(t.length!==0)return Array.from(new Set(t))},[e]),{files:D,setFiles:O,remove:k,removeAll:A,validationErrors:j}=Ne((0,y.useMemo)(()=>({maxFiles:n?void 0:1,allowedExtensions:E}),[n,E]));(0,y.useEffect)(()=>{a?O([a]):(A(),T.current&&(T.current.value=``))},[a,O,A]);let M=D[0],N=M?C.change:C.select,[P,F]=(0,y.useState)(void 0),I=(0,y.useMemo)(()=>!E||E.length===0?null:E.map(e=>e.toUpperCase()).join(`, `),[E]);(0,y.useEffect)(()=>{let e=M?.file??a;if(!e){F(void 0);return}let t=URL.createObjectURL(e);return F(t),()=>URL.revokeObjectURL(t)},[M,a]);let L=P??l,R=!!L,z=Re[u]??Re.square,B=d===`contain`?`object-contain p-3`:`object-cover`,V=f?typeof f==`number`?`${f}px`:f:`240px`,H=p===`inline`?void 0:{maxWidth:V},U=p===`inline`?{maxWidth:f?V:`185px`,width:`100%`}:void 0,W=(0,y.useCallback)(e=>{let t=e.target.files;if(!t||t.length===0){A(),s?.(void 0),T.current&&(T.current.value=``);return}O(t),s?.(t[0])},[A,O,s]),G=(0,y.useCallback)(()=>{c||T.current?.click()},[c]),K=(0,y.useCallback)(()=>{M&&k(M.id),s?.(void 0),T.current&&(T.current.value=``)},[M,k,s]);return(0,b.jsxs)(`div`,{className:r.cn(`image-upload--component`,`space-y-3`),style:H,children:[(0,b.jsx)(`input`,{ref:e=>{T.current=e,typeof S==`function`?S(e):S&&(S.current=e)},id:w,type:`file`,className:`sr-only`,accept:e,multiple:n,disabled:c,onChange:W}),(0,b.jsxs)(`div`,{className:r.cn(p===`inline`?`flex items-start gap-4`:`space-y-3`),children:[(0,b.jsx)(`div`,{className:r.cn(`relative overflow-hidden rounded-md border transition-colors`,p===`inline`?`flex-shrink-0 w-full`:`w-full`,z,R?`border-border bg-muted/20`:r.cn(`border-dashed bg-background text-muted-foreground dark:bg-foreground`,m?`border-destructive`:`border-muted-foreground/60`)),style:U,children:R&&L?(0,b.jsx)(`img`,{src:L,alt:M?.name||`Selected image`,className:r.cn(`absolute inset-0 h-full w-full`,B)}):(0,b.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,b.jsx)(x.ImageIcon,{"aria-hidden":!0,className:`h-8 w-8`})})}),(0,b.jsxs)(`div`,{className:r.cn(`space-y-2`,p===`inline`&&`flex-1 min-w-0`),children:[(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,b.jsx)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,onClick:G,disabled:c,children:N}),!M&&!!R&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:C.keepCurrent})]}),!!I&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:C.supportsTemplate.replace(`{ext}`,I).replace(`{size}`,String(Le))}),!!M&&(0,b.jsxs)(`div`,{className:`space-y-1`,children:[(0,b.jsx)(o.n,{weight:`medium`,title:M.name,className:`truncate`,children:M.name}),(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:M.formattedSize}),!!n&&D.length>1&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:C.moreFiles(D.length-1)}),(0,b.jsx)(i.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`xs`,icon:x.Trash2,onClick:K,children:C.remove})]}),!M&&!R&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:C.noSelection})]})]}),Object.keys(j).length>0&&(0,b.jsx)(`div`,{className:`space-y-1`,children:Object.entries(j).map(([e,t])=>(0,b.jsxs)(o.n,{size:`xs`,type:`error`,children:[e,`: `,t]},e))})]})}var Ve=y.default.forwardRef(Be);Ve.displayName=`ImageUpload`;var He={instruction:`Drag files here or click to browse`,helper:``,dragOver:`Release to upload`},Ue={compact:{padding:`px-4 py-4`,minH:`min-h-[112px]`,iconBox:`h-9 w-9`,iconSize:`size-4`},base:{padding:`px-6 py-8`,minH:`min-h-[180px]`,iconBox:`h-12 w-12`,iconSize:`size-6`},lg:{padding:`px-8 py-12`,minH:`min-h-[260px]`,iconBox:`h-14 w-14`,iconSize:`size-7`}};function We({onDrop:e,accept:n,multiple:i=!1,disabled:a=!1,invalid:s=!1,size:c=`base`,icon:l,className:u,children:d,strings:f},p){let m=t.useStrings(He,f),h=(0,y.useRef)(null),[g,_]=(0,y.useState)(!1),v=Ue[c],S=(0,y.useCallback)(()=>{a||h.current?.click()},[a]),C=(0,y.useCallback)(t=>{let n=t.target.files;!n||n.length===0||(e(Array.from(n)),h.current&&(h.current.value=``))},[e]),w=(0,y.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),a||_(!0)},[a]),T=(0,y.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),_(!1)},[]),E=(0,y.useCallback)(t=>{if(t.preventDefault(),t.stopPropagation(),_(!1),a)return;let n=t.dataTransfer?.files;!n||n.length===0||e(Array.from(n))},[a,e]);return(0,b.jsxs)(`div`,{role:`button`,tabIndex:a?-1:0,"aria-disabled":a||void 0,"aria-invalid":s||void 0,onClick:e=>{e.defaultPrevented||S()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),S())},onDragEnter:w,onDragOver:w,onDragLeave:T,onDrop:E,className:r.cn(`dropzone--component`,`relative flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed text-center transition-colors duration-150`,v.minH,v.padding,s?`border-destructive`:`border-muted-foreground/40`,`bg-muted/30 hover:border-primary hover:bg-primary/5 hover:text-primary`,a&&`cursor-not-allowed opacity-50 hover:border-muted-foreground/40 hover:bg-muted/30 hover:text-muted-foreground`,!a&&g&&`border-primary bg-primary/10 text-primary`,u),children:[(0,b.jsx)(`input`,{ref:e=>{h.current=e,typeof p==`function`?p(e):p&&(p.current=e)},type:`file`,className:`hidden`,accept:n,multiple:i,disabled:a,onChange:C,onClick:e=>e.stopPropagation()}),(0,b.jsx)(`span`,{className:r.cn(`inline-flex items-center justify-center rounded-full bg-primary/10 text-primary`,v.iconBox),"aria-hidden":`true`,children:l??(0,b.jsx)(x.UploadCloud,{className:v.iconSize})}),(0,b.jsxs)(`div`,{className:`space-y-1`,children:[(0,b.jsx)(o.n,{size:c===`compact`?`xs`:`sm`,weight:`medium`,children:g?m.dragOver:m.instruction}),!!m.helper&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:m.helper})]}),!!d&&(0,b.jsx)(`div`,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:d})]})}var Ge=y.forwardRef(We);Ge.displayName=`Dropzone`;var Ke={change:`Change photo`,remove:`Remove photo`,hint:`Click or drop an image`,dragOver:`Drop image to upload`},qe={sm:{box:`size-16`,icon:`size-4`,remove:`size-5`},base:{box:`size-24`,icon:`size-5`,remove:`size-6`},lg:{box:`size-32`,icon:`size-6`,remove:`size-7`}};function Je({value:e,onChange:n,defaultPreviewUrl:i,accept:a=`.png,.jpg,.jpeg,.gif,.webp`,disabled:s=!1,invalid:c=!1,size:l=`base`,className:u,strings:d,initials:f},p){let m=t.useStrings(Ke,d),h=(0,y.useId)(),g=(0,y.useRef)(null),[_,v]=(0,y.useState)(!1),S=qe[l],{files:C,setFiles:w,removeAll:T}=Ne({maxFiles:1,allowedExtensions:(0,y.useMemo)(()=>a.split(`,`).map(e=>e.trim().replace(/^\./,``).toLowerCase()).filter(Boolean),[a])});(0,y.useEffect)(()=>{e?w([e]):T()},[e]);let E=C[0],[D,O]=(0,y.useState)(void 0);(0,y.useEffect)(()=>{let t=E?.file??e;if(!t){O(void 0);return}let n=URL.createObjectURL(t);return O(n),()=>URL.revokeObjectURL(n)},[E,e]);let k=D??i,A=!!k,j=(0,y.useCallback)(e=>{let t=e.target.files;!t||t.length===0||(w(t),n?.(t[0]),g.current&&(g.current.value=``))},[n,w]),M=(0,y.useCallback)(()=>{s||g.current?.click()},[s]),N=(0,y.useCallback)(()=>{T(),n?.(void 0),g.current&&(g.current.value=``)},[n,T]),P=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),M())},F=(0,y.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s||v(!0)},[s]),I=(0,y.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),v(!1)},[]),L=(0,y.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),v(!1),s)return;let t=e.dataTransfer?.files;!t||t.length===0||(w(t),n?.(t[0]))},[s,n,w]);return(0,b.jsxs)(`div`,{className:r.cn(`avatar-upload--component`,`inline-flex flex-col items-center gap-2`,u),children:[(0,b.jsxs)(`div`,{role:`button`,tabIndex:s?-1:0,"aria-label":m.change,"aria-disabled":s||void 0,"aria-invalid":c||void 0,onClick:M,onKeyDown:P,onDragEnter:F,onDragOver:F,onDragLeave:I,onDrop:L,className:r.cn(`group relative flex shrink-0 items-center justify-center overflow-hidden rounded-full`,`border border-dashed transition-colors duration-150 outline-none`,`focus-visible:ring-2 focus-visible:ring-ring/50`,A?`border-border/60 bg-muted/20`:r.cn(`bg-muted/30 hover:border-primary hover:bg-primary/5`,c?`border-destructive`:`border-muted-foreground/40`),s&&`cursor-not-allowed opacity-50`,!s&&_&&`border-primary bg-primary/10`,S.box),children:[(0,b.jsx)(`input`,{id:h,ref:e=>{g.current=e,typeof p==`function`?p(e):p&&(p.current=e)},type:`file`,className:`sr-only`,"aria-label":m.change,accept:a,disabled:s,onChange:j}),A&&k?(0,b.jsx)(`img`,{src:k,alt:m.change,className:`absolute inset-0 size-full object-cover`}):f?(0,b.jsx)(o.n,{size:l===`lg`?`lg`:`base`,weight:`bold`,className:`leading-none`,children:f}):(0,b.jsx)(x.Camera,{className:r.cn(S.icon,`text-muted-foreground`),"aria-hidden":`true`}),!s&&A&&(0,b.jsx)(`div`,{className:`pointer-events-none absolute inset-0 hidden items-center justify-center bg-foreground/50 text-background backdrop-blur-[1px] group-hover:flex`,"aria-hidden":`true`,children:(0,b.jsx)(x.Camera,{className:S.icon})}),!s&&A&&(0,b.jsx)(`button`,{type:`button`,"aria-label":m.remove,onClick:e=>{e.stopPropagation(),N()},className:r.cn(`absolute right-0.5 top-0.5 inline-flex items-center justify-center rounded-full bg-card text-foreground shadow ring-1 ring-border`,`opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,S.remove),children:(0,b.jsx)(x.X,{className:`size-3`})}),!s&&!A&&_&&(0,b.jsx)(o.n,{size:`xxs`,weight:`medium`,className:`absolute inset-x-0 bottom-1.5 text-center text-primary`,children:m.dragOver})]}),!A&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:m.hint})]})}var Ye=y.forwardRef(Je);Ye.displayName=`AvatarUpload`;var Xe={addInstruction:`Drop or click to add images`,helper:``,dragOver:`Release to upload`,cover:`Cover`,removeAria:`Remove image`,maxReached:`You have reached the maximum number of images.`},Ze=0,Qe=()=>`media-${Date.now().toString(36)}-${(Ze++).toString(36)}`;function $e({item:e,isFirst:t,disabled:n,onRemove:i,strings:a,tileClassName:o}){let{attributes:s,listeners:c,setNodeRef:l,transform:u,transition:d,isDragging:f}=(0,E.useSortable)({id:e.id,disabled:n});return(0,b.jsxs)(`div`,{ref:l,style:{transform:D.CSS.Transform.toString(u),transition:d},className:r.cn(`media-gallery--component`,`group relative aspect-square overflow-hidden rounded-lg border border-border/60 bg-muted/30`,`cursor-grab active:cursor-grabbing`,f&&`z-10 shadow-lg ring-2 ring-primary/40`,n&&`pointer-events-none opacity-50`,o),...s,...c,children:[(0,b.jsx)(`img`,{src:e.previewUrl,alt:e.file.name,className:`absolute inset-0 size-full object-cover`,draggable:!1}),t&&(0,b.jsx)(`span`,{className:`absolute left-1.5 top-1.5 rounded-full bg-card/90 px-1.5 py-0.5 text-xxs font-semibold text-foreground shadow ring-1 ring-border`,children:a.cover}),(0,b.jsx)(`button`,{type:`button`,"aria-label":a.removeAria,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),i()},className:r.cn(`absolute right-1.5 top-1.5 inline-flex size-6 items-center justify-center rounded-full bg-card text-foreground shadow ring-1 ring-border`,`opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`),children:(0,b.jsx)(x.X,{className:`size-3.5`})})]})}function et({value:e,onChange:n,accept:i=`.png,.jpg,.jpeg,.gif,.webp`,maxFiles:a,disabled:s=!1,invalid:c=!1,className:l,tileClassName:u,strings:d}){let f=t.useStrings(Xe,d),p=(0,y.useId)(),m=(0,y.useRef)(null),[h,g]=(0,y.useState)([]),[_,v]=(0,y.useState)(!1),S=(0,T.useSensors)((0,T.useSensor)(T.PointerSensor,{activationConstraint:{distance:6}})),C=(0,y.useRef)([]);C.current=h,(0,y.useEffect)(()=>{e&&g(t=>t.length===e.length&&t.every((t,n)=>t.file===e[n])?t:(t.forEach(e=>URL.revokeObjectURL(e.previewUrl)),e.map(e=>({id:Qe(),file:e,previewUrl:URL.createObjectURL(e)}))))},[e]),(0,y.useEffect)(()=>()=>{C.current.forEach(e=>URL.revokeObjectURL(e.previewUrl))},[]);let w=(0,y.useCallback)(e=>{n?.(e.map(e=>e.file))},[n]),D=(0,y.useCallback)(e=>{s||g(t=>{let n=a===void 0?e.length:Math.max(0,a-t.length),r=e.slice(0,n).map(e=>({id:Qe(),file:e,previewUrl:URL.createObjectURL(e)})),i=[...t,...r];return w(i),i})},[s,w,a]),O=(0,y.useCallback)(e=>{g(t=>{let n=t.find(t=>t.id===e);n&&URL.revokeObjectURL(n.previewUrl);let r=t.filter(t=>t.id!==e);return w(r),r})},[w]),k=(0,y.useCallback)(e=>{let t=e.target.files;!t||t.length===0||(D(Array.from(t)),m.current&&(m.current.value=``))},[D]),A=(0,y.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s||v(!0)},[s]),j=(0,y.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),v(!1)},[]),M=(0,y.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),v(!1),s)return;let t=e.dataTransfer?.files;!t||t.length===0||D(Array.from(t))},[D,s]),N=(0,y.useCallback)(e=>{let{active:t,over:n}=e;!n||t.id===n.id||g(e=>{let r=e.findIndex(e=>e.id===t.id),i=e.findIndex(e=>e.id===n.id);if(r===-1||i===-1)return e;let a=[...e],[o]=a.splice(r,1);return a.splice(i,0,o),w(a),a})},[w]),P=(0,y.useMemo)(()=>h.map(e=>e.id),[h]),F=a!==void 0&&h.length>=a;return(0,b.jsxs)(`div`,{className:r.cn(`space-y-3`,l),children:[(0,b.jsx)(T.DndContext,{sensors:S,onDragEnd:N,children:(0,b.jsx)(E.SortableContext,{items:P,strategy:E.rectSortingStrategy,children:(0,b.jsxs)(`div`,{className:r.cn(`grid grid-cols-2 gap-2`,`sm:grid-cols-3 md:grid-cols-4`),children:[h.map((e,t)=>(0,b.jsx)($e,{item:e,isFirst:t===0,disabled:s,onRemove:()=>O(e.id),strings:f,tileClassName:u},e.id)),!F&&(0,b.jsxs)(`div`,{role:`button`,tabIndex:s?-1:0,"aria-disabled":s||void 0,"aria-invalid":c||void 0,onClick:()=>!s&&m.current?.click(),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),m.current?.click())},onDragEnter:A,onDragOver:A,onDragLeave:j,onDrop:M,className:r.cn(`flex aspect-square items-center justify-center rounded-lg border border-dashed text-center outline-none transition-colors`,`hover:border-primary hover:bg-primary/5 hover:text-primary focus-visible:ring-2 focus-visible:ring-ring/50`,c?`border-destructive`:`border-muted-foreground/40`,s&&`cursor-not-allowed opacity-50`,!s&&_&&`border-primary bg-primary/10 text-primary`),children:[(0,b.jsx)(`input`,{id:p,ref:m,type:`file`,className:`sr-only`,accept:i,multiple:!0,disabled:s,onChange:k}),(0,b.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-2`,children:[(0,b.jsx)(x.ImagePlus,{className:`size-5 text-muted-foreground`,"aria-hidden":`true`}),(0,b.jsx)(o.n,{size:`xs`,weight:`medium`,children:_?f.dragOver:f.addInstruction})]})]})]})})}),!!F&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:f.maxReached}),!F&&!!f.helper&&(0,b.jsx)(o.n,{size:`xs`,type:`secondary`,children:f.helper})]})}et.displayName=`MediaGallery`;var tt={queued:`Queued`,uploading:`Uploading`,done:`Uploaded`,error:`Failed`,cancelled:`Cancelled`,cancel:`Cancel`,retry:`Retry`,remove:`Remove`},nt={queued:{icon:x.Clock,bg:`bg-muted`,fg:`text-muted-foreground`,bar:`bg-muted-foreground/30`},uploading:{icon:x.UploadCloud,bg:`bg-primary/15`,fg:`text-primary`,bar:`bg-primary`},done:{icon:x.Check,bg:`bg-success/15`,fg:`text-success`,bar:`bg-success`},error:{icon:x.AlertCircle,bg:`bg-destructive/15`,fg:`text-destructive`,bar:`bg-destructive`},cancelled:{icon:x.X,bg:`bg-muted`,fg:`text-muted-foreground`,bar:`bg-muted-foreground/30`}};function rt({items:e,onCancel:n,onRetry:a,onRemove:s,className:c,strings:l}){let u=t.useStrings(tt,l),d={queued:u.queued,uploading:u.uploading,done:u.done,error:u.error,cancelled:u.cancelled};return e.length===0?null:(0,b.jsx)(`ul`,{className:r.cn(`upload-progress-list--component`,`space-y-2`,c),children:e.map(e=>{let t=nt[e.status],c=t.icon,l=e.status===`done`?100:e.status===`cancelled`||e.status===`error`?e.progress??0:Math.max(0,Math.min(100,e.progress??0)),f=e.status===`uploading`||e.status===`queued`;return(0,b.jsx)(`li`,{className:`rounded-md border border-border/60 bg-card px-3 py-2`,children:(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(`span`,{className:r.cn(`inline-flex size-7 shrink-0 items-center justify-center rounded-md`,t.bg,t.fg),children:(0,b.jsx)(c,{className:r.cn(`size-3.5`,e.status===`uploading`&&`animate-pulse`)})}),(0,b.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,b.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,b.jsx)(o.n,{weight:`medium`,className:`truncate`,children:e.name}),(0,b.jsx)(o.n,{size:`xxs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:e.size})]}),f?(0,b.jsx)(`div`,{className:`mt-1.5 h-1 w-full overflow-hidden rounded-full bg-muted`,children:(0,b.jsx)(`div`,{className:r.cn(`h-full rounded-full transition-[width] duration-200`,t.bar),style:{width:`${l}%`}})}):(0,b.jsxs)(o.n,{size:`xxs`,type:e.status===`error`?`error`:`secondary`,children:[d[e.status],e.status===`error`&&!!e.error&&` — ${e.error}`]})]}),(0,b.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[e.status===`uploading`&&!!n&&(0,b.jsx)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,"aria-label":u.cancel,onClick:()=>n(e.id),children:(0,b.jsx)(x.X,{className:`size-3.5`})}),e.status===`error`&&!!a&&(0,b.jsx)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,"aria-label":u.retry,onClick:()=>a(e.id),children:(0,b.jsx)(x.RefreshCw,{className:`size-3.5`})}),(e.status===`done`||e.status===`error`||e.status===`cancelled`)&&!!s&&(0,b.jsx)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,"aria-label":u.remove,onClick:()=>s(e.id),children:(0,b.jsx)(x.X,{className:`size-3.5`})})]})]})},e.id)})})}rt.displayName=`UploadProgressList`;var it={heading:`Upload progress`,completedLabel:`Completed`,failedLabel:`Failed`,uploadingLabel:`Uploading`,queuedLabel:`Queued`,clearAll:`Clear all`};function at(e){let t=0,n=0,r=0,i=0;for(let a of e)a.status===`done`?t+=1:a.status===`error`?n+=1:a.status===`uploading`?r+=1:a.status===`queued`&&(i+=1);return{completed:t,failed:n,uploading:r,queued:i}}var ot=(0,y.forwardRef)(function({items:e,onAddFiles:n,onCancel:a,onRetry:s,onRemove:l,onClearAll:u,dropzone:d,className:f,strings:p,listStrings:m},h){let g=t.useStrings(it,p),{completed:_,failed:v,uploading:x,queued:S}=at(e),C=(0,y.useCallback)(e=>{e.length>0&&n(e)},[n]),w=e.length>0;return(0,b.jsxs)(`div`,{ref:h,className:r.cn(`upload-tray--component`,`flex flex-col gap-4`,f),children:[(0,b.jsx)(Ge,{onDrop:C,accept:d?.accept,multiple:d?.multiple,size:d?.size,disabled:d?.disabled,invalid:d?.invalid,strings:d?.strings}),!!w&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,b.jsx)(o.n,{tag:`span`,weight:`semibold`,children:g.heading}),_>0&&(0,b.jsxs)(c.t,{variant:`success`,children:[g.completedLabel,`: `,_]}),v>0&&(0,b.jsxs)(c.t,{variant:`destructive`,children:[g.failedLabel,`: `,v]}),x>0&&(0,b.jsxs)(c.t,{variant:`info`,children:[g.uploadingLabel,`: `,x]}),S>0&&(0,b.jsxs)(c.t,{variant:`secondary`,children:[g.queuedLabel,`: `,S]})]}),!!u&&(0,b.jsx)(i.t,{variant:`secondary`,buttonStyle:`ghost`,onClick:u,children:g.clearAll})]}),(0,b.jsx)(rt,{items:e,onCancel:a,onRetry:s,onRemove:l,strings:m})]})]})});ot.displayName=`UploadTray`;var Q={emptyState:`No items added yet.`,addItem:`Add item`,removeAriaLabel:`Remove item`},st={emptyState:Q.emptyState,addButton:Q.addItem,removeAriaLabel:Q.removeAriaLabel,dragHandleAriaLabel:`Drag to reorder`};function ct({item:e,index:t,sortable:n,rowVariant:a,removeVariant:o,hideRemove:s,disabled:c,strings:l,onRemove:u,renderRow:d}){let f=(0,E.useSortable)({id:e.id,disabled:c||!n}),p=n?f.isDragging:!1,m=n?{transform:D.CSS.Transform.toString(f.transform),transition:f.transition,opacity:p?.6:1}:void 0,h=n?f.setNodeRef:void 0,g=n?f.attributes:{},_=n?f.listeners:void 0,v=n?(0,b.jsx)(`button`,{type:`button`,"aria-label":l.dragHandleAriaLabel,className:r.cn(`inline-flex size-9 shrink-0 items-center justify-center rounded-md`,`text-muted-foreground/50 hover:text-foreground hover:bg-muted`,`cursor-grab active:cursor-grabbing`,`outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,`transition-colors`,c&&`pointer-events-none opacity-50`),...g,..._,children:(0,b.jsx)(x.GripVertical,{className:`size-4`,"aria-hidden":`true`})}):null,y=s?null:o===`icon-button`?(0,b.jsx)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,size:`sm`,"aria-label":l.removeAriaLabel,disabled:c,onClick:()=>u(t),className:`shrink-0`,children:(0,b.jsx)(x.Trash2,{className:`size-4`,"aria-hidden":`true`})}):(0,b.jsx)(`button`,{type:`button`,"aria-label":l.removeAriaLabel,disabled:c,onClick:()=>u(t),className:r.cn(`inline-flex size-9 shrink-0 items-center justify-center rounded-md`,`text-muted-foreground/70 hover:bg-destructive/10 hover:text-destructive`,`outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,`transition-colors`,`disabled:pointer-events-none disabled:opacity-50`),children:(0,b.jsx)(x.X,{className:`size-4`,"aria-hidden":`true`})});return a===`card`?(0,b.jsx)(`div`,{ref:h,style:m,className:r.cn(`repeater--component`,`relative rounded-md border border-input bg-card p-4`,n&&`pl-2`),children:(0,b.jsxs)(`div`,{className:`flex items-start gap-2`,children:[v,(0,b.jsx)(`div`,{className:`min-w-0 flex-1`,children:d(e,{index:t,isDragging:p})}),y]})}):(0,b.jsxs)(`div`,{ref:h,style:m,className:`flex items-start gap-2`,children:[v,(0,b.jsx)(`div`,{className:`min-w-0 flex-1`,children:d(e,{index:t,isDragging:p})}),y]})}function $({items:e,renderRow:n,onAdd:a,onRemove:s,onMove:c,sortable:l=!1,rowVariant:u=`inline`,removeVariant:d=`ghost`,hideRemove:f=!1,hideAdd:p=!1,disabled:m=!1,strings:h,className:g}){let _=t.useStrings(st,h),v=(0,T.useSensors)((0,T.useSensor)(T.PointerSensor,{activationConstraint:{distance:4}}),(0,T.useSensor)(T.KeyboardSensor,{coordinateGetter:E.sortableKeyboardCoordinates})),S=(0,y.useCallback)(t=>{let{active:n,over:r}=t;if(!r||n.id===r.id)return;let i=e.findIndex(e=>e.id===n.id),a=e.findIndex(e=>e.id===r.id);i<0||a<0||c?.(i,a)},[e,c]),C=(0,y.useMemo)(()=>e.map(e=>e.id),[e]),w=(0,b.jsx)(`div`,{className:`space-y-2`,children:e.map((e,t)=>(0,b.jsx)(ct,{item:e,index:t,sortable:l,rowVariant:u,removeVariant:d,hideRemove:f,disabled:m,strings:_,onRemove:s,renderRow:n},e.id))});return(0,b.jsxs)(`div`,{className:r.cn(`space-y-3`,g),children:[e.length===0?(0,b.jsx)(`div`,{className:`rounded-md border border-dashed border-input p-4`,children:(0,b.jsx)(o.n,{type:`secondary`,children:_.emptyState})}):l?(0,b.jsx)(T.DndContext,{sensors:v,collisionDetection:T.closestCenter,onDragEnd:S,children:(0,b.jsx)(E.SortableContext,{items:C,strategy:E.verticalListSortingStrategy,children:w})}):w,!p&&(0,b.jsxs)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,size:`sm`,disabled:m,onClick:a,children:[(0,b.jsx)(x.Plus,{className:`size-4 mr-1.5`}),_.addButton]})]})}$.displayName=`Repeater`;var lt={keyLabel:`Key`,valueLabel:`Value`,keyPlaceholder:`key`,valuePlaceholder:`value`,addButton:`Add row`,removeRowAriaLabel:`Remove row`,emptyState:`No rows yet.`},ut=()=>typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():Math.random().toString(36).slice(2,10),dt=(0,y.memo)(function({row:e,keyPlaceholder:t,valuePlaceholder:n,invalid:i,onKeyChange:a,onValueChange:o}){let{id:s,key:c,value:u}=e;return(0,b.jsxs)(`div`,{className:r.cn(`key-value-editor--component`,`grid grid-cols-1 md:grid-cols-2 gap-2`),children:[(0,b.jsx)(l.t,{value:c??``,placeholder:t,onChange:e=>a(s,e.target.value),invalid:i}),(0,b.jsx)(l.t,{value:u??``,placeholder:n,onChange:e=>o(s,e.target.value),invalid:i})]})});function ft({value:e,onChange:n,invalid:i,sortable:a=!1,keyPlaceholder:o,valuePlaceholder:c,keyLabel:l,valueLabel:u,addButtonText:d,strings:f}){let p=t.useStrings(lt,{...o===void 0?{}:{keyPlaceholder:o},...c===void 0?{}:{valuePlaceholder:c},...l===void 0?{}:{keyLabel:l},...u===void 0?{}:{valueLabel:u},...d===void 0?{}:{addButton:d},...f}),m=(0,y.useRef)(!1),[h,g]=(0,y.useState)(()=>e&&Object.keys(e).length>0?Object.entries(e).map(([e,t])=>({id:ut(),key:e,value:String(t??``)})):[{id:ut(),key:``,value:``}]),_=(0,y.useCallback)(e=>{let t={};e.forEach(({key:e,value:n})=>{e.trim()!==``&&(t[e]=n??``)}),m.current=!0,n?.(t),queueMicrotask(()=>{m.current=!1})},[n]),v=(0,y.useCallback)((e,t)=>{g(n=>{let r=n.map(n=>n.id===e?{...n,key:t}:n);return _(r),r})},[_]),x=(0,y.useCallback)((e,t)=>{g(n=>{let r=n.map(n=>n.id===e?{...n,value:t}:n);return _(r),r})},[_]),S=(0,y.useCallback)(()=>{g(e=>{let t=[...e,{id:ut(),key:``,value:``}];return _(t),t})},[_]),C=(0,y.useCallback)(e=>{g(t=>{let n=t.filter((t,n)=>n!==e),r=n.length?n:[{id:ut(),key:``,value:``}];return _(r),r})},[_]),w=(0,y.useCallback)((e,t)=>{g(n=>{let r=[...n],[i]=r.splice(e,1);return r.splice(t,0,i),_(r),r})},[_]);return(0,b.jsxs)(`div`,{className:`space-y-2`,children:[(!!p.keyLabel||!!p.valueLabel)&&(0,b.jsxs)(`div`,{className:r.cn(`grid grid-cols-1 md:grid-cols-2 gap-2`,a?`pl-11`:``,`pr-11`),children:[!!p.keyLabel&&(0,b.jsx)(s.a,{className:`flex items-center`,children:p.keyLabel}),!!p.valueLabel&&(0,b.jsx)(s.a,{className:`flex items-center`,children:p.valueLabel})]}),(0,b.jsx)($,{items:h,sortable:a,onAdd:S,onRemove:C,onMove:w,strings:{emptyState:p.emptyState,addButton:p.addButton,removeAriaLabel:p.removeRowAriaLabel},renderRow:e=>(0,b.jsx)(dt,{row:e,keyPlaceholder:p.keyPlaceholder,valuePlaceholder:p.valuePlaceholder,invalid:i,onKeyChange:v,onValueChange:x})})]})}ft.displayName=`KeyValueEditor`;var pt={placeholder:`Enter value`,addButton:`Add item`,...Q};function mt({name:e,placeholder:n,addButtonText:r,emptyMessage:i,invalid:a,sortable:o=!1,strings:s}){let c=t.useStrings(pt,{...n===void 0?{}:{placeholder:n},...r===void 0?{}:{addButton:r},...i===void 0?{}:{emptyState:i},...s}),{control:u,register:d}=(0,O.useFormContext)(),{fields:f,append:p,remove:m,move:h}=(0,O.useFieldArray)({control:u,name:e});return(0,b.jsx)($,{className:`string-repeater--component`,items:f,sortable:o,onAdd:()=>p(``),onRemove:e=>m(e),onMove:(e,t)=>h(e,t),strings:{emptyState:c.emptyState,addButton:c.addButton,removeAriaLabel:c.removeAriaLabel},renderRow:(t,{index:n})=>(0,b.jsx)(l.t,{...d(`${e}.${n}`),placeholder:c.placeholder,invalid:a})})}mt.displayName=`StringRepeater`;var ht={addButton:`Add item`,...Q};function gt({name:e,fields:n,addButtonText:i,emptyMessage:a,invalid:o,sortable:s=!1,strings:c}){let u=t.useStrings(ht,{...i===void 0?{}:{addButton:i},...a===void 0?{}:{emptyState:a},...c}),{control:d,register:p}=(0,O.useFormContext)(),{fields:h,append:g,remove:_,move:v}=(0,O.useFieldArray)({control:d,name:e}),x=(0,y.useCallback)(()=>n.reduce((e,t)=>(e[t.name]=``,e),{}),[n]);return(0,b.jsx)($,{items:h,sortable:s,rowVariant:`card`,removeVariant:`ghost`,onAdd:()=>g(x()),onRemove:e=>_(e),onMove:(e,t)=>v(e,t),strings:{emptyState:u.emptyState,addButton:u.addButton,removeAriaLabel:u.removeAriaLabel},renderRow:(t,{index:i})=>(0,b.jsx)(`div`,{className:r.cn(`object-repeater--component`,`space-y-3`),children:n.map(t=>{let n=`${e}.${i}.${t.name}`;return(0,b.jsx)(m.n,{label:t.label,required:t.required,hint:t.hint,htmlFor:n,children:t.type===`textarea`?(0,b.jsx)(f.t,{...p(n),id:n,placeholder:t.placeholder,minRows:3,invalid:o}):(0,b.jsx)(l.t,{...p(n),id:n,type:t.type||`text`,placeholder:t.placeholder,invalid:o})},t.name)})})})}gt.displayName=`ObjectRepeater`;var _t={addButton:`Add item`,emptyState:Q.emptyState,dragHandle:`Drag to reorder`,removeAriaLabel:Q.removeAriaLabel};function vt({name:e,placeholder:n,addButtonText:r,emptyMessage:i,disableSort:a=!1,invalid:o,strings:s}){let c=t.useStrings(_t,{...r===void 0?{}:{addButton:r},...i===void 0?{}:{emptyState:i},...s??{}}),{control:u,register:d}=(0,O.useFormContext)(),{fields:f,append:p,remove:m,move:h}=(0,O.useFieldArray)({control:u,name:e});return(0,b.jsx)($,{className:`list--component`,items:f,sortable:!a,onAdd:()=>p(``),onRemove:e=>m(e),onMove:(e,t)=>h(e,t),strings:{emptyState:c.emptyState,addButton:c.addButton,removeAriaLabel:c.removeAriaLabel,dragHandleAriaLabel:c.dragHandle},renderRow:(t,{index:r})=>(0,b.jsx)(l.t,{...d(`${e}.${r}`),placeholder:n,invalid:o})})}vt.displayName=`List`;function yt({name:e,value:t,options:i,onChange:a,allowClear:o=!1,size:s,fullWidth:c=!1,disabled:l=!1,invalid:u=!1,className:f}){let{defaultControlSize:p}=n.s(),m=d.i(s,p),h=y.useCallback(e=>{e===t?o&&a(null):a(e)},[o,a,t]);return(0,b.jsx)(`div`,{"data-name":e,role:`radiogroup`,"aria-invalid":u||void 0,className:r.cn(`pill-radio-group--component`,`border-input inline-flex items-center overflow-hidden rounded-lg border`,c&&`w-full`,`aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20`,l&&`pointer-events-none opacity-50`,f),children:i.map((e,n)=>{let i=e.value===t,a=e.icon;return(0,b.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":i,"aria-label":(typeof e.label==`string`?e.label:void 0)||e.value,disabled:l||e.disabled,onClick:()=>h(e.value),className:r.cn(`inline-flex select-none items-center justify-center font-medium transition-colors`,`focus-visible:ring-ring/50 outline-none focus-visible:z-10 focus-visible:ring-2`,`disabled:pointer-events-none disabled:opacity-50`,g.i[m],c&&`flex-1`,n>0&&`border-input border-l`,i?`bg-primary text-primary-foreground`:`bg-background text-foreground hover:bg-muted`),children:[!!a&&(0,b.jsx)(a,{className:r.cn(`size-3.5`,e.label&&`mr-1.5`)}),e.label]},e.value)})})}yt.displayName=`PillRadioGroup`;function bt({name:e,type:t=`text`,placeholder:n,primaryLocale:i,secondaryLocale:a,activeLocale:o,invalid:s,className:c}){let{register:u}=(0,O.useFormContext)(),d=`${e}.${o===`primary`?i:a}`;return t===`textarea`?(0,b.jsx)(f.t,{...u(d),placeholder:n,minRows:3,invalid:s,className:r.cn(`localized-string-field--component`,c)}):(0,b.jsx)(l.t,{...u(d),type:t===`number`?`number`:`text`,placeholder:n,invalid:s,className:c})}bt.displayName=`LocalizedStringField`;function xt({name:e,fields:t,primaryLocale:n,secondaryLocale:r,activeLocale:i,invalid:a,className:o}){let{register:c}=(0,O.useFormContext)(),u=i===`primary`?n:r;return(0,b.jsx)(`div`,{className:`w-full space-y-3 rounded-md border p-4 ${o??``}`,children:t.map(t=>{let n=`${e}.${u}.${t.name}`;return(0,b.jsxs)(`div`,{className:`w-full space-y-1.5`,children:[(0,b.jsxs)(s.a,{htmlFor:n,children:[t.label,!!t.required&&(0,b.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),t.type===`textarea`?(0,b.jsx)(f.t,{...c(n),id:n,placeholder:t.placeholder,minRows:3,invalid:a}):(0,b.jsx)(l.t,{...c(n),id:n,type:t.type===`number`?`number`:`text`,placeholder:t.placeholder,invalid:a})]},t.name)})})}xt.displayName=`LocalizedObjectField`;var St={placeholder:`Enter value`,addButton:Q.addItem,emptyState:Q.emptyState,removeAriaLabel:Q.removeAriaLabel};function Ct({name:e,placeholder:n,addButtonText:r,emptyMessage:i,primaryLocale:a,secondaryLocale:o,activeLocale:s,invalid:c,sortable:l=!1,strings:u}){let d=t.useStrings(St,{...n===void 0?{}:{placeholder:n},...r===void 0?{}:{addButton:r},...i===void 0?{}:{emptyState:i},...u??{}}),{control:p,register:m}=(0,O.useFormContext)(),h=`${e}.${s===`primary`?a:o}`,{fields:g,append:_,remove:v,move:y}=(0,O.useFieldArray)({control:p,name:h});return(0,b.jsx)($,{className:`localized-string-repeater--component`,items:g,sortable:l,onAdd:()=>_(``),onRemove:e=>v(e),onMove:(e,t)=>y(e,t),strings:{emptyState:d.emptyState,addButton:d.addButton,removeAriaLabel:d.removeAriaLabel},renderRow:(e,{index:t})=>(0,b.jsx)(f.t,{...m(`${h}.${t}`),placeholder:d.placeholder,minRows:2,invalid:c})})}Ct.displayName=`LocalizedStringRepeater`;function wt(e){let{formId:t,onSubmit:n,errors:i,isLoading:a,label:s}=e,c=(e=>{let t=i?.[e];return Array.isArray(t)?t[0]:t})(`password`),u=c?()=>c:void 0,d=(Array.isArray(i?.general)?i.general[0]:i?.general)||(Array.isArray(i?.server)?i.server[0]:i?.server),{handleSubmit:f,control:p}=(0,O.useForm)({defaultValues:(0,y.useMemo)(()=>({password:``}),[])}),h=async e=>{await n({password:e.password})},g=!!a;return(0,b.jsxs)(`form`,{id:t,onSubmit:f(h),className:r.cn(`operation-password-form--component`,`space-y-4`),children:[!!d&&(0,b.jsx)(o.n,{type:`error`,children:d}),(0,b.jsx)(m.t,{name:`password`,control:p,error:u,label:s,required:!0,children:(e,t,n)=>(0,b.jsx)(l.t,{type:`password`,value:e.value??``,onChange:e.onChange,onBlur:e.onBlur,name:e.name,invalid:n,disabled:g,autoFocus:!0})})]})}wt.displayName=`OperationPasswordForm`,Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"G",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"K",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return yt}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return st}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return bt}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return vt}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return gt}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return V}});
|
|
2
|
+
//# sourceMappingURL=forms-BweX9Lm8.cjs.map
|