admin-ui-starter-kit 0.1.3 → 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 +285 -2
- package/.agents/skills/component-library-rules/SKILL.md +9 -8
- package/.agents/skills/component-library-rules/references/audit-followups.md +4 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.json +106 -92
- package/.agents/skills/component-library-rules/references/components/INDEX.md +18 -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 +139 -7
- 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 +213 -4
- 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 +57 -2
- package/.agents/skills/component-library-rules/references/components/base__forms.md +338 -8
- package/.agents/skills/component-library-rules/references/components/base__frame.md +235 -0
- package/.agents/skills/component-library-rules/references/components/base__item.md +48 -2
- package/.agents/skills/component-library-rules/references/components/base__map.md +44 -8
- 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 +79 -9
- package/.agents/skills/component-library-rules/references/components/base__spinner.md +44 -3
- package/.agents/skills/component-library-rules/references/components/base__table.md +110 -16
- package/.agents/skills/component-library-rules/references/components/base__typography.md +128 -5
- 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 +21 -6
- 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 +12 -5
- package/.agents/skills/component-library-rules/references/components/composed__commerce-extras.md +179 -114
- package/.agents/skills/component-library-rules/references/components/composed__commerce.md +57 -49
- 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 +18 -7
- 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 +29 -8
- 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 +48 -5
- package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +23 -6
- package/.agents/skills/component-library-rules/references/components/features__event-log.md +14 -3
- 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 +56 -22
- 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 +667 -0
- 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 +10 -3
- 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 +10 -3
- package/.agents/skills/component-library-rules/references/components/layout__layout-users.md +58 -37
- 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 +8 -8
- package/.agents/skills/component-library-rules/references/components/ui__toggles.md +2 -2
- 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/CHANGELOG.md +27 -1
- package/COMPONENT_SELECTION.md +51 -5
- package/INTEGRATION.md +52 -2
- package/MIGRATION.md +21 -3
- package/PUBLISHING.md +4 -1
- package/README.md +62 -9
- 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/avatar-0spfQEHG.cjs +2 -0
- package/dist/_shared/avatar-0spfQEHG.cjs.map +1 -0
- package/dist/_shared/avatar-CBi4LGxy.js +52 -0
- package/dist/_shared/avatar-CBi4LGxy.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/breadcrumbs-Dqp2qAmo.cjs +2 -0
- package/dist/_shared/breadcrumbs-Dqp2qAmo.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-bJ-J0oCd.js +111 -0
- package/dist/_shared/breadcrumbs-bJ-J0oCd.js.map +1 -0
- package/dist/_shared/button-683R5quQ.js +46 -0
- package/dist/_shared/button-683R5quQ.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-CjZrRLzR.cjs +2 -0
- package/dist/_shared/button-CjZrRLzR.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/chunk-CMqjfN_6.cjs +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/command-Bxe_FmGD.cjs +2 -0
- package/dist/_shared/command-Bxe_FmGD.cjs.map +1 -0
- package/dist/_shared/command-CAI-BCSR.js +123 -0
- package/dist/_shared/command-CAI-BCSR.js.map +1 -0
- package/dist/_shared/command-DRIySU26.cjs +2 -0
- package/dist/_shared/command-DRIySU26.cjs.map +1 -0
- package/dist/_shared/command-DwRnPIGs.js +39 -0
- package/dist/_shared/command-DwRnPIGs.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/containers-D7oZE4XI.cjs +2 -0
- package/dist/_shared/containers-D7oZE4XI.cjs.map +1 -0
- package/dist/_shared/containers-anBivbL9.js +19 -0
- package/dist/_shared/containers-anBivbL9.js.map +1 -0
- package/dist/_shared/content-container-CVUJCLhn.cjs +2 -0
- package/dist/_shared/content-container-CVUJCLhn.cjs.map +1 -0
- package/dist/_shared/content-container-Dv8XsAw4.js +33 -0
- package/dist/_shared/content-container-Dv8XsAw4.js.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/dialog-A95-614f.js +101 -0
- package/dist/_shared/dialog-A95-614f.js.map +1 -0
- package/dist/_shared/dialog-ivDByBmO.cjs +2 -0
- package/dist/_shared/dialog-ivDByBmO.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/dropdown-menu-CHQzQWUK.cjs +2 -0
- package/dist/_shared/dropdown-menu-CHQzQWUK.cjs.map +1 -0
- package/dist/_shared/dropdown-menu-CoWmrjYX.js +147 -0
- package/dist/_shared/dropdown-menu-CoWmrjYX.js.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 +21 -0
- package/dist/_shared/form-sizing-D74IS9KG.js.map +1 -0
- package/dist/_shared/form-sizing-aVwVuF-w.cjs +2 -0
- package/dist/_shared/form-sizing-aVwVuF-w.cjs.map +1 -0
- package/dist/_shared/format-BTtJC6oz.cjs +2 -0
- package/dist/_shared/format-BTtJC6oz.cjs.map +1 -0
- package/dist/_shared/format-BX3QestD.js +48 -0
- package/dist/_shared/format-BX3QestD.js.map +1 -0
- 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/icon-badge-BAWl1oOe.cjs +2 -0
- package/dist/_shared/icon-badge-BAWl1oOe.cjs.map +1 -0
- package/dist/_shared/icon-badge-zTBVtgt9.js +52 -0
- package/dist/_shared/icon-badge-zTBVtgt9.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/input-D43_IMWW.cjs +2 -0
- package/dist/_shared/input-D43_IMWW.cjs.map +1 -0
- package/dist/_shared/input-R8c90tNY.js +17 -0
- package/dist/_shared/input-R8c90tNY.js.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-CaHvG8Vj.cjs +2 -0
- package/dist/_shared/popover-CaHvG8Vj.cjs.map +1 -0
- package/dist/_shared/popover-L37RqoRO.js +83 -0
- package/dist/_shared/popover-L37RqoRO.js.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/scroll-area-BH5CPQh4.js +41 -0
- package/dist/_shared/scroll-area-BH5CPQh4.js.map +1 -0
- package/dist/_shared/scroll-area-u46BOVcC.cjs +2 -0
- package/dist/_shared/scroll-area-u46BOVcC.cjs.map +1 -0
- package/dist/_shared/select-BwUUXpsb.js +85 -0
- package/dist/_shared/select-BwUUXpsb.js.map +1 -0
- package/dist/_shared/select-CG5Yq-6A.cjs +2 -0
- package/dist/_shared/select-CG5Yq-6A.cjs.map +1 -0
- package/dist/_shared/separator-B8FBp-7E.js +16 -0
- package/dist/_shared/separator-B8FBp-7E.js.map +1 -0
- package/dist/_shared/separator-q42IlFFA.cjs +2 -0
- package/dist/_shared/separator-q42IlFFA.cjs.map +1 -0
- package/dist/_shared/sheet-BKEfwhCn.js +100 -0
- package/dist/_shared/sheet-BKEfwhCn.js.map +1 -0
- package/dist/_shared/sheet-D4yWgkwC.cjs +2 -0
- package/dist/_shared/sheet-D4yWgkwC.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-Bl_KRk-S.cjs +2 -0
- package/dist/_shared/sidebar-Bl_KRk-S.cjs.map +1 -0
- package/dist/_shared/sidebar-C89O5ho_.cjs +2 -0
- package/dist/_shared/sidebar-C89O5ho_.cjs.map +1 -0
- package/dist/_shared/sidebar-ux-yk-Ph.js +382 -0
- package/dist/_shared/sidebar-ux-yk-Ph.js.map +1 -0
- package/dist/_shared/skeleton-CGQMeno1.js +14 -0
- package/dist/_shared/skeleton-CGQMeno1.js.map +1 -0
- package/dist/_shared/skeleton-D1c5OHXa.cjs +2 -0
- package/dist/_shared/skeleton-D1c5OHXa.cjs.map +1 -0
- package/dist/_shared/slot-C5EJicOc.js +18 -0
- package/dist/_shared/slot-C5EJicOc.js.map +1 -0
- package/dist/_shared/slot-D-Rwlrz2.cjs +2 -0
- package/dist/_shared/slot-D-Rwlrz2.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/switch-BBP3u1z5.js +55 -0
- package/dist/_shared/switch-BBP3u1z5.js.map +1 -0
- package/dist/_shared/switch-zFZhhOEP.cjs +2 -0
- package/dist/_shared/switch-zFZhhOEP.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/tooltip-CLr_sPX8.js +49 -0
- package/dist/_shared/tooltip-CLr_sPX8.js.map +1 -0
- package/dist/_shared/tooltip-mvxZV_Lu.cjs +2 -0
- package/dist/_shared/tooltip-mvxZV_Lu.cjs.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 +2 -2
- package/dist/components/base/badge/badge.d.ts +1 -1
- package/dist/components/base/badge/badge.d.ts.map +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/base-button.d.ts.map +1 -1
- package/dist/components/base/buttons/google-button.d.ts +1 -1
- package/dist/components/base/buttons/google-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/buttons/shopify-button.d.ts +1 -1
- package/dist/components/base/buttons/shopify-button.d.ts.map +1 -1
- package/dist/components/base/buttons/tooltip-button.d.ts.map +1 -1
- 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/partials/card-primitives.d.ts +6 -6
- package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
- package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts +1 -1
- package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts.map +1 -1
- package/dist/components/base/cards/partials/smart-card-alert.d.ts +1 -1
- package/dist/components/base/cards/partials/smart-card-alert.d.ts.map +1 -1
- package/dist/components/base/cards/partials/smart-card-header-row.d.ts +1 -1
- package/dist/components/base/cards/partials/smart-card-header-row.d.ts.map +1 -1
- package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +1 -1
- package/dist/components/base/cards/partials/smart-card-skeleton.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.tokens.d.ts +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/combobox.strings.d.ts.map +1 -1
- package/dist/components/base/combobox/components/highlighted-text.d.ts.map +1 -1
- 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 +6 -1
- package/dist/components/base/combobox/types.d.ts.map +1 -1
- package/dist/components/base/command/command.d.ts +5 -5
- package/dist/components/base/command/command.d.ts.map +1 -1
- package/dist/components/base/command/index.cjs +1 -1
- package/dist/components/base/command/index.js +2 -2
- package/dist/components/base/copyable/copyable.d.ts +1 -1
- package/dist/components/base/copyable/copyable.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/currency-pair-preview.d.ts +1 -1
- package/dist/components/base/currency/currency-pair-preview.d.ts.map +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/date-picker-footer.d.ts +2 -1
- package/dist/components/base/date-pickers/date-picker-footer.d.ts.map +1 -1
- package/dist/components/base/date-pickers/date-picker-header.d.ts +1 -1
- package/dist/components/base/date-pickers/date-picker-header.d.ts.map +1 -1
- package/dist/components/base/date-pickers/date-picker-helpers.d.ts +5 -1
- package/dist/components/base/date-pickers/date-picker-helpers.d.ts.map +1 -1
- package/dist/components/base/date-pickers/date-picker.d.ts +2 -1
- package/dist/components/base/date-pickers/date-picker.d.ts.map +1 -1
- package/dist/components/base/date-pickers/date-range-picker.d.ts +2 -1
- package/dist/components/base/date-pickers/date-range-picker.d.ts.map +1 -1
- package/dist/components/base/date-pickers/index.cjs +1 -1
- package/dist/components/base/date-pickers/index.js +3 -3
- package/dist/components/base/date-pickers/month-year-picker.d.ts +2 -1
- package/dist/components/base/date-pickers/month-year-picker.d.ts.map +1 -1
- package/dist/components/base/date-pickers/segmented-time-input.d.ts +2 -1
- package/dist/components/base/date-pickers/segmented-time-input.d.ts.map +1 -1
- 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/boolean-indicator.d.ts +1 -1
- package/dist/components/base/display/boolean-indicator.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 +2 -2
- package/dist/components/base/display/date-block.d.ts.map +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts.map +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts.map +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts.map +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts.map +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts +1 -1
- package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts.map +1 -1
- package/dist/components/base/display/fields/email-display.d.ts +1 -1
- package/dist/components/base/display/fields/email-display.d.ts.map +1 -1
- package/dist/components/base/display/fields/phone-display.d.ts +1 -1
- package/dist/components/base/display/fields/phone-display.d.ts.map +1 -1
- package/dist/components/base/display/fields/url-display.d.ts +1 -1
- package/dist/components/base/display/fields/url-display.d.ts.map +1 -1
- package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
- package/dist/components/base/display/icon-badge/icon-badge.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 +12 -12
- package/dist/components/base/display/inline-stat/inline-stat.d.ts +1 -1
- package/dist/components/base/display/inline-stat/inline-stat.d.ts.map +1 -1
- 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/metadata/metadata-list.d.ts +1 -1
- package/dist/components/base/display/metadata/metadata-list.d.ts.map +1 -1
- package/dist/components/base/display/money-display.d.ts +1 -1
- package/dist/components/base/display/money-display.d.ts.map +1 -1
- package/dist/components/base/display/money-input.d.ts +1 -1
- package/dist/components/base/display/money-input.d.ts.map +1 -1
- package/dist/components/base/display/notification-banner.d.ts +1 -1
- package/dist/components/base/display/notification-banner.d.ts.map +1 -1
- package/dist/components/base/display/numeric-value/numeric-value.d.ts +1 -1
- package/dist/components/base/display/numeric-value/numeric-value.d.ts.map +1 -1
- package/dist/components/base/display/placeholder-pattern.d.ts +1 -1
- package/dist/components/base/display/placeholder-pattern.d.ts.map +1 -1
- package/dist/components/base/display/qr-code.d.ts +1 -1
- package/dist/components/base/display/qr-code.d.ts.map +1 -1
- package/dist/components/base/display/section-header/section-header.d.ts +1 -1
- package/dist/components/base/display/section-header/section-header.d.ts.map +1 -1
- package/dist/components/base/display/stacked-avatars.d.ts +7 -6
- package/dist/components/base/display/stacked-avatars.d.ts.map +1 -1
- package/dist/components/base/display/throttle-alert.d.ts +1 -1
- package/dist/components/base/display/throttle-alert.d.ts.map +1 -1
- package/dist/components/base/display/user-cell/user-cell.d.ts +1 -1
- package/dist/components/base/display/user-cell/user-cell.d.ts.map +1 -1
- package/dist/components/base/display/visually-hidden.d.ts +1 -1
- package/dist/components/base/display/visually-hidden.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar-day-cell.d.ts +1 -1
- package/dist/components/base/event-calendar/event-calendar-day-cell.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar-event-badge.d.ts +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 +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 +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 +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 +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 +200 -209
- package/dist/components/base/event-calendar/index.js.map +1 -1
- package/dist/components/base/forms/fields/avatar-upload.d.ts.map +1 -1
- package/dist/components/base/forms/fields/card-checkbox-group.d.ts +1 -1
- package/dist/components/base/forms/fields/card-checkbox-group.d.ts.map +1 -1
- package/dist/components/base/forms/fields/card-radio-group.d.ts +1 -1
- package/dist/components/base/forms/fields/card-radio-group.d.ts.map +1 -1
- package/dist/components/base/forms/fields/coordinates-input.d.ts +1 -1
- package/dist/components/base/forms/fields/coordinates-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/currency-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/date-time-input.d.ts +1 -1
- package/dist/components/base/forms/fields/date-time-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/dimensions-input.d.ts +1 -1
- package/dist/components/base/forms/fields/dimensions-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/key-value-editor.d.ts +1 -1
- package/dist/components/base/forms/fields/key-value-editor.d.ts.map +1 -1
- package/dist/components/base/forms/fields/list-radio-group.d.ts +1 -1
- package/dist/components/base/forms/fields/list-radio-group.d.ts.map +1 -1
- package/dist/components/base/forms/fields/list.d.ts +1 -1
- package/dist/components/base/forms/fields/list.d.ts.map +1 -1
- package/dist/components/base/forms/fields/localized-object-field.d.ts +1 -1
- package/dist/components/base/forms/fields/localized-object-field.d.ts.map +1 -1
- package/dist/components/base/forms/fields/localized-string-field.d.ts +1 -1
- package/dist/components/base/forms/fields/localized-string-field.d.ts.map +1 -1
- package/dist/components/base/forms/fields/localized-string-repeater.d.ts +1 -1
- package/dist/components/base/forms/fields/localized-string-repeater.d.ts.map +1 -1
- package/dist/components/base/forms/fields/media-gallery.d.ts +1 -1
- package/dist/components/base/forms/fields/media-gallery.d.ts.map +1 -1
- package/dist/components/base/forms/fields/object-repeater.d.ts +1 -1
- package/dist/components/base/forms/fields/object-repeater.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/pill-radio-group.d.ts +11 -1
- package/dist/components/base/forms/fields/pill-radio-group.d.ts.map +1 -1
- package/dist/components/base/forms/fields/repeater.d.ts +1 -1
- package/dist/components/base/forms/fields/repeater.d.ts.map +1 -1
- package/dist/components/base/forms/fields/rounding-mode-select.d.ts +1 -1
- package/dist/components/base/forms/fields/rounding-mode-select.d.ts.map +1 -1
- 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/string-repeater.d.ts +1 -1
- package/dist/components/base/forms/fields/string-repeater.d.ts.map +1 -1
- package/dist/components/base/forms/fields/switch-card.d.ts +2 -1
- package/dist/components/base/forms/fields/switch-card.d.ts.map +1 -1
- package/dist/components/base/forms/fields/switch.d.ts.map +1 -1
- package/dist/components/base/forms/fields/tags-input.d.ts +1 -1
- package/dist/components/base/forms/fields/tags-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/time-picker.d.ts +2 -1
- package/dist/components/base/forms/fields/time-picker.d.ts.map +1 -1
- package/dist/components/base/forms/fields/toggle-field.d.ts +1 -1
- package/dist/components/base/forms/fields/toggle-field.d.ts.map +1 -1
- package/dist/components/base/forms/fields/upload-progress-list.d.ts +1 -1
- package/dist/components/base/forms/fields/upload-progress-list.d.ts.map +1 -1
- package/dist/components/base/forms/fields/weight-input.d.ts +2 -1
- package/dist/components/base/forms/fields/weight-input.d.ts.map +1 -1
- package/dist/components/base/forms/form-field.d.ts +63 -2
- package/dist/components/base/forms/form-field.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/forms/operation-password-form.d.ts +1 -1
- package/dist/components/base/forms/operation-password-form.d.ts.map +1 -1
- 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 +104 -85
- package/dist/components/base/map/index.js.map +1 -1
- package/dist/components/base/map/map.d.ts +31 -30
- package/dist/components/base/map/map.d.ts.map +1 -1
- package/dist/components/base/map/place-autocomplete.d.ts +1 -1
- package/dist/components/base/map/place-autocomplete.d.ts.map +1 -1
- package/dist/components/base/navigation/action-menu.d.ts +1 -1
- package/dist/components/base/navigation/aside-navigation-menu.d.ts +1 -1
- package/dist/components/base/navigation/aside-navigation-menu.d.ts.map +1 -1
- package/dist/components/base/navigation/breadcrumbs.d.ts +1 -1
- package/dist/components/base/navigation/breadcrumbs.d.ts.map +1 -1
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +4 -4
- package/dist/components/base/navigation/language-switcher.d.ts +1 -1
- package/dist/components/base/navigation/language-switcher.d.ts.map +1 -1
- package/dist/components/base/navigation/navigation-tabs.d.ts +1 -1
- package/dist/components/base/navigation/navigation-tabs.d.ts.map +1 -1
- package/dist/components/base/navigation/overflow-tab-bar.d.ts +1 -1
- package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -1
- package/dist/components/base/navigation/page-header/page-header.d.ts +1 -1
- package/dist/components/base/navigation/page-header/page-header.d.ts.map +1 -1
- package/dist/components/base/navigation/section-nav/section-nav.d.ts +1 -1
- package/dist/components/base/navigation/section-nav/section-nav.d.ts.map +1 -1
- package/dist/components/base/navigation/side-nav.d.ts +1 -1
- package/dist/components/base/navigation/side-nav.d.ts.map +1 -1
- package/dist/components/base/navigation/tab-navigation-menu.d.ts +1 -1
- package/dist/components/base/navigation/tab-navigation-menu.d.ts.map +1 -1
- package/dist/components/base/popover/index.cjs +1 -1
- package/dist/components/base/popover/index.js +1 -1
- package/dist/components/base/popover/popover.d.ts +1 -1
- package/dist/components/base/popover/popover.d.ts.map +1 -1
- 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 +3 -2
- package/dist/components/base/popover-menu/popover-menu.d.ts.map +1 -1
- package/dist/components/base/sheet/index.cjs +1 -1
- package/dist/components/base/sheet/index.js +1 -1
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/index.js +2 -2
- package/dist/components/base/sidebar/sidebar.d.ts +10 -9
- package/dist/components/base/sidebar/sidebar.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/column-visibility-toggle.d.ts +1 -1
- package/dist/components/base/table/column-visibility-toggle.d.ts.map +1 -1
- package/dist/components/base/table/data-table.d.ts +1 -1
- package/dist/components/base/table/data-table.d.ts.map +1 -1
- package/dist/components/base/table/filter-bar.d.ts +1 -1
- package/dist/components/base/table/filter-bar.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/pagination.d.ts +1 -1
- package/dist/components/base/table/pagination.d.ts.map +1 -1
- package/dist/components/base/table/partials/cell-renderers.d.ts +4 -4
- package/dist/components/base/table/partials/cell-renderers.d.ts.map +1 -1
- package/dist/components/base/table/partials/cell-value.d.ts +1 -1
- package/dist/components/base/table/partials/cell-value.d.ts.map +1 -1
- package/dist/components/base/table/partials/density-toggle.d.ts +1 -1
- package/dist/components/base/table/partials/density-toggle.d.ts.map +1 -1
- package/dist/components/base/table/partials/table-link.d.ts +1 -1
- package/dist/components/base/table/partials/table-link.d.ts.map +1 -1
- package/dist/components/base/table/table-actions.d.ts +1 -1
- package/dist/components/base/table/table-actions.d.ts.map +1 -1
- package/dist/components/base/table/table-body.d.ts +1 -1
- package/dist/components/base/table/table-body.d.ts.map +1 -1
- package/dist/components/base/table/table-header.d.ts +2 -1
- package/dist/components/base/table/table-header.d.ts.map +1 -1
- package/dist/components/base/table/table-helpers.d.ts +2 -2
- package/dist/components/base/table/table-helpers.d.ts.map +1 -1
- package/dist/components/base/table/table-pagination.d.ts +1 -1
- package/dist/components/base/table/table-pagination.d.ts.map +1 -1
- package/dist/components/base/table/table-toolbar.d.ts +1 -1
- package/dist/components/base/table/table-toolbar.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.cjs.map +1 -1
- package/dist/components/base/toaster/index.js +1 -1
- package/dist/components/base/toaster/index.js.map +1 -1
- package/dist/components/base/toaster/toaster.d.ts +1 -1
- package/dist/components/base/toaster/toaster.d.ts.map +1 -1
- package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -1
- package/dist/components/composed/admin/conversation-row/conversation-row.d.ts +1 -1
- package/dist/components/composed/admin/conversation-row/conversation-row.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 +167 -158
- package/dist/components/composed/admin/index.js.map +1 -1
- package/dist/components/composed/admin/inventory-level/inventory-level.d.ts +1 -1
- package/dist/components/composed/admin/inventory-level/inventory-level.d.ts.map +1 -1
- package/dist/components/composed/admin/role-permission/role-permission.d.ts +1 -1
- package/dist/components/composed/admin/role-permission/role-permission.d.ts.map +1 -1
- package/dist/components/composed/admin/settings-toggle/settings-toggle.d.ts +1 -1
- package/dist/components/composed/admin/settings-toggle/settings-toggle.d.ts.map +1 -1
- package/dist/components/composed/admin/team-member/team-member.d.ts +1 -1
- package/dist/components/composed/admin/team-member/team-member.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-agent/ai-agent.d.ts +1 -1
- package/dist/components/composed/ai/ai-agent/ai-agent.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts +1 -1
- package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts +1 -1
- package/dist/components/composed/ai/ai-attachment/ai-attachment.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
- package/dist/components/composed/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-citation/ai-citation.d.ts +1 -1
- package/dist/components/composed/ai/ai-citation/ai-citation.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-classification/ai-classification.d.ts +1 -1
- package/dist/components/composed/ai/ai-classification/ai-classification.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts +1 -1
- package/dist/components/composed/ai/ai-code-block/ai-code-block.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts +1 -1
- package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
- package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-feedback/ai-feedback.d.ts +1 -1
- package/dist/components/composed/ai/ai-feedback/ai-feedback.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-file-tree/ai-file-tree.d.ts +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 +1 -1
- package/dist/components/composed/ai/ai-inline-citation/ai-inline-citation.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-message-bubble/ai-message-bubble.d.ts +1 -1
- package/dist/components/composed/ai/ai-message-bubble/ai-message-bubble.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-package-info/ai-package-info.d.ts +1 -1
- package/dist/components/composed/ai/ai-package-info/ai-package-info.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts +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 +1 -1
- package/dist/components/composed/ai/ai-reasoning/ai-reasoning.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-shimmer/ai-shimmer.d.ts +1 -1
- package/dist/components/composed/ai/ai-shimmer/ai-shimmer.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-sources/ai-sources.d.ts +1 -1
- package/dist/components/composed/ai/ai-sources/ai-sources.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-summary/ai-summary.d.ts +1 -1
- package/dist/components/composed/ai/ai-summary/ai-summary.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-task/ai-task.d.ts +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-token-usage/ai-token-usage.d.ts +1 -1
- package/dist/components/composed/ai/ai-token-usage/ai-token-usage.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts +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 +111 -109
- package/dist/components/composed/ai/index.js.map +1 -1
- package/dist/components/composed/analytics/activity-heatmap/activity-heatmap.d.ts +1 -1
- package/dist/components/composed/analytics/activity-heatmap/activity-heatmap.d.ts.map +1 -1
- package/dist/components/composed/analytics/atoms/metric-skeleton.d.ts +1 -1
- package/dist/components/composed/analytics/atoms/metric-skeleton.d.ts.map +1 -1
- package/dist/components/composed/analytics/atoms/metric-sparkline.d.ts +1 -1
- package/dist/components/composed/analytics/atoms/metric-sparkline.d.ts.map +1 -1
- package/dist/components/composed/analytics/atoms/metric-trend-chip.d.ts +1 -1
- package/dist/components/composed/analytics/atoms/metric-trend-chip.d.ts.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 +408 -427
- package/dist/components/composed/analytics/index.js.map +1 -1
- package/dist/components/composed/analytics/metric/metric.d.ts +1 -1
- package/dist/components/composed/analytics/metric/metric.d.ts.map +1 -1
- package/dist/components/composed/analytics/metric-bar/metric-bar.d.ts +1 -1
- package/dist/components/composed/analytics/metric-bar/metric-bar.d.ts.map +1 -1
- package/dist/components/composed/analytics/metric-comparison/metric-comparison.d.ts +3 -2
- 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 +1 -1
- package/dist/components/composed/analytics/metric-gradient/metric-gradient.d.ts.map +1 -1
- package/dist/components/composed/analytics/metric-grid/metric-grid.d.ts +1 -1
- package/dist/components/composed/analytics/metric-grid/metric-grid.d.ts.map +1 -1
- package/dist/components/composed/analytics/metric-micro-grid/metric-micro-grid.d.ts +1 -1
- package/dist/components/composed/analytics/metric-micro-grid/metric-micro-grid.d.ts.map +1 -1
- package/dist/components/composed/cards/contact-card/contact-card.d.ts +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 +1 -1
- package/dist/components/composed/cards/course-card/course-card.d.ts.map +1 -1
- package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts +1 -1
- package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts.map +1 -1
- package/dist/components/composed/cards/giftcard-card/partials/giftcard-compact.d.ts +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 +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 +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 +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 +1 -1
- package/dist/components/composed/cards/giftcard-card/partials/giftcard-minimal.d.ts.map +1 -1
- package/dist/components/composed/cards/gradient-card/gradient-card.d.ts +2 -2
- package/dist/components/composed/cards/gradient-card/gradient-card.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 +661 -701
- package/dist/components/composed/cards/index.js.map +1 -1
- package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts +1 -1
- package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts.map +1 -1
- package/dist/components/composed/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/composed/commerce/address-card/address-card.d.ts.map +1 -1
- package/dist/components/composed/commerce/cart-summary/cart-summary.d.ts +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 +1 -1
- package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts.map +1 -1
- package/dist/components/composed/commerce/discount-stack/discount-stack.d.ts +1 -1
- package/dist/components/composed/commerce/discount-stack/discount-stack.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 +604 -514
- package/dist/components/composed/commerce/index.js.map +1 -1
- package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts +1 -1
- package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts.map +1 -1
- package/dist/components/composed/commerce/order-status/order-status.d.ts +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 +1 -1
- package/dist/components/composed/commerce/payment-method/payment-method.d.ts.map +1 -1
- package/dist/components/composed/commerce/refund-status/refund-status.d.ts +1 -1
- package/dist/components/composed/commerce/refund-status/refund-status.d.ts.map +1 -1
- package/dist/components/composed/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
- package/dist/components/composed/commerce/shipment-tracking/shipment-tracking.d.ts.map +1 -1
- package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts +1 -1
- package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts.map +1 -1
- package/dist/components/composed/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
- package/dist/components/composed/commerce/tax-breakdown/tax-breakdown.d.ts.map +1 -1
- package/dist/components/composed/commerce/upcoming-booking/upcoming-booking.d.ts +1 -1
- package/dist/components/composed/commerce/upcoming-booking/upcoming-booking.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 +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 +1 -1
- package/dist/components/composed/dark-surfaces/booking-receipt/booking-receipt.d.ts.map +1 -1
- package/dist/components/composed/dark-surfaces/dark-info-panel/dark-info-panel.d.ts +1 -1
- package/dist/components/composed/dark-surfaces/dark-info-panel/dark-info-panel.d.ts.map +1 -1
- package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.d.ts +1 -1
- package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.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 +46 -36
- package/dist/components/composed/dark-surfaces/index.js.map +1 -1
- package/dist/components/composed/dark-surfaces/order-items/order-items.d.ts +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/dark-surfaces/outstanding-balance/outstanding-balance.d.ts +1 -1
- package/dist/components/composed/dark-surfaces/outstanding-balance/outstanding-balance.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/helpers.d.ts +2 -2
- package/dist/components/composed/data-display/dense-info-card/helpers.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-classification.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-project.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.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 +355 -329
- package/dist/components/composed/data-display/index.js.map +1 -1
- package/dist/components/composed/data-display/inline-metric/inline-metric.d.ts +1 -1
- package/dist/components/composed/data-display/inline-metric/inline-metric.d.ts.map +1 -1
- package/dist/components/composed/data-display/invoice-header/invoice-header.d.ts +1 -1
- package/dist/components/composed/data-display/invoice-header/invoice-header.d.ts.map +1 -1
- package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts +3 -3
- package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts.map +1 -1
- package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts +1 -1
- package/dist/components/composed/data-display/invoice-mini/invoice-mini.d.ts.map +1 -1
- package/dist/components/composed/data-display/invoice-table/invoice-table.d.ts +1 -1
- package/dist/components/composed/data-display/invoice-table/invoice-table.d.ts.map +1 -1
- package/dist/components/composed/data-display/mini-kpi/mini-kpi.d.ts +1 -1
- package/dist/components/composed/data-display/mini-kpi/mini-kpi.d.ts.map +1 -1
- package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
- package/dist/components/composed/navigation/breadcrumb-progress/breadcrumb-progress.d.ts.map +1 -1
- package/dist/components/composed/navigation/category-nav/category-nav.d.ts +1 -1
- package/dist/components/composed/navigation/category-nav/category-nav.d.ts.map +1 -1
- package/dist/components/composed/navigation/experience-activity/experience-activity.d.ts +1 -1
- package/dist/components/composed/navigation/experience-activity/experience-activity.d.ts.map +1 -1
- package/dist/components/composed/navigation/experience-activity/experience-activity.strings.d.ts +8 -0
- package/dist/components/composed/navigation/experience-activity/experience-activity.strings.d.ts.map +1 -0
- package/dist/components/composed/navigation/experience-activity/index.d.ts +1 -0
- package/dist/components/composed/navigation/experience-activity/index.d.ts.map +1 -1
- package/dist/components/composed/navigation/experience-activity/types.d.ts +2 -0
- package/dist/components/composed/navigation/experience-activity/types.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 +111 -86
- package/dist/components/composed/navigation/index.js.map +1 -1
- package/dist/components/composed/navigation/kanban-board/kanban-board.d.ts +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/navigation/tab-switcher/tab-switcher.d.ts +1 -1
- package/dist/components/composed/navigation/tab-switcher/tab-switcher.d.ts.map +1 -1
- package/dist/components/composed/navigation/time-ruler/time-ruler.d.ts +1 -1
- package/dist/components/composed/navigation/time-ruler/time-ruler.d.ts.map +1 -1
- package/dist/components/composed/navigation/vendor-performance/vendor-performance.d.ts +1 -1
- package/dist/components/composed/navigation/vendor-performance/vendor-performance.d.ts.map +1 -1
- package/dist/components/composed/onboarding/checklist/checklist.d.ts.map +1 -1
- package/dist/components/composed/onboarding/checklist/partials/step-status-indicator.d.ts +1 -1
- package/dist/components/composed/onboarding/checklist/partials/step-status-indicator.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 +60 -60
- package/dist/components/composed/onboarding/index.js.map +1 -1
- package/dist/components/composed/timelines/activity-stream/activity-stream.d.ts +1 -1
- package/dist/components/composed/timelines/activity-stream/activity-stream.d.ts.map +1 -1
- package/dist/components/composed/timelines/changelog/changelog-timeline.d.ts +1 -1
- package/dist/components/composed/timelines/changelog/changelog-timeline.d.ts.map +1 -1
- 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 +37 -10
- package/dist/components/composed/timelines/index.js.map +1 -1
- package/dist/components/composed/timelines/milestones/milestones-timeline.d.ts +1 -1
- package/dist/components/composed/timelines/milestones/milestones-timeline.d.ts.map +1 -1
- package/dist/components/composed/timelines/order-timeline/order-timeline.d.ts +1 -1
- package/dist/components/composed/timelines/order-timeline/order-timeline.d.ts.map +1 -1
- package/dist/components/composed/timelines/payment-timeline/payment-timeline.d.ts +1 -1
- package/dist/components/composed/timelines/payment-timeline/payment-timeline.d.ts.map +1 -1
- package/dist/components/composed/timelines/shared/timeline.d.ts +1 -1
- package/dist/components/composed/timelines/shared/timeline.d.ts.map +1 -1
- package/dist/components/composed/timelines/steps-card/steps-card.d.ts +2 -2
- package/dist/components/composed/timelines/steps-card/steps-card.d.ts.map +1 -1
- package/dist/components/features/activities/activities-feed.d.ts +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 +287 -302
- package/dist/components/features/activities/index.js.map +1 -1
- package/dist/components/features/activities/partials/activities-feed-card.d.ts +1 -1
- package/dist/components/features/activities/partials/activities-feed-card.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-actions-menu.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-actions-menu.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-changes.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-changes.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-date-label.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-date-label.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-empty-state.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-empty-state.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-headline.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-headline.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-marker.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-marker.d.ts.map +1 -1
- package/dist/components/features/activities/partials/activity-resource-tag.d.ts +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 +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 +3 -2
- 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 +17 -15
- package/dist/components/features/ai-chat/index.js.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +3 -2
- package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts.map +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts.map +1 -1
- package/dist/components/features/card/booking-calendar-event-card.d.ts +1 -1
- package/dist/components/features/card/booking-calendar-event-card.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 +6 -5
- 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 +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.d.ts +1 -1
- package/dist/components/features/comments/comments.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 +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 +2 -2
- package/dist/components/features/filters/facets/async-select-facet.d.ts.map +1 -1
- package/dist/components/features/filters/facets/date-facet.d.ts +1 -1
- package/dist/components/features/filters/facets/date-facet.d.ts.map +1 -1
- package/dist/components/features/filters/facets/range-facet.d.ts +1 -1
- package/dist/components/features/filters/facets/range-facet.d.ts.map +1 -1
- package/dist/components/features/filters/facets/search-facet.d.ts +1 -1
- package/dist/components/features/filters/facets/search-facet.d.ts.map +1 -1
- package/dist/components/features/filters/facets/select-facet.d.ts +1 -1
- package/dist/components/features/filters/facets/select-facet.d.ts.map +1 -1
- package/dist/components/features/filters/facets/tags-facet.d.ts +1 -1
- package/dist/components/features/filters/facets/tags-facet.d.ts.map +1 -1
- package/dist/components/features/filters/filter-context.d.ts +1 -1
- package/dist/components/features/filters/filter-context.d.ts.map +1 -1
- package/dist/components/features/filters/filter-layout.d.ts +1 -1
- package/dist/components/features/filters/filter-layout.d.ts.map +1 -1
- package/dist/components/features/filters/filters.strings.d.ts +1 -0
- package/dist/components/features/filters/filters.strings.d.ts.map +1 -1
- package/dist/components/features/filters/filters.types.d.ts +8 -8
- 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 +622 -592
- package/dist/components/features/filters/index.js.map +1 -1
- package/dist/components/features/filters/partials/active-filter-item.d.ts +2 -1
- package/dist/components/features/filters/partials/active-filter-item.d.ts.map +1 -1
- package/dist/components/features/filters/partials/async-filter-content.d.ts +2 -2
- package/dist/components/features/filters/partials/async-filter-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/date-filter-content.d.ts +1 -1
- package/dist/components/features/filters/partials/date-filter-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-error-boundary.d.ts +1 -1
- package/dist/components/features/filters/partials/filter-error-boundary.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-list-content.d.ts +1 -1
- package/dist/components/features/filters/partials/filter-list-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-list-item.d.ts +1 -1
- package/dist/components/features/filters/partials/filter-list-item.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-operator-select.d.ts +2 -1
- package/dist/components/features/filters/partials/filter-operator-select.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-pill.d.ts +1 -1
- package/dist/components/features/filters/partials/filter-pill.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
- package/dist/components/features/filters/partials/filter-popover-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-tabs.d.ts +1 -1
- package/dist/components/features/filters/partials/filter-tabs.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filter-value-display.d.ts +1 -1
- package/dist/components/features/filters/partials/filter-value-display.d.ts.map +1 -1
- package/dist/components/features/filters/partials/filters-button.d.ts +1 -1
- package/dist/components/features/filters/partials/filters-button.d.ts.map +1 -1
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
- package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/search-filters-list.d.ts +1 -1
- package/dist/components/features/filters/partials/search-filters-list.d.ts.map +1 -1
- package/dist/components/features/filters/partials/tags-filter-content.d.ts +1 -1
- package/dist/components/features/filters/partials/tags-filter-content.d.ts.map +1 -1
- package/dist/components/features/global-search/global-search.d.ts +24 -2
- 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-empty-state.d.ts +1 -1
- package/dist/components/features/global-search/partials/global-search-empty-state.d.ts.map +1 -1
- package/dist/components/features/global-search/partials/global-search-footer.d.ts +1 -1
- package/dist/components/features/global-search/partials/global-search-footer.d.ts.map +1 -1
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +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 +2 -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 +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 +7 -7
- 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 +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 +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/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/alert-dialog.d.ts.map +1 -1
- 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 +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/form-rich-text-editor.d.ts +1 -1
- package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts.map +1 -1
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.cjs.map +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/rich-text-editor/index.js.map +1 -1
- package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts +2 -2
- package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts.map +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/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts.map +1 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +4 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.strings.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 +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/features/sync/index.js.map +1 -1
- package/dist/components/features/sync/sync-range-dialog-form.d.ts +1 -1
- package/dist/components/layout/app-shell/app-shell.types.d.ts +65 -0
- package/dist/components/layout/app-shell/app-shell.types.d.ts.map +1 -0
- package/dist/components/layout/app-shell/index.cjs +1 -0
- package/dist/components/layout/app-shell/index.d.ts +3 -0
- package/dist/components/layout/app-shell/index.d.ts.map +1 -0
- package/dist/components/layout/app-shell/index.js +2 -0
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +3 -0
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts.map +1 -0
- 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/containers/content-container.d.ts +1 -1
- package/dist/components/layout/containers/content-container.d.ts.map +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +2 -2
- package/dist/components/layout/containers/section.d.ts +1 -1
- package/dist/components/layout/containers/section.d.ts.map +1 -1
- package/dist/components/layout/header/header.d.ts +1 -1
- package/dist/components/layout/header/header.d.ts.map +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +3 -1
- package/dist/components/layout/header/partials/header-breadcrumbs.d.ts.map +1 -1
- package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
- package/dist/components/layout/header/partials/header-notifications.d.ts.map +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
- package/dist/components/layout/header/partials/header-user-menu.d.ts +1 -1
- package/dist/components/layout/header/partials/header-user-menu.d.ts.map +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.d.ts +3 -0
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +10 -7
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/page/page-content.d.ts +1 -1
- package/dist/components/layout/page/page-content.d.ts.map +1 -1
- package/dist/components/layout/page/page.d.ts +1 -1
- package/dist/components/layout/page/page.d.ts.map +1 -1
- package/dist/components/layout/page/partials/page-actions.d.ts +1 -1
- package/dist/components/layout/page/partials/page-actions.d.ts.map +1 -1
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/page/partials/page-header.d.ts.map +1 -1
- package/dist/components/layout/sidebar/app-sidebar.d.ts +6 -1
- package/dist/components/layout/sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/components/sidebar-logo.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-logo.d.ts.map +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts.map +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts.map +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +3 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar.context.d.ts.map +1 -1
- package/dist/components/layout/sidebar/sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +2 -2
- package/dist/components/layout/sidebar/sidebar.utils.d.ts.map +1 -1
- 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/label.d.ts +1 -1
- package/dist/components/typography/label.d.ts.map +1 -1
- package/dist/components/typography/text-link.d.ts +1 -1
- 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/typography/typography.d.ts +3 -3
- package/dist/components/typography/typography.d.ts.map +1 -1
- package/dist/components/ui/accordion.d.ts +4 -4
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/alert.d.ts +4 -4
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/avatar.d.ts +6 -6
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.d.ts +7 -7
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/button-group.d.ts +2 -2
- package/dist/components/ui/button-group.d.ts.map +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/calendar.d.ts +2 -2
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/card.d.ts +7 -7
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/chart.d.ts +4 -4
- package/dist/components/ui/chart.d.ts.map +1 -1
- package/dist/components/ui/checkbox.d.ts +1 -1
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/collapsible.d.ts +4 -3
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/combobox.d.ts +20 -20
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/command.d.ts +9 -9
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/context-menu.d.ts +15 -15
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/dialog.d.ts +10 -10
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +16 -16
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/empty.d.ts +6 -6
- package/dist/components/ui/empty.d.ts.map +1 -1
- package/dist/components/ui/hover-card.d.ts +3 -3
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/input-group.d.ts +7 -7
- package/dist/components/ui/input-group.d.ts.map +1 -1
- package/dist/components/ui/input.d.ts +1 -1
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/item.d.ts +9 -9
- package/dist/components/ui/item.d.ts.map +1 -1
- package/dist/components/ui/pagination.d.ts +7 -7
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/popover.d.ts +7 -7
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/progress.d.ts +5 -5
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/radio-group.d.ts +2 -2
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.d.ts +2 -2
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/select.d.ts +9 -9
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/separator.d.ts +1 -1
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/sheet.d.ts +8 -8
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sidebar.d.ts +19 -19
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/skeleton.d.ts +1 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/slider.d.ts +2 -1
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/sonner.d.ts +1 -1
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/spinner.d.ts +1 -1
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/switch.d.ts +1 -1
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/table.d.ts +8 -8
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +4 -4
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/textarea.d.ts +1 -1
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.d.ts +3 -2
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle.d.ts +1 -1
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/tooltip.d.ts +4 -4
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/strings.cjs +1 -1
- package/dist/lib/strings.cjs.map +1 -1
- package/dist/lib/strings.js.map +1 -1
- package/dist/lib/ui-provider/index.cjs +1 -1
- package/dist/lib/ui-provider/index.js +1 -1
- package/dist/lib/ui-provider/provider.d.ts +1 -1
- package/dist/lib/ui-provider/provider.d.ts.map +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/CSPContext-ImKusJJ_.js +1 -0
- package/dist/showcase/assets/CompositeItem-DleE4kTc.js +1 -0
- package/dist/showcase/assets/CompositeRoot-BbNkvtLz.js +1 -0
- package/dist/showcase/assets/Control.FullScreen-CwLQ1MMK.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/dist-CnonIdcR.js +1 -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/esm-CAF_uoYd.js +2 -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/fetchers-DHuMQ6PN.js +1 -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/generic-BH5YLC_H.js +1 -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/leaflet-src-S_KZeH2q.js +1 -0
- package/dist/showcase/assets/lib-DMGme4uo.js +1 -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/react-dom-Bz4cALsF.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/useControlled-Cpg8gDqb.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 +4 -3
- package/dist/style.css +2 -2
- package/package.json +67 -4
- package/scripts/audit-consumer.mjs +17 -6
- package/scripts/install-skill.mjs +5 -1
- package/src/App.css +9 -360
- package/dist/_shared/accordion-CztqyaIN.js +0 -130
- package/dist/_shared/accordion-CztqyaIN.js.map +0 -1
- package/dist/_shared/accordion-D5uTCLCB.cjs +0 -2
- package/dist/_shared/accordion-D5uTCLCB.cjs.map +0 -1
- package/dist/_shared/action-menu-Yrj6VzFS.js +0 -96
- package/dist/_shared/action-menu-Yrj6VzFS.js.map +0 -1
- package/dist/_shared/action-menu-eVP8GGlv.cjs +0 -2
- package/dist/_shared/action-menu-eVP8GGlv.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs +0 -3
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DyLn3JAs.js +0 -1068
- package/dist/_shared/ai-artifact-DyLn3JAs.js.map +0 -1
- package/dist/_shared/alert-BVw4Mq6H.js +0 -48
- package/dist/_shared/alert-BVw4Mq6H.js.map +0 -1
- package/dist/_shared/alert-DXSlR9ja.cjs +0 -2
- package/dist/_shared/alert-DXSlR9ja.cjs.map +0 -1
- package/dist/_shared/avatar-CpBz9pTv.js +0 -52
- package/dist/_shared/avatar-CpBz9pTv.js.map +0 -1
- package/dist/_shared/avatar-dg20YFFs.cjs +0 -2
- package/dist/_shared/avatar-dg20YFFs.cjs.map +0 -1
- package/dist/_shared/badge-BVCh_hfL.js +0 -108
- package/dist/_shared/badge-BVCh_hfL.js.map +0 -1
- package/dist/_shared/badge-C49SSz-6.cjs +0 -2
- package/dist/_shared/badge-C49SSz-6.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs +0 -2
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-Dc93fqqE.js +0 -111
- package/dist/_shared/breadcrumbs-Dc93fqqE.js.map +0 -1
- package/dist/_shared/button-2xglT7yf.cjs +0 -2
- package/dist/_shared/button-2xglT7yf.cjs.map +0 -1
- package/dist/_shared/button-ChCkwoOD.js +0 -176
- package/dist/_shared/button-ChCkwoOD.js.map +0 -1
- package/dist/_shared/button-D0nF99a9.cjs +0 -2
- package/dist/_shared/button-D0nF99a9.cjs.map +0 -1
- package/dist/_shared/button-DBR4QI9E.js +0 -46
- package/dist/_shared/button-DBR4QI9E.js.map +0 -1
- package/dist/_shared/buttons-Bcnt1md_.js +0 -143
- package/dist/_shared/buttons-Bcnt1md_.js.map +0 -1
- package/dist/_shared/buttons-km9xqXJv.cjs +0 -2
- package/dist/_shared/buttons-km9xqXJv.cjs.map +0 -1
- package/dist/_shared/card-radio-group-BGH93O5-.js +0 -158
- package/dist/_shared/card-radio-group-BGH93O5-.js.map +0 -1
- package/dist/_shared/card-radio-group-Vq741uhL.cjs +0 -2
- package/dist/_shared/card-radio-group-Vq741uhL.cjs.map +0 -1
- package/dist/_shared/chunk-D3uCBrYO.cjs +0 -1
- package/dist/_shared/combobox-BgXAxjU2.js +0 -746
- package/dist/_shared/combobox-BgXAxjU2.js.map +0 -1
- package/dist/_shared/combobox-DuIyh3xJ.cjs +0 -2
- package/dist/_shared/combobox-DuIyh3xJ.cjs.map +0 -1
- package/dist/_shared/command-BbiijN61.js +0 -39
- package/dist/_shared/command-BbiijN61.js.map +0 -1
- package/dist/_shared/command-D7zTvyBJ.cjs +0 -2
- package/dist/_shared/command-D7zTvyBJ.cjs.map +0 -1
- package/dist/_shared/command-DGNtTI-V.cjs +0 -2
- package/dist/_shared/command-DGNtTI-V.cjs.map +0 -1
- package/dist/_shared/command-jKbwFRtS.js +0 -123
- package/dist/_shared/command-jKbwFRtS.js.map +0 -1
- package/dist/_shared/comments-CNUsdwGW.cjs +0 -2
- package/dist/_shared/comments-CNUsdwGW.cjs.map +0 -1
- package/dist/_shared/comments-CvmS7zG3.js +0 -945
- package/dist/_shared/comments-CvmS7zG3.js.map +0 -1
- package/dist/_shared/containers-BFDv7cCV.cjs +0 -2
- package/dist/_shared/containers-BFDv7cCV.cjs.map +0 -1
- package/dist/_shared/containers-C1-A_2PT.js +0 -19
- package/dist/_shared/containers-C1-A_2PT.js.map +0 -1
- package/dist/_shared/content-container-CwqFnaI0.cjs +0 -2
- package/dist/_shared/content-container-CwqFnaI0.cjs.map +0 -1
- package/dist/_shared/content-container-D_3JGBSc.js +0 -33
- package/dist/_shared/content-container-D_3JGBSc.js.map +0 -1
- package/dist/_shared/copyable-CHhCGMfW.js +0 -38
- package/dist/_shared/copyable-CHhCGMfW.js.map +0 -1
- package/dist/_shared/copyable-ndaiocYq.cjs +0 -2
- package/dist/_shared/copyable-ndaiocYq.cjs.map +0 -1
- package/dist/_shared/date-picker-B8O_qbik.js +0 -1353
- package/dist/_shared/date-picker-B8O_qbik.js.map +0 -1
- package/dist/_shared/date-picker-BnOjyuKS.cjs +0 -2
- package/dist/_shared/date-picker-BnOjyuKS.cjs.map +0 -1
- package/dist/_shared/date-pickers-Cas9cPlj.js +0 -330
- package/dist/_shared/date-pickers-Cas9cPlj.js.map +0 -1
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs +0 -2
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs.map +0 -1
- package/dist/_shared/dialog-67GmkMLC.js +0 -101
- package/dist/_shared/dialog-67GmkMLC.js.map +0 -1
- package/dist/_shared/dialog-BF_4uAhE.cjs +0 -2
- package/dist/_shared/dialog-BF_4uAhE.cjs.map +0 -1
- package/dist/_shared/display-B9xVWboG.cjs +0 -8
- package/dist/_shared/display-B9xVWboG.cjs.map +0 -1
- package/dist/_shared/display-BM_GxDAo.js +0 -1237
- package/dist/_shared/display-BM_GxDAo.js.map +0 -1
- package/dist/_shared/dropdown-menu-4nxEBMnd.js +0 -147
- package/dist/_shared/dropdown-menu-4nxEBMnd.js.map +0 -1
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs +0 -2
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs.map +0 -1
- package/dist/_shared/form-field-BQlki-8s.js +0 -319
- package/dist/_shared/form-field-BQlki-8s.js.map +0 -1
- package/dist/_shared/form-field-DzpwVS99.cjs +0 -2
- package/dist/_shared/form-field-DzpwVS99.cjs.map +0 -1
- package/dist/_shared/form-sizing-CcbB-OHF.js +0 -21
- package/dist/_shared/form-sizing-CcbB-OHF.js.map +0 -1
- package/dist/_shared/form-sizing-Cw12UeI6.cjs +0 -2
- package/dist/_shared/form-sizing-Cw12UeI6.cjs.map +0 -1
- package/dist/_shared/format-B2AdSQVn.cjs +0 -2
- package/dist/_shared/format-B2AdSQVn.cjs.map +0 -1
- package/dist/_shared/format-CP65h1vK.js +0 -48
- package/dist/_shared/format-CP65h1vK.js.map +0 -1
- package/dist/_shared/forms-B8aaNG44.cjs +0 -2
- package/dist/_shared/forms-B8aaNG44.cjs.map +0 -1
- package/dist/_shared/forms-BusuTZZ2.js +0 -3374
- package/dist/_shared/forms-BusuTZZ2.js.map +0 -1
- package/dist/_shared/header-DWfOUjFL.cjs +0 -2
- package/dist/_shared/header-DWfOUjFL.cjs.map +0 -1
- package/dist/_shared/header-KpdoLtP9.js +0 -369
- package/dist/_shared/header-KpdoLtP9.js.map +0 -1
- package/dist/_shared/heading-BprqyzDs.js +0 -39
- package/dist/_shared/heading-BprqyzDs.js.map +0 -1
- package/dist/_shared/heading-mZc_jan1.cjs +0 -2
- package/dist/_shared/heading-mZc_jan1.cjs.map +0 -1
- package/dist/_shared/hooks-C-uWoRq5.cjs +0 -2
- package/dist/_shared/hooks-C-uWoRq5.cjs.map +0 -1
- package/dist/_shared/hooks-D5HJtvvP.js +0 -118
- package/dist/_shared/hooks-D5HJtvvP.js.map +0 -1
- package/dist/_shared/icon-badge-BBqDyAUz.cjs +0 -2
- package/dist/_shared/icon-badge-BBqDyAUz.cjs.map +0 -1
- package/dist/_shared/icon-badge-Bi63T-bj.js +0 -52
- package/dist/_shared/icon-badge-Bi63T-bj.js.map +0 -1
- package/dist/_shared/input-B2YXTHqz.cjs +0 -2
- package/dist/_shared/input-B2YXTHqz.cjs.map +0 -1
- package/dist/_shared/input-BJb10xb9.cjs +0 -2
- package/dist/_shared/input-BJb10xb9.cjs.map +0 -1
- package/dist/_shared/input-CZxP5Xgj.js +0 -17
- package/dist/_shared/input-CZxP5Xgj.js.map +0 -1
- package/dist/_shared/input-DQahu2sm.js +0 -182
- package/dist/_shared/input-DQahu2sm.js.map +0 -1
- package/dist/_shared/item-Cu5JbZyZ.js +0 -224
- package/dist/_shared/item-Cu5JbZyZ.js.map +0 -1
- package/dist/_shared/item-Cx_7QZ2o.cjs +0 -2
- package/dist/_shared/item-Cx_7QZ2o.cjs.map +0 -1
- package/dist/_shared/mentions-CS3rIhze.js +0 -493
- package/dist/_shared/mentions-CS3rIhze.js.map +0 -1
- package/dist/_shared/mentions-D7gnP3Nf.cjs +0 -2
- package/dist/_shared/mentions-D7gnP3Nf.cjs.map +0 -1
- package/dist/_shared/metadata-CRsVWE8Y.cjs +0 -2
- package/dist/_shared/metadata-CRsVWE8Y.cjs.map +0 -1
- package/dist/_shared/metadata-CfG0FdFZ.js +0 -236
- package/dist/_shared/metadata-CfG0FdFZ.js.map +0 -1
- package/dist/_shared/money-display-Bd0rkjc9.js +0 -198
- package/dist/_shared/money-display-Bd0rkjc9.js.map +0 -1
- package/dist/_shared/money-display-DSFft9Mi.cjs +0 -2
- package/dist/_shared/money-display-DSFft9Mi.cjs.map +0 -1
- package/dist/_shared/navigation-Do9k5Xh1.js +0 -420
- package/dist/_shared/navigation-Do9k5Xh1.js.map +0 -1
- package/dist/_shared/navigation-QAAD3HJd.cjs +0 -2
- package/dist/_shared/navigation-QAAD3HJd.cjs.map +0 -1
- package/dist/_shared/overlays-B8AH8fNv.js +0 -633
- package/dist/_shared/overlays-B8AH8fNv.js.map +0 -1
- package/dist/_shared/overlays-DOcoRy8k.cjs +0 -2
- package/dist/_shared/overlays-DOcoRy8k.cjs.map +0 -1
- package/dist/_shared/page-BPCeKX9X.js +0 -263
- package/dist/_shared/page-BPCeKX9X.js.map +0 -1
- package/dist/_shared/page-DMM32sxi.cjs +0 -2
- package/dist/_shared/page-DMM32sxi.cjs.map +0 -1
- package/dist/_shared/popover-B1f_EUQS.cjs +0 -2
- package/dist/_shared/popover-B1f_EUQS.cjs.map +0 -1
- package/dist/_shared/popover-CgRGcFk9.js +0 -83
- package/dist/_shared/popover-CgRGcFk9.js.map +0 -1
- package/dist/_shared/popover-menu-BEKIT3LR.cjs +0 -2
- package/dist/_shared/popover-menu-BEKIT3LR.cjs.map +0 -1
- package/dist/_shared/popover-menu-BHdHLEVL.js +0 -95
- package/dist/_shared/popover-menu-BHdHLEVL.js.map +0 -1
- package/dist/_shared/rich-text-editor-0uoIoYXU.js +0 -608
- package/dist/_shared/rich-text-editor-0uoIoYXU.js.map +0 -1
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs +0 -2
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs.map +0 -1
- package/dist/_shared/scroll-area-Bo17wtZD.cjs +0 -2
- package/dist/_shared/scroll-area-Bo17wtZD.cjs.map +0 -1
- package/dist/_shared/scroll-area-Cj-hmB5D.js +0 -41
- package/dist/_shared/scroll-area-Cj-hmB5D.js.map +0 -1
- package/dist/_shared/select-07RRiTWc.js +0 -85
- package/dist/_shared/select-07RRiTWc.js.map +0 -1
- package/dist/_shared/select-BfiU7a4n.cjs +0 -2
- package/dist/_shared/select-BfiU7a4n.cjs.map +0 -1
- package/dist/_shared/separator-CN9zAJfs.cjs +0 -2
- package/dist/_shared/separator-CN9zAJfs.cjs.map +0 -1
- package/dist/_shared/separator-DR0uUMKa.js +0 -16
- package/dist/_shared/separator-DR0uUMKa.js.map +0 -1
- package/dist/_shared/sheet-B5FoGJAZ.cjs +0 -2
- package/dist/_shared/sheet-B5FoGJAZ.cjs.map +0 -1
- package/dist/_shared/sheet-cUI8cypP.js +0 -100
- package/dist/_shared/sheet-cUI8cypP.js.map +0 -1
- package/dist/_shared/sidebar-Bq7yKLrG.cjs +0 -2
- package/dist/_shared/sidebar-Bq7yKLrG.cjs.map +0 -1
- package/dist/_shared/sidebar-Da20tCUc.cjs +0 -2
- package/dist/_shared/sidebar-Da20tCUc.cjs.map +0 -1
- package/dist/_shared/sidebar-Q6TYE8Ux.js +0 -371
- package/dist/_shared/sidebar-Q6TYE8Ux.js.map +0 -1
- package/dist/_shared/sidebar-WmnQ55YY.js +0 -537
- package/dist/_shared/sidebar-WmnQ55YY.js.map +0 -1
- package/dist/_shared/skeleton-B3HWEc6G.js +0 -14
- package/dist/_shared/skeleton-B3HWEc6G.js.map +0 -1
- package/dist/_shared/skeleton-Cz_l8-fc.cjs +0 -2
- package/dist/_shared/skeleton-Cz_l8-fc.cjs.map +0 -1
- package/dist/_shared/slot-BgnZtKR5.js +0 -18
- package/dist/_shared/slot-BgnZtKR5.js.map +0 -1
- package/dist/_shared/slot-Dac1ipUC.cjs +0 -2
- package/dist/_shared/slot-Dac1ipUC.cjs.map +0 -1
- package/dist/_shared/smart-card-Bm_VxYUG.cjs +0 -2
- package/dist/_shared/smart-card-Bm_VxYUG.cjs.map +0 -1
- package/dist/_shared/smart-card-MT6JjkoI.js +0 -360
- package/dist/_shared/smart-card-MT6JjkoI.js.map +0 -1
- package/dist/_shared/spinner-BQjxJ_Kx.js +0 -67
- package/dist/_shared/spinner-BQjxJ_Kx.js.map +0 -1
- package/dist/_shared/spinner-Dvaa6GUm.cjs +0 -2
- package/dist/_shared/spinner-Dvaa6GUm.cjs.map +0 -1
- package/dist/_shared/switch-C0yyhsXZ.js +0 -51
- package/dist/_shared/switch-C0yyhsXZ.js.map +0 -1
- package/dist/_shared/switch-DozkSQNn.cjs +0 -2
- package/dist/_shared/switch-DozkSQNn.cjs.map +0 -1
- package/dist/_shared/text-DBnY6fcL.cjs +0 -2
- package/dist/_shared/text-DBnY6fcL.cjs.map +0 -1
- package/dist/_shared/text-DIxMTECE.js +0 -74
- package/dist/_shared/text-DIxMTECE.js.map +0 -1
- package/dist/_shared/textarea-Cgl-FPwu.js +0 -119
- package/dist/_shared/textarea-Cgl-FPwu.js.map +0 -1
- package/dist/_shared/textarea-D8wC0XlZ.cjs +0 -2
- package/dist/_shared/textarea-D8wC0XlZ.cjs.map +0 -1
- package/dist/_shared/tooltip-Cws4BiPT.js +0 -49
- package/dist/_shared/tooltip-Cws4BiPT.js.map +0 -1
- package/dist/_shared/tooltip-DyUi-Tac.cjs +0 -2
- package/dist/_shared/tooltip-DyUi-Tac.cjs.map +0 -1
- package/dist/_shared/typography-BW7iZBx7.cjs +0 -2
- package/dist/_shared/typography-BW7iZBx7.cjs.map +0 -1
- package/dist/_shared/typography-a3hydyvI.js +0 -102
- package/dist/_shared/typography-a3hydyvI.js.map +0 -1
- package/dist/_shared/ui-provider-4qKSKMPd.js +0 -85
- package/dist/_shared/ui-provider-4qKSKMPd.js.map +0 -1
- package/dist/_shared/ui-provider-uiQgATj1.cjs +0 -2
- package/dist/_shared/ui-provider-uiQgATj1.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-CJ57G5Ub.js +0 -6
- package/dist/showcase/assets/CSPContext-BA7DfnCI.js +0 -1
- package/dist/showcase/assets/CompositeItem-PwzgE4va.js +0 -1
- package/dist/showcase/assets/CompositeRoot-Du4CMlK7.js +0 -1
- package/dist/showcase/assets/Control.FullScreen-B9vseC57.js +0 -1
- package/dist/showcase/assets/DialogTrigger-FkENgwo6.js +0 -1
- package/dist/showcase/assets/FormContext-ChygLayp.js +0 -1
- package/dist/showcase/assets/PreviewLayout-z6vpJJGt.js +0 -1
- package/dist/showcase/assets/RadioGroup-CcDmbxOw.js +0 -1
- package/dist/showcase/assets/Separator-Dk4eN76U.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-D_KAA5hZ.js +0 -1
- package/dist/showcase/assets/accordion-dQszzfmw.js +0 -172
- package/dist/showcase/assets/accordion-variants-Dp4wxic-.js +0 -1
- package/dist/showcase/assets/action-menu-CBi2Eiy0.js +0 -1
- package/dist/showcase/assets/activities-DoXsgP4G.js +0 -501
- package/dist/showcase/assets/activities-feed-card-xz5FtkOm.js +0 -1
- package/dist/showcase/assets/admin-CxklUqAG.js +0 -80
- package/dist/showcase/assets/ai-artifact-DkhUdEbM.js +0 -2
- package/dist/showcase/assets/ai-chat-B6PuqkEu.js +0 -568
- package/dist/showcase/assets/ai-elements-D_rpj_ds.js +0 -379
- package/dist/showcase/assets/ai-new-CUPrAbOK.js +0 -167
- package/dist/showcase/assets/ai-tool-call-CEr-dGVx.js +0 -1
- package/dist/showcase/assets/ai-zxF_msJF.js +0 -41
- package/dist/showcase/assets/alert-771BE3Ny.js +0 -59
- package/dist/showcase/assets/alert-CG42DAlX.js +0 -1
- package/dist/showcase/assets/api-key-list-D6jUN7Fq.js +0 -73
- package/dist/showcase/assets/arrow-down-CUoXUyN1.js +0 -1
- package/dist/showcase/assets/arrow-left-Cdq69X6h.js +0 -1
- package/dist/showcase/assets/arrow-right-i25q9L2H.js +0 -1
- package/dist/showcase/assets/arrow-up-pnezegnF.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CK3XnMah.js +0 -1
- package/dist/showcase/assets/avatar-LPmQqZQv.js +0 -1
- package/dist/showcase/assets/avatar-ZVFIQouy.js +0 -57
- package/dist/showcase/assets/badge-DK4bsgZC.js +0 -28
- package/dist/showcase/assets/badge-check-Cw5gkVcG.js +0 -1
- package/dist/showcase/assets/bell-BvJELoaV.js +0 -1
- package/dist/showcase/assets/bot-DRj6sdSR.js +0 -1
- package/dist/showcase/assets/box-BNND3M2m.js +0 -1
- package/dist/showcase/assets/brain-Cy3o-12l.js +0 -1
- package/dist/showcase/assets/brand-DvipEpFn.js +0 -40
- package/dist/showcase/assets/breadcrumb-B-LNuOyv.js +0 -1
- package/dist/showcase/assets/breadcrumb-Lzpc0yo4.js +0 -52
- package/dist/showcase/assets/breadcrumbs-DD6msKFZ.js +0 -1
- package/dist/showcase/assets/briefcase-LcAwoEmu.js +0 -1
- package/dist/showcase/assets/button-CuwcGzk1.js +0 -44
- package/dist/showcase/assets/button-group-CAImjDrl.js +0 -1
- package/dist/showcase/assets/buttons-DTjNHCMl.js +0 -259
- package/dist/showcase/assets/calendar-B1zW0q6I.js +0 -1
- package/dist/showcase/assets/calendar-Dlv72ytt.js +0 -1
- package/dist/showcase/assets/calendar-ls2A08Pn.js +0 -16
- package/dist/showcase/assets/card-BhtkM1BT.js +0 -1
- package/dist/showcase/assets/cards-BRpRXzGk.js +0 -328
- package/dist/showcase/assets/chart-column-BpQkEi1H.js +0 -1
- package/dist/showcase/assets/chevron-down-DyObdfSb.js +0 -1
- package/dist/showcase/assets/chevron-left-T7dHNxYM.js +0 -1
- package/dist/showcase/assets/chevron-right-D_EcqHpT.js +0 -1
- package/dist/showcase/assets/chevron-up-B38ivdGO.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-SdRARzoq.js +0 -1
- package/dist/showcase/assets/circle-BrCPAmDA.js +0 -1
- package/dist/showcase/assets/circle-alert-DdhzLPY_.js +0 -1
- package/dist/showcase/assets/circle-check-DlA6zidQ.js +0 -1
- package/dist/showcase/assets/circle-check-big-DFGJANQF.js +0 -1
- package/dist/showcase/assets/circle-dot-BKmnVUqM.js +0 -1
- package/dist/showcase/assets/circle-question-mark-BNREvgVC.js +0 -1
- package/dist/showcase/assets/circle-x-C45QjHEs.js +0 -1
- package/dist/showcase/assets/clock-D1nKQzQo.js +0 -1
- package/dist/showcase/assets/code-xml-B8N3GRSu.js +0 -1
- package/dist/showcase/assets/collapsible-4TfcWyNs.js +0 -1
- package/dist/showcase/assets/collapsible-CKbZtvTj.js +0 -27
- package/dist/showcase/assets/combobox-DTdGPaU0.js +0 -622
- package/dist/showcase/assets/command-DymTXwL1.js +0 -1
- package/dist/showcase/assets/command-ksVIHQKJ.js +0 -45
- package/dist/showcase/assets/comment-composer-DC9oS1Yy.js +0 -1
- package/dist/showcase/assets/comment-item-CAmKnJa7.js +0 -1
- package/dist/showcase/assets/comments-Benk-2mV.js +0 -349
- package/dist/showcase/assets/commerce-Qz-mq8mQ.js +0 -78
- package/dist/showcase/assets/commerce-extras-CQRc3Bna.js +0 -179
- package/dist/showcase/assets/composite-DBDXLPyz.js +0 -1
- package/dist/showcase/assets/contact-card-DkL2nI3r.js +0 -65
- package/dist/showcase/assets/content-container-mRm6oJEa.js +0 -1
- package/dist/showcase/assets/copyable-DmLlmwzy.js +0 -96
- package/dist/showcase/assets/course-card-CJJoeZj9.js +0 -113
- package/dist/showcase/assets/cpu-BXJnF2Xy.js +0 -1
- package/dist/showcase/assets/credit-card-BQK3KKb2.js +0 -1
- package/dist/showcase/assets/currency-DBPUh8ee.js +0 -149
- package/dist/showcase/assets/dark-surfaces-LpPuIeYy.js +0 -90
- package/dist/showcase/assets/database-BZerpzGE.js +0 -1
- package/dist/showcase/assets/date-block-iiHUpbNX.js +0 -1
- package/dist/showcase/assets/date-picker-BQeBGL7T.js +0 -1
- package/dist/showcase/assets/date-pickers-CKcUEMMF.js +0 -110
- package/dist/showcase/assets/dense-info-DATmxRU8.js +0 -106
- package/dist/showcase/assets/dialog-Bqu5KDYH.js +0 -1
- package/dist/showcase/assets/display-Bj7uPXD4.js +0 -392
- package/dist/showcase/assets/dist-QK7JxeYv.js +0 -1
- package/dist/showcase/assets/dollar-sign-DFZs6vfz.js +0 -1
- package/dist/showcase/assets/download-5oGw_WbW.js +0 -1
- package/dist/showcase/assets/dropdown-menu-1CJgYn0S.js +0 -1
- package/dist/showcase/assets/dropzone-Co1uhsDn.js +0 -1
- package/dist/showcase/assets/ellipsis-cKRcvuyL.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-B1RErEkj.js +0 -1
- package/dist/showcase/assets/empty-Y2-4nCBr.js +0 -1
- package/dist/showcase/assets/empty-item-USa6xcUv.js +0 -49
- package/dist/showcase/assets/empty-state-DfhZ9AT5.js +0 -188
- package/dist/showcase/assets/enhanced-activities-DmAPVUSu.js +0 -359
- package/dist/showcase/assets/esm-BeGQ_ZTM.js +0 -2
- package/dist/showcase/assets/event-calendar-D-jGrrZS.js +0 -138
- package/dist/showcase/assets/event-log-tA_i4eR9.js +0 -326
- package/dist/showcase/assets/example-6phCHGsN.js +0 -1
- package/dist/showcase/assets/external-link-BuVHkCy0.js +0 -1
- package/dist/showcase/assets/eye-DC5HfGm6.js +0 -1
- package/dist/showcase/assets/feature-announcement-DwvxLytd.js +0 -34
- package/dist/showcase/assets/fetchers-SLCIqgnM.js +0 -1
- package/dist/showcase/assets/file-D-xM4vLy.js +0 -1
- package/dist/showcase/assets/file-text-tmG5vNbr.js +0 -1
- package/dist/showcase/assets/filters-CrGRXmq6.js +0 -78
- package/dist/showcase/assets/flag-CWrEtkY5.js +0 -1
- package/dist/showcase/assets/folder-open-Br-x1pjP.js +0 -1
- package/dist/showcase/assets/form-sizing-Bb5hiM45.js +0 -1
- package/dist/showcase/assets/format-D_ETCyg4.js +0 -1
- package/dist/showcase/assets/format-metric-value-cyOYS377.js +0 -1
- package/dist/showcase/assets/forms-B_MkQ3rm.js +0 -790
- package/dist/showcase/assets/generic-CdmsyXV3.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-CZnCbCFP.js +0 -1
- package/dist/showcase/assets/gift-NkuklfU2.js +0 -1
- package/dist/showcase/assets/giftcard-cards-BAvevZ0i.js +0 -85
- package/dist/showcase/assets/git-branch-B_CBqPeO.js +0 -1
- package/dist/showcase/assets/global-search-D9teAbPe.js +0 -90
- package/dist/showcase/assets/globe-gzw45GU2.js +0 -1
- package/dist/showcase/assets/gradient-card-Xk2r7R5H.js +0 -58
- package/dist/showcase/assets/header-notifications-_aZCpE5A.js +0 -1
- package/dist/showcase/assets/heart-CEMKbRaZ.js +0 -1
- package/dist/showcase/assets/house-BlGXAcMH.js +0 -1
- package/dist/showcase/assets/icon-badge-z6N9reH_.js +0 -1
- package/dist/showcase/assets/image-B8mzmVBr.js +0 -1
- package/dist/showcase/assets/inbox-qdSnP4UV.js +0 -1
- package/dist/showcase/assets/index-B4ubXfly.js +0 -10
- package/dist/showcase/assets/index-Cu3Ssz5r.css +0 -2
- package/dist/showcase/assets/inertValue-D5Q8cLku.js +0 -1
- package/dist/showcase/assets/info-DBvvNjc_.js +0 -1
- package/dist/showcase/assets/inline-stat-Bm1zVT8D.js +0 -1
- package/dist/showcase/assets/input-CBQR0aeX.js +0 -1
- package/dist/showcase/assets/input-OrUzpI55.js +0 -1
- package/dist/showcase/assets/input-group-DhqOen2N.js +0 -47
- package/dist/showcase/assets/input-group-l8xa5nUq.js +0 -1
- package/dist/showcase/assets/inputs-DbiJ0qy2.js +0 -49
- package/dist/showcase/assets/invoice-header-C6youIbL.js +0 -36
- package/dist/showcase/assets/invoice-items-g6dgryF-.js +0 -36
- package/dist/showcase/assets/invoice-mini-0iWhufpt.js +0 -14
- package/dist/showcase/assets/invoice-table-Bvdh3rRq.js +0 -30
- package/dist/showcase/assets/isSameDay-BpZEtJe8.js +0 -1
- package/dist/showcase/assets/isToday-F0CS28oK.js +0 -1
- package/dist/showcase/assets/italic-CJOEwjdc.js +0 -1
- package/dist/showcase/assets/item-BiMm1PPB.js +0 -1
- package/dist/showcase/assets/item-CN0cwdj_.js +0 -1
- package/dist/showcase/assets/item-DNqEUYLT.js +0 -117
- package/dist/showcase/assets/kanban-DxePEUiQ.js +0 -175
- package/dist/showcase/assets/label-Dx4WO-fg.js +0 -1
- package/dist/showcase/assets/layout-containers-DDl8rG8S.js +0 -96
- package/dist/showcase/assets/layout-header-Bu6IcDWu.js +0 -170
- package/dist/showcase/assets/layout-page-D-88Qnoy.js +0 -122
- package/dist/showcase/assets/layout-sidebar-Ctft10pk.js +0 -224
- package/dist/showcase/assets/layout-users-DtbZduBG.js +0 -104
- package/dist/showcase/assets/leaflet-src-9EZQ14iG.js +0 -1
- package/dist/showcase/assets/lib-D9BoOYUd.js +0 -1
- package/dist/showcase/assets/lock-CHurDI0n.js +0 -1
- package/dist/showcase/assets/mail-DZ1o1RLW.js +0 -1
- package/dist/showcase/assets/map-C8xiyT9X.js +0 -124
- package/dist/showcase/assets/map-pin-CAKaoYod.js +0 -1
- package/dist/showcase/assets/menus-C6mnp636.js +0 -89
- package/dist/showcase/assets/message-square-Zo5J_zU1.js +0 -1
- package/dist/showcase/assets/metadata-list-W83-UMhc.js +0 -278
- package/dist/showcase/assets/metric-BSvxidIX.js +0 -1
- package/dist/showcase/assets/metric-grid-Dtqx_3Lg.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-mtvcJ_M9.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-DQbyss7i.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-CEBu5Uw0.js +0 -77
- package/dist/showcase/assets/metrics-comparison-Bs-R6v4y.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-BKHWH8sM.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-BxVn0Y2p.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-DtACYEds.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-BkwUGOUR.js +0 -42
- package/dist/showcase/assets/metrics-overview-BAtrlzsI.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-iCRCNyHY.js +0 -54
- package/dist/showcase/assets/minus-C6eBW-2t.js +0 -1
- package/dist/showcase/assets/money-display-DjGRJ16l.js +0 -1
- package/dist/showcase/assets/month-year-picker-DTDebPqf.js +0 -1
- package/dist/showcase/assets/navigation-BrG8Chig.js +0 -86
- package/dist/showcase/assets/navigation-CfXQJbyM.js +0 -230
- package/dist/showcase/assets/navigation-extras-D_gzLlZ5.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-1EerUwAo.js +0 -119
- package/dist/showcase/assets/overlays-2AB9-S1Z.js +0 -88
- package/dist/showcase/assets/overlays-CYt9o3Xq.js +0 -393
- package/dist/showcase/assets/package-BJMP-Fcr.js +0 -1
- package/dist/showcase/assets/page-action-button-BZxJ0X1j.js +0 -1
- package/dist/showcase/assets/page-header-B_rqHJhe.js +0 -1
- package/dist/showcase/assets/pagination-BHiQvvka.js +0 -1
- package/dist/showcase/assets/pagination-Dq0GruQd.js +0 -42
- package/dist/showcase/assets/paperclip-BMYKrUQo.js +0 -1
- package/dist/showcase/assets/pencil-BJ3VS_FO.js +0 -1
- package/dist/showcase/assets/phone-CsRIyvep.js +0 -1
- package/dist/showcase/assets/plus-D2JuXYLg.js +0 -1
- package/dist/showcase/assets/popover-DNT9755r.js +0 -1
- package/dist/showcase/assets/popover-KvGgcPNg.js +0 -1
- package/dist/showcase/assets/popover-menu-CJx30R65.js +0 -1
- package/dist/showcase/assets/progress-B7WuXcJR.js +0 -1
- package/dist/showcase/assets/progress-CweCSAUv.js +0 -18
- package/dist/showcase/assets/props-table-uDY4eIzt.js +0 -1
- package/dist/showcase/assets/props.generated-BqPfiNI-.json +0 -32423
- package/dist/showcase/assets/quote-DAyyfzQd.js +0 -1
- package/dist/showcase/assets/receipt-C0mMZGbF.js +0 -1
- package/dist/showcase/assets/refresh-cw-X06JbXb-.js +0 -1
- package/dist/showcase/assets/resolveAriaLabelledBy-DmY5COAB.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-Bks7UDko.js +0 -1
- package/dist/showcase/assets/rich-text-editor-QJsb-qIe.js +0 -124
- package/dist/showcase/assets/rich-text-editor-h07VBNI9.js +0 -141
- package/dist/showcase/assets/rotate-ccw-D84bdX_x.js +0 -1
- package/dist/showcase/assets/scroll-area-0rT06pXZ.js +0 -1
- package/dist/showcase/assets/scroll-area-YXwdzGpN.js +0 -32
- package/dist/showcase/assets/select-BoWQDtUf.js +0 -1
- package/dist/showcase/assets/send-DJsk3cr1.js +0 -1
- package/dist/showcase/assets/separator-CLSnRcJa.js +0 -28
- package/dist/showcase/assets/separator-DWv-twD-.js +0 -1
- package/dist/showcase/assets/settings-Cb2MsAmN.js +0 -1
- package/dist/showcase/assets/sheet-Dn1-MYus.js +0 -1
- package/dist/showcase/assets/shield-DwLjF5ch.js +0 -1
- package/dist/showcase/assets/shield-alert-D8i6gzMK.js +0 -1
- package/dist/showcase/assets/shield-check-D5YRSBIz.js +0 -1
- package/dist/showcase/assets/shopping-bag-BqlAP4vn.js +0 -1
- package/dist/showcase/assets/sidebar.context-BAp_pBEB.js +0 -1
- package/dist/showcase/assets/skeleton-CeNPp4hr.js +0 -1
- package/dist/showcase/assets/skeleton-QPsnM_NR.js +0 -29
- package/dist/showcase/assets/smart-card-BisUbLPt.js +0 -1
- package/dist/showcase/assets/sonner-B7GzbBK2.js +0 -22
- package/dist/showcase/assets/sortable.esm-BDcEOHT7.js +0 -5
- package/dist/showcase/assets/sparkles-CF9P5Tqh.js +0 -1
- package/dist/showcase/assets/spinner-BeamEyJd.js +0 -49
- package/dist/showcase/assets/spinner-DoYBfalR.js +0 -1
- package/dist/showcase/assets/spinner-UsLsOYzn.js +0 -30
- package/dist/showcase/assets/square-pen-BGTVdnt1.js +0 -1
- package/dist/showcase/assets/stacked-avatars-BWfVX1Ov.js +0 -1
- package/dist/showcase/assets/star-NsPNO9gR.js +0 -1
- package/dist/showcase/assets/startOfDay-zJBpxLuW.js +0 -1
- package/dist/showcase/assets/styles-DA7a7hVy.js +0 -1
- package/dist/showcase/assets/switch-C62S4U2o.js +0 -1
- package/dist/showcase/assets/switch-CYQcinJZ.js +0 -1
- package/dist/showcase/assets/table-w4IABkpa.js +0 -1
- package/dist/showcase/assets/table-xgB63UrY.js +0 -390
- package/dist/showcase/assets/tabs-BFTEaTXj.js +0 -19
- package/dist/showcase/assets/tabs-oMJn9Ujq.js +0 -1
- package/dist/showcase/assets/text-button-BgcutPuu.js +0 -1
- package/dist/showcase/assets/text-link-CS9thOWL.js +0 -1
- package/dist/showcase/assets/textarea-BOBx4EM6.js +0 -1
- package/dist/showcase/assets/textarea-CTzYZZqa.js +0 -1
- package/dist/showcase/assets/timelines-CK07mEBK.js +0 -186
- package/dist/showcase/assets/toggle-group-CSPdPT6G.js +0 -1
- package/dist/showcase/assets/toggles-DDSdl-gA.js +0 -71
- package/dist/showcase/assets/toggles-group-Y2BdKEFB.js +0 -32
- package/dist/showcase/assets/trash-2-C-FAptQP.js +0 -1
- package/dist/showcase/assets/trending-up-BmLhdF_w.js +0 -1
- package/dist/showcase/assets/truck-pZdUS_as.js +0 -1
- package/dist/showcase/assets/typography-CnBH2z7f.js +0 -214
- package/dist/showcase/assets/ui-badge-Cl6INRO5.js +0 -28
- package/dist/showcase/assets/ui-card-B5P-thNu.js +0 -30
- package/dist/showcase/assets/ui-table-B32RILKk.js +0 -42
- package/dist/showcase/assets/upload-tray-mu6bR2ZE.js +0 -138
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CzDaXxmM.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-B0DZvDFu.js +0 -1
- package/dist/showcase/assets/useCompositeItem-BVIVLT9X.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-JEMeTFPx.js +0 -1
- package/dist/showcase/assets/useControlled-ZjqBfPCn.js +0 -1
- package/dist/showcase/assets/useLabelableId-D8CZq8Bm.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CopGCf3q.js +0 -1
- package/dist/showcase/assets/useRender-zuKv6JQF.js +0 -1
- package/dist/showcase/assets/useRole-08KeyiD3.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-DEuz5CGe.js +0 -1
- package/dist/showcase/assets/useValueChanged-BxFi_qyj.js +0 -1
- package/dist/showcase/assets/user-Bgc2t2_e.js +0 -1
- package/dist/showcase/assets/user-plus-F_TfagnP.js +0 -1
- package/dist/showcase/assets/users-B7G4yTCR.js +0 -1
- package/dist/showcase/assets/vendor-profile-BTQmsKM6.js +0 -37
- package/dist/showcase/assets/wrench-BdzICmjR.js +0 -1
- package/dist/showcase/assets/x-B156Wr-5.js +0 -1
- package/dist/showcase/assets/zap-B3iByjNV.js +0 -1
- /package/dist/showcase/assets/{analytics.strings-BcotPUad.js → analytics.strings-B9262Jmq.js} +0 -0
- /package/dist/showcase/assets/{chunk-CilyBKbf.js → chunk-QTnfLwEv.js} +0 -0
- /package/dist/showcase/assets/{customers-BETQwFRp.js → customers-DvBxRjHv.js} +0 -0
- /package/dist/showcase/assets/{format-DoQ4Wqkq.js → format-C_LjuBUs.js} +0 -0
- /package/dist/showcase/assets/{isElementDisabled-BLmk_uhf.js → isElementDisabled-KSuuBj8D.js} +0 -0
- /package/dist/showcase/assets/{leaflet.draw-CwFqqsDc.js → leaflet.draw-lpeKTWFs.js} +0 -0
- /package/dist/showcase/assets/{orders-DNn7r9k_.js → orders-BFwWtubb.js} +0 -0
- /package/dist/showcase/assets/{valueToPercent-CDF3aNnc.js → valueToPercent-B5BHWU68.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-C4n0uuxl.js","names":[],"sources":["../../src/components/base/display/notification-banner.tsx","../../src/components/base/display/placeholder-pattern.tsx","../../src/components/base/display/show-if.tsx","../../src/components/base/display/throttle-alert.tsx","../../src/components/base/display/visually-hidden.tsx","../../src/components/base/display/stacked-avatars.tsx","../../src/components/base/display/date-block.tsx","../../src/components/ui/collapsible.tsx","../../src/components/base/display/money-input.tsx","../../src/components/base/display/boolean-indicator.tsx","../../src/components/ui/progress.tsx","../../src/components/base/display/qr-code.tsx","../../src/components/ui/empty.tsx","../../src/components/base/display/empty-state/empty-state.strings.ts","../../src/components/base/display/empty-state/empty-state.tsx","../../src/components/base/display/empty-state/partials/illustrations/document-stack.tsx","../../src/components/base/display/empty-state/partials/illustrations/inbox-clean.tsx","../../src/components/base/display/empty-state/partials/illustrations/search-glass.tsx","../../src/components/base/display/empty-state/partials/illustrations/stacked-cards.tsx","../../src/components/base/display/empty-state/partials/illustrations/users-circle.tsx","../../src/components/base/display/fields/email-display.tsx","../../src/components/base/display/fields/phone-display.tsx","../../src/components/base/display/fields/url-display.tsx","../../src/components/base/display/inline-stat/inline-stat.tsx","../../src/components/base/display/numeric-value/numeric-value.tsx","../../src/components/base/display/user-cell/user-cell.tsx","../../src/components/base/display/section-header/section-header.tsx"],"sourcesContent":["/**\n * NotificationBanner — full-width inline notification with type-specific\n * styling (info / success / error / warning). The icon sits in a soft circle\n * for clear hierarchy, the title (when present) reads at full strength, and\n * the message uses the muted secondary tone so the type colour highlights\n * without overwhelming. Optional dismiss button on the trailing edge.\n *\n * Use inside page bodies for non-blocking notices; reach for `Alert` when\n * the affordance is structural (e.g. inside a form), and Toast for transient\n * feedback.\n */\nimport { AlertTriangle, BadgeCheck, CircleAlert, Info, X } from 'lucide-react';\nimport React from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { sanitizeHtml } from '@/lib/sanitize-html';\nimport { cn } from '@/lib/utils';\n\nexport type NotificationType = 'info' | 'success' | 'error' | 'warning';\n\nexport interface NotificationBannerProps {\n\ttype?: NotificationType;\n\tdismissible?: boolean;\n\ttitle?: string;\n\tmessage?: string;\n\tonDismiss?: () => void;\n\tchildren?: React.ReactNode;\n\tasHTML?: boolean;\n\tdismissAriaLabel?: string;\n\tclassName?: string;\n}\n\ninterface BannerTone {\n\twrapper: string;\n\ticonRing: string;\n\ticonColor: string;\n\ttitle: string;\n\tclose: string;\n}\n\nconst TONES: Record<NotificationType, BannerTone> = {\n\tinfo: {\n\t\twrapper: 'border-info/30 bg-info/5',\n\t\ticonRing: 'bg-info/15',\n\t\ticonColor: 'text-info',\n\t\ttitle: 'text-info',\n\t\tclose: 'text-info/70 hover:text-info hover:bg-info/10',\n\t},\n\tsuccess: {\n\t\twrapper: 'border-success/30 bg-success/5',\n\t\ticonRing: 'bg-success/15',\n\t\ticonColor: 'text-success',\n\t\ttitle: 'text-success',\n\t\tclose: 'text-success/70 hover:text-success hover:bg-success/10',\n\t},\n\terror: {\n\t\twrapper: 'border-destructive/30 bg-destructive/5',\n\t\ticonRing: 'bg-destructive/15',\n\t\ticonColor: 'text-destructive',\n\t\ttitle: 'text-destructive',\n\t\tclose: 'text-destructive/70 hover:text-destructive hover:bg-destructive/10',\n\t},\n\twarning: {\n\t\twrapper: 'border-warning/40 bg-warning/10',\n\t\ticonRing: 'bg-warning/20',\n\t\ticonColor: 'text-warning-foreground',\n\t\ttitle: 'text-warning-foreground',\n\t\tclose: 'text-warning-foreground/70 hover:text-warning-foreground hover:bg-warning/20',\n\t},\n};\n\nconst ICONS: Record<NotificationType, React.ElementType> = {\n\tinfo: Info,\n\tsuccess: BadgeCheck,\n\terror: CircleAlert,\n\twarning: AlertTriangle,\n};\n\nfunction SanitizedSpan({ html }: { html: string }) {\n\treturn React.createElement('span', { dangerouslySetInnerHTML: { __html: html } });\n}\n\nexport function NotificationBanner({\n\ttype = 'info',\n\tdismissible = false,\n\ttitle,\n\tmessage,\n\tonDismiss,\n\tchildren,\n\tasHTML = false,\n\tdismissAriaLabel = 'Dismiss notification',\n\tclassName,\n}: NotificationBannerProps) {\n\tconst tone = TONES[type];\n\tconst IconComponent = ICONS[type];\n\tconst sanitizedHtml = React.useMemo(\n\t\t() => sanitizeHtml(message ?? (typeof children === 'string' ? children : '')),\n\t\t[children, message],\n\t);\n\tconst hasTitle = !!title;\n\n\treturn (\n\t\t<div\n\t\t\trole=\"status\"\n\t\t\tclassName={cn('notification-banner--component', \n\t\t\t\t'flex w-full items-start gap-3 rounded-lg border px-4 py-3',\n\t\t\t\t'animate-in fade-in-0 slide-in-from-bottom-1 duration-200',\n\t\t\t\ttone.wrapper,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\ttone.iconRing,\n\t\t\t\t\ttone.iconColor,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<IconComponent className=\"size-4\" />\n\t\t\t</span>\n\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t{hasTitle && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"leading-snug text-foreground\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"div\"\n\t\t\t\t\ttype={hasTitle ? 'secondary' : 'main'}\n\t\t\t\t\tclassName={cn('break-words leading-snug', hasTitle && 'mt-0.5')}\n\t\t\t\t>\n\t\t\t\t\t{!!asHTML && <SanitizedSpan html={sanitizedHtml} />}\n\t\t\t\t\t{!asHTML && (message ?? children)}\n\t\t\t\t</Text>\n\t\t\t</div>\n\n\t\t\t{!!dismissible && (\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\taria-label={dismissAriaLabel}\n\t\t\t\t\tonClick={onDismiss}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'-mr-1 inline-flex size-7 shrink-0 items-center justify-center rounded-md transition-colors',\n\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\ttone.close,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<X className=\"size-4\" />\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nNotificationBanner.displayName = 'NotificationBanner';\n\nexport default NotificationBanner;\n","/**\n * PlaceholderPattern — diagonal-stripe SVG fill suitable as a skeleton or\n * empty-region indicator. Uses a unique pattern id per instance so multiple\n * copies on the same page don't collide.\n */\nimport { useId } from 'react';\n\nimport { cn } from '@/lib/utils';\nexport interface PlaceholderPatternProps {\n\tclassName?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n\tconst patternId = useId();\n\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('placeholder-pattern--component', className)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\tx=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"10\"\n\t\t\t\t\theight=\"10\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"0.75\"\n\t\t\t\t\t\tstrokeLinecap=\"square\"\n\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t/>\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect\n\t\t\t\tstroke=\"none\"\n\t\t\t\tfill={`url(#${patternId})`}\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"100%\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nPlaceholderPattern.displayName = 'PlaceholderPattern';\n\n","/**\n * ShowIf — conditional render gate. Returns `children` when `when` is truthy,\n * otherwise the optional `fallback`. Useful for inline presentation logic\n * where a ternary would be noisier than a self-explanatory tag.\n */\nimport type { ReactNode } from 'react';\n\nexport type ShowIfProps = { when: boolean; children: ReactNode; fallback?: ReactNode };\n\nexport function ShowIf({ when, children, fallback = null }: ShowIfProps) {\n\tif (when) return children;\n\tif (fallback) return fallback;\n\treturn null;\n}\n\nShowIf.displayName = 'ShowIf';\n\nexport default ShowIf;\n\n","/**\n * ThrottleAlert — destructive alert for rate-limit / throttling errors.\n *\n * Single header icon, primary message, and a tight inline meta row showing\n * `attempts` and `remaining`. Use as a banner above a form when a request\n * has been blocked and the user must wait. Strings overridable for i18n.\n */\nimport { ShieldAlert, Clock, RotateCcw } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface ThrottleAlertStrings {\n\tmaxAttempts: string;\n\ttryAgainIn: string;\n}\n\nexport const defaultThrottleAlertStrings: ThrottleAlertStrings = {\n\tmaxAttempts: 'Max attempts',\n\ttryAgainIn: 'Try again in',\n};\n\nexport interface ThrottleAlertProps {\n\tmessage: string;\n\tattempts: number;\n\tremaining: string;\n\tclassName?: string;\n\tstrings?: Partial<ThrottleAlertStrings>;\n}\n\nexport function ThrottleAlert({\n\tmessage,\n\tattempts,\n\tremaining,\n\tclassName,\n\tstrings: stringsProp,\n}: ThrottleAlertProps) {\n\tconst strings = useStrings(defaultThrottleAlertStrings, stringsProp);\n\n\treturn (\n\t\t<div\n\t\t\trole=\"alert\"\n\t\t\tclassName={cn('throttle-alert--component', \n\t\t\t\t'flex items-start gap-3 rounded-lg border border-destructive/30 bg-destructive/5 px-4 py-3',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName=\"mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full bg-destructive/15 text-destructive\"\n\t\t\t>\n\t\t\t\t<ShieldAlert className=\"size-4\" />\n\t\t\t</span>\n\t\t\t<div className=\"min-w-0 flex-1 space-y-1.5\">\n\t\t\t\t<Text weight=\"medium\" className=\"text-destructive leading-snug\">\n\t\t\t\t\t{message}\n\t\t\t\t</Text>\n\t\t\t\t<div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-destructive/80\">\n\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t<RotateCcw className=\"size-3\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<span>{strings.maxAttempts}</span>\n\t\t\t\t\t\t<span className=\"font-semibold tabular-nums text-destructive\">{attempts}</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t<Clock className=\"size-3\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<span>{strings.tryAgainIn}</span>\n\t\t\t\t\t\t<span className=\"font-semibold tabular-nums text-destructive\">{remaining}</span>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nThrottleAlert.displayName = 'ThrottleAlert';\n","/**\n * VisuallyHidden — hides content from sighted users while keeping it readable\n * by assistive tech (screen readers, voice). Use to label icon-only buttons,\n * give context to status changes, or expose extra structure for AT users.\n */\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface VisuallyHiddenProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function VisuallyHidden({ children, className }: VisuallyHiddenProps) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn('visually-hidden--component', \n\t\t\t\t'absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0',\n\t\t\t\t'[clip:rect(0,0,0,0)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</span>\n\t);\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","/**\n * StackedAvatars — overlapping avatar group with optional `+N` overflow chip,\n * configurable size, and an optional semantic `tone` for fallbacks (initials)\n * when the consumer hasn't passed `imageUrl`.\n *\n * Wraps the shadcn AvatarGroup primitive with library-default sizes and a\n * deterministic tone picker so fallbacks stay stable without raw hue utilities.\n */\nimport * as React from 'react';\nimport {\n\tAvatar,\n\tAvatarFallback,\n\tAvatarGroup,\n\tAvatarGroupCount,\n\tAvatarImage,\n} from '@/components/ui/avatar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type StackedAvatarsSize = 'sm' | 'default' | 'lg';\nexport type StackedAvatarTone =\n\t| 'muted'\n\t| 'primary'\n\t| 'secondary'\n\t| 'info'\n\t| 'success'\n\t| 'warning'\n\t| 'destructive';\n\nexport interface StackedAvatarUser {\n\tid?: string;\n\tname: string;\n\timageUrl?: string;\n\t/** Optional semantic tone override for this user's fallback. Numeric values map to the token set. */\n\ttone?: StackedAvatarTone | number;\n}\n\nexport interface StackedAvatarsProps {\n\tusers: StackedAvatarUser[];\n\tmax?: number;\n\tsize?: StackedAvatarsSize;\n\tclassName?: string;\n\t/** Whether to render a `+N` count when `users.length > max`. Default `true`. */\n\tshowOverflow?: boolean;\n\t/** Provide custom overflow text (e.g. \"+12 more\"). Default `+N`. */\n\toverflowFormatter?: (overflow: number) => React.ReactNode;\n\t/** Extra class names applied to each avatar root. */\n\tavatarClassName?: string;\n}\n\nconst FALLBACK_TONES: StackedAvatarTone[] = [\n\t'muted',\n\t'primary',\n\t'secondary',\n\t'info',\n\t'success',\n];\n\nconst FALLBACK_TONE_CLASSNAMES: Record<StackedAvatarTone, string> = {\n\tmuted: 'bg-muted text-muted-foreground',\n\tprimary: 'bg-primary/10 text-primary',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tinfo: 'bg-info/10 text-info',\n\tsuccess: 'bg-success/10 text-success',\n\twarning: 'bg-warning/15 text-warning',\n\tdestructive: 'bg-destructive/10 text-destructive',\n};\n\nfunction getInitials(name: string, compact = false): string {\n\tconst parts = name.trim().split(/\\s+/);\n\tif (parts.length === 0) return '?';\n\tif (compact) return parts[0].slice(0, 1).toUpperCase();\n\tif (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n\treturn (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction pickFallbackTone(seed: string | number, override?: StackedAvatarTone | number) {\n\tif (typeof override === 'string') {\n\t\treturn override;\n\t}\n\tif (typeof override === 'number') {\n\t\treturn FALLBACK_TONES[Math.abs(override) % FALLBACK_TONES.length];\n\t}\n\tconst key = typeof seed === 'number' ? seed : Array.from(seed).reduce((s, c) => s + c.charCodeAt(0), 0);\n\treturn FALLBACK_TONES[key % FALLBACK_TONES.length];\n}\n\nexport function StackedAvatars({\n\tusers,\n\tmax = 4,\n\tsize = 'default',\n\tclassName,\n\tshowOverflow = true,\n\toverflowFormatter,\n\tavatarClassName,\n}: StackedAvatarsProps) {\n\tconst visible = users.slice(0, max);\n\tconst overflow = Math.max(0, users.length - max);\n\n\treturn (\n\t\t<AvatarGroup className={cn('stacked-avatars--component', className)}>\n\t\t\t{visible.map((user, index) => {\n\t\t\t\tconst initials = getInitials(user.name, size === 'sm');\n\t\t\t\tconst fallbackTone = pickFallbackTone(user.id ?? user.name ?? index, user.tone);\n\t\t\t\treturn (\n\t\t\t\t\t<Avatar\n\t\t\t\t\t\tkey={user.id ?? `${user.name}-${index}`}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tclassName={cn('ring-background', avatarClassName)}\n\t\t\t\t\t\ttitle={user.name}\n\t\t\t\t\t>\n\t\t\t\t\t\t{user.imageUrl ? (\n\t\t\t\t\t\t\t<AvatarImage src={user.imageUrl} alt={user.name} />\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<AvatarFallback\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'font-semibold',\n\t\t\t\t\t\t\t\tFALLBACK_TONE_CLASSNAMES[fallbackTone],\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t</Avatar>\n\t\t\t\t);\n\t\t\t})}\n\t\t\t{!!showOverflow && overflow > 0 && (\n\t\t\t\t<AvatarGroupCount>\n\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\">\n\t\t\t\t\t\t{overflowFormatter ? overflowFormatter(overflow) : `+${overflow}`}\n\t\t\t\t\t</Text>\n\t\t\t\t</AvatarGroupCount>\n\t\t\t)}\n\t\t</AvatarGroup>\n\t);\n}\n\nStackedAvatars.displayName = 'StackedAvatars';\n","/**\n * DateBlock — compact \"boxed\" date display showing weekday + day-of-month\n * + optional month and time. Built on `date-fns` so locales propagate\n * naturally (`enGB`, `bg`, …).\n *\n * Two layouts:\n * - `stacked` (default) — three lines: weekday / day / month\n * - `inline` — single row: weekday + day + month + optional time\n *\n * Time can render `inline` (right of the date), `below` (under the date\n * block), or `hidden`. Compact rooms (booking lists) typically use\n * `stacked` with `time=\"below\"`.\n */\nimport { format, type Locale } from 'date-fns';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport type DateBlockLayout = 'stacked' | 'inline';\nexport type DateBlockTimePlacement = 'inline' | 'below' | 'hidden';\nexport type DateBlockTone = 'default' | 'muted' | 'primary' | 'inverse' | 'success' | 'warning' | 'destructive' | 'info';\n\nexport interface DateBlockStrings {\n\t/** Used by `inline` layout when month is hidden (e.g. \"Apr 30 · 14:00\"). */\n\tseparator: string;\n}\n\nexport const defaultDateBlockStrings: DateBlockStrings = {\n\tseparator: '·',\n};\n\nexport interface DateBlockProps {\n\t/** Date instance, ISO string, or unix timestamp. */\n\tdate: Date | string | number;\n\t/** ISO time string (`HH:mm`) or already-formatted time string. */\n\ttime?: string | null;\n\t/** date-fns `Locale` (e.g. `enGB`, `bg`). Defaults to user-agent. */\n\tlocale?: Locale;\n\t/** Layout. Default `stacked`. */\n\tlayout?: DateBlockLayout;\n\t/** Where to place the time. Default `inline` for `inline` layout, `below` for `stacked`. */\n\ttimePlacement?: DateBlockTimePlacement;\n\t/** Tone of the boxed block. Default `default` (card surface). */\n\ttone?: DateBlockTone;\n\t/** Whether to render a card-like box around the block. Default `true` for stacked, `false` for inline. */\n\tboxed?: boolean;\n\t/** Show month label. Default `true`. */\n\tshowMonth?: boolean;\n\t/** Custom format for the day-of-month token (date-fns format). Default `'d'`. */\n\tdayFormat?: string;\n\t/** Custom format for the weekday token. Default `'EEE'`. */\n\tweekdayFormat?: string;\n\t/** Custom format for the month token. Default `'MMM'`. */\n\tmonthFormat?: string;\n\tclassName?: string;\n\tstrings?: Partial<DateBlockStrings>;\n}\n\nconst toneClassMap: Record<DateBlockTone, { bg: string; text: string; border: string; accent: string; subtle: string }> = {\n\tdefault: { bg: 'bg-card', text: 'text-foreground', border: 'border-border', accent: 'text-foreground', subtle: 'text-muted-foreground' },\n\tinverse: { bg: 'bg-primary', text: 'text-background', border: 'border-primary', accent: 'text-background/80', subtle: 'text-background/65' },\n\tmuted: { bg: 'bg-muted/50', text: 'text-foreground', border: 'border-border', accent: 'text-foreground', subtle: 'text-muted-foreground' },\n\tprimary: { bg: 'bg-primary/10', text: 'text-foreground', border: 'border-primary/30', accent: 'text-primary', subtle: 'text-muted-foreground' },\n\tsuccess: { bg: 'bg-success/10', text: 'text-foreground', border: 'border-success/30', accent: 'text-success', subtle: 'text-muted-foreground' },\n\twarning: { bg: 'bg-warning/15', text: 'text-foreground', border: 'border-warning/40', accent: 'text-warning-foreground', subtle: 'text-muted-foreground' },\n\tdestructive: { bg: 'bg-destructive/10', text: 'text-foreground', border: 'border-destructive/30', accent: 'text-destructive', subtle: 'text-muted-foreground' },\n\tinfo: { bg: 'bg-info/10', text: 'text-foreground', border: 'border-info/30', accent: 'text-info', subtle: 'text-muted-foreground' },\n};\n\nfunction resolveDate(input: Date | string | number): Date {\n\tif (input instanceof Date) return input;\n\tconst d = typeof input === 'number' ? new Date(input) : new Date(input);\n\treturn d;\n}\n\nexport function DateBlock({\n\tdate,\n\ttime,\n\tlocale,\n\tlayout = 'stacked',\n\ttimePlacement,\n\ttone = 'default',\n\tboxed,\n\tshowMonth = true,\n\tdayFormat = 'd',\n\tweekdayFormat = 'EEE',\n\tmonthFormat = 'MMM',\n\tclassName,\n\tstrings: stringsProp,\n}: DateBlockProps) {\n\tconst resolved = resolveDate(date);\n\tconst strings = useStrings(defaultDateBlockStrings, stringsProp);\n\tconst tones = toneClassMap[tone];\n\tconst dateValid = !Number.isNaN(resolved.getTime());\n\n\tconst weekday = dateValid ? format(resolved, weekdayFormat, locale ? { locale } : undefined) : '';\n\tconst day = dateValid ? format(resolved, dayFormat, locale ? { locale } : undefined) : '';\n\tconst month = dateValid ? format(resolved, monthFormat, locale ? { locale } : undefined) : '';\n\n\tconst resolvedTimePlacement: DateBlockTimePlacement =\n\t\ttimePlacement ?? (layout === 'inline' ? 'inline' : 'below');\n\tconst useBox = boxed ?? layout === 'stacked';\n\n\tif (layout === 'inline') {\n\t\treturn (\n\t\t\t<span\n\t\t\t\tclassName={cn('date-block--component', \n\t\t\t\t\t'inline-flex items-center gap-1.5 tabular-nums',\n\t\t\t\t\tuseBox && cn('rounded-md border px-2 py-1', tones.bg, tones.border),\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className={cn(tones.accent, 'uppercase tracking-wide')}>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t\t<Text weight=\"semibold\">{day}</Text>\n\t\t\t\t{!!showMonth && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t{month}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t{!!time && resolvedTimePlacement === 'inline' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\" aria-hidden>\n\t\t\t\t\t\t\t{strings.separator}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{time}</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={cn('inline-flex flex-col items-center gap-0.5', className)}>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex flex-col items-center justify-center gap-1 tabular-nums',\n\t\t\t\t\tuseBox && cn('w-14 min-h-14 rounded-md border px-1.5 py-1.5', tones.bg, tones.border),\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tstyle={{ lineHeight: 1 }}\n\t\t\t\t\tclassName={cn(tones.accent, 'uppercase tracking-wider')}\n\t\t\t\t>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t\t<Text size=\"lg\" weight=\"bold\" style={{ lineHeight: 1 }} className={tones.text}>\n\t\t\t\t\t{day}\n\t\t\t\t</Text>\n\t\t\t\t{!!showMonth && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\tstyle={{ lineHeight: 1 }}\n\t\t\t\t\t\tclassName={cn(tones.subtle, 'uppercase tracking-wider')}\n\t\t\t\t\t>\n\t\t\t\t\t\t{month}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!time && resolvedTimePlacement === 'below' && (\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t{time}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{!!time && resolvedTimePlacement === 'inline' && (\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t{time}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nDateBlock.displayName = 'DateBlock';\n","import { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\nimport * as React from \"react\"\n\nimport { Slot } from \"@/components/ui/slot\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n asChild = false,\n nativeButton,\n render,\n children,\n ...props\n}: CollapsiblePrimitive.Trigger.Props & { asChild?: boolean; nativeButton?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: CollapsiblePrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n let inferredNativeButton = true\n if (asChild && React.isValidElement(children)) {\n if (typeof children.type === \"string\") {\n inferredNativeButton = children.type === \"button\"\n } else {\n const childProps = (children.props ?? {}) as Record<string, unknown>\n inferredNativeButton = !(\"href\" in childProps)\n }\n }\n const resolvedNativeButton = nativeButton ?? (asChild ? inferredNativeButton : true)\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n render={slotRender ?? safeRender}\n nativeButton={resolvedNativeButton}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Trigger>\n )\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import { AlertTriangle, Info } from 'lucide-react';\nimport { useCallback, useMemo, type ReactNode } from 'react';\n\nimport { MoneyInput as BaseMoneyInput, type MoneyInputProps as BaseMoneyInputProps } from '@/components/base/forms/fields/money-input';\nimport { FormField } from '@/components/base/forms/form-field';\nimport { Text } from '@/components/typography';\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\nimport type { CurrencyCode } from '@/lib/ui-provider';\n\n/** Optional money payload for migration hints. Consumers map their domain\n * shape into this — `formatted` is the consumer's pre-rendered display\n * string for the alternate currency leg. */\nexport interface MoneyData {\n amount?: number | string | null;\n currency?: string | null;\n /** Optional original/record currency that triggered a migration warning. */\n recordCurrency?: string | null;\n /** Optional secondary leg the consumer formatted for display. */\n pair?: { formatted?: string | null } | null;\n}\n\nexport interface MoneyInputData {\n amount: number;\n currency: CurrencyCode;\n}\n\nexport interface MoneyInputProps extends Omit<BaseMoneyInputProps, 'invalid'> {\n /** Optional money payload for migration hints */\n money?: MoneyData | null;\n /** Display label */\n label?: string;\n /** Hint next to label */\n hint?: string;\n /** Helper text below input */\n helperText?: string;\n /** Error message */\n error?: string;\n /** Required indicator */\n required?: boolean;\n /** Invalid state override */\n invalid?: boolean;\n /** Optional change handler for combined data */\n onChangeData?: (data: MoneyInputData) => void;\n /** Record currency for migration detection */\n recordCurrency?: CurrencyCode;\n /** Show migration warning block */\n showMigrationWarning?: boolean;\n /** Custom migration warning message */\n migrationWarningMessage?: ReactNode;\n /** Show original currency hint */\n showOriginalHint?: boolean;\n}\n\nconst defaultEmptyFormatted = '—';\n\nconst resolveFormatted = (formatted: unknown): string =>\n typeof formatted === 'string' ? formatted.trim() : '';\n\nexport function MoneyInput({\n money,\n currency = 'EUR',\n onChangeData,\n recordCurrency: recordCurrencyProp,\n label,\n hint,\n helperText,\n error,\n required,\n invalid,\n showMigrationWarning = true,\n migrationWarningMessage,\n showOriginalHint = true,\n className,\n onChange,\n onCurrencyChange,\n ...props\n}: MoneyInputProps) {\n const recordCurrency = recordCurrencyProp ?? money?.recordCurrency ?? undefined;\n\n const willMigrate = useMemo(\n () => recordCurrency !== undefined && recordCurrency !== currency,\n [recordCurrency, currency],\n );\n\n const otherFormatted = useMemo(() => {\n if (!showOriginalHint) return '';\n return resolveFormatted(money?.pair?.formatted);\n }, [showOriginalHint, money?.pair?.formatted]);\n\n const showOriginalHintBlock = otherFormatted.length > 0 && !error;\n const showMigrationBlock = willMigrate && showMigrationWarning;\n\n const handleAmountChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n const parsed = Number.parseFloat(e.target.value);\n const safeAmount = Number.isFinite(parsed) ? parsed : 0;\n onChangeData?.({ amount: safeAmount, currency });\n },\n [onChange, onChangeData, currency],\n );\n\n const handleCurrencyChange = useCallback(\n (nextCurrency: CurrencyCode) => {\n onCurrencyChange?.(nextCurrency);\n const parsedValue = Number.parseFloat(String(props.value ?? ''));\n const safeAmount = Number.isFinite(parsedValue) ? parsedValue : 0;\n onChangeData?.({ amount: safeAmount, currency: nextCurrency });\n },\n [onCurrencyChange, onChangeData, props.value],\n );\n\n const isInvalid = invalid ?? Boolean(error);\n\n const inputNode = (\n <BaseMoneyInput\n {...props}\n currency={currency}\n onChange={handleAmountChange}\n onCurrencyChange={handleCurrencyChange}\n invalid={isInvalid}\n />\n );\n\n const hasChrome = Boolean(label || hint || helperText || error || required);\n const renderedInput = hasChrome ? (\n <FormField\n label={label}\n hint={hint}\n helperText={helperText}\n error={error}\n required={required}\n >\n {inputNode}\n </FormField>\n ) : inputNode;\n\n return (\n <div className={cn('money-input--component', 'space-y-2', className)}>\n {renderedInput}\n\n {!!showOriginalHintBlock && (\n <div className=\"flex items-center gap-1.5 text-muted-foreground\">\n <Info className=\"h-3.5 w-3.5 shrink-0\" />\n <Text size=\"xs\" type=\"secondary\">\n {otherFormatted || defaultEmptyFormatted}\n </Text>\n </div>\n )}\n\n {!!showMigrationBlock && (\n <Alert className=\"border-warning/50 bg-warning/5 py-2\">\n <AlertTriangle className=\"h-4 w-4 text-warning\" />\n <AlertDescription className=\"text-warning-foreground text-xs\">\n {migrationWarningMessage ??\n `Currency will be converted from ${recordCurrency ?? ''} to ${currency}.`}\n </AlertDescription>\n </Alert>\n )}\n </div>\n );\n}\n\nMoneyInput.displayName = 'MoneyInput';\n","/**\n * BooleanIndicator — labelled yes/no chip showing the truth of a value with an\n * optional check/cross icon. Use for compact metadata grids where each row\n * answers a single boolean question. Strings overridable for i18n.\n */\nimport { CheckCircle2, XCircle } from 'lucide-react';\nimport React from 'react';\nimport { Badge, type ComposedBadgeVariant } from '@/components/base/badge';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface BooleanIndicatorStrings {\n\ttrue: string;\n\tfalse: string;\n}\n\nexport const defaultBooleanIndicatorStrings: BooleanIndicatorStrings = {\n\ttrue: 'Yes',\n\tfalse: 'No',\n};\n\nexport type BooleanIndicatorProps = {\n\tlabel: React.ReactNode;\n\tvalue?: boolean | null;\n\tshowIcon?: boolean;\n\ttrueVariant?: ComposedBadgeVariant;\n\tfalseVariant?: ComposedBadgeVariant;\n\tclassName?: string;\n\tbadgeClassName?: string;\n\tstrings?: Partial<BooleanIndicatorStrings>;\n\t/** @deprecated Use `strings.true` instead. */\n\ttrueLabel?: React.ReactNode;\n\t/** @deprecated Use `strings.false` instead. */\n\tfalseLabel?: React.ReactNode;\n};\n\nexport function BooleanIndicator({\n\tlabel,\n\tvalue = false,\n\ttrueLabel,\n\tfalseLabel,\n\tshowIcon = true,\n\ttrueVariant = 'success',\n\tfalseVariant = 'secondary',\n\tclassName,\n\tbadgeClassName,\n\tstrings: stringsProp,\n}: BooleanIndicatorProps) {\n\tconst strings = useStrings(defaultBooleanIndicatorStrings, stringsProp);\n\tconst isTrue = Boolean(value);\n\tconst Icon = isTrue ? CheckCircle2 : XCircle;\n\tconst badgeVariant = isTrue ? trueVariant : falseVariant;\n\tconst fallback = isTrue ? trueLabel : falseLabel;\n\tconst content = fallback ?? (isTrue ? strings.true : strings.false);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('boolean-indicator--component', \n\t\t\t\t'flex items-center justify-between rounded-md border border-border/60 bg-muted/30 px-3 py-2',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t<Badge\n\t\t\t\tvariant={badgeVariant}\n\t\t\t\tsize=\"sm\"\n\t\t\t\tclassName={cn('whitespace-nowrap', badgeClassName)}\n\t\t\t>\n\t\t\t\t{!!showIcon && <Icon className=\"h-3.5 w-3.5\" />}\n\t\t\t\t{content}\n\t\t\t</Badge>\n\t\t</div>\n\t);\n}\n\nBooleanIndicator.displayName = 'BooleanIndicator';\n\nexport default BooleanIndicator;\n","import { Progress as ProgressPrimitive } from \"@base-ui/react/progress\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Progress({\n className,\n children,\n value,\n ...props\n}: ProgressPrimitive.Root.Props) {\n return (\n <ProgressPrimitive.Root\n value={value}\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-3\", className)}\n {...props}\n >\n {children}\n <ProgressTrack>\n <ProgressIndicator />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n )\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"bg-muted h-1.5 rounded-full relative flex w-full items-center overflow-x-hidden\",\n className\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n )\n}\n\nfunction ProgressIndicator({\n className,\n ...props\n}: ProgressPrimitive.Indicator.Props) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"bg-primary h-full transition-all\", className)}\n {...props}\n />\n )\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"text-sm font-medium\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n )\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\"text-muted-foreground ml-auto text-sm tabular-nums\", className)}\n data-slot=\"progress-value\"\n {...props}\n />\n )\n}\n\nexport {\n Progress,\n ProgressTrack,\n ProgressIndicator,\n ProgressLabel,\n ProgressValue,\n}\n","import { formatHex, oklch } from 'culori';\nimport QR from 'qrcode';\nimport type { HTMLAttributes } from 'react';\nimport { useEffect, useState } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type QRCodeProps = HTMLAttributes<HTMLDivElement> & {\n\tdata: string;\n\tforeground?: string;\n\tbackground?: string;\n\trobustness?: 'L' | 'M' | 'Q' | 'H';\n};\n\nconst oklchRegex = /oklch\\\\(([.\\\\d-]+)\\\\s+([.\\\\d]+)\\\\s+([.\\\\d]+)\\\\)/;\n\nfunction getOklch(color: string, fallback: [number, number, number]) {\n\tconst oklchMatch = color.match(oklchRegex);\n\n\tif (!oklchMatch) {\n\t\treturn { l: fallback[0], c: fallback[1], h: fallback[2] };\n\t}\n\n\treturn {\n\t\tl: Number.parseFloat(oklchMatch[1]),\n\t\tc: Number.parseFloat(oklchMatch[2]),\n\t\th: Number.parseFloat(oklchMatch[3]),\n\t};\n}\n\nexport function QRCode({\n\tdata,\n\tforeground,\n\tbackground,\n\trobustness = 'M',\n\tclassName,\n\t...props\n}: QRCodeProps) {\n\tconst [svg, setSvg] = useState<string | null>(null);\n\n\tuseEffect(() => {\n\t\tconst generateQR = async () => {\n\t\t\ttry {\n\t\t\t\tconst text = String(data ?? '').trim();\n\t\t\t\tif (!text) {\n\t\t\t\t\tsetSvg(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst styles = getComputedStyle(document.documentElement);\n\t\t\t\tconst foregroundColor =\n\t\t\t\t\tforeground ?? styles.getPropertyValue('--foreground');\n\t\t\t\tconst backgroundColor =\n\t\t\t\t\tbackground ?? styles.getPropertyValue('--background');\n\n\t\t\t\tconst foregroundOklch = getOklch(foregroundColor, [\n\t\t\t\t\t0.21, 0.006, 285.885,\n\t\t\t\t]);\n\t\t\t\tconst backgroundOklch = getOklch(backgroundColor, [0.985, 0, 0]);\n\n\t\t\t\tconst newSvg = await QR.toString(text, {\n\t\t\t\t\ttype: 'svg',\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tdark: formatHex(\n\t\t\t\t\t\t\toklch({ mode: 'oklch', ...foregroundOklch }),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlight: formatHex(\n\t\t\t\t\t\t\toklch({ mode: 'oklch', ...backgroundOklch }),\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\twidth: 200,\n\t\t\t\t\terrorCorrectionLevel: robustness,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t});\n\n\t\t\t\tsetSvg(newSvg);\n\t\t\t} catch {\n\t\t\t\t// QR generation failure (invalid data, oversized payload) — render falls\n\t\t\t\t// back to empty SVG; consumer can surface their own error from the parent.\n\t\t\t\tsetSvg('');\n\t\t\t}\n\t\t};\n\n\t\tvoid generateQR();\n\t}, [data, foreground, background, robustness]);\n\n\tif (!svg) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('qr-code--component', 'size-full', '[&_svg]:size-full', className)}\n\t\t\tdangerouslySetInnerHTML={{ __html: svg }}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport default QRCode;\n\nQRCode.displayName = 'QRCode';\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"gap-4 rounded-lg border-dashed p-12 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"gap-2 flex max-w-sm flex-col items-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"gap-4 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n","/**\n * Strings for `<EmptyState>`. English defaults — every piece of copy is\n * deep-merge-overridable per rule 8.\n *\n * `title`/`description` here are the *fallback* defaults the component\n * renders when neither the prop nor a per-illustration preset supplies\n * its own copy. In practice, the consumer usually passes an explicit\n * `title` / `description` per resource (\"No products\", \"No invoices yet\")\n * — these defaults exist so a bare `<EmptyState />` still renders\n * sensibly during scaffolding.\n */\nexport interface EmptyStateStrings {\n\ttitle: string;\n\tdescription: string;\n\tariaLabel: string;\n}\n\nexport const defaultEmptyStateStrings: EmptyStateStrings = {\n\ttitle: 'Nothing here yet',\n\tdescription: 'Once data lands, it will show up in this view.',\n\tariaLabel: 'Empty state',\n};\n","/**\n * EmptyState — the canonical zero-data surface for any list, table, or\n * collection in the library. Wraps the shadcn `ui/empty` primitive\n * (rule 1, rule 12) and applies our typography, density, and tokens:\n *\n * - Headline through `<Heading tag=\"h3\">` (admin scale, no marketing inflation)\n * - Description through `<Text size=\"xs\" type=\"secondary\">` — matches\n * the four sibling empty-states across the library\n * - Padding presets driven by props, not arbitrary literals\n * - Optional dashed-border affordance for \"this slot is a drop zone\"\n *\n * Composability:\n * - Slots: `media`, `actions`, `footer`\n * - Render-prop: `renderMedia(ctx)` for fully custom illustrations\n * - Strings: every piece of copy is overridable via `strings`\n *\n * The library ships a small illustration set under\n * `./partials/illustrations/*` — import explicitly per resource:\n *\n * import { StackedCardsIllustration } from\n * '@/components/base/display/empty-state/partials/illustrations';\n *\n * Adaptive shape per resource: pass a different `media` per surface.\n * Don't fork the component.\n */\nimport { forwardRef } from 'react';\n\nimport { Heading, Text } from '@/components/typography';\nimport {\n\tEmpty,\n\tEmptyContent,\n\tEmptyHeader,\n\tEmptyMedia,\n} from '@/components/ui/empty';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultEmptyStateStrings } from './empty-state.strings';\nimport type {\n\tEmptyStateMediaVariant,\n\tEmptyStatePadding,\n\tEmptyStateProps,\n} from './empty-state.types';\n\nconst PADDING_CLASS: Record<EmptyStatePadding, string> = {\n\tcompact: 'py-6',\n\tbase: 'py-12',\n\tloose: 'py-16',\n};\n\nconst MEDIA_VARIANT_TO_PRIMITIVE: Record<EmptyStateMediaVariant, 'default' | 'icon'> = {\n\tnone: 'default',\n\ticon: 'icon',\n\t'icon-soft': 'icon',\n\tillustration: 'default',\n};\n\nconst MEDIA_EXTRA_CLASS: Record<EmptyStateMediaVariant, string | undefined> = {\n\tnone: undefined,\n\ticon: undefined,\n\t'icon-soft': 'bg-muted/40 text-muted-foreground',\n\tillustration: 'mb-4',\n};\n\nexport const EmptyState = forwardRef<HTMLDivElement, EmptyStateProps>(function EmptyState({\n\ttitle,\n\tdescription,\n\tmedia,\n\tmediaVariant = 'none',\n\trenderMedia,\n\tactions,\n\tfooter,\n\tpadding = 'base',\n\tborder = false,\n\tclassName,\n\tstrings: stringsProp,\n\tariaLabel,\n}, ref) {\n\tconst strings = useStrings(defaultEmptyStateStrings, stringsProp);\n\n\tconst resolvedTitle = title ?? strings.title;\n\tconst resolvedDescription =\n\t\tdescription === false ? null : description ?? strings.description;\n\tconst mediaNode = renderMedia ? renderMedia({ mediaVariant }) : media;\n\tconst showMedia = !!mediaNode;\n\n\treturn (\n\t\t<Empty\n\t\t\tref={ref}\n\t\t\trole=\"status\"\n\t\t\taria-label={ariaLabel ?? strings.ariaLabel}\n\t\t\tclassName={cn('empty-state--component', \n\t\t\t\tPADDING_CLASS[padding],\n\t\t\t\tborder ? 'border border-dashed' : 'border-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<EmptyHeader>\n\t\t\t\t{!!showMedia && (\n\t\t\t\t\t<EmptyMedia\n\t\t\t\t\t\tvariant={MEDIA_VARIANT_TO_PRIMITIVE[mediaVariant]}\n\t\t\t\t\t\tclassName={MEDIA_EXTRA_CLASS[mediaVariant]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{mediaNode}\n\t\t\t\t\t</EmptyMedia>\n\t\t\t\t)}\n\t\t\t\t<Heading tag=\"h3\" className=\"border-0 pb-0 text-base\" data-slot=\"empty-title\">\n\t\t\t\t\t{resolvedTitle}\n\t\t\t\t</Heading>\n\t\t\t\t{!!resolvedDescription && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName=\"leading-relaxed [&>a]:text-primary [&>a]:underline [&>a]:underline-offset-4 hover:[&>a]:no-underline\"\n\t\t\t\t\t\tdata-slot=\"empty-description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedDescription}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</EmptyHeader>\n\t\t\t{(!!actions || !!footer) && (\n\t\t\t\t<EmptyContent>\n\t\t\t\t\t{!!actions && (\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2\">\n\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!footer && <div className=\"text-xs text-muted-foreground\">{footer}</div>}\n\t\t\t\t</EmptyContent>\n\t\t\t)}\n\t\t</Empty>\n\t);\n});\n\nEmptyState.displayName = 'EmptyState';\n","import { cn } from '@/lib/utils';\n\n/**\n * Two staggered document silhouettes — for \"no documents\", \"no\n * invoices\", \"no reports\" surfaces.\n */\nexport function DocumentStackIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-32', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/70 dark:bg-muted/40 border-border/50 absolute left-1 top-1 flex h-20 w-20 -rotate-6 flex-col gap-1.5 rounded-md border p-2 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted h-2 w-12 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-10 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-9 rounded\" />\n\t\t\t</div>\n\t\t\t<div className=\"bg-background border-border absolute right-1 top-2 flex h-20 w-20 rotate-3 flex-col gap-1.5 rounded-md border p-2 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted h-2 w-12 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-10 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-9 rounded\" />\n\t\t\t\t<div className=\"mt-auto flex items-center gap-1\">\n\t\t\t\t\t<div className=\"bg-success size-1.5 rounded-full\" />\n\t\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-8 rounded\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nDocumentStackIllustration.displayName = 'DocumentStackIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Open inbox tray with a soft check above — for \"all caught up\",\n * \"no notifications\", \"inbox zero\" surfaces.\n */\nexport function InboxCleanIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-32', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-success/12 border-success/30 absolute left-1/2 top-0 flex size-8 -translate-x-1/2 items-center justify-center rounded-full border\">\n\t\t\t\t<svg\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\tclassName=\"text-success size-3.5\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path d=\"M3 8l3 3 7-7\" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t\t<div className=\"bg-background border-border absolute inset-x-0 bottom-0 flex h-14 flex-col rounded-lg border shadow-sm\">\n\t\t\t\t<div className=\"bg-muted/30 h-3 rounded-t-lg\" />\n\t\t\t\t<div className=\"flex flex-1 items-center justify-between px-3\">\n\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-12 rounded\" />\n\t\t\t\t\t\t<div className=\"bg-muted/40 h-1.5 w-8 rounded\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"bg-muted/40 size-3 rounded-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nInboxCleanIllustration.displayName = 'InboxCleanIllustration';\n","import { Search } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/**\n * Magnifying-glass illustration centered on a soft tinted disk — for\n * \"no search results\", \"nothing matches your filters\" surfaces.\n */\nexport function SearchGlassIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'flex size-20 items-center justify-center rounded-full bg-muted/40 ring-8 ring-muted/20',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<Search className=\"size-8 text-muted-foreground\" />\n\t\t</div>\n\t);\n}\n\nSearchGlassIllustration.displayName = 'SearchGlassIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Three stacked card silhouettes with a fade-out at the bottom — the\n * generic \"no records\" illustration. Token-driven so it adapts to any\n * theme (uses `bg-muted`, `bg-background`, `border-border`, no raw\n * palette).\n */\nexport function StackedCardsIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-52', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/60 dark:bg-muted/30 border-border/50 absolute inset-x-6 top-0 h-6 rounded-t-lg border\" />\n\t\t\t<div className=\"bg-muted/80 dark:bg-muted/50 border-border/60 absolute inset-x-3 top-3 h-6 rounded-t-lg border\" />\n\t\t\t<div className=\"bg-background border-border absolute inset-x-0 top-6 flex h-16 items-center gap-3 rounded-lg border px-4 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted size-8 shrink-0 rounded\" />\n\t\t\t\t<div className=\"flex flex-1 flex-col gap-1.5\">\n\t\t\t\t\t<div className=\"bg-muted h-2.5 w-3/4 rounded\" />\n\t\t\t\t\t<div className=\"bg-muted/60 h-2 w-1/2 rounded\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"from-background/0 via-background/60 to-background pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-linear-to-b\" />\n\t\t</div>\n\t);\n}\n\nStackedCardsIllustration.displayName = 'StackedCardsIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Three overlapping avatar circles — for \"no team members\", \"no\n * customers\", \"no contributors\" surfaces.\n */\nexport function UsersCircleIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative flex h-24 w-32 items-center justify-center', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/70 border-border absolute left-2 size-12 rounded-full border-2\" />\n\t\t\t<div className=\"bg-muted border-border z-10 size-14 rounded-full border-2 shadow-sm\" />\n\t\t\t<div className=\"bg-muted/60 border-border absolute right-2 size-10 rounded-full border-2\" />\n\t\t</div>\n\t);\n}\n\nUsersCircleIllustration.displayName = 'UsersCircleIllustration';\n","/**\n * EmailDisplay — formats an email address as a copyable, optional `mailto:`\n * link. Falls back to the shared EMPTY placeholder when no value is provided.\n * Strings are overridable for i18n via the `strings` prop.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface EmailDisplayStrings {\n\tcopySuccess: string;\n}\n\nexport const defaultEmailDisplayStrings: EmailDisplayStrings = {\n\tcopySuccess: 'Email copied to clipboard',\n};\n\nexport interface EmailDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\temail: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\tstrings?: Partial<EmailDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n}\n\nexport function EmailDisplay({\n\temail,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: EmailDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultEmailDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...stringsProp,\n\t});\n\tif (!email || email.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('email-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst emailText = (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\ttag=\"span\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-medium',\n\t\t\t\t'decoration-dotted decoration-border underline underline-offset-4',\n\t\t\t\t'transition-colors duration-200',\n\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{email}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={email}\n\t\t\t\tdisplayValue={emailText}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName=\"-mx-0\"\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={`mailto:${email}`}\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a href={`mailto:${email}`} className=\"inline-flex items-center no-underline\">\n\t\t\t\t{emailText}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn emailText;\n}\n\nEmailDisplay.displayName = 'EmailDisplay';\n","/**\n * PhoneDisplay — formats a phone number as a copyable, optional `tel:` link.\n * Strips visual separators when generating the `tel:` href; falls back to the\n * shared EMPTY placeholder when no value is provided. Strings overridable.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface PhoneDisplayStrings {\n\tcopySuccess: string;\n}\n\nexport const defaultPhoneDisplayStrings: PhoneDisplayStrings = {\n\tcopySuccess: 'Phone number copied to clipboard',\n};\n\nexport interface PhoneDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\tphone: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\tstrings?: Partial<PhoneDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n}\n\nfunction formatPhoneForTel(phone: string): string {\n\treturn phone.replace(/[\\s().-]/g, '');\n}\n\nexport function PhoneDisplay({\n\tphone,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: PhoneDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultPhoneDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...stringsProp,\n\t});\n\tif (!phone || phone.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('phone-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst phoneText = (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\ttag=\"span\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-medium',\n\t\t\t\t'decoration-dotted decoration-border underline underline-offset-4',\n\t\t\t\t'transition-colors duration-200',\n\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{phone}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={phone}\n\t\t\t\tdisplayValue={phoneText}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName=\"-mx-0\"\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={`tel:${formatPhoneForTel(phone)}`}\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a\n\t\t\t\thref={`tel:${formatPhoneForTel(phone)}`}\n\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t>\n\t\t\t\t{phoneText}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn phoneText;\n}\n\nPhoneDisplay.displayName = 'PhoneDisplay';\n","/**\n * UrlDisplay — formats a URL as a copyable, optional external link.\n * Detects insecure (http://) URLs and renders an inline tooltip warning. The\n * link can be truncated by hostname/path heuristic with a tooltip showing the\n * full URL on hover. Strings overridable for i18n.\n */\nimport { ExternalLink, ShieldAlert } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/base/display/tooltip';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface UrlDisplayStrings {\n\tcopySuccess: string;\n\thttpWarning: string;\n}\n\nexport const defaultUrlDisplayStrings: UrlDisplayStrings = {\n\tcopySuccess: 'URL copied to clipboard',\n\thttpWarning: 'This URL uses HTTP which is not secure',\n};\n\nexport interface UrlDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\turl: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\ttruncate?: boolean;\n\tmaxLength?: number;\n\tshowExternalIcon?: boolean;\n\tstrings?: Partial<UrlDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n\t/** @deprecated Use `strings.httpWarning` instead. */\n\thttpWarningMessage?: string;\n}\n\nfunction isHttpUrl(url: string): boolean {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\treturn parsed.protocol === 'http:';\n\t} catch {\n\t\treturn url.toLowerCase().startsWith('http://');\n\t}\n}\n\nfunction formatUrlForDisplay(url: string, truncate: boolean, maxLength: number): string {\n\tif (!truncate || url.length <= maxLength) {\n\t\treturn url;\n\t}\n\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tconst domain = parsed.hostname;\n\t\tconst remaining = maxLength - domain.length - 5;\n\n\t\tif (remaining > 10) {\n\t\t\tconst pathStart = parsed.pathname.slice(0, remaining);\n\t\t\treturn `${domain}${pathStart}...`;\n\t\t}\n\n\t\treturn `${url.slice(0, maxLength - 3)}...`;\n\t} catch {\n\t\treturn `${url.slice(0, maxLength - 3)}...`;\n\t}\n}\n\nexport function UrlDisplay({\n\turl,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\ttruncate = false,\n\tmaxLength = 50,\n\tshowExternalIcon = true,\n\thttpWarningMessage,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: UrlDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultUrlDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...(httpWarningMessage ? { httpWarning: httpWarningMessage } : {}),\n\t\t...stringsProp,\n\t});\n\n\tif (!url || url.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('url-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst isInsecure = isHttpUrl(url);\n\tconst displayUrl = formatUrlForDisplay(url, truncate, maxLength);\n\tconst shouldShowTitle = truncate && url.length > maxLength;\n\n\tconst urlContent = (\n\t\t<Text size={size} type={type} tag=\"span\" className=\"inline-flex items-center gap-1.5\">\n\t\t\t{!!isInsecure && (\n\t\t\t\t<Tooltip>\n\t\t\t\t\t<TooltipTrigger\n\t\t\t\t\t\trender={(triggerProps) => {\n\t\t\t\t\t\t\t// Tooltip triggers are `<button>` by default; we render a non-button to avoid nested\n\t\t\t\t\t\t\t// interactive elements when UrlDisplay is wrapped in an `<a>`.\n\t\t\t\t\t\t\tconst { type, disabled, className: triggerClassName, ...rest } =\n\t\t\t\t\t\t\t\ttriggerProps as Record<string, unknown> & {\n\t\t\t\t\t\t\t\t\tclassName?: string;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tvoid type;\n\t\t\t\t\t\t\tvoid disabled;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\t\taria-label={strings.httpWarning}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'inline-flex items-center text-warning',\n\t\t\t\t\t\t\t\t\t\ttriggerClassName,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ShieldAlert className=\"size-3.5\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<TooltipContent side=\"top\" className=\"max-w-xs\">\n\t\t\t\t\t\t<Text size=\"xs\">{strings.httpWarning}</Text>\n\t\t\t\t\t</TooltipContent>\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'decoration-dotted underline underline-offset-4',\n\t\t\t\t\t'transition-colors duration-200',\n\t\t\t\t\tisInsecure ? 'decoration-warning' : 'decoration-border',\n\t\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\t)}\n\t\t\t\ttitle={(shouldShowTitle && url) || undefined}\n\t\t\t>\n\t\t\t\t{displayUrl}\n\t\t\t</span>\n\t\t\t{!!clickable && !!showExternalIcon && (\n\t\t\t\t<ExternalLink className=\"size-3 text-muted-foreground\" />\n\t\t\t)}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={url}\n\t\t\t\tdisplayValue={urlContent}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName={cn('-mx-0', className)}\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={url}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a\n\t\t\t\thref={url}\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t>\n\t\t\t\t{urlContent}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn urlContent;\n}\n\nUrlDisplay.displayName = 'UrlDisplay';\n","/**\n * InlineStat — label + value pair, the workhorse of detail panels and card\n * footers. Three layouts:\n *\n * - `between` (default): label and value pushed to opposite ends of the row.\n * - `inline`: label sits immediately before the value, separator-style.\n * - `stacked`: label above (xxs secondary), value below (sm).\n *\n * `mono` toggles `tabular-nums` on the value side for amounts and counters.\n * Use `valueClassName` for one-off colour/weight overrides; the surrounding\n * row is intentionally plain so consumers can stack many of these without\n * visual clutter.\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type InlineStatLayout = 'between' | 'inline' | 'stacked';\n\nexport interface InlineStatProps {\n\tlabel: ReactNode;\n\tvalue: ReactNode;\n\tlayout?: InlineStatLayout;\n\tmono?: boolean;\n\tclassName?: string;\n\tlabelClassName?: string;\n\tvalueClassName?: string;\n}\n\nexport function InlineStat({\n\tlabel,\n\tvalue,\n\tlayout = 'between',\n\tmono = false,\n\tclassName,\n\tlabelClassName,\n\tvalueClassName,\n}: InlineStatProps) {\n\tif (layout === 'stacked') {\n\t\treturn (\n\t\t\t<div className={cn('inline-stat--component', 'flex flex-col gap-0.5', className)}>\n\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"secondary\" className={labelClassName}>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tclassName={cn(mono && 'tabular-nums', valueClassName)}\n\t\t\t\t>\n\t\t\t\t\t{value}\n\t\t\t\t</Text>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst justify = layout === 'between' ? 'justify-between' : 'justify-start';\n\n\treturn (\n\t\t<div className={cn('flex items-center gap-2', justify, className)}>\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={labelClassName}>\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t<Text\n\t\t\t\ttag=\"span\"\n\t\t\t\tclassName={cn(mono && 'tabular-nums', valueClassName)}\n\t\t\t>\n\t\t\t\t{value}\n\t\t\t</Text>\n\t\t</div>\n\t);\n}\n\nInlineStat.displayName = 'InlineStat';\n","/**\n * NumericValue — displays a number with `tabular-nums` and a chosen alignment.\n * Use for amounts, counters, percentages, durations — anywhere the value\n * benefits from monospace digits and consistent column alignment.\n *\n * Pass `value` as a primitive (auto-formatted via `Intl.NumberFormat`) or\n * pre-format upstream and pass a string. When `currency` is set, the value\n * is rendered with a currency symbol via `formatAmount` from `useCurrency()`\n * — defer to `MoneyDisplay` for richer money rendering (pair display, empty\n * fallback, large display sizes); this component is the leaf primitive.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\nexport type NumericValueAlign = 'left' | 'right' | 'center';\n\ntype TextProps = ComponentProps<typeof Text>;\ntype TextSize = NonNullable<TextProps['size']>;\ntype TextWeight = NonNullable<TextProps['weight']>;\ntype TextType = NonNullable<TextProps['type']>;\n\nexport interface NumericValueProps extends Omit<TextProps, 'children' | 'content' | 'align'> {\n\tvalue: number | string | null | undefined;\n\talign?: NumericValueAlign;\n\t/** When set, formats `value` via `Intl.NumberFormat`; ignored if `value` is already a string. */\n\tlocale?: string;\n\t/** Forwarded to `Intl.NumberFormat` when `value` is numeric. */\n\tformatOptions?: Intl.NumberFormatOptions;\n\t/** Rendered when `value` is `null`/`undefined`/empty. Defaults to `'—'`. */\n\temptyLabel?: ReactNode;\n\tsize?: TextSize;\n\tweight?: TextWeight;\n\ttype?: TextType;\n}\n\nconst DEFAULT_EMPTY = '—';\n\nconst formatValue = (\n\tvalue: NumericValueProps['value'],\n\tlocale: string | undefined,\n\toptions: Intl.NumberFormatOptions | undefined,\n): string | null => {\n\tif (value === null || value === undefined || value === '') return null;\n\tif (typeof value === 'string') return value;\n\tif (Number.isNaN(value)) return null;\n\ttry {\n\t\treturn new Intl.NumberFormat(locale, options).format(value);\n\t} catch {\n\t\treturn String(value);\n\t}\n};\n\nexport function NumericValue({\n\tvalue,\n\talign = 'right',\n\tlocale,\n\tformatOptions,\n\temptyLabel = DEFAULT_EMPTY,\n\tsize: sizeProp,\n\tweight,\n\ttype,\n\tclassName,\n\t...props\n}: NumericValueProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst formatted = formatValue(value, locale, formatOptions);\n\tconst alignClass =\n\t\talign === 'right' ? 'text-right' : align === 'center' ? 'text-center' : 'text-left';\n\n\tif (formatted === null) {\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tsize={size}\n\t\t\t\tweight={weight}\n\t\t\t\ttype={type ?? 'secondary'}\n\t\t\t\tclassName={cn('numeric-value--component', 'tabular-nums', alignClass, className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\tweight={weight}\n\t\t\ttype={type}\n\t\t\tclassName={cn('tabular-nums', alignClass, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{formatted}\n\t\t</Text>\n\t);\n}\n\nNumericValue.displayName = 'NumericValue';\n","/**\n * UserCell — avatar + name + optional subtitle list-item row, the canonical\n * shape for team rosters, conversation lists, comment authors, and search\n * result rows. Three sizes match the surrounding row density (sm/base/lg).\n *\n * Pass `avatarUrl` for an image, `initials` for a fallback, or `avatar` for\n * a full custom Avatar tree (e.g. with a status badge). The `trailing` slot\n * sits on the right edge — use it for badges, action buttons, or timestamps.\n *\n * Avatar primitives come from `base/display/avatar` (shadcn-backed) so they\n * match the rest of the system without configuration.\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport { cn } from '@/lib/utils';\n\nexport type UserCellSize = 'sm' | 'base' | 'lg';\n\nexport interface UserCellProps {\n\tname: ReactNode;\n\tsubtitle?: ReactNode;\n\tavatarUrl?: string;\n\tavatarAlt?: string;\n\tinitials?: string;\n\t/** Fully custom avatar element (overrides `avatarUrl` / `initials`). */\n\tavatar?: ReactNode;\n\ttrailing?: ReactNode;\n\tsize?: UserCellSize;\n\tclassName?: string;\n}\n\nconst SIZE_MAP: Record<UserCellSize, { avatar: string; gap: string; nameSize: 'sm' | 'base'; subtitleSize: 'xs' | 'sm' }> = {\n\tsm: { avatar: 'size-7', gap: 'gap-2', nameSize: 'sm', subtitleSize: 'xs' },\n\tbase: { avatar: 'size-9', gap: 'gap-3', nameSize: 'sm', subtitleSize: 'xs' },\n\tlg: { avatar: 'size-11', gap: 'gap-3', nameSize: 'base', subtitleSize: 'sm' },\n};\n\nexport function UserCell({\n\tname,\n\tsubtitle,\n\tavatarUrl,\n\tavatarAlt,\n\tinitials,\n\tavatar,\n\ttrailing,\n\tsize = 'base',\n\tclassName,\n}: UserCellProps) {\n\tconst sizes = SIZE_MAP[size];\n\n\tconst avatarNode = avatar ?? (\n\t\t<Avatar className={sizes.avatar}>\n\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={avatarAlt ?? (typeof name === 'string' ? name : undefined)} />}\n\t\t\t{!!initials && <AvatarFallback>{initials}</AvatarFallback>}\n\t\t</Avatar>\n\t);\n\n\treturn (\n\t\t<div className={cn('user-cell--component', 'flex items-center', sizes.gap, className)}>\n\t\t\t{avatarNode}\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t<Text size={sizes.nameSize} weight=\"semibold\" className=\"truncate\">\n\t\t\t\t\t{name}\n\t\t\t\t</Text>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size={sizes.subtitleSize} type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!trailing && <div className=\"shrink-0\">{trailing}</div>}\n\t\t</div>\n\t);\n}\n\nUserCell.displayName = 'UserCell';\n","/**\n * SectionHeader — title row for in-card sections and standalone groupings:\n *\n * <Text weight=\"semibold\">{title}</Text>\n * {optional Badge | description on the next line}\n * {optional trailing action button on the right}\n *\n * Distinct from `SmartCard.title` (which is the *card's* primary header) —\n * use SectionHeader for nested sections inside a card body, or for grouping\n * blocks on a page that aren't full cards.\n *\n * `dense` tightens vertical spacing and sizes the title down to `xs` for\n * sub-section labels (e.g. \"Recent activity\" stripes inside a longer card).\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface SectionHeaderProps {\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tbadge?: ReactNode;\n\taction?: ReactNode;\n\tdense?: boolean;\n\tclassName?: string;\n}\n\nexport function SectionHeader({\n\ttitle,\n\tdescription,\n\tbadge,\n\taction,\n\tdense = false,\n\tclassName,\n}: SectionHeaderProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('section-header--component', \n\t\t\t\t'flex items-start justify-between',\n\t\t\t\tdense ? 'gap-2' : 'gap-3',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t<div className={cn('flex items-center', dense ? 'gap-1.5' : 'gap-2')}>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize={dense ? 'xs' : 'sm'}\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"truncate\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!badge && <span className=\"shrink-0\">{badge}</span>}\n\t\t\t\t</div>\n\t\t\t\t{!!description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize={dense ? 'xxs' : 'xs'}\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName={dense ? 'mt-0.5' : 'mt-1'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!action && <div className=\"shrink-0\">{action}</div>}\n\t\t</div>\n\t);\n}\n\nSectionHeader.displayName = 'SectionHeader';\n"],"mappings":"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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("./badge--o9wFHB_.cjs"),o=require("./button-C1qc97U1.cjs"),s=require("./slot-D-Rwlrz2.cjs"),c=require("./tooltip-mvxZV_Lu.cjs"),l=require("./alert-CuIIKJC-.cjs"),u=require("./form-field-rMGPvHFK.cjs"),d=require("./copyable-Bx4J7fuT.cjs"),f=require("./avatar-0spfQEHG.cjs");let p=require("react");p=e.t(p,1);let m=require("date-fns"),h=require("react/jsx-runtime"),g=require("lucide-react"),_=require("class-variance-authority"),v=require("@base-ui/react/collapsible"),y=require("@base-ui/react/progress"),b=require("culori"),x=require("qrcode");x=e.t(x,1);var S={info:{wrapper:`border-info/30 bg-info/5`,iconRing:`bg-info/15`,iconColor:`text-info`,title:`text-info`,close:`text-info/70 hover:text-info hover:bg-info/10`},success:{wrapper:`border-success/30 bg-success/5`,iconRing:`bg-success/15`,iconColor:`text-success`,title:`text-success`,close:`text-success/70 hover:text-success hover:bg-success/10`},error:{wrapper:`border-destructive/30 bg-destructive/5`,iconRing:`bg-destructive/15`,iconColor:`text-destructive`,title:`text-destructive`,close:`text-destructive/70 hover:text-destructive hover:bg-destructive/10`},warning:{wrapper:`border-warning/40 bg-warning/10`,iconRing:`bg-warning/20`,iconColor:`text-warning-foreground`,title:`text-warning-foreground`,close:`text-warning-foreground/70 hover:text-warning-foreground hover:bg-warning/20`}},C={info:g.Info,success:g.BadgeCheck,error:g.CircleAlert,warning:g.AlertTriangle};function w({html:e}){return p.default.createElement(`span`,{dangerouslySetInnerHTML:{__html:e}})}function T({type:e=`info`,dismissible:t=!1,title:n,message:a,onDismiss:s,children:c,asHTML:l=!1,dismissAriaLabel:u=`Dismiss notification`,className:d}){let f=S[e],m=C[e],_=p.default.useMemo(()=>i.r(a??(typeof c==`string`?c:``)),[c,a]),v=!!n;return(0,h.jsxs)(`div`,{role:`status`,className:r.cn(`notification-banner--component`,`flex w-full items-start gap-3 rounded-lg border px-4 py-3`,`animate-in fade-in-0 slide-in-from-bottom-1 duration-200`,f.wrapper,d),children:[(0,h.jsx)(`span`,{"aria-hidden":`true`,className:r.cn(`mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full`,f.iconRing,f.iconColor),children:(0,h.jsx)(m,{className:`size-4`})}),(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[v&&(0,h.jsx)(i.n,{tag:`div`,weight:`semibold`,className:`leading-snug text-foreground`,children:n}),(0,h.jsxs)(i.n,{tag:`div`,type:v?`secondary`:`main`,className:r.cn(`break-words leading-snug`,v&&`mt-0.5`),children:[!!l&&(0,h.jsx)(w,{html:_}),!l&&(a??c)]})]}),!!t&&(0,h.jsx)(o.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-xs`,"aria-label":u,onClick:s,className:r.cn(`-mr-1 inline-flex size-7 shrink-0 items-center justify-center rounded-md transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,f.close),children:(0,h.jsx)(g.X,{className:`size-4`})})]})}T.displayName=`NotificationBanner`;function E({className:e}){let t=(0,p.useId)();return(0,h.jsxs)(`svg`,{className:r.cn(`placeholder-pattern--component`,e),fill:`none`,stroke:`currentColor`,"aria-hidden":`true`,children:[(0,h.jsx)(`defs`,{children:(0,h.jsx)(`pattern`,{id:t,x:`0`,y:`0`,width:`10`,height:`10`,patternUnits:`userSpaceOnUse`,children:(0,h.jsx)(`path`,{d:`M-3 13 15-5M-5 5l18-18M-1 21 17 3`,stroke:`currentColor`,strokeWidth:`0.75`,strokeLinecap:`square`,vectorEffect:`non-scaling-stroke`})})}),(0,h.jsx)(`rect`,{stroke:`none`,fill:`url(#${t})`,width:`100%`,height:`100%`})]})}E.displayName=`PlaceholderPattern`;function D({when:e,children:t,fallback:n=null}){return e?t:n||null}D.displayName=`ShowIf`;var O={maxAttempts:`Max attempts`,tryAgainIn:`Try again in`};function k({message:e,attempts:n,remaining:a,className:o,strings:s}){let c=t.useStrings(O,s);return(0,h.jsxs)(`div`,{role:`alert`,className:r.cn(`throttle-alert--component`,`flex items-start gap-3 rounded-lg border border-destructive/30 bg-destructive/5 px-4 py-3`,o),children:[(0,h.jsx)(`span`,{"aria-hidden":`true`,className:`mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full bg-destructive/15 text-destructive`,children:(0,h.jsx)(g.ShieldAlert,{className:`size-4`})}),(0,h.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,h.jsx)(i.n,{weight:`medium`,className:`text-destructive leading-snug`,children:e}),(0,h.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-destructive/80`,children:[(0,h.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,h.jsx)(g.RotateCcw,{className:`size-3`,"aria-hidden":`true`}),(0,h.jsx)(`span`,{children:c.maxAttempts}),(0,h.jsx)(`span`,{className:`font-semibold tabular-nums text-destructive`,children:n})]}),(0,h.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,h.jsx)(g.Clock,{className:`size-3`,"aria-hidden":`true`}),(0,h.jsx)(`span`,{children:c.tryAgainIn}),(0,h.jsx)(`span`,{className:`font-semibold tabular-nums text-destructive`,children:a})]})]})]})]})}k.displayName=`ThrottleAlert`;function A({children:e,className:t}){return(0,h.jsx)(`span`,{className:r.cn(`visually-hidden--component`,`absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0`,`[clip:rect(0,0,0,0)]`,t),children:e})}A.displayName=`VisuallyHidden`;var j=[`muted`,`primary`,`secondary`,`info`,`success`],M={muted:`bg-muted text-muted-foreground`,primary:`bg-primary/10 text-primary`,secondary:`bg-secondary text-secondary-foreground`,info:`bg-info/10 text-info`,success:`bg-success/10 text-success`,warning:`bg-warning/15 text-warning`,destructive:`bg-destructive/10 text-destructive`};function N(e,t=!1){let n=e.trim().split(/\s+/);return n.length===0?`?`:t?n[0].slice(0,1).toUpperCase():n.length===1?n[0].slice(0,2).toUpperCase():(n[0][0]+n[n.length-1][0]).toUpperCase()}function ee(e,t){return typeof t==`string`?t:typeof t==`number`?j[Math.abs(t)%j.length]:j[(typeof e==`number`?e:Array.from(e).reduce((e,t)=>e+t.charCodeAt(0),0))%j.length]}function P({users:e,max:t=4,size:n=`default`,className:a,showOverflow:o=!0,overflowFormatter:s,avatarClassName:c}){let l=e.slice(0,t),u=Math.max(0,e.length-t);return(0,h.jsxs)(f.i,{className:r.cn(`stacked-avatars--component`,a),children:[l.map((e,t)=>{let i=N(e.name,n===`sm`),a=ee(e.id??e.name??t,e.tone);return(0,h.jsxs)(f.t,{size:n,className:r.cn(`ring-background`,c),title:e.name,children:[e.imageUrl?(0,h.jsx)(f.o,{src:e.imageUrl,alt:e.name}):null,(0,h.jsx)(f.r,{className:r.cn(`font-semibold`,M[a]),children:i})]},e.id??`${e.name}-${t}`)}),!!o&&u>0&&(0,h.jsx)(f.a,{children:(0,h.jsx)(i.n,{size:`xs`,weight:`semibold`,children:s?s(u):`+${u}`})})]})}P.displayName=`StackedAvatars`;var F={separator:`·`},te={default:{bg:`bg-card`,text:`text-foreground`,border:`border-border`,accent:`text-foreground`,subtle:`text-muted-foreground`},inverse:{bg:`bg-primary`,text:`text-background`,border:`border-primary`,accent:`text-background/80`,subtle:`text-background/65`},muted:{bg:`bg-muted/50`,text:`text-foreground`,border:`border-border`,accent:`text-foreground`,subtle:`text-muted-foreground`},primary:{bg:`bg-primary/10`,text:`text-foreground`,border:`border-primary/30`,accent:`text-primary`,subtle:`text-muted-foreground`},success:{bg:`bg-success/10`,text:`text-foreground`,border:`border-success/30`,accent:`text-success`,subtle:`text-muted-foreground`},warning:{bg:`bg-warning/15`,text:`text-foreground`,border:`border-warning/40`,accent:`text-warning-foreground`,subtle:`text-muted-foreground`},destructive:{bg:`bg-destructive/10`,text:`text-foreground`,border:`border-destructive/30`,accent:`text-destructive`,subtle:`text-muted-foreground`},info:{bg:`bg-info/10`,text:`text-foreground`,border:`border-info/30`,accent:`text-info`,subtle:`text-muted-foreground`}};function ne(e){return e instanceof Date?e:new Date(e)}function I({date:e,time:n,locale:a,layout:o=`stacked`,timePlacement:s,tone:c=`default`,boxed:l,showMonth:u=!0,dayFormat:d=`d`,weekdayFormat:f=`EEE`,monthFormat:p=`MMM`,className:g,strings:_}){let v=ne(e),y=t.useStrings(F,_),b=te[c],x=!Number.isNaN(v.getTime()),S=x?(0,m.format)(v,f,a?{locale:a}:void 0):``,C=x?(0,m.format)(v,d,a?{locale:a}:void 0):``,w=x?(0,m.format)(v,p,a?{locale:a}:void 0):``,T=s??(o===`inline`?`inline`:`below`),E=l??o===`stacked`;return o===`inline`?(0,h.jsxs)(`span`,{className:r.cn(`date-block--component`,`inline-flex items-center gap-1.5 tabular-nums`,E&&r.cn(`rounded-md border px-2 py-1`,b.bg,b.border),g),children:[(0,h.jsx)(i.n,{size:`xs`,weight:`semibold`,className:r.cn(b.accent,`uppercase tracking-wide`),children:S}),(0,h.jsx)(i.n,{weight:`semibold`,children:C}),!!u&&(0,h.jsx)(i.n,{size:`xs`,type:`secondary`,className:`uppercase tracking-wide`,children:w}),!!n&&T===`inline`&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(i.n,{size:`xs`,type:`discrete`,"aria-hidden":!0,children:y.separator}),(0,h.jsx)(i.n,{size:`xs`,type:`secondary`,children:n})]})]}):(0,h.jsxs)(`div`,{className:r.cn(`inline-flex flex-col items-center gap-0.5`,g),children:[(0,h.jsxs)(`div`,{className:r.cn(`flex flex-col items-center justify-center gap-1 tabular-nums`,E&&r.cn(`w-14 min-h-14 rounded-md border px-1.5 py-1.5`,b.bg,b.border)),children:[(0,h.jsx)(i.n,{size:`xxs`,weight:`semibold`,style:{lineHeight:1},className:r.cn(b.accent,`uppercase tracking-wider`),children:S}),(0,h.jsx)(i.n,{size:`lg`,weight:`bold`,style:{lineHeight:1},className:b.text,children:C}),!!u&&(0,h.jsx)(i.n,{size:`xxs`,style:{lineHeight:1},className:r.cn(b.subtle,`uppercase tracking-wider`),children:w})]}),!!n&&T===`below`&&(0,h.jsx)(i.n,{size:`xxs`,type:`secondary`,className:`tabular-nums`,children:n}),!!n&&T===`inline`&&(0,h.jsx)(i.n,{size:`xxs`,type:`secondary`,className:`tabular-nums`,children:n})]})}I.displayName=`DateBlock`;function re({...e}){return(0,h.jsx)(v.Collapsible.Root,{"data-slot":`collapsible`,...e})}function ie({asChild:e=!1,nativeButton:t,render:n,children:r,...i}){let a=e?(0,h.jsx)(s.t,{}):void 0,o=typeof n==`function`?((e,t)=>{let{nativeButton:r,...i}=e;return n(i,t)}):n,c=!0;e&&p.isValidElement(r)&&(c=typeof r.type==`string`?r.type===`button`:!(`href`in(r.props??{})));let l=t??(e?c:!0);return(0,h.jsx)(v.Collapsible.Trigger,{"data-slot":`collapsible-trigger`,render:a??o,nativeButton:l,...i,children:r})}function ae({...e}){return(0,h.jsx)(v.Collapsible.Panel,{"data-slot":`collapsible-content`,...e})}var oe=`—`,se=e=>typeof e==`string`?e.trim():``;function L({money:e,currency:t=`EUR`,onChangeData:n,recordCurrency:a,label:o,hint:s,helperText:c,error:d,required:f,invalid:m,showMigrationWarning:_=!0,migrationWarningMessage:v,showOriginalHint:y=!0,className:b,onChange:x,onCurrencyChange:S,...C}){let w=a??e?.recordCurrency??void 0,T=(0,p.useMemo)(()=>w!==void 0&&w!==t,[w,t]),E=(0,p.useMemo)(()=>y?se(e?.pair?.formatted):``,[y,e?.pair?.formatted]),D=E.length>0&&!d,O=T&&_,k=(0,p.useCallback)(e=>{x?.(e);let r=Number.parseFloat(e.target.value);n?.({amount:Number.isFinite(r)?r:0,currency:t})},[x,n,t]),A=(0,p.useCallback)(e=>{S?.(e);let t=Number.parseFloat(String(C.value??``));n?.({amount:Number.isFinite(t)?t:0,currency:e})},[S,n,C.value]),j=m??!!d,M=(0,h.jsx)(u.r,{...C,currency:t,onChange:k,onCurrencyChange:A,invalid:j}),N=o||s||c||d||f?(0,h.jsx)(u.n,{label:o,hint:s,helperText:c,error:d,required:f,children:M}):M;return(0,h.jsxs)(`div`,{className:r.cn(`money-input--component`,`space-y-2`,b),children:[N,!!D&&(0,h.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[(0,h.jsx)(g.Info,{className:`h-3.5 w-3.5 shrink-0`}),(0,h.jsx)(i.n,{size:`xs`,type:`secondary`,children:E||oe})]}),!!O&&(0,h.jsxs)(l.t,{className:`border-warning/50 bg-warning/5 py-2`,children:[(0,h.jsx)(g.AlertTriangle,{className:`h-4 w-4 text-warning`}),(0,h.jsx)(l.r,{className:`text-warning-foreground text-xs`,children:v??`Currency will be converted from ${w??``} to ${t}.`})]})]})}L.displayName=`MoneyInput`;var ce={true:`Yes`,false:`No`};function R({label:e,value:n=!1,trueLabel:o,falseLabel:s,showIcon:c=!0,trueVariant:l=`success`,falseVariant:u=`secondary`,className:d,badgeClassName:f,strings:p}){let m=t.useStrings(ce,p),_=!!n,v=_?g.CheckCircle2:g.XCircle,y=_?l:u,b=(_?o:s)??(_?m.true:m.false);return(0,h.jsxs)(`div`,{className:r.cn(`boolean-indicator--component`,`flex items-center justify-between rounded-md border border-border/60 bg-muted/30 px-3 py-2`,d),children:[(0,h.jsx)(i.n,{size:`xs`,type:`secondary`,className:`uppercase tracking-wide`,children:e}),(0,h.jsxs)(a.t,{variant:y,size:`sm`,className:r.cn(`whitespace-nowrap`,f),children:[!!c&&(0,h.jsx)(v,{className:`h-3.5 w-3.5`}),b]})]})}R.displayName=`BooleanIndicator`;function le({className:e,children:t,value:n,...i}){return(0,h.jsxs)(y.Progress.Root,{value:n,"data-slot":`progress`,className:r.cn(`flex flex-wrap gap-3`,e),...i,children:[t,(0,h.jsx)(z,{children:(0,h.jsx)(B,{})})]})}function z({className:e,...t}){return(0,h.jsx)(y.Progress.Track,{className:r.cn(`bg-muted h-1.5 rounded-full relative flex w-full items-center overflow-x-hidden`,e),"data-slot":`progress-track`,...t})}function B({className:e,...t}){return(0,h.jsx)(y.Progress.Indicator,{"data-slot":`progress-indicator`,className:r.cn(`bg-primary h-full transition-all`,e),...t})}function ue({className:e,...t}){return(0,h.jsx)(y.Progress.Label,{className:r.cn(`text-sm font-medium`,e),"data-slot":`progress-label`,...t})}function de({className:e,...t}){return(0,h.jsx)(y.Progress.Value,{className:r.cn(`text-muted-foreground ml-auto text-sm tabular-nums`,e),"data-slot":`progress-value`,...t})}var fe=/oklch\\(([.\\d-]+)\\s+([.\\d]+)\\s+([.\\d]+)\\)/;function V(e,t){let n=e.match(fe);return n?{l:Number.parseFloat(n[1]),c:Number.parseFloat(n[2]),h:Number.parseFloat(n[3])}:{l:t[0],c:t[1],h:t[2]}}function H({data:e,foreground:t,background:n,robustness:i=`M`,className:a,...o}){let[s,c]=(0,p.useState)(null);return(0,p.useEffect)(()=>{(async()=>{try{let r=String(e??``).trim();if(!r){c(null);return}let a=getComputedStyle(document.documentElement),o=t??a.getPropertyValue(`--foreground`),s=n??a.getPropertyValue(`--background`),l=V(o,[.21,.006,285.885]),u=V(s,[.985,0,0]);c(await x.default.toString(r,{type:`svg`,color:{dark:(0,b.formatHex)((0,b.oklch)({mode:`oklch`,...l})),light:(0,b.formatHex)((0,b.oklch)({mode:`oklch`,...u}))},width:200,errorCorrectionLevel:i,margin:0}))}catch{c(``)}})()},[e,t,n,i]),s?(0,h.jsx)(`div`,{className:r.cn(`qr-code--component`,`size-full`,`[&_svg]:size-full`,a),dangerouslySetInnerHTML:{__html:s},...o}):null}H.displayName=`QRCode`;function pe({className:e,...t}){return(0,h.jsx)(`div`,{"data-slot":`empty`,className:r.cn(`gap-4 rounded-lg border-dashed p-12 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance`,e),...t})}function me({className:e,...t}){return(0,h.jsx)(`div`,{"data-slot":`empty-header`,className:r.cn(`gap-2 flex max-w-sm flex-col items-center`,e),...t})}var he=(0,_.cva)(`mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6`}},defaultVariants:{variant:`default`}});function ge({className:e,variant:t=`default`,...n}){return(0,h.jsx)(`div`,{"data-slot":`empty-icon`,"data-variant":t,className:r.cn(he({variant:t,className:e})),...n})}function _e({className:e,...t}){return(0,h.jsx)(`div`,{"data-slot":`empty-content`,className:r.cn(`gap-4 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance`,e),...t})}var U={title:`Nothing here yet`,description:`Once data lands, it will show up in this view.`,ariaLabel:`Empty state`},ve={compact:`py-6`,base:`py-12`,loose:`py-16`},ye={none:`default`,icon:`icon`,"icon-soft":`icon`,illustration:`default`},be={none:void 0,icon:void 0,"icon-soft":`bg-muted/40 text-muted-foreground`,illustration:`mb-4`},W=(0,p.forwardRef)(function({title:e,description:n,media:a,mediaVariant:o=`none`,renderMedia:s,actions:c,footer:l,padding:u=`base`,border:d=!1,className:f,strings:p,ariaLabel:m},g){let _=t.useStrings(U,p),v=e??_.title,y=n===!1?null:n??_.description,b=s?s({mediaVariant:o}):a,x=!!b;return(0,h.jsxs)(pe,{ref:g,role:`status`,"aria-label":m??_.ariaLabel,className:r.cn(`empty-state--component`,ve[u],d?`border border-dashed`:`border-0`,f),children:[(0,h.jsxs)(me,{children:[!!x&&(0,h.jsx)(ge,{variant:ye[o],className:be[o],children:b}),(0,h.jsx)(i.t,{tag:`h3`,className:`border-0 pb-0 text-base`,"data-slot":`empty-title`,children:v}),!!y&&(0,h.jsx)(i.n,{size:`xs`,type:`secondary`,className:`leading-relaxed [&>a]:text-primary [&>a]:underline [&>a]:underline-offset-4 hover:[&>a]:no-underline`,"data-slot":`empty-description`,children:y})]}),(!!c||!!l)&&(0,h.jsxs)(_e,{children:[!!c&&(0,h.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:c}),!!l&&(0,h.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:l})]})]})});W.displayName=`EmptyState`;function G({className:e}){return(0,h.jsxs)(`div`,{className:r.cn(`relative h-24 w-32`,e),"aria-hidden":`true`,children:[(0,h.jsxs)(`div`,{className:`bg-muted/70 dark:bg-muted/40 border-border/50 absolute left-1 top-1 flex h-20 w-20 -rotate-6 flex-col gap-1.5 rounded-md border p-2 shadow-sm`,children:[(0,h.jsx)(`div`,{className:`bg-muted h-2 w-12 rounded`}),(0,h.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-10 rounded`}),(0,h.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-9 rounded`})]}),(0,h.jsxs)(`div`,{className:`bg-background border-border absolute right-1 top-2 flex h-20 w-20 rotate-3 flex-col gap-1.5 rounded-md border p-2 shadow-sm`,children:[(0,h.jsx)(`div`,{className:`bg-muted h-2 w-12 rounded`}),(0,h.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-10 rounded`}),(0,h.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-9 rounded`}),(0,h.jsxs)(`div`,{className:`mt-auto flex items-center gap-1`,children:[(0,h.jsx)(`div`,{className:`bg-success size-1.5 rounded-full`}),(0,h.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-8 rounded`})]})]})]})}G.displayName=`DocumentStackIllustration`;function K({className:e}){return(0,h.jsxs)(`div`,{className:r.cn(`relative h-24 w-32`,e),"aria-hidden":`true`,children:[(0,h.jsx)(`div`,{className:`bg-success/12 border-success/30 absolute left-1/2 top-0 flex size-8 -translate-x-1/2 items-center justify-center rounded-full border`,children:(0,h.jsx)(`svg`,{viewBox:`0 0 16 16`,className:`text-success size-3.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,h.jsx)(`path`,{d:`M3 8l3 3 7-7`})})}),(0,h.jsxs)(`div`,{className:`bg-background border-border absolute inset-x-0 bottom-0 flex h-14 flex-col rounded-lg border shadow-sm`,children:[(0,h.jsx)(`div`,{className:`bg-muted/30 h-3 rounded-t-lg`}),(0,h.jsxs)(`div`,{className:`flex flex-1 items-center justify-between px-3`,children:[(0,h.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,h.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-12 rounded`}),(0,h.jsx)(`div`,{className:`bg-muted/40 h-1.5 w-8 rounded`})]}),(0,h.jsx)(`div`,{className:`bg-muted/40 size-3 rounded-full`})]})]})]})}K.displayName=`InboxCleanIllustration`;function q({className:e}){return(0,h.jsx)(`div`,{className:r.cn(`flex size-20 items-center justify-center rounded-full bg-muted/40 ring-8 ring-muted/20`,e),"aria-hidden":`true`,children:(0,h.jsx)(g.Search,{className:`size-8 text-muted-foreground`})})}q.displayName=`SearchGlassIllustration`;function J({className:e}){return(0,h.jsxs)(`div`,{className:r.cn(`relative h-24 w-52`,e),"aria-hidden":`true`,children:[(0,h.jsx)(`div`,{className:`bg-muted/60 dark:bg-muted/30 border-border/50 absolute inset-x-6 top-0 h-6 rounded-t-lg border`}),(0,h.jsx)(`div`,{className:`bg-muted/80 dark:bg-muted/50 border-border/60 absolute inset-x-3 top-3 h-6 rounded-t-lg border`}),(0,h.jsxs)(`div`,{className:`bg-background border-border absolute inset-x-0 top-6 flex h-16 items-center gap-3 rounded-lg border px-4 shadow-sm`,children:[(0,h.jsx)(`div`,{className:`bg-muted size-8 shrink-0 rounded`}),(0,h.jsxs)(`div`,{className:`flex flex-1 flex-col gap-1.5`,children:[(0,h.jsx)(`div`,{className:`bg-muted h-2.5 w-3/4 rounded`}),(0,h.jsx)(`div`,{className:`bg-muted/60 h-2 w-1/2 rounded`})]})]}),(0,h.jsx)(`div`,{className:`from-background/0 via-background/60 to-background pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-linear-to-b`})]})}J.displayName=`StackedCardsIllustration`;function Y({className:e}){return(0,h.jsxs)(`div`,{className:r.cn(`relative flex h-24 w-32 items-center justify-center`,e),"aria-hidden":`true`,children:[(0,h.jsx)(`div`,{className:`bg-muted/70 border-border absolute left-2 size-12 rounded-full border-2`}),(0,h.jsx)(`div`,{className:`bg-muted border-border z-10 size-14 rounded-full border-2 shadow-sm`}),(0,h.jsx)(`div`,{className:`bg-muted/60 border-border absolute right-2 size-10 rounded-full border-2`})]})}Y.displayName=`UsersCircleIllustration`;var xe={copySuccess:`Email copied to clipboard`};function X({email:e,copyable:a=!0,copySuccessMessage:o,emptyLabel:s=`—`,clickable:c=!0,strings:l,size:u,type:f=`main`,tag:p=`span`,className:m,...g}){let{defaultTextSize:_}=n.m(),v=u??_??`sm`,y=t.useStrings(xe,{...o?{copySuccess:o}:{},...l});if(!e||e.trim().length===0)return(0,h.jsx)(i.n,{size:v,type:`secondary`,tag:p,className:r.cn(`email-display--component`,m),...g,children:s});let b=(0,h.jsx)(i.n,{size:v,type:f,tag:`span`,className:r.cn(`font-medium`,`decoration-dotted decoration-border underline underline-offset-4`,`transition-colors duration-200`,c?`hover:decoration-current`:null,m),children:e});if(a){let t=(0,h.jsx)(d.t,{value:e,displayValue:b,successMessage:y.copySuccess,className:`-mx-0`});return c?(0,h.jsx)(`a`,{href:`mailto:${e}`,className:`inline-flex items-center no-underline`,onClick:e=>e.stopPropagation(),children:t}):t}return c?(0,h.jsx)(`a`,{href:`mailto:${e}`,className:`inline-flex items-center no-underline`,children:b}):b}X.displayName=`EmailDisplay`;var Se={copySuccess:`Phone number copied to clipboard`};function Z(e){return e.replace(/[\s().-]/g,``)}function Q({phone:e,copyable:a=!0,copySuccessMessage:o,emptyLabel:s=`—`,clickable:c=!0,strings:l,size:u,type:f=`main`,tag:p=`span`,className:m,...g}){let{defaultTextSize:_}=n.m(),v=u??_??`sm`,y=t.useStrings(Se,{...o?{copySuccess:o}:{},...l});if(!e||e.trim().length===0)return(0,h.jsx)(i.n,{size:v,type:`secondary`,tag:p,className:r.cn(`phone-display--component`,m),...g,children:s});let b=(0,h.jsx)(i.n,{size:v,type:f,tag:`span`,className:r.cn(`font-medium`,`decoration-dotted decoration-border underline underline-offset-4`,`transition-colors duration-200`,c?`hover:decoration-current`:null,m),children:e});if(a){let t=(0,h.jsx)(d.t,{value:e,displayValue:b,successMessage:y.copySuccess,className:`-mx-0`});return c?(0,h.jsx)(`a`,{href:`tel:${Z(e)}`,className:`inline-flex items-center no-underline`,onClick:e=>e.stopPropagation(),children:t}):t}return c?(0,h.jsx)(`a`,{href:`tel:${Z(e)}`,className:`inline-flex items-center no-underline`,children:b}):b}Q.displayName=`PhoneDisplay`;var Ce={copySuccess:`URL copied to clipboard`,httpWarning:`This URL uses HTTP which is not secure`};function we(e){try{return new URL(e).protocol===`http:`}catch{return e.toLowerCase().startsWith(`http://`)}}function Te(e,t,n){if(!t||e.length<=n)return e;try{let t=new URL(e),r=t.hostname,i=n-r.length-5;return i>10?`${r}${t.pathname.slice(0,i)}...`:`${e.slice(0,n-3)}...`}catch{return`${e.slice(0,n-3)}...`}}function $({url:e,copyable:a=!0,copySuccessMessage:o,emptyLabel:s=`—`,clickable:l=!0,truncate:u=!1,maxLength:f=50,showExternalIcon:p=!0,httpWarningMessage:m,strings:_,size:v,type:y=`main`,tag:b=`span`,className:x,...S}){let{defaultTextSize:C}=n.m(),w=v??C??`sm`,T=t.useStrings(Ce,{...o?{copySuccess:o}:{},...m?{httpWarning:m}:{},..._});if(!e||e.trim().length===0)return(0,h.jsx)(i.n,{size:w,type:`secondary`,tag:b,className:r.cn(`url-display--component`,x),...S,children:s});let E=we(e),D=Te(e,u,f),O=u&&e.length>f,k=(0,h.jsxs)(i.n,{size:w,type:y,tag:`span`,className:`inline-flex items-center gap-1.5`,children:[!!E&&(0,h.jsxs)(c.t,{children:[(0,h.jsx)(c.i,{render:e=>{let{type:t,disabled:n,className:i,...a}=e;return(0,h.jsx)(`span`,{...a,tabIndex:0,role:`img`,"aria-label":T.httpWarning,className:r.cn(`inline-flex items-center text-warning`,i),children:(0,h.jsx)(g.ShieldAlert,{className:`size-3.5`,"aria-hidden":`true`})})}}),(0,h.jsx)(c.n,{side:`top`,className:`max-w-xs`,children:(0,h.jsx)(i.n,{size:`xs`,children:T.httpWarning})})]}),(0,h.jsx)(`span`,{className:r.cn(`decoration-dotted underline underline-offset-4`,`transition-colors duration-200`,E?`decoration-warning`:`decoration-border`,l?`hover:decoration-current`:null),title:O&&e||void 0,children:D}),!!l&&!!p&&(0,h.jsx)(g.ExternalLink,{className:`size-3 text-muted-foreground`})]});if(a){let t=(0,h.jsx)(d.t,{value:e,displayValue:k,successMessage:T.copySuccess,className:r.cn(`-mx-0`,x)});return l?(0,h.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center no-underline`,onClick:e=>e.stopPropagation(),children:t}):t}return l?(0,h.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center no-underline`,children:k}):k}$.displayName=`UrlDisplay`;function Ee({label:e,value:t,layout:n=`between`,mono:a=!1,className:o,labelClassName:s,valueClassName:c}){return n===`stacked`?(0,h.jsxs)(`div`,{className:r.cn(`inline-stat--component`,`flex flex-col gap-0.5`,o),children:[(0,h.jsx)(i.n,{tag:`span`,size:`xxs`,type:`secondary`,className:s,children:e}),(0,h.jsx)(i.n,{tag:`span`,className:r.cn(a&&`tabular-nums`,c),children:t})]}):(0,h.jsxs)(`div`,{className:r.cn(`flex items-center gap-2`,n===`between`?`justify-between`:`justify-start`,o),children:[(0,h.jsx)(i.n,{tag:`span`,size:`xs`,type:`secondary`,className:s,children:e}),(0,h.jsx)(i.n,{tag:`span`,className:r.cn(a&&`tabular-nums`,c),children:t})]})}Ee.displayName=`InlineStat`;var De=`—`,Oe=(e,t,n)=>{if(e==null||e===``)return null;if(typeof e==`string`)return e;if(Number.isNaN(e))return null;try{return new Intl.NumberFormat(t,n).format(e)}catch{return String(e)}};function ke({value:e,align:t=`right`,locale:a,formatOptions:o,emptyLabel:s=De,size:c,weight:l,type:u,className:d,...f}){let{defaultTextSize:p}=n.m(),m=c??p??`sm`,g=Oe(e,a,o),_=t===`right`?`text-right`:t===`center`?`text-center`:`text-left`;return g===null?(0,h.jsx)(i.n,{size:m,weight:l,type:u??`secondary`,className:r.cn(`numeric-value--component`,`tabular-nums`,_,d),...f,children:s}):(0,h.jsx)(i.n,{size:m,weight:l,type:u,className:r.cn(`tabular-nums`,_,d),...f,children:g})}ke.displayName=`NumericValue`;var Ae={sm:{avatar:`size-7`,gap:`gap-2`,nameSize:`sm`,subtitleSize:`xs`},base:{avatar:`size-9`,gap:`gap-3`,nameSize:`sm`,subtitleSize:`xs`},lg:{avatar:`size-11`,gap:`gap-3`,nameSize:`base`,subtitleSize:`sm`}};function je({name:e,subtitle:t,avatarUrl:n,avatarAlt:a,initials:o,avatar:s,trailing:c,size:l=`base`,className:u}){let d=Ae[l],p=s??(0,h.jsxs)(f.t,{className:d.avatar,children:[!!n&&(0,h.jsx)(f.o,{src:n,alt:a??(typeof e==`string`?e:void 0)}),!!o&&(0,h.jsx)(f.r,{children:o})]});return(0,h.jsxs)(`div`,{className:r.cn(`user-cell--component`,`flex items-center`,d.gap,u),children:[p,(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(i.n,{size:d.nameSize,weight:`semibold`,className:`truncate`,children:e}),!!t&&(0,h.jsx)(i.n,{size:d.subtitleSize,type:`secondary`,className:`truncate`,children:t})]}),!!c&&(0,h.jsx)(`div`,{className:`shrink-0`,children:c})]})}je.displayName=`UserCell`;function Me({title:e,description:t,badge:n,action:a,dense:o=!1,className:s}){return(0,h.jsxs)(`div`,{className:r.cn(`section-header--component`,`flex items-start justify-between`,o?`gap-2`:`gap-3`,s),children:[(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsxs)(`div`,{className:r.cn(`flex items-center`,o?`gap-1.5`:`gap-2`),children:[(0,h.jsx)(i.n,{size:o?`xs`:`sm`,weight:`semibold`,className:`truncate`,children:e}),!!n&&(0,h.jsx)(`span`,{className:`shrink-0`,children:n})]}),!!t&&(0,h.jsx)(i.n,{size:o?`xxs`:`xs`,type:`secondary`,className:o?`mt-0.5`:`mt-1`,children:t})]}),!!a&&(0,h.jsx)(`div`,{className:`shrink-0`,children:a})]})}Me.displayName=`SectionHeader`,Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return z}});
|
|
2
|
+
//# sourceMappingURL=display-oDW0O9yB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-oDW0O9yB.cjs","names":[],"sources":["../../src/components/base/display/notification-banner.tsx","../../src/components/base/display/placeholder-pattern.tsx","../../src/components/base/display/show-if.tsx","../../src/components/base/display/throttle-alert.tsx","../../src/components/base/display/visually-hidden.tsx","../../src/components/base/display/stacked-avatars.tsx","../../src/components/base/display/date-block.tsx","../../src/components/ui/collapsible.tsx","../../src/components/base/display/money-input.tsx","../../src/components/base/display/boolean-indicator.tsx","../../src/components/ui/progress.tsx","../../src/components/base/display/qr-code.tsx","../../src/components/ui/empty.tsx","../../src/components/base/display/empty-state/empty-state.strings.ts","../../src/components/base/display/empty-state/empty-state.tsx","../../src/components/base/display/empty-state/partials/illustrations/document-stack.tsx","../../src/components/base/display/empty-state/partials/illustrations/inbox-clean.tsx","../../src/components/base/display/empty-state/partials/illustrations/search-glass.tsx","../../src/components/base/display/empty-state/partials/illustrations/stacked-cards.tsx","../../src/components/base/display/empty-state/partials/illustrations/users-circle.tsx","../../src/components/base/display/fields/email-display.tsx","../../src/components/base/display/fields/phone-display.tsx","../../src/components/base/display/fields/url-display.tsx","../../src/components/base/display/inline-stat/inline-stat.tsx","../../src/components/base/display/numeric-value/numeric-value.tsx","../../src/components/base/display/user-cell/user-cell.tsx","../../src/components/base/display/section-header/section-header.tsx"],"sourcesContent":["/**\n * NotificationBanner — full-width inline notification with type-specific\n * styling (info / success / error / warning). The icon sits in a soft circle\n * for clear hierarchy, the title (when present) reads at full strength, and\n * the message uses the muted secondary tone so the type colour highlights\n * without overwhelming. Optional dismiss button on the trailing edge.\n *\n * Use inside page bodies for non-blocking notices; reach for `Alert` when\n * the affordance is structural (e.g. inside a form), and Toast for transient\n * feedback.\n */\nimport { AlertTriangle, BadgeCheck, CircleAlert, Info, X } from 'lucide-react';\nimport React from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { sanitizeHtml } from '@/lib/sanitize-html';\nimport { cn } from '@/lib/utils';\n\nexport type NotificationType = 'info' | 'success' | 'error' | 'warning';\n\nexport interface NotificationBannerProps {\n\ttype?: NotificationType;\n\tdismissible?: boolean;\n\ttitle?: string;\n\tmessage?: string;\n\tonDismiss?: () => void;\n\tchildren?: React.ReactNode;\n\tasHTML?: boolean;\n\tdismissAriaLabel?: string;\n\tclassName?: string;\n}\n\ninterface BannerTone {\n\twrapper: string;\n\ticonRing: string;\n\ticonColor: string;\n\ttitle: string;\n\tclose: string;\n}\n\nconst TONES: Record<NotificationType, BannerTone> = {\n\tinfo: {\n\t\twrapper: 'border-info/30 bg-info/5',\n\t\ticonRing: 'bg-info/15',\n\t\ticonColor: 'text-info',\n\t\ttitle: 'text-info',\n\t\tclose: 'text-info/70 hover:text-info hover:bg-info/10',\n\t},\n\tsuccess: {\n\t\twrapper: 'border-success/30 bg-success/5',\n\t\ticonRing: 'bg-success/15',\n\t\ticonColor: 'text-success',\n\t\ttitle: 'text-success',\n\t\tclose: 'text-success/70 hover:text-success hover:bg-success/10',\n\t},\n\terror: {\n\t\twrapper: 'border-destructive/30 bg-destructive/5',\n\t\ticonRing: 'bg-destructive/15',\n\t\ticonColor: 'text-destructive',\n\t\ttitle: 'text-destructive',\n\t\tclose: 'text-destructive/70 hover:text-destructive hover:bg-destructive/10',\n\t},\n\twarning: {\n\t\twrapper: 'border-warning/40 bg-warning/10',\n\t\ticonRing: 'bg-warning/20',\n\t\ticonColor: 'text-warning-foreground',\n\t\ttitle: 'text-warning-foreground',\n\t\tclose: 'text-warning-foreground/70 hover:text-warning-foreground hover:bg-warning/20',\n\t},\n};\n\nconst ICONS: Record<NotificationType, React.ElementType> = {\n\tinfo: Info,\n\tsuccess: BadgeCheck,\n\terror: CircleAlert,\n\twarning: AlertTriangle,\n};\n\nfunction SanitizedSpan({ html }: { html: string }) {\n\treturn React.createElement('span', { dangerouslySetInnerHTML: { __html: html } });\n}\n\nexport function NotificationBanner({\n\ttype = 'info',\n\tdismissible = false,\n\ttitle,\n\tmessage,\n\tonDismiss,\n\tchildren,\n\tasHTML = false,\n\tdismissAriaLabel = 'Dismiss notification',\n\tclassName,\n}: NotificationBannerProps) {\n\tconst tone = TONES[type];\n\tconst IconComponent = ICONS[type];\n\tconst sanitizedHtml = React.useMemo(\n\t\t() => sanitizeHtml(message ?? (typeof children === 'string' ? children : '')),\n\t\t[children, message],\n\t);\n\tconst hasTitle = !!title;\n\n\treturn (\n\t\t<div\n\t\t\trole=\"status\"\n\t\t\tclassName={cn('notification-banner--component', \n\t\t\t\t'flex w-full items-start gap-3 rounded-lg border px-4 py-3',\n\t\t\t\t'animate-in fade-in-0 slide-in-from-bottom-1 duration-200',\n\t\t\t\ttone.wrapper,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\ttone.iconRing,\n\t\t\t\t\ttone.iconColor,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<IconComponent className=\"size-4\" />\n\t\t\t</span>\n\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t{hasTitle && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"leading-snug text-foreground\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"div\"\n\t\t\t\t\ttype={hasTitle ? 'secondary' : 'main'}\n\t\t\t\t\tclassName={cn('break-words leading-snug', hasTitle && 'mt-0.5')}\n\t\t\t\t>\n\t\t\t\t\t{!!asHTML && <SanitizedSpan html={sanitizedHtml} />}\n\t\t\t\t\t{!asHTML && (message ?? children)}\n\t\t\t\t</Text>\n\t\t\t</div>\n\n\t\t\t{!!dismissible && (\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"icon-xs\"\n\t\t\t\t\taria-label={dismissAriaLabel}\n\t\t\t\t\tonClick={onDismiss}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'-mr-1 inline-flex size-7 shrink-0 items-center justify-center rounded-md transition-colors',\n\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\ttone.close,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<X className=\"size-4\" />\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nNotificationBanner.displayName = 'NotificationBanner';\n\nexport default NotificationBanner;\n","/**\n * PlaceholderPattern — diagonal-stripe SVG fill suitable as a skeleton or\n * empty-region indicator. Uses a unique pattern id per instance so multiple\n * copies on the same page don't collide.\n */\nimport { useId } from 'react';\n\nimport { cn } from '@/lib/utils';\nexport interface PlaceholderPatternProps {\n\tclassName?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n\tconst patternId = useId();\n\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('placeholder-pattern--component', className)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\tx=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"10\"\n\t\t\t\t\theight=\"10\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"0.75\"\n\t\t\t\t\t\tstrokeLinecap=\"square\"\n\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t/>\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect\n\t\t\t\tstroke=\"none\"\n\t\t\t\tfill={`url(#${patternId})`}\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"100%\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nPlaceholderPattern.displayName = 'PlaceholderPattern';\n\n","/**\n * ShowIf — conditional render gate. Returns `children` when `when` is truthy,\n * otherwise the optional `fallback`. Useful for inline presentation logic\n * where a ternary would be noisier than a self-explanatory tag.\n */\nimport type { ReactNode } from 'react';\n\nexport type ShowIfProps = { when: boolean; children: ReactNode; fallback?: ReactNode };\n\nexport function ShowIf({ when, children, fallback = null }: ShowIfProps) {\n\tif (when) return children;\n\tif (fallback) return fallback;\n\treturn null;\n}\n\nShowIf.displayName = 'ShowIf';\n\nexport default ShowIf;\n\n","/**\n * ThrottleAlert — destructive alert for rate-limit / throttling errors.\n *\n * Single header icon, primary message, and a tight inline meta row showing\n * `attempts` and `remaining`. Use as a banner above a form when a request\n * has been blocked and the user must wait. Strings overridable for i18n.\n */\nimport { ShieldAlert, Clock, RotateCcw } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface ThrottleAlertStrings {\n\tmaxAttempts: string;\n\ttryAgainIn: string;\n}\n\nexport const defaultThrottleAlertStrings: ThrottleAlertStrings = {\n\tmaxAttempts: 'Max attempts',\n\ttryAgainIn: 'Try again in',\n};\n\nexport interface ThrottleAlertProps {\n\tmessage: string;\n\tattempts: number;\n\tremaining: string;\n\tclassName?: string;\n\tstrings?: Partial<ThrottleAlertStrings>;\n}\n\nexport function ThrottleAlert({\n\tmessage,\n\tattempts,\n\tremaining,\n\tclassName,\n\tstrings: stringsProp,\n}: ThrottleAlertProps) {\n\tconst strings = useStrings(defaultThrottleAlertStrings, stringsProp);\n\n\treturn (\n\t\t<div\n\t\t\trole=\"alert\"\n\t\t\tclassName={cn('throttle-alert--component', \n\t\t\t\t'flex items-start gap-3 rounded-lg border border-destructive/30 bg-destructive/5 px-4 py-3',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName=\"mt-0.5 inline-flex size-8 shrink-0 items-center justify-center rounded-full bg-destructive/15 text-destructive\"\n\t\t\t>\n\t\t\t\t<ShieldAlert className=\"size-4\" />\n\t\t\t</span>\n\t\t\t<div className=\"min-w-0 flex-1 space-y-1.5\">\n\t\t\t\t<Text weight=\"medium\" className=\"text-destructive leading-snug\">\n\t\t\t\t\t{message}\n\t\t\t\t</Text>\n\t\t\t\t<div className=\"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-destructive/80\">\n\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t<RotateCcw className=\"size-3\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<span>{strings.maxAttempts}</span>\n\t\t\t\t\t\t<span className=\"font-semibold tabular-nums text-destructive\">{attempts}</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"inline-flex items-center gap-1.5\">\n\t\t\t\t\t\t<Clock className=\"size-3\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<span>{strings.tryAgainIn}</span>\n\t\t\t\t\t\t<span className=\"font-semibold tabular-nums text-destructive\">{remaining}</span>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nThrottleAlert.displayName = 'ThrottleAlert';\n","/**\n * VisuallyHidden — hides content from sighted users while keeping it readable\n * by assistive tech (screen readers, voice). Use to label icon-only buttons,\n * give context to status changes, or expose extra structure for AT users.\n */\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface VisuallyHiddenProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function VisuallyHidden({ children, className }: VisuallyHiddenProps) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn('visually-hidden--component', \n\t\t\t\t'absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0',\n\t\t\t\t'[clip:rect(0,0,0,0)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</span>\n\t);\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","/**\n * StackedAvatars — overlapping avatar group with optional `+N` overflow chip,\n * configurable size, and an optional semantic `tone` for fallbacks (initials)\n * when the consumer hasn't passed `imageUrl`.\n *\n * Wraps the shadcn AvatarGroup primitive with library-default sizes and a\n * deterministic tone picker so fallbacks stay stable without raw hue utilities.\n */\nimport * as React from 'react';\nimport {\n\tAvatar,\n\tAvatarFallback,\n\tAvatarGroup,\n\tAvatarGroupCount,\n\tAvatarImage,\n} from '@/components/ui/avatar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type StackedAvatarsSize = 'sm' | 'default' | 'lg';\nexport type StackedAvatarTone =\n\t| 'muted'\n\t| 'primary'\n\t| 'secondary'\n\t| 'info'\n\t| 'success'\n\t| 'warning'\n\t| 'destructive';\n\nexport interface StackedAvatarUser {\n\tid?: string;\n\tname: string;\n\timageUrl?: string;\n\t/** Optional semantic tone override for this user's fallback. Numeric values map to the token set. */\n\ttone?: StackedAvatarTone | number;\n}\n\nexport interface StackedAvatarsProps {\n\tusers: StackedAvatarUser[];\n\tmax?: number;\n\tsize?: StackedAvatarsSize;\n\tclassName?: string;\n\t/** Whether to render a `+N` count when `users.length > max`. Default `true`. */\n\tshowOverflow?: boolean;\n\t/** Provide custom overflow text (e.g. \"+12 more\"). Default `+N`. */\n\toverflowFormatter?: (overflow: number) => React.ReactNode;\n\t/** Extra class names applied to each avatar root. */\n\tavatarClassName?: string;\n}\n\nconst FALLBACK_TONES: StackedAvatarTone[] = [\n\t'muted',\n\t'primary',\n\t'secondary',\n\t'info',\n\t'success',\n];\n\nconst FALLBACK_TONE_CLASSNAMES: Record<StackedAvatarTone, string> = {\n\tmuted: 'bg-muted text-muted-foreground',\n\tprimary: 'bg-primary/10 text-primary',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tinfo: 'bg-info/10 text-info',\n\tsuccess: 'bg-success/10 text-success',\n\twarning: 'bg-warning/15 text-warning',\n\tdestructive: 'bg-destructive/10 text-destructive',\n};\n\nfunction getInitials(name: string, compact = false): string {\n\tconst parts = name.trim().split(/\\s+/);\n\tif (parts.length === 0) return '?';\n\tif (compact) return parts[0].slice(0, 1).toUpperCase();\n\tif (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n\treturn (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n}\n\nfunction pickFallbackTone(seed: string | number, override?: StackedAvatarTone | number) {\n\tif (typeof override === 'string') {\n\t\treturn override;\n\t}\n\tif (typeof override === 'number') {\n\t\treturn FALLBACK_TONES[Math.abs(override) % FALLBACK_TONES.length];\n\t}\n\tconst key = typeof seed === 'number' ? seed : Array.from(seed).reduce((s, c) => s + c.charCodeAt(0), 0);\n\treturn FALLBACK_TONES[key % FALLBACK_TONES.length];\n}\n\nexport function StackedAvatars({\n\tusers,\n\tmax = 4,\n\tsize = 'default',\n\tclassName,\n\tshowOverflow = true,\n\toverflowFormatter,\n\tavatarClassName,\n}: StackedAvatarsProps) {\n\tconst visible = users.slice(0, max);\n\tconst overflow = Math.max(0, users.length - max);\n\n\treturn (\n\t\t<AvatarGroup className={cn('stacked-avatars--component', className)}>\n\t\t\t{visible.map((user, index) => {\n\t\t\t\tconst initials = getInitials(user.name, size === 'sm');\n\t\t\t\tconst fallbackTone = pickFallbackTone(user.id ?? user.name ?? index, user.tone);\n\t\t\t\treturn (\n\t\t\t\t\t<Avatar\n\t\t\t\t\t\tkey={user.id ?? `${user.name}-${index}`}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tclassName={cn('ring-background', avatarClassName)}\n\t\t\t\t\t\ttitle={user.name}\n\t\t\t\t\t>\n\t\t\t\t\t\t{user.imageUrl ? (\n\t\t\t\t\t\t\t<AvatarImage src={user.imageUrl} alt={user.name} />\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<AvatarFallback\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'font-semibold',\n\t\t\t\t\t\t\t\tFALLBACK_TONE_CLASSNAMES[fallbackTone],\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t</Avatar>\n\t\t\t\t);\n\t\t\t})}\n\t\t\t{!!showOverflow && overflow > 0 && (\n\t\t\t\t<AvatarGroupCount>\n\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\">\n\t\t\t\t\t\t{overflowFormatter ? overflowFormatter(overflow) : `+${overflow}`}\n\t\t\t\t\t</Text>\n\t\t\t\t</AvatarGroupCount>\n\t\t\t)}\n\t\t</AvatarGroup>\n\t);\n}\n\nStackedAvatars.displayName = 'StackedAvatars';\n","/**\n * DateBlock — compact \"boxed\" date display showing weekday + day-of-month\n * + optional month and time. Built on `date-fns` so locales propagate\n * naturally (`enGB`, `bg`, …).\n *\n * Two layouts:\n * - `stacked` (default) — three lines: weekday / day / month\n * - `inline` — single row: weekday + day + month + optional time\n *\n * Time can render `inline` (right of the date), `below` (under the date\n * block), or `hidden`. Compact rooms (booking lists) typically use\n * `stacked` with `time=\"below\"`.\n */\nimport { format, type Locale } from 'date-fns';\n\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport type DateBlockLayout = 'stacked' | 'inline';\nexport type DateBlockTimePlacement = 'inline' | 'below' | 'hidden';\nexport type DateBlockTone = 'default' | 'muted' | 'primary' | 'inverse' | 'success' | 'warning' | 'destructive' | 'info';\n\nexport interface DateBlockStrings {\n\t/** Used by `inline` layout when month is hidden (e.g. \"Apr 30 · 14:00\"). */\n\tseparator: string;\n}\n\nexport const defaultDateBlockStrings: DateBlockStrings = {\n\tseparator: '·',\n};\n\nexport interface DateBlockProps {\n\t/** Date instance, ISO string, or unix timestamp. */\n\tdate: Date | string | number;\n\t/** ISO time string (`HH:mm`) or already-formatted time string. */\n\ttime?: string | null;\n\t/** date-fns `Locale` (e.g. `enGB`, `bg`). Defaults to user-agent. */\n\tlocale?: Locale;\n\t/** Layout. Default `stacked`. */\n\tlayout?: DateBlockLayout;\n\t/** Where to place the time. Default `inline` for `inline` layout, `below` for `stacked`. */\n\ttimePlacement?: DateBlockTimePlacement;\n\t/** Tone of the boxed block. Default `default` (card surface). */\n\ttone?: DateBlockTone;\n\t/** Whether to render a card-like box around the block. Default `true` for stacked, `false` for inline. */\n\tboxed?: boolean;\n\t/** Show month label. Default `true`. */\n\tshowMonth?: boolean;\n\t/** Custom format for the day-of-month token (date-fns format). Default `'d'`. */\n\tdayFormat?: string;\n\t/** Custom format for the weekday token. Default `'EEE'`. */\n\tweekdayFormat?: string;\n\t/** Custom format for the month token. Default `'MMM'`. */\n\tmonthFormat?: string;\n\tclassName?: string;\n\tstrings?: Partial<DateBlockStrings>;\n}\n\nconst toneClassMap: Record<DateBlockTone, { bg: string; text: string; border: string; accent: string; subtle: string }> = {\n\tdefault: { bg: 'bg-card', text: 'text-foreground', border: 'border-border', accent: 'text-foreground', subtle: 'text-muted-foreground' },\n\tinverse: { bg: 'bg-primary', text: 'text-background', border: 'border-primary', accent: 'text-background/80', subtle: 'text-background/65' },\n\tmuted: { bg: 'bg-muted/50', text: 'text-foreground', border: 'border-border', accent: 'text-foreground', subtle: 'text-muted-foreground' },\n\tprimary: { bg: 'bg-primary/10', text: 'text-foreground', border: 'border-primary/30', accent: 'text-primary', subtle: 'text-muted-foreground' },\n\tsuccess: { bg: 'bg-success/10', text: 'text-foreground', border: 'border-success/30', accent: 'text-success', subtle: 'text-muted-foreground' },\n\twarning: { bg: 'bg-warning/15', text: 'text-foreground', border: 'border-warning/40', accent: 'text-warning-foreground', subtle: 'text-muted-foreground' },\n\tdestructive: { bg: 'bg-destructive/10', text: 'text-foreground', border: 'border-destructive/30', accent: 'text-destructive', subtle: 'text-muted-foreground' },\n\tinfo: { bg: 'bg-info/10', text: 'text-foreground', border: 'border-info/30', accent: 'text-info', subtle: 'text-muted-foreground' },\n};\n\nfunction resolveDate(input: Date | string | number): Date {\n\tif (input instanceof Date) return input;\n\tconst d = typeof input === 'number' ? new Date(input) : new Date(input);\n\treturn d;\n}\n\nexport function DateBlock({\n\tdate,\n\ttime,\n\tlocale,\n\tlayout = 'stacked',\n\ttimePlacement,\n\ttone = 'default',\n\tboxed,\n\tshowMonth = true,\n\tdayFormat = 'd',\n\tweekdayFormat = 'EEE',\n\tmonthFormat = 'MMM',\n\tclassName,\n\tstrings: stringsProp,\n}: DateBlockProps) {\n\tconst resolved = resolveDate(date);\n\tconst strings = useStrings(defaultDateBlockStrings, stringsProp);\n\tconst tones = toneClassMap[tone];\n\tconst dateValid = !Number.isNaN(resolved.getTime());\n\n\tconst weekday = dateValid ? format(resolved, weekdayFormat, locale ? { locale } : undefined) : '';\n\tconst day = dateValid ? format(resolved, dayFormat, locale ? { locale } : undefined) : '';\n\tconst month = dateValid ? format(resolved, monthFormat, locale ? { locale } : undefined) : '';\n\n\tconst resolvedTimePlacement: DateBlockTimePlacement =\n\t\ttimePlacement ?? (layout === 'inline' ? 'inline' : 'below');\n\tconst useBox = boxed ?? layout === 'stacked';\n\n\tif (layout === 'inline') {\n\t\treturn (\n\t\t\t<span\n\t\t\t\tclassName={cn('date-block--component', \n\t\t\t\t\t'inline-flex items-center gap-1.5 tabular-nums',\n\t\t\t\t\tuseBox && cn('rounded-md border px-2 py-1', tones.bg, tones.border),\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className={cn(tones.accent, 'uppercase tracking-wide')}>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t\t<Text weight=\"semibold\">{day}</Text>\n\t\t\t\t{!!showMonth && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t{month}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t{!!time && resolvedTimePlacement === 'inline' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\" aria-hidden>\n\t\t\t\t\t\t\t{strings.separator}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{time}</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={cn('inline-flex flex-col items-center gap-0.5', className)}>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex flex-col items-center justify-center gap-1 tabular-nums',\n\t\t\t\t\tuseBox && cn('w-14 min-h-14 rounded-md border px-1.5 py-1.5', tones.bg, tones.border),\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tstyle={{ lineHeight: 1 }}\n\t\t\t\t\tclassName={cn(tones.accent, 'uppercase tracking-wider')}\n\t\t\t\t>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t\t<Text size=\"lg\" weight=\"bold\" style={{ lineHeight: 1 }} className={tones.text}>\n\t\t\t\t\t{day}\n\t\t\t\t</Text>\n\t\t\t\t{!!showMonth && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\tstyle={{ lineHeight: 1 }}\n\t\t\t\t\t\tclassName={cn(tones.subtle, 'uppercase tracking-wider')}\n\t\t\t\t\t>\n\t\t\t\t\t\t{month}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!time && resolvedTimePlacement === 'below' && (\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t{time}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{!!time && resolvedTimePlacement === 'inline' && (\n\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t{time}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nDateBlock.displayName = 'DateBlock';\n","import { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\nimport * as React from \"react\"\n\nimport { Slot } from \"@/components/ui/slot\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n asChild = false,\n nativeButton,\n render,\n children,\n ...props\n}: CollapsiblePrimitive.Trigger.Props & { asChild?: boolean; nativeButton?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: CollapsiblePrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n let inferredNativeButton = true\n if (asChild && React.isValidElement(children)) {\n if (typeof children.type === \"string\") {\n inferredNativeButton = children.type === \"button\"\n } else {\n const childProps = (children.props ?? {}) as Record<string, unknown>\n inferredNativeButton = !(\"href\" in childProps)\n }\n }\n const resolvedNativeButton = nativeButton ?? (asChild ? inferredNativeButton : true)\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n render={slotRender ?? safeRender}\n nativeButton={resolvedNativeButton}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Trigger>\n )\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import { AlertTriangle, Info } from 'lucide-react';\nimport { useCallback, useMemo, type ReactNode } from 'react';\n\nimport { MoneyInput as BaseMoneyInput, type MoneyInputProps as BaseMoneyInputProps } from '@/components/base/forms/fields/money-input';\nimport { FormField } from '@/components/base/forms/form-field';\nimport { Text } from '@/components/typography';\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\nimport type { CurrencyCode } from '@/lib/ui-provider';\n\n/** Optional money payload for migration hints. Consumers map their domain\n * shape into this — `formatted` is the consumer's pre-rendered display\n * string for the alternate currency leg. */\nexport interface MoneyData {\n amount?: number | string | null;\n currency?: string | null;\n /** Optional original/record currency that triggered a migration warning. */\n recordCurrency?: string | null;\n /** Optional secondary leg the consumer formatted for display. */\n pair?: { formatted?: string | null } | null;\n}\n\nexport interface MoneyInputData {\n amount: number;\n currency: CurrencyCode;\n}\n\nexport interface MoneyInputProps extends Omit<BaseMoneyInputProps, 'invalid'> {\n /** Optional money payload for migration hints */\n money?: MoneyData | null;\n /** Display label */\n label?: string;\n /** Hint next to label */\n hint?: string;\n /** Helper text below input */\n helperText?: string;\n /** Error message */\n error?: string;\n /** Required indicator */\n required?: boolean;\n /** Invalid state override */\n invalid?: boolean;\n /** Optional change handler for combined data */\n onChangeData?: (data: MoneyInputData) => void;\n /** Record currency for migration detection */\n recordCurrency?: CurrencyCode;\n /** Show migration warning block */\n showMigrationWarning?: boolean;\n /** Custom migration warning message */\n migrationWarningMessage?: ReactNode;\n /** Show original currency hint */\n showOriginalHint?: boolean;\n}\n\nconst defaultEmptyFormatted = '—';\n\nconst resolveFormatted = (formatted: unknown): string =>\n typeof formatted === 'string' ? formatted.trim() : '';\n\nexport function MoneyInput({\n money,\n currency = 'EUR',\n onChangeData,\n recordCurrency: recordCurrencyProp,\n label,\n hint,\n helperText,\n error,\n required,\n invalid,\n showMigrationWarning = true,\n migrationWarningMessage,\n showOriginalHint = true,\n className,\n onChange,\n onCurrencyChange,\n ...props\n}: MoneyInputProps) {\n const recordCurrency = recordCurrencyProp ?? money?.recordCurrency ?? undefined;\n\n const willMigrate = useMemo(\n () => recordCurrency !== undefined && recordCurrency !== currency,\n [recordCurrency, currency],\n );\n\n const otherFormatted = useMemo(() => {\n if (!showOriginalHint) return '';\n return resolveFormatted(money?.pair?.formatted);\n }, [showOriginalHint, money?.pair?.formatted]);\n\n const showOriginalHintBlock = otherFormatted.length > 0 && !error;\n const showMigrationBlock = willMigrate && showMigrationWarning;\n\n const handleAmountChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n const parsed = Number.parseFloat(e.target.value);\n const safeAmount = Number.isFinite(parsed) ? parsed : 0;\n onChangeData?.({ amount: safeAmount, currency });\n },\n [onChange, onChangeData, currency],\n );\n\n const handleCurrencyChange = useCallback(\n (nextCurrency: CurrencyCode) => {\n onCurrencyChange?.(nextCurrency);\n const parsedValue = Number.parseFloat(String(props.value ?? ''));\n const safeAmount = Number.isFinite(parsedValue) ? parsedValue : 0;\n onChangeData?.({ amount: safeAmount, currency: nextCurrency });\n },\n [onCurrencyChange, onChangeData, props.value],\n );\n\n const isInvalid = invalid ?? Boolean(error);\n\n const inputNode = (\n <BaseMoneyInput\n {...props}\n currency={currency}\n onChange={handleAmountChange}\n onCurrencyChange={handleCurrencyChange}\n invalid={isInvalid}\n />\n );\n\n const hasChrome = Boolean(label || hint || helperText || error || required);\n const renderedInput = hasChrome ? (\n <FormField\n label={label}\n hint={hint}\n helperText={helperText}\n error={error}\n required={required}\n >\n {inputNode}\n </FormField>\n ) : inputNode;\n\n return (\n <div className={cn('money-input--component', 'space-y-2', className)}>\n {renderedInput}\n\n {!!showOriginalHintBlock && (\n <div className=\"flex items-center gap-1.5 text-muted-foreground\">\n <Info className=\"h-3.5 w-3.5 shrink-0\" />\n <Text size=\"xs\" type=\"secondary\">\n {otherFormatted || defaultEmptyFormatted}\n </Text>\n </div>\n )}\n\n {!!showMigrationBlock && (\n <Alert className=\"border-warning/50 bg-warning/5 py-2\">\n <AlertTriangle className=\"h-4 w-4 text-warning\" />\n <AlertDescription className=\"text-warning-foreground text-xs\">\n {migrationWarningMessage ??\n `Currency will be converted from ${recordCurrency ?? ''} to ${currency}.`}\n </AlertDescription>\n </Alert>\n )}\n </div>\n );\n}\n\nMoneyInput.displayName = 'MoneyInput';\n","/**\n * BooleanIndicator — labelled yes/no chip showing the truth of a value with an\n * optional check/cross icon. Use for compact metadata grids where each row\n * answers a single boolean question. Strings overridable for i18n.\n */\nimport { CheckCircle2, XCircle } from 'lucide-react';\nimport React from 'react';\nimport { Badge, type ComposedBadgeVariant } from '@/components/base/badge';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface BooleanIndicatorStrings {\n\ttrue: string;\n\tfalse: string;\n}\n\nexport const defaultBooleanIndicatorStrings: BooleanIndicatorStrings = {\n\ttrue: 'Yes',\n\tfalse: 'No',\n};\n\nexport type BooleanIndicatorProps = {\n\tlabel: React.ReactNode;\n\tvalue?: boolean | null;\n\tshowIcon?: boolean;\n\ttrueVariant?: ComposedBadgeVariant;\n\tfalseVariant?: ComposedBadgeVariant;\n\tclassName?: string;\n\tbadgeClassName?: string;\n\tstrings?: Partial<BooleanIndicatorStrings>;\n\t/** @deprecated Use `strings.true` instead. */\n\ttrueLabel?: React.ReactNode;\n\t/** @deprecated Use `strings.false` instead. */\n\tfalseLabel?: React.ReactNode;\n};\n\nexport function BooleanIndicator({\n\tlabel,\n\tvalue = false,\n\ttrueLabel,\n\tfalseLabel,\n\tshowIcon = true,\n\ttrueVariant = 'success',\n\tfalseVariant = 'secondary',\n\tclassName,\n\tbadgeClassName,\n\tstrings: stringsProp,\n}: BooleanIndicatorProps) {\n\tconst strings = useStrings(defaultBooleanIndicatorStrings, stringsProp);\n\tconst isTrue = Boolean(value);\n\tconst Icon = isTrue ? CheckCircle2 : XCircle;\n\tconst badgeVariant = isTrue ? trueVariant : falseVariant;\n\tconst fallback = isTrue ? trueLabel : falseLabel;\n\tconst content = fallback ?? (isTrue ? strings.true : strings.false);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('boolean-indicator--component', \n\t\t\t\t'flex items-center justify-between rounded-md border border-border/60 bg-muted/30 px-3 py-2',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t<Badge\n\t\t\t\tvariant={badgeVariant}\n\t\t\t\tsize=\"sm\"\n\t\t\t\tclassName={cn('whitespace-nowrap', badgeClassName)}\n\t\t\t>\n\t\t\t\t{!!showIcon && <Icon className=\"h-3.5 w-3.5\" />}\n\t\t\t\t{content}\n\t\t\t</Badge>\n\t\t</div>\n\t);\n}\n\nBooleanIndicator.displayName = 'BooleanIndicator';\n\nexport default BooleanIndicator;\n","import { Progress as ProgressPrimitive } from \"@base-ui/react/progress\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Progress({\n className,\n children,\n value,\n ...props\n}: ProgressPrimitive.Root.Props) {\n return (\n <ProgressPrimitive.Root\n value={value}\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-3\", className)}\n {...props}\n >\n {children}\n <ProgressTrack>\n <ProgressIndicator />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n )\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"bg-muted h-1.5 rounded-full relative flex w-full items-center overflow-x-hidden\",\n className\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n )\n}\n\nfunction ProgressIndicator({\n className,\n ...props\n}: ProgressPrimitive.Indicator.Props) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"bg-primary h-full transition-all\", className)}\n {...props}\n />\n )\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"text-sm font-medium\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n )\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\"text-muted-foreground ml-auto text-sm tabular-nums\", className)}\n data-slot=\"progress-value\"\n {...props}\n />\n )\n}\n\nexport {\n Progress,\n ProgressTrack,\n ProgressIndicator,\n ProgressLabel,\n ProgressValue,\n}\n","import { formatHex, oklch } from 'culori';\nimport QR from 'qrcode';\nimport type { HTMLAttributes } from 'react';\nimport { useEffect, useState } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type QRCodeProps = HTMLAttributes<HTMLDivElement> & {\n\tdata: string;\n\tforeground?: string;\n\tbackground?: string;\n\trobustness?: 'L' | 'M' | 'Q' | 'H';\n};\n\nconst oklchRegex = /oklch\\\\(([.\\\\d-]+)\\\\s+([.\\\\d]+)\\\\s+([.\\\\d]+)\\\\)/;\n\nfunction getOklch(color: string, fallback: [number, number, number]) {\n\tconst oklchMatch = color.match(oklchRegex);\n\n\tif (!oklchMatch) {\n\t\treturn { l: fallback[0], c: fallback[1], h: fallback[2] };\n\t}\n\n\treturn {\n\t\tl: Number.parseFloat(oklchMatch[1]),\n\t\tc: Number.parseFloat(oklchMatch[2]),\n\t\th: Number.parseFloat(oklchMatch[3]),\n\t};\n}\n\nexport function QRCode({\n\tdata,\n\tforeground,\n\tbackground,\n\trobustness = 'M',\n\tclassName,\n\t...props\n}: QRCodeProps) {\n\tconst [svg, setSvg] = useState<string | null>(null);\n\n\tuseEffect(() => {\n\t\tconst generateQR = async () => {\n\t\t\ttry {\n\t\t\t\tconst text = String(data ?? '').trim();\n\t\t\t\tif (!text) {\n\t\t\t\t\tsetSvg(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst styles = getComputedStyle(document.documentElement);\n\t\t\t\tconst foregroundColor =\n\t\t\t\t\tforeground ?? styles.getPropertyValue('--foreground');\n\t\t\t\tconst backgroundColor =\n\t\t\t\t\tbackground ?? styles.getPropertyValue('--background');\n\n\t\t\t\tconst foregroundOklch = getOklch(foregroundColor, [\n\t\t\t\t\t0.21, 0.006, 285.885,\n\t\t\t\t]);\n\t\t\t\tconst backgroundOklch = getOklch(backgroundColor, [0.985, 0, 0]);\n\n\t\t\t\tconst newSvg = await QR.toString(text, {\n\t\t\t\t\ttype: 'svg',\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tdark: formatHex(\n\t\t\t\t\t\t\toklch({ mode: 'oklch', ...foregroundOklch }),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlight: formatHex(\n\t\t\t\t\t\t\toklch({ mode: 'oklch', ...backgroundOklch }),\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\twidth: 200,\n\t\t\t\t\terrorCorrectionLevel: robustness,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t});\n\n\t\t\t\tsetSvg(newSvg);\n\t\t\t} catch {\n\t\t\t\t// QR generation failure (invalid data, oversized payload) — render falls\n\t\t\t\t// back to empty SVG; consumer can surface their own error from the parent.\n\t\t\t\tsetSvg('');\n\t\t\t}\n\t\t};\n\n\t\tvoid generateQR();\n\t}, [data, foreground, background, robustness]);\n\n\tif (!svg) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('qr-code--component', 'size-full', '[&_svg]:size-full', className)}\n\t\t\tdangerouslySetInnerHTML={{ __html: svg }}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport default QRCode;\n\nQRCode.displayName = 'QRCode';\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"gap-4 rounded-lg border-dashed p-12 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"gap-2 flex max-w-sm flex-col items-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"gap-4 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n","/**\n * Strings for `<EmptyState>`. English defaults — every piece of copy is\n * deep-merge-overridable per rule 8.\n *\n * `title`/`description` here are the *fallback* defaults the component\n * renders when neither the prop nor a per-illustration preset supplies\n * its own copy. In practice, the consumer usually passes an explicit\n * `title` / `description` per resource (\"No products\", \"No invoices yet\")\n * — these defaults exist so a bare `<EmptyState />` still renders\n * sensibly during scaffolding.\n */\nexport interface EmptyStateStrings {\n\ttitle: string;\n\tdescription: string;\n\tariaLabel: string;\n}\n\nexport const defaultEmptyStateStrings: EmptyStateStrings = {\n\ttitle: 'Nothing here yet',\n\tdescription: 'Once data lands, it will show up in this view.',\n\tariaLabel: 'Empty state',\n};\n","/**\n * EmptyState — the canonical zero-data surface for any list, table, or\n * collection in the library. Wraps the shadcn `ui/empty` primitive\n * (rule 1, rule 12) and applies our typography, density, and tokens:\n *\n * - Headline through `<Heading tag=\"h3\">` (admin scale, no marketing inflation)\n * - Description through `<Text size=\"xs\" type=\"secondary\">` — matches\n * the four sibling empty-states across the library\n * - Padding presets driven by props, not arbitrary literals\n * - Optional dashed-border affordance for \"this slot is a drop zone\"\n *\n * Composability:\n * - Slots: `media`, `actions`, `footer`\n * - Render-prop: `renderMedia(ctx)` for fully custom illustrations\n * - Strings: every piece of copy is overridable via `strings`\n *\n * The library ships a small illustration set under\n * `./partials/illustrations/*` — import explicitly per resource:\n *\n * import { StackedCardsIllustration } from\n * '@/components/base/display/empty-state/partials/illustrations';\n *\n * Adaptive shape per resource: pass a different `media` per surface.\n * Don't fork the component.\n */\nimport { forwardRef } from 'react';\n\nimport { Heading, Text } from '@/components/typography';\nimport {\n\tEmpty,\n\tEmptyContent,\n\tEmptyHeader,\n\tEmptyMedia,\n} from '@/components/ui/empty';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultEmptyStateStrings } from './empty-state.strings';\nimport type {\n\tEmptyStateMediaVariant,\n\tEmptyStatePadding,\n\tEmptyStateProps,\n} from './empty-state.types';\n\nconst PADDING_CLASS: Record<EmptyStatePadding, string> = {\n\tcompact: 'py-6',\n\tbase: 'py-12',\n\tloose: 'py-16',\n};\n\nconst MEDIA_VARIANT_TO_PRIMITIVE: Record<EmptyStateMediaVariant, 'default' | 'icon'> = {\n\tnone: 'default',\n\ticon: 'icon',\n\t'icon-soft': 'icon',\n\tillustration: 'default',\n};\n\nconst MEDIA_EXTRA_CLASS: Record<EmptyStateMediaVariant, string | undefined> = {\n\tnone: undefined,\n\ticon: undefined,\n\t'icon-soft': 'bg-muted/40 text-muted-foreground',\n\tillustration: 'mb-4',\n};\n\nexport const EmptyState = forwardRef<HTMLDivElement, EmptyStateProps>(function EmptyState({\n\ttitle,\n\tdescription,\n\tmedia,\n\tmediaVariant = 'none',\n\trenderMedia,\n\tactions,\n\tfooter,\n\tpadding = 'base',\n\tborder = false,\n\tclassName,\n\tstrings: stringsProp,\n\tariaLabel,\n}, ref) {\n\tconst strings = useStrings(defaultEmptyStateStrings, stringsProp);\n\n\tconst resolvedTitle = title ?? strings.title;\n\tconst resolvedDescription =\n\t\tdescription === false ? null : description ?? strings.description;\n\tconst mediaNode = renderMedia ? renderMedia({ mediaVariant }) : media;\n\tconst showMedia = !!mediaNode;\n\n\treturn (\n\t\t<Empty\n\t\t\tref={ref}\n\t\t\trole=\"status\"\n\t\t\taria-label={ariaLabel ?? strings.ariaLabel}\n\t\t\tclassName={cn('empty-state--component', \n\t\t\t\tPADDING_CLASS[padding],\n\t\t\t\tborder ? 'border border-dashed' : 'border-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<EmptyHeader>\n\t\t\t\t{!!showMedia && (\n\t\t\t\t\t<EmptyMedia\n\t\t\t\t\t\tvariant={MEDIA_VARIANT_TO_PRIMITIVE[mediaVariant]}\n\t\t\t\t\t\tclassName={MEDIA_EXTRA_CLASS[mediaVariant]}\n\t\t\t\t\t>\n\t\t\t\t\t\t{mediaNode}\n\t\t\t\t\t</EmptyMedia>\n\t\t\t\t)}\n\t\t\t\t<Heading tag=\"h3\" className=\"border-0 pb-0 text-base\" data-slot=\"empty-title\">\n\t\t\t\t\t{resolvedTitle}\n\t\t\t\t</Heading>\n\t\t\t\t{!!resolvedDescription && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName=\"leading-relaxed [&>a]:text-primary [&>a]:underline [&>a]:underline-offset-4 hover:[&>a]:no-underline\"\n\t\t\t\t\t\tdata-slot=\"empty-description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedDescription}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</EmptyHeader>\n\t\t\t{(!!actions || !!footer) && (\n\t\t\t\t<EmptyContent>\n\t\t\t\t\t{!!actions && (\n\t\t\t\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2\">\n\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!footer && <div className=\"text-xs text-muted-foreground\">{footer}</div>}\n\t\t\t\t</EmptyContent>\n\t\t\t)}\n\t\t</Empty>\n\t);\n});\n\nEmptyState.displayName = 'EmptyState';\n","import { cn } from '@/lib/utils';\n\n/**\n * Two staggered document silhouettes — for \"no documents\", \"no\n * invoices\", \"no reports\" surfaces.\n */\nexport function DocumentStackIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-32', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/70 dark:bg-muted/40 border-border/50 absolute left-1 top-1 flex h-20 w-20 -rotate-6 flex-col gap-1.5 rounded-md border p-2 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted h-2 w-12 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-10 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-9 rounded\" />\n\t\t\t</div>\n\t\t\t<div className=\"bg-background border-border absolute right-1 top-2 flex h-20 w-20 rotate-3 flex-col gap-1.5 rounded-md border p-2 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted h-2 w-12 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-10 rounded\" />\n\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-9 rounded\" />\n\t\t\t\t<div className=\"mt-auto flex items-center gap-1\">\n\t\t\t\t\t<div className=\"bg-success size-1.5 rounded-full\" />\n\t\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-8 rounded\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nDocumentStackIllustration.displayName = 'DocumentStackIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Open inbox tray with a soft check above — for \"all caught up\",\n * \"no notifications\", \"inbox zero\" surfaces.\n */\nexport function InboxCleanIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-32', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-success/12 border-success/30 absolute left-1/2 top-0 flex size-8 -translate-x-1/2 items-center justify-center rounded-full border\">\n\t\t\t\t<svg\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\tclassName=\"text-success size-3.5\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path d=\"M3 8l3 3 7-7\" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t\t<div className=\"bg-background border-border absolute inset-x-0 bottom-0 flex h-14 flex-col rounded-lg border shadow-sm\">\n\t\t\t\t<div className=\"bg-muted/30 h-3 rounded-t-lg\" />\n\t\t\t\t<div className=\"flex flex-1 items-center justify-between px-3\">\n\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t<div className=\"bg-muted/60 h-1.5 w-12 rounded\" />\n\t\t\t\t\t\t<div className=\"bg-muted/40 h-1.5 w-8 rounded\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"bg-muted/40 size-3 rounded-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nInboxCleanIllustration.displayName = 'InboxCleanIllustration';\n","import { Search } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/**\n * Magnifying-glass illustration centered on a soft tinted disk — for\n * \"no search results\", \"nothing matches your filters\" surfaces.\n */\nexport function SearchGlassIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'flex size-20 items-center justify-center rounded-full bg-muted/40 ring-8 ring-muted/20',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<Search className=\"size-8 text-muted-foreground\" />\n\t\t</div>\n\t);\n}\n\nSearchGlassIllustration.displayName = 'SearchGlassIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Three stacked card silhouettes with a fade-out at the bottom — the\n * generic \"no records\" illustration. Token-driven so it adapts to any\n * theme (uses `bg-muted`, `bg-background`, `border-border`, no raw\n * palette).\n */\nexport function StackedCardsIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative h-24 w-52', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/60 dark:bg-muted/30 border-border/50 absolute inset-x-6 top-0 h-6 rounded-t-lg border\" />\n\t\t\t<div className=\"bg-muted/80 dark:bg-muted/50 border-border/60 absolute inset-x-3 top-3 h-6 rounded-t-lg border\" />\n\t\t\t<div className=\"bg-background border-border absolute inset-x-0 top-6 flex h-16 items-center gap-3 rounded-lg border px-4 shadow-sm\">\n\t\t\t\t<div className=\"bg-muted size-8 shrink-0 rounded\" />\n\t\t\t\t<div className=\"flex flex-1 flex-col gap-1.5\">\n\t\t\t\t\t<div className=\"bg-muted h-2.5 w-3/4 rounded\" />\n\t\t\t\t\t<div className=\"bg-muted/60 h-2 w-1/2 rounded\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"from-background/0 via-background/60 to-background pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-linear-to-b\" />\n\t\t</div>\n\t);\n}\n\nStackedCardsIllustration.displayName = 'StackedCardsIllustration';\n","import { cn } from '@/lib/utils';\n\n/**\n * Three overlapping avatar circles — for \"no team members\", \"no\n * customers\", \"no contributors\" surfaces.\n */\nexport function UsersCircleIllustration({ className }: { className?: string }) {\n\treturn (\n\t\t<div className={cn('relative flex h-24 w-32 items-center justify-center', className)} aria-hidden=\"true\">\n\t\t\t<div className=\"bg-muted/70 border-border absolute left-2 size-12 rounded-full border-2\" />\n\t\t\t<div className=\"bg-muted border-border z-10 size-14 rounded-full border-2 shadow-sm\" />\n\t\t\t<div className=\"bg-muted/60 border-border absolute right-2 size-10 rounded-full border-2\" />\n\t\t</div>\n\t);\n}\n\nUsersCircleIllustration.displayName = 'UsersCircleIllustration';\n","/**\n * EmailDisplay — formats an email address as a copyable, optional `mailto:`\n * link. Falls back to the shared EMPTY placeholder when no value is provided.\n * Strings are overridable for i18n via the `strings` prop.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface EmailDisplayStrings {\n\tcopySuccess: string;\n}\n\nexport const defaultEmailDisplayStrings: EmailDisplayStrings = {\n\tcopySuccess: 'Email copied to clipboard',\n};\n\nexport interface EmailDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\temail: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\tstrings?: Partial<EmailDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n}\n\nexport function EmailDisplay({\n\temail,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: EmailDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultEmailDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...stringsProp,\n\t});\n\tif (!email || email.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('email-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst emailText = (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\ttag=\"span\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-medium',\n\t\t\t\t'decoration-dotted decoration-border underline underline-offset-4',\n\t\t\t\t'transition-colors duration-200',\n\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{email}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={email}\n\t\t\t\tdisplayValue={emailText}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName=\"-mx-0\"\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={`mailto:${email}`}\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a href={`mailto:${email}`} className=\"inline-flex items-center no-underline\">\n\t\t\t\t{emailText}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn emailText;\n}\n\nEmailDisplay.displayName = 'EmailDisplay';\n","/**\n * PhoneDisplay — formats a phone number as a copyable, optional `tel:` link.\n * Strips visual separators when generating the `tel:` href; falls back to the\n * shared EMPTY placeholder when no value is provided. Strings overridable.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface PhoneDisplayStrings {\n\tcopySuccess: string;\n}\n\nexport const defaultPhoneDisplayStrings: PhoneDisplayStrings = {\n\tcopySuccess: 'Phone number copied to clipboard',\n};\n\nexport interface PhoneDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\tphone: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\tstrings?: Partial<PhoneDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n}\n\nfunction formatPhoneForTel(phone: string): string {\n\treturn phone.replace(/[\\s().-]/g, '');\n}\n\nexport function PhoneDisplay({\n\tphone,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: PhoneDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultPhoneDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...stringsProp,\n\t});\n\tif (!phone || phone.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('phone-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst phoneText = (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\ttag=\"span\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-medium',\n\t\t\t\t'decoration-dotted decoration-border underline underline-offset-4',\n\t\t\t\t'transition-colors duration-200',\n\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{phone}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={phone}\n\t\t\t\tdisplayValue={phoneText}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName=\"-mx-0\"\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={`tel:${formatPhoneForTel(phone)}`}\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a\n\t\t\t\thref={`tel:${formatPhoneForTel(phone)}`}\n\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t>\n\t\t\t\t{phoneText}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn phoneText;\n}\n\nPhoneDisplay.displayName = 'PhoneDisplay';\n","/**\n * UrlDisplay — formats a URL as a copyable, optional external link.\n * Detects insecure (http://) URLs and renders an inline tooltip warning. The\n * link can be truncated by hostname/path heuristic with a tooltip showing the\n * full URL on hover. Strings overridable for i18n.\n */\nimport { ExternalLink, ShieldAlert } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Copyable } from '@/components/base/copyable';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/base/display/tooltip';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { EMPTY } from '@/lib/format';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\ntype BaseTextProps = ComponentProps<typeof Text>;\n\nexport interface UrlDisplayStrings {\n\tcopySuccess: string;\n\thttpWarning: string;\n}\n\nexport const defaultUrlDisplayStrings: UrlDisplayStrings = {\n\tcopySuccess: 'URL copied to clipboard',\n\thttpWarning: 'This URL uses HTTP which is not secure',\n};\n\nexport interface UrlDisplayProps extends Omit<BaseTextProps, 'children' | 'content'> {\n\turl: string | null | undefined;\n\tcopyable?: boolean;\n\temptyLabel?: ReactNode;\n\tclickable?: boolean;\n\ttruncate?: boolean;\n\tmaxLength?: number;\n\tshowExternalIcon?: boolean;\n\tstrings?: Partial<UrlDisplayStrings>;\n\t/** @deprecated Use `strings.copySuccess` instead. */\n\tcopySuccessMessage?: string;\n\t/** @deprecated Use `strings.httpWarning` instead. */\n\thttpWarningMessage?: string;\n}\n\nfunction isHttpUrl(url: string): boolean {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\treturn parsed.protocol === 'http:';\n\t} catch {\n\t\treturn url.toLowerCase().startsWith('http://');\n\t}\n}\n\nfunction formatUrlForDisplay(url: string, truncate: boolean, maxLength: number): string {\n\tif (!truncate || url.length <= maxLength) {\n\t\treturn url;\n\t}\n\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tconst domain = parsed.hostname;\n\t\tconst remaining = maxLength - domain.length - 5;\n\n\t\tif (remaining > 10) {\n\t\t\tconst pathStart = parsed.pathname.slice(0, remaining);\n\t\t\treturn `${domain}${pathStart}...`;\n\t\t}\n\n\t\treturn `${url.slice(0, maxLength - 3)}...`;\n\t} catch {\n\t\treturn `${url.slice(0, maxLength - 3)}...`;\n\t}\n}\n\nexport function UrlDisplay({\n\turl,\n\tcopyable = true,\n\tcopySuccessMessage,\n\temptyLabel = EMPTY,\n\tclickable = true,\n\ttruncate = false,\n\tmaxLength = 50,\n\tshowExternalIcon = true,\n\thttpWarningMessage,\n\tstrings: stringsProp,\n\tsize: sizeProp,\n\ttype = 'main',\n\ttag = 'span',\n\tclassName,\n\t...props\n}: UrlDisplayProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst strings = useStrings(defaultUrlDisplayStrings, {\n\t\t...(copySuccessMessage ? { copySuccess: copySuccessMessage } : {}),\n\t\t...(httpWarningMessage ? { httpWarning: httpWarningMessage } : {}),\n\t\t...stringsProp,\n\t});\n\n\tif (!url || url.trim().length === 0) {\n\t\treturn (\n\t\t\t<Text size={size} type=\"secondary\" tag={tag} className={cn('url-display--component', className)} {...props}>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tconst isInsecure = isHttpUrl(url);\n\tconst displayUrl = formatUrlForDisplay(url, truncate, maxLength);\n\tconst shouldShowTitle = truncate && url.length > maxLength;\n\n\tconst urlContent = (\n\t\t<Text size={size} type={type} tag=\"span\" className=\"inline-flex items-center gap-1.5\">\n\t\t\t{!!isInsecure && (\n\t\t\t\t<Tooltip>\n\t\t\t\t\t<TooltipTrigger\n\t\t\t\t\t\trender={(triggerProps) => {\n\t\t\t\t\t\t\t// Tooltip triggers are `<button>` by default; we render a non-button to avoid nested\n\t\t\t\t\t\t\t// interactive elements when UrlDisplay is wrapped in an `<a>`.\n\t\t\t\t\t\t\tconst { type, disabled, className: triggerClassName, ...rest } =\n\t\t\t\t\t\t\t\ttriggerProps as Record<string, unknown> & {\n\t\t\t\t\t\t\t\t\tclassName?: string;\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tvoid type;\n\t\t\t\t\t\t\tvoid disabled;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\t\taria-label={strings.httpWarning}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'inline-flex items-center text-warning',\n\t\t\t\t\t\t\t\t\t\ttriggerClassName,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ShieldAlert className=\"size-3.5\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<TooltipContent side=\"top\" className=\"max-w-xs\">\n\t\t\t\t\t\t<Text size=\"xs\">{strings.httpWarning}</Text>\n\t\t\t\t\t</TooltipContent>\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'decoration-dotted underline underline-offset-4',\n\t\t\t\t\t'transition-colors duration-200',\n\t\t\t\t\tisInsecure ? 'decoration-warning' : 'decoration-border',\n\t\t\t\t\tclickable ? 'hover:decoration-current' : null,\n\t\t\t\t)}\n\t\t\t\ttitle={(shouldShowTitle && url) || undefined}\n\t\t\t>\n\t\t\t\t{displayUrl}\n\t\t\t</span>\n\t\t\t{!!clickable && !!showExternalIcon && (\n\t\t\t\t<ExternalLink className=\"size-3 text-muted-foreground\" />\n\t\t\t)}\n\t\t</Text>\n\t);\n\n\tif (copyable) {\n\t\tconst copyableContent = (\n\t\t\t<Copyable\n\t\t\t\tvalue={url}\n\t\t\t\tdisplayValue={urlContent}\n\t\t\t\tsuccessMessage={strings.copySuccess}\n\t\t\t\tclassName={cn('-mx-0', className)}\n\t\t\t/>\n\t\t);\n\n\t\tif (clickable) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref={url}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t{copyableContent}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn copyableContent;\n\t}\n\n\tif (clickable) {\n\t\treturn (\n\t\t\t<a\n\t\t\t\thref={url}\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\tclassName=\"inline-flex items-center no-underline\"\n\t\t\t>\n\t\t\t\t{urlContent}\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn urlContent;\n}\n\nUrlDisplay.displayName = 'UrlDisplay';\n","/**\n * InlineStat — label + value pair, the workhorse of detail panels and card\n * footers. Three layouts:\n *\n * - `between` (default): label and value pushed to opposite ends of the row.\n * - `inline`: label sits immediately before the value, separator-style.\n * - `stacked`: label above (xxs secondary), value below (sm).\n *\n * `mono` toggles `tabular-nums` on the value side for amounts and counters.\n * Use `valueClassName` for one-off colour/weight overrides; the surrounding\n * row is intentionally plain so consumers can stack many of these without\n * visual clutter.\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport type InlineStatLayout = 'between' | 'inline' | 'stacked';\n\nexport interface InlineStatProps {\n\tlabel: ReactNode;\n\tvalue: ReactNode;\n\tlayout?: InlineStatLayout;\n\tmono?: boolean;\n\tclassName?: string;\n\tlabelClassName?: string;\n\tvalueClassName?: string;\n}\n\nexport function InlineStat({\n\tlabel,\n\tvalue,\n\tlayout = 'between',\n\tmono = false,\n\tclassName,\n\tlabelClassName,\n\tvalueClassName,\n}: InlineStatProps) {\n\tif (layout === 'stacked') {\n\t\treturn (\n\t\t\t<div className={cn('inline-stat--component', 'flex flex-col gap-0.5', className)}>\n\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"secondary\" className={labelClassName}>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tclassName={cn(mono && 'tabular-nums', valueClassName)}\n\t\t\t\t>\n\t\t\t\t\t{value}\n\t\t\t\t</Text>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst justify = layout === 'between' ? 'justify-between' : 'justify-start';\n\n\treturn (\n\t\t<div className={cn('flex items-center gap-2', justify, className)}>\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={labelClassName}>\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t<Text\n\t\t\t\ttag=\"span\"\n\t\t\t\tclassName={cn(mono && 'tabular-nums', valueClassName)}\n\t\t\t>\n\t\t\t\t{value}\n\t\t\t</Text>\n\t\t</div>\n\t);\n}\n\nInlineStat.displayName = 'InlineStat';\n","/**\n * NumericValue — displays a number with `tabular-nums` and a chosen alignment.\n * Use for amounts, counters, percentages, durations — anywhere the value\n * benefits from monospace digits and consistent column alignment.\n *\n * Pass `value` as a primitive (auto-formatted via `Intl.NumberFormat`) or\n * pre-format upstream and pass a string. When `currency` is set, the value\n * is rendered with a currency symbol via `formatAmount` from `useCurrency()`\n * — defer to `MoneyDisplay` for richer money rendering (pair display, empty\n * fallback, large display sizes); this component is the leaf primitive.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\nimport { useTypographyConfig } from '@/lib/ui-provider';\n\nexport type NumericValueAlign = 'left' | 'right' | 'center';\n\ntype TextProps = ComponentProps<typeof Text>;\ntype TextSize = NonNullable<TextProps['size']>;\ntype TextWeight = NonNullable<TextProps['weight']>;\ntype TextType = NonNullable<TextProps['type']>;\n\nexport interface NumericValueProps extends Omit<TextProps, 'children' | 'content' | 'align'> {\n\tvalue: number | string | null | undefined;\n\talign?: NumericValueAlign;\n\t/** When set, formats `value` via `Intl.NumberFormat`; ignored if `value` is already a string. */\n\tlocale?: string;\n\t/** Forwarded to `Intl.NumberFormat` when `value` is numeric. */\n\tformatOptions?: Intl.NumberFormatOptions;\n\t/** Rendered when `value` is `null`/`undefined`/empty. Defaults to `'—'`. */\n\temptyLabel?: ReactNode;\n\tsize?: TextSize;\n\tweight?: TextWeight;\n\ttype?: TextType;\n}\n\nconst DEFAULT_EMPTY = '—';\n\nconst formatValue = (\n\tvalue: NumericValueProps['value'],\n\tlocale: string | undefined,\n\toptions: Intl.NumberFormatOptions | undefined,\n): string | null => {\n\tif (value === null || value === undefined || value === '') return null;\n\tif (typeof value === 'string') return value;\n\tif (Number.isNaN(value)) return null;\n\ttry {\n\t\treturn new Intl.NumberFormat(locale, options).format(value);\n\t} catch {\n\t\treturn String(value);\n\t}\n};\n\nexport function NumericValue({\n\tvalue,\n\talign = 'right',\n\tlocale,\n\tformatOptions,\n\temptyLabel = DEFAULT_EMPTY,\n\tsize: sizeProp,\n\tweight,\n\ttype,\n\tclassName,\n\t...props\n}: NumericValueProps) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\n\tconst formatted = formatValue(value, locale, formatOptions);\n\tconst alignClass =\n\t\talign === 'right' ? 'text-right' : align === 'center' ? 'text-center' : 'text-left';\n\n\tif (formatted === null) {\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tsize={size}\n\t\t\t\tweight={weight}\n\t\t\t\ttype={type ?? 'secondary'}\n\t\t\t\tclassName={cn('numeric-value--component', 'tabular-nums', alignClass, className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{emptyLabel}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tsize={size}\n\t\t\tweight={weight}\n\t\t\ttype={type}\n\t\t\tclassName={cn('tabular-nums', alignClass, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{formatted}\n\t\t</Text>\n\t);\n}\n\nNumericValue.displayName = 'NumericValue';\n","/**\n * UserCell — avatar + name + optional subtitle list-item row, the canonical\n * shape for team rosters, conversation lists, comment authors, and search\n * result rows. Three sizes match the surrounding row density (sm/base/lg).\n *\n * Pass `avatarUrl` for an image, `initials` for a fallback, or `avatar` for\n * a full custom Avatar tree (e.g. with a status badge). The `trailing` slot\n * sits on the right edge — use it for badges, action buttons, or timestamps.\n *\n * Avatar primitives come from `base/display/avatar` (shadcn-backed) so they\n * match the rest of the system without configuration.\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport { cn } from '@/lib/utils';\n\nexport type UserCellSize = 'sm' | 'base' | 'lg';\n\nexport interface UserCellProps {\n\tname: ReactNode;\n\tsubtitle?: ReactNode;\n\tavatarUrl?: string;\n\tavatarAlt?: string;\n\tinitials?: string;\n\t/** Fully custom avatar element (overrides `avatarUrl` / `initials`). */\n\tavatar?: ReactNode;\n\ttrailing?: ReactNode;\n\tsize?: UserCellSize;\n\tclassName?: string;\n}\n\nconst SIZE_MAP: Record<UserCellSize, { avatar: string; gap: string; nameSize: 'sm' | 'base'; subtitleSize: 'xs' | 'sm' }> = {\n\tsm: { avatar: 'size-7', gap: 'gap-2', nameSize: 'sm', subtitleSize: 'xs' },\n\tbase: { avatar: 'size-9', gap: 'gap-3', nameSize: 'sm', subtitleSize: 'xs' },\n\tlg: { avatar: 'size-11', gap: 'gap-3', nameSize: 'base', subtitleSize: 'sm' },\n};\n\nexport function UserCell({\n\tname,\n\tsubtitle,\n\tavatarUrl,\n\tavatarAlt,\n\tinitials,\n\tavatar,\n\ttrailing,\n\tsize = 'base',\n\tclassName,\n}: UserCellProps) {\n\tconst sizes = SIZE_MAP[size];\n\n\tconst avatarNode = avatar ?? (\n\t\t<Avatar className={sizes.avatar}>\n\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={avatarAlt ?? (typeof name === 'string' ? name : undefined)} />}\n\t\t\t{!!initials && <AvatarFallback>{initials}</AvatarFallback>}\n\t\t</Avatar>\n\t);\n\n\treturn (\n\t\t<div className={cn('user-cell--component', 'flex items-center', sizes.gap, className)}>\n\t\t\t{avatarNode}\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t<Text size={sizes.nameSize} weight=\"semibold\" className=\"truncate\">\n\t\t\t\t\t{name}\n\t\t\t\t</Text>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size={sizes.subtitleSize} type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!trailing && <div className=\"shrink-0\">{trailing}</div>}\n\t\t</div>\n\t);\n}\n\nUserCell.displayName = 'UserCell';\n","/**\n * SectionHeader — title row for in-card sections and standalone groupings:\n *\n * <Text weight=\"semibold\">{title}</Text>\n * {optional Badge | description on the next line}\n * {optional trailing action button on the right}\n *\n * Distinct from `SmartCard.title` (which is the *card's* primary header) —\n * use SectionHeader for nested sections inside a card body, or for grouping\n * blocks on a page that aren't full cards.\n *\n * `dense` tightens vertical spacing and sizes the title down to `xs` for\n * sub-section labels (e.g. \"Recent activity\" stripes inside a longer card).\n */\nimport type { ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface SectionHeaderProps {\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tbadge?: ReactNode;\n\taction?: ReactNode;\n\tdense?: boolean;\n\tclassName?: string;\n}\n\nexport function SectionHeader({\n\ttitle,\n\tdescription,\n\tbadge,\n\taction,\n\tdense = false,\n\tclassName,\n}: SectionHeaderProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('section-header--component', \n\t\t\t\t'flex items-start justify-between',\n\t\t\t\tdense ? 'gap-2' : 'gap-3',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t<div className={cn('flex items-center', dense ? 'gap-1.5' : 'gap-2')}>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize={dense ? 'xs' : 'sm'}\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"truncate\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!badge && <span className=\"shrink-0\">{badge}</span>}\n\t\t\t\t</div>\n\t\t\t\t{!!description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize={dense ? 'xxs' : 'xs'}\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName={dense ? 'mt-0.5' : 'mt-1'}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!action && <div className=\"shrink-0\">{action}</div>}\n\t\t</div>\n\t);\n}\n\nSectionHeader.displayName = 'SectionHeader';\n"],"mappings":"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"}
|