admin-ui-starter-kit 0.1.4 → 0.4.2
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 +276 -2
- package/.agents/skills/component-library-rules/SKILL.md +8 -8
- package/.agents/skills/component-library-rules/references/audit-followups.md +4 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.json +106 -93
- package/.agents/skills/component-library-rules/references/components/INDEX.md +17 -4
- package/.agents/skills/component-library-rules/references/components/base__accordion.md +78 -9
- package/.agents/skills/component-library-rules/references/components/base__alert.md +156 -0
- package/.agents/skills/component-library-rules/references/components/base__badge.md +8 -1
- package/.agents/skills/component-library-rules/references/components/base__buttons.md +121 -1
- package/.agents/skills/component-library-rules/references/components/base__cards.md +101 -4
- package/.agents/skills/component-library-rules/references/components/base__carousel.md +524 -0
- package/.agents/skills/component-library-rules/references/components/base__chart.md +391 -0
- package/.agents/skills/component-library-rules/references/components/base__combobox.md +212 -3
- package/.agents/skills/component-library-rules/references/components/base__copyable.md +49 -1
- package/.agents/skills/component-library-rules/references/components/base__currency.md +72 -1
- package/.agents/skills/component-library-rules/references/components/base__date-pickers.md +84 -50
- package/.agents/skills/component-library-rules/references/components/base__display.md +186 -39
- package/.agents/skills/component-library-rules/references/components/base__empty-state.md +67 -1
- package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +56 -1
- package/.agents/skills/component-library-rules/references/components/base__forms.md +329 -2
- package/.agents/skills/component-library-rules/references/components/base__frame.md +235 -0
- package/.agents/skills/component-library-rules/references/components/base__item.md +47 -1
- package/.agents/skills/component-library-rules/references/components/base__map.md +37 -1
- package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +99 -7
- package/.agents/skills/component-library-rules/references/components/base__navigation.md +71 -1
- package/.agents/skills/component-library-rules/references/components/base__spinner.md +44 -3
- package/.agents/skills/component-library-rules/references/components/base__table.md +108 -14
- package/.agents/skills/component-library-rules/references/components/base__typography.md +122 -1
- package/.agents/skills/component-library-rules/references/components/base__upload-tray.md +43 -1
- package/.agents/skills/component-library-rules/references/components/common__brand.md +21 -25
- package/.agents/skills/component-library-rules/references/components/composed__admin.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__ai-elements.md +17 -2
- package/.agents/skills/component-library-rules/references/components/composed__ai-new.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__ai.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__api-key-list.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__commerce-extras.md +87 -16
- package/.agents/skills/component-library-rules/references/components/composed__commerce.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__contact-card.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__course-card.md +90 -105
- package/.agents/skills/component-library-rules/references/components/composed__dark-surfaces.md +10 -3
- package/.agents/skills/component-library-rules/references/components/composed__dense-info.md +11 -4
- package/.agents/skills/component-library-rules/references/components/composed__feature-announcement.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__giftcard-cards.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__gradient-card.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__invoice-header.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__invoice-items.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__invoice-mini.md +9 -2
- package/.agents/skills/component-library-rules/references/components/composed__invoice-table.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__navigation-extras.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__navigation.md +12 -5
- package/.agents/skills/component-library-rules/references/components/composed__onboarding-checklist.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__timelines.md +8 -1
- package/.agents/skills/component-library-rules/references/components/composed__vendor-profile.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__activities.md +60 -19
- package/.agents/skills/component-library-rules/references/components/features__ai-chat.md +134 -1
- package/.agents/skills/component-library-rules/references/components/features__card.md +239 -0
- package/.agents/skills/component-library-rules/references/components/features__comments.md +36 -1
- package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +19 -4
- package/.agents/skills/component-library-rules/references/components/features__event-log.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__filters.md +21 -1
- package/.agents/skills/component-library-rules/references/components/features__global-search.md +173 -2
- package/.agents/skills/component-library-rules/references/components/features__kanban.md +99 -81
- package/.agents/skills/component-library-rules/references/components/features__media-library.md +796 -0
- package/.agents/skills/component-library-rules/references/components/features__mentions.md +187 -0
- package/.agents/skills/component-library-rules/references/components/features__metrics-analytics-bar.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__metrics-analytics-cards.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__metrics-comparison.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__metrics-heatmap.md +10 -3
- package/.agents/skills/component-library-rules/references/components/features__metrics-inline-badge.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__metrics-kpi-row.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__metrics-micro-grid.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__metrics-overview.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__metrics-stat-cards.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__overlays.md +48 -16
- package/.agents/skills/component-library-rules/references/components/features__products.md +491 -0
- package/.agents/skills/component-library-rules/references/components/features__rich-text-editor.md +8 -1
- package/.agents/skills/component-library-rules/references/components/features__schema-form.md +375 -0
- package/.agents/skills/component-library-rules/references/components/features__suggestions.md +177 -0
- package/.agents/skills/component-library-rules/references/components/features__sync.md +155 -0
- package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +139 -24
- package/.agents/skills/component-library-rules/references/components/layout__layout-auth.md +826 -0
- package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +15 -3
- package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +8 -1
- package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +8 -1
- package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +9 -2
- package/.agents/skills/component-library-rules/references/components/layout__layout-users.md +51 -30
- package/.agents/skills/component-library-rules/references/components/layout__layout-workspace.md +234 -0
- package/.agents/skills/component-library-rules/references/components/ui__alert.md +6 -2
- package/.agents/skills/component-library-rules/references/components/ui__avatar.md +2 -2
- package/.agents/skills/component-library-rules/references/components/ui__breadcrumb.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__button.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__calendar.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__collapsible.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__empty-item.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__input-group.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__inputs.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__menus.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__overlays.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__pagination.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__progress.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__scroll-area.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__separator.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__skeleton.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__sonner.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__spinner.md +2 -2
- package/.agents/skills/component-library-rules/references/components/ui__tabs.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__toggles-group.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__toggles.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__ui-badge.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__ui-card.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__ui-table.md +1 -1
- package/.agents/skills/component-library-rules/references/visual-eval.md +1 -1
- package/.agents/skills/component-quality-pass/SKILL.md +47 -0
- package/.agents/skills/component-quality-pass/agents/openai.yaml +4 -0
- package/.agents/skills/component-quality-pass/references/audit-workflow.md +133 -0
- package/.agents/skills/component-quality-pass/scripts/list-preview-routes.mjs +71 -0
- package/.agents/skills/component-quality-pass/scripts/scan-quality-smells.mjs +213 -0
- package/COMPONENT_SELECTION.md +51 -5
- package/INTEGRATION.md +48 -2
- package/MIGRATION.md +17 -3
- package/PUBLISHING.md +4 -1
- package/README.md +56 -7
- package/dist/_shared/accordion-BWU7zxlO.cjs +2 -0
- package/dist/_shared/accordion-BWU7zxlO.cjs.map +1 -0
- package/dist/_shared/accordion-DTYKGqWD.js +130 -0
- package/dist/_shared/accordion-DTYKGqWD.js.map +1 -0
- package/dist/_shared/action-menu-BoQnI2UF.cjs +2 -0
- package/dist/_shared/action-menu-BoQnI2UF.cjs.map +1 -0
- package/dist/_shared/action-menu-uyg1Phsn.js +96 -0
- package/dist/_shared/action-menu-uyg1Phsn.js.map +1 -0
- package/dist/_shared/ai-artifact-CY1Jf9gM.cjs +3 -0
- package/dist/_shared/ai-artifact-CY1Jf9gM.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DdlK_l56.js +1099 -0
- package/dist/_shared/ai-artifact-DdlK_l56.js.map +1 -0
- package/dist/_shared/alert-CuIIKJC-.cjs +2 -0
- package/dist/_shared/alert-CuIIKJC-.cjs.map +1 -0
- package/dist/_shared/alert-k60OnTtb.js +81 -0
- package/dist/_shared/alert-k60OnTtb.js.map +1 -0
- package/dist/_shared/app-shell-DqDnnKT4.cjs +2 -0
- package/dist/_shared/app-shell-DqDnnKT4.cjs.map +1 -0
- package/dist/_shared/app-shell-w5h0vEKg.js +69 -0
- package/dist/_shared/app-shell-w5h0vEKg.js.map +1 -0
- package/dist/_shared/auth-CDjZFJxy.cjs +2 -0
- package/dist/_shared/auth-CDjZFJxy.cjs.map +1 -0
- package/dist/_shared/auth-_udUdWtn.js +643 -0
- package/dist/_shared/auth-_udUdWtn.js.map +1 -0
- package/dist/_shared/badge--o9wFHB_.cjs +2 -0
- package/dist/_shared/badge--o9wFHB_.cjs.map +1 -0
- package/dist/_shared/badge-yGlx9trX.js +108 -0
- package/dist/_shared/badge-yGlx9trX.js.map +1 -0
- package/dist/_shared/button-C1qc97U1.cjs +2 -0
- package/dist/_shared/button-C1qc97U1.cjs.map +1 -0
- package/dist/_shared/button-SuocMQFT.js +173 -0
- package/dist/_shared/button-SuocMQFT.js.map +1 -0
- package/dist/_shared/buttons-9YBwevkP.cjs +2 -0
- package/dist/_shared/buttons-9YBwevkP.cjs.map +1 -0
- package/dist/_shared/buttons-BR4BGVYf.js +143 -0
- package/dist/_shared/buttons-BR4BGVYf.js.map +1 -0
- package/dist/_shared/card-radio-group-Bna2uZs1.cjs +2 -0
- package/dist/_shared/card-radio-group-Bna2uZs1.cjs.map +1 -0
- package/dist/_shared/card-radio-group-D_CY1HRy.js +158 -0
- package/dist/_shared/card-radio-group-D_CY1HRy.js.map +1 -0
- package/dist/_shared/checkbox-CTqqawIT.js +22 -0
- package/dist/_shared/checkbox-CTqqawIT.js.map +1 -0
- package/dist/_shared/checkbox-D1n-nfLP.cjs +2 -0
- package/dist/_shared/checkbox-D1n-nfLP.cjs.map +1 -0
- package/dist/_shared/combobox-CpSmiPV8.cjs +2 -0
- package/dist/_shared/combobox-CpSmiPV8.cjs.map +1 -0
- package/dist/_shared/combobox-D01JwyFZ.js +810 -0
- package/dist/_shared/combobox-D01JwyFZ.js.map +1 -0
- package/dist/_shared/comments-D9velZAW.js +952 -0
- package/dist/_shared/comments-D9velZAW.js.map +1 -0
- package/dist/_shared/comments-DyUAKSQu.cjs +2 -0
- package/dist/_shared/comments-DyUAKSQu.cjs.map +1 -0
- package/dist/_shared/copyable-Bx4J7fuT.cjs +2 -0
- package/dist/_shared/copyable-Bx4J7fuT.cjs.map +1 -0
- package/dist/_shared/copyable-cfF4gZoT.js +38 -0
- package/dist/_shared/copyable-cfF4gZoT.js.map +1 -0
- package/dist/_shared/date-picker-BnsvBFOZ.cjs +2 -0
- package/dist/_shared/date-picker-BnsvBFOZ.cjs.map +1 -0
- package/dist/_shared/date-picker-TMcjGO26.js +1361 -0
- package/dist/_shared/date-picker-TMcjGO26.js.map +1 -0
- package/dist/_shared/date-pickers-BI4xLjHR.js +330 -0
- package/dist/_shared/date-pickers-BI4xLjHR.js.map +1 -0
- package/dist/_shared/date-pickers-BhaUK5S2.cjs +2 -0
- package/dist/_shared/date-pickers-BhaUK5S2.cjs.map +1 -0
- package/dist/_shared/display-C4n0uuxl.js +1154 -0
- package/dist/_shared/display-C4n0uuxl.js.map +1 -0
- package/dist/_shared/display-oDW0O9yB.cjs +2 -0
- package/dist/_shared/display-oDW0O9yB.cjs.map +1 -0
- package/dist/_shared/form-field-B7taMVbC.js +329 -0
- package/dist/_shared/form-field-B7taMVbC.js.map +1 -0
- package/dist/_shared/form-field-rMGPvHFK.cjs +2 -0
- package/dist/_shared/form-field-rMGPvHFK.cjs.map +1 -0
- package/dist/_shared/form-sizing-D74IS9KG.js.map +1 -1
- package/dist/_shared/form-sizing-aVwVuF-w.cjs.map +1 -1
- package/dist/_shared/forms-CwJci54_.js +3430 -0
- package/dist/_shared/forms-CwJci54_.js.map +1 -0
- package/dist/_shared/forms-E3JkTgcC.cjs +2 -0
- package/dist/_shared/forms-E3JkTgcC.cjs.map +1 -0
- package/dist/_shared/header-BUAddfdE.js +360 -0
- package/dist/_shared/header-BUAddfdE.js.map +1 -0
- package/dist/_shared/header-BnxWOiNm.cjs +2 -0
- package/dist/_shared/header-BnxWOiNm.cjs.map +1 -0
- package/dist/_shared/heading-0DYCOrgC.cjs +2 -0
- package/dist/_shared/heading-0DYCOrgC.cjs.map +1 -0
- package/dist/_shared/heading-HeP06nXG.js +107 -0
- package/dist/_shared/heading-HeP06nXG.js.map +1 -0
- package/dist/_shared/hooks-MW0UTO3q.cjs +2 -0
- package/dist/_shared/hooks-MW0UTO3q.cjs.map +1 -0
- package/dist/_shared/hooks-ZiPIvs0_.js +118 -0
- package/dist/_shared/hooks-ZiPIvs0_.js.map +1 -0
- package/dist/_shared/input-C7t-RHYq.js +182 -0
- package/dist/_shared/input-C7t-RHYq.js.map +1 -0
- package/dist/_shared/input-COMcb1WY.cjs +2 -0
- package/dist/_shared/input-COMcb1WY.cjs.map +1 -0
- package/dist/_shared/item-DAjqQhhj.js +225 -0
- package/dist/_shared/item-DAjqQhhj.js.map +1 -0
- package/dist/_shared/item-DoXXYgPm.cjs +2 -0
- package/dist/_shared/item-DoXXYgPm.cjs.map +1 -0
- package/dist/_shared/mentions-Br-EP9tq.js +506 -0
- package/dist/_shared/mentions-Br-EP9tq.js.map +1 -0
- package/dist/_shared/mentions-DNTsRHJl.cjs +2 -0
- package/dist/_shared/mentions-DNTsRHJl.cjs.map +1 -0
- package/dist/_shared/metadata-CPSQGPJh.cjs +2 -0
- package/dist/_shared/metadata-CPSQGPJh.cjs.map +1 -0
- package/dist/_shared/metadata-qTNAOM7E.js +235 -0
- package/dist/_shared/metadata-qTNAOM7E.js.map +1 -0
- package/dist/_shared/money-display-CFSMUtxS.cjs +2 -0
- package/dist/_shared/money-display-CFSMUtxS.cjs.map +1 -0
- package/dist/_shared/money-display-D4Z3P3f_.js +198 -0
- package/dist/_shared/money-display-D4Z3P3f_.js.map +1 -0
- package/dist/_shared/navigation-HnnA6uSV.js +419 -0
- package/dist/_shared/navigation-HnnA6uSV.js.map +1 -0
- package/dist/_shared/navigation-J2g0Tw9D.cjs +2 -0
- package/dist/_shared/navigation-J2g0Tw9D.cjs.map +1 -0
- package/dist/_shared/overlays-CIeniDjj.js +639 -0
- package/dist/_shared/overlays-CIeniDjj.js.map +1 -0
- package/dist/_shared/overlays-Xc_F_Y-E.cjs +2 -0
- package/dist/_shared/overlays-Xc_F_Y-E.cjs.map +1 -0
- package/dist/_shared/page-BFV-KE8H.js +262 -0
- package/dist/_shared/page-BFV-KE8H.js.map +1 -0
- package/dist/_shared/page-UJfWfw2R.cjs +2 -0
- package/dist/_shared/page-UJfWfw2R.cjs.map +1 -0
- package/dist/_shared/popover-menu-Fz-bvWJF.cjs +2 -0
- package/dist/_shared/popover-menu-Fz-bvWJF.cjs.map +1 -0
- package/dist/_shared/popover-menu-bKQatoYF.js +93 -0
- package/dist/_shared/popover-menu-bKQatoYF.js.map +1 -0
- package/dist/_shared/rich-text-editor-B6WKHUKC.js +620 -0
- package/dist/_shared/rich-text-editor-B6WKHUKC.js.map +1 -0
- package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs +2 -0
- package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs.map +1 -0
- package/dist/_shared/sidebar-BML5ZZ5s.js +537 -0
- package/dist/_shared/sidebar-BML5ZZ5s.js.map +1 -0
- package/dist/_shared/sidebar-C89O5ho_.cjs +2 -0
- package/dist/_shared/sidebar-C89O5ho_.cjs.map +1 -0
- package/dist/_shared/smart-card-DYZGY_Su.js +361 -0
- package/dist/_shared/smart-card-DYZGY_Su.js.map +1 -0
- package/dist/_shared/smart-card-Df80VF8x.cjs +2 -0
- package/dist/_shared/smart-card-Df80VF8x.cjs.map +1 -0
- package/dist/_shared/spinner-BfAbXTQ7.js +67 -0
- package/dist/_shared/spinner-BfAbXTQ7.js.map +1 -0
- package/dist/_shared/spinner-DWn3x9Tl.cjs +2 -0
- package/dist/_shared/spinner-DWn3x9Tl.cjs.map +1 -0
- package/dist/_shared/table-CBKDA7ZE.js +1189 -0
- package/dist/_shared/table-CBKDA7ZE.js.map +1 -0
- package/dist/_shared/table-CJoxRCWy.cjs +2 -0
- package/dist/_shared/table-CJoxRCWy.cjs.map +1 -0
- package/dist/_shared/textarea-C4SOrh0z.cjs +2 -0
- package/dist/_shared/textarea-C4SOrh0z.cjs.map +1 -0
- package/dist/_shared/textarea-CsMkelmp.js +119 -0
- package/dist/_shared/textarea-CsMkelmp.js.map +1 -0
- package/dist/_shared/typography-Bzsl7aTu.cjs +2 -0
- package/dist/_shared/typography-Bzsl7aTu.cjs.map +1 -0
- package/dist/_shared/typography-CdxyWB1T.js +102 -0
- package/dist/_shared/typography-CdxyWB1T.js.map +1 -0
- package/dist/_shared/ui-provider-BF4m2cR0.cjs +2 -0
- package/dist/_shared/ui-provider-BF4m2cR0.cjs.map +1 -0
- package/dist/_shared/ui-provider-C8Ot88lS.js +85 -0
- package/dist/_shared/ui-provider-C8Ot88lS.js.map +1 -0
- package/dist/_shared/workspace-CTjIGCE0.cjs +2 -0
- package/dist/_shared/workspace-CTjIGCE0.cjs.map +1 -0
- package/dist/_shared/workspace-WgJgiSUA.js +357 -0
- package/dist/_shared/workspace-WgJgiSUA.js.map +1 -0
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/base-button.d.ts.map +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.d.ts +1 -1
- package/dist/components/base/cards/index.d.ts.map +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/cards/smart-card.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.types.d.ts +2 -1
- package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
- package/dist/components/base/carousel/carousel.d.ts +66 -0
- package/dist/components/base/carousel/carousel.d.ts.map +1 -0
- package/dist/components/base/carousel/carousel.strings.d.ts +7 -0
- package/dist/components/base/carousel/carousel.strings.d.ts.map +1 -0
- package/dist/components/base/carousel/index.cjs +2 -0
- package/dist/components/base/carousel/index.cjs.map +1 -0
- package/dist/components/base/carousel/index.d.ts +3 -0
- package/dist/components/base/carousel/index.d.ts.map +1 -0
- package/dist/components/base/carousel/index.js +239 -0
- package/dist/components/base/carousel/index.js.map +1 -0
- package/dist/components/base/combobox/enhanced-combobox.d.ts +2 -2
- package/dist/components/base/combobox/enhanced-combobox.d.ts.map +1 -1
- package/dist/components/base/combobox/hooks/use-debounced-search.d.ts.map +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/combobox/types.d.ts +4 -1
- package/dist/components/base/combobox/types.d.ts.map +1 -1
- package/dist/components/base/copyable/index.cjs +1 -1
- package/dist/components/base/copyable/index.js +1 -1
- package/dist/components/base/currency/index.cjs +1 -1
- package/dist/components/base/currency/index.js +1 -1
- package/dist/components/base/date-pickers/index.cjs +1 -1
- package/dist/components/base/date-pickers/index.js +2 -2
- package/dist/components/base/display/alert.d.ts +13 -1
- package/dist/components/base/display/alert.d.ts.map +1 -1
- package/dist/components/base/display/chart.cjs +8 -0
- package/dist/components/base/display/chart.cjs.map +1 -0
- package/dist/components/base/display/chart.d.ts +71 -1
- package/dist/components/base/display/chart.d.ts.map +1 -1
- package/dist/components/base/display/chart.js +144 -0
- package/dist/components/base/display/chart.js.map +1 -0
- package/dist/components/base/display/date-block.d.ts +1 -1
- package/dist/components/base/display/date-block.d.ts.map +1 -1
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.d.ts +1 -2
- package/dist/components/base/display/index.d.ts.map +1 -1
- package/dist/components/base/display/index.js +10 -10
- package/dist/components/base/display/metadata/index.cjs +1 -1
- package/dist/components/base/display/metadata/index.js +1 -1
- package/dist/components/base/display/notification-banner.d.ts.map +1 -1
- package/dist/components/base/display/stacked-avatars.d.ts +6 -5
- package/dist/components/base/display/stacked-avatars.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar-event-badge.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar-event-card.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar-header.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar-legend.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar.types.d.ts +3 -2
- package/dist/components/base/event-calendar/event-calendar.types.d.ts.map +1 -1
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.cjs.map +1 -1
- package/dist/components/base/event-calendar/index.js +196 -205
- package/dist/components/base/event-calendar/index.js.map +1 -1
- package/dist/components/base/forms/fields/currency-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/decimal-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/index.d.ts +2 -0
- package/dist/components/base/forms/fields/index.d.ts.map +1 -1
- package/dist/components/base/forms/fields/password-input.d.ts +21 -0
- package/dist/components/base/forms/fields/password-input.d.ts.map +1 -0
- package/dist/components/base/forms/fields/select.d.ts +2 -0
- package/dist/components/base/forms/fields/select.d.ts.map +1 -1
- package/dist/components/base/forms/fields/slug-field.d.ts +16 -0
- package/dist/components/base/forms/fields/slug-field.d.ts.map +1 -0
- package/dist/components/base/forms/fields/switch-card.d.ts.map +1 -1
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +8 -7
- package/dist/components/base/frame/frame.d.ts +24 -0
- package/dist/components/base/frame/frame.d.ts.map +1 -0
- package/dist/components/base/frame/index.cjs +2 -0
- package/dist/components/base/frame/index.cjs.map +1 -0
- package/dist/components/base/frame/index.d.ts +2 -0
- package/dist/components/base/frame/index.d.ts.map +1 -0
- package/dist/components/base/frame/index.js +164 -0
- package/dist/components/base/frame/index.js.map +1 -0
- package/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/base/item/index.cjs +1 -1
- package/dist/components/base/item/index.js +1 -1
- package/dist/components/base/item/item.d.ts.map +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.cjs.map +1 -1
- package/dist/components/base/map/index.js +1 -1
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +2 -2
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- package/dist/components/base/popover-menu/popover-menu.d.ts +2 -1
- package/dist/components/base/popover-menu/popover-menu.d.ts.map +1 -1
- package/dist/components/base/spinner/index.cjs +1 -1
- package/dist/components/base/spinner/index.js +1 -1
- package/dist/components/base/table/data-table.d.ts.map +1 -1
- package/dist/components/base/table/index.cjs +1 -2
- package/dist/components/base/table/index.js +2 -1189
- package/dist/components/base/table/table-body.d.ts.map +1 -1
- package/dist/components/base/table/table-header.d.ts.map +1 -1
- package/dist/components/base/table/table-helpers.d.ts.map +1 -1
- package/dist/components/base/table/table.types.d.ts +6 -1
- package/dist/components/base/table/table.types.d.ts.map +1 -1
- package/dist/components/base/toaster/index.cjs +1 -1
- package/dist/components/base/toaster/index.js +1 -1
- package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -1
- 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.js +18 -13
- package/dist/components/composed/admin/index.js.map +1 -1
- package/dist/components/composed/admin/role-permission/role-permission.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-citation/ai-citation.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-file-tree/ai-file-tree.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-inline-citation/ai-inline-citation.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-reasoning/ai-reasoning.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-sources/ai-sources.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-task/ai-task.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-task/types.d.ts +2 -0
- package/dist/components/composed/ai/ai-task/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts.map +1 -1
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.cjs.map +1 -1
- package/dist/components/composed/ai/index.js +87 -83
- package/dist/components/composed/ai/index.js.map +1 -1
- package/dist/components/composed/analytics/chart-card/chart-card.d.ts +22 -0
- package/dist/components/composed/analytics/chart-card/chart-card.d.ts.map +1 -0
- package/dist/components/composed/analytics/chart-card/index.d.ts +2 -0
- package/dist/components/composed/analytics/chart-card/index.d.ts.map +1 -0
- package/dist/components/composed/analytics/format-metric-value.d.ts.map +1 -1
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.cjs.map +1 -1
- package/dist/components/composed/analytics/index.d.ts +2 -0
- package/dist/components/composed/analytics/index.d.ts.map +1 -1
- package/dist/components/composed/analytics/index.js +369 -377
- package/dist/components/composed/analytics/index.js.map +1 -1
- package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts +2 -1
- package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts.map +1 -1
- package/dist/components/composed/analytics/metric-gradient/metric-gradient.d.ts.map +1 -1
- package/dist/components/composed/cards/contact-card/contact-card.d.ts.map +1 -1
- package/dist/components/composed/cards/course-card/course-card.d.ts.map +1 -1
- package/dist/components/composed/cards/giftcard-card/partials/giftcard-compact.d.ts.map +1 -1
- package/dist/components/composed/cards/giftcard-card/partials/giftcard-dark.d.ts.map +1 -1
- package/dist/components/composed/cards/giftcard-card/partials/giftcard-full.d.ts.map +1 -1
- package/dist/components/composed/cards/giftcard-card/partials/giftcard-illustrated.d.ts.map +1 -1
- package/dist/components/composed/cards/giftcard-card/partials/giftcard-minimal.d.ts.map +1 -1
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.cjs.map +1 -1
- package/dist/components/composed/cards/index.js +586 -606
- package/dist/components/composed/cards/index.js.map +1 -1
- package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts.map +1 -1
- package/dist/components/composed/commerce/cart-summary/cart-summary.d.ts.map +1 -1
- package/dist/components/composed/commerce/cart-summary/types.d.ts +8 -1
- package/dist/components/composed/commerce/cart-summary/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts.map +1 -1
- 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 +580 -486
- package/dist/components/composed/commerce/index.js.map +1 -1
- package/dist/components/composed/commerce/order-status/order-status.d.ts.map +1 -1
- package/dist/components/composed/commerce/order-status/types.d.ts +2 -0
- package/dist/components/composed/commerce/order-status/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/payment-method/payment-method.d.ts.map +1 -1
- package/dist/components/composed/commerce/voucher-entry/types.d.ts +3 -0
- package/dist/components/composed/commerce/voucher-entry/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts.map +1 -1
- package/dist/components/composed/dark-surfaces/booking-receipt/booking-receipt.d.ts.map +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
- package/dist/components/composed/dark-surfaces/index.js +23 -16
- package/dist/components/composed/dark-surfaces/index.js.map +1 -1
- package/dist/components/composed/dark-surfaces/order-items/order-items.d.ts.map +1 -1
- package/dist/components/composed/dark-surfaces/order-items/types.d.ts +3 -1
- package/dist/components/composed/dark-surfaces/order-items/types.d.ts.map +1 -1
- 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.js +18 -17
- package/dist/components/composed/data-display/index.js.map +1 -1
- package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts.map +1 -1
- package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts.map +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.cjs.map +1 -1
- package/dist/components/composed/navigation/index.js +90 -72
- package/dist/components/composed/navigation/index.js.map +1 -1
- package/dist/components/composed/navigation/kanban-board/kanban-board.d.ts.map +1 -1
- package/dist/components/composed/navigation/kanban-board/types.d.ts +5 -1
- package/dist/components/composed/navigation/kanban-board/types.d.ts.map +1 -1
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.cjs.map +1 -1
- package/dist/components/composed/onboarding/index.js +3 -3
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.cjs.map +1 -1
- package/dist/components/composed/timelines/index.js +6 -6
- package/dist/components/composed/timelines/index.js.map +1 -1
- package/dist/components/features/activities/activities-feed.d.ts.map +1 -1
- package/dist/components/features/activities/activities.types.d.ts +2 -1
- package/dist/components/features/activities/activities.types.d.ts.map +1 -1
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.cjs.map +1 -1
- package/dist/components/features/activities/index.js +286 -301
- package/dist/components/features/activities/index.js.map +1 -1
- package/dist/components/features/activities/partials/activities-feed-card.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-headline.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-resource-tag.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-row.d.ts.map +1 -1
- package/dist/components/features/ai-chat/ai-chat.d.ts +2 -1
- package/dist/components/features/ai-chat/ai-chat.d.ts.map +1 -1
- package/dist/components/features/ai-chat/index.cjs +2 -2
- package/dist/components/features/ai-chat/index.cjs.map +1 -1
- package/dist/components/features/ai-chat/index.js +16 -14
- package/dist/components/features/ai-chat/index.js.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +2 -1
- package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +2 -1
- package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -1
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +2 -1
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +2 -1
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts.map +1 -1
- package/dist/components/features/card/card.types.d.ts +2 -0
- package/dist/components/features/card/card.types.d.ts.map +1 -1
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.cjs.map +1 -1
- package/dist/components/features/card/index.js +37 -43
- package/dist/components/features/card/index.js.map +1 -1
- package/dist/components/features/card/partials/default-shared-resource-partials.d.ts +2 -1
- package/dist/components/features/card/partials/default-shared-resource-partials.d.ts.map +1 -1
- package/dist/components/features/card/shared-resource-card.d.ts.map +1 -1
- package/dist/components/features/comments/comments-provider.d.ts +2 -1
- package/dist/components/features/comments/comments-provider.d.ts.map +1 -1
- package/dist/components/features/comments/comments.types.d.ts +6 -5
- package/dist/components/features/comments/comments.types.d.ts.map +1 -1
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/comments/partials/comment-attachment-chip.d.ts +2 -1
- package/dist/components/features/comments/partials/comment-attachment-chip.d.ts.map +1 -1
- package/dist/components/features/comments/partials/comment-composer.d.ts.map +1 -1
- package/dist/components/features/comments/partials/comment-empty.d.ts +2 -1
- package/dist/components/features/comments/partials/comment-empty.d.ts.map +1 -1
- package/dist/components/features/comments/partials/comment-item.d.ts.map +1 -1
- package/dist/components/features/event-log/event-log.d.ts.map +1 -1
- package/dist/components/features/event-log/event-log.types.d.ts +2 -2
- package/dist/components/features/event-log/event-log.types.d.ts.map +1 -1
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.cjs.map +1 -1
- package/dist/components/features/event-log/index.js +86 -86
- package/dist/components/features/event-log/index.js.map +1 -1
- package/dist/components/features/filters/facets/async-select-facet.d.ts +1 -1
- package/dist/components/features/filters/facets/async-select-facet.d.ts.map +1 -1
- package/dist/components/features/filters/filters.types.d.ts +7 -7
- package/dist/components/features/filters/filters.types.d.ts.map +1 -1
- package/dist/components/features/filters/hooks/use-async-options.d.ts.map +1 -1
- 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.js +518 -495
- package/dist/components/features/filters/index.js.map +1 -1
- package/dist/components/features/filters/partials/async-filter-content.d.ts +1 -1
- package/dist/components/features/filters/partials/async-filter-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-pill.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -1
- package/dist/components/features/global-search/global-search.d.ts +2 -1
- package/dist/components/features/global-search/global-search.d.ts.map +1 -1
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.cjs.map +1 -1
- package/dist/components/features/global-search/index.js +291 -271
- package/dist/components/features/global-search/index.js.map +1 -1
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts.map +1 -1
- package/dist/components/features/global-search/partials/global-search-input.d.ts.map +1 -1
- package/dist/components/features/global-search/partials/global-search-result-row.d.ts.map +1 -1
- package/dist/components/features/global-search/partials/global-search-tabs.d.ts.map +1 -1
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.cjs.map +1 -1
- package/dist/components/features/kanban/index.js +133 -124
- package/dist/components/features/kanban/index.js.map +1 -1
- package/dist/components/features/kanban/kanban-context.d.ts +1 -0
- package/dist/components/features/kanban/kanban-context.d.ts.map +1 -1
- package/dist/components/features/kanban/kanban.d.ts.map +1 -1
- package/dist/components/features/media-library/hooks/index.d.ts +2 -0
- package/dist/components/features/media-library/hooks/index.d.ts.map +1 -0
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +6 -0
- package/dist/components/features/media-library/hooks/use-media-library.d.ts.map +1 -0
- package/dist/components/features/media-library/index.cjs +2 -0
- package/dist/components/features/media-library/index.cjs.map +1 -0
- package/dist/components/features/media-library/index.d.ts +7 -0
- package/dist/components/features/media-library/index.d.ts.map +1 -0
- package/dist/components/features/media-library/index.js +1796 -0
- package/dist/components/features/media-library/index.js.map +1 -0
- package/dist/components/features/media-library/media-library.d.ts +4 -0
- package/dist/components/features/media-library/media-library.d.ts.map +1 -0
- package/dist/components/features/media-library/media-library.strings.d.ts +120 -0
- package/dist/components/features/media-library/media-library.strings.d.ts.map +1 -0
- package/dist/components/features/media-library/media-library.types.d.ts +340 -0
- package/dist/components/features/media-library/media-library.types.d.ts.map +1 -0
- package/dist/components/features/media-library/media-resource-gallery.d.ts +3 -0
- package/dist/components/features/media-library/media-resource-gallery.d.ts.map +1 -0
- package/dist/components/features/media-library/partials/index.d.ts +2 -0
- package/dist/components/features/media-library/partials/index.d.ts.map +1 -0
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +11 -0
- package/dist/components/features/media-library/partials/media-library-partials.d.ts.map +1 -0
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/mentions/partials/mention-chip.d.ts.map +1 -1
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts.map +1 -1
- package/dist/components/features/mentions/partials/mention-picker.d.ts.map +1 -1
- package/dist/components/features/mentions/utils/build-mention-html.d.ts +3 -3
- package/dist/components/features/overlays/dialog.d.ts +1 -1
- package/dist/components/features/overlays/dialog.d.ts.map +1 -1
- package/dist/components/features/overlays/drawer.d.ts.map +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/overlays/overlays.types.d.ts +3 -1
- package/dist/components/features/overlays/overlays.types.d.ts.map +1 -1
- package/dist/components/features/products/components/index.d.ts +15 -0
- package/dist/components/features/products/components/index.d.ts.map +1 -0
- package/dist/components/features/products/components/product-contract-overview.d.ts +6 -0
- package/dist/components/features/products/components/product-contract-overview.d.ts.map +1 -0
- package/dist/components/features/products/components/product-details-card.d.ts +6 -0
- package/dist/components/features/products/components/product-details-card.d.ts.map +1 -0
- package/dist/components/features/products/components/product-operations-card.d.ts +6 -0
- package/dist/components/features/products/components/product-operations-card.d.ts.map +1 -0
- package/dist/components/features/products/components/product-option-action-menu.d.ts +6 -0
- package/dist/components/features/products/components/product-option-action-menu.d.ts.map +1 -0
- package/dist/components/features/products/components/product-options-summary.d.ts +6 -0
- package/dist/components/features/products/components/product-options-summary.d.ts.map +1 -0
- package/dist/components/features/products/components/product-overview.d.ts +6 -0
- package/dist/components/features/products/components/product-overview.d.ts.map +1 -0
- package/dist/components/features/products/components/product-policies-card.d.ts +6 -0
- package/dist/components/features/products/components/product-policies-card.d.ts.map +1 -0
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +6 -0
- package/dist/components/features/products/components/product-quote-preview-card.d.ts.map +1 -0
- package/dist/components/features/products/components/product-readiness-card.d.ts +6 -0
- package/dist/components/features/products/components/product-readiness-card.d.ts.map +1 -0
- package/dist/components/features/products/components/product-structure-card.d.ts +6 -0
- package/dist/components/features/products/components/product-structure-card.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +6 -0
- package/dist/components/features/products/components/product-variant-action-menu.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variant-details.d.ts +6 -0
- package/dist/components/features/products/components/product-variant-details.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variant-editor.d.ts +6 -0
- package/dist/components/features/products/components/product-variant-editor.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variants-table.d.ts +6 -0
- package/dist/components/features/products/components/product-variants-table.d.ts.map +1 -0
- package/dist/components/features/products/index.cjs +2 -0
- package/dist/components/features/products/index.cjs.map +1 -0
- package/dist/components/features/products/index.d.ts +6 -0
- package/dist/components/features/products/index.d.ts.map +1 -0
- package/dist/components/features/products/index.js +1749 -0
- package/dist/components/features/products/index.js.map +1 -0
- package/dist/components/features/products/partials/index.d.ts +8 -0
- package/dist/components/features/products/partials/index.d.ts.map +1 -0
- package/dist/components/features/products/partials/product-actions.d.ts +8 -0
- package/dist/components/features/products/partials/product-actions.d.ts.map +1 -0
- package/dist/components/features/products/partials/product-empty-state.d.ts +8 -0
- package/dist/components/features/products/partials/product-empty-state.d.ts.map +1 -0
- package/dist/components/features/products/partials/product-metric-tile.d.ts +5 -0
- package/dist/components/features/products/partials/product-metric-tile.d.ts.map +1 -0
- package/dist/components/features/products/partials/product-rows.d.ts +25 -0
- package/dist/components/features/products/partials/product-rows.d.ts.map +1 -0
- package/dist/components/features/products/partials/product-tone.d.ts +9 -0
- package/dist/components/features/products/partials/product-tone.d.ts.map +1 -0
- package/dist/components/features/products/partials/product-values.d.ts +2 -0
- package/dist/components/features/products/partials/product-values.d.ts.map +1 -0
- package/dist/components/features/products/partials/product-variant-table-parts.d.ts +22 -0
- package/dist/components/features/products/partials/product-variant-table-parts.d.ts.map +1 -0
- package/dist/components/features/products/products.d.ts +7 -0
- package/dist/components/features/products/products.d.ts.map +1 -0
- package/dist/components/features/products/products.strings.d.ts +197 -0
- package/dist/components/features/products/products.strings.d.ts.map +1 -0
- package/dist/components/features/products/products.types.d.ts +372 -0
- package/dist/components/features/products/products.types.d.ts.map +1 -0
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts.map +1 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts.map +1 -1
- package/dist/components/features/schema-form/hooks/index.d.ts +2 -0
- package/dist/components/features/schema-form/hooks/index.d.ts.map +1 -0
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +24 -0
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts.map +1 -0
- package/dist/components/features/schema-form/index.cjs +2 -0
- package/dist/components/features/schema-form/index.cjs.map +1 -0
- package/dist/components/features/schema-form/index.d.ts +6 -0
- package/dist/components/features/schema-form/index.d.ts.map +1 -0
- package/dist/components/features/schema-form/index.js +721 -0
- package/dist/components/features/schema-form/index.js.map +1 -0
- package/dist/components/features/schema-form/partials/index.d.ts +4 -0
- package/dist/components/features/schema-form/partials/index.d.ts.map +1 -0
- package/dist/components/features/schema-form/partials/schema-form-actions.d.ts +16 -0
- package/dist/components/features/schema-form/partials/schema-form-actions.d.ts.map +1 -0
- package/dist/components/features/schema-form/partials/schema-form-empty.d.ts +10 -0
- package/dist/components/features/schema-form/partials/schema-form-empty.d.ts.map +1 -0
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +11 -0
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts.map +1 -0
- package/dist/components/features/schema-form/schema-form.d.ts +6 -0
- package/dist/components/features/schema-form/schema-form.d.ts.map +1 -0
- package/dist/components/features/schema-form/schema-form.strings.d.ts +12 -0
- package/dist/components/features/schema-form/schema-form.strings.d.ts.map +1 -0
- package/dist/components/features/schema-form/schema-form.types.d.ts +198 -0
- package/dist/components/features/schema-form/schema-form.types.d.ts.map +1 -0
- package/dist/components/features/schema-form/schema-form.utils.d.ts +19 -0
- package/dist/components/features/schema-form/schema-form.utils.d.ts.map +1 -0
- package/dist/components/features/suggestions/hooks/use-suggestions.d.ts.map +1 -1
- package/dist/components/features/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.cjs.map +1 -1
- package/dist/components/features/suggestions/index.js +64 -64
- package/dist/components/features/suggestions/index.js.map +1 -1
- package/dist/components/features/suggestions/suggestions.d.ts.map +1 -1
- package/dist/components/features/suggestions/suggestions.types.d.ts +1 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts.map +1 -1
- package/dist/components/features/sync/index.cjs +1 -1
- package/dist/components/features/sync/index.cjs.map +1 -1
- package/dist/components/features/sync/index.js +3 -3
- package/dist/components/layout/app-shell/app-shell.types.d.ts +1 -1
- package/dist/components/layout/app-shell/app-shell.types.d.ts.map +1 -1
- package/dist/components/layout/app-shell/index.cjs +1 -1
- package/dist/components/layout/app-shell/index.js +1 -1
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts.map +1 -1
- package/dist/components/layout/auth/auth-card.d.ts +3 -0
- package/dist/components/layout/auth/auth-card.d.ts.map +1 -0
- package/dist/components/layout/auth/auth-footer-links.d.ts +3 -0
- package/dist/components/layout/auth/auth-footer-links.d.ts.map +1 -0
- package/dist/components/layout/auth/auth-hooks.d.ts +5 -0
- package/dist/components/layout/auth/auth-hooks.d.ts.map +1 -0
- package/dist/components/layout/auth/auth-method-switch.d.ts +5 -0
- package/dist/components/layout/auth/auth-method-switch.d.ts.map +1 -0
- package/dist/components/layout/auth/auth-shell.d.ts +3 -0
- package/dist/components/layout/auth/auth-shell.d.ts.map +1 -0
- package/dist/components/layout/auth/auth-social-providers.d.ts +4 -0
- package/dist/components/layout/auth/auth-social-providers.d.ts.map +1 -0
- package/dist/components/layout/auth/auth-split-panel.d.ts +3 -0
- package/dist/components/layout/auth/auth-split-panel.d.ts.map +1 -0
- package/dist/components/layout/auth/auth.strings.d.ts +22 -0
- package/dist/components/layout/auth/auth.strings.d.ts.map +1 -0
- package/dist/components/layout/auth/auth.types.d.ts +187 -0
- package/dist/components/layout/auth/auth.types.d.ts.map +1 -0
- package/dist/components/layout/auth/index.cjs +1 -0
- package/dist/components/layout/auth/index.d.ts +10 -0
- package/dist/components/layout/auth/index.d.ts.map +1 -0
- package/dist/components/layout/auth/index.js +2 -0
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/header/partials/header-notifications.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 +8 -6
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -0
- package/dist/components/layout/workspace/index.d.ts +4 -0
- package/dist/components/layout/workspace/index.d.ts.map +1 -0
- package/dist/components/layout/workspace/index.js +2 -0
- package/dist/components/layout/workspace/workspace.d.ts +7 -0
- package/dist/components/layout/workspace/workspace.d.ts.map +1 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts +19 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts.map +1 -0
- package/dist/components/layout/workspace/workspace.types.d.ts +96 -0
- package/dist/components/layout/workspace/workspace.types.d.ts.map +1 -0
- package/dist/components/typography/heading.d.ts +2 -1
- package/dist/components/typography/heading.d.ts.map +1 -1
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +2 -3
- package/dist/components/typography/text-link.d.ts.map +1 -1
- package/dist/components/typography/text.d.ts +2 -1
- package/dist/components/typography/text.d.ts.map +1 -1
- package/dist/components/ui/input-group.d.ts +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/ui-provider/index.cjs +1 -1
- package/dist/lib/ui-provider/index.js +1 -1
- package/dist/lib/utils.cjs +1 -1
- package/dist/lib/utils.cjs.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +19 -16
- package/dist/lib/utils.js.map +1 -1
- package/dist/showcase/assets/AreaChart-DUe3j5uB.js +6 -0
- package/dist/showcase/assets/CompositeItem-DleE4kTc.js +1 -0
- package/dist/showcase/assets/CompositeRoot-BbNkvtLz.js +1 -0
- package/dist/showcase/assets/DialogTrigger-C0DB0bXw.js +1 -0
- package/dist/showcase/assets/FieldItemContext-CFTR-INZ.js +1 -0
- package/dist/showcase/assets/FormContext-lmjYAh4E.js +1 -0
- package/dist/showcase/assets/LabelableContext-CDv6gSfU.js +1 -0
- package/dist/showcase/assets/PreviewLayout-BG1B5TzA.js +1 -0
- package/dist/showcase/assets/RadioGroup-C-0MNAYY.js +1 -0
- package/dist/showcase/assets/Separator-KsPLUEno.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-AV8xAl2m.js +1 -0
- package/dist/showcase/assets/accordion-BWkuKg77.js +171 -0
- package/dist/showcase/assets/accordion-variants-CVT_62VO.js +1 -0
- package/dist/showcase/assets/action-menu-BOUHlGba.js +1 -0
- package/dist/showcase/assets/activities-DMDQje7Y.js +501 -0
- package/dist/showcase/assets/activities-feed-card-B8wpu4F3.js +1 -0
- package/dist/showcase/assets/activity-B-FxNryB.js +1 -0
- package/dist/showcase/assets/admin-CAhEeKt_.js +80 -0
- package/dist/showcase/assets/ai-UioEgJ90.js +41 -0
- package/dist/showcase/assets/ai-artifact-CUAlhcSX.js +2 -0
- package/dist/showcase/assets/ai-chat-C_w2PSmy.js +568 -0
- package/dist/showcase/assets/ai-elements-DmxqXR6H.js +387 -0
- package/dist/showcase/assets/ai-new-PG02TWQq.js +167 -0
- package/dist/showcase/assets/ai-tool-call-BaJx1rR4.js +1 -0
- package/dist/showcase/assets/alert-D7n-kQoO.js +93 -0
- package/dist/showcase/assets/alert-DIelf1qF.js +1 -0
- package/dist/showcase/assets/alert-TQCZEcn-.js +62 -0
- package/dist/showcase/assets/api-key-list-CSt4trYG.js +73 -0
- package/dist/showcase/assets/app-sidebar-DixqrLf2.js +1 -0
- package/dist/showcase/assets/arrow-down-CYh_aUsd.js +1 -0
- package/dist/showcase/assets/arrow-left-pYYsNkZE.js +1 -0
- package/dist/showcase/assets/arrow-right-Bf1Tl6D5.js +1 -0
- package/dist/showcase/assets/arrow-up-BhmQRZs9.js +1 -0
- package/dist/showcase/assets/arrow-up-right-CuAsO3-r.js +1 -0
- package/dist/showcase/assets/avatar-5EFTnHEG.js +1 -0
- package/dist/showcase/assets/avatar-DLpnivU0.js +57 -0
- package/dist/showcase/assets/badge-check-BRAVo7dA.js +1 -0
- package/dist/showcase/assets/badge-yFoRqbiq.js +28 -0
- package/dist/showcase/assets/bell-Dt3Nz2y2.js +1 -0
- package/dist/showcase/assets/bot-5Ro5Dayc.js +1 -0
- package/dist/showcase/assets/box-mt6TbZO6.js +1 -0
- package/dist/showcase/assets/brain-736080Wh.js +1 -0
- package/dist/showcase/assets/brand-4K8xsJ91.js +36 -0
- package/dist/showcase/assets/breadcrumb-CAlApdCw.js +1 -0
- package/dist/showcase/assets/breadcrumb-DHeGqoTD.js +52 -0
- package/dist/showcase/assets/breadcrumbs-D_lniGJs.js +1 -0
- package/dist/showcase/assets/briefcase-B_Uti-Iu.js +1 -0
- package/dist/showcase/assets/building-2-zgcwuzxP.js +1 -0
- package/dist/showcase/assets/button-PmqgeJKm.js +44 -0
- package/dist/showcase/assets/button-group-DAOmmujV.js +1 -0
- package/dist/showcase/assets/buttons-PtpR_v16.js +270 -0
- package/dist/showcase/assets/calendar-BiOGjB7a.js +1 -0
- package/dist/showcase/assets/calendar-C1A98cz0.js +16 -0
- package/dist/showcase/assets/calendar-DTgagmt7.js +1 -0
- package/dist/showcase/assets/calendar-days-pr8kXiTx.js +1 -0
- package/dist/showcase/assets/camera-CGKLOOep.js +1 -0
- package/dist/showcase/assets/card-CFIG8Dgg.js +1 -0
- package/dist/showcase/assets/card-CRd07Iun.js +188 -0
- package/dist/showcase/assets/card-primitives-YgCOqVDI.js +1 -0
- package/dist/showcase/assets/card-radio-group-Du6yaMZ-.js +1 -0
- package/dist/showcase/assets/cards-H7ywhTNM.js +328 -0
- package/dist/showcase/assets/carousel-Dwll5oz1.js +449 -0
- package/dist/showcase/assets/chart-BWnVf-d-.js +358 -0
- package/dist/showcase/assets/chart-column-DjAyOA-t.js +1 -0
- package/dist/showcase/assets/checkbox-fwuAAaUZ.js +1 -0
- package/dist/showcase/assets/chevron-down-CSn8HCwf.js +1 -0
- package/dist/showcase/assets/chevron-left-Ddj6-KOu.js +1 -0
- package/dist/showcase/assets/chevron-right-d-umkBru.js +1 -0
- package/dist/showcase/assets/chevron-up-CeFY6O0I.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-Ck3rUZtc.js +1 -0
- package/dist/showcase/assets/circle-Dy08kACD.js +1 -0
- package/dist/showcase/assets/circle-alert-ysbx8rsZ.js +1 -0
- package/dist/showcase/assets/circle-check-TT7cFQrr.js +1 -0
- package/dist/showcase/assets/circle-check-big-4RnJfeaC.js +1 -0
- package/dist/showcase/assets/circle-dot-CvoDXS-W.js +1 -0
- package/dist/showcase/assets/circle-question-mark-Dbi-WTYN.js +1 -0
- package/dist/showcase/assets/circle-x-c5z6-eYV.js +1 -0
- package/dist/showcase/assets/clock-3-DDEsD4Tb.js +1 -0
- package/dist/showcase/assets/clock-DuBsP5t3.js +1 -0
- package/dist/showcase/assets/code-xml-SoYTMEdm.js +1 -0
- package/dist/showcase/assets/collapsible-Cv3oGVkH.js +27 -0
- package/dist/showcase/assets/collapsible-DagkA3To.js +1 -0
- package/dist/showcase/assets/combobox-CPC4a_MH.js +696 -0
- package/dist/showcase/assets/command-BtaMPVtf.js +45 -0
- package/dist/showcase/assets/command-C37Q471b.js +1 -0
- package/dist/showcase/assets/comment-composer-W0xfh_HP.js +1 -0
- package/dist/showcase/assets/comment-item-Ctcpx1GX.js +1 -0
- package/dist/showcase/assets/comments-BODDdRry.js +357 -0
- package/dist/showcase/assets/commerce-B9MICTY2.js +79 -0
- package/dist/showcase/assets/commerce-extras-DsgnTkBH.js +189 -0
- package/dist/showcase/assets/composite-B-19wwf9.js +1 -0
- package/dist/showcase/assets/contact-card-CqP3YxTq.js +65 -0
- package/dist/showcase/assets/content-container-x2tsQKwH.js +1 -0
- package/dist/showcase/assets/copyable-DH0w0i_h.js +96 -0
- package/dist/showcase/assets/course-card-qpC4JUUM.js +77 -0
- package/dist/showcase/assets/cpu-DjJeD_0Z.js +1 -0
- package/dist/showcase/assets/credit-card-CYgRtM77.js +1 -0
- package/dist/showcase/assets/currency-hguqIjWU.js +149 -0
- package/dist/showcase/assets/dark-surfaces-Cj34O9A0.js +90 -0
- package/dist/showcase/assets/database-BVwSMeGM.js +1 -0
- package/dist/showcase/assets/date-block-LCTDXG5-.js +1 -0
- package/dist/showcase/assets/date-picker-CbYq8wZ7.js +1 -0
- package/dist/showcase/assets/date-pickers-BaSX23MK.js +73 -0
- package/dist/showcase/assets/dense-info-kY1QmtaP.js +106 -0
- package/dist/showcase/assets/dialog-B85US9Ue.js +1 -0
- package/dist/showcase/assets/dialog-iIgfMvTJ.js +1 -0
- package/dist/showcase/assets/display-DTaQWVJp.js +403 -0
- package/dist/showcase/assets/dollar-sign-DlK6XF_v.js +1 -0
- package/dist/showcase/assets/download-B_EY5cGA.js +1 -0
- package/dist/showcase/assets/dropdown-menu-bPWrLPgm.js +1 -0
- package/dist/showcase/assets/dropzone-Bl7RO_Uk.js +1 -0
- package/dist/showcase/assets/earth-C7n2JAYm.js +1 -0
- package/dist/showcase/assets/ellipsis-ntuo3ejh.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-yH8S83bc.js +1 -0
- package/dist/showcase/assets/empty-CY8f7iFe.js +1 -0
- package/dist/showcase/assets/empty-item-Ct7uCr40.js +49 -0
- package/dist/showcase/assets/empty-state-DlO8SJi8.js +188 -0
- package/dist/showcase/assets/empty-state-IAAUTn6f.js +1 -0
- package/dist/showcase/assets/enhanced-activities-DLwShhof.js +361 -0
- package/dist/showcase/assets/enhanced-combobox-Cs_-wq9p.js +1 -0
- package/dist/showcase/assets/event-calendar-C4KlumlG.js +138 -0
- package/dist/showcase/assets/event-log-BvUU5Rj8.js +330 -0
- package/dist/showcase/assets/example-BIrQab7K.js +1 -0
- package/dist/showcase/assets/external-link-DuJlM_H4.js +1 -0
- package/dist/showcase/assets/eye-CnRPL_H8.js +1 -0
- package/dist/showcase/assets/feature-announcement-0dOcSH7F.js +34 -0
- package/dist/showcase/assets/file-Dc5UHkfE.js +1 -0
- package/dist/showcase/assets/file-text-D3AE37vP.js +1 -0
- package/dist/showcase/assets/filters-CsovNSxS.js +78 -0
- package/dist/showcase/assets/flag-CJJ43K4x.js +1 -0
- package/dist/showcase/assets/folder-open-Dp0sceCi.js +1 -0
- package/dist/showcase/assets/form-field-Cxm4APa9.js +1 -0
- package/dist/showcase/assets/form-sizing-DHUDpiPA.js +1 -0
- package/dist/showcase/assets/format-bDaUGCSP.js +1 -0
- package/dist/showcase/assets/format-metric-value-BTsvOjZQ.js +1 -0
- package/dist/showcase/assets/forms-BrVikK1p.js +862 -0
- package/dist/showcase/assets/frame-CkLEABTd.js +167 -0
- package/dist/showcase/assets/getPseudoElementBounds-Bznj386s.js +1 -0
- package/dist/showcase/assets/gift-Bx8IO1FQ.js +1 -0
- package/dist/showcase/assets/giftcard-cards-CZTXBjv0.js +85 -0
- package/dist/showcase/assets/git-branch-D9jt-u1q.js +1 -0
- package/dist/showcase/assets/global-search-C2R_3Pb3.js +215 -0
- package/dist/showcase/assets/global-search-D9XJ747r.js +1 -0
- package/dist/showcase/assets/globe-BJHI134i.js +1 -0
- package/dist/showcase/assets/gradient-card-CV8w2JG5.js +58 -0
- package/dist/showcase/assets/hash-CtBGoIvf.js +1 -0
- package/dist/showcase/assets/header-B3FSlVv4.js +1 -0
- package/dist/showcase/assets/header-notifications-3VH9lzzJ.js +1 -0
- package/dist/showcase/assets/heart-BWZYF4xJ.js +1 -0
- package/dist/showcase/assets/hero-CLDdwZDr.png +0 -0
- package/dist/showcase/assets/house-CAQOnHLO.js +1 -0
- package/dist/showcase/assets/icon-badge-CxvxB8Vd.js +1 -0
- package/dist/showcase/assets/image-Byz-p7hT.js +1 -0
- package/dist/showcase/assets/inbox-D4UE_W9O.js +1 -0
- package/dist/showcase/assets/index-ADfexGMA.css +2 -0
- package/dist/showcase/assets/index-Cz4UGUT2.js +10 -0
- package/dist/showcase/assets/index.esm-Ducg7a0P.js +1 -0
- package/dist/showcase/assets/inertValue-BVXUUuS4.js +1 -0
- package/dist/showcase/assets/info-DFu8OfxV.js +1 -0
- package/dist/showcase/assets/inline-stat-DqI70yoJ.js +1 -0
- package/dist/showcase/assets/input-BPDdWrB1.js +1 -0
- package/dist/showcase/assets/input-BzafMIDj.js +1 -0
- package/dist/showcase/assets/input-group-BYZYeQ7j.js +1 -0
- package/dist/showcase/assets/input-group-YIWmmLJ6.js +47 -0
- package/dist/showcase/assets/inputs-DjzrYJdb.js +49 -0
- package/dist/showcase/assets/invoice-header-B00JrPAb.js +36 -0
- package/dist/showcase/assets/invoice-items-CUt5D3Wz.js +36 -0
- package/dist/showcase/assets/invoice-mini-CRoaQ9g9.js +14 -0
- package/dist/showcase/assets/invoice-table-DYNnDTQl.js +30 -0
- package/dist/showcase/assets/isSameDay-DVNkwpSk.js +1 -0
- package/dist/showcase/assets/isToday-DZ1HTCty.js +1 -0
- package/dist/showcase/assets/italic-AbetEb3d.js +1 -0
- package/dist/showcase/assets/item-BGA6_5Zh.js +134 -0
- package/dist/showcase/assets/item-BJOYyqeO.js +1 -0
- package/dist/showcase/assets/item-CbiuwbAN.js +1 -0
- package/dist/showcase/assets/kanban-Br-Yz002.js +186 -0
- package/dist/showcase/assets/label-BlCKlLE-.js +1 -0
- package/dist/showcase/assets/languages-CKcUvHnt.js +1 -0
- package/dist/showcase/assets/layers-CakZLRSD.js +1 -0
- package/dist/showcase/assets/layout-app-shell-ukDXqPxC.js +608 -0
- package/dist/showcase/assets/layout-auth-BFza65L3.js +754 -0
- package/dist/showcase/assets/layout-containers-v1jG_b7r.js +101 -0
- package/dist/showcase/assets/layout-header-CqBf9wjY.js +170 -0
- package/dist/showcase/assets/layout-page-WJcljCac.js +122 -0
- package/dist/showcase/assets/layout-sidebar-DL6TLuQC.js +224 -0
- package/dist/showcase/assets/layout-users-B8qpsvV9.js +117 -0
- package/dist/showcase/assets/layout-workspace-iOKZ4-9K.js +183 -0
- package/dist/showcase/assets/lock-Dn4-vUBz.js +1 -0
- package/dist/showcase/assets/lock-keyhole-M6KZ_7RC.js +1 -0
- package/dist/showcase/assets/mail-check-DXqQwivW.js +1 -0
- package/dist/showcase/assets/mail-w1nhszbW.js +1 -0
- package/dist/showcase/assets/map-CquesVXo.js +124 -0
- package/dist/showcase/assets/map-pin-DUl-Lt6t.js +1 -0
- package/dist/showcase/assets/media-library-CCJBQRPu.js +695 -0
- package/dist/showcase/assets/mention-inline-suggestions-DyW6IwL8.js +1 -0
- package/dist/showcase/assets/mentions-Ea4pSJqG.js +138 -0
- package/dist/showcase/assets/menus-CJjtE4fD.js +89 -0
- package/dist/showcase/assets/message-square-B0RnrJV6.js +1 -0
- package/dist/showcase/assets/metadata-list-DkN9yfTj.js +288 -0
- package/dist/showcase/assets/metadata-list-fm8e58ID.js +1 -0
- package/dist/showcase/assets/metric-bar-BydkmggA.js +1 -0
- package/dist/showcase/assets/metric-grid-BKjrYpt9.js +1 -0
- package/dist/showcase/assets/metric-guQTLTAa.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-DehaJ3nC.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-YjwFT4ae.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-B6DspERM.js +50 -0
- package/dist/showcase/assets/metrics-comparison-Nru5wypZ.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-CcumN0Or.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-2WB7w9mz.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-jU3hsB3C.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-CaJ99RXL.js +42 -0
- package/dist/showcase/assets/metrics-overview-Sa7z6jct.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-PLvMkA0M.js +54 -0
- package/dist/showcase/assets/minus-OyRBql2C.js +1 -0
- package/dist/showcase/assets/money-display-23DKz-jK.js +1 -0
- package/dist/showcase/assets/month-year-picker-oEoInnKW.js +1 -0
- package/dist/showcase/assets/navigation-Ds60FMAs.js +230 -0
- package/dist/showcase/assets/navigation-Dufz6qnF.js +90 -0
- package/dist/showcase/assets/navigation-extras-DKufT82I.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-DSkS2ktA.js +119 -0
- package/dist/showcase/assets/overlays-BptoR4sm.js +408 -0
- package/dist/showcase/assets/overlays-CVGJ_FEg.js +88 -0
- package/dist/showcase/assets/package-0ZgMoFm1.js +1 -0
- package/dist/showcase/assets/package-check-CT0dhSM8.js +1 -0
- package/dist/showcase/assets/page-action-button-DrHJKFbp.js +1 -0
- package/dist/showcase/assets/page-header-CikNDnqI.js +1 -0
- package/dist/showcase/assets/pagination-CxuA2zkE.js +42 -0
- package/dist/showcase/assets/pagination-DsPLs2Tx.js +1 -0
- package/dist/showcase/assets/paperclip-CDMZ_JAo.js +1 -0
- package/dist/showcase/assets/password-input-BVaUPw7a.js +1 -0
- package/dist/showcase/assets/pencil-BouoJ5x7.js +1 -0
- package/dist/showcase/assets/phone-DCNFH5yg.js +1 -0
- package/dist/showcase/assets/plus-DkHZm34I.js +1 -0
- package/dist/showcase/assets/popover-BSB11Qjp.js +1 -0
- package/dist/showcase/assets/popover-CECpX3MQ.js +1 -0
- package/dist/showcase/assets/popover-menu-CuA8fb7i.js +1 -0
- package/dist/showcase/assets/products-BJHNTW62.js +407 -0
- package/dist/showcase/assets/progress-DGvRQyPS.js +1 -0
- package/dist/showcase/assets/progress-tpxRVOkp.js +18 -0
- package/dist/showcase/assets/props-table-BR-KjRNe.js +1 -0
- package/dist/showcase/assets/props.generated-qdUud3iu.json +38611 -0
- package/dist/showcase/assets/quote-CN-Sodsj.js +1 -0
- package/dist/showcase/assets/receipt-T8B9lscp.js +1 -0
- package/dist/showcase/assets/receipt-text-CeBruM29.js +1 -0
- package/dist/showcase/assets/refresh-cw-DnxNcOMm.js +1 -0
- package/dist/showcase/assets/resolveAriaLabelledBy-B2ZzrlGb.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-CGuVi0Dj.js +1 -0
- package/dist/showcase/assets/rich-text-editor-Bha0lSKT.js +143 -0
- package/dist/showcase/assets/rich-text-editor-NeOPmoZF.js +124 -0
- package/dist/showcase/assets/rotate-ccw-7aUlKQpX.js +1 -0
- package/dist/showcase/assets/save-AT8JlA8E.js +1 -0
- package/dist/showcase/assets/schema-form-BpkVygoO.js +325 -0
- package/dist/showcase/assets/scroll-area-B0wmaMAD.js +32 -0
- package/dist/showcase/assets/scroll-area-CgXTHlpJ.js +1 -0
- package/dist/showcase/assets/select-BG_Iad8E.js +1 -0
- package/dist/showcase/assets/select-t6dryszf.js +1 -0
- package/dist/showcase/assets/send-BzGRF4t-.js +1 -0
- package/dist/showcase/assets/separator-BjGdXNcn.js +1 -0
- package/dist/showcase/assets/separator-DbiGagrP.js +28 -0
- package/dist/showcase/assets/serializeValue-B_EucO5O.js +1 -0
- package/dist/showcase/assets/settings-BSRT_96A.js +1 -0
- package/dist/showcase/assets/sheet-CEuKOBxr.js +1 -0
- package/dist/showcase/assets/shield-CcR2q5u_.js +1 -0
- package/dist/showcase/assets/shield-alert-DhbgXV1X.js +1 -0
- package/dist/showcase/assets/shield-check-CRbBJXw2.js +1 -0
- package/dist/showcase/assets/shopping-bag-B5BzpLV5.js +1 -0
- package/dist/showcase/assets/sidebar--2nHUTn3.js +1 -0
- package/dist/showcase/assets/sidebar.context-BCb20eIt.js +1 -0
- package/dist/showcase/assets/skeleton-BeVdks4r.js +1 -0
- package/dist/showcase/assets/skeleton-DijlT51X.js +29 -0
- package/dist/showcase/assets/slider-Cp4m3NTK.js +1 -0
- package/dist/showcase/assets/sliders-horizontal-C8RwUn0S.js +1 -0
- package/dist/showcase/assets/smart-card-B4P_C0nk.js +1 -0
- package/dist/showcase/assets/sonner-CLYYRmEW.js +22 -0
- package/dist/showcase/assets/sortable.esm-CoekVJlU.js +5 -0
- package/dist/showcase/assets/sparkles-DFJmoAFP.js +1 -0
- package/dist/showcase/assets/spinner-CeQHboSs.js +49 -0
- package/dist/showcase/assets/spinner-DMKANM9S.js +30 -0
- package/dist/showcase/assets/spinner-WEI7TMVk.js +1 -0
- package/dist/showcase/assets/square-pen-CfvmmXYo.js +1 -0
- package/dist/showcase/assets/stacked-avatars-CcCnnUrA.js +1 -0
- package/dist/showcase/assets/star-DK5onZCp.js +1 -0
- package/dist/showcase/assets/startOfDay-BuizEr24.js +1 -0
- package/dist/showcase/assets/styles-BStlbPXe.js +1 -0
- package/dist/showcase/assets/suggestions-Cd_XUmz3.js +126 -0
- package/dist/showcase/assets/switch-5f1vwEZ7.js +1 -0
- package/dist/showcase/assets/switch-arjWj-n7.js +1 -0
- package/dist/showcase/assets/sync-DorQdMfx.js +107 -0
- package/dist/showcase/assets/table-ClYkDRAk.js +1 -0
- package/dist/showcase/assets/table-D9q0odD8.js +382 -0
- package/dist/showcase/assets/table-actions-UJbkGb44.js +1 -0
- package/dist/showcase/assets/tabs-BENBPFif.js +19 -0
- package/dist/showcase/assets/tabs-ePpje8sU.js +1 -0
- package/dist/showcase/assets/tags-input-DRlg3zQH.js +1 -0
- package/dist/showcase/assets/text-button-CQvP6Kic.js +1 -0
- package/dist/showcase/assets/text-link-DT-nOORV.js +1 -0
- package/dist/showcase/assets/textarea-BGHGV17m.js +1 -0
- package/dist/showcase/assets/textarea-pstF1OBP.js +1 -0
- package/dist/showcase/assets/timelines-D8y-IyxW.js +200 -0
- package/dist/showcase/assets/toggle-group-BVyFo04r.js +1 -0
- package/dist/showcase/assets/toggles-dhLpAHSR.js +71 -0
- package/dist/showcase/assets/toggles-group-BJ5Jio2p.js +32 -0
- package/dist/showcase/assets/trash-2-OsaEm8cc.js +1 -0
- package/dist/showcase/assets/trending-up-HlQQXTth.js +1 -0
- package/dist/showcase/assets/truck-CvvBxBeB.js +1 -0
- package/dist/showcase/assets/typography-D_99bjSh.js +223 -0
- package/dist/showcase/assets/ui-badge-C1bu7wRu.js +28 -0
- package/dist/showcase/assets/ui-card-Ct1FFUxv.js +30 -0
- package/dist/showcase/assets/ui-table-Dxu9Jjq0.js +42 -0
- package/dist/showcase/assets/upload-tray-BeOBVU1z.js +138 -0
- package/dist/showcase/assets/use-form-field-state-Sbo6tfr9.js +1 -0
- package/dist/showcase/assets/use-layout-link-BK_oEoBg.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DLXArfPo.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-etINba8U.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-BNe9r1t_.js +1 -0
- package/dist/showcase/assets/useCompositeItem-CvG1CBEV.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-CcY0U1bY.js +1 -0
- package/dist/showcase/assets/useLabelableId-Czdg4nY8.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-eyZ6twES.js +1 -0
- package/dist/showcase/assets/useRender-BAZlIYnj.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-C2I8g7TT.js +1 -0
- package/dist/showcase/assets/useValueChanged-Bz3WRSDy.js +1 -0
- package/dist/showcase/assets/user-Bqmz8M16.js +1 -0
- package/dist/showcase/assets/user-plus-MMxrhI4h.js +1 -0
- package/dist/showcase/assets/users-ERTaffcv.js +1 -0
- package/dist/showcase/assets/vendor-profile-BAwCE0wP.js +37 -0
- package/dist/showcase/assets/video-DJm0ubTE.js +1 -0
- package/dist/showcase/assets/wrench-gaXnvr_b.js +1 -0
- package/dist/showcase/assets/x-BqJnRkKw.js +1 -0
- package/dist/showcase/assets/zap-DHBVTfYZ.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +59 -2
- package/scripts/install-skill.mjs +5 -1
- package/src/App.css +9 -388
- package/dist/_shared/accordion-BnxO7Is4.js +0 -130
- package/dist/_shared/accordion-BnxO7Is4.js.map +0 -1
- package/dist/_shared/accordion-RIN0MjPz.cjs +0 -2
- package/dist/_shared/accordion-RIN0MjPz.cjs.map +0 -1
- package/dist/_shared/action-menu-IIO9KtJ2.js +0 -96
- package/dist/_shared/action-menu-IIO9KtJ2.js.map +0 -1
- package/dist/_shared/action-menu-RAyg3cvM.cjs +0 -2
- package/dist/_shared/action-menu-RAyg3cvM.cjs.map +0 -1
- package/dist/_shared/ai-artifact--MqIfP-8.js +0 -1068
- package/dist/_shared/ai-artifact--MqIfP-8.js.map +0 -1
- package/dist/_shared/ai-artifact-D1dBeEz1.cjs +0 -3
- package/dist/_shared/ai-artifact-D1dBeEz1.cjs.map +0 -1
- package/dist/_shared/alert-D3gRd7RK.cjs +0 -2
- package/dist/_shared/alert-D3gRd7RK.cjs.map +0 -1
- package/dist/_shared/alert-DQ-tV8b-.js +0 -48
- package/dist/_shared/alert-DQ-tV8b-.js.map +0 -1
- package/dist/_shared/app-shell-C4d7kCCd.cjs +0 -2
- package/dist/_shared/app-shell-C4d7kCCd.cjs.map +0 -1
- package/dist/_shared/app-shell-CKxcpPTc.js +0 -94
- package/dist/_shared/app-shell-CKxcpPTc.js.map +0 -1
- package/dist/_shared/badge-BK5VvEgg.js +0 -108
- package/dist/_shared/badge-BK5VvEgg.js.map +0 -1
- package/dist/_shared/badge-kS_XtN-z.cjs +0 -2
- package/dist/_shared/badge-kS_XtN-z.cjs.map +0 -1
- package/dist/_shared/button-LZWDn-aU.cjs +0 -2
- package/dist/_shared/button-LZWDn-aU.cjs.map +0 -1
- package/dist/_shared/button-cnkCF8q8.js +0 -177
- package/dist/_shared/button-cnkCF8q8.js.map +0 -1
- package/dist/_shared/buttons-DHV2eZAf.cjs +0 -2
- package/dist/_shared/buttons-DHV2eZAf.cjs.map +0 -1
- package/dist/_shared/buttons-ehfMSkwP.js +0 -143
- package/dist/_shared/buttons-ehfMSkwP.js.map +0 -1
- package/dist/_shared/card-radio-group-Bf03M6c5.js +0 -158
- package/dist/_shared/card-radio-group-Bf03M6c5.js.map +0 -1
- package/dist/_shared/card-radio-group-SqPUL0Je.cjs +0 -2
- package/dist/_shared/card-radio-group-SqPUL0Je.cjs.map +0 -1
- package/dist/_shared/combobox-Cvs70ic4.js +0 -808
- package/dist/_shared/combobox-Cvs70ic4.js.map +0 -1
- package/dist/_shared/combobox-Dos9YWjk.cjs +0 -2
- package/dist/_shared/combobox-Dos9YWjk.cjs.map +0 -1
- package/dist/_shared/comments-DD2aeZVz.js +0 -946
- package/dist/_shared/comments-DD2aeZVz.js.map +0 -1
- package/dist/_shared/comments-DzwU4sNE.cjs +0 -2
- package/dist/_shared/comments-DzwU4sNE.cjs.map +0 -1
- package/dist/_shared/copyable-D7WhgEzJ.js +0 -38
- package/dist/_shared/copyable-D7WhgEzJ.js.map +0 -1
- package/dist/_shared/copyable-DDjT505-.cjs +0 -2
- package/dist/_shared/copyable-DDjT505-.cjs.map +0 -1
- package/dist/_shared/date-picker-3G3C-sIq.cjs +0 -2
- package/dist/_shared/date-picker-3G3C-sIq.cjs.map +0 -1
- package/dist/_shared/date-picker-7yuMHPYs.js +0 -1362
- package/dist/_shared/date-picker-7yuMHPYs.js.map +0 -1
- package/dist/_shared/date-pickers-B_VUgjvY.cjs +0 -2
- package/dist/_shared/date-pickers-B_VUgjvY.cjs.map +0 -1
- package/dist/_shared/date-pickers-DZXi0di0.js +0 -330
- package/dist/_shared/date-pickers-DZXi0di0.js.map +0 -1
- package/dist/_shared/display-Cuj4td-V.js +0 -1237
- package/dist/_shared/display-Cuj4td-V.js.map +0 -1
- package/dist/_shared/display-D2q93jiS.cjs +0 -8
- package/dist/_shared/display-D2q93jiS.cjs.map +0 -1
- package/dist/_shared/form-field-BNuCBym1.js +0 -319
- package/dist/_shared/form-field-BNuCBym1.js.map +0 -1
- package/dist/_shared/form-field-C4fQYsqv.cjs +0 -2
- package/dist/_shared/form-field-C4fQYsqv.cjs.map +0 -1
- package/dist/_shared/forms-BV4fHeRx.cjs +0 -2
- package/dist/_shared/forms-BV4fHeRx.cjs.map +0 -1
- package/dist/_shared/forms-DjAdYxme.js +0 -3378
- package/dist/_shared/forms-DjAdYxme.js.map +0 -1
- package/dist/_shared/header-D4Oz-mCv.cjs +0 -2
- package/dist/_shared/header-D4Oz-mCv.cjs.map +0 -1
- package/dist/_shared/header-X5DZ8vmO.js +0 -360
- package/dist/_shared/header-X5DZ8vmO.js.map +0 -1
- package/dist/_shared/heading-C7mNh03X.cjs +0 -2
- package/dist/_shared/heading-C7mNh03X.cjs.map +0 -1
- package/dist/_shared/heading-CrNpYcUr.js +0 -39
- package/dist/_shared/heading-CrNpYcUr.js.map +0 -1
- package/dist/_shared/hooks-CKXPg30g.js +0 -118
- package/dist/_shared/hooks-CKXPg30g.js.map +0 -1
- package/dist/_shared/hooks-CTiEImZp.cjs +0 -2
- package/dist/_shared/hooks-CTiEImZp.cjs.map +0 -1
- package/dist/_shared/input-Cw2uICc1.cjs +0 -2
- package/dist/_shared/input-Cw2uICc1.cjs.map +0 -1
- package/dist/_shared/input-DJo8d1Rr.js +0 -182
- package/dist/_shared/input-DJo8d1Rr.js.map +0 -1
- package/dist/_shared/item-BxlP5TO3.js +0 -224
- package/dist/_shared/item-BxlP5TO3.js.map +0 -1
- package/dist/_shared/item-X18HIqR7.cjs +0 -2
- package/dist/_shared/item-X18HIqR7.cjs.map +0 -1
- package/dist/_shared/mentions-DE9aDOMu.cjs +0 -2
- package/dist/_shared/mentions-DE9aDOMu.cjs.map +0 -1
- package/dist/_shared/mentions-DjjYmMLc.js +0 -493
- package/dist/_shared/mentions-DjjYmMLc.js.map +0 -1
- package/dist/_shared/metadata-C5MSNo7y.js +0 -236
- package/dist/_shared/metadata-C5MSNo7y.js.map +0 -1
- package/dist/_shared/metadata-Cw3Kj2Ug.cjs +0 -2
- package/dist/_shared/metadata-Cw3Kj2Ug.cjs.map +0 -1
- package/dist/_shared/money-display-B7AKxxNt.js +0 -198
- package/dist/_shared/money-display-B7AKxxNt.js.map +0 -1
- package/dist/_shared/money-display-E22wbM21.cjs +0 -2
- package/dist/_shared/money-display-E22wbM21.cjs.map +0 -1
- package/dist/_shared/navigation-B9VAXqLL.cjs +0 -2
- package/dist/_shared/navigation-B9VAXqLL.cjs.map +0 -1
- package/dist/_shared/navigation-CxoJVgfo.js +0 -420
- package/dist/_shared/navigation-CxoJVgfo.js.map +0 -1
- package/dist/_shared/overlays-C-T8RnJz.cjs +0 -2
- package/dist/_shared/overlays-C-T8RnJz.cjs.map +0 -1
- package/dist/_shared/overlays-DfRsQzD3.js +0 -633
- package/dist/_shared/overlays-DfRsQzD3.js.map +0 -1
- package/dist/_shared/page-C4jEULwi.js +0 -263
- package/dist/_shared/page-C4jEULwi.js.map +0 -1
- package/dist/_shared/page-DX3pA_tJ.cjs +0 -2
- package/dist/_shared/page-DX3pA_tJ.cjs.map +0 -1
- package/dist/_shared/popover-menu-CVAr985u.js +0 -95
- package/dist/_shared/popover-menu-CVAr985u.js.map +0 -1
- package/dist/_shared/popover-menu-Cq-LnAMh.cjs +0 -2
- package/dist/_shared/popover-menu-Cq-LnAMh.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-C3gVBm-v.cjs +0 -2
- package/dist/_shared/rich-text-editor-C3gVBm-v.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-Cylb-lkv.js +0 -616
- package/dist/_shared/rich-text-editor-Cylb-lkv.js.map +0 -1
- package/dist/_shared/sidebar-BeWLjIRR.js +0 -537
- package/dist/_shared/sidebar-BeWLjIRR.js.map +0 -1
- package/dist/_shared/sidebar-DzzdJ2xk.cjs +0 -2
- package/dist/_shared/sidebar-DzzdJ2xk.cjs.map +0 -1
- package/dist/_shared/smart-card-DL7esK_y.cjs +0 -2
- package/dist/_shared/smart-card-DL7esK_y.cjs.map +0 -1
- package/dist/_shared/smart-card-eBfUvQ9r.js +0 -360
- package/dist/_shared/smart-card-eBfUvQ9r.js.map +0 -1
- package/dist/_shared/spinner-Bvjs1ybK.cjs +0 -2
- package/dist/_shared/spinner-Bvjs1ybK.cjs.map +0 -1
- package/dist/_shared/spinner-XcfVYbbp.js +0 -67
- package/dist/_shared/spinner-XcfVYbbp.js.map +0 -1
- package/dist/_shared/text-DzKt9cyb.cjs +0 -2
- package/dist/_shared/text-DzKt9cyb.cjs.map +0 -1
- package/dist/_shared/text-qsEg5GdP.js +0 -74
- package/dist/_shared/text-qsEg5GdP.js.map +0 -1
- package/dist/_shared/textarea-BAKapsLQ.cjs +0 -2
- package/dist/_shared/textarea-BAKapsLQ.cjs.map +0 -1
- package/dist/_shared/textarea-Bfv1KxBm.js +0 -119
- package/dist/_shared/textarea-Bfv1KxBm.js.map +0 -1
- package/dist/_shared/typography-4CSyoCj9.js +0 -102
- package/dist/_shared/typography-4CSyoCj9.js.map +0 -1
- package/dist/_shared/typography-DKn7P4wX.cjs +0 -2
- package/dist/_shared/typography-DKn7P4wX.cjs.map +0 -1
- package/dist/_shared/ui-provider-CQJ1glwN.js +0 -85
- package/dist/_shared/ui-provider-CQJ1glwN.js.map +0 -1
- package/dist/_shared/ui-provider-RIYE7O_V.cjs +0 -2
- package/dist/_shared/ui-provider-RIYE7O_V.cjs.map +0 -1
- package/dist/components/base/table/index.cjs.map +0 -1
- package/dist/components/base/table/index.js.map +0 -1
- package/dist/showcase/assets/AreaChart-CzBEYPbz.js +0 -6
- package/dist/showcase/assets/CompositeItem-C-DIOBdJ.js +0 -1
- package/dist/showcase/assets/CompositeRoot-Ce4ORgG2.js +0 -1
- package/dist/showcase/assets/DialogTrigger-DWvMs7dp.js +0 -1
- package/dist/showcase/assets/FormContext-BeC1MJpT.js +0 -1
- package/dist/showcase/assets/PreviewLayout-N1PTTyZK.js +0 -1
- package/dist/showcase/assets/RadioGroup-DAWaa26D.js +0 -1
- package/dist/showcase/assets/Separator-guDkmky0.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BJ7hWga8.js +0 -1
- package/dist/showcase/assets/accordion-CiM9WhkT.js +0 -172
- package/dist/showcase/assets/accordion-variants-C_sHrQ7C.js +0 -1
- package/dist/showcase/assets/action-menu-mlWlGE5P.js +0 -1
- package/dist/showcase/assets/activities-YWR4wh4f.js +0 -501
- package/dist/showcase/assets/activities-feed-card-Cglnf5as.js +0 -1
- package/dist/showcase/assets/admin-BtOtzPd4.js +0 -80
- package/dist/showcase/assets/ai-8iNe0R1M.js +0 -41
- package/dist/showcase/assets/ai-artifact-CQL5krnJ.js +0 -2
- package/dist/showcase/assets/ai-chat-BzCdOOc6.js +0 -568
- package/dist/showcase/assets/ai-elements-CBHy2xWU.js +0 -379
- package/dist/showcase/assets/ai-new-CgL5NeVs.js +0 -167
- package/dist/showcase/assets/ai-tool-call-D9AsaWJF.js +0 -1
- package/dist/showcase/assets/alert-B2BuF4vZ.js +0 -59
- package/dist/showcase/assets/alert-BkVaTONJ.js +0 -1
- package/dist/showcase/assets/api-key-list-C-_59dli.js +0 -73
- package/dist/showcase/assets/app-sidebar-BdOu5rVn.js +0 -1
- package/dist/showcase/assets/arrow-down-BpVaq9-H.js +0 -1
- package/dist/showcase/assets/arrow-left-C40rxfqj.js +0 -1
- package/dist/showcase/assets/arrow-right-BclouSfP.js +0 -1
- package/dist/showcase/assets/arrow-up-BpWEnkdX.js +0 -1
- package/dist/showcase/assets/arrow-up-right-Z5sMa1HH.js +0 -1
- package/dist/showcase/assets/avatar-CDNhh3rv.js +0 -57
- package/dist/showcase/assets/avatar-QBwg3fvR.js +0 -1
- package/dist/showcase/assets/badge-check-DXDQ3SaL.js +0 -1
- package/dist/showcase/assets/badge-tAdYt--9.js +0 -28
- package/dist/showcase/assets/bell-CVEeEWw4.js +0 -1
- package/dist/showcase/assets/bot-Bcx5mNAQ.js +0 -1
- package/dist/showcase/assets/box-Dgy2Xc70.js +0 -1
- package/dist/showcase/assets/brain-DsoOsd7m.js +0 -1
- package/dist/showcase/assets/brand-DAyuXNUz.js +0 -40
- package/dist/showcase/assets/breadcrumb-CC4Z8eMY.js +0 -1
- package/dist/showcase/assets/breadcrumb-DCbAzeMs.js +0 -52
- package/dist/showcase/assets/breadcrumbs-DGZMpIoQ.js +0 -1
- package/dist/showcase/assets/briefcase-2uLXCvAZ.js +0 -1
- package/dist/showcase/assets/button-DhQ6rMPU.js +0 -44
- package/dist/showcase/assets/button-group-Ce9vnZ1H.js +0 -1
- package/dist/showcase/assets/buttons-CHja0LUL.js +0 -270
- package/dist/showcase/assets/calendar-BbiK8AMZ.js +0 -16
- package/dist/showcase/assets/calendar-BhZpIjCo.js +0 -1
- package/dist/showcase/assets/calendar-oKaDsUIy.js +0 -1
- package/dist/showcase/assets/card-DoU1VD79.js +0 -1
- package/dist/showcase/assets/cards-3OgH8m3F.js +0 -328
- package/dist/showcase/assets/chart-column-6Tn3WAT9.js +0 -1
- package/dist/showcase/assets/chevron-down-x7TQsvYY.js +0 -1
- package/dist/showcase/assets/chevron-left-CglzJgA2.js +0 -1
- package/dist/showcase/assets/chevron-right-CDDMIkYP.js +0 -1
- package/dist/showcase/assets/chevron-up-Dc3aAaGH.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-DJNnSBAj.js +0 -1
- package/dist/showcase/assets/circle-BBmNFtO8.js +0 -1
- package/dist/showcase/assets/circle-alert-DJevf3tT.js +0 -1
- package/dist/showcase/assets/circle-check-BCxORlAM.js +0 -1
- package/dist/showcase/assets/circle-check-big-tiuK2w0-.js +0 -1
- package/dist/showcase/assets/circle-dot-BEVVQjgN.js +0 -1
- package/dist/showcase/assets/circle-question-mark-BQrUUiKD.js +0 -1
- package/dist/showcase/assets/circle-x-CoV_AUtZ.js +0 -1
- package/dist/showcase/assets/clock-Bn2R4aDX.js +0 -1
- package/dist/showcase/assets/code-xml-BVYp_JDX.js +0 -1
- package/dist/showcase/assets/collapsible-Co2Y739_.js +0 -27
- package/dist/showcase/assets/collapsible-DPbftgrO.js +0 -1
- package/dist/showcase/assets/combobox-Cm4__LnJ.js +0 -622
- package/dist/showcase/assets/command-DQFIxPN9.js +0 -45
- package/dist/showcase/assets/command-KNncGgZW.js +0 -1
- package/dist/showcase/assets/comment-composer-DTJtqYGP.js +0 -1
- package/dist/showcase/assets/comment-item-DIEYMmV_.js +0 -1
- package/dist/showcase/assets/comments-B0BbDp-3.js +0 -357
- package/dist/showcase/assets/commerce-BOWBCLA-.js +0 -79
- package/dist/showcase/assets/commerce-extras-C6CWYfpC.js +0 -173
- package/dist/showcase/assets/composite-YicTVAO0.js +0 -1
- package/dist/showcase/assets/contact-card-DQPRIlnJ.js +0 -65
- package/dist/showcase/assets/content-container-CHXwWViz.js +0 -1
- package/dist/showcase/assets/copyable-CjTwco9O.js +0 -96
- package/dist/showcase/assets/course-card-CTQScd2C.js +0 -113
- package/dist/showcase/assets/cpu-D52NjUWq.js +0 -1
- package/dist/showcase/assets/credit-card-BoDfW0R8.js +0 -1
- package/dist/showcase/assets/currency-BPREbpDA.js +0 -149
- package/dist/showcase/assets/dark-surfaces-BCG45K2m.js +0 -90
- package/dist/showcase/assets/database-DeGR0hed.js +0 -1
- package/dist/showcase/assets/date-block-Bl1kXJrM.js +0 -1
- package/dist/showcase/assets/date-picker-BHbZa4ML.js +0 -1
- package/dist/showcase/assets/date-pickers-DumwUEXE.js +0 -110
- package/dist/showcase/assets/dense-info-DxfgBw9Z.js +0 -106
- package/dist/showcase/assets/dialog-BYHZvlL8.js +0 -1
- package/dist/showcase/assets/display-BXMGOjL3.js +0 -392
- package/dist/showcase/assets/dollar-sign-BipUTVXC.js +0 -1
- package/dist/showcase/assets/download-CxspQgIc.js +0 -1
- package/dist/showcase/assets/dropdown-menu-Q1BV3wPP.js +0 -1
- package/dist/showcase/assets/dropzone-OivkuTPF.js +0 -1
- package/dist/showcase/assets/ellipsis-Bn-XgoA7.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-Bcl9HX9k.js +0 -1
- package/dist/showcase/assets/empty-CcafLcw-.js +0 -1
- package/dist/showcase/assets/empty-item-CiJeS8ZV.js +0 -49
- package/dist/showcase/assets/empty-state-B1RYYjUP.js +0 -188
- package/dist/showcase/assets/enhanced-activities-IB811DS6.js +0 -361
- package/dist/showcase/assets/event-calendar-C2VCfcUz.js +0 -138
- package/dist/showcase/assets/event-log-ckmsCPmG.js +0 -330
- package/dist/showcase/assets/example-C6-_Sy6B.js +0 -1
- package/dist/showcase/assets/external-link-Bg-_8Uq7.js +0 -1
- package/dist/showcase/assets/eye-JVsUA85G.js +0 -1
- package/dist/showcase/assets/feature-announcement-C4aRXesF.js +0 -34
- package/dist/showcase/assets/file-4pOq58jl.js +0 -1
- package/dist/showcase/assets/file-text-BIi71mZ1.js +0 -1
- package/dist/showcase/assets/filters-CxrcnmLU.js +0 -78
- package/dist/showcase/assets/flag-DeiJmomk.js +0 -1
- package/dist/showcase/assets/folder-open-zMXBpVNs.js +0 -1
- package/dist/showcase/assets/form-sizing-B8jbL5tL.js +0 -1
- package/dist/showcase/assets/format-BG4laCmp.js +0 -1
- package/dist/showcase/assets/format-metric-value-B94EDo8X.js +0 -1
- package/dist/showcase/assets/forms-PsN5zTLx.js +0 -793
- package/dist/showcase/assets/getPseudoElementBounds-B7wr19E1.js +0 -1
- package/dist/showcase/assets/gift-CKFIh1Wh.js +0 -1
- package/dist/showcase/assets/giftcard-cards-BfOlIHmA.js +0 -85
- package/dist/showcase/assets/git-branch-BO9i8XkJ.js +0 -1
- package/dist/showcase/assets/global-search-CNmUraNa.js +0 -90
- package/dist/showcase/assets/global-search-DkJkQ0Vs.js +0 -1
- package/dist/showcase/assets/globe-47T22W56.js +0 -1
- package/dist/showcase/assets/gradient-card-CXSY29TZ.js +0 -58
- package/dist/showcase/assets/header-eZHN-s6P.js +0 -1
- package/dist/showcase/assets/header-notifications-Caa9i87J.js +0 -1
- package/dist/showcase/assets/heart-DjKkkUsX.js +0 -1
- package/dist/showcase/assets/house-DKxCiHyB.js +0 -1
- package/dist/showcase/assets/icon-badge-Bcm8TlJi.js +0 -1
- package/dist/showcase/assets/image-r-gMI33G.js +0 -1
- package/dist/showcase/assets/inbox-ZxSy1pgX.js +0 -1
- package/dist/showcase/assets/index-B8DVXCmf.js +0 -10
- package/dist/showcase/assets/index-DbLs6mcj.css +0 -2
- package/dist/showcase/assets/inertValue-i0cAMG-0.js +0 -1
- package/dist/showcase/assets/info-B1KV2DkO.js +0 -1
- package/dist/showcase/assets/inline-stat-D0sE-A4C.js +0 -1
- package/dist/showcase/assets/input-25epjsiD.js +0 -1
- package/dist/showcase/assets/input-CnwMt9Sr.js +0 -1
- package/dist/showcase/assets/input-group-DSKyV7we.js +0 -47
- package/dist/showcase/assets/input-group-x5eWeAZg.js +0 -1
- package/dist/showcase/assets/inputs-B2Maxr14.js +0 -49
- package/dist/showcase/assets/invoice-header-Gxl--yFu.js +0 -36
- package/dist/showcase/assets/invoice-items-BtoaGNjE.js +0 -36
- package/dist/showcase/assets/invoice-mini-DHFSZegy.js +0 -14
- package/dist/showcase/assets/invoice-table-6dmU_KrL.js +0 -30
- package/dist/showcase/assets/isSameDay-BrDHfKHm.js +0 -1
- package/dist/showcase/assets/isToday-VtoSc1IH.js +0 -1
- package/dist/showcase/assets/italic-CXkAsf6H.js +0 -1
- package/dist/showcase/assets/item-CGOThKAx.js +0 -1
- package/dist/showcase/assets/item-CMRbW6s-.js +0 -1
- package/dist/showcase/assets/item-sw6fAZcn.js +0 -117
- package/dist/showcase/assets/kanban-CKGYTXji.js +0 -175
- package/dist/showcase/assets/label-BmKD22pm.js +0 -1
- package/dist/showcase/assets/layout-app-shell-CeMHzVNn.js +0 -501
- package/dist/showcase/assets/layout-containers-8Drow5f9.js +0 -96
- package/dist/showcase/assets/layout-header-BlBw4JAV.js +0 -170
- package/dist/showcase/assets/layout-page-BQfgHFau.js +0 -122
- package/dist/showcase/assets/layout-sidebar-DZer5Uuh.js +0 -224
- package/dist/showcase/assets/layout-users-nuioUkeu.js +0 -104
- package/dist/showcase/assets/lock-DQcZ9cEj.js +0 -1
- package/dist/showcase/assets/mail-yNXDtmNr.js +0 -1
- package/dist/showcase/assets/map-JMM1F9VR.js +0 -124
- package/dist/showcase/assets/map-pin-2WS7oVo3.js +0 -1
- package/dist/showcase/assets/menus-mK-FeNki.js +0 -89
- package/dist/showcase/assets/message-square-DGTAjNJG.js +0 -1
- package/dist/showcase/assets/metadata-list-CBxuQjVO.js +0 -278
- package/dist/showcase/assets/metric-BWGrmyD6.js +0 -1
- package/dist/showcase/assets/metric-grid-CewIJQvo.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-kLBN8u5z.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-COnc7VN9.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-BR83UVqi.js +0 -77
- package/dist/showcase/assets/metrics-comparison-C0SUjdMg.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-Orq1hLk-.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-C924q2Xx.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-Cwi05ruK.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-D97nkrge.js +0 -42
- package/dist/showcase/assets/metrics-overview-BOc8y3QX.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-Cilh-A5D.js +0 -54
- package/dist/showcase/assets/minus-DvrDGcTv.js +0 -1
- package/dist/showcase/assets/money-display-0egZ_O76.js +0 -1
- package/dist/showcase/assets/month-year-picker-2cWfwnmP.js +0 -1
- package/dist/showcase/assets/navigation-BnYme-Wj.js +0 -90
- package/dist/showcase/assets/navigation-CLQWl32A.js +0 -230
- package/dist/showcase/assets/navigation-extras-BPDoAdXF.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-26XVWgDF.js +0 -119
- package/dist/showcase/assets/overlays-2sVGhanu.js +0 -88
- package/dist/showcase/assets/overlays-BaR6HDwB.js +0 -394
- package/dist/showcase/assets/package-CUNvdlBi.js +0 -1
- package/dist/showcase/assets/page-action-button-DgvZVtzx.js +0 -1
- package/dist/showcase/assets/page-header-4F_iaFPW.js +0 -1
- package/dist/showcase/assets/pagination-CDjZ6jiZ.js +0 -42
- package/dist/showcase/assets/pagination-g1NQaN42.js +0 -1
- package/dist/showcase/assets/paperclip-CDxdf8Os.js +0 -1
- package/dist/showcase/assets/pencil-Ddc5JwBe.js +0 -1
- package/dist/showcase/assets/phone-NIZ5SwgK.js +0 -1
- package/dist/showcase/assets/plus-C9kwz7rW.js +0 -1
- package/dist/showcase/assets/popover-DtnuOBgr.js +0 -1
- package/dist/showcase/assets/popover-T85aV4zW.js +0 -1
- package/dist/showcase/assets/popover-menu-BRGSZe4f.js +0 -1
- package/dist/showcase/assets/progress-CcZjuzK3.js +0 -1
- package/dist/showcase/assets/progress-DbouniUl.js +0 -18
- package/dist/showcase/assets/props-table-CM_1cocj.js +0 -1
- package/dist/showcase/assets/props.generated-Bg627Jai.json +0 -32829
- package/dist/showcase/assets/quote-vjygm2-7.js +0 -1
- package/dist/showcase/assets/receipt-CfMgwFPl.js +0 -1
- package/dist/showcase/assets/refresh-cw-Tu5E_cGA.js +0 -1
- package/dist/showcase/assets/resolveAriaLabelledBy-B6CR9UP2.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-CipUZh6i.js +0 -1
- package/dist/showcase/assets/rich-text-editor-BMZUyuQX.js +0 -143
- package/dist/showcase/assets/rich-text-editor-HwYIeWYW.js +0 -124
- package/dist/showcase/assets/rotate-ccw-B4Wi4ws7.js +0 -1
- package/dist/showcase/assets/scroll-area-CuB_woqF.js +0 -1
- package/dist/showcase/assets/scroll-area-I4mSIpRq.js +0 -32
- package/dist/showcase/assets/select-CF3cKjCo.js +0 -1
- package/dist/showcase/assets/send-Blu_n6xl.js +0 -1
- package/dist/showcase/assets/separator-9mrRf_DZ.js +0 -28
- package/dist/showcase/assets/separator-DUKleOvU.js +0 -1
- package/dist/showcase/assets/settings-DlKX-bZT.js +0 -1
- package/dist/showcase/assets/sheet-CwcLVoF3.js +0 -1
- package/dist/showcase/assets/shield-BD0Y8Jj3.js +0 -1
- package/dist/showcase/assets/shield-alert-DNOTmkwG.js +0 -1
- package/dist/showcase/assets/shield-check-Sbul0dUK.js +0 -1
- package/dist/showcase/assets/shopping-bag-EDVpxI9n.js +0 -1
- package/dist/showcase/assets/sidebar-JWZ88xw5.js +0 -1
- package/dist/showcase/assets/sidebar.context-D3P7qppn.js +0 -1
- package/dist/showcase/assets/skeleton-CIS1Kaas.js +0 -1
- package/dist/showcase/assets/skeleton-CJCJDQFt.js +0 -29
- package/dist/showcase/assets/smart-card-7szg_qSt.js +0 -1
- package/dist/showcase/assets/sonner-DMHXr9Ce.js +0 -22
- package/dist/showcase/assets/sortable.esm-DVuzVA1U.js +0 -5
- package/dist/showcase/assets/sparkles-BEa1AgNq.js +0 -1
- package/dist/showcase/assets/spinner-Bi-T9etI.js +0 -30
- package/dist/showcase/assets/spinner-C77XIUVf.js +0 -1
- package/dist/showcase/assets/spinner-DK9BAT6K.js +0 -49
- package/dist/showcase/assets/square-pen-N0mq-vPu.js +0 -1
- package/dist/showcase/assets/stacked-avatars-DORVEni2.js +0 -1
- package/dist/showcase/assets/star-Dbtxr60S.js +0 -1
- package/dist/showcase/assets/startOfDay-BJgxz4yq.js +0 -1
- package/dist/showcase/assets/styles-CwW4IBUg.js +0 -1
- package/dist/showcase/assets/switch-B4iRxZFU.js +0 -1
- package/dist/showcase/assets/switch-B_rnbXwy.js +0 -1
- package/dist/showcase/assets/table-BJ9HSK6H.js +0 -1
- package/dist/showcase/assets/table-IB0MEYf4.js +0 -389
- package/dist/showcase/assets/tabs-D02JL-Fa.js +0 -1
- package/dist/showcase/assets/tabs-XpsVS3ff.js +0 -19
- package/dist/showcase/assets/text-button-BWCgXGnr.js +0 -1
- package/dist/showcase/assets/text-link-TzuDnSCF.js +0 -1
- package/dist/showcase/assets/textarea-B7DUIiH_.js +0 -1
- package/dist/showcase/assets/textarea-CV5gNzXf.js +0 -1
- package/dist/showcase/assets/timelines-CF0UYhwm.js +0 -200
- package/dist/showcase/assets/toggle-group-CK8mBx6E.js +0 -1
- package/dist/showcase/assets/toggles-CqJSApnF.js +0 -71
- package/dist/showcase/assets/toggles-group-v0JijMzG.js +0 -32
- package/dist/showcase/assets/trash-2-_xF5j-Ya.js +0 -1
- package/dist/showcase/assets/trending-up-BCzmjYzm.js +0 -1
- package/dist/showcase/assets/truck-CryH-5dx.js +0 -1
- package/dist/showcase/assets/typography-D3PFbRpb.js +0 -215
- package/dist/showcase/assets/ui-badge-ByyFPLOB.js +0 -28
- package/dist/showcase/assets/ui-card-DYLLiD89.js +0 -30
- package/dist/showcase/assets/ui-table-DW4QIwxK.js +0 -42
- package/dist/showcase/assets/upload-tray-ZdL_dzc0.js +0 -138
- package/dist/showcase/assets/useAnchoredPopupScrollLock-AFPLx3SZ.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-CeHRY8U2.js +0 -1
- package/dist/showcase/assets/useCompositeItem-C-1zP8zD.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-D4ugfKLB.js +0 -1
- package/dist/showcase/assets/useLabelableId-CSxAHpU-.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-BLV8Pa2n.js +0 -1
- package/dist/showcase/assets/useRender-DparzvOu.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-CrYLO2g5.js +0 -1
- package/dist/showcase/assets/useValueChanged-DwgbaueK.js +0 -1
- package/dist/showcase/assets/user-CGcV8Ppb.js +0 -1
- package/dist/showcase/assets/user-plus-iOsntM6P.js +0 -1
- package/dist/showcase/assets/users-DzgXeZbf.js +0 -1
- package/dist/showcase/assets/vendor-profile-DbFPkGn9.js +0 -37
- package/dist/showcase/assets/wrench-1Ra9xb3d.js +0 -1
- package/dist/showcase/assets/x-CE8oevyh.js +0 -1
- package/dist/showcase/assets/zap-se3n2YVD.js +0 -1
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import { useStrings as e } from "../lib/strings.js";
|
|
2
|
+
import { s as t } from "./ui-provider-C8Ot88lS.js";
|
|
3
|
+
import { cn as n } from "../lib/utils.js";
|
|
4
|
+
import { n as r } from "./heading-HeP06nXG.js";
|
|
5
|
+
import { a as i } from "./typography-CdxyWB1T.js";
|
|
6
|
+
import { t as a } from "./input-C7t-RHYq.js";
|
|
7
|
+
import { i as o, n as s } from "./form-sizing-D74IS9KG.js";
|
|
8
|
+
import { a as c, i as l, n as u, o as d, r as f, t as p } from "./select-BwUUXpsb.js";
|
|
9
|
+
import * as m from "react";
|
|
10
|
+
import { forwardRef as h, memo as g, useCallback as _, useEffect as v, useMemo as y, useState as b } from "react";
|
|
11
|
+
import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
12
|
+
import { Minus as C, Plus as w } from "lucide-react";
|
|
13
|
+
import { Controller as T } from "react-hook-form";
|
|
14
|
+
//#region src/components/base/forms/fields/decimal-input.tsx
|
|
15
|
+
var E = {
|
|
16
|
+
decrement: "Decrement",
|
|
17
|
+
increment: "Increment"
|
|
18
|
+
}, D = (e, t, n) => {
|
|
19
|
+
if (!e) return "";
|
|
20
|
+
let r = e;
|
|
21
|
+
if (r = r.replace(/,/g, "."), r = n ? r.replace(/[^\d.-]/g, "") : r.replace(/[^\d.]/g, ""), n && r.includes("-")) {
|
|
22
|
+
let e = r.startsWith("-");
|
|
23
|
+
r = r.replace(/-/g, ""), e && (r = "-" + r);
|
|
24
|
+
}
|
|
25
|
+
let i = r.split(".");
|
|
26
|
+
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;
|
|
27
|
+
}, O = (e, t, n) => {
|
|
28
|
+
if (!e || e === "-") return !0;
|
|
29
|
+
let r = parseFloat(e);
|
|
30
|
+
return Number.isNaN(r) ? !0 : !(t !== void 0 && r < t || n !== void 0 && r > n);
|
|
31
|
+
};
|
|
32
|
+
function k(e, t, n) {
|
|
33
|
+
let r = 10 ** t, i = e * r;
|
|
34
|
+
switch (n) {
|
|
35
|
+
case "floor": return Math.floor(i) / r;
|
|
36
|
+
case "ceil": return Math.ceil(i) / r;
|
|
37
|
+
case "half-even": {
|
|
38
|
+
let e = Math.floor(i), t = i - e;
|
|
39
|
+
return t > .5 ? (e + 1) / r : t < .5 ? e / r : (e % 2 == 0 ? e : e + 1) / r;
|
|
40
|
+
}
|
|
41
|
+
default: return Math.round(i) / r;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function A(e, t, n) {
|
|
45
|
+
let r = e;
|
|
46
|
+
return t !== void 0 && (r = Math.max(t, r)), n !== void 0 && (r = Math.min(n, r)), r;
|
|
47
|
+
}
|
|
48
|
+
function j(e, t, n, r, i = "round") {
|
|
49
|
+
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;
|
|
50
|
+
return Number(s.toFixed(12));
|
|
51
|
+
}
|
|
52
|
+
function M(e, t, n) {
|
|
53
|
+
let r = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value")?.set;
|
|
54
|
+
r ? r.call(e, t) : e.value = t, n && n({
|
|
55
|
+
target: e,
|
|
56
|
+
currentTarget: e,
|
|
57
|
+
type: "change",
|
|
58
|
+
bubbles: !1,
|
|
59
|
+
cancelable: !1
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
var N = {
|
|
63
|
+
sm: "w-8",
|
|
64
|
+
base: "w-9",
|
|
65
|
+
lg: "w-10"
|
|
66
|
+
};
|
|
67
|
+
function P({ decimalPlaces: r = 2, min: i, max: s, allowNegative: c = !0, allowEmpty: l = !0, step: u, roundingMode: d = "round", normalizeOnBlur: f = !0, onChange: p, onBlur: h, placeholder: g, className: v, value: y, defaultValue: b, disabled: T, size: P, strings: F, ...I }, L) {
|
|
68
|
+
let { defaultControlSize: R } = t(), z = o(P, R), B = e(E, F), V = Math.min(12, Math.max(0, r)), H = m.useRef(null), U = _((e) => {
|
|
69
|
+
let t = e.target.value;
|
|
70
|
+
if (!t && l) {
|
|
71
|
+
p?.(e);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
let n = D(t, V, c);
|
|
75
|
+
if (O(n, i, s)) if (n !== t) {
|
|
76
|
+
let t = {
|
|
77
|
+
...e,
|
|
78
|
+
target: {
|
|
79
|
+
...e.target,
|
|
80
|
+
value: n
|
|
81
|
+
},
|
|
82
|
+
currentTarget: {
|
|
83
|
+
...e.currentTarget,
|
|
84
|
+
value: n
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
p?.(t);
|
|
88
|
+
} else p?.(e);
|
|
89
|
+
}, [
|
|
90
|
+
p,
|
|
91
|
+
V,
|
|
92
|
+
c,
|
|
93
|
+
l,
|
|
94
|
+
i,
|
|
95
|
+
s
|
|
96
|
+
]), W = _((e) => {
|
|
97
|
+
if (h?.(e), !f) return;
|
|
98
|
+
let t = e.target.value;
|
|
99
|
+
if (!t && l) return;
|
|
100
|
+
let n = Number.parseFloat(t.replace(",", "."));
|
|
101
|
+
if (!Number.isFinite(n)) return;
|
|
102
|
+
let r = k(A(n, i, s), V, d).toFixed(V);
|
|
103
|
+
r !== t && H.current && M(H.current, r, p);
|
|
104
|
+
}, [
|
|
105
|
+
h,
|
|
106
|
+
p,
|
|
107
|
+
f,
|
|
108
|
+
l,
|
|
109
|
+
i,
|
|
110
|
+
s,
|
|
111
|
+
V,
|
|
112
|
+
d
|
|
113
|
+
]), G = _((e) => {
|
|
114
|
+
if (T || u === void 0) return;
|
|
115
|
+
let t = H.current;
|
|
116
|
+
if (!t) return;
|
|
117
|
+
let n = t.value, r = Number.parseFloat(n.replace(",", "."));
|
|
118
|
+
M(t, k(A(j(Number.isFinite(r) ? r : i ?? 0, e, u, i, d), i, s), V, d).toFixed(V), p);
|
|
119
|
+
}, [
|
|
120
|
+
T,
|
|
121
|
+
u,
|
|
122
|
+
i,
|
|
123
|
+
s,
|
|
124
|
+
d,
|
|
125
|
+
V,
|
|
126
|
+
p
|
|
127
|
+
]), K = typeof u == "number" && u > 0, q = g ?? (V > 0 ? `0.${"0".repeat(V)}` : "0");
|
|
128
|
+
return K ? /* @__PURE__ */ S("div", {
|
|
129
|
+
className: n("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]", I["aria-invalid"] && "border-destructive ring-destructive/20", T && "opacity-50 cursor-not-allowed"),
|
|
130
|
+
children: [
|
|
131
|
+
/* @__PURE__ */ x("button", {
|
|
132
|
+
type: "button",
|
|
133
|
+
tabIndex: -1,
|
|
134
|
+
"aria-label": B.decrement,
|
|
135
|
+
disabled: T,
|
|
136
|
+
onClick: () => G(-1),
|
|
137
|
+
className: n("inline-flex shrink-0 items-center justify-center border-r border-input text-muted-foreground transition-colors", N[z], "hover:bg-muted hover:text-foreground", "disabled:cursor-not-allowed disabled:opacity-50"),
|
|
138
|
+
children: /* @__PURE__ */ x(C, { className: "size-3.5" })
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ x(a, {
|
|
141
|
+
size: z,
|
|
142
|
+
ref: (e) => {
|
|
143
|
+
H.current = e, typeof L == "function" ? L(e) : L && (L.current = e);
|
|
144
|
+
},
|
|
145
|
+
type: "text",
|
|
146
|
+
inputMode: V > 0 ? "decimal" : "numeric",
|
|
147
|
+
placeholder: q,
|
|
148
|
+
onChange: U,
|
|
149
|
+
onBlur: W,
|
|
150
|
+
value: y,
|
|
151
|
+
defaultValue: b,
|
|
152
|
+
disabled: T,
|
|
153
|
+
className: n("flex-1 tabular-nums text-center border-0 shadow-none rounded-none focus-visible:ring-0 focus-visible:border-0", v),
|
|
154
|
+
...I
|
|
155
|
+
}),
|
|
156
|
+
/* @__PURE__ */ x("button", {
|
|
157
|
+
type: "button",
|
|
158
|
+
tabIndex: -1,
|
|
159
|
+
"aria-label": B.increment,
|
|
160
|
+
disabled: T,
|
|
161
|
+
onClick: () => G(1),
|
|
162
|
+
className: n("inline-flex shrink-0 items-center justify-center border-l border-input text-muted-foreground transition-colors", N[z], "hover:bg-muted hover:text-foreground", "disabled:cursor-not-allowed disabled:opacity-50"),
|
|
163
|
+
children: /* @__PURE__ */ x(w, { className: "size-3.5" })
|
|
164
|
+
})
|
|
165
|
+
]
|
|
166
|
+
}) : /* @__PURE__ */ x(a, {
|
|
167
|
+
size: z,
|
|
168
|
+
ref: (e) => {
|
|
169
|
+
H.current = e, typeof L == "function" ? L(e) : L && (L.current = e);
|
|
170
|
+
},
|
|
171
|
+
type: "text",
|
|
172
|
+
inputMode: V > 0 ? "decimal" : "numeric",
|
|
173
|
+
placeholder: q,
|
|
174
|
+
onChange: U,
|
|
175
|
+
onBlur: W,
|
|
176
|
+
value: y,
|
|
177
|
+
defaultValue: b,
|
|
178
|
+
disabled: T,
|
|
179
|
+
className: n("tabular-nums text-end", v),
|
|
180
|
+
...I
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
var F = m.forwardRef(P);
|
|
184
|
+
F.displayName = "DecimalInput";
|
|
185
|
+
//#endregion
|
|
186
|
+
//#region src/components/base/forms/fields/currency-input.tsx
|
|
187
|
+
var I = {
|
|
188
|
+
USD: "$",
|
|
189
|
+
EUR: "€",
|
|
190
|
+
GBP: "£",
|
|
191
|
+
BGN: "лв",
|
|
192
|
+
JPY: "¥",
|
|
193
|
+
CNY: "¥",
|
|
194
|
+
CHF: "CHF",
|
|
195
|
+
CAD: "C$",
|
|
196
|
+
AUD: "A$"
|
|
197
|
+
}, L = (e) => !e || e.length === 0 ? [] : e.map((e) => typeof e == "string" ? {
|
|
198
|
+
value: e,
|
|
199
|
+
label: `${I[e] || e} ${e}`
|
|
200
|
+
} : e);
|
|
201
|
+
function R({ currency: e, defaultCurrency: r, currencies: a, onCurrencyChange: m, currencyPosition: h = "start", disableCurrencySelector: g = !1, currencyPlaceholder: C, currencyWidth: w = "w-28", currencyLabel: T, invalid: E, disabled: D, onConfigError: O, size: k, ...A }, j) {
|
|
202
|
+
let { defaultControlSize: M } = t(), N = o(k, M), P = y(() => L(a), [a]), [I, R] = b(r ?? P[0]?.value ?? ""), z = e !== void 0, B = z ? e : I;
|
|
203
|
+
v(() => {
|
|
204
|
+
let t = {
|
|
205
|
+
currency: e,
|
|
206
|
+
defaultCurrency: r,
|
|
207
|
+
disableCurrencySelector: g
|
|
208
|
+
};
|
|
209
|
+
g && typeof e == "string" && typeof r == "string" && e.trim() !== "" && r.trim() !== "" && e !== r && O?.("[CurrencyInput] currency/defaultCurrency mismatch while selector is disabled.", t), g && (typeof B != "string" || B.trim().length === 0) && O?.("[CurrencyInput] disableCurrencySelector is enabled but no currency is provided.", t);
|
|
210
|
+
}, [
|
|
211
|
+
e,
|
|
212
|
+
r,
|
|
213
|
+
g,
|
|
214
|
+
O,
|
|
215
|
+
B
|
|
216
|
+
]);
|
|
217
|
+
let V = _((e) => {
|
|
218
|
+
e !== null && (z || R(e), m?.(e));
|
|
219
|
+
}, [z, m]), H = y(() => n("border-input bg-transparent !shadow-none", s[N], "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, D && "opacity-50 cursor-not-allowed"), [
|
|
220
|
+
N,
|
|
221
|
+
w,
|
|
222
|
+
D
|
|
223
|
+
]), U = /* @__PURE__ */ S("div", {
|
|
224
|
+
className: "space-y-2",
|
|
225
|
+
children: [!!T && /* @__PURE__ */ x(i, {
|
|
226
|
+
className: "leading-6",
|
|
227
|
+
children: T
|
|
228
|
+
}), /* @__PURE__ */ S(p, {
|
|
229
|
+
value: B,
|
|
230
|
+
onValueChange: (e) => V(e),
|
|
231
|
+
disabled: D || g,
|
|
232
|
+
children: [/* @__PURE__ */ x(c, {
|
|
233
|
+
"aria-invalid": E || void 0,
|
|
234
|
+
className: H,
|
|
235
|
+
children: /* @__PURE__ */ x(d, { placeholder: C ?? "" })
|
|
236
|
+
}), /* @__PURE__ */ x(u, { children: /* @__PURE__ */ x(f, { children: P.map((e) => /* @__PURE__ */ x(l, {
|
|
237
|
+
value: e.value,
|
|
238
|
+
children: e.label
|
|
239
|
+
}, e.value)) }) })]
|
|
240
|
+
})]
|
|
241
|
+
});
|
|
242
|
+
return /* @__PURE__ */ S("div", {
|
|
243
|
+
className: n("currency-input--component", "flex items-start gap-2"),
|
|
244
|
+
children: [
|
|
245
|
+
h === "start" && U,
|
|
246
|
+
/* @__PURE__ */ x("div", {
|
|
247
|
+
className: "flex-1",
|
|
248
|
+
children: /* @__PURE__ */ x(F, {
|
|
249
|
+
ref: j,
|
|
250
|
+
size: N,
|
|
251
|
+
decimalPlaces: 2,
|
|
252
|
+
allowNegative: !1,
|
|
253
|
+
disabled: D,
|
|
254
|
+
invalid: E,
|
|
255
|
+
...A
|
|
256
|
+
})
|
|
257
|
+
}),
|
|
258
|
+
h === "end" && U
|
|
259
|
+
]
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
var z = g(h(R));
|
|
263
|
+
z.displayName = "CurrencyInput";
|
|
264
|
+
//#endregion
|
|
265
|
+
//#region src/components/base/forms/fields/money-input.tsx
|
|
266
|
+
var B = ["USD", "EUR"], V = h(function({ currencies: e = B, onCurrencyChange: t, currency: n, defaultCurrency: r, ...i }, a) {
|
|
267
|
+
return /* @__PURE__ */ x(z, {
|
|
268
|
+
className: "money-input--component",
|
|
269
|
+
ref: a,
|
|
270
|
+
currencies: e,
|
|
271
|
+
currency: n,
|
|
272
|
+
defaultCurrency: r,
|
|
273
|
+
onCurrencyChange: _((e) => {
|
|
274
|
+
t?.(e);
|
|
275
|
+
}, [t]),
|
|
276
|
+
...i
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
V.displayName = "MoneyInput";
|
|
280
|
+
//#endregion
|
|
281
|
+
//#region src/components/base/forms/form-field.tsx
|
|
282
|
+
function H({ children: e, label: t, isRequired: a, required: o, hint: s, error: c, helperText: l, htmlFor: u, className: d }) {
|
|
283
|
+
let f = !!c, p = c || l || (f ? void 0 : s), h = !!p, g = a ?? o, _ = m.useId(), v = m.isValidElement(e) ? e.props.id : void 0, y = u ?? v ?? (t && m.isValidElement(e) ? `form-field-${_}` : void 0), b = y && m.isValidElement(e) && !v ? m.cloneElement(e, { id: y }) : e;
|
|
284
|
+
return /* @__PURE__ */ S("div", {
|
|
285
|
+
className: n("form-field--component", "space-y-1", d),
|
|
286
|
+
children: [
|
|
287
|
+
!!t && /* @__PURE__ */ S(i, {
|
|
288
|
+
htmlFor: y,
|
|
289
|
+
className: "flex items-center leading-6",
|
|
290
|
+
children: [t, !!g && /* @__PURE__ */ x("span", {
|
|
291
|
+
className: "ml-1 text-destructive",
|
|
292
|
+
children: "*"
|
|
293
|
+
})]
|
|
294
|
+
}),
|
|
295
|
+
b,
|
|
296
|
+
!!h && /* @__PURE__ */ x(r, {
|
|
297
|
+
tag: "p",
|
|
298
|
+
size: "xs",
|
|
299
|
+
type: f ? "error" : "secondary",
|
|
300
|
+
...f ? {
|
|
301
|
+
role: "alert",
|
|
302
|
+
"aria-live": "polite"
|
|
303
|
+
} : {},
|
|
304
|
+
children: p
|
|
305
|
+
})
|
|
306
|
+
]
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
function U({ name: e, control: t, rules: n, error: r, children: i, ...a }) {
|
|
310
|
+
return /* @__PURE__ */ x(T, {
|
|
311
|
+
name: e,
|
|
312
|
+
control: t,
|
|
313
|
+
rules: n,
|
|
314
|
+
render: ({ field: t, fieldState: n }) => {
|
|
315
|
+
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;
|
|
316
|
+
return /* @__PURE__ */ x(H, {
|
|
317
|
+
...a,
|
|
318
|
+
error: s,
|
|
319
|
+
htmlFor: e,
|
|
320
|
+
children: i(t, s, c, n)
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
H.displayName = "FormField", U.displayName = "ControlledFormField";
|
|
326
|
+
//#endregion
|
|
327
|
+
export { F as a, z as i, H as n, V as r, U as t };
|
|
328
|
+
|
|
329
|
+
//# sourceMappingURL=form-field-B7taMVbC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-BF4m2cR0.cjs"),r=require("../lib/utils.cjs"),i=require("./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
|
|
@@ -0,0 +1 @@
|
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-sizing-D74IS9KG.js","names":[],"sources":["../../src/components/base/forms/form-sizing.ts"],"sourcesContent":["import type { FormControlSize, FormLabelSize } from '@/lib/ui-provider';\n\n// `!h-{n}` so our resolved height wins against shadcn primitives that\n// bake their own `data-[size=*]:h-{n}` defaults (Select, DatePicker\n// trigger via Button, etc.). Without `!`, the primitive's\n// attribute-selector specificity beats our class-selector and every\n// non-Input field renders 4px taller than Input.\nexport const formControlSizeClasses: Record<FormControlSize, string> = {\n\tsm: '!h-9 text-sm',\n\tbase: '!h-10 text-base md:text-sm',\n\tlg: '!h-11 text-base',\n};\n\n/**\n * Min-heights matching `formControlSizeClasses` so multi-line trigger\n * variants (e.g. `RichSelect` showing wrapped descriptions) can keep the\n * size's vertical rhythm without locking to a fixed `h-{n}`.\n */\nexport const formControlMinHeightClasses: Record<FormControlSize, string> = {\n\tsm: 'min-h-9',\n\tbase: 'min-h-10',\n\tlg: 'min-h-11',\n};\n\n/**\n * Canonical \"input-shaped trigger\" chrome — used by any control that\n * renders as a button-style trigger but visually has to read as a form\n * field (DatePicker, TimePicker, the inner Select inside composite\n * fields, etc.). Mirrors `Input`'s `border-input rounded-md\n * bg-transparent focus-visible:ring` chrome (no shadow — the library\n * is intentionally flat) plus the size-driven height + horizontal\n * padding.\n *\n * Kept here so the chrome lives in exactly one place — when we tweak\n * the canonical input look, every trigger picks it up.\n */\nexport function formFieldTriggerClasses(size: FormControlSize): string {\n\treturn [\n\t\t'flex w-full items-center justify-between gap-2',\n\t\t'rounded-
|
|
1
|
+
{"version":3,"file":"form-sizing-D74IS9KG.js","names":[],"sources":["../../src/components/base/forms/form-sizing.ts"],"sourcesContent":["import type { FormControlSize, FormLabelSize } from '@/lib/ui-provider';\n\n// `!h-{n}` so our resolved height wins against shadcn primitives that\n// bake their own `data-[size=*]:h-{n}` defaults (Select, DatePicker\n// trigger via Button, etc.). Without `!`, the primitive's\n// attribute-selector specificity beats our class-selector and every\n// non-Input field renders 4px taller than Input.\nexport const formControlSizeClasses: Record<FormControlSize, string> = {\n\tsm: '!h-9 text-sm',\n\tbase: '!h-10 text-base md:text-sm',\n\tlg: '!h-11 text-base',\n};\n\n/**\n * Min-heights matching `formControlSizeClasses` so multi-line trigger\n * variants (e.g. `RichSelect` showing wrapped descriptions) can keep the\n * size's vertical rhythm without locking to a fixed `h-{n}`.\n */\nexport const formControlMinHeightClasses: Record<FormControlSize, string> = {\n\tsm: 'min-h-9',\n\tbase: 'min-h-10',\n\tlg: 'min-h-11',\n};\n\n/**\n * Canonical \"input-shaped trigger\" chrome — used by any control that\n * renders as a button-style trigger but visually has to read as a form\n * field (DatePicker, TimePicker, the inner Select inside composite\n * fields, etc.). Mirrors `Input`'s `border-input rounded-md\n * bg-transparent focus-visible:ring` chrome (no shadow — the library\n * is intentionally flat) plus the size-driven height + horizontal\n * padding.\n *\n * Kept here so the chrome lives in exactly one place — when we tweak\n * the canonical input look, every trigger picks it up.\n */\nexport function formFieldTriggerClasses(size: FormControlSize): string {\n\treturn [\n\t\t'flex w-full items-center justify-between gap-2',\n\t\t'rounded-radius border border-input bg-transparent text-left font-normal',\n\t\t'shadow-none transition-[color,box-shadow] outline-none',\n\t\tformControlSizeClasses[size],\n\t\t'px-3',\n\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n\t\t'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t'hover:bg-transparent',\n\t].join(' ');\n}\n\nexport const formTextareaSizeClasses: Record<FormControlSize, string> = {\n\tsm: 'min-h-14 text-sm',\n\tbase: 'min-h-[60px] text-base md:text-sm',\n\tlg: 'min-h-20 text-base',\n};\n\nexport const formLabelSizeClasses: Record<FormLabelSize, string> = {\n\txs: 'text-xs',\n\tsm: 'text-sm',\n\tbase: 'text-base',\n};\n\nexport function resolveFormControlSize(\n\tsizeProp: FormControlSize | undefined,\n\tdefaultControlSize: FormControlSize | undefined,\n): FormControlSize {\n\treturn sizeProp ?? defaultControlSize ?? 'sm';\n}\n\nexport function resolveFormLabelSize(\n\tsizeProp: FormLabelSize | undefined,\n\tdefaultLabelSize: FormLabelSize | undefined,\n): FormLabelSize {\n\treturn sizeProp ?? defaultLabelSize ?? 'sm';\n}\n"],"mappings":";AAOA,IAAa,IAA0D;CACtE,IAAI;CACJ,MAAM;CACN,IAAI;AACL,GAOa,IAA+D;CAC3E,IAAI;CACJ,MAAM;CACN,IAAI;AACL,GA4Ba,IAA2D;CACvE,IAAI;CACJ,MAAM;CACN,IAAI;AACL;AAQA,SAAgB,EACf,GACA,GACkB;CAClB,OAAO,KAAY,KAAsB;AAC1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-sizing-aVwVuF-w.cjs","names":[],"sources":["../../src/components/base/forms/form-sizing.ts"],"sourcesContent":["import type { FormControlSize, FormLabelSize } from '@/lib/ui-provider';\n\n// `!h-{n}` so our resolved height wins against shadcn primitives that\n// bake their own `data-[size=*]:h-{n}` defaults (Select, DatePicker\n// trigger via Button, etc.). Without `!`, the primitive's\n// attribute-selector specificity beats our class-selector and every\n// non-Input field renders 4px taller than Input.\nexport const formControlSizeClasses: Record<FormControlSize, string> = {\n\tsm: '!h-9 text-sm',\n\tbase: '!h-10 text-base md:text-sm',\n\tlg: '!h-11 text-base',\n};\n\n/**\n * Min-heights matching `formControlSizeClasses` so multi-line trigger\n * variants (e.g. `RichSelect` showing wrapped descriptions) can keep the\n * size's vertical rhythm without locking to a fixed `h-{n}`.\n */\nexport const formControlMinHeightClasses: Record<FormControlSize, string> = {\n\tsm: 'min-h-9',\n\tbase: 'min-h-10',\n\tlg: 'min-h-11',\n};\n\n/**\n * Canonical \"input-shaped trigger\" chrome — used by any control that\n * renders as a button-style trigger but visually has to read as a form\n * field (DatePicker, TimePicker, the inner Select inside composite\n * fields, etc.). Mirrors `Input`'s `border-input rounded-md\n * bg-transparent focus-visible:ring` chrome (no shadow — the library\n * is intentionally flat) plus the size-driven height + horizontal\n * padding.\n *\n * Kept here so the chrome lives in exactly one place — when we tweak\n * the canonical input look, every trigger picks it up.\n */\nexport function formFieldTriggerClasses(size: FormControlSize): string {\n\treturn [\n\t\t'flex w-full items-center justify-between gap-2',\n\t\t'rounded-
|
|
1
|
+
{"version":3,"file":"form-sizing-aVwVuF-w.cjs","names":[],"sources":["../../src/components/base/forms/form-sizing.ts"],"sourcesContent":["import type { FormControlSize, FormLabelSize } from '@/lib/ui-provider';\n\n// `!h-{n}` so our resolved height wins against shadcn primitives that\n// bake their own `data-[size=*]:h-{n}` defaults (Select, DatePicker\n// trigger via Button, etc.). Without `!`, the primitive's\n// attribute-selector specificity beats our class-selector and every\n// non-Input field renders 4px taller than Input.\nexport const formControlSizeClasses: Record<FormControlSize, string> = {\n\tsm: '!h-9 text-sm',\n\tbase: '!h-10 text-base md:text-sm',\n\tlg: '!h-11 text-base',\n};\n\n/**\n * Min-heights matching `formControlSizeClasses` so multi-line trigger\n * variants (e.g. `RichSelect` showing wrapped descriptions) can keep the\n * size's vertical rhythm without locking to a fixed `h-{n}`.\n */\nexport const formControlMinHeightClasses: Record<FormControlSize, string> = {\n\tsm: 'min-h-9',\n\tbase: 'min-h-10',\n\tlg: 'min-h-11',\n};\n\n/**\n * Canonical \"input-shaped trigger\" chrome — used by any control that\n * renders as a button-style trigger but visually has to read as a form\n * field (DatePicker, TimePicker, the inner Select inside composite\n * fields, etc.). Mirrors `Input`'s `border-input rounded-md\n * bg-transparent focus-visible:ring` chrome (no shadow — the library\n * is intentionally flat) plus the size-driven height + horizontal\n * padding.\n *\n * Kept here so the chrome lives in exactly one place — when we tweak\n * the canonical input look, every trigger picks it up.\n */\nexport function formFieldTriggerClasses(size: FormControlSize): string {\n\treturn [\n\t\t'flex w-full items-center justify-between gap-2',\n\t\t'rounded-radius border border-input bg-transparent text-left font-normal',\n\t\t'shadow-none transition-[color,box-shadow] outline-none',\n\t\tformControlSizeClasses[size],\n\t\t'px-3',\n\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n\t\t'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t'hover:bg-transparent',\n\t].join(' ');\n}\n\nexport const formTextareaSizeClasses: Record<FormControlSize, string> = {\n\tsm: 'min-h-14 text-sm',\n\tbase: 'min-h-[60px] text-base md:text-sm',\n\tlg: 'min-h-20 text-base',\n};\n\nexport const formLabelSizeClasses: Record<FormLabelSize, string> = {\n\txs: 'text-xs',\n\tsm: 'text-sm',\n\tbase: 'text-base',\n};\n\nexport function resolveFormControlSize(\n\tsizeProp: FormControlSize | undefined,\n\tdefaultControlSize: FormControlSize | undefined,\n): FormControlSize {\n\treturn sizeProp ?? defaultControlSize ?? 'sm';\n}\n\nexport function resolveFormLabelSize(\n\tsizeProp: FormLabelSize | undefined,\n\tdefaultLabelSize: FormLabelSize | undefined,\n): FormLabelSize {\n\treturn sizeProp ?? defaultLabelSize ?? 'sm';\n}\n"],"mappings":"AAOA,IAAa,EAA0D,CACtE,GAAI,eACJ,KAAM,6BACN,GAAI,iBACL,EAOa,EAA+D,CAC3E,GAAI,UACJ,KAAM,WACN,GAAI,UACL,EA4Ba,EAA2D,CACvE,GAAI,mBACJ,KAAM,oCACN,GAAI,oBACL,EAQA,SAAgB,EACf,EACA,EACkB,CAClB,OAAO,GAAY,GAAsB,IAC1C"}
|