admin-ui-starter-kit 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/admin-ui-consumer-migration/SKILL.md +26 -4
- package/.agents/skills/admin-ui-consumer-migration/references/actions-service.md +153 -2
- package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +52 -0
- package/.agents/skills/component-library-rules/references/components/INDEX.json +8 -7
- package/.agents/skills/component-library-rules/references/components/INDEX.md +1 -0
- package/.agents/skills/component-library-rules/references/components/base__combobox.md +37 -1
- package/.agents/skills/component-library-rules/references/components/base__forms.md +56 -1
- package/.agents/skills/component-library-rules/references/components/base__table.md +145 -3
- package/.agents/skills/component-library-rules/references/components/composed__admin.md +66 -0
- package/.agents/skills/component-library-rules/references/components/composed__resource-selector-card.md +85 -0
- package/.agents/skills/component-library-rules/references/components/features__filters.md +69 -0
- package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +35 -0
- package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +170 -7
- package/CHANGELOG.md +30 -3
- package/COMPONENT_SELECTION.md +30 -3
- package/INTEGRATION.md +98 -3
- package/README.md +108 -14
- package/dist/_shared/ai-artifact--vEDQFvM.cjs +3 -0
- package/dist/_shared/ai-artifact--vEDQFvM.cjs.map +1 -0
- package/dist/_shared/ai-artifact-p45wDWWX.js +1099 -0
- package/dist/_shared/ai-artifact-p45wDWWX.js.map +1 -0
- package/dist/_shared/auth-1Fl_2u-c.js +643 -0
- package/dist/_shared/auth-1Fl_2u-c.js.map +1 -0
- package/dist/_shared/auth-CVDNwcge.cjs +2 -0
- package/dist/_shared/auth-CVDNwcge.cjs.map +1 -0
- package/dist/_shared/badge-A8wQRShC.js +108 -0
- package/dist/_shared/badge-A8wQRShC.js.map +1 -0
- package/dist/_shared/badge-D7A2LnSf.cjs +2 -0
- package/dist/_shared/badge-D7A2LnSf.cjs.map +1 -0
- package/dist/_shared/combobox-CEzH533Y.cjs +2 -0
- package/dist/_shared/combobox-CEzH533Y.cjs.map +1 -0
- package/dist/_shared/combobox-Dc4vaeGt.js +927 -0
- package/dist/_shared/combobox-Dc4vaeGt.js.map +1 -0
- package/dist/_shared/comments-BDnq4RPN.js +952 -0
- package/dist/_shared/comments-BDnq4RPN.js.map +1 -0
- package/dist/_shared/comments-C4djB-nG.cjs +2 -0
- package/dist/_shared/comments-C4djB-nG.cjs.map +1 -0
- package/dist/_shared/display-AtPyyUZc.cjs +2 -0
- package/dist/_shared/display-AtPyyUZc.cjs.map +1 -0
- package/dist/_shared/display-CL69dmsv.js +1471 -0
- package/dist/_shared/display-CL69dmsv.js.map +1 -0
- package/dist/_shared/forms-Bi5rUH3t.cjs +2 -0
- package/dist/_shared/forms-Bi5rUH3t.cjs.map +1 -0
- package/dist/_shared/forms-Yd0b-3MQ.js +3556 -0
- package/dist/_shared/forms-Yd0b-3MQ.js.map +1 -0
- package/dist/_shared/header-C4SvsbMn.cjs +2 -0
- package/dist/_shared/header-C4SvsbMn.cjs.map +1 -0
- package/dist/_shared/header-CcnW83Vs.js +447 -0
- package/dist/_shared/header-CcnW83Vs.js.map +1 -0
- package/dist/_shared/hooks-DsDGr8xz.cjs +2 -0
- package/dist/_shared/hooks-DsDGr8xz.cjs.map +1 -0
- package/dist/_shared/hooks-IEM3N4VG.js +95 -0
- package/dist/_shared/hooks-IEM3N4VG.js.map +1 -0
- package/dist/_shared/layout.types-CYuDZ_4h.cjs +2 -0
- package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +1 -0
- package/dist/_shared/layout.types-j7zZAPtg.js +28 -0
- package/dist/_shared/layout.types-j7zZAPtg.js.map +1 -0
- package/dist/_shared/mentions-CqwT7pUL.cjs +2 -0
- package/dist/_shared/mentions-CqwT7pUL.cjs.map +1 -0
- package/dist/_shared/mentions-RxzSRAWE.js +506 -0
- package/dist/_shared/mentions-RxzSRAWE.js.map +1 -0
- package/dist/_shared/navigation-B-TE-HR-.cjs +2 -0
- package/dist/_shared/navigation-B-TE-HR-.cjs.map +1 -0
- package/dist/_shared/navigation-Cg0UqMDP.js +424 -0
- package/dist/_shared/navigation-Cg0UqMDP.js.map +1 -0
- package/dist/_shared/page-Bl_eSGLh.js +262 -0
- package/dist/_shared/page-Bl_eSGLh.js.map +1 -0
- package/dist/_shared/page-DTEqSyEK.cjs +2 -0
- package/dist/_shared/page-DTEqSyEK.cjs.map +1 -0
- package/dist/_shared/resource-Bb7dj-aj.cjs +2 -0
- package/dist/_shared/resource-Bb7dj-aj.cjs.map +1 -0
- package/dist/_shared/resource-DljsYA7W.js +243 -0
- package/dist/_shared/resource-DljsYA7W.js.map +1 -0
- package/dist/_shared/settings-BtNkFHl3.cjs +2 -0
- package/dist/_shared/settings-BtNkFHl3.cjs.map +1 -0
- package/dist/_shared/settings-Do6SuM-H.js +143 -0
- package/dist/_shared/settings-Do6SuM-H.js.map +1 -0
- package/dist/_shared/sidebar-BhcdQ9e9.cjs +2 -0
- package/dist/_shared/sidebar-BhcdQ9e9.cjs.map +1 -0
- package/dist/_shared/sidebar-CMoxtuSw.js +538 -0
- package/dist/_shared/sidebar-CMoxtuSw.js.map +1 -0
- package/dist/_shared/table-BgpL5Yt8.cjs +2 -0
- package/dist/_shared/table-BgpL5Yt8.cjs.map +1 -0
- package/dist/_shared/table-Ct3nl0lV.js +1381 -0
- package/dist/_shared/table-Ct3nl0lV.js.map +1 -0
- package/dist/_shared/workspace-BzTFBkmd.cjs +2 -0
- package/dist/_shared/workspace-BzTFBkmd.cjs.map +1 -0
- package/dist/_shared/workspace-CvUYln5V.js +357 -0
- package/dist/_shared/workspace-CvUYln5V.js.map +1 -0
- package/dist/components/base/badge/badge.d.ts.map +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/combobox/async-resource-combobox.d.ts +41 -0
- package/dist/components/base/combobox/async-resource-combobox.d.ts.map +1 -0
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.d.ts +1 -0
- package/dist/components/base/combobox/index.d.ts.map +1 -1
- package/dist/components/base/combobox/index.js +2 -2
- package/dist/components/base/data-view/data-view.d.ts +6 -0
- package/dist/components/base/data-view/data-view.d.ts.map +1 -0
- package/dist/components/base/data-view/data-view.strings.d.ts +7 -0
- package/dist/components/base/data-view/data-view.strings.d.ts.map +1 -0
- package/dist/components/base/data-view/data-view.types.d.ts +57 -0
- package/dist/components/base/data-view/data-view.types.d.ts.map +1 -0
- package/dist/components/base/data-view/index.cjs +2 -0
- package/dist/components/base/data-view/index.cjs.map +1 -0
- package/dist/components/base/data-view/index.d.ts +4 -0
- package/dist/components/base/data-view/index.d.ts.map +1 -0
- package/dist/components/base/data-view/index.js +146 -0
- package/dist/components/base/data-view/index.js.map +1 -0
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.js +5 -5
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.d.ts +1 -0
- package/dist/components/base/forms/index.d.ts.map +1 -1
- package/dist/components/base/forms/index.js +5 -6
- package/dist/components/base/forms/workflow.d.ts +47 -0
- package/dist/components/base/forms/workflow.d.ts.map +1 -0
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +1 -1
- package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -1
- package/dist/components/base/table/data-table.d.ts +1 -1
- package/dist/components/base/table/data-table.d.ts.map +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.d.ts +1 -1
- package/dist/components/base/table/index.d.ts.map +1 -1
- package/dist/components/base/table/index.js +2 -2
- package/dist/components/base/table/partials/cell-renderers.d.ts +69 -0
- package/dist/components/base/table/partials/cell-renderers.d.ts.map +1 -1
- package/dist/components/base/table/table.strings.d.ts.map +1 -1
- package/dist/components/base/table/table.types.d.ts +22 -1
- package/dist/components/base/table/table.types.d.ts.map +1 -1
- package/dist/components/composed/admin/action-surfaces/index.d.ts +118 -0
- package/dist/components/composed/admin/action-surfaces/index.d.ts.map +1 -0
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.cjs.map +1 -1
- package/dist/components/composed/admin/index.d.ts +1 -0
- package/dist/components/composed/admin/index.d.ts.map +1 -1
- package/dist/components/composed/admin/index.js +392 -131
- package/dist/components/composed/admin/index.js.map +1 -1
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +17 -17
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +2 -2
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.cjs.map +1 -1
- package/dist/components/composed/commerce/index.js +43 -44
- package/dist/components/composed/commerce/index.js.map +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +17 -17
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.cjs.map +1 -1
- package/dist/components/composed/data-display/index.d.ts +1 -0
- package/dist/components/composed/data-display/index.d.ts.map +1 -1
- package/dist/components/composed/data-display/index.js +355 -285
- package/dist/components/composed/data-display/index.js.map +1 -1
- package/dist/components/composed/data-display/resource-selector-card.d.ts +43 -0
- package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -0
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +1 -1
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +1 -1
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +1 -1
- package/dist/components/features/ai-chat/index.cjs +1 -1
- package/dist/components/features/ai-chat/index.js +2 -2
- 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 +2 -2
- package/dist/components/features/filters/filter-query.d.ts +22 -0
- package/dist/components/features/filters/filter-query.d.ts.map +1 -0
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.cjs.map +1 -1
- package/dist/components/features/filters/index.d.ts +1 -0
- package/dist/components/features/filters/index.d.ts.map +1 -1
- package/dist/components/features/filters/index.js +105 -22
- package/dist/components/features/filters/index.js.map +1 -1
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +1 -1
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.cjs.map +1 -1
- package/dist/components/features/media-library/index.js +36 -37
- package/dist/components/features/media-library/index.js.map +1 -1
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.cjs.map +1 -1
- package/dist/components/features/products/index.js +4 -5
- package/dist/components/features/products/index.js.map +1 -1
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.cjs.map +1 -1
- package/dist/components/features/schema-form/index.js +20 -20
- package/dist/components/features/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.js +1 -1
- package/dist/components/layout/app-shell/index.cjs +1 -1
- package/dist/components/layout/app-shell/index.d.ts +1 -0
- package/dist/components/layout/app-shell/index.d.ts.map +1 -1
- package/dist/components/layout/app-shell/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/header.types.d.ts +40 -4
- package/dist/components/layout/header/header.types.d.ts.map +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.d.ts +5 -1
- package/dist/components/layout/header/index.d.ts.map +1 -1
- package/dist/components/layout/header/index.js +2 -2
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +3 -0
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts.map +1 -0
- package/dist/components/layout/header/partials/header-notifications.d.ts.map +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
- package/dist/components/layout/header/partials/header-tool-button.d.ts +5 -0
- package/dist/components/layout/header/partials/header-tool-button.d.ts.map +1 -0
- package/dist/components/layout/header/partials/header-tool-popover.d.ts +3 -0
- package/dist/components/layout/header/partials/header-tool-popover.d.ts.map +1 -0
- package/dist/components/layout/header/partials/header-user-menu.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.d.ts +2 -0
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +13 -10
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/resource/index.cjs +1 -0
- package/dist/components/layout/resource/index.d.ts +3 -0
- package/dist/components/layout/resource/index.d.ts.map +1 -0
- package/dist/components/layout/resource/index.js +2 -0
- package/dist/components/layout/resource/resource.d.ts +13 -0
- package/dist/components/layout/resource/resource.d.ts.map +1 -0
- package/dist/components/layout/resource/resource.types.d.ts +86 -0
- package/dist/components/layout/resource/resource.types.d.ts.map +1 -0
- package/dist/components/layout/settings/index.cjs +1 -0
- package/dist/components/layout/settings/index.d.ts +2 -0
- package/dist/components/layout/settings/index.d.ts.map +1 -0
- package/dist/components/layout/settings/index.js +2 -0
- package/dist/components/layout/settings/settings.d.ts +47 -0
- package/dist/components/layout/settings/settings.d.ts.map +1 -0
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.d.ts +1 -0
- package/dist/components/layout/sidebar/index.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.js +3 -3
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/services/actions/action-adapters.d.ts +102 -0
- package/dist/services/actions/action-adapters.d.ts.map +1 -0
- package/dist/services/actions/action-provider.d.ts +1 -1
- package/dist/services/actions/action-provider.d.ts.map +1 -1
- package/dist/services/actions/action-store.d.ts +13 -1
- package/dist/services/actions/action-store.d.ts.map +1 -1
- package/dist/services/actions/actions.types.d.ts +86 -0
- package/dist/services/actions/actions.types.d.ts.map +1 -1
- package/dist/services/actions/hooks.d.ts +2 -1
- package/dist/services/actions/hooks.d.ts.map +1 -1
- package/dist/services/actions/index.cjs +1 -1
- package/dist/services/actions/index.cjs.map +1 -1
- package/dist/services/actions/index.d.ts +4 -3
- package/dist/services/actions/index.d.ts.map +1 -1
- package/dist/services/actions/index.js +412 -112
- package/dist/services/actions/index.js.map +1 -1
- package/dist/showcase/assets/AreaChart-CPs34Emq.js +6 -0
- package/dist/showcase/assets/CompositeItem-CRBdF4lY.js +1 -0
- package/dist/showcase/assets/CompositeRoot-BJL04x4e.js +1 -0
- package/dist/showcase/assets/DialogTrigger-DLTfNVyT.js +1 -0
- package/dist/showcase/assets/LabelableContext-DqxJotB_.js +1 -0
- package/dist/showcase/assets/PreviewLayout-DQIZaXaO.js +1 -0
- package/dist/showcase/assets/RadioGroup-Bd_Zncc1.js +1 -0
- package/dist/showcase/assets/Separator-BP98bGSM.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-CHQj8-IW.js +1 -0
- package/dist/showcase/assets/accordion-C-grh_FX.js +171 -0
- package/dist/showcase/assets/accordion-variants-xiD_mqaf.js +1 -0
- package/dist/showcase/assets/action-menu-BkBav9jX.js +1 -0
- package/dist/showcase/assets/activities-DWhVEoyf.js +501 -0
- package/dist/showcase/assets/activities-feed-card-BW5nKGmZ.js +1 -0
- package/dist/showcase/assets/activity-poGMMgYW.js +1 -0
- package/dist/showcase/assets/admin-Dd5rNbt8.js +140 -0
- package/dist/showcase/assets/ai-B-HxItKA.js +41 -0
- package/dist/showcase/assets/ai-artifact-CakosBY2.js +2 -0
- package/dist/showcase/assets/ai-chat-DdxooReQ.js +568 -0
- package/dist/showcase/assets/ai-elements-D1Vv9_Tw.js +387 -0
- package/dist/showcase/assets/ai-new-nIwh-IOk.js +167 -0
- package/dist/showcase/assets/ai-tool-call-D_D0wP5v.js +1 -0
- package/dist/showcase/assets/alert-BUcCtIUZ.js +1 -0
- package/dist/showcase/assets/alert-Dia0s7JO.js +62 -0
- package/dist/showcase/assets/alert-T1jitthq.js +93 -0
- package/dist/showcase/assets/api-key-list-BH7hCegB.js +1 -0
- package/dist/showcase/assets/api-key-list-DGw5v3TM.js +73 -0
- package/dist/showcase/assets/app-sidebar-C9tjHr7T.js +1 -0
- package/dist/showcase/assets/arrow-down-B6kyPDb5.js +1 -0
- package/dist/showcase/assets/arrow-left-D0CtgCZo.js +1 -0
- package/dist/showcase/assets/arrow-right-KBaOzj0x.js +1 -0
- package/dist/showcase/assets/arrow-up-C4Mo45qq.js +1 -0
- package/dist/showcase/assets/arrow-up-right-DP1T-yaT.js +1 -0
- package/dist/showcase/assets/avatar-D7SDbnVK.js +57 -0
- package/dist/showcase/assets/avatar-Dk78XyHT.js +1 -0
- package/dist/showcase/assets/badge-BynPmAU-.js +28 -0
- package/dist/showcase/assets/badge-check-BLKxMna6.js +1 -0
- package/dist/showcase/assets/bell-YYeVQNAQ.js +1 -0
- package/dist/showcase/assets/bot-DW1y5yQ-.js +1 -0
- package/dist/showcase/assets/box-xRYm3qua.js +1 -0
- package/dist/showcase/assets/brain-D_5EG0Lz.js +1 -0
- package/dist/showcase/assets/brand-Dyp6oyOk.js +36 -0
- package/dist/showcase/assets/breadcrumb-DXvRsHCJ.js +52 -0
- package/dist/showcase/assets/breadcrumb-IsBRcWTe.js +1 -0
- package/dist/showcase/assets/breadcrumbs-BU7Rgcpu.js +1 -0
- package/dist/showcase/assets/briefcase-DNJAkTSQ.js +1 -0
- package/dist/showcase/assets/building-2-ew23uhTO.js +1 -0
- package/dist/showcase/assets/button-Vw1Oyu_k.js +44 -0
- package/dist/showcase/assets/button-group-B-jDeq6X.js +1 -0
- package/dist/showcase/assets/buttons-C51ePl4d.js +270 -0
- package/dist/showcase/assets/calendar-B5HmDXFy.js +16 -0
- package/dist/showcase/assets/calendar-BcfonDWf.js +1 -0
- package/dist/showcase/assets/calendar-C30zoOBE.js +1 -0
- package/dist/showcase/assets/calendar-days-RYOuU9Cg.js +1 -0
- package/dist/showcase/assets/camera-CyHnOpqm.js +1 -0
- package/dist/showcase/assets/card-Btuv-VxD.js +188 -0
- package/dist/showcase/assets/card-BvOjmZEl.js +1 -0
- package/dist/showcase/assets/card-primitives-FJQ8zNnk.js +1 -0
- package/dist/showcase/assets/card-radio-group-CEX1QGZc.js +1 -0
- package/dist/showcase/assets/cards-CL6XfZ22.js +328 -0
- package/dist/showcase/assets/carousel-D9G8bQhs.js +449 -0
- package/dist/showcase/assets/cell-renderers-CFw3ElYS.js +1 -0
- package/dist/showcase/assets/chart-CXAM6h1e.js +358 -0
- package/dist/showcase/assets/chart-column-BAuLvocu.js +1 -0
- package/dist/showcase/assets/checkbox-Bu3lf4gm.js +1 -0
- package/dist/showcase/assets/chevron-down-BbbFJsFU.js +1 -0
- package/dist/showcase/assets/chevron-left-CmperXCk.js +1 -0
- package/dist/showcase/assets/chevron-right-0nQcAzMY.js +1 -0
- package/dist/showcase/assets/chevron-up-BXSFzrxh.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-lvrM2T-O.js +1 -0
- package/dist/showcase/assets/circle-DswWOvJq.js +1 -0
- package/dist/showcase/assets/circle-alert-DM8Q0Da0.js +1 -0
- package/dist/showcase/assets/circle-check-BYi8zv0a.js +1 -0
- package/dist/showcase/assets/circle-check-big-WtxiRvrB.js +1 -0
- package/dist/showcase/assets/circle-dot-MfYw-Dij.js +1 -0
- package/dist/showcase/assets/circle-question-mark-CbXDG7RP.js +1 -0
- package/dist/showcase/assets/circle-x-DeZby2HN.js +1 -0
- package/dist/showcase/assets/clock-3-BxradwSg.js +1 -0
- package/dist/showcase/assets/clock-BBX3LCxu.js +1 -0
- package/dist/showcase/assets/code-xml-ldsBhjwS.js +1 -0
- package/dist/showcase/assets/collapsible-COxB1q4f.js +1 -0
- package/dist/showcase/assets/collapsible-D8iHSi7O.js +27 -0
- package/dist/showcase/assets/combobox-gNdpv0PU.js +726 -0
- package/dist/showcase/assets/command-BNVn6pYm.js +1 -0
- package/dist/showcase/assets/command-Bwp2eLDF.js +1 -0
- package/dist/showcase/assets/comment-composer-eU5HG1ZD.js +1 -0
- package/dist/showcase/assets/comment-item-AKJEHLvt.js +1 -0
- package/dist/showcase/assets/comments-hcLJicNU.js +357 -0
- package/dist/showcase/assets/commerce-C_RgOVxU.js +79 -0
- package/dist/showcase/assets/commerce-extras-CVVnDyB5.js +189 -0
- package/dist/showcase/assets/composite-BW91WkOo.js +1 -0
- package/dist/showcase/assets/contact-card-CE82BDxj.js +65 -0
- package/dist/showcase/assets/content-container-Cc8Vv5Wp.js +1 -0
- package/dist/showcase/assets/copyable-CD9f6sxk.js +96 -0
- package/dist/showcase/assets/copyable-DRvJ9iOu.js +1 -0
- package/dist/showcase/assets/course-card-DYzULN2A.js +77 -0
- package/dist/showcase/assets/cpu-Cc__BewW.js +1 -0
- package/dist/showcase/assets/credit-card-CoIW8_5L.js +1 -0
- package/dist/showcase/assets/currency-DEKUvlFU.js +149 -0
- package/dist/showcase/assets/dark-surfaces-D5WXaLLj.js +90 -0
- package/dist/showcase/assets/database-C8o4g1ov.js +1 -0
- package/dist/showcase/assets/date-block-Aw2riL52.js +1 -0
- package/dist/showcase/assets/date-picker-BrBCLxZ8.js +1 -0
- package/dist/showcase/assets/date-pickers-B84_YAGT.js +73 -0
- package/dist/showcase/assets/dense-info-BaI61NnP.js +106 -0
- package/dist/showcase/assets/dialog-CfKGB1qy.js +1 -0
- package/dist/showcase/assets/dialog-DpfYwJPk.js +1 -0
- package/dist/showcase/assets/display-ZDXpxNSP.js +403 -0
- package/dist/showcase/assets/dist-DRkwLUFP.js +45 -0
- package/dist/showcase/assets/dollar-sign-BTuul0J-.js +1 -0
- package/dist/showcase/assets/download-Nn6XkM9l.js +1 -0
- package/dist/showcase/assets/dropdown-menu-CrcweCup.js +1 -0
- package/dist/showcase/assets/dropzone-MajEhAfA.js +1 -0
- package/dist/showcase/assets/earth-Cv_-EtPW.js +1 -0
- package/dist/showcase/assets/ellipsis-D0y6rUzm.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-B6ICYsU2.js +1 -0
- package/dist/showcase/assets/empty-CWtvDL2Z.js +1 -0
- package/dist/showcase/assets/empty-item-CBdSL5K4.js +49 -0
- package/dist/showcase/assets/empty-state-DpAXXKE_.js +1 -0
- package/dist/showcase/assets/empty-state-x7W66Jff.js +188 -0
- package/dist/showcase/assets/enhanced-activities-BgQBDjph.js +361 -0
- package/dist/showcase/assets/enhanced-combobox-BT-d7sfw.js +1 -0
- package/dist/showcase/assets/event-calendar-Bl3N30L5.js +138 -0
- package/dist/showcase/assets/event-log-BI24HOvx.js +330 -0
- package/dist/showcase/assets/example-CbMg22fx.js +1 -0
- package/dist/showcase/assets/external-link-C4QW5KPr.js +1 -0
- package/dist/showcase/assets/eye-rvb4fYw0.js +1 -0
- package/dist/showcase/assets/feature-announcement-CChQvOnH.js +34 -0
- package/dist/showcase/assets/file-GOMuLez7.js +1 -0
- package/dist/showcase/assets/file-text-B21ZcL9w.js +1 -0
- package/dist/showcase/assets/filters-Crp5EI1q.js +139 -0
- package/dist/showcase/assets/flag-D1iXMqPC.js +1 -0
- package/dist/showcase/assets/folder-open-CjZE_PS8.js +1 -0
- package/dist/showcase/assets/form-field-Dtn_NArM.js +1 -0
- package/dist/showcase/assets/format-Cu09wP-k.js +1 -0
- package/dist/showcase/assets/forms-noSArwvn.js +911 -0
- package/dist/showcase/assets/frame-2DJdBXkw.js +167 -0
- package/dist/showcase/assets/getPseudoElementBounds-DxlN6Yut.js +1 -0
- package/dist/showcase/assets/gift-DBIsZsVg.js +1 -0
- package/dist/showcase/assets/giftcard-cards-B3ffDDjK.js +85 -0
- package/dist/showcase/assets/git-branch-6eIv9W2g.js +1 -0
- package/dist/showcase/assets/global-search-BelZn8mj.js +215 -0
- package/dist/showcase/assets/global-search-DSMNBBiZ.js +1 -0
- package/dist/showcase/assets/globe-B_Lqx3uz.js +1 -0
- package/dist/showcase/assets/gradient-card-D_2eaE6O.js +58 -0
- package/dist/showcase/assets/hash-BC0RnYwr.js +1 -0
- package/dist/showcase/assets/header-CMjgUhtM.js +1 -0
- package/dist/showcase/assets/header-notifications-fOFoqfCR.js +1 -0
- package/dist/showcase/assets/heart-BM6yPMXn.js +1 -0
- package/dist/showcase/assets/house-CnsMNKdQ.js +1 -0
- package/dist/showcase/assets/icon-badge-IP9B3lQm.js +1 -0
- package/dist/showcase/assets/image-B5jt_w43.js +1 -0
- package/dist/showcase/assets/inbox-BcbV9uGN.js +1 -0
- package/dist/showcase/assets/index-Bn8k0P7-.css +2 -0
- package/dist/showcase/assets/index-DNH0y0r-.js +10 -0
- package/dist/showcase/assets/inertValue-B82SGILi.js +1 -0
- package/dist/showcase/assets/info-DO5VmDSw.js +1 -0
- package/dist/showcase/assets/inline-stat-B2s_ozrX.js +1 -0
- package/dist/showcase/assets/input-BCxdburb.js +1 -0
- package/dist/showcase/assets/input-DcQuALxy.js +1 -0
- package/dist/showcase/assets/input-group-DZJrOGbm.js +1 -0
- package/dist/showcase/assets/input-group-PwfoPR94.js +47 -0
- package/dist/showcase/assets/inputs-DetnUcEp.js +155 -0
- package/dist/showcase/assets/invoice-header-BMWL_9sW.js +36 -0
- package/dist/showcase/assets/invoice-items-DLEQR54f.js +36 -0
- package/dist/showcase/assets/invoice-mini-BxO8W_p2.js +14 -0
- package/dist/showcase/assets/invoice-table-ClMTdfvZ.js +30 -0
- package/dist/showcase/assets/isSameDay-B9x5Mpln.js +1 -0
- package/dist/showcase/assets/isToday-CT4NGB5x.js +1 -0
- package/dist/showcase/assets/italic-BiQv-7DA.js +1 -0
- package/dist/showcase/assets/item-CdgzxWcL.js +1 -0
- package/dist/showcase/assets/item-JreKWzkR.js +134 -0
- package/dist/showcase/assets/item-a8FCQMvC.js +1 -0
- package/dist/showcase/assets/kanban-CekpGtlO.js +186 -0
- package/dist/showcase/assets/key-round-CpIUGlhG.js +1 -0
- package/dist/showcase/assets/label-BE1d_Rxi.js +1 -0
- package/dist/showcase/assets/languages-DaFWrOam.js +1 -0
- package/dist/showcase/assets/layers-DDIuTz4-.js +1 -0
- package/dist/showcase/assets/layout-app-shell-BkqOwNe9.js +608 -0
- package/dist/showcase/assets/layout-auth-Bng_0NM0.js +754 -0
- package/dist/showcase/assets/layout-containers-Bk_jSDWd.js +101 -0
- package/dist/showcase/assets/layout-header-CuJVU1Rx.js +203 -0
- package/dist/showcase/assets/layout-page-DHOPox5Z.js +278 -0
- package/dist/showcase/assets/layout-primitives-BnIgANs6.js +34 -0
- package/dist/showcase/assets/layout-sidebar-BUOjQm9-.js +224 -0
- package/dist/showcase/assets/layout-users-DFlJQAuB.js +117 -0
- package/dist/showcase/assets/layout-workspace-Cq63UWwT.js +183 -0
- package/dist/showcase/assets/lock-DTD3z5Vh.js +1 -0
- package/dist/showcase/assets/lock-keyhole-Bbs1Ry2S.js +1 -0
- package/dist/showcase/assets/mail-DAa8myka.js +1 -0
- package/dist/showcase/assets/mail-check-DrmYfqQb.js +1 -0
- package/dist/showcase/assets/map-DfYPJKDx.js +124 -0
- package/dist/showcase/assets/map-pin-Cf_uffQY.js +1 -0
- package/dist/showcase/assets/media-library-Duyf6M0c.js +695 -0
- package/dist/showcase/assets/mention-inline-suggestions-tOlG56Jr.js +1 -0
- package/dist/showcase/assets/mentions-LbZlN995.js +138 -0
- package/dist/showcase/assets/menus-Cs95R125.js +165 -0
- package/dist/showcase/assets/message-square-CjaeUwPc.js +1 -0
- package/dist/showcase/assets/metadata-list-Bcy5s1_q.js +1 -0
- package/dist/showcase/assets/metadata-list-C9L63gMM2.js +288 -0
- package/dist/showcase/assets/metric-D8bF87C1.js +1 -0
- package/dist/showcase/assets/metric-bar-DQF1jEsY.js +1 -0
- package/dist/showcase/assets/metric-grid-DJZjbFrm.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-C9YeKxwe.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-CfGjnKEG.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-C4R2q2ia.js +50 -0
- package/dist/showcase/assets/metrics-comparison-B2FZ-rUG.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-BS4EafAM.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-CyWA0Plw.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-CH_KTuo2.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-Dw1rbkBU.js +42 -0
- package/dist/showcase/assets/metrics-overview-BuLSn0GC.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-Zo4F0-y4.js +54 -0
- package/dist/showcase/assets/minus-COUx_vHQ.js +1 -0
- package/dist/showcase/assets/money-display-prumQLQ2.js +1 -0
- package/dist/showcase/assets/month-year-picker-BDTiuGOD.js +1 -0
- package/dist/showcase/assets/navigation-Bf_sgFei.js +90 -0
- package/dist/showcase/assets/navigation-Dnqq0un0.js +230 -0
- package/dist/showcase/assets/navigation-extras-ydwfzYfj.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-DBLaUqhZ.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-UXs-T5Fq.js +1 -0
- package/dist/showcase/assets/overlays-C1ET_VvE.js +408 -0
- package/dist/showcase/assets/overlays-dMd0EOT1.js +159 -0
- package/dist/showcase/assets/package-C9EnWNEP.js +1 -0
- package/dist/showcase/assets/package-check-BGT72daQ.js +1 -0
- package/dist/showcase/assets/page-action-button-8faHdFOD.js +1 -0
- package/dist/showcase/assets/page-header-DoZnb9z9.js +1 -0
- package/dist/showcase/assets/pagination-BJ3wQQtL.js +42 -0
- package/dist/showcase/assets/pagination-DJnga08n.js +1 -0
- package/dist/showcase/assets/paperclip-DsQ_IPLp.js +1 -0
- package/dist/showcase/assets/password-input-CLxvZdDC.js +1 -0
- package/dist/showcase/assets/pencil-37DzPmX5.js +1 -0
- package/dist/showcase/assets/phone-CLDh9lYU.js +1 -0
- package/dist/showcase/assets/plus-PKSdX45c.js +1 -0
- package/dist/showcase/assets/popover-BWbBoxN0.js +1 -0
- package/dist/showcase/assets/popover-DoEhmJ7G.js +1 -0
- package/dist/showcase/assets/popover-menu-wt8kWbr1.js +1 -0
- package/dist/showcase/assets/products-Bvl2zRfb.js +407 -0
- package/dist/showcase/assets/progress-BeusdG_D.js +18 -0
- package/dist/showcase/assets/progress-CQr08MPz.js +1 -0
- package/dist/showcase/assets/props-table-DSdjPLVr.js +1 -0
- package/dist/showcase/assets/props.generated-AlskAQY9.json +41579 -0
- package/dist/showcase/assets/quote-D1DrZRcn.js +1 -0
- package/dist/showcase/assets/receipt-CxNJvyC5.js +1 -0
- package/dist/showcase/assets/receipt-text-2YwFjXVP.js +1 -0
- package/dist/showcase/assets/refresh-cw-DlkWEAjG.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-Ctt-9xwK.js +1 -0
- package/dist/showcase/assets/resource-selector-card-C9zM67wN.js +39 -0
- package/dist/showcase/assets/rich-text-editor-DUWBkEdn.js +124 -0
- package/dist/showcase/assets/rich-text-editor-DjsgN-HX.js +143 -0
- package/dist/showcase/assets/rotate-ccw-ZkWMrEMJ.js +1 -0
- package/dist/showcase/assets/save-CQjTFBwm.js +1 -0
- package/dist/showcase/assets/schema-form-yfcV7ZHE.js +325 -0
- package/dist/showcase/assets/scroll-area-D73Zq5No.js +32 -0
- package/dist/showcase/assets/scroll-area-Toa6lE_G.js +1 -0
- package/dist/showcase/assets/select-BQWY3ndy.js +1 -0
- package/dist/showcase/assets/select-x02n3iNp.js +1 -0
- package/dist/showcase/assets/send-L-LNhDVx.js +1 -0
- package/dist/showcase/assets/separator-B57lhXSg.js +28 -0
- package/dist/showcase/assets/separator-kwh2KDqD.js +1 -0
- package/dist/showcase/assets/settings-Mbnp6hDe.js +1 -0
- package/dist/showcase/assets/sheet-DwYghriA.js +1 -0
- package/dist/showcase/assets/shield-D084AWSl.js +1 -0
- package/dist/showcase/assets/shield-alert-h6F2vnr-.js +1 -0
- package/dist/showcase/assets/shield-check-UiN6QwPl.js +1 -0
- package/dist/showcase/assets/shopping-bag-oxYbVKoz.js +1 -0
- package/dist/showcase/assets/sidebar-BWDrvFY1.js +1 -0
- package/dist/showcase/assets/sidebar.context-BhexAjPM.js +1 -0
- package/dist/showcase/assets/skeleton-BIS2X39p.js +29 -0
- package/dist/showcase/assets/skeleton-uyUucxJA.js +1 -0
- package/dist/showcase/assets/slider-DL--Jsf0.js +1 -0
- package/dist/showcase/assets/sliders-horizontal-C6SHwI9f.js +1 -0
- package/dist/showcase/assets/smart-card-DpvRHqI9.js +1 -0
- package/dist/showcase/assets/sonner-CvCutMP9.js +22 -0
- package/dist/showcase/assets/sortable.esm-COtQXiwU.js +5 -0
- package/dist/showcase/assets/sparkles-bMR7rbuC.js +1 -0
- package/dist/showcase/assets/spinner-CBXhPGyW.js +30 -0
- package/dist/showcase/assets/spinner-Dl2u80sI.js +49 -0
- package/dist/showcase/assets/spinner-ULnFdoGj.js +1 -0
- package/dist/showcase/assets/square-pen-3jbmTAqh.js +1 -0
- package/dist/showcase/assets/stacked-avatars-XKXaLCmk.js +1 -0
- package/dist/showcase/assets/star-0BUJBDj_.js +1 -0
- package/dist/showcase/assets/startOfDay-C8cGxdjJ.js +1 -0
- package/dist/showcase/assets/styles-Cl6qvIKS.js +1 -0
- package/dist/showcase/assets/suggestions-EB3TFZpP.js +126 -0
- package/dist/showcase/assets/switch-BbZ7_Rk-.js +1 -0
- package/dist/showcase/assets/switch-C0QtKm5H.js +1 -0
- package/dist/showcase/assets/sync-BAO20Naa.js +107 -0
- package/dist/showcase/assets/table-CnCYxSnD.js +509 -0
- package/dist/showcase/assets/table-DF7x4TGI.js +1 -0
- package/dist/showcase/assets/table-actions-CjaUIKQl.js +1 -0
- package/dist/showcase/assets/tabs-D3YHyrQ5.js +1 -0
- package/dist/showcase/assets/tabs-vUgN5IPn.js +19 -0
- package/dist/showcase/assets/tags-input-jtEAac1b.js +1 -0
- package/dist/showcase/assets/text-button-fiMDoWms.js +1 -0
- package/dist/showcase/assets/text-link-CSzy09hn.js +1 -0
- package/dist/showcase/assets/textarea-DnvQVkFU.js +1 -0
- package/dist/showcase/assets/textarea-mATRsiLJ.js +1 -0
- package/dist/showcase/assets/timelines-fQQIiGc4.js +200 -0
- package/dist/showcase/assets/toggle-group-B0hN7VRz.js +1 -0
- package/dist/showcase/assets/toggles-group-CXm2HDJ1.js +32 -0
- package/dist/showcase/assets/toggles-kwgQf4hQ.js +71 -0
- package/dist/showcase/assets/trash-2-xwHdvAn6.js +1 -0
- package/dist/showcase/assets/trending-up-CKnZUURN.js +1 -0
- package/dist/showcase/assets/truck-8P8-8rHh.js +1 -0
- package/dist/showcase/assets/typography-BP3SCf0c.js +223 -0
- package/dist/showcase/assets/ui-badge-eTC8uxVw.js +28 -0
- package/dist/showcase/assets/ui-card-AQkRKit0.js +30 -0
- package/dist/showcase/assets/ui-table-BTE7t50V.js +42 -0
- package/dist/showcase/assets/upload-tray-DpW8ZnxN.js +138 -0
- package/dist/showcase/assets/use-layout-link-DR4Apqbc.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CT1urU5D.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-DiHf8Ou_.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-NNLPWtyS.js +1 -0
- package/dist/showcase/assets/useCompositeItem-BE0Lg9Iz.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-OwLLy0R3.js +1 -0
- package/dist/showcase/assets/useLabelableId-Y-6YW07q.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CUTVNS1V.js +1 -0
- package/dist/showcase/assets/useRender-BiaVVD8L.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-DCMcmSgH.js +1 -0
- package/dist/showcase/assets/useValueChanged-kq4oH4So.js +1 -0
- package/dist/showcase/assets/user-BCzeUL5p.js +1 -0
- package/dist/showcase/assets/user-plus-CUbfQtkK.js +1 -0
- package/dist/showcase/assets/users-DOGJZmUN.js +1 -0
- package/dist/showcase/assets/vendor-profile-C7dXfVv_.js +37 -0
- package/dist/showcase/assets/video-DbaCGki8.js +1 -0
- package/dist/showcase/assets/wrench-TbDfItHQ.js +1 -0
- package/dist/showcase/assets/x-BpAEmld2.js +1 -0
- package/dist/showcase/assets/zap-E8G3kjwh.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +16 -1
- package/dist/_shared/ai-artifact-D4EjKoq6.cjs +0 -3
- package/dist/_shared/ai-artifact-D4EjKoq6.cjs.map +0 -1
- package/dist/_shared/ai-artifact-nlOrSeqT.js +0 -1099
- package/dist/_shared/ai-artifact-nlOrSeqT.js.map +0 -1
- package/dist/_shared/auth-C5HawWvp.cjs +0 -2
- package/dist/_shared/auth-C5HawWvp.cjs.map +0 -1
- package/dist/_shared/auth-DnMEJXP9.js +0 -643
- package/dist/_shared/auth-DnMEJXP9.js.map +0 -1
- package/dist/_shared/badge-6WYAMJwA.js +0 -108
- package/dist/_shared/badge-6WYAMJwA.js.map +0 -1
- package/dist/_shared/badge-CBof1rbF.cjs +0 -2
- package/dist/_shared/badge-CBof1rbF.cjs.map +0 -1
- package/dist/_shared/combobox-B4KmDZK0.cjs +0 -2
- package/dist/_shared/combobox-B4KmDZK0.cjs.map +0 -1
- package/dist/_shared/combobox-YUGi3xSc.js +0 -810
- package/dist/_shared/combobox-YUGi3xSc.js.map +0 -1
- package/dist/_shared/comments-GzXdwpq4.js +0 -952
- package/dist/_shared/comments-GzXdwpq4.js.map +0 -1
- package/dist/_shared/comments-Zj_foV1V.cjs +0 -2
- package/dist/_shared/comments-Zj_foV1V.cjs.map +0 -1
- package/dist/_shared/display-Dhy5ogxC.cjs +0 -2
- package/dist/_shared/display-Dhy5ogxC.cjs.map +0 -1
- package/dist/_shared/display-NBtWdAMl.js +0 -1154
- package/dist/_shared/display-NBtWdAMl.js.map +0 -1
- package/dist/_shared/form-field-B7taMVbC.js +0 -329
- package/dist/_shared/form-field-B7taMVbC.js.map +0 -1
- package/dist/_shared/form-field-rMGPvHFK.cjs +0 -2
- package/dist/_shared/form-field-rMGPvHFK.cjs.map +0 -1
- package/dist/_shared/forms-BweX9Lm8.cjs +0 -2
- package/dist/_shared/forms-BweX9Lm8.cjs.map +0 -1
- package/dist/_shared/forms-L1hyNKpZ.js +0 -3430
- package/dist/_shared/forms-L1hyNKpZ.js.map +0 -1
- package/dist/_shared/header-BSBPtGn4.cjs +0 -2
- package/dist/_shared/header-BSBPtGn4.cjs.map +0 -1
- package/dist/_shared/header-No6GSp4R.js +0 -360
- package/dist/_shared/header-No6GSp4R.js.map +0 -1
- package/dist/_shared/hooks-BkXvZ4py.js +0 -118
- package/dist/_shared/hooks-BkXvZ4py.js.map +0 -1
- package/dist/_shared/hooks-D3SbLBRk.cjs +0 -2
- package/dist/_shared/hooks-D3SbLBRk.cjs.map +0 -1
- package/dist/_shared/mentions-CA1Ka_Bv.cjs +0 -2
- package/dist/_shared/mentions-CA1Ka_Bv.cjs.map +0 -1
- package/dist/_shared/mentions-CdvvLGQG.js +0 -506
- package/dist/_shared/mentions-CdvvLGQG.js.map +0 -1
- package/dist/_shared/navigation-BemwPPC8.cjs +0 -2
- package/dist/_shared/navigation-BemwPPC8.cjs.map +0 -1
- package/dist/_shared/navigation-DY540HB0.js +0 -419
- package/dist/_shared/navigation-DY540HB0.js.map +0 -1
- package/dist/_shared/page-Cg_gNpyK.js +0 -262
- package/dist/_shared/page-Cg_gNpyK.js.map +0 -1
- package/dist/_shared/page-CpFWQuWU.cjs +0 -2
- package/dist/_shared/page-CpFWQuWU.cjs.map +0 -1
- package/dist/_shared/sidebar-BTFfxmNG.cjs +0 -2
- package/dist/_shared/sidebar-BTFfxmNG.cjs.map +0 -1
- package/dist/_shared/sidebar-wmztVpnO.js +0 -538
- package/dist/_shared/sidebar-wmztVpnO.js.map +0 -1
- package/dist/_shared/switch-BBP3u1z5.js +0 -55
- package/dist/_shared/switch-BBP3u1z5.js.map +0 -1
- package/dist/_shared/switch-zFZhhOEP.cjs +0 -2
- package/dist/_shared/switch-zFZhhOEP.cjs.map +0 -1
- package/dist/_shared/table-BItnJ8lG.cjs +0 -2
- package/dist/_shared/table-BItnJ8lG.cjs.map +0 -1
- package/dist/_shared/table-D3349b-v.js +0 -1189
- package/dist/_shared/table-D3349b-v.js.map +0 -1
- package/dist/_shared/workspace-BGVeTeJy.js +0 -357
- package/dist/_shared/workspace-BGVeTeJy.js.map +0 -1
- package/dist/_shared/workspace-CWyzTUmE.cjs +0 -2
- package/dist/_shared/workspace-CWyzTUmE.cjs.map +0 -1
- package/dist/showcase/assets/AreaChart-BYEewdc_.js +0 -6
- package/dist/showcase/assets/CompositeItem-Duekeg4m.js +0 -1
- package/dist/showcase/assets/CompositeRoot-BgNU3T7R.js +0 -1
- package/dist/showcase/assets/DialogTrigger-9xWmoeF5.js +0 -1
- package/dist/showcase/assets/LabelableContext-B3W_70Qk.js +0 -1
- package/dist/showcase/assets/PreviewLayout-nADJqRlP.js +0 -1
- package/dist/showcase/assets/RadioGroup-Bp1VCzxr.js +0 -1
- package/dist/showcase/assets/Separator-9PWX3shz.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-DwELw9xS.js +0 -1
- package/dist/showcase/assets/accordion-CfqHO9_z.js +0 -171
- package/dist/showcase/assets/accordion-variants-pkPHxkLW.js +0 -1
- package/dist/showcase/assets/action-menu-DFzSuDjI.js +0 -1
- package/dist/showcase/assets/activities-Bo97b2-I.js +0 -501
- package/dist/showcase/assets/activities-feed-card-D77gf27B.js +0 -1
- package/dist/showcase/assets/activity-BUlCWLI8.js +0 -1
- package/dist/showcase/assets/admin-CxTV4kZX.js +0 -80
- package/dist/showcase/assets/ai-Bym5H8bn.js +0 -41
- package/dist/showcase/assets/ai-artifact-DZVl1WmK.js +0 -2
- package/dist/showcase/assets/ai-chat-M3X5-PgT.js +0 -568
- package/dist/showcase/assets/ai-elements-DjppcMBD.js +0 -387
- package/dist/showcase/assets/ai-new-CXnrIi5S.js +0 -167
- package/dist/showcase/assets/ai-tool-call-DyMI8DqD.js +0 -1
- package/dist/showcase/assets/alert-D6Pygy2s.js +0 -62
- package/dist/showcase/assets/alert-DCrWLbEx.js +0 -93
- package/dist/showcase/assets/alert-qTNM0vld.js +0 -1
- package/dist/showcase/assets/api-key-list-CCpuHYHc.js +0 -73
- package/dist/showcase/assets/app-sidebar-CxTRNC5L.js +0 -1
- package/dist/showcase/assets/arrow-down--phuskCV.js +0 -1
- package/dist/showcase/assets/arrow-left-B__WWqyA.js +0 -1
- package/dist/showcase/assets/arrow-right-1-EvXxjB.js +0 -1
- package/dist/showcase/assets/arrow-up-lWotnmo7.js +0 -1
- package/dist/showcase/assets/arrow-up-right-IyQ3oeq0.js +0 -1
- package/dist/showcase/assets/avatar-gugtNx4D.js +0 -57
- package/dist/showcase/assets/avatar-n1nywTlx.js +0 -1
- package/dist/showcase/assets/badge-TuE-u3Hv.js +0 -28
- package/dist/showcase/assets/badge-check-CPDvpVzK.js +0 -1
- package/dist/showcase/assets/bell-DeCVddCA.js +0 -1
- package/dist/showcase/assets/bot-B_vzJEJH.js +0 -1
- package/dist/showcase/assets/box-z4O8t_K5.js +0 -1
- package/dist/showcase/assets/brain-DdKBE4Bh.js +0 -1
- package/dist/showcase/assets/brand-CfW7mgTY.js +0 -36
- package/dist/showcase/assets/breadcrumb-B4TBbKv3.js +0 -52
- package/dist/showcase/assets/breadcrumb-bF_sFVBL.js +0 -1
- package/dist/showcase/assets/breadcrumbs-CBv3EaMX.js +0 -1
- package/dist/showcase/assets/briefcase-ClqzeNt3.js +0 -1
- package/dist/showcase/assets/building-2-BQuWgjZj.js +0 -1
- package/dist/showcase/assets/button-CWKNCI82.js +0 -44
- package/dist/showcase/assets/button-group-BYhxtFwV.js +0 -1
- package/dist/showcase/assets/buttons-mBRyBw3Q.js +0 -270
- package/dist/showcase/assets/calendar-BgloJjlW.js +0 -1
- package/dist/showcase/assets/calendar-CJDWspzi.js +0 -1
- package/dist/showcase/assets/calendar-CgML2kJt.js +0 -16
- package/dist/showcase/assets/calendar-days-C0gTLVnY.js +0 -1
- package/dist/showcase/assets/camera-nIlaz4Sn.js +0 -1
- package/dist/showcase/assets/card-1ncRnRvq.js +0 -1
- package/dist/showcase/assets/card-CcgWzFB-.js +0 -188
- package/dist/showcase/assets/card-primitives-By4-RTuP.js +0 -1
- package/dist/showcase/assets/card-radio-group-DeX3qsRg.js +0 -1
- package/dist/showcase/assets/cards-DdqQr8rY.js +0 -328
- package/dist/showcase/assets/carousel-CV8ltDl8.js +0 -449
- package/dist/showcase/assets/chart-BNzHjskC.js +0 -358
- package/dist/showcase/assets/chart-column-CpTxRLEH.js +0 -1
- package/dist/showcase/assets/checkbox-CZTTm4Dv.js +0 -1
- package/dist/showcase/assets/chevron-down-LWBNHe9S.js +0 -1
- package/dist/showcase/assets/chevron-left-BsshO7nf.js +0 -1
- package/dist/showcase/assets/chevron-right-t68um2_G.js +0 -1
- package/dist/showcase/assets/chevron-up-DjhlESJB.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-ZUo0Do59.js +0 -1
- package/dist/showcase/assets/circle-BL52dLr9.js +0 -1
- package/dist/showcase/assets/circle-alert-CXCt6zxc.js +0 -1
- package/dist/showcase/assets/circle-check-CbiRRw7s.js +0 -1
- package/dist/showcase/assets/circle-check-big-BSgn7lyt.js +0 -1
- package/dist/showcase/assets/circle-dot-WEOpGGJf.js +0 -1
- package/dist/showcase/assets/circle-question-mark-C9hLlsD7.js +0 -1
- package/dist/showcase/assets/circle-x-BT9TJbJC.js +0 -1
- package/dist/showcase/assets/clock-3-CfRK8ckc.js +0 -1
- package/dist/showcase/assets/clock-D-3zf0c1.js +0 -1
- package/dist/showcase/assets/code-xml-CQYKKuBU.js +0 -1
- package/dist/showcase/assets/collapsible-BC0hQvat.js +0 -27
- package/dist/showcase/assets/collapsible-CRVtVDCF.js +0 -1
- package/dist/showcase/assets/combobox-D4VYvYCT.js +0 -696
- package/dist/showcase/assets/command-CxeHT4lL.js +0 -1
- package/dist/showcase/assets/command-Do_t_Zou.js +0 -1
- package/dist/showcase/assets/comment-composer-DoFwvVlq.js +0 -1
- package/dist/showcase/assets/comment-item-CT8UbVeg.js +0 -1
- package/dist/showcase/assets/comments-CqdXrjUn.js +0 -357
- package/dist/showcase/assets/commerce-B9V2Wo_q.js +0 -79
- package/dist/showcase/assets/commerce-extras-CNT3QmAT.js +0 -189
- package/dist/showcase/assets/composite-BXLXcagx.js +0 -1
- package/dist/showcase/assets/contact-card-BLcAXepj.js +0 -65
- package/dist/showcase/assets/content-container-DJVD3ZmI.js +0 -1
- package/dist/showcase/assets/copyable-od17NrMu.js +0 -96
- package/dist/showcase/assets/course-card-CdZQr5yy.js +0 -77
- package/dist/showcase/assets/cpu-B8kRNR1R.js +0 -1
- package/dist/showcase/assets/credit-card-BYMQj03s.js +0 -1
- package/dist/showcase/assets/currency-Cxv3Cp6B.js +0 -149
- package/dist/showcase/assets/dark-surfaces-Cfp58iFb.js +0 -90
- package/dist/showcase/assets/database-DuUABvxU.js +0 -1
- package/dist/showcase/assets/date-block-E9qfY7W7.js +0 -1
- package/dist/showcase/assets/date-picker-I8BdaiiU.js +0 -1
- package/dist/showcase/assets/date-pickers-BLJaqhcS.js +0 -73
- package/dist/showcase/assets/dense-info-Bk1K_7Ww.js +0 -106
- package/dist/showcase/assets/dialog-BuatDnQ9.js +0 -1
- package/dist/showcase/assets/dialog-DCx-LydW.js +0 -1
- package/dist/showcase/assets/display-Bt7busw5.js +0 -403
- package/dist/showcase/assets/dist-BPyBHOXU.js +0 -45
- package/dist/showcase/assets/dollar-sign-qXQSS6Gh.js +0 -1
- package/dist/showcase/assets/download-B2JAmHmJ.js +0 -1
- package/dist/showcase/assets/dropdown-menu-DXT3BZLa.js +0 -1
- package/dist/showcase/assets/dropzone-BKIxDJNy.js +0 -1
- package/dist/showcase/assets/earth-7-Z3Gv2v.js +0 -1
- package/dist/showcase/assets/ellipsis-6Krb3RRW.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-DeOMIw1J.js +0 -1
- package/dist/showcase/assets/empty-BSYKaeXQ.js +0 -1
- package/dist/showcase/assets/empty-item-YElgv25f.js +0 -49
- package/dist/showcase/assets/empty-state-D-LrvnKF.js +0 -1
- package/dist/showcase/assets/empty-state-dNh1GtVU.js +0 -188
- package/dist/showcase/assets/enhanced-activities-Bw99ItYl.js +0 -361
- package/dist/showcase/assets/enhanced-combobox-CqLZmU3K.js +0 -1
- package/dist/showcase/assets/event-calendar-CcSi7g5A.js +0 -138
- package/dist/showcase/assets/event-log-2uq-eYxh.js +0 -330
- package/dist/showcase/assets/example-CTJ8AdNR.js +0 -1
- package/dist/showcase/assets/external-link-D0gqSa1q.js +0 -1
- package/dist/showcase/assets/eye-CDMCDLei.js +0 -1
- package/dist/showcase/assets/feature-announcement-BlyNck35.js +0 -34
- package/dist/showcase/assets/file-Y5EbzufX.js +0 -1
- package/dist/showcase/assets/file-text-DH1mBuPi.js +0 -1
- package/dist/showcase/assets/filters-BtHF4GSM.js +0 -78
- package/dist/showcase/assets/flag-CJ08LwLY.js +0 -1
- package/dist/showcase/assets/folder-open-DODo2pjy.js +0 -1
- package/dist/showcase/assets/form-field-CHY7jh1q.js +0 -1
- package/dist/showcase/assets/format-DYJqAuDM.js +0 -1
- package/dist/showcase/assets/forms-DgvQQXHO.js +0 -862
- package/dist/showcase/assets/frame-CdKicP4A.js +0 -167
- package/dist/showcase/assets/getPseudoElementBounds-D9-Hr3mO.js +0 -1
- package/dist/showcase/assets/gift-DD8O7cld.js +0 -1
- package/dist/showcase/assets/giftcard-cards-Dp9eYodY.js +0 -85
- package/dist/showcase/assets/git-branch-DZq1Vo2G.js +0 -1
- package/dist/showcase/assets/global-search-BqDotXql.js +0 -215
- package/dist/showcase/assets/global-search-PH6LXqZw.js +0 -1
- package/dist/showcase/assets/globe-mRTwrUxM.js +0 -1
- package/dist/showcase/assets/gradient-card-CaL88YKv.js +0 -58
- package/dist/showcase/assets/hash-DuqvHQHv.js +0 -1
- package/dist/showcase/assets/header-CiNgDop3.js +0 -1
- package/dist/showcase/assets/header-notifications-B9XMBsK_.js +0 -1
- package/dist/showcase/assets/heart-DsGJfnDx.js +0 -1
- package/dist/showcase/assets/house-B504aFIP.js +0 -1
- package/dist/showcase/assets/icon-badge-DMNu8xb5.js +0 -1
- package/dist/showcase/assets/image-C3DaMxmn.js +0 -1
- package/dist/showcase/assets/inbox-BWKQMLMx.js +0 -1
- package/dist/showcase/assets/index-DN3tqopz.css +0 -2
- package/dist/showcase/assets/index-DaYVSqKu.js +0 -10
- package/dist/showcase/assets/inertValue-DrtTkMGx.js +0 -1
- package/dist/showcase/assets/info-_FrGoCay.js +0 -1
- package/dist/showcase/assets/inline-stat-BYu-tiUU.js +0 -1
- package/dist/showcase/assets/input-C96HMHWR.js +0 -1
- package/dist/showcase/assets/input-fMPi7XxI.js +0 -1
- package/dist/showcase/assets/input-group-BZnSgFCn.js +0 -47
- package/dist/showcase/assets/input-group-CVONNP3T.js +0 -1
- package/dist/showcase/assets/inputs-Blh0LJ8-.js +0 -155
- package/dist/showcase/assets/invoice-header-Bpo4iwX3.js +0 -36
- package/dist/showcase/assets/invoice-items-OVIrbG0k.js +0 -36
- package/dist/showcase/assets/invoice-mini-CaOMTiUO.js +0 -14
- package/dist/showcase/assets/invoice-table-BXd_HhUg.js +0 -30
- package/dist/showcase/assets/isSameDay-NBVO9AKF.js +0 -1
- package/dist/showcase/assets/isToday-Bk5HMXWn.js +0 -1
- package/dist/showcase/assets/italic-BOv5bW4H.js +0 -1
- package/dist/showcase/assets/item-B4rdcVVp.js +0 -134
- package/dist/showcase/assets/item-BVt0zZ12.js +0 -1
- package/dist/showcase/assets/item-C4Xk3DC1.js +0 -1
- package/dist/showcase/assets/kanban-BXbelelR.js +0 -186
- package/dist/showcase/assets/label-Cv6wotdv.js +0 -1
- package/dist/showcase/assets/languages-BofyvcCF.js +0 -1
- package/dist/showcase/assets/layers-DJK0t5px.js +0 -1
- package/dist/showcase/assets/layout-app-shell-D_yMonSl.js +0 -608
- package/dist/showcase/assets/layout-auth-BTvSTwUz.js +0 -754
- package/dist/showcase/assets/layout-containers-PMuo__2O.js +0 -101
- package/dist/showcase/assets/layout-header-DQ3zeCHz.js +0 -170
- package/dist/showcase/assets/layout-page-CbvWdHrK.js +0 -122
- package/dist/showcase/assets/layout-primitives-6nsFFIdE.js +0 -34
- package/dist/showcase/assets/layout-sidebar-CKqeVCSY.js +0 -224
- package/dist/showcase/assets/layout-users-Cypq-42s.js +0 -117
- package/dist/showcase/assets/layout-workspace-DiRR8vDv.js +0 -183
- package/dist/showcase/assets/lock-DXmvLEEx.js +0 -1
- package/dist/showcase/assets/lock-keyhole-Cu6M-jjE.js +0 -1
- package/dist/showcase/assets/mail-CXVFHkzh.js +0 -1
- package/dist/showcase/assets/mail-check-BNEu3j2a.js +0 -1
- package/dist/showcase/assets/map-DnE1pFCQ.js +0 -124
- package/dist/showcase/assets/map-pin-CpOVa8IH.js +0 -1
- package/dist/showcase/assets/media-library-C-KfEvm4.js +0 -695
- package/dist/showcase/assets/mention-inline-suggestions-DlmslsfR.js +0 -1
- package/dist/showcase/assets/mentions-C8ZdNFuC.js +0 -138
- package/dist/showcase/assets/menus-B8yUL75K.js +0 -165
- package/dist/showcase/assets/message-square-DNOTaOFs.js +0 -1
- package/dist/showcase/assets/metadata-list-BQAanxM-.js +0 -1
- package/dist/showcase/assets/metadata-list-DL9qgDAp.js +0 -288
- package/dist/showcase/assets/metric-CYi09Ltx.js +0 -1
- package/dist/showcase/assets/metric-bar-CQH1z8T3.js +0 -1
- package/dist/showcase/assets/metric-grid-H1ixqMCI.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-BBzWzFZ-.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-C7Z2ITl4.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-CZZSWiMn.js +0 -50
- package/dist/showcase/assets/metrics-comparison-BPqz8k30.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-C3NYZAfx.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-RjHfm7um.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-DnBjyDH4.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-CKn405qb.js +0 -42
- package/dist/showcase/assets/metrics-overview-D8YGtdrh.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-Dxh6cAha.js +0 -54
- package/dist/showcase/assets/minus-20OTSSxf.js +0 -1
- package/dist/showcase/assets/money-display-BoiAMxH8.js +0 -1
- package/dist/showcase/assets/month-year-picker-Bl59Ygq9.js +0 -1
- package/dist/showcase/assets/navigation-B8d2CDU6.js +0 -90
- package/dist/showcase/assets/navigation-D16JX3kL.js +0 -230
- package/dist/showcase/assets/navigation-extras-Dm83uT6i.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-DznDpP9M.js +0 -119
- package/dist/showcase/assets/overlays-CzlSqbFz.js +0 -408
- package/dist/showcase/assets/overlays-DUFqbkb9.js +0 -159
- package/dist/showcase/assets/package-BCXIwEPz.js +0 -1
- package/dist/showcase/assets/package-check-Ol-Cw3j-.js +0 -1
- package/dist/showcase/assets/page-action-button-DpzdSYvw.js +0 -1
- package/dist/showcase/assets/page-header-B_b7SqW8.js +0 -1
- package/dist/showcase/assets/pagination-BPDQo9Dl.js +0 -1
- package/dist/showcase/assets/pagination-PvkEX0qs.js +0 -42
- package/dist/showcase/assets/paperclip-CznEsmLN.js +0 -1
- package/dist/showcase/assets/password-input-CWMY5q3b.js +0 -1
- package/dist/showcase/assets/pencil-Cl9qi90g.js +0 -1
- package/dist/showcase/assets/phone-DbvK_QQJ.js +0 -1
- package/dist/showcase/assets/plus-CO8t66Yo.js +0 -1
- package/dist/showcase/assets/popover-3QIVx9lU.js +0 -1
- package/dist/showcase/assets/popover-Cyg9oYIU.js +0 -1
- package/dist/showcase/assets/popover-menu-DJPHeIL1.js +0 -1
- package/dist/showcase/assets/products-WsU-qdMz.js +0 -407
- package/dist/showcase/assets/progress-C61sf-qt.js +0 -1
- package/dist/showcase/assets/progress-PvTl8Fgf.js +0 -18
- package/dist/showcase/assets/props-table-C8la6vcG.js +0 -1
- package/dist/showcase/assets/props.generated-vFrhDrth.json +0 -38618
- package/dist/showcase/assets/quote-N1_lRDnX.js +0 -1
- package/dist/showcase/assets/receipt-C6a_WyLu.js +0 -1
- package/dist/showcase/assets/receipt-text-CDOh8FAv.js +0 -1
- package/dist/showcase/assets/refresh-cw-D4-ECZ1x.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-DqAP3zJd.js +0 -1
- package/dist/showcase/assets/rich-text-editor-CU0IZpwV.js +0 -143
- package/dist/showcase/assets/rich-text-editor-DCU7mMoO.js +0 -124
- package/dist/showcase/assets/rotate-ccw-Dd5zEmr7.js +0 -1
- package/dist/showcase/assets/save-DDmFSQli.js +0 -1
- package/dist/showcase/assets/schema-form-B7naqMvv.js +0 -325
- package/dist/showcase/assets/scroll-area-CdaYm4UK.js +0 -32
- package/dist/showcase/assets/scroll-area-DwWSHYHB.js +0 -1
- package/dist/showcase/assets/select-CNzpb5ug.js +0 -1
- package/dist/showcase/assets/select-DBXZ_Wzf.js +0 -1
- package/dist/showcase/assets/send-eDm7YMmA.js +0 -1
- package/dist/showcase/assets/separator-4IC9ED7s.js +0 -1
- package/dist/showcase/assets/separator-DPGDsZpG.js +0 -28
- package/dist/showcase/assets/settings-IANZGo2i.js +0 -1
- package/dist/showcase/assets/sheet-2oCce5ae.js +0 -1
- package/dist/showcase/assets/shield-CDZhhvFW.js +0 -1
- package/dist/showcase/assets/shield-alert-5hL3sdf3.js +0 -1
- package/dist/showcase/assets/shield-check-CaO2dhVS.js +0 -1
- package/dist/showcase/assets/shopping-bag-Bt3iK-Bv.js +0 -1
- package/dist/showcase/assets/sidebar-Cds60-PS.js +0 -1
- package/dist/showcase/assets/sidebar.context-CdH_DH9M.js +0 -1
- package/dist/showcase/assets/skeleton-2HajJKO4.js +0 -29
- package/dist/showcase/assets/skeleton-CGEJwPdD.js +0 -1
- package/dist/showcase/assets/slider-BjQViBR0.js +0 -1
- package/dist/showcase/assets/sliders-horizontal-C3JH5WQu.js +0 -1
- package/dist/showcase/assets/smart-card-CHouYi8U.js +0 -1
- package/dist/showcase/assets/sonner-Cog559j7.js +0 -22
- package/dist/showcase/assets/sortable.esm-hUEKsxpQ.js +0 -5
- package/dist/showcase/assets/sparkles-B18eTHVN.js +0 -1
- package/dist/showcase/assets/spinner-BSI97i4D.js +0 -1
- package/dist/showcase/assets/spinner-D0WhVyye.js +0 -30
- package/dist/showcase/assets/spinner-DQmJ7k9y.js +0 -49
- package/dist/showcase/assets/square-pen-CLyDWdhj.js +0 -1
- package/dist/showcase/assets/stacked-avatars-ECnU27uV.js +0 -1
- package/dist/showcase/assets/star-C3mhkpSK.js +0 -1
- package/dist/showcase/assets/startOfDay-ECIxhJGC.js +0 -1
- package/dist/showcase/assets/styles-CDD7mDye.js +0 -1
- package/dist/showcase/assets/suggestions-DOW6NBJp.js +0 -126
- package/dist/showcase/assets/switch-D59YKmf6.js +0 -1
- package/dist/showcase/assets/switch-NICmdoPn.js +0 -1
- package/dist/showcase/assets/sync-B8nBZXQ9.js +0 -107
- package/dist/showcase/assets/table-CckompuR.js +0 -382
- package/dist/showcase/assets/table-DtA4-Q0p.js +0 -1
- package/dist/showcase/assets/table-actions-DdoPJTMy.js +0 -1
- package/dist/showcase/assets/tabs-BrC_HxL_.js +0 -1
- package/dist/showcase/assets/tabs-UVxr80vY.js +0 -19
- package/dist/showcase/assets/tags-input-iDfvhzZD.js +0 -1
- package/dist/showcase/assets/text-button-DHFCLCoc.js +0 -1
- package/dist/showcase/assets/text-link-nCLLDcS_.js +0 -1
- package/dist/showcase/assets/textarea-DsSuQHQY.js +0 -1
- package/dist/showcase/assets/textarea-DyGI3Kcn.js +0 -1
- package/dist/showcase/assets/timelines-JmMcH657.js +0 -200
- package/dist/showcase/assets/toggle-group-BZKzMmC8.js +0 -1
- package/dist/showcase/assets/toggles-BSJvy4Tw.js +0 -71
- package/dist/showcase/assets/toggles-group-Bsc6eaWw.js +0 -32
- package/dist/showcase/assets/trash-2-C9AC7Pcv.js +0 -1
- package/dist/showcase/assets/trending-up-CGaDZj0S.js +0 -1
- package/dist/showcase/assets/truck-Dq6heokm.js +0 -1
- package/dist/showcase/assets/typography-ByvwR6Kg.js +0 -223
- package/dist/showcase/assets/ui-badge-BYgJSE_w.js +0 -28
- package/dist/showcase/assets/ui-card-BdueUfow.js +0 -30
- package/dist/showcase/assets/ui-table-CxtCQUsg.js +0 -42
- package/dist/showcase/assets/upload-tray-DKJ8nFZp.js +0 -138
- package/dist/showcase/assets/use-layout-link-CGBQHZon.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CywAbxVB.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-B2bZzE7D.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-SLdY_s6S.js +0 -1
- package/dist/showcase/assets/useCompositeItem-g6aCBp84.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-DK0Tpege.js +0 -1
- package/dist/showcase/assets/useLabelableId-hdKzFCp2.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CnhifZ1E.js +0 -1
- package/dist/showcase/assets/useRender-QhawWhpb.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-Cht7Sa7e.js +0 -1
- package/dist/showcase/assets/useValueChanged-DURO1kfZ.js +0 -1
- package/dist/showcase/assets/user-plus-DbOuTfr7.js +0 -1
- package/dist/showcase/assets/user-u65Fo7k7.js +0 -1
- package/dist/showcase/assets/users-BUb7CmVp.js +0 -1
- package/dist/showcase/assets/vendor-profile-wfI3PBuO.js +0 -37
- package/dist/showcase/assets/video-e4hDbTQ2.js +0 -1
- package/dist/showcase/assets/wrench-CBUvtxdr.js +0 -1
- package/dist/showcase/assets/x-oVTJnCJn.js +0 -1
- package/dist/showcase/assets/zap-CzABYL3c.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-B7taMVbC.js","names":[],"sources":["../../src/components/base/forms/fields/decimal-input.tsx","../../src/components/base/forms/fields/currency-input.tsx","../../src/components/base/forms/fields/money-input.tsx","../../src/components/base/forms/form-field.tsx"],"sourcesContent":["/**\n * DecimalInput — text-based numeric input with decimal-place enforcement,\n * locale-friendly comma → dot normalisation, optional min/max clamping,\n * rounding mode (`round` / `floor` / `ceil` / `half-even`), and optional\n * stepper buttons when `step` is set.\n *\n * Wraps the base `Input` so all add-on / icon / clear / loading features\n * still work. Extra features layered on top:\n *\n * - `step` — when set, renders − / + stepper buttons that snap the value\n * to a multiple of `step` (anchored at `min` if provided, else 0).\n * - `roundingMode` — controls how stepper / blur normalisation rounds\n * half values; default `'round'` (round-half-up).\n * - `normalizeOnBlur` (default `true`) — pads the displayed value to the\n * full `decimalPlaces` count and clamps to `[min, max]` when the field\n * loses focus.\n *\n * The `value` prop is always a plain string (consumers parse it as needed)\n * so RHF / Inertia can treat it like any other input.\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { Minus, Plus } from 'lucide-react';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\nimport { resolveFormControlSize } from '../form-sizing';\nimport { Input, type InputProps } from './input';\n\nexport type DecimalRoundingMode = 'round' | 'floor' | 'ceil' | 'half-even';\n\nexport interface DecimalInputStrings {\n\tdecrement: string;\n\tincrement: string;\n}\n\nexport const defaultDecimalInputStrings: DecimalInputStrings = {\n\tdecrement: 'Decrement',\n\tincrement: 'Increment',\n};\n\nexport interface DecimalInputProps extends Omit<InputProps, 'type' | 'inputMode' | 'strings'> {\n\tdecimalPlaces?: number;\n\tmin?: number;\n\tmax?: number;\n\tallowNegative?: boolean;\n\tallowEmpty?: boolean;\n\t/** When set, renders − / + steppers and snaps the value to multiples of `step`. */\n\tstep?: number;\n\t/** How to round when normalising on blur or stepping. Default `'round'`. */\n\troundingMode?: DecimalRoundingMode;\n\t/** Pad to full decimalPlaces and clamp to [min, max] on blur. Default `true`. */\n\tnormalizeOnBlur?: boolean;\n\t/** String overrides for stepper aria-labels. */\n\tstrings?: StringsProp<DecimalInputStrings>;\n}\n\nconst formatDecimalValue = (\n\tvalue: string,\n\tdecimalPlaces: number,\n\tallowNegative: boolean,\n): string => {\n\tif (!value) return '';\n\n\tlet formatted = value;\n\tformatted = formatted.replace(/,/g, '.');\n\n\tif (allowNegative) {\n\t\tformatted = formatted.replace(/[^\\d.-]/g, '');\n\t} else {\n\t\tformatted = formatted.replace(/[^\\d.]/g, '');\n\t}\n\n\tif (allowNegative && formatted.includes('-')) {\n\t\tconst hasLeadingMinus = formatted.startsWith('-');\n\t\tformatted = formatted.replace(/-/g, '');\n\t\tif (hasLeadingMinus) formatted = '-' + formatted;\n\t}\n\n\tconst parts = formatted.split('.');\n\tif (parts.length > 2) {\n\t\tformatted = parts[0] + '.' + parts.slice(1).join('');\n\t}\n\n\tif (parts.length === 2 && parts[1].length > decimalPlaces) {\n\t\tformatted = parts[0] + '.' + parts[1].substring(0, decimalPlaces);\n\t}\n\n\treturn formatted;\n};\n\nconst isWithinBounds = (value: string, min?: number, max?: number): boolean => {\n\tif (!value || value === '-') return true;\n\tconst numValue = parseFloat(value);\n\tif (Number.isNaN(numValue)) return true;\n\tif (min !== undefined && numValue < min) return false;\n\tif (max !== undefined && numValue > max) return false;\n\treturn true;\n};\n\nfunction applyRounding(value: number, decimals: number, mode: DecimalRoundingMode): number {\n\tconst factor = Math.pow(10, decimals);\n\tconst shifted = value * factor;\n\tswitch (mode) {\n\t\tcase 'floor':\n\t\t\treturn Math.floor(shifted) / factor;\n\t\tcase 'ceil':\n\t\t\treturn Math.ceil(shifted) / factor;\n\t\tcase 'half-even': {\n\t\t\tconst floor = Math.floor(shifted);\n\t\t\tconst diff = shifted - floor;\n\t\t\tif (diff > 0.5) return (floor + 1) / factor;\n\t\t\tif (diff < 0.5) return floor / factor;\n\t\t\treturn (floor % 2 === 0 ? floor : floor + 1) / factor;\n\t\t}\n\t\tcase 'round':\n\t\tdefault:\n\t\t\treturn Math.round(shifted) / factor;\n\t}\n}\n\nfunction clamp(n: number, min?: number, max?: number): number {\n\tlet next = n;\n\tif (min !== undefined) next = Math.max(min, next);\n\tif (max !== undefined) next = Math.min(max, next);\n\treturn next;\n}\n\nfunction snapToStep(\n\tcurrent: number,\n\tdelta: number,\n\tstep: number,\n\tmin?: number,\n\tmode: DecimalRoundingMode = 'round',\n): number {\n\tconst anchor = min ?? 0;\n\tconst stepsFromAnchor = (current - anchor) / step;\n\tconst rounded =\n\t\tmode === 'floor'\n\t\t\t? Math.floor(stepsFromAnchor)\n\t\t\t: mode === 'ceil'\n\t\t\t\t? Math.ceil(stepsFromAnchor)\n\t\t\t\t: Math.round(stepsFromAnchor);\n\tconst stepped = anchor + (rounded + delta) * step;\n\treturn Number(stepped.toFixed(12));\n}\n\nfunction fireChange(\n\ttarget: HTMLInputElement,\n\tvalue: string,\n\tonChange?: InputProps['onChange'],\n) {\n\t// Write the value to the DOM first so UNCONTROLLED inputs actually reflect\n\t// stepper clicks and blur-normalisation. (Previously this only called\n\t// onChange, so steppers were a no-op on uncontrolled fields.) Use the native\n\t// value setter so React's input value-tracker stays in sync for controlled\n\t// consumers, which then reconcile through their onChange + re-render.\n\tconst nativeSetter = Object.getOwnPropertyDescriptor(\n\t\twindow.HTMLInputElement.prototype,\n\t\t'value',\n\t)?.set;\n\tif (nativeSetter) nativeSetter.call(target, value);\n\telse target.value = value;\n\n\tif (!onChange) return;\n\tconst event = {\n\t\ttarget,\n\t\tcurrentTarget: target,\n\t\ttype: 'change',\n\t\tbubbles: false,\n\t\tcancelable: false,\n\t} as unknown as React.ChangeEvent<HTMLInputElement>;\n\tonChange(event);\n}\n\nconst STEPPER_SIZE_CLASS: Record<FormControlSize, string> = {\n\tsm: 'w-8',\n\tbase: 'w-9',\n\tlg: 'w-10',\n};\n\nfunction DecimalInputImpl(\n\t{\n\t\tdecimalPlaces = 2,\n\t\tmin,\n\t\tmax,\n\t\tallowNegative = true,\n\t\tallowEmpty = true,\n\t\tstep,\n\t\troundingMode = 'round',\n\t\tnormalizeOnBlur = true,\n\t\tonChange,\n\t\tonBlur,\n\t\tplaceholder,\n\t\tclassName,\n\t\tvalue: controlledValue,\n\t\tdefaultValue,\n\t\tdisabled,\n\t\tsize: sizeProp,\n\t\tstrings: stringsProp,\n\t\t...props\n\t}: DecimalInputProps,\n\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n\tconst { defaultControlSize } = useFormsConfig();\n\tconst size: FormControlSize = resolveFormControlSize(sizeProp, defaultControlSize);\n\tconst strings = useStrings(defaultDecimalInputStrings, stringsProp);\n\tconst validDecimalPlaces = Math.min(12, Math.max(0, decimalPlaces));\n\tconst inputRef = React.useRef<HTMLInputElement | null>(null);\n\n\tconst handleChange = useCallback(\n\t\t(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst newValue = e.target.value;\n\n\t\t\tif (!newValue && allowEmpty) {\n\t\t\t\tonChange?.(e);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst formatted = formatDecimalValue(newValue, validDecimalPlaces, allowNegative);\n\t\t\tif (!isWithinBounds(formatted, min, max)) return;\n\n\t\t\tif (formatted !== newValue) {\n\t\t\t\tconst modifiedEvent = {\n\t\t\t\t\t...e,\n\t\t\t\t\ttarget: { ...e.target, value: formatted },\n\t\t\t\t\tcurrentTarget: { ...e.currentTarget, value: formatted },\n\t\t\t\t} as React.ChangeEvent<HTMLInputElement>;\n\t\t\t\tonChange?.(modifiedEvent);\n\t\t\t} else {\n\t\t\t\tonChange?.(e);\n\t\t\t}\n\t\t},\n\t\t[onChange, validDecimalPlaces, allowNegative, allowEmpty, min, max],\n\t);\n\n\tconst handleBlur = useCallback(\n\t\t(e: React.FocusEvent<HTMLInputElement>) => {\n\t\t\tonBlur?.(e);\n\t\t\tif (!normalizeOnBlur) return;\n\t\t\tconst raw = e.target.value;\n\t\t\tif (!raw && allowEmpty) return;\n\t\t\tconst num = Number.parseFloat(raw.replace(',', '.'));\n\t\t\tif (!Number.isFinite(num)) return;\n\t\t\tconst clamped = clamp(num, min, max);\n\t\t\tconst rounded = applyRounding(clamped, validDecimalPlaces, roundingMode);\n\t\t\tconst next = rounded.toFixed(validDecimalPlaces);\n\t\t\tif (next !== raw && inputRef.current) {\n\t\t\t\tfireChange(inputRef.current, next, onChange);\n\t\t\t}\n\t\t},\n\t\t[onBlur, onChange, normalizeOnBlur, allowEmpty, min, max, validDecimalPlaces, roundingMode],\n\t);\n\n\tconst adjust = useCallback(\n\t\t(delta: number) => {\n\t\t\tif (disabled || step === undefined) return;\n\t\t\tconst target = inputRef.current;\n\t\t\tif (!target) return;\n\t\t\tconst raw = target.value;\n\t\t\tconst current = Number.parseFloat(raw.replace(',', '.'));\n\t\t\tconst base = Number.isFinite(current) ? current : (min ?? 0);\n\t\t\tconst snapped = clamp(snapToStep(base, delta, step, min, roundingMode), min, max);\n\t\t\tconst next = applyRounding(snapped, validDecimalPlaces, roundingMode).toFixed(validDecimalPlaces);\n\t\t\tfireChange(target, next, onChange);\n\t\t},\n\t\t[disabled, step, min, max, roundingMode, validDecimalPlaces, onChange],\n\t);\n\n\tconst showSteppers = typeof step === 'number' && step > 0;\n\tconst placeholderResolved =\n\t\tplaceholder ?? (validDecimalPlaces > 0 ? `0.${'0'.repeat(validDecimalPlaces)}` : '0');\n\n\tif (showSteppers) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn('decimal-input--component', \n\t\t\t\t\t// Stepper segmented group — input + adjacent − / + buttons\n\t\t\t\t\t// share a single border radius so the group reads as one\n\t\t\t\t\t// control instead of three loose chips.\n\t\t\t\t\t'flex items-stretch overflow-hidden rounded-radius border border-input bg-transparent',\n\t\t\t\t\t'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n\t\t\t\t\tprops['aria-invalid'] && 'border-destructive ring-destructive/20',\n\t\t\t\t\tdisabled && 'opacity-50 cursor-not-allowed',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\taria-label={strings.decrement}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonClick={() => adjust(-1)}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'inline-flex shrink-0 items-center justify-center border-r border-input text-muted-foreground transition-colors',\n\t\t\t\t\t\tSTEPPER_SIZE_CLASS[size],\n\t\t\t\t\t\t'hover:bg-muted hover:text-foreground',\n\t\t\t\t\t\t'disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Minus className=\"size-3.5\" />\n\t\t\t\t</button>\n\t\t\t\t<Input\n\t\t\t\t\tsize={size}\n\t\t\t\t\tref={(node) => { inputRef.current = node; if (typeof forwardedRef === \"function\") forwardedRef(node); else if (forwardedRef) forwardedRef.current = node; }}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tinputMode={validDecimalPlaces > 0 ? 'decimal' : 'numeric'}\n\t\t\t\t\tplaceholder={placeholderResolved}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\tvalue={controlledValue}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-1 tabular-nums text-center border-0 shadow-none rounded-none focus-visible:ring-0 focus-visible:border-0',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\taria-label={strings.increment}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonClick={() => adjust(1)}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'inline-flex shrink-0 items-center justify-center border-l border-input text-muted-foreground transition-colors',\n\t\t\t\t\t\tSTEPPER_SIZE_CLASS[size],\n\t\t\t\t\t\t'hover:bg-muted hover:text-foreground',\n\t\t\t\t\t\t'disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Plus className=\"size-3.5\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Input\n\t\t\tsize={size}\n\t\t\tref={(node) => { inputRef.current = node; if (typeof forwardedRef === \"function\") forwardedRef(node); else if (forwardedRef) forwardedRef.current = node; }}\n\t\t\ttype=\"text\"\n\t\t\tinputMode={validDecimalPlaces > 0 ? 'decimal' : 'numeric'}\n\t\t\tplaceholder={placeholderResolved}\n\t\t\tonChange={handleChange}\n\t\t\tonBlur={handleBlur}\n\t\t\tvalue={controlledValue}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tdisabled={disabled}\n\t\t\tclassName={cn('tabular-nums text-end', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst DecimalInput = React.forwardRef<HTMLInputElement, DecimalInputProps>(DecimalInputImpl);\nDecimalInput.displayName = 'DecimalInput';\n\nexport { DecimalInput };\n","import { useState, useCallback, useEffect, useMemo, memo, forwardRef, type ForwardedRef } from 'react';\nimport * as baseui from '@/components/ui/select';\nimport { Label } from '@/components/typography';\nimport { useFormsConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\nimport { formControlSizeClasses, resolveFormControlSize } from '../form-sizing';\nimport { DecimalInput, type DecimalInputProps } from './decimal-input';\n\nexport interface CurrencyOption {\n value: string;\n label: string;\n}\n\nexport interface CurrencyInputProps extends Omit<DecimalInputProps, 'label' | 'hint' | 'helperText' | 'error'> {\n /** Current currency value */\n currency?: string;\n\n /** Default currency if uncontrolled */\n defaultCurrency?: string;\n\n /** List of available currencies (simple strings or objects with value/label) */\n currencies?: (string | CurrencyOption)[];\n\n /** Callback when currency changes */\n onCurrencyChange?: (currency: string) => void;\n\n /** Position of currency dropdown */\n currencyPosition?: 'start' | 'end';\n\n /** Disable currency selection */\n disableCurrencySelector?: boolean;\n\n /** Placeholder for currency dropdown */\n currencyPlaceholder?: string;\n\n /** Width of the currency dropdown */\n currencyWidth?: string;\n\n /** Label for currency field (sub-label) */\n currencyLabel?: string;\n\n /** Error state for styling (passed from FormField) */\n invalid?: boolean;\n\n /** Called when the input is misconfigured (mismatched currency/defaultCurrency\n * while the selector is disabled, missing currency, etc.). The library\n * also DEV-logs the same message to the console. */\n onConfigError?: (\n message: string,\n details: { currency?: string; defaultCurrency?: string; disableCurrencySelector?: boolean },\n ) => void;\n}\n\n// Common currency symbols\nconst CURRENCY_SYMBOLS: Record<string, string> = {\n USD: '$',\n EUR: '€',\n GBP: '£',\n BGN: 'лв',\n JPY: '¥',\n CNY: '¥',\n CHF: 'CHF',\n CAD: 'C$',\n AUD: 'A$',\n};\n\nconst normalizeCurrencies = (currencies?: (string | CurrencyOption)[]): CurrencyOption[] => {\n if (!currencies || currencies.length === 0) return [];\n\n return currencies.map((currency) => {\n if (typeof currency === 'string') {\n const symbol = CURRENCY_SYMBOLS[currency] || currency;\n return {\n value: currency,\n label: `${symbol} ${currency}`,\n };\n }\n return currency;\n });\n};\n\nfunction CurrencyInputImpl(\n {\n currency: controlledCurrency,\n defaultCurrency,\n currencies,\n onCurrencyChange,\n currencyPosition = 'start',\n disableCurrencySelector = false,\n currencyPlaceholder,\n currencyWidth = 'w-28',\n currencyLabel,\n invalid,\n disabled,\n onConfigError,\n size: sizeProp,\n ...decimalInputProps\n }: CurrencyInputProps,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Memoize normalized currencies\n const normalizedCurrencies = useMemo(() => normalizeCurrencies(currencies), [currencies]);\n\n // Internal state for uncontrolled currency\n const [internalCurrency, setInternalCurrency] = useState(\n defaultCurrency ?? normalizedCurrencies[0]?.value ?? ''\n );\n\n // Determine if currency is controlled\n const isCurrencyControlled = controlledCurrency !== undefined;\n const selectedCurrency = isCurrencyControlled ? controlledCurrency : internalCurrency;\n\n useEffect(() => {\n const details = { currency: controlledCurrency, defaultCurrency, disableCurrencySelector };\n if (\n disableCurrencySelector &&\n typeof controlledCurrency === 'string' &&\n typeof defaultCurrency === 'string' &&\n controlledCurrency.trim() !== '' &&\n defaultCurrency.trim() !== '' &&\n controlledCurrency !== defaultCurrency\n ) {\n const message = '[CurrencyInput] currency/defaultCurrency mismatch while selector is disabled.';\n if (import.meta.env?.DEV) {\n console.warn(message, { currency: controlledCurrency, defaultCurrency });\n }\n onConfigError?.(message, details);\n }\n\n if (\n disableCurrencySelector &&\n (typeof selectedCurrency !== 'string' || selectedCurrency.trim().length === 0)\n ) {\n const message = '[CurrencyInput] disableCurrencySelector is enabled but no currency is provided.';\n if (import.meta.env?.DEV) {\n console.warn(message);\n }\n onConfigError?.(message, details);\n }\n }, [controlledCurrency, defaultCurrency, disableCurrencySelector, onConfigError, selectedCurrency]);\n\n // Handle currency change\n const handleCurrencyChange = useCallback(\n (newCurrency: string | null) => {\n if (newCurrency === null) return;\n if (!isCurrencyControlled) {\n setInternalCurrency(newCurrency);\n }\n onCurrencyChange?.(newCurrency);\n },\n [isCurrencyControlled, onCurrencyChange]\n );\n\n // Memoize trigger class names. Size flows through `formControlSizeClasses[size]`\n // so the trigger height matches the inner DecimalInput when a consumer sets\n // `<UIProvider forms={{ defaultControlSize }}>`.\n const triggerClassName = useMemo(\n () =>\n cn(\n 'border-input bg-transparent !shadow-none',\n formControlSizeClasses[size],\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n currencyWidth,\n disabled && 'opacity-50 cursor-not-allowed'\n ),\n [size, currencyWidth, disabled]\n );\n\n // Currency selector component\n const currencySelector = (\n <div className=\"space-y-2\">\n {!!currencyLabel && <Label className=\"leading-6\">{currencyLabel}</Label>}\n <baseui.Select\n value={selectedCurrency}\n onValueChange={(value) => handleCurrencyChange(value)}\n disabled={disabled || disableCurrencySelector}\n >\n <baseui.SelectTrigger aria-invalid={invalid || undefined} className={triggerClassName}>\n <baseui.SelectValue placeholder={currencyPlaceholder ?? ''} />\n </baseui.SelectTrigger>\n <baseui.SelectContent>\n <baseui.SelectGroup>\n {normalizedCurrencies.map((curr) => (\n <baseui.SelectItem key={curr.value} value={curr.value}>\n {curr.label}\n </baseui.SelectItem>\n ))}\n </baseui.SelectGroup>\n </baseui.SelectContent>\n </baseui.Select>\n </div>\n );\n\n return (\n <div className={cn('currency-input--component', 'flex items-start gap-2')}>\n {currencyPosition === 'start' && currencySelector}\n\n <div className=\"flex-1\">\n <DecimalInput\n ref={forwardedRef}\n size={size}\n decimalPlaces={2}\n allowNegative={false}\n disabled={disabled}\n invalid={invalid}\n {...decimalInputProps}\n />\n </div>\n\n {currencyPosition === 'end' && currencySelector}\n </div>\n );\n}\n\n// forwardRef + memo: forward to the underlying decimal input so consumers\n// can focus/measure programmatically.\nexport const CurrencyInput = memo(forwardRef<HTMLInputElement, CurrencyInputProps>(CurrencyInputImpl));\nCurrencyInput.displayName = 'CurrencyInput';\n","/**\n * MoneyInput (forms/fields) — `CurrencyInput` preset with a small default\n * currency list for back-compat and a callback shape that matches the\n * library's `CurrencyCode` typing.\n *\n * For the richer `MoneyInputData`-shaped helper with migration warnings and\n * form-field chrome, use `@/components/base/display/money-input` instead.\n */\nimport { forwardRef, useCallback } from 'react';\n\nimport { CurrencyInput, type CurrencyInputProps } from './currency-input';\nimport type { CurrencyCode } from '@/lib/ui-provider';\n\nexport interface MoneyInputProps extends Omit<CurrencyInputProps, 'currency' | 'defaultCurrency' | 'currencies' | 'onCurrencyChange'> {\n /** Current currency value (ISO 4217 code, e.g. 'USD'). */\n currency?: CurrencyCode;\n /** Default currency if uncontrolled. */\n defaultCurrency?: CurrencyCode;\n /** Available currencies for the inline picker. Defaults to `['USD', 'EUR']`\n * — pass your own list or wire `useMoneyConfig` at the consumer site for\n * real production use. */\n currencies?: CurrencyCode[];\n /** Callback when the user changes the currency in the inline picker. */\n onCurrencyChange?: (currency: CurrencyCode) => void;\n}\n\nconst DEFAULT_CURRENCIES: CurrencyCode[] = ['USD', 'EUR'];\n\nexport const MoneyInput = forwardRef<HTMLInputElement, MoneyInputProps>(function MoneyInput(\n { currencies = DEFAULT_CURRENCIES, onCurrencyChange, currency, defaultCurrency, ...props },\n ref,\n) {\n const handleCurrencyChange = useCallback(\n (nextCurrency: string) => {\n onCurrencyChange?.(nextCurrency);\n },\n [onCurrencyChange]\n );\n\n return (\n <CurrencyInput className=\"money-input--component\"\n ref={ref}\n currencies={currencies}\n currency={currency}\n defaultCurrency={defaultCurrency}\n onCurrencyChange={handleCurrencyChange}\n {...props}\n />\n );\n});\n\nMoneyInput.displayName = 'MoneyInput';\n","/**\n * Unified Form Field Components\n * =============================\n *\n * Two components sharing the same visual structure for field chrome:\n *\n * 1. `FormField` - Pure presentation wrapper (label, hint, error, required indicator)\n * 2. `ControlledFormField` - FormField + react-hook-form Controller integration\n *\n * ## FormField\n * Use for custom components or non-controlled inputs.\n *\n * ```tsx\n * <FormField label={t('label')} error={error} required hint={t('hint')}>\n * <CustomAutocomplete value={value} onSelect={onSelect} />\n * </FormField>\n * ```\n *\n * ## ControlledFormField\n * Use with react-hook-form. Auto-merges backend (Inertia) + validation errors.\n *\n * ```tsx\n * <ControlledFormField\n * name=\"email\"\n * control={control}\n * error={getError}\n * label={t('fields.email.label')}\n * required\n * rules={{ required: true, pattern: /^\\\\S+@\\\\S+$/i }}\n * >\n * {(field, error, invalid) => (\n * <Input\n * placeholder={t('fields.email.placeholder')}\n * value={field.value ?? ''}\n * onChange={field.onChange}\n * onBlur={field.onBlur}\n * invalid={invalid}\n * />\n * )}\n * </ControlledFormField>\n * ```\n *\n * ## Render Function Parameters\n * - `field` - Controller props: value, onChange, onBlur, name, ref\n * - `error` - Merged error string (backend || validation) or undefined\n * - `invalid` - Boolean for input styling (border color, etc.)\n * - `fieldState` - Escape hatch: touched, dirty, isTouched, isDirty, etc.\n *\n * ## Error Priority\n * Backend errors (via `error` getter) take priority over validation errors.\n * This ensures server-side validation is authoritative.\n *\n * ## Chrome Props (shared by both components)\n * - `label` - Field label text\n * - `required` - Shows red asterisk after label\n * - `hint` - Secondary text shown below the field when there is no error\n * - `error` - Error message (red text below input)\n * - `helperText` - Helper text (shown when no error)\n * - `className` - Additional wrapper classes\n */\n\nimport * as React from 'react';\nimport { type ReactNode } from 'react';\nimport {\n\tController,\n\ttype Control,\n\ttype ControllerFieldState,\n\ttype ControllerRenderProps,\n\ttype FieldPath,\n\ttype FieldValues,\n\ttype RegisterOptions,\n} from 'react-hook-form';\n\nimport { Label, Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\ninterface FieldChromeProps {\n\tlabel?: string;\n\tisRequired?: boolean;\n\trequired?: boolean;\n\thint?: string;\n\terror?: string;\n\thelperText?: string;\n\tclassName?: string;\n}\n\ninterface FormFieldProps extends FieldChromeProps {\n\tchildren: ReactNode;\n\thtmlFor?: string;\n}\n\nexport function FormField({\n\tchildren,\n\tlabel,\n\tisRequired,\n\trequired,\n\thint,\n\terror,\n\thelperText,\n\thtmlFor,\n\tclassName,\n}: FormFieldProps) {\n\tconst hasError = Boolean(error);\n\tconst supportingText = error || helperText || (!hasError ? hint : undefined);\n\tconst showBottomText = Boolean(supportingText);\n\tconst resolvedRequired = isRequired ?? required;\n\tconst generatedId = React.useId();\n\tconst childId =\n\t\tReact.isValidElement(children)\n\t\t\t? (children.props as { id?: string }).id\n\t\t\t: undefined;\n\tconst resolvedHtmlFor = htmlFor ?? childId ?? (label && React.isValidElement(children) ? `form-field-${generatedId}` : undefined);\n\tconst resolvedChildren =\n\t\tresolvedHtmlFor && React.isValidElement(children) && !childId\n\t\t\t? React.cloneElement(children as React.ReactElement<{ id?: string }>, { id: resolvedHtmlFor })\n\t\t\t: children;\n\n\treturn (\n\t\t<div className={cn('form-field--component', 'space-y-1', className)}>\n\t\t\t{!!label && (\n\t\t\t\t<Label htmlFor={resolvedHtmlFor} className=\"flex items-center leading-6\">\n\t\t\t\t\t{label}\n\t\t\t\t\t{!!resolvedRequired && (\n\t\t\t\t\t\t<span className=\"ml-1 text-destructive\">*</span>\n\t\t\t\t\t)}\n\t\t\t\t</Label>\n\t\t\t)}\n\n\t\t\t{resolvedChildren}\n\n\t\t\t{!!showBottomText && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"p\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\ttype={hasError ? 'error' : 'secondary'}\n\t\t\t\t\t{...(hasError ? { role: 'alert', 'aria-live': 'polite' } : {})}\n\t\t\t\t>\n\t\t\t\t\t{supportingText}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\ntype ErrorGetter<TName extends string> = (field: TName) => string | undefined;\n\ninterface ControlledFormFieldProps<\n\tTFieldValues extends FieldValues,\n\tTName extends FieldPath<TFieldValues>,\n> extends Omit<FieldChromeProps, 'error'> {\n\tname: TName;\n\tcontrol: Control<TFieldValues>;\n\trules?: RegisterOptions<TFieldValues, TName>;\n\terror?: ErrorGetter<TName>;\n\tchildren: (\n\t\tfield: ControllerRenderProps<TFieldValues, TName>,\n\t\terror: string | undefined,\n\t\tinvalid: boolean,\n\t\tfieldState: ControllerFieldState,\n\t) => ReactNode;\n}\n\nexport function ControlledFormField<\n\tTFieldValues extends FieldValues,\n\tTName extends FieldPath<TFieldValues>,\n>({\n\tname,\n\tcontrol,\n\trules,\n\terror: errorGetter,\n\tchildren,\n\t...chromeProps\n}: ControlledFormFieldProps<TFieldValues, TName>) {\n\treturn (\n\t\t<Controller\n\t\t\tname={name}\n\t\t\tcontrol={control}\n\t\t\trules={rules}\n\t\t\trender={({ field, fieldState }) => {\n\t\t\t\tconst validationError = fieldState.error?.message\n\t\t\t\t\t|| (fieldState.error ? (fieldState.error.type === 'required' ? (chromeProps.label ? `${chromeProps.label} is required` : 'This field is required') : 'Invalid value') : undefined);\n\t\t\t\tconst resolvedError = errorGetter?.(name) || validationError || undefined;\n\t\t\t\tconst invalid = Boolean(resolvedError);\n\n\t\t\t\treturn (\n\t\t\t\t\t<FormField {...chromeProps} error={resolvedError} htmlFor={name}>\n\t\t\t\t\t\t{children(field, resolvedError, invalid, fieldState)}\n\t\t\t\t\t</FormField>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nFormField.displayName = 'FormField';\nControlledFormField.displayName = 'ControlledFormField';\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
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("./heading-0DYCOrgC.cjs"),a=require("./typography-Bzsl7aTu.cjs"),o=require("./input-COMcb1WY.cjs"),s=require("./form-sizing-aVwVuF-w.cjs"),c=require("./select-CG5Yq-6A.cjs");let l=require("react");l=e.t(l,1);let u=require("react/jsx-runtime"),d=require("lucide-react"),f=require("react-hook-form");var p={decrement:`Decrement`,increment:`Increment`},m=(e,t,n)=>{if(!e)return``;let r=e;if(r=r.replace(/,/g,`.`),r=n?r.replace(/[^\d.-]/g,``):r.replace(/[^\d.]/g,``),n&&r.includes(`-`)){let e=r.startsWith(`-`);r=r.replace(/-/g,``),e&&(r=`-`+r)}let i=r.split(`.`);return i.length>2&&(r=i[0]+`.`+i.slice(1).join(``)),i.length===2&&i[1].length>t&&(r=i[0]+`.`+i[1].substring(0,t)),r},h=(e,t,n)=>{if(!e||e===`-`)return!0;let r=parseFloat(e);return Number.isNaN(r)?!0:!(t!==void 0&&r<t||n!==void 0&&r>n)};function g(e,t,n){let r=10**t,i=e*r;switch(n){case`floor`:return Math.floor(i)/r;case`ceil`:return Math.ceil(i)/r;case`half-even`:{let e=Math.floor(i),t=i-e;return t>.5?(e+1)/r:t<.5?e/r:(e%2==0?e:e+1)/r}default:return Math.round(i)/r}}function _(e,t,n){let r=e;return t!==void 0&&(r=Math.max(t,r)),n!==void 0&&(r=Math.min(n,r)),r}function v(e,t,n,r,i=`round`){let a=r??0,o=(e-a)/n,s=a+((i===`floor`?Math.floor(o):i===`ceil`?Math.ceil(o):Math.round(o))+t)*n;return Number(s.toFixed(12))}function y(e,t,n){let r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,`value`)?.set;r?r.call(e,t):e.value=t,n&&n({target:e,currentTarget:e,type:`change`,bubbles:!1,cancelable:!1})}var b={sm:`w-8`,base:`w-9`,lg:`w-10`};function x({decimalPlaces:e=2,min:i,max:a,allowNegative:c=!0,allowEmpty:f=!0,step:x,roundingMode:S=`round`,normalizeOnBlur:C=!0,onChange:w,onBlur:T,placeholder:E,className:D,value:O,defaultValue:k,disabled:A,size:j,strings:M,...N},P){let{defaultControlSize:F}=n.s(),I=s.i(j,F),L=t.useStrings(p,M),R=Math.min(12,Math.max(0,e)),z=l.useRef(null),B=(0,l.useCallback)(e=>{let t=e.target.value;if(!t&&f){w?.(e);return}let n=m(t,R,c);if(h(n,i,a))if(n!==t){let t={...e,target:{...e.target,value:n},currentTarget:{...e.currentTarget,value:n}};w?.(t)}else w?.(e)},[w,R,c,f,i,a]),V=(0,l.useCallback)(e=>{if(T?.(e),!C)return;let t=e.target.value;if(!t&&f)return;let n=Number.parseFloat(t.replace(`,`,`.`));if(!Number.isFinite(n))return;let r=g(_(n,i,a),R,S).toFixed(R);r!==t&&z.current&&y(z.current,r,w)},[T,w,C,f,i,a,R,S]),H=(0,l.useCallback)(e=>{if(A||x===void 0)return;let t=z.current;if(!t)return;let n=t.value,r=Number.parseFloat(n.replace(`,`,`.`));y(t,g(_(v(Number.isFinite(r)?r:i??0,e,x,i,S),i,a),R,S).toFixed(R),w)},[A,x,i,a,S,R,w]),U=typeof x==`number`&&x>0,W=E??(R>0?`0.${`0`.repeat(R)}`:`0`);return U?(0,u.jsxs)(`div`,{className:r.cn(`decimal-input--component`,`flex items-stretch overflow-hidden rounded-radius border border-input bg-transparent`,`focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]`,N[`aria-invalid`]&&`border-destructive ring-destructive/20`,A&&`opacity-50 cursor-not-allowed`),children:[(0,u.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-label":L.decrement,disabled:A,onClick:()=>H(-1),className:r.cn(`inline-flex shrink-0 items-center justify-center border-r border-input text-muted-foreground transition-colors`,b[I],`hover:bg-muted hover:text-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`),children:(0,u.jsx)(d.Minus,{className:`size-3.5`})}),(0,u.jsx)(o.t,{size:I,ref:e=>{z.current=e,typeof P==`function`?P(e):P&&(P.current=e)},type:`text`,inputMode:R>0?`decimal`:`numeric`,placeholder:W,onChange:B,onBlur:V,value:O,defaultValue:k,disabled:A,className:r.cn(`flex-1 tabular-nums text-center border-0 shadow-none rounded-none focus-visible:ring-0 focus-visible:border-0`,D),...N}),(0,u.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-label":L.increment,disabled:A,onClick:()=>H(1),className:r.cn(`inline-flex shrink-0 items-center justify-center border-l border-input text-muted-foreground transition-colors`,b[I],`hover:bg-muted hover:text-foreground`,`disabled:cursor-not-allowed disabled:opacity-50`),children:(0,u.jsx)(d.Plus,{className:`size-3.5`})})]}):(0,u.jsx)(o.t,{size:I,ref:e=>{z.current=e,typeof P==`function`?P(e):P&&(P.current=e)},type:`text`,inputMode:R>0?`decimal`:`numeric`,placeholder:W,onChange:B,onBlur:V,value:O,defaultValue:k,disabled:A,className:r.cn(`tabular-nums text-end`,D),...N})}var S=l.forwardRef(x);S.displayName=`DecimalInput`;var C={USD:`$`,EUR:`€`,GBP:`£`,BGN:`лв`,JPY:`¥`,CNY:`¥`,CHF:`CHF`,CAD:`C$`,AUD:`A$`},w=e=>!e||e.length===0?[]:e.map(e=>typeof e==`string`?{value:e,label:`${C[e]||e} ${e}`}:e);function T({currency:e,defaultCurrency:t,currencies:i,onCurrencyChange:o,currencyPosition:d=`start`,disableCurrencySelector:f=!1,currencyPlaceholder:p,currencyWidth:m=`w-28`,currencyLabel:h,invalid:g,disabled:_,onConfigError:v,size:y,...b},x){let{defaultControlSize:C}=n.s(),T=s.i(y,C),E=(0,l.useMemo)(()=>w(i),[i]),[D,O]=(0,l.useState)(t??E[0]?.value??``),k=e!==void 0,A=k?e:D;(0,l.useEffect)(()=>{let n={currency:e,defaultCurrency:t,disableCurrencySelector:f};f&&typeof e==`string`&&typeof t==`string`&&e.trim()!==``&&t.trim()!==``&&e!==t&&v?.(`[CurrencyInput] currency/defaultCurrency mismatch while selector is disabled.`,n),f&&(typeof A!=`string`||A.trim().length===0)&&v?.(`[CurrencyInput] disableCurrencySelector is enabled but no currency is provided.`,n)},[e,t,f,v,A]);let j=(0,l.useCallback)(e=>{e!==null&&(k||O(e),o?.(e))},[k,o]),M=(0,l.useMemo)(()=>r.cn(`border-input bg-transparent !shadow-none`,s.n[T],`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`,m,_&&`opacity-50 cursor-not-allowed`),[T,m,_]),N=(0,u.jsxs)(`div`,{className:`space-y-2`,children:[!!h&&(0,u.jsx)(a.a,{className:`leading-6`,children:h}),(0,u.jsxs)(c.t,{value:A,onValueChange:e=>j(e),disabled:_||f,children:[(0,u.jsx)(c.a,{"aria-invalid":g||void 0,className:M,children:(0,u.jsx)(c.o,{placeholder:p??``})}),(0,u.jsx)(c.n,{children:(0,u.jsx)(c.r,{children:E.map(e=>(0,u.jsx)(c.i,{value:e.value,children:e.label},e.value))})})]})]});return(0,u.jsxs)(`div`,{className:r.cn(`currency-input--component`,`flex items-start gap-2`),children:[d===`start`&&N,(0,u.jsx)(`div`,{className:`flex-1`,children:(0,u.jsx)(S,{ref:x,size:T,decimalPlaces:2,allowNegative:!1,disabled:_,invalid:g,...b})}),d===`end`&&N]})}var E=(0,l.memo)((0,l.forwardRef)(T));E.displayName=`CurrencyInput`;var D=[`USD`,`EUR`],O=(0,l.forwardRef)(function({currencies:e=D,onCurrencyChange:t,currency:n,defaultCurrency:r,...i},a){return(0,u.jsx)(E,{className:`money-input--component`,ref:a,currencies:e,currency:n,defaultCurrency:r,onCurrencyChange:(0,l.useCallback)(e=>{t?.(e)},[t]),...i})});O.displayName=`MoneyInput`;function k({children:e,label:t,isRequired:n,required:o,hint:s,error:c,helperText:d,htmlFor:f,className:p}){let m=!!c,h=c||d||(m?void 0:s),g=!!h,_=n??o,v=l.useId(),y=l.isValidElement(e)?e.props.id:void 0,b=f??y??(t&&l.isValidElement(e)?`form-field-${v}`:void 0),x=b&&l.isValidElement(e)&&!y?l.cloneElement(e,{id:b}):e;return(0,u.jsxs)(`div`,{className:r.cn(`form-field--component`,`space-y-1`,p),children:[!!t&&(0,u.jsxs)(a.a,{htmlFor:b,className:`flex items-center leading-6`,children:[t,!!_&&(0,u.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),x,!!g&&(0,u.jsx)(i.n,{tag:`p`,size:`xs`,type:m?`error`:`secondary`,...m?{role:`alert`,"aria-live":`polite`}:{},children:h})]})}function A({name:e,control:t,rules:n,error:r,children:i,...a}){return(0,u.jsx)(f.Controller,{name:e,control:t,rules:n,render:({field:t,fieldState:n})=>{let o=n.error?.message||(n.error?n.error.type===`required`?a.label?`${a.label} is required`:`This field is required`:`Invalid value`:void 0),s=r?.(e)||o||void 0,c=!!s;return(0,u.jsx)(k,{...a,error:s,htmlFor:e,children:i(t,s,c,n)})}})}k.displayName=`FormField`,A.displayName=`ControlledFormField`,Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return A}});
|
|
2
|
-
//# sourceMappingURL=form-field-rMGPvHFK.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form-field-rMGPvHFK.cjs","names":[],"sources":["../../src/components/base/forms/fields/decimal-input.tsx","../../src/components/base/forms/fields/currency-input.tsx","../../src/components/base/forms/fields/money-input.tsx","../../src/components/base/forms/form-field.tsx"],"sourcesContent":["/**\n * DecimalInput — text-based numeric input with decimal-place enforcement,\n * locale-friendly comma → dot normalisation, optional min/max clamping,\n * rounding mode (`round` / `floor` / `ceil` / `half-even`), and optional\n * stepper buttons when `step` is set.\n *\n * Wraps the base `Input` so all add-on / icon / clear / loading features\n * still work. Extra features layered on top:\n *\n * - `step` — when set, renders − / + stepper buttons that snap the value\n * to a multiple of `step` (anchored at `min` if provided, else 0).\n * - `roundingMode` — controls how stepper / blur normalisation rounds\n * half values; default `'round'` (round-half-up).\n * - `normalizeOnBlur` (default `true`) — pads the displayed value to the\n * full `decimalPlaces` count and clamps to `[min, max]` when the field\n * loses focus.\n *\n * The `value` prop is always a plain string (consumers parse it as needed)\n * so RHF / Inertia can treat it like any other input.\n */\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { Minus, Plus } from 'lucide-react';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\nimport { resolveFormControlSize } from '../form-sizing';\nimport { Input, type InputProps } from './input';\n\nexport type DecimalRoundingMode = 'round' | 'floor' | 'ceil' | 'half-even';\n\nexport interface DecimalInputStrings {\n\tdecrement: string;\n\tincrement: string;\n}\n\nexport const defaultDecimalInputStrings: DecimalInputStrings = {\n\tdecrement: 'Decrement',\n\tincrement: 'Increment',\n};\n\nexport interface DecimalInputProps extends Omit<InputProps, 'type' | 'inputMode' | 'strings'> {\n\tdecimalPlaces?: number;\n\tmin?: number;\n\tmax?: number;\n\tallowNegative?: boolean;\n\tallowEmpty?: boolean;\n\t/** When set, renders − / + steppers and snaps the value to multiples of `step`. */\n\tstep?: number;\n\t/** How to round when normalising on blur or stepping. Default `'round'`. */\n\troundingMode?: DecimalRoundingMode;\n\t/** Pad to full decimalPlaces and clamp to [min, max] on blur. Default `true`. */\n\tnormalizeOnBlur?: boolean;\n\t/** String overrides for stepper aria-labels. */\n\tstrings?: StringsProp<DecimalInputStrings>;\n}\n\nconst formatDecimalValue = (\n\tvalue: string,\n\tdecimalPlaces: number,\n\tallowNegative: boolean,\n): string => {\n\tif (!value) return '';\n\n\tlet formatted = value;\n\tformatted = formatted.replace(/,/g, '.');\n\n\tif (allowNegative) {\n\t\tformatted = formatted.replace(/[^\\d.-]/g, '');\n\t} else {\n\t\tformatted = formatted.replace(/[^\\d.]/g, '');\n\t}\n\n\tif (allowNegative && formatted.includes('-')) {\n\t\tconst hasLeadingMinus = formatted.startsWith('-');\n\t\tformatted = formatted.replace(/-/g, '');\n\t\tif (hasLeadingMinus) formatted = '-' + formatted;\n\t}\n\n\tconst parts = formatted.split('.');\n\tif (parts.length > 2) {\n\t\tformatted = parts[0] + '.' + parts.slice(1).join('');\n\t}\n\n\tif (parts.length === 2 && parts[1].length > decimalPlaces) {\n\t\tformatted = parts[0] + '.' + parts[1].substring(0, decimalPlaces);\n\t}\n\n\treturn formatted;\n};\n\nconst isWithinBounds = (value: string, min?: number, max?: number): boolean => {\n\tif (!value || value === '-') return true;\n\tconst numValue = parseFloat(value);\n\tif (Number.isNaN(numValue)) return true;\n\tif (min !== undefined && numValue < min) return false;\n\tif (max !== undefined && numValue > max) return false;\n\treturn true;\n};\n\nfunction applyRounding(value: number, decimals: number, mode: DecimalRoundingMode): number {\n\tconst factor = Math.pow(10, decimals);\n\tconst shifted = value * factor;\n\tswitch (mode) {\n\t\tcase 'floor':\n\t\t\treturn Math.floor(shifted) / factor;\n\t\tcase 'ceil':\n\t\t\treturn Math.ceil(shifted) / factor;\n\t\tcase 'half-even': {\n\t\t\tconst floor = Math.floor(shifted);\n\t\t\tconst diff = shifted - floor;\n\t\t\tif (diff > 0.5) return (floor + 1) / factor;\n\t\t\tif (diff < 0.5) return floor / factor;\n\t\t\treturn (floor % 2 === 0 ? floor : floor + 1) / factor;\n\t\t}\n\t\tcase 'round':\n\t\tdefault:\n\t\t\treturn Math.round(shifted) / factor;\n\t}\n}\n\nfunction clamp(n: number, min?: number, max?: number): number {\n\tlet next = n;\n\tif (min !== undefined) next = Math.max(min, next);\n\tif (max !== undefined) next = Math.min(max, next);\n\treturn next;\n}\n\nfunction snapToStep(\n\tcurrent: number,\n\tdelta: number,\n\tstep: number,\n\tmin?: number,\n\tmode: DecimalRoundingMode = 'round',\n): number {\n\tconst anchor = min ?? 0;\n\tconst stepsFromAnchor = (current - anchor) / step;\n\tconst rounded =\n\t\tmode === 'floor'\n\t\t\t? Math.floor(stepsFromAnchor)\n\t\t\t: mode === 'ceil'\n\t\t\t\t? Math.ceil(stepsFromAnchor)\n\t\t\t\t: Math.round(stepsFromAnchor);\n\tconst stepped = anchor + (rounded + delta) * step;\n\treturn Number(stepped.toFixed(12));\n}\n\nfunction fireChange(\n\ttarget: HTMLInputElement,\n\tvalue: string,\n\tonChange?: InputProps['onChange'],\n) {\n\t// Write the value to the DOM first so UNCONTROLLED inputs actually reflect\n\t// stepper clicks and blur-normalisation. (Previously this only called\n\t// onChange, so steppers were a no-op on uncontrolled fields.) Use the native\n\t// value setter so React's input value-tracker stays in sync for controlled\n\t// consumers, which then reconcile through their onChange + re-render.\n\tconst nativeSetter = Object.getOwnPropertyDescriptor(\n\t\twindow.HTMLInputElement.prototype,\n\t\t'value',\n\t)?.set;\n\tif (nativeSetter) nativeSetter.call(target, value);\n\telse target.value = value;\n\n\tif (!onChange) return;\n\tconst event = {\n\t\ttarget,\n\t\tcurrentTarget: target,\n\t\ttype: 'change',\n\t\tbubbles: false,\n\t\tcancelable: false,\n\t} as unknown as React.ChangeEvent<HTMLInputElement>;\n\tonChange(event);\n}\n\nconst STEPPER_SIZE_CLASS: Record<FormControlSize, string> = {\n\tsm: 'w-8',\n\tbase: 'w-9',\n\tlg: 'w-10',\n};\n\nfunction DecimalInputImpl(\n\t{\n\t\tdecimalPlaces = 2,\n\t\tmin,\n\t\tmax,\n\t\tallowNegative = true,\n\t\tallowEmpty = true,\n\t\tstep,\n\t\troundingMode = 'round',\n\t\tnormalizeOnBlur = true,\n\t\tonChange,\n\t\tonBlur,\n\t\tplaceholder,\n\t\tclassName,\n\t\tvalue: controlledValue,\n\t\tdefaultValue,\n\t\tdisabled,\n\t\tsize: sizeProp,\n\t\tstrings: stringsProp,\n\t\t...props\n\t}: DecimalInputProps,\n\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n\tconst { defaultControlSize } = useFormsConfig();\n\tconst size: FormControlSize = resolveFormControlSize(sizeProp, defaultControlSize);\n\tconst strings = useStrings(defaultDecimalInputStrings, stringsProp);\n\tconst validDecimalPlaces = Math.min(12, Math.max(0, decimalPlaces));\n\tconst inputRef = React.useRef<HTMLInputElement | null>(null);\n\n\tconst handleChange = useCallback(\n\t\t(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst newValue = e.target.value;\n\n\t\t\tif (!newValue && allowEmpty) {\n\t\t\t\tonChange?.(e);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst formatted = formatDecimalValue(newValue, validDecimalPlaces, allowNegative);\n\t\t\tif (!isWithinBounds(formatted, min, max)) return;\n\n\t\t\tif (formatted !== newValue) {\n\t\t\t\tconst modifiedEvent = {\n\t\t\t\t\t...e,\n\t\t\t\t\ttarget: { ...e.target, value: formatted },\n\t\t\t\t\tcurrentTarget: { ...e.currentTarget, value: formatted },\n\t\t\t\t} as React.ChangeEvent<HTMLInputElement>;\n\t\t\t\tonChange?.(modifiedEvent);\n\t\t\t} else {\n\t\t\t\tonChange?.(e);\n\t\t\t}\n\t\t},\n\t\t[onChange, validDecimalPlaces, allowNegative, allowEmpty, min, max],\n\t);\n\n\tconst handleBlur = useCallback(\n\t\t(e: React.FocusEvent<HTMLInputElement>) => {\n\t\t\tonBlur?.(e);\n\t\t\tif (!normalizeOnBlur) return;\n\t\t\tconst raw = e.target.value;\n\t\t\tif (!raw && allowEmpty) return;\n\t\t\tconst num = Number.parseFloat(raw.replace(',', '.'));\n\t\t\tif (!Number.isFinite(num)) return;\n\t\t\tconst clamped = clamp(num, min, max);\n\t\t\tconst rounded = applyRounding(clamped, validDecimalPlaces, roundingMode);\n\t\t\tconst next = rounded.toFixed(validDecimalPlaces);\n\t\t\tif (next !== raw && inputRef.current) {\n\t\t\t\tfireChange(inputRef.current, next, onChange);\n\t\t\t}\n\t\t},\n\t\t[onBlur, onChange, normalizeOnBlur, allowEmpty, min, max, validDecimalPlaces, roundingMode],\n\t);\n\n\tconst adjust = useCallback(\n\t\t(delta: number) => {\n\t\t\tif (disabled || step === undefined) return;\n\t\t\tconst target = inputRef.current;\n\t\t\tif (!target) return;\n\t\t\tconst raw = target.value;\n\t\t\tconst current = Number.parseFloat(raw.replace(',', '.'));\n\t\t\tconst base = Number.isFinite(current) ? current : (min ?? 0);\n\t\t\tconst snapped = clamp(snapToStep(base, delta, step, min, roundingMode), min, max);\n\t\t\tconst next = applyRounding(snapped, validDecimalPlaces, roundingMode).toFixed(validDecimalPlaces);\n\t\t\tfireChange(target, next, onChange);\n\t\t},\n\t\t[disabled, step, min, max, roundingMode, validDecimalPlaces, onChange],\n\t);\n\n\tconst showSteppers = typeof step === 'number' && step > 0;\n\tconst placeholderResolved =\n\t\tplaceholder ?? (validDecimalPlaces > 0 ? `0.${'0'.repeat(validDecimalPlaces)}` : '0');\n\n\tif (showSteppers) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn('decimal-input--component', \n\t\t\t\t\t// Stepper segmented group — input + adjacent − / + buttons\n\t\t\t\t\t// share a single border radius so the group reads as one\n\t\t\t\t\t// control instead of three loose chips.\n\t\t\t\t\t'flex items-stretch overflow-hidden rounded-radius border border-input bg-transparent',\n\t\t\t\t\t'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n\t\t\t\t\tprops['aria-invalid'] && 'border-destructive ring-destructive/20',\n\t\t\t\t\tdisabled && 'opacity-50 cursor-not-allowed',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\taria-label={strings.decrement}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonClick={() => adjust(-1)}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'inline-flex shrink-0 items-center justify-center border-r border-input text-muted-foreground transition-colors',\n\t\t\t\t\t\tSTEPPER_SIZE_CLASS[size],\n\t\t\t\t\t\t'hover:bg-muted hover:text-foreground',\n\t\t\t\t\t\t'disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Minus className=\"size-3.5\" />\n\t\t\t\t</button>\n\t\t\t\t<Input\n\t\t\t\t\tsize={size}\n\t\t\t\t\tref={(node) => { inputRef.current = node; if (typeof forwardedRef === \"function\") forwardedRef(node); else if (forwardedRef) forwardedRef.current = node; }}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tinputMode={validDecimalPlaces > 0 ? 'decimal' : 'numeric'}\n\t\t\t\t\tplaceholder={placeholderResolved}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\tvalue={controlledValue}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-1 tabular-nums text-center border-0 shadow-none rounded-none focus-visible:ring-0 focus-visible:border-0',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\taria-label={strings.increment}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonClick={() => adjust(1)}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'inline-flex shrink-0 items-center justify-center border-l border-input text-muted-foreground transition-colors',\n\t\t\t\t\t\tSTEPPER_SIZE_CLASS[size],\n\t\t\t\t\t\t'hover:bg-muted hover:text-foreground',\n\t\t\t\t\t\t'disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Plus className=\"size-3.5\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Input\n\t\t\tsize={size}\n\t\t\tref={(node) => { inputRef.current = node; if (typeof forwardedRef === \"function\") forwardedRef(node); else if (forwardedRef) forwardedRef.current = node; }}\n\t\t\ttype=\"text\"\n\t\t\tinputMode={validDecimalPlaces > 0 ? 'decimal' : 'numeric'}\n\t\t\tplaceholder={placeholderResolved}\n\t\t\tonChange={handleChange}\n\t\t\tonBlur={handleBlur}\n\t\t\tvalue={controlledValue}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tdisabled={disabled}\n\t\t\tclassName={cn('tabular-nums text-end', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst DecimalInput = React.forwardRef<HTMLInputElement, DecimalInputProps>(DecimalInputImpl);\nDecimalInput.displayName = 'DecimalInput';\n\nexport { DecimalInput };\n","import { useState, useCallback, useEffect, useMemo, memo, forwardRef, type ForwardedRef } from 'react';\nimport * as baseui from '@/components/ui/select';\nimport { Label } from '@/components/typography';\nimport { useFormsConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\nimport { formControlSizeClasses, resolveFormControlSize } from '../form-sizing';\nimport { DecimalInput, type DecimalInputProps } from './decimal-input';\n\nexport interface CurrencyOption {\n value: string;\n label: string;\n}\n\nexport interface CurrencyInputProps extends Omit<DecimalInputProps, 'label' | 'hint' | 'helperText' | 'error'> {\n /** Current currency value */\n currency?: string;\n\n /** Default currency if uncontrolled */\n defaultCurrency?: string;\n\n /** List of available currencies (simple strings or objects with value/label) */\n currencies?: (string | CurrencyOption)[];\n\n /** Callback when currency changes */\n onCurrencyChange?: (currency: string) => void;\n\n /** Position of currency dropdown */\n currencyPosition?: 'start' | 'end';\n\n /** Disable currency selection */\n disableCurrencySelector?: boolean;\n\n /** Placeholder for currency dropdown */\n currencyPlaceholder?: string;\n\n /** Width of the currency dropdown */\n currencyWidth?: string;\n\n /** Label for currency field (sub-label) */\n currencyLabel?: string;\n\n /** Error state for styling (passed from FormField) */\n invalid?: boolean;\n\n /** Called when the input is misconfigured (mismatched currency/defaultCurrency\n * while the selector is disabled, missing currency, etc.). The library\n * also DEV-logs the same message to the console. */\n onConfigError?: (\n message: string,\n details: { currency?: string; defaultCurrency?: string; disableCurrencySelector?: boolean },\n ) => void;\n}\n\n// Common currency symbols\nconst CURRENCY_SYMBOLS: Record<string, string> = {\n USD: '$',\n EUR: '€',\n GBP: '£',\n BGN: 'лв',\n JPY: '¥',\n CNY: '¥',\n CHF: 'CHF',\n CAD: 'C$',\n AUD: 'A$',\n};\n\nconst normalizeCurrencies = (currencies?: (string | CurrencyOption)[]): CurrencyOption[] => {\n if (!currencies || currencies.length === 0) return [];\n\n return currencies.map((currency) => {\n if (typeof currency === 'string') {\n const symbol = CURRENCY_SYMBOLS[currency] || currency;\n return {\n value: currency,\n label: `${symbol} ${currency}`,\n };\n }\n return currency;\n });\n};\n\nfunction CurrencyInputImpl(\n {\n currency: controlledCurrency,\n defaultCurrency,\n currencies,\n onCurrencyChange,\n currencyPosition = 'start',\n disableCurrencySelector = false,\n currencyPlaceholder,\n currencyWidth = 'w-28',\n currencyLabel,\n invalid,\n disabled,\n onConfigError,\n size: sizeProp,\n ...decimalInputProps\n }: CurrencyInputProps,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const { defaultControlSize } = useFormsConfig();\n const size = resolveFormControlSize(sizeProp, defaultControlSize);\n\n // Memoize normalized currencies\n const normalizedCurrencies = useMemo(() => normalizeCurrencies(currencies), [currencies]);\n\n // Internal state for uncontrolled currency\n const [internalCurrency, setInternalCurrency] = useState(\n defaultCurrency ?? normalizedCurrencies[0]?.value ?? ''\n );\n\n // Determine if currency is controlled\n const isCurrencyControlled = controlledCurrency !== undefined;\n const selectedCurrency = isCurrencyControlled ? controlledCurrency : internalCurrency;\n\n useEffect(() => {\n const details = { currency: controlledCurrency, defaultCurrency, disableCurrencySelector };\n if (\n disableCurrencySelector &&\n typeof controlledCurrency === 'string' &&\n typeof defaultCurrency === 'string' &&\n controlledCurrency.trim() !== '' &&\n defaultCurrency.trim() !== '' &&\n controlledCurrency !== defaultCurrency\n ) {\n const message = '[CurrencyInput] currency/defaultCurrency mismatch while selector is disabled.';\n if (import.meta.env?.DEV) {\n console.warn(message, { currency: controlledCurrency, defaultCurrency });\n }\n onConfigError?.(message, details);\n }\n\n if (\n disableCurrencySelector &&\n (typeof selectedCurrency !== 'string' || selectedCurrency.trim().length === 0)\n ) {\n const message = '[CurrencyInput] disableCurrencySelector is enabled but no currency is provided.';\n if (import.meta.env?.DEV) {\n console.warn(message);\n }\n onConfigError?.(message, details);\n }\n }, [controlledCurrency, defaultCurrency, disableCurrencySelector, onConfigError, selectedCurrency]);\n\n // Handle currency change\n const handleCurrencyChange = useCallback(\n (newCurrency: string | null) => {\n if (newCurrency === null) return;\n if (!isCurrencyControlled) {\n setInternalCurrency(newCurrency);\n }\n onCurrencyChange?.(newCurrency);\n },\n [isCurrencyControlled, onCurrencyChange]\n );\n\n // Memoize trigger class names. Size flows through `formControlSizeClasses[size]`\n // so the trigger height matches the inner DecimalInput when a consumer sets\n // `<UIProvider forms={{ defaultControlSize }}>`.\n const triggerClassName = useMemo(\n () =>\n cn(\n 'border-input bg-transparent !shadow-none',\n formControlSizeClasses[size],\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n currencyWidth,\n disabled && 'opacity-50 cursor-not-allowed'\n ),\n [size, currencyWidth, disabled]\n );\n\n // Currency selector component\n const currencySelector = (\n <div className=\"space-y-2\">\n {!!currencyLabel && <Label className=\"leading-6\">{currencyLabel}</Label>}\n <baseui.Select\n value={selectedCurrency}\n onValueChange={(value) => handleCurrencyChange(value)}\n disabled={disabled || disableCurrencySelector}\n >\n <baseui.SelectTrigger aria-invalid={invalid || undefined} className={triggerClassName}>\n <baseui.SelectValue placeholder={currencyPlaceholder ?? ''} />\n </baseui.SelectTrigger>\n <baseui.SelectContent>\n <baseui.SelectGroup>\n {normalizedCurrencies.map((curr) => (\n <baseui.SelectItem key={curr.value} value={curr.value}>\n {curr.label}\n </baseui.SelectItem>\n ))}\n </baseui.SelectGroup>\n </baseui.SelectContent>\n </baseui.Select>\n </div>\n );\n\n return (\n <div className={cn('currency-input--component', 'flex items-start gap-2')}>\n {currencyPosition === 'start' && currencySelector}\n\n <div className=\"flex-1\">\n <DecimalInput\n ref={forwardedRef}\n size={size}\n decimalPlaces={2}\n allowNegative={false}\n disabled={disabled}\n invalid={invalid}\n {...decimalInputProps}\n />\n </div>\n\n {currencyPosition === 'end' && currencySelector}\n </div>\n );\n}\n\n// forwardRef + memo: forward to the underlying decimal input so consumers\n// can focus/measure programmatically.\nexport const CurrencyInput = memo(forwardRef<HTMLInputElement, CurrencyInputProps>(CurrencyInputImpl));\nCurrencyInput.displayName = 'CurrencyInput';\n","/**\n * MoneyInput (forms/fields) — `CurrencyInput` preset with a small default\n * currency list for back-compat and a callback shape that matches the\n * library's `CurrencyCode` typing.\n *\n * For the richer `MoneyInputData`-shaped helper with migration warnings and\n * form-field chrome, use `@/components/base/display/money-input` instead.\n */\nimport { forwardRef, useCallback } from 'react';\n\nimport { CurrencyInput, type CurrencyInputProps } from './currency-input';\nimport type { CurrencyCode } from '@/lib/ui-provider';\n\nexport interface MoneyInputProps extends Omit<CurrencyInputProps, 'currency' | 'defaultCurrency' | 'currencies' | 'onCurrencyChange'> {\n /** Current currency value (ISO 4217 code, e.g. 'USD'). */\n currency?: CurrencyCode;\n /** Default currency if uncontrolled. */\n defaultCurrency?: CurrencyCode;\n /** Available currencies for the inline picker. Defaults to `['USD', 'EUR']`\n * — pass your own list or wire `useMoneyConfig` at the consumer site for\n * real production use. */\n currencies?: CurrencyCode[];\n /** Callback when the user changes the currency in the inline picker. */\n onCurrencyChange?: (currency: CurrencyCode) => void;\n}\n\nconst DEFAULT_CURRENCIES: CurrencyCode[] = ['USD', 'EUR'];\n\nexport const MoneyInput = forwardRef<HTMLInputElement, MoneyInputProps>(function MoneyInput(\n { currencies = DEFAULT_CURRENCIES, onCurrencyChange, currency, defaultCurrency, ...props },\n ref,\n) {\n const handleCurrencyChange = useCallback(\n (nextCurrency: string) => {\n onCurrencyChange?.(nextCurrency);\n },\n [onCurrencyChange]\n );\n\n return (\n <CurrencyInput className=\"money-input--component\"\n ref={ref}\n currencies={currencies}\n currency={currency}\n defaultCurrency={defaultCurrency}\n onCurrencyChange={handleCurrencyChange}\n {...props}\n />\n );\n});\n\nMoneyInput.displayName = 'MoneyInput';\n","/**\n * Unified Form Field Components\n * =============================\n *\n * Two components sharing the same visual structure for field chrome:\n *\n * 1. `FormField` - Pure presentation wrapper (label, hint, error, required indicator)\n * 2. `ControlledFormField` - FormField + react-hook-form Controller integration\n *\n * ## FormField\n * Use for custom components or non-controlled inputs.\n *\n * ```tsx\n * <FormField label={t('label')} error={error} required hint={t('hint')}>\n * <CustomAutocomplete value={value} onSelect={onSelect} />\n * </FormField>\n * ```\n *\n * ## ControlledFormField\n * Use with react-hook-form. Auto-merges backend (Inertia) + validation errors.\n *\n * ```tsx\n * <ControlledFormField\n * name=\"email\"\n * control={control}\n * error={getError}\n * label={t('fields.email.label')}\n * required\n * rules={{ required: true, pattern: /^\\\\S+@\\\\S+$/i }}\n * >\n * {(field, error, invalid) => (\n * <Input\n * placeholder={t('fields.email.placeholder')}\n * value={field.value ?? ''}\n * onChange={field.onChange}\n * onBlur={field.onBlur}\n * invalid={invalid}\n * />\n * )}\n * </ControlledFormField>\n * ```\n *\n * ## Render Function Parameters\n * - `field` - Controller props: value, onChange, onBlur, name, ref\n * - `error` - Merged error string (backend || validation) or undefined\n * - `invalid` - Boolean for input styling (border color, etc.)\n * - `fieldState` - Escape hatch: touched, dirty, isTouched, isDirty, etc.\n *\n * ## Error Priority\n * Backend errors (via `error` getter) take priority over validation errors.\n * This ensures server-side validation is authoritative.\n *\n * ## Chrome Props (shared by both components)\n * - `label` - Field label text\n * - `required` - Shows red asterisk after label\n * - `hint` - Secondary text shown below the field when there is no error\n * - `error` - Error message (red text below input)\n * - `helperText` - Helper text (shown when no error)\n * - `className` - Additional wrapper classes\n */\n\nimport * as React from 'react';\nimport { type ReactNode } from 'react';\nimport {\n\tController,\n\ttype Control,\n\ttype ControllerFieldState,\n\ttype ControllerRenderProps,\n\ttype FieldPath,\n\ttype FieldValues,\n\ttype RegisterOptions,\n} from 'react-hook-form';\n\nimport { Label, Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\ninterface FieldChromeProps {\n\tlabel?: string;\n\tisRequired?: boolean;\n\trequired?: boolean;\n\thint?: string;\n\terror?: string;\n\thelperText?: string;\n\tclassName?: string;\n}\n\ninterface FormFieldProps extends FieldChromeProps {\n\tchildren: ReactNode;\n\thtmlFor?: string;\n}\n\nexport function FormField({\n\tchildren,\n\tlabel,\n\tisRequired,\n\trequired,\n\thint,\n\terror,\n\thelperText,\n\thtmlFor,\n\tclassName,\n}: FormFieldProps) {\n\tconst hasError = Boolean(error);\n\tconst supportingText = error || helperText || (!hasError ? hint : undefined);\n\tconst showBottomText = Boolean(supportingText);\n\tconst resolvedRequired = isRequired ?? required;\n\tconst generatedId = React.useId();\n\tconst childId =\n\t\tReact.isValidElement(children)\n\t\t\t? (children.props as { id?: string }).id\n\t\t\t: undefined;\n\tconst resolvedHtmlFor = htmlFor ?? childId ?? (label && React.isValidElement(children) ? `form-field-${generatedId}` : undefined);\n\tconst resolvedChildren =\n\t\tresolvedHtmlFor && React.isValidElement(children) && !childId\n\t\t\t? React.cloneElement(children as React.ReactElement<{ id?: string }>, { id: resolvedHtmlFor })\n\t\t\t: children;\n\n\treturn (\n\t\t<div className={cn('form-field--component', 'space-y-1', className)}>\n\t\t\t{!!label && (\n\t\t\t\t<Label htmlFor={resolvedHtmlFor} className=\"flex items-center leading-6\">\n\t\t\t\t\t{label}\n\t\t\t\t\t{!!resolvedRequired && (\n\t\t\t\t\t\t<span className=\"ml-1 text-destructive\">*</span>\n\t\t\t\t\t)}\n\t\t\t\t</Label>\n\t\t\t)}\n\n\t\t\t{resolvedChildren}\n\n\t\t\t{!!showBottomText && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"p\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\ttype={hasError ? 'error' : 'secondary'}\n\t\t\t\t\t{...(hasError ? { role: 'alert', 'aria-live': 'polite' } : {})}\n\t\t\t\t>\n\t\t\t\t\t{supportingText}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\ntype ErrorGetter<TName extends string> = (field: TName) => string | undefined;\n\ninterface ControlledFormFieldProps<\n\tTFieldValues extends FieldValues,\n\tTName extends FieldPath<TFieldValues>,\n> extends Omit<FieldChromeProps, 'error'> {\n\tname: TName;\n\tcontrol: Control<TFieldValues>;\n\trules?: RegisterOptions<TFieldValues, TName>;\n\terror?: ErrorGetter<TName>;\n\tchildren: (\n\t\tfield: ControllerRenderProps<TFieldValues, TName>,\n\t\terror: string | undefined,\n\t\tinvalid: boolean,\n\t\tfieldState: ControllerFieldState,\n\t) => ReactNode;\n}\n\nexport function ControlledFormField<\n\tTFieldValues extends FieldValues,\n\tTName extends FieldPath<TFieldValues>,\n>({\n\tname,\n\tcontrol,\n\trules,\n\terror: errorGetter,\n\tchildren,\n\t...chromeProps\n}: ControlledFormFieldProps<TFieldValues, TName>) {\n\treturn (\n\t\t<Controller\n\t\t\tname={name}\n\t\t\tcontrol={control}\n\t\t\trules={rules}\n\t\t\trender={({ field, fieldState }) => {\n\t\t\t\tconst validationError = fieldState.error?.message\n\t\t\t\t\t|| (fieldState.error ? (fieldState.error.type === 'required' ? (chromeProps.label ? `${chromeProps.label} is required` : 'This field is required') : 'Invalid value') : undefined);\n\t\t\t\tconst resolvedError = errorGetter?.(name) || validationError || undefined;\n\t\t\t\tconst invalid = Boolean(resolvedError);\n\n\t\t\t\treturn (\n\t\t\t\t\t<FormField {...chromeProps} error={resolvedError} htmlFor={name}>\n\t\t\t\t\t\t{children(field, resolvedError, invalid, fieldState)}\n\t\t\t\t\t</FormField>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nFormField.displayName = 'FormField';\nControlledFormField.displayName = 'ControlledFormField';\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
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
|