admin-ui-starter-kit 0.6.9 → 0.7.1
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 +29 -1
- package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +14 -0
- package/.agents/skills/admin-ui-consumer-migration/references/theme-overrides.md +172 -0
- package/.agents/skills/component-library-rules/SKILL.md +5 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.json +23 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.md +21 -2
- package/.agents/skills/component-library-rules/references/components/base__avatar.md +3 -3
- package/.agents/skills/component-library-rules/references/components/base__carousel.md +8 -5
- package/.agents/skills/component-library-rules/references/components/base__css-variables.md +1 -0
- package/.agents/skills/component-library-rules/references/components/base__currency.md +10 -11
- package/.agents/skills/component-library-rules/references/components/base__item.md +7 -7
- package/.agents/skills/component-library-rules/references/components/base__money-display.md +4 -0
- package/.agents/skills/component-library-rules/references/components/base__typography.md +3 -3
- package/.agents/skills/component-library-rules/references/components/composed__commerce-address-card.md +74 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-cart-summary.md +84 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-coupon-input.md +52 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-discount-stack.md +58 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-inventory-section.md +168 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-loyalty-points.md +60 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-order-status.md +62 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-payment-method.md +58 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-refund-status.md +58 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-seo-listing.md +106 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-shipment-tracking.md +65 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-subscription-summary.md +66 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-tax-breakdown.md +60 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-upcoming-booking.md +62 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-voucher-entry.md +60 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce.md +29 -143
- package/.agents/skills/component-library-rules/references/components/features__products.md +18 -462
- package/.agents/skills/component-library-rules/references/components/features__products__actions.md +37 -0
- package/.agents/skills/component-library-rules/references/components/features__products__support-rail.md +73 -0
- package/.agents/skills/component-library-rules/references/components/features__products__variant-details.md +97 -0
- package/.agents/skills/component-library-rules/references/components/features__products__variant-management.md +269 -0
- package/.agents/skills/component-library-rules/references/components/layout__layout-auth.md +1 -1
- package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +43 -1
- package/.agents/skills/component-library-rules/references/testing.md +1 -1
- package/.agents/skills/token-system/SKILL.md +4 -1
- package/AGENTS.md +4 -3
- package/COMPONENT_SELECTION.md +15 -0
- package/INTEGRATION.md +41 -2
- package/MIGRATION.md +7 -7
- package/README.md +7 -3
- package/dist/_shared/accordion-CSRRDWVZ.js +135 -0
- package/dist/_shared/accordion-CSRRDWVZ.js.map +1 -0
- package/dist/_shared/accordion-ClVkIaCy.cjs +2 -0
- package/dist/_shared/accordion-ClVkIaCy.cjs.map +1 -0
- package/dist/_shared/action-menu-8RN2_Jdr.js +96 -0
- package/dist/_shared/action-menu-8RN2_Jdr.js.map +1 -0
- package/dist/_shared/action-menu-Cx2xaBjN.cjs +2 -0
- package/dist/_shared/action-menu-Cx2xaBjN.cjs.map +1 -0
- package/dist/_shared/ai-artifact-BO0XGFHz.cjs +3 -0
- package/dist/_shared/ai-artifact-BO0XGFHz.cjs.map +1 -0
- package/dist/_shared/ai-artifact-CbsGR1t8.js +1099 -0
- package/dist/_shared/ai-artifact-CbsGR1t8.js.map +1 -0
- package/dist/_shared/auth-CwipRgNB.cjs +2 -0
- package/dist/_shared/auth-CwipRgNB.cjs.map +1 -0
- package/dist/_shared/auth-Wipu0Oa_.js +643 -0
- package/dist/_shared/auth-Wipu0Oa_.js.map +1 -0
- package/dist/_shared/badge-B0Ashqkn.cjs +2 -0
- package/dist/_shared/badge-B0Ashqkn.cjs.map +1 -0
- package/dist/_shared/badge-DOJpEtsa.js +110 -0
- package/dist/_shared/badge-DOJpEtsa.js.map +1 -0
- package/dist/_shared/breadcrumbs-C7PI8sxx.cjs +2 -0
- package/dist/_shared/breadcrumbs-C7PI8sxx.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-xNjbIrGc.js +105 -0
- package/dist/_shared/breadcrumbs-xNjbIrGc.js.map +1 -0
- package/dist/_shared/button-CB8e7fui.cjs +2 -0
- package/dist/_shared/button-CB8e7fui.cjs.map +1 -0
- package/dist/_shared/button-CNEMqDHK.js +192 -0
- package/dist/_shared/button-CNEMqDHK.js.map +1 -0
- package/dist/_shared/buttons-BCFKQuB5.js +137 -0
- package/dist/_shared/buttons-BCFKQuB5.js.map +1 -0
- package/dist/_shared/buttons-DHj5I2YL.cjs +2 -0
- package/dist/_shared/buttons-DHj5I2YL.cjs.map +1 -0
- package/dist/_shared/card-radio-group-DdubYUJ6.cjs +2 -0
- package/dist/_shared/card-radio-group-DdubYUJ6.cjs.map +1 -0
- package/dist/_shared/card-radio-group-Du6rzuoC.js +150 -0
- package/dist/_shared/card-radio-group-Du6rzuoC.js.map +1 -0
- package/dist/_shared/cards-B7voInTJ.js +430 -0
- package/dist/_shared/cards-B7voInTJ.js.map +1 -0
- package/dist/_shared/cards-DvE5gRFf.cjs +2 -0
- package/dist/_shared/cards-DvE5gRFf.cjs.map +1 -0
- package/dist/_shared/combobox-AbXh9ft4.cjs +2 -0
- package/dist/_shared/combobox-AbXh9ft4.cjs.map +1 -0
- package/dist/_shared/combobox-ImXiC1qy.js +957 -0
- package/dist/_shared/combobox-ImXiC1qy.js.map +1 -0
- package/dist/_shared/command-B-Yokco3.js +39 -0
- package/dist/_shared/command-B-Yokco3.js.map +1 -0
- package/dist/_shared/command-kcPx4TM_.cjs +2 -0
- package/dist/_shared/command-kcPx4TM_.cjs.map +1 -0
- package/dist/_shared/comments-BR5ENvoo.cjs +2 -0
- package/dist/_shared/comments-BR5ENvoo.cjs.map +1 -0
- package/dist/_shared/comments-a3l--GJ-.js +952 -0
- package/dist/_shared/comments-a3l--GJ-.js.map +1 -0
- package/dist/_shared/containers-CclPUW7j.cjs +2 -0
- package/dist/_shared/containers-CclPUW7j.cjs.map +1 -0
- package/dist/_shared/containers-GDaJ3SOV.js +101 -0
- package/dist/_shared/containers-GDaJ3SOV.js.map +1 -0
- package/dist/_shared/copyable-C0KJlRVr.js +38 -0
- package/dist/_shared/copyable-C0KJlRVr.js.map +1 -0
- package/dist/_shared/copyable-tJxsOyn-.cjs +2 -0
- package/dist/_shared/copyable-tJxsOyn-.cjs.map +1 -0
- package/dist/_shared/data-display-0uNuZSN7.js +1878 -0
- package/dist/_shared/data-display-0uNuZSN7.js.map +1 -0
- package/dist/_shared/data-display-DRa39LH8.cjs +2 -0
- package/dist/_shared/data-display-DRa39LH8.cjs.map +1 -0
- package/dist/_shared/date-picker-BaPDfs1p.js +1361 -0
- package/dist/_shared/date-picker-BaPDfs1p.js.map +1 -0
- package/dist/_shared/date-picker-DrkoZZdr.cjs +2 -0
- package/dist/_shared/date-picker-DrkoZZdr.cjs.map +1 -0
- package/dist/_shared/date-pickers-CT3aZpPn.cjs +2 -0
- package/dist/_shared/date-pickers-CT3aZpPn.cjs.map +1 -0
- package/dist/_shared/date-pickers-DRp0VM7k.js +329 -0
- package/dist/_shared/date-pickers-DRp0VM7k.js.map +1 -0
- package/dist/_shared/display-BHIs_Y_j.js +1006 -0
- package/dist/_shared/display-BHIs_Y_j.js.map +1 -0
- package/dist/_shared/display-DV7n0KA1.cjs +2 -0
- package/dist/_shared/display-DV7n0KA1.cjs.map +1 -0
- package/dist/_shared/dropdown-menu-5fFMhKo4.js +147 -0
- package/dist/_shared/dropdown-menu-5fFMhKo4.js.map +1 -0
- package/dist/_shared/dropdown-menu-B_SCGRL2.cjs +2 -0
- package/dist/_shared/dropdown-menu-B_SCGRL2.cjs.map +1 -0
- package/dist/_shared/form-sizing-VNEGzvM7.js +42 -0
- package/dist/_shared/form-sizing-VNEGzvM7.js.map +1 -0
- package/dist/_shared/form-sizing-lBFpJWv4.cjs +2 -0
- package/dist/_shared/form-sizing-lBFpJWv4.cjs.map +1 -0
- package/dist/_shared/forms-B7LYVbAy.cjs +2 -0
- package/dist/_shared/forms-B7LYVbAy.cjs.map +1 -0
- package/dist/_shared/forms-C5uZX_kQ.js +3534 -0
- package/dist/_shared/forms-C5uZX_kQ.js.map +1 -0
- package/dist/_shared/header-B4wGB6Ca.cjs +2 -0
- package/dist/_shared/header-B4wGB6Ca.cjs.map +1 -0
- package/dist/_shared/header-CWyOry0f.js +447 -0
- package/dist/_shared/header-CWyOry0f.js.map +1 -0
- package/dist/_shared/hooks-B4Cop5YI.cjs +2 -0
- package/dist/_shared/hooks-B4Cop5YI.cjs.map +1 -0
- package/dist/_shared/hooks-CFUZJW_S.js +95 -0
- package/dist/_shared/hooks-CFUZJW_S.js.map +1 -0
- package/dist/_shared/icon-size-CMNigtUu.js +15 -0
- package/dist/_shared/icon-size-CMNigtUu.js.map +1 -0
- package/dist/_shared/icon-size-D2NnYd0K.cjs +2 -0
- package/dist/_shared/icon-size-D2NnYd0K.cjs.map +1 -0
- package/dist/_shared/input-BEhrcsk7.js +182 -0
- package/dist/_shared/input-BEhrcsk7.js.map +1 -0
- package/dist/_shared/input-DGvh-izk.cjs +2 -0
- package/dist/_shared/input-DGvh-izk.cjs.map +1 -0
- package/dist/_shared/item-BG2iK1sy.cjs +2 -0
- package/dist/_shared/item-BG2iK1sy.cjs.map +1 -0
- package/dist/_shared/item-D75eGy8G.js +227 -0
- package/dist/_shared/item-D75eGy8G.js.map +1 -0
- package/dist/_shared/layout-DN8tzvlm.cjs +2 -0
- package/dist/_shared/layout-DN8tzvlm.cjs.map +1 -0
- package/dist/_shared/layout-DNrUkvzF.js +268 -0
- package/dist/_shared/layout-DNrUkvzF.js.map +1 -0
- package/dist/_shared/mentions-CWqC8Xds.js +506 -0
- package/dist/_shared/mentions-CWqC8Xds.js.map +1 -0
- package/dist/_shared/mentions-wtkrL2hX.cjs +2 -0
- package/dist/_shared/mentions-wtkrL2hX.cjs.map +1 -0
- package/dist/_shared/money-display-BabyaIWb.js +198 -0
- package/dist/_shared/money-display-BabyaIWb.js.map +1 -0
- package/dist/_shared/money-display-CrNRbByx.cjs +2 -0
- package/dist/_shared/money-display-CrNRbByx.cjs.map +1 -0
- package/dist/_shared/navigation-9DB-vtGI.js +436 -0
- package/dist/_shared/navigation-9DB-vtGI.js.map +1 -0
- package/dist/_shared/navigation-DAjFLSv5.cjs +2 -0
- package/dist/_shared/navigation-DAjFLSv5.cjs.map +1 -0
- package/dist/_shared/overlays-BK0J8zSv.cjs +2 -0
- package/dist/_shared/overlays-BK0J8zSv.cjs.map +1 -0
- package/dist/_shared/overlays-DKsXufDv.js +735 -0
- package/dist/_shared/overlays-DKsXufDv.js.map +1 -0
- package/dist/_shared/popover-menu-DXh14PIu.js +93 -0
- package/dist/_shared/popover-menu-DXh14PIu.js.map +1 -0
- package/dist/_shared/popover-menu-DkjPUZ4v.cjs +2 -0
- package/dist/_shared/popover-menu-DkjPUZ4v.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-DjZTJzdm.cjs +2 -0
- package/dist/_shared/rich-text-editor-DjZTJzdm.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-DloyZq46.js +620 -0
- package/dist/_shared/rich-text-editor-DloyZq46.js.map +1 -0
- package/dist/_shared/settings-AIgixHbB.cjs +2 -0
- package/dist/_shared/settings-AIgixHbB.cjs.map +1 -0
- package/dist/_shared/settings-D3KdypJk.js +143 -0
- package/dist/_shared/settings-D3KdypJk.js.map +1 -0
- package/dist/_shared/sidebar-BzBincq3.js +548 -0
- package/dist/_shared/sidebar-BzBincq3.js.map +1 -0
- package/dist/_shared/sidebar-D5NLbyow.cjs +2 -0
- package/dist/_shared/sidebar-D5NLbyow.cjs.map +1 -0
- package/dist/_shared/skeleton-Bc_qa5l_.js +256 -0
- package/dist/_shared/skeleton-Bc_qa5l_.js.map +1 -0
- package/dist/_shared/skeleton-Wq6G0Kya.cjs +2 -0
- package/dist/_shared/skeleton-Wq6G0Kya.cjs.map +1 -0
- package/dist/_shared/spinner-C-yoZUk-.cjs +2 -0
- package/dist/_shared/spinner-C-yoZUk-.cjs.map +1 -0
- package/dist/_shared/spinner-CDVWFN0N.js +67 -0
- package/dist/_shared/spinner-CDVWFN0N.js.map +1 -0
- package/dist/_shared/table-B70kyH2E.js +1377 -0
- package/dist/_shared/table-B70kyH2E.js.map +1 -0
- package/dist/_shared/table-DQA2m2F0.cjs +2 -0
- package/dist/_shared/table-DQA2m2F0.cjs.map +1 -0
- package/dist/_shared/textarea-Dx9yEZY2.js +118 -0
- package/dist/_shared/textarea-Dx9yEZY2.js.map +1 -0
- package/dist/_shared/textarea-rfnSeHHC.cjs +2 -0
- package/dist/_shared/textarea-rfnSeHHC.cjs.map +1 -0
- package/dist/_shared/typography-C_kCoR1d.js +204 -0
- package/dist/_shared/typography-C_kCoR1d.js.map +1 -0
- package/dist/_shared/typography-sXFd02zl.cjs +2 -0
- package/dist/_shared/typography-sXFd02zl.cjs.map +1 -0
- package/dist/_shared/workspace-Bw-k_HXQ.js +357 -0
- package/dist/_shared/workspace-Bw-k_HXQ.js.map +1 -0
- package/dist/_shared/workspace-CLUsYC5y.cjs +2 -0
- package/dist/_shared/workspace-CLUsYC5y.cjs.map +1 -0
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/carousel/carousel.d.ts.map +1 -1
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.cjs.map +1 -1
- package/dist/components/base/carousel/index.js +98 -97
- package/dist/components/base/carousel/index.js.map +1 -1
- package/dist/components/base/combobox/components/combobox-dropdown.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/command/command.d.ts +1 -1
- package/dist/components/base/command/index.cjs +1 -1
- package/dist/components/base/command/index.js +1 -1
- package/dist/components/base/copyable/index.cjs +1 -1
- package/dist/components/base/copyable/index.js +1 -1
- package/dist/components/base/currency/index.cjs +1 -1
- package/dist/components/base/currency/index.js +1 -1
- package/dist/components/base/date-pickers/index.cjs +1 -1
- package/dist/components/base/date-pickers/index.js +2 -2
- package/dist/components/base/display/alert.d.ts.map +1 -1
- package/dist/components/base/display/chart.cjs +1 -1
- package/dist/components/base/display/chart.js +1 -1
- package/dist/components/base/display/icon-size.d.ts +6 -0
- package/dist/components/base/display/icon-size.d.ts.map +1 -0
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.d.ts +1 -0
- package/dist/components/base/display/index.d.ts.map +1 -1
- package/dist/components/base/display/index.js +10 -9
- package/dist/components/base/display/throttle-alert.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 +4 -4
- package/dist/components/base/event-calendar/index.js.map +1 -1
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +5 -5
- 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 +3 -3
- package/dist/components/base/map/index.js.map +1 -1
- package/dist/components/base/map/map.d.ts +1 -1
- package/dist/components/base/map/map.d.ts.map +1 -1
- package/dist/components/base/navigation/dropdown-menu.d.ts +33 -1
- package/dist/components/base/navigation/dropdown-menu.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/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +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/index.cjs +1 -1
- package/dist/components/base/table/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.cjs.map +1 -1
- package/dist/components/composed/admin/index.js +10 -11
- package/dist/components/composed/admin/index.js.map +1 -1
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.cjs.map +1 -1
- package/dist/components/composed/ai/index.js +8 -9
- package/dist/components/composed/ai/index.js.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.js +4 -4
- package/dist/components/composed/analytics/index.js.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 +13 -15
- package/dist/components/composed/cards/index.js.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.d.ts +2 -0
- package/dist/components/composed/commerce/index.d.ts.map +1 -1
- package/dist/components/composed/commerce/index.js +1246 -382
- package/dist/components/composed/commerce/index.js.map +1 -1
- package/dist/components/composed/commerce/inventory-section/index.d.ts +3 -0
- package/dist/components/composed/commerce/inventory-section/index.d.ts.map +1 -0
- package/dist/components/composed/commerce/inventory-section/inventory-section.d.ts +6 -0
- package/dist/components/composed/commerce/inventory-section/inventory-section.d.ts.map +1 -0
- package/dist/components/composed/commerce/inventory-section/types.d.ts +85 -0
- package/dist/components/composed/commerce/inventory-section/types.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/index.d.ts +4 -0
- package/dist/components/composed/commerce/seo-listing/index.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-card.d.ts +6 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-card.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-score.d.ts +6 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-score.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/types.d.ts +68 -0
- package/dist/components/composed/commerce/seo-listing/types.d.ts.map +1 -0
- 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 +7 -7
- package/dist/components/composed/dark-surfaces/index.js.map +1 -1
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +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 +5 -6
- package/dist/components/composed/navigation/index.js.map +1 -1
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +3 -3
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +3 -3
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +5 -5
- package/dist/components/features/ai-chat/index.cjs +1 -1
- package/dist/components/features/ai-chat/index.js +5 -5
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +4 -4
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/data-view/index.cjs +1 -1
- package/dist/components/features/data-view/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +4 -4
- 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 +64 -64
- package/dist/components/features/filters/index.js.map +1 -1
- package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -1
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +4 -4
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +3 -3
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.cjs.map +1 -1
- package/dist/components/features/media-library/index.js +230 -206
- package/dist/components/features/media-library/index.js.map +1 -1
- package/dist/components/features/media-library/media-library.d.ts.map +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
- package/dist/components/features/media-library/media-library.strings.d.ts.map +1 -1
- package/dist/components/features/media-library/partials/media-library-partials.d.ts.map +1 -1
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/products/components/index.d.ts +3 -0
- package/dist/components/features/products/components/index.d.ts.map +1 -1
- package/dist/components/features/products/components/product-options-matrix.d.ts +6 -0
- package/dist/components/features/products/components/product-options-matrix.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variants-bulk-table.d.ts +6 -0
- package/dist/components/features/products/components/product-variants-bulk-table.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variants-manager.d.ts +6 -0
- package/dist/components/features/products/components/product-variants-manager.d.ts.map +1 -0
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.cjs.map +1 -1
- package/dist/components/features/products/index.js +1705 -511
- package/dist/components/features/products/index.js.map +1 -1
- package/dist/components/features/products/products.strings.d.ts +70 -0
- package/dist/components/features/products/products.strings.d.ts.map +1 -1
- package/dist/components/features/products/products.types.d.ts +163 -1
- package/dist/components/features/products/products.types.d.ts.map +1 -1
- package/dist/components/features/resource/index.cjs +1 -1
- package/dist/components/features/resource/index.js +5 -5
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +8 -8
- package/dist/components/features/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.js +1 -1
- package/dist/components/features/sync/index.cjs +1 -1
- package/dist/components/features/sync/index.js +2 -2
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.d.ts +1 -0
- package/dist/components/layout/containers/index.d.ts.map +1 -1
- package/dist/components/layout/containers/index.js +2 -2
- package/dist/components/layout/containers/two-column-layout.d.ts +43 -0
- package/dist/components/layout/containers/two-column-layout.d.ts.map +1 -0
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +9 -9
- 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/settings/index.cjs +1 -1
- package/dist/components/layout/settings/index.js +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +1 -1
- package/dist/components/typography/text-link.d.ts +3 -1
- package/dist/components/typography/text-link.d.ts.map +1 -1
- package/dist/components/typography/text.d.ts.map +1 -1
- package/dist/lib/ui-provider/types.d.ts +1 -1
- package/dist/lib/ui-provider/types.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 +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/services/actions/index.cjs +1 -1
- package/dist/services/actions/index.js +1 -1
- package/dist/showcase/assets/AreaChart-D_z9eYQj.js +6 -0
- package/dist/showcase/assets/CompositeItem-BSVzIXzg.js +1 -0
- package/dist/showcase/assets/CompositeRoot-Ewl7bgm-.js +1 -0
- package/dist/showcase/assets/DialogTrigger-CD-DcY4b.js +1 -0
- package/dist/showcase/assets/LabelableContext-BdRVtvs6.js +1 -0
- package/dist/showcase/assets/MenuTrigger-B8Y7BUCN.js +1 -0
- package/dist/showcase/assets/PreviewLayout-CE0fmzoc.js +1 -0
- package/dist/showcase/assets/RadioGroup-Qaf-akL1.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-BQR87jzh.js +1 -0
- package/dist/showcase/assets/Separator-Cymh2jzU.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-P5BSzPlo.js +1 -0
- package/dist/showcase/assets/accordion-BGUvdQ5Z.js +171 -0
- package/dist/showcase/assets/accordion-variants-B56z6tQI.js +1 -0
- package/dist/showcase/assets/action-menu-C3DOQfP4.js +1 -0
- package/dist/showcase/assets/actions-DHG4zJRu.js +38 -0
- package/dist/showcase/assets/actions-IxPK0biY.js +310 -0
- package/dist/showcase/assets/activities-TK5Lr8Wb.js +500 -0
- package/dist/showcase/assets/activities-feed-card-tgQKimyh.js +1 -0
- package/dist/showcase/assets/admin-BQrDKNJa.js +140 -0
- package/dist/showcase/assets/ai-artifact-Cv7LTw1V.js +2 -0
- package/dist/showcase/assets/ai-chat-Dmg2Tqf1.js +568 -0
- package/dist/showcase/assets/ai-elements-BmokxSCy.js +387 -0
- package/dist/showcase/assets/ai-tool-call-6qESA6We.js +1 -0
- package/dist/showcase/assets/ai-xShhEkrM.js +207 -0
- package/dist/showcase/assets/alert--MONSwFW.js +1 -0
- package/dist/showcase/assets/alert-BuMNu_BZ.js +62 -0
- package/dist/showcase/assets/alert-z1RP5MhA.js +93 -0
- package/dist/showcase/assets/api-key-list-BhmXUJty.js +73 -0
- package/dist/showcase/assets/api-key-list-hPTN6gwa.js +1 -0
- package/dist/showcase/assets/app-sidebar-CY-XpIu6.js +1 -0
- package/dist/showcase/assets/arrow-down-D0XbhSDi.js +1 -0
- package/dist/showcase/assets/arrow-left-DBxsWbzL.js +1 -0
- package/dist/showcase/assets/arrow-right-Dk80zKWl.js +1 -0
- package/dist/showcase/assets/arrow-up-BiZ_VvpP.js +1 -0
- package/dist/showcase/assets/arrow-up-right-OdmPQEwY.js +1 -0
- package/dist/showcase/assets/avatar-BThv_quW.js +1 -0
- package/dist/showcase/assets/avatar-Bcy2snIC.js +67 -0
- package/dist/showcase/assets/avatar-Ca3to6dB.js +57 -0
- package/dist/showcase/assets/avatar-Dba0yVei.js +1 -0
- package/dist/showcase/assets/badge-A1w2eIaM.js +31 -0
- package/dist/showcase/assets/badge-check-DyqZ9Ff8.js +1 -0
- package/dist/showcase/assets/bell-DyqsYdKK.js +1 -0
- package/dist/showcase/assets/boolean-indicator-gaFjXuY1.js +1 -0
- package/dist/showcase/assets/bot-BGQvS_p9.js +1 -0
- package/dist/showcase/assets/box-BoFEAPr6.js +1 -0
- package/dist/showcase/assets/braces-D88Ve7g-.js +1 -0
- package/dist/showcase/assets/brain-hIv2TdLu.js +1 -0
- package/dist/showcase/assets/brand-CiWM8HzB.js +36 -0
- package/dist/showcase/assets/breadcrumb-DlHNoCer.js +1 -0
- package/dist/showcase/assets/breadcrumb-Dy-UbgK5.js +52 -0
- package/dist/showcase/assets/breadcrumbs-BoXmoDHt.js +1 -0
- package/dist/showcase/assets/briefcase-BeN7dk_G.js +1 -0
- package/dist/showcase/assets/building-2-ICycTKXZ.js +1 -0
- package/dist/showcase/assets/button-BADo_inb.js +44 -0
- package/dist/showcase/assets/button-group-BGkXY3HC.js +1 -0
- package/dist/showcase/assets/buttons-3z50eWMp.js +272 -0
- package/dist/showcase/assets/calendar-BAfoc476.js +1 -0
- package/dist/showcase/assets/calendar-DNxQUmlO.js +16 -0
- package/dist/showcase/assets/calendar-days-D86Fv-vG.js +1 -0
- package/dist/showcase/assets/calendar-pjS8iCZE.js +1 -0
- package/dist/showcase/assets/camera-DxWfctRe.js +1 -0
- package/dist/showcase/assets/card-BazLaDA9.js +188 -0
- package/dist/showcase/assets/card-F8Ona144.js +1 -0
- package/dist/showcase/assets/card-checkbox-group-DtK7aVPU.js +1 -0
- package/dist/showcase/assets/card-primitives-DzqLvy5f.js +1 -0
- package/dist/showcase/assets/card-radio-group-EjPkSg-w.js +1 -0
- package/dist/showcase/assets/cards--V2D7Sft.js +354 -0
- package/dist/showcase/assets/carousel-BNmTHQiN.js +452 -0
- package/dist/showcase/assets/cell-renderers-BdpeNGHs.js +1 -0
- package/dist/showcase/assets/chart-column-CJx3qWPs.js +1 -0
- package/dist/showcase/assets/chart-p7dUP6Mo.js +358 -0
- package/dist/showcase/assets/checkbox-BBxn_hxI.js +1 -0
- package/dist/showcase/assets/checkbox-BEyESyQ2.js +1 -0
- package/dist/showcase/assets/chevron-down-mjLUdP6b.js +1 -0
- package/dist/showcase/assets/chevron-left-DOofVtEd.js +1 -0
- package/dist/showcase/assets/chevron-up-BJk6z8Fg.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-C-9zUpl_.js +1 -0
- package/dist/showcase/assets/circle-OmLq29jq.js +1 -0
- package/dist/showcase/assets/circle-alert-DSpR2pdl.js +1 -0
- package/dist/showcase/assets/circle-check-BjuHEm7p.js +1 -0
- package/dist/showcase/assets/circle-check-big-BuYdgE3Q.js +1 -0
- package/dist/showcase/assets/circle-dot-DlYGMuaF.js +1 -0
- package/dist/showcase/assets/circle-question-mark-BlgRDDu3.js +1 -0
- package/dist/showcase/assets/circle-x-BavQ4wuc.js +1 -0
- package/dist/showcase/assets/clock-3-CzeN1Iwk.js +1 -0
- package/dist/showcase/assets/clock-CZYS08d1.js +1 -0
- package/dist/showcase/assets/code-xml-D4NwoTpD.js +1 -0
- package/dist/showcase/assets/collapsible-BtawbO_2.js +1 -0
- package/dist/showcase/assets/collapsible-CJXE3z1T.js +27 -0
- package/dist/showcase/assets/collapsible-ws3VKPg9.js +1 -0
- package/dist/showcase/assets/combobox-Btpk7-vH.js +685 -0
- package/dist/showcase/assets/command-CoiVI2_b.js +1 -0
- package/dist/showcase/assets/command-Dkn9XqF2.js +1 -0
- package/dist/showcase/assets/comment-composer-BNnVQo1O.js +1 -0
- package/dist/showcase/assets/comment-item-BiIgcrPQ.js +1 -0
- package/dist/showcase/assets/comments-CvzWz23L.js +357 -0
- package/dist/showcase/assets/commerce-CBHLQF8q.js +19 -0
- package/dist/showcase/assets/commerce-address-card-Bqm0FQkG.js +33 -0
- package/dist/showcase/assets/commerce-cart-summary-BtGCOEun.js +43 -0
- package/dist/showcase/assets/commerce-coupon-input-I3FY6pgV.js +11 -0
- package/dist/showcase/assets/commerce-discount-stack-CWqyobuL.js +17 -0
- package/dist/showcase/assets/commerce-inventory-section-rBtMNLTt.js +123 -0
- package/dist/showcase/assets/commerce-loyalty-points-ne7c2ObQ.js +19 -0
- package/dist/showcase/assets/commerce-order-status-eLtUC1iE.js +21 -0
- package/dist/showcase/assets/commerce-payment-method-B3yFyhpS.js +17 -0
- package/dist/showcase/assets/commerce-refund-status-C1pzTSus.js +17 -0
- package/dist/showcase/assets/commerce-seo-listing-CBk_c8ru.js +61 -0
- package/dist/showcase/assets/commerce-shipment-tracking-auiKGGyV.js +24 -0
- package/dist/showcase/assets/commerce-subscription-summary-BCX4WxbS.js +25 -0
- package/dist/showcase/assets/commerce-tax-breakdown-D4F5dOjL.js +19 -0
- package/dist/showcase/assets/commerce-upcoming-booking-qlWKp0kq.js +20 -0
- package/dist/showcase/assets/commerce-voucher-entry-CqCuoKHq.js +19 -0
- package/dist/showcase/assets/composite-DeYDU7hg.js +1 -0
- package/dist/showcase/assets/conditional-rendering-CFHxzngX.js +1 -0
- package/dist/showcase/assets/contact-card-CxVeuwp_.js +65 -0
- package/dist/showcase/assets/content-container-CJN01OtO.js +1 -0
- package/dist/showcase/assets/copyable-DajG-Sgx.js +1 -0
- package/dist/showcase/assets/copyable-zOzqOOBl.js +96 -0
- package/dist/showcase/assets/course-card-DO8z-KeM.js +77 -0
- package/dist/showcase/assets/cpu-C8IgjvoP.js +1 -0
- package/dist/showcase/assets/credit-card-XYEEHtzk.js +1 -0
- package/dist/showcase/assets/css-variables-BglvDaVO.js +1223 -0
- package/dist/showcase/assets/currency-Bso6kejw.js +148 -0
- package/dist/showcase/assets/dark-surfaces-5WTjzxYN.js +90 -0
- package/dist/showcase/assets/data-view-B7uRWXOO.js +4 -0
- package/dist/showcase/assets/data-view-C4bGuOlY.js +124 -0
- package/dist/showcase/assets/database-CZLgFKRy.js +1 -0
- package/dist/showcase/assets/date-block-BicWaKPj.js +1 -0
- package/dist/showcase/assets/date-block-yRFY8Ne5.js +1 -0
- package/dist/showcase/assets/date-picker-CskCoiwf.js +1 -0
- package/dist/showcase/assets/date-pickers-fcqdsvef.js +73 -0
- package/dist/showcase/assets/dense-info-Dg38xVsF.js +106 -0
- package/dist/showcase/assets/design-system-consistency-DFa3RNWm.js +264 -0
- package/dist/showcase/assets/dialog-C4fhqXD0.js +1 -0
- package/dist/showcase/assets/dialog-CN_gfVV2.js +1 -0
- package/dist/showcase/assets/dialog-CoJdLYZ8.js +1 -0
- package/dist/showcase/assets/display-utilities-DB0eXAdH.js +4 -0
- package/dist/showcase/assets/display-utilities.examples-ez3DfdgN.js +309 -0
- package/dist/showcase/assets/dist-5H2NtsLp.js +45 -0
- package/dist/showcase/assets/dist-SJMpFlRc.js +1 -0
- package/dist/showcase/assets/dollar-sign-LBLhl0Y2.js +1 -0
- package/dist/showcase/assets/download-BkOWnQEj.js +1 -0
- package/dist/showcase/assets/dropdown-menu-5yqchTEF.js +1 -0
- package/dist/showcase/assets/dropzone-CJHqIcHB.js +1 -0
- package/dist/showcase/assets/earth-BGrx2u2i.js +1 -0
- package/dist/showcase/assets/ellipsis-Dumpj4aE.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-h1O9pibc.js +1 -0
- package/dist/showcase/assets/empty-Cc8JP5--.js +1 -0
- package/dist/showcase/assets/empty-item-C-v-Akyi.js +49 -0
- package/dist/showcase/assets/empty-state-B7BQDoeL.js +1 -0
- package/dist/showcase/assets/empty-state-BSvZNFnQ.js +190 -0
- package/dist/showcase/assets/enhanced-activities-D7g7ZD9m.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-4Olgu--e.js +1 -0
- package/dist/showcase/assets/esm-CFFDcW-Z.js +2 -0
- package/dist/showcase/assets/event-calendar-vdFWcI49.js +138 -0
- package/dist/showcase/assets/event-log-BbHM_3Ko.js +330 -0
- package/dist/showcase/assets/example-BsDQngs7.js +1 -0
- package/dist/showcase/assets/external-link-BvVwsJxR.js +1 -0
- package/dist/showcase/assets/eye-CAeo-GNe.js +1 -0
- package/dist/showcase/assets/feature-announcement-7hZGrJd6.js +34 -0
- package/dist/showcase/assets/file-D4d3b9bx.js +1 -0
- package/dist/showcase/assets/file-text-C59ToXmU.js +1 -0
- package/dist/showcase/assets/filter-layout-BjoG6qxP.js +1 -0
- package/dist/showcase/assets/filters-CrE_UGbo.js +139 -0
- package/dist/showcase/assets/fixtures-ClOCQD2a.js +1 -0
- package/dist/showcase/assets/flag-CuF52WEl.js +1 -0
- package/dist/showcase/assets/folder-open-BLLtgh4E.js +1 -0
- package/dist/showcase/assets/form-field-D5kwgD4P.js +1 -0
- package/dist/showcase/assets/form-sizing-Bv0A0Oi0.js +1 -0
- package/dist/showcase/assets/format-LvvHefMj.js +1 -0
- package/dist/showcase/assets/forms-Ck6hPzLP.js +915 -0
- package/dist/showcase/assets/funnel-Bvp5cFZt.js +1 -0
- package/dist/showcase/assets/generic-Cownd_Wk.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-CPnjAO3K.js +1 -0
- package/dist/showcase/assets/gift-BCQpmV33.js +1 -0
- package/dist/showcase/assets/giftcard-cards-B_78Meny.js +85 -0
- package/dist/showcase/assets/git-branch-r0dDGCKy.js +1 -0
- package/dist/showcase/assets/global-search-DD9cGOt5.js +1 -0
- package/dist/showcase/assets/global-search-fTKzzx8k.js +215 -0
- package/dist/showcase/assets/globe-RF5bwiar.js +1 -0
- package/dist/showcase/assets/gradient-card-BDJes3UK.js +58 -0
- package/dist/showcase/assets/grip-vertical-qqe2NqfZ.js +1 -0
- package/dist/showcase/assets/hash-D9_KYvHs.js +1 -0
- package/dist/showcase/assets/header-XNCAB6Rs.js +1 -0
- package/dist/showcase/assets/header-notifications-BdWsVoN3.js +1 -0
- package/dist/showcase/assets/heart-C56rAanb.js +1 -0
- package/dist/showcase/assets/hooks-fDydjf6M.js +220 -0
- package/dist/showcase/assets/house-DbYM6er_.js +1 -0
- package/dist/showcase/assets/icon-badge-DWQE6dAm.js +37 -0
- package/dist/showcase/assets/icon-badge-ruuI6tt0.js +1 -0
- package/dist/showcase/assets/icon-size-BHn0d6Zp.js +1 -0
- package/dist/showcase/assets/image-DCpC2weW.js +1 -0
- package/dist/showcase/assets/inbox-cvR2MbZq.js +1 -0
- package/dist/showcase/assets/index-B4sKWDcN.js +10 -0
- package/dist/showcase/assets/index-Dy3INIq2.css +2 -0
- package/dist/showcase/assets/inertValue-DhXA8ytu.js +1 -0
- package/dist/showcase/assets/info-DXwnIz56.js +1 -0
- package/dist/showcase/assets/inline-stat-C9Syz6in.js +1 -0
- package/dist/showcase/assets/inline-stat-CDcWILUM.js +15 -0
- package/dist/showcase/assets/input-CLQIEOQ4.js +1 -0
- package/dist/showcase/assets/input-D70ed8oB.js +1 -0
- package/dist/showcase/assets/input-group-CMJ2yUuD.js +47 -0
- package/dist/showcase/assets/input-group-DwZov3Y6.js +1 -0
- package/dist/showcase/assets/inputs-DQWbPvC8.js +155 -0
- package/dist/showcase/assets/installation-B2BcSkJr.js +134 -0
- package/dist/showcase/assets/invoice-header-Ds4A6mLs.js +36 -0
- package/dist/showcase/assets/invoice-items-LFYeS0eR.js +36 -0
- package/dist/showcase/assets/invoice-mini-BMVm8x43.js +14 -0
- package/dist/showcase/assets/invoice-table-BVZ-PtSC.js +30 -0
- package/dist/showcase/assets/isSameDay-BYK9pmDX.js +1 -0
- package/dist/showcase/assets/isToday-B3-xb910.js +1 -0
- package/dist/showcase/assets/italic-CPSVPc63.js +1 -0
- package/dist/showcase/assets/item-KsGEgVjl.js +1 -0
- package/dist/showcase/assets/item-WOhHNpnr.js +1 -0
- package/dist/showcase/assets/item-avTNp1z7.js +140 -0
- package/dist/showcase/assets/kanban-DwVW3Lab.js +188 -0
- package/dist/showcase/assets/key-round-CNEqnMGG.js +1 -0
- package/dist/showcase/assets/label-BZzl85ev.js +1 -0
- package/dist/showcase/assets/languages-BWquWXSu.js +1 -0
- package/dist/showcase/assets/layers-hYbCFSpT.js +1 -0
- package/dist/showcase/assets/layout-app-shell-BRLO7lFp.js +608 -0
- package/dist/showcase/assets/layout-auth-ysobcsYs.js +790 -0
- package/dist/showcase/assets/layout-containers-BoVYkBOk.js +141 -0
- package/dist/showcase/assets/layout-header-BnkgzPgS.js +203 -0
- package/dist/showcase/assets/layout-page-CdzQQr2_.js +315 -0
- package/dist/showcase/assets/layout-primitives-BXP_nFQX.js +34 -0
- package/dist/showcase/assets/layout-sidebar-tPHppANn.js +224 -0
- package/dist/showcase/assets/layout-users-DgChX6ig.js +117 -0
- package/dist/showcase/assets/layout-workspace-u1kkLDCd.js +191 -0
- package/dist/showcase/assets/lib-VG1Lf4Lk.js +1 -0
- package/dist/showcase/assets/list-checks-CUXbiTmk.js +1 -0
- package/dist/showcase/assets/lock-BwI_fNQW.js +1 -0
- package/dist/showcase/assets/lock-keyhole-DKi16lNp.js +1 -0
- package/dist/showcase/assets/mail-BlH-8y33.js +1 -0
- package/dist/showcase/assets/mail-check-DrNT7RWT.js +1 -0
- package/dist/showcase/assets/map-BKztQq4-.js +124 -0
- package/dist/showcase/assets/map-pin-BwGJCGY8.js +1 -0
- package/dist/showcase/assets/media-library-CUI_IPkM.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-BIIRKRpU.js +1 -0
- package/dist/showcase/assets/mentions-CTkcQNFc.js +138 -0
- package/dist/showcase/assets/menus-DilZRggQ.js +171 -0
- package/dist/showcase/assets/message-square-Cjuladix.js +1 -0
- package/dist/showcase/assets/metadata-list-C6CF85o9.js +1 -0
- package/dist/showcase/assets/metadata-list-PqngP9QU.js +286 -0
- package/dist/showcase/assets/metric-C5Wrr90_.js +1 -0
- package/dist/showcase/assets/metric-bar-CIesI_gw.js +1 -0
- package/dist/showcase/assets/metric-grid-FlL7atag.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-DxTiaCTB.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-YabnSIOP.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-Buas8exV.js +50 -0
- package/dist/showcase/assets/metrics-comparison-Jx1WGPZL.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-C5cB95P9.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-D7r40gFm.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-CweMAqSm.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-UUa2fUGF.js +42 -0
- package/dist/showcase/assets/metrics-overview-eGnNPvwF.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-CEcX0zqZ.js +54 -0
- package/dist/showcase/assets/minus-CVVsGq91.js +1 -0
- package/dist/showcase/assets/money-display-Chu4t6MY.js +1 -0
- package/dist/showcase/assets/money-display-DNs6PXCm.js +3 -0
- package/dist/showcase/assets/month-year-picker-B0odiuhf.js +1 -0
- package/dist/showcase/assets/navigation-CQwt1f4b.js +90 -0
- package/dist/showcase/assets/navigation-KQxXtiL6.js +231 -0
- package/dist/showcase/assets/navigation-extras-2uJbGPhJ.js +43 -0
- package/dist/showcase/assets/notification-banner-Cx1Qm0ij.js +1 -0
- package/dist/showcase/assets/onboarding-checklist-CAHajXzP.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-gNULx5Wr.js +1 -0
- package/dist/showcase/assets/overlays-CaSVa-L2.js +159 -0
- package/dist/showcase/assets/overlays-zjTanrAP.js +408 -0
- package/dist/showcase/assets/overview-EZ_RMkeD.js +184 -0
- package/dist/showcase/assets/package-CqQQqj6Y.js +1 -0
- package/dist/showcase/assets/package-check-Nqr5Lv95.js +1 -0
- package/dist/showcase/assets/page-BTXFFFwT.js +1 -0
- package/dist/showcase/assets/page-action-button-NJqE-qP0.js +1 -0
- package/dist/showcase/assets/page-header-AFTuoGVw.js +1 -0
- package/dist/showcase/assets/pagination-B1Ewc7Co.js +1 -0
- package/dist/showcase/assets/pagination-DOdLcTiT.js +42 -0
- package/dist/showcase/assets/paperclip-D0oBI19t.js +1 -0
- package/dist/showcase/assets/password-input-C5MrNrHm.js +1 -0
- package/dist/showcase/assets/pencil-DdCEPDLe.js +1 -0
- package/dist/showcase/assets/phone-BdGmQ_eI.js +1 -0
- package/dist/showcase/assets/placeholder-pattern-BnyJukU0.js +1 -0
- package/dist/showcase/assets/plus-Dp_nZNjk.js +1 -0
- package/dist/showcase/assets/popover-BP4R2w67.js +1 -0
- package/dist/showcase/assets/popover-DfGXC2pN.js +1 -0
- package/dist/showcase/assets/popover-menu-DGkCA4YC.js +1 -0
- package/dist/showcase/assets/product-empty-state-CKylTX_h.js +1 -0
- package/dist/showcase/assets/product-option-action-menu-vqslODBe.js +1 -0
- package/dist/showcase/assets/product-rows-CWy63Dk5.js +1 -0
- package/dist/showcase/assets/product-structure-card-EJY038tP.js +1 -0
- package/dist/showcase/assets/product-variant-action-menu-CnRJscP3.js +1 -0
- package/dist/showcase/assets/products-jpCjHLbZ.js +61 -0
- package/dist/showcase/assets/progress-D19PRprP.js +1 -0
- package/dist/showcase/assets/progress-UbtWRfF2.js +18 -0
- package/dist/showcase/assets/progress-twHfoY8k.js +1 -0
- package/dist/showcase/assets/props-table-aynAz90t.js +1 -0
- package/dist/showcase/assets/props.generated-IUhT2lh_.json +42950 -0
- package/dist/showcase/assets/qr-code-ywR6kVzD.js +1 -0
- package/dist/showcase/assets/quote-BFMPQa3L.js +1 -0
- package/dist/showcase/assets/receipt-CcTseXcy.js +1 -0
- package/dist/showcase/assets/receipt-text-C9BMAbTL.js +1 -0
- package/dist/showcase/assets/refinement-guide-lotMKye4.js +189 -0
- package/dist/showcase/assets/refresh-cw-DpfoVhbc.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-mzTN-8j9.js +1 -0
- package/dist/showcase/assets/resource-CwHVDrOk.js +1 -0
- package/dist/showcase/assets/resource-kPziVtVy.js +139 -0
- package/dist/showcase/assets/resource-selector-card-xIysiHOg.js +43 -0
- package/dist/showcase/assets/rich-text-editor-Bi6stpAW.js +124 -0
- package/dist/showcase/assets/rich-text-editor-DggGI4Dj.js +143 -0
- package/dist/showcase/assets/rotate-ccw-Uau0Jm3_.js +1 -0
- package/dist/showcase/assets/route-Dj29lOBc.js +1 -0
- package/dist/showcase/assets/save-j-PKUm-B.js +1 -0
- package/dist/showcase/assets/schema-form-D4kfmM1o.js +327 -0
- package/dist/showcase/assets/scroll-area-CK1S6JpQ.js +1 -0
- package/dist/showcase/assets/scroll-area-Di7TDfFD.js +32 -0
- package/dist/showcase/assets/section-C_rLy6Zn.js +1 -0
- package/dist/showcase/assets/select-BRC14Sd3.js +1 -0
- package/dist/showcase/assets/select-J0hPSc5B.js +1 -0
- package/dist/showcase/assets/send-BnVbRsaN.js +1 -0
- package/dist/showcase/assets/separator-7gHhV7ed.js +1 -0
- package/dist/showcase/assets/separator-CjWigMul.js +1 -0
- package/dist/showcase/assets/separator-Dpo134G3.js +28 -0
- package/dist/showcase/assets/separator-JYQ5rY8E.js +1 -0
- package/dist/showcase/assets/settings-2-D06IRW2d.js +1 -0
- package/dist/showcase/assets/settings-YDwquOPS.js +1 -0
- package/dist/showcase/assets/sheet-O9T8bfRr.js +1 -0
- package/dist/showcase/assets/shield-Cebk5nXH.js +1 -0
- package/dist/showcase/assets/shield-alert-BldSpQ1t.js +1 -0
- package/dist/showcase/assets/shield-check-CNudpzdR.js +1 -0
- package/dist/showcase/assets/shopping-bag-BuHsmxnN.js +1 -0
- package/dist/showcase/assets/showcase-B1BPgzRP.js +132 -0
- package/dist/showcase/assets/sidebar-DPVgEwE0.js +1 -0
- package/dist/showcase/assets/sidebar.context-CYk51BQ5.js +1 -0
- package/dist/showcase/assets/skeleton-CrB6dGV4.js +29 -0
- package/dist/showcase/assets/skeleton-DMWrHdVi.js +1 -0
- package/dist/showcase/assets/skeleton-IBZSxxTq.js +1 -0
- package/dist/showcase/assets/skeleton-OK5SgmlA.js +1 -0
- package/dist/showcase/assets/slider-DMLIlQeO.js +1 -0
- package/dist/showcase/assets/smart-card-CwDYx0xj.js +1 -0
- package/dist/showcase/assets/sonner-Dpe1Nwfb.js +22 -0
- package/dist/showcase/assets/sortable.esm-BSC2lHxr.js +5 -0
- package/dist/showcase/assets/sparkles-BDnbTUMq.js +1 -0
- package/dist/showcase/assets/spinner-BZ0h-j9y.js +49 -0
- package/dist/showcase/assets/spinner-TNaSAQh7.js +30 -0
- package/dist/showcase/assets/spinner-k76a4i_M.js +1 -0
- package/dist/showcase/assets/square-pen-Cn-sFtCo.js +1 -0
- package/dist/showcase/assets/stacked-avatars-Ds8eV_Nx.js +1 -0
- package/dist/showcase/assets/star-BzQGhFDT.js +1 -0
- package/dist/showcase/assets/startOfDay-BfIUGWW-.js +1 -0
- package/dist/showcase/assets/styles-BleHZ-uX.js +1 -0
- package/dist/showcase/assets/suggestions-CsrJSY__.js +126 -0
- package/dist/showcase/assets/support-rail-C_fc_C1j.js +26 -0
- package/dist/showcase/assets/switch-BEfD8lic.js +1 -0
- package/dist/showcase/assets/switch-BOlIXIn9.js +1 -0
- package/dist/showcase/assets/switch-card-CCJ-MaRI.js +1 -0
- package/dist/showcase/assets/sync-vACCm2ND.js +124 -0
- package/dist/showcase/assets/table-CeZy8iT0.js +686 -0
- package/dist/showcase/assets/table-DPpHEvR_.js +1 -0
- package/dist/showcase/assets/table-actions-C9J5piiU.js +1 -0
- package/dist/showcase/assets/tabs-Ca6ldTWi.js +1 -0
- package/dist/showcase/assets/tabs-DGP5RvNm.js +19 -0
- package/dist/showcase/assets/tags-input-BOemEMZS.js +1 -0
- package/dist/showcase/assets/text-button-C8qZqcCy.js +1 -0
- package/dist/showcase/assets/text-link-BFYPeXTq.js +1 -0
- package/dist/showcase/assets/textarea-DcCHHuP-.js +1 -0
- package/dist/showcase/assets/textarea-RUqV9hNm.js +1 -0
- package/dist/showcase/assets/throttle-alert-Sf7FjTvh.js +1 -0
- package/dist/showcase/assets/timelines-nQ8shLIn.js +200 -0
- package/dist/showcase/assets/toggle-group-k5nqOfUW.js +1 -0
- package/dist/showcase/assets/toggles-E80ufOk5.js +71 -0
- package/dist/showcase/assets/toggles-group-vaJ63gg9.js +32 -0
- package/dist/showcase/assets/tooltip-DIvBe7hb.js +31 -0
- package/dist/showcase/assets/trash-2-C-6T17-B.js +1 -0
- package/dist/showcase/assets/trending-up-DRyRbFnA.js +1 -0
- package/dist/showcase/assets/truck-BE6OFjJs.js +1 -0
- package/dist/showcase/assets/typography-i6Zhj3TO.js +223 -0
- package/dist/showcase/assets/ui-badge-MBQsz2Mn.js +28 -0
- package/dist/showcase/assets/ui-card-jaEeRDe5.js +30 -0
- package/dist/showcase/assets/ui-table-CbmOEWVu.js +42 -0
- package/dist/showcase/assets/upload-tray-D4aE56cX.js +138 -0
- package/dist/showcase/assets/use-layout-link-DpqFiDf-.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-DSKQpAlQ.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-DL6IpVQS.js +1 -0
- package/dist/showcase/assets/useCompositeItem-jckozrpu.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-Ce0eZtsp.js +1 -0
- package/dist/showcase/assets/useLabelableId-Bs8clfkJ.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-KBhpVaur.js +1 -0
- package/dist/showcase/assets/useRender-Bn5cjIfs.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-D5Cl055z.js +1 -0
- package/dist/showcase/assets/useValueChanged-B-czUWmg.js +1 -0
- package/dist/showcase/assets/user-C7ORJkSr.js +1 -0
- package/dist/showcase/assets/user-plus-O410ITvy.js +1 -0
- package/dist/showcase/assets/users-BlcUaVEY.js +1 -0
- package/dist/showcase/assets/variant-details-BJ0OtpeL.js +50 -0
- package/dist/showcase/assets/variant-management-pTZ83MM_.js +209 -0
- package/dist/showcase/assets/vendor-profile-F2EP-AGx.js +37 -0
- package/dist/showcase/assets/video-fYZEPex_.js +1 -0
- package/dist/showcase/assets/visually-hidden-C1KAHG63.js +1 -0
- package/dist/showcase/assets/weight-input-_wl5mPGA.js +1 -0
- package/dist/showcase/assets/wrench-BzqNpztP.js +1 -0
- package/dist/showcase/assets/x-C5_SzMQM.js +1 -0
- package/dist/showcase/assets/zap-DdInHaAD.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/css/tokens/components.css +17 -2
- package/src/css/tokens/foundation.css +4 -2
- package/dist/_shared/accordion-8B4OFqiT.cjs +0 -2
- package/dist/_shared/accordion-8B4OFqiT.cjs.map +0 -1
- package/dist/_shared/accordion-DlpTSZ3p.js +0 -135
- package/dist/_shared/accordion-DlpTSZ3p.js.map +0 -1
- package/dist/_shared/action-menu-BYrYdpkR.cjs +0 -2
- package/dist/_shared/action-menu-BYrYdpkR.cjs.map +0 -1
- package/dist/_shared/action-menu-CYwMZX-b.js +0 -96
- package/dist/_shared/action-menu-CYwMZX-b.js.map +0 -1
- package/dist/_shared/ai-artifact-Cv8VBibf.cjs +0 -3
- package/dist/_shared/ai-artifact-Cv8VBibf.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DwfXQuh4.js +0 -1099
- package/dist/_shared/ai-artifact-DwfXQuh4.js.map +0 -1
- package/dist/_shared/auth-Cz5ci18c.cjs +0 -2
- package/dist/_shared/auth-Cz5ci18c.cjs.map +0 -1
- package/dist/_shared/auth-DDWsgFUL.js +0 -643
- package/dist/_shared/auth-DDWsgFUL.js.map +0 -1
- package/dist/_shared/badge-C65rt1M9.cjs +0 -2
- package/dist/_shared/badge-C65rt1M9.cjs.map +0 -1
- package/dist/_shared/badge-r8ae66Vd.js +0 -110
- package/dist/_shared/badge-r8ae66Vd.js.map +0 -1
- package/dist/_shared/breadcrumbs-CuT0YIfo.js +0 -105
- package/dist/_shared/breadcrumbs-CuT0YIfo.js.map +0 -1
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs +0 -2
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs.map +0 -1
- package/dist/_shared/button-Be2ayMxF.js +0 -192
- package/dist/_shared/button-Be2ayMxF.js.map +0 -1
- package/dist/_shared/button-CfQtOuBK.cjs +0 -2
- package/dist/_shared/button-CfQtOuBK.cjs.map +0 -1
- package/dist/_shared/buttons-DABiSx6N.cjs +0 -2
- package/dist/_shared/buttons-DABiSx6N.cjs.map +0 -1
- package/dist/_shared/buttons-DYQqQPpk.js +0 -137
- package/dist/_shared/buttons-DYQqQPpk.js.map +0 -1
- package/dist/_shared/card-radio-group-DKhZhBFV.cjs +0 -2
- package/dist/_shared/card-radio-group-DKhZhBFV.cjs.map +0 -1
- package/dist/_shared/card-radio-group-DRjmLN5s.js +0 -150
- package/dist/_shared/card-radio-group-DRjmLN5s.js.map +0 -1
- package/dist/_shared/cards-BJctT9KD.js +0 -428
- package/dist/_shared/cards-BJctT9KD.js.map +0 -1
- package/dist/_shared/cards-m03XN10f.cjs +0 -2
- package/dist/_shared/cards-m03XN10f.cjs.map +0 -1
- package/dist/_shared/combobox-BdBpeD3C.cjs +0 -2
- package/dist/_shared/combobox-BdBpeD3C.cjs.map +0 -1
- package/dist/_shared/combobox-D9tU_83-.js +0 -954
- package/dist/_shared/combobox-D9tU_83-.js.map +0 -1
- package/dist/_shared/command-BbJB0pjP.cjs +0 -2
- package/dist/_shared/command-BbJB0pjP.cjs.map +0 -1
- package/dist/_shared/command-IP2wy_HN.js +0 -39
- package/dist/_shared/command-IP2wy_HN.js.map +0 -1
- package/dist/_shared/comments-DAzpeuQq.cjs +0 -2
- package/dist/_shared/comments-DAzpeuQq.cjs.map +0 -1
- package/dist/_shared/comments-DzZaKP9x.js +0 -952
- package/dist/_shared/comments-DzZaKP9x.js.map +0 -1
- package/dist/_shared/containers-CB7zaAvN.cjs +0 -2
- package/dist/_shared/containers-CB7zaAvN.cjs.map +0 -1
- package/dist/_shared/containers-CLBmhGfs.js +0 -48
- package/dist/_shared/containers-CLBmhGfs.js.map +0 -1
- package/dist/_shared/copyable-BJYx2SlN.js +0 -38
- package/dist/_shared/copyable-BJYx2SlN.js.map +0 -1
- package/dist/_shared/copyable-DiDEjp8Z.cjs +0 -2
- package/dist/_shared/copyable-DiDEjp8Z.cjs.map +0 -1
- package/dist/_shared/data-display-DQUUEzCx.cjs +0 -2
- package/dist/_shared/data-display-DQUUEzCx.cjs.map +0 -1
- package/dist/_shared/data-display-LlvMEFTK.js +0 -1878
- package/dist/_shared/data-display-LlvMEFTK.js.map +0 -1
- package/dist/_shared/date-picker-CrC-lHyF.cjs +0 -2
- package/dist/_shared/date-picker-CrC-lHyF.cjs.map +0 -1
- package/dist/_shared/date-picker-DbYBek-b.js +0 -1361
- package/dist/_shared/date-picker-DbYBek-b.js.map +0 -1
- package/dist/_shared/date-pickers-9AU8YQK2.js +0 -329
- package/dist/_shared/date-pickers-9AU8YQK2.js.map +0 -1
- package/dist/_shared/date-pickers-DUEwCWig.cjs +0 -2
- package/dist/_shared/date-pickers-DUEwCWig.cjs.map +0 -1
- package/dist/_shared/display-BqoPOdof.cjs +0 -2
- package/dist/_shared/display-BqoPOdof.cjs.map +0 -1
- package/dist/_shared/display-CQoSwU74.js +0 -986
- package/dist/_shared/display-CQoSwU74.js.map +0 -1
- package/dist/_shared/dropdown-menu-CHQzQWUK.cjs +0 -2
- package/dist/_shared/dropdown-menu-CHQzQWUK.cjs.map +0 -1
- package/dist/_shared/dropdown-menu-CoWmrjYX.js +0 -147
- package/dist/_shared/dropdown-menu-CoWmrjYX.js.map +0 -1
- package/dist/_shared/form-sizing-DJus3nK3.cjs +0 -2
- package/dist/_shared/form-sizing-DJus3nK3.cjs.map +0 -1
- package/dist/_shared/form-sizing-DWjJsQSR.js +0 -42
- package/dist/_shared/form-sizing-DWjJsQSR.js.map +0 -1
- package/dist/_shared/forms-CNh-S9FK.cjs +0 -2
- package/dist/_shared/forms-CNh-S9FK.cjs.map +0 -1
- package/dist/_shared/forms-DIz3SCA9.js +0 -3534
- package/dist/_shared/forms-DIz3SCA9.js.map +0 -1
- package/dist/_shared/header-Bs61tQla.js +0 -447
- package/dist/_shared/header-Bs61tQla.js.map +0 -1
- package/dist/_shared/header-D01oOxna.cjs +0 -2
- package/dist/_shared/header-D01oOxna.cjs.map +0 -1
- package/dist/_shared/hooks-ACnpaIli.js +0 -95
- package/dist/_shared/hooks-ACnpaIli.js.map +0 -1
- package/dist/_shared/hooks-B7khuHkk.cjs +0 -2
- package/dist/_shared/hooks-B7khuHkk.cjs.map +0 -1
- package/dist/_shared/input-CzJzVyQ0.js +0 -182
- package/dist/_shared/input-CzJzVyQ0.js.map +0 -1
- package/dist/_shared/input-Dvvmn96E.cjs +0 -2
- package/dist/_shared/input-Dvvmn96E.cjs.map +0 -1
- package/dist/_shared/item-CVjjpHQd.js +0 -226
- package/dist/_shared/item-CVjjpHQd.js.map +0 -1
- package/dist/_shared/item-ChHblHhR.cjs +0 -2
- package/dist/_shared/item-ChHblHhR.cjs.map +0 -1
- package/dist/_shared/layout-CGi5w1mo.js +0 -268
- package/dist/_shared/layout-CGi5w1mo.js.map +0 -1
- package/dist/_shared/layout-ccVwjUG8.cjs +0 -2
- package/dist/_shared/layout-ccVwjUG8.cjs.map +0 -1
- package/dist/_shared/mentions-Cg_4vFxd.cjs +0 -2
- package/dist/_shared/mentions-Cg_4vFxd.cjs.map +0 -1
- package/dist/_shared/mentions-Ci9RFTfw.js +0 -506
- package/dist/_shared/mentions-Ci9RFTfw.js.map +0 -1
- package/dist/_shared/money-display-BFk9Gu21.cjs +0 -2
- package/dist/_shared/money-display-BFk9Gu21.cjs.map +0 -1
- package/dist/_shared/money-display-DpuLnsK2.js +0 -198
- package/dist/_shared/money-display-DpuLnsK2.js.map +0 -1
- package/dist/_shared/navigation-C1QN2-Vq.cjs +0 -2
- package/dist/_shared/navigation-C1QN2-Vq.cjs.map +0 -1
- package/dist/_shared/navigation-CMrLO8v5.js +0 -436
- package/dist/_shared/navigation-CMrLO8v5.js.map +0 -1
- package/dist/_shared/overlays-BJLczwpz.js +0 -735
- package/dist/_shared/overlays-BJLczwpz.js.map +0 -1
- package/dist/_shared/overlays-DbaPLT67.cjs +0 -2
- package/dist/_shared/overlays-DbaPLT67.cjs.map +0 -1
- package/dist/_shared/popover-menu-D_t6rCvN.cjs +0 -2
- package/dist/_shared/popover-menu-D_t6rCvN.cjs.map +0 -1
- package/dist/_shared/popover-menu-f2O6R_27.js +0 -93
- package/dist/_shared/popover-menu-f2O6R_27.js.map +0 -1
- package/dist/_shared/rich-text-editor-DmZHbsms.js +0 -620
- package/dist/_shared/rich-text-editor-DmZHbsms.js.map +0 -1
- package/dist/_shared/rich-text-editor-DqUU-H7i.cjs +0 -2
- package/dist/_shared/rich-text-editor-DqUU-H7i.cjs.map +0 -1
- package/dist/_shared/settings-CgtcSI8L.js +0 -143
- package/dist/_shared/settings-CgtcSI8L.js.map +0 -1
- package/dist/_shared/settings-csNmeT7b.cjs +0 -2
- package/dist/_shared/settings-csNmeT7b.cjs.map +0 -1
- package/dist/_shared/sidebar-DyGIcJd9.cjs +0 -2
- package/dist/_shared/sidebar-DyGIcJd9.cjs.map +0 -1
- package/dist/_shared/sidebar-OT-xIguQ.js +0 -548
- package/dist/_shared/sidebar-OT-xIguQ.js.map +0 -1
- package/dist/_shared/skeleton-DwF5VdMh.cjs +0 -2
- package/dist/_shared/skeleton-DwF5VdMh.cjs.map +0 -1
- package/dist/_shared/skeleton-yUXqeWzB.js +0 -256
- package/dist/_shared/skeleton-yUXqeWzB.js.map +0 -1
- package/dist/_shared/spinner-BDrUzfTo.cjs +0 -2
- package/dist/_shared/spinner-BDrUzfTo.cjs.map +0 -1
- package/dist/_shared/spinner-CuVZhJhN.js +0 -67
- package/dist/_shared/spinner-CuVZhJhN.js.map +0 -1
- package/dist/_shared/table-BVWemr79.cjs +0 -2
- package/dist/_shared/table-BVWemr79.cjs.map +0 -1
- package/dist/_shared/table-WYSjfQRr.js +0 -1377
- package/dist/_shared/table-WYSjfQRr.js.map +0 -1
- package/dist/_shared/textarea-C0iZwWdD.js +0 -118
- package/dist/_shared/textarea-C0iZwWdD.js.map +0 -1
- package/dist/_shared/textarea-bHFAtwYd.cjs +0 -2
- package/dist/_shared/textarea-bHFAtwYd.cjs.map +0 -1
- package/dist/_shared/typography-5bLhAYaK.js +0 -201
- package/dist/_shared/typography-5bLhAYaK.js.map +0 -1
- package/dist/_shared/typography-CWEobAJV.cjs +0 -2
- package/dist/_shared/typography-CWEobAJV.cjs.map +0 -1
- package/dist/_shared/workspace-BkwsqTrc.cjs +0 -2
- package/dist/_shared/workspace-BkwsqTrc.cjs.map +0 -1
- package/dist/_shared/workspace-DpU1YG1t.js +0 -357
- package/dist/_shared/workspace-DpU1YG1t.js.map +0 -1
- package/dist/showcase/assets/AreaChart-DxDBymDt.js +0 -6
- package/dist/showcase/assets/CompositeItem-owAA4Ah3.js +0 -1
- package/dist/showcase/assets/CompositeRoot-DzHTtLBs.js +0 -1
- package/dist/showcase/assets/DialogTrigger-OUBMI353.js +0 -1
- package/dist/showcase/assets/LabelableContext-Cd9Gf7TR.js +0 -1
- package/dist/showcase/assets/PreviewLayout-X_NxjYOV.js +0 -1
- package/dist/showcase/assets/RadioGroup-BzveyiIV.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-IZFF348L.js +0 -1
- package/dist/showcase/assets/Separator-CSYYEo-X.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BYSKM0e8.js +0 -1
- package/dist/showcase/assets/accordion-B9VkLXiy.js +0 -171
- package/dist/showcase/assets/accordion-variants-g7lk5hEX.js +0 -1
- package/dist/showcase/assets/action-menu-CWIvuiLO.js +0 -1
- package/dist/showcase/assets/actions-BuwzXYEF.js +0 -310
- package/dist/showcase/assets/activities-BTBlr1G4.js +0 -500
- package/dist/showcase/assets/activities-feed-card-C5lcwUFk.js +0 -1
- package/dist/showcase/assets/admin-kbK6nUjx.js +0 -140
- package/dist/showcase/assets/ai-CKu9EGmA.js +0 -207
- package/dist/showcase/assets/ai-artifact-Bg1MFGeF.js +0 -2
- package/dist/showcase/assets/ai-chat-DEntRhJD.js +0 -568
- package/dist/showcase/assets/ai-elements-DyKRCWiS.js +0 -387
- package/dist/showcase/assets/ai-tool-call-DFrTelEX.js +0 -1
- package/dist/showcase/assets/alert-C0wSpBYn.js +0 -93
- package/dist/showcase/assets/alert-CZ4rgwPr.js +0 -62
- package/dist/showcase/assets/alert-WTKIdE4s.js +0 -1
- package/dist/showcase/assets/api-key-list-BnrUT9Uf.js +0 -1
- package/dist/showcase/assets/api-key-list-bQ6QzFhA.js +0 -73
- package/dist/showcase/assets/app-sidebar-B3veRbac.js +0 -1
- package/dist/showcase/assets/arrow-down-CEXJx115.js +0 -1
- package/dist/showcase/assets/arrow-left-Ca6ri5q0.js +0 -1
- package/dist/showcase/assets/arrow-right-a3STqWgx.js +0 -1
- package/dist/showcase/assets/arrow-up-CCU1MaGq.js +0 -1
- package/dist/showcase/assets/arrow-up-right-BDImqvM2.js +0 -1
- package/dist/showcase/assets/avatar-Bwgai0SK.js +0 -67
- package/dist/showcase/assets/avatar-DSmL52Us.js +0 -57
- package/dist/showcase/assets/avatar-kK9n1a25.js +0 -1
- package/dist/showcase/assets/avatar-nb7MgV_x.js +0 -1
- package/dist/showcase/assets/badge-CTGPRSXm.js +0 -31
- package/dist/showcase/assets/badge-check-zqoYYrVj.js +0 -1
- package/dist/showcase/assets/bell-D7HWGStL.js +0 -1
- package/dist/showcase/assets/boolean-indicator-CqwlV0cf.js +0 -1
- package/dist/showcase/assets/bot-Owx4SMiU.js +0 -1
- package/dist/showcase/assets/box-BeeoLlMd.js +0 -1
- package/dist/showcase/assets/braces-fzrExVIx.js +0 -1
- package/dist/showcase/assets/brain-Da2fsBjd.js +0 -1
- package/dist/showcase/assets/brand-Bo6uwdGf.js +0 -36
- package/dist/showcase/assets/breadcrumb-B-K-6dtd.js +0 -1
- package/dist/showcase/assets/breadcrumb-B6lR9Cq2.js +0 -52
- package/dist/showcase/assets/breadcrumbs-Bamog6P5.js +0 -1
- package/dist/showcase/assets/briefcase-DQjbh28E.js +0 -1
- package/dist/showcase/assets/building-2-DaQW5yJa.js +0 -1
- package/dist/showcase/assets/button-D3skvyQS.js +0 -44
- package/dist/showcase/assets/button-group-BYtbrhme.js +0 -1
- package/dist/showcase/assets/buttons-B3IkMmNQ.js +0 -272
- package/dist/showcase/assets/calendar-C4fCDK3O.js +0 -1
- package/dist/showcase/assets/calendar-CcwkVxCK.js +0 -16
- package/dist/showcase/assets/calendar-DBkwxV9H.js +0 -1
- package/dist/showcase/assets/calendar-days-BWed1W3Z.js +0 -1
- package/dist/showcase/assets/camera-BUoAyoZT.js +0 -1
- package/dist/showcase/assets/card-7DBPqWuv.js +0 -1
- package/dist/showcase/assets/card-ClwyNDHJ.js +0 -188
- package/dist/showcase/assets/card-primitives-BE1YpEQW.js +0 -1
- package/dist/showcase/assets/card-radio-group-1NMbocuG.js +0 -1
- package/dist/showcase/assets/cards-Bu8uaGSU.js +0 -354
- package/dist/showcase/assets/carousel-dTTRRSQg.js +0 -449
- package/dist/showcase/assets/cell-renderers-CcyBuUsC.js +0 -1
- package/dist/showcase/assets/chart-BSboeIO6.js +0 -358
- package/dist/showcase/assets/chart-column-CCzA6B9l.js +0 -1
- package/dist/showcase/assets/checkbox-CSdEPNT5.js +0 -1
- package/dist/showcase/assets/checkbox-CqNLi9Q3.js +0 -1
- package/dist/showcase/assets/chevron-down-C91gNQdT.js +0 -1
- package/dist/showcase/assets/chevron-left-SiAoYFSo.js +0 -1
- package/dist/showcase/assets/chevron-up-Beb1_ET_.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-DaST4VKL.js +0 -1
- package/dist/showcase/assets/circle-D9KiRp8C.js +0 -1
- package/dist/showcase/assets/circle-alert-BQkAwFkl.js +0 -1
- package/dist/showcase/assets/circle-check-big-CN5YOJqq.js +0 -1
- package/dist/showcase/assets/circle-check-dqmKTiDe.js +0 -1
- package/dist/showcase/assets/circle-dot-B7LPN_0V.js +0 -1
- package/dist/showcase/assets/circle-question-mark-yTRkQO3d.js +0 -1
- package/dist/showcase/assets/circle-x-CW2dFcX-.js +0 -1
- package/dist/showcase/assets/clock-3-CXJ_JotW.js +0 -1
- package/dist/showcase/assets/clock-DUqvfazQ.js +0 -1
- package/dist/showcase/assets/code-xml-BmdQDeID.js +0 -1
- package/dist/showcase/assets/collapsible-C-WYhJxn.js +0 -1
- package/dist/showcase/assets/collapsible-CL37AlCX.js +0 -27
- package/dist/showcase/assets/collapsible-uGO5Rj8q.js +0 -1
- package/dist/showcase/assets/combobox-CFh5kUzj.js +0 -685
- package/dist/showcase/assets/command-CtpLaHjh.js +0 -1
- package/dist/showcase/assets/command-DSlK-QAE.js +0 -1
- package/dist/showcase/assets/comment-composer-Rr_a5tZQ.js +0 -1
- package/dist/showcase/assets/comment-item-Dme2o2KI.js +0 -1
- package/dist/showcase/assets/comments-CW2nz465.js +0 -357
- package/dist/showcase/assets/commerce-bwcq6oPn.js +0 -267
- package/dist/showcase/assets/composite-DMIR0vmP.js +0 -1
- package/dist/showcase/assets/conditional-rendering-Bk6AC76c.js +0 -1
- package/dist/showcase/assets/contact-card-BCXS9tWq.js +0 -65
- package/dist/showcase/assets/content-container-b1dC2caJ.js +0 -1
- package/dist/showcase/assets/copyable-BIABx-Vv.js +0 -96
- package/dist/showcase/assets/copyable-Ic9wzVaj.js +0 -1
- package/dist/showcase/assets/course-card-Bo5P3TYv.js +0 -77
- package/dist/showcase/assets/cpu-_VqU6yRO.js +0 -1
- package/dist/showcase/assets/credit-card-BbxO8xLo.js +0 -1
- package/dist/showcase/assets/css-variables-zqpBgnS1.js +0 -1205
- package/dist/showcase/assets/currency-Cjvt4F0b.js +0 -149
- package/dist/showcase/assets/dark-surfaces-CLwERt1f.js +0 -90
- package/dist/showcase/assets/data-view-AtyUp7b-.js +0 -124
- package/dist/showcase/assets/data-view-cnEmgP1C.js +0 -4
- package/dist/showcase/assets/database-TbVXEw7v.js +0 -1
- package/dist/showcase/assets/date-block-CDHemKnP.js +0 -1
- package/dist/showcase/assets/date-block-COb89Y_-.js +0 -1
- package/dist/showcase/assets/date-picker-CK8llBIN.js +0 -1
- package/dist/showcase/assets/date-pickers-DFfDnW9w.js +0 -73
- package/dist/showcase/assets/dense-info-CaFVDE90.js +0 -106
- package/dist/showcase/assets/design-system-consistency-CeSMuTuu.js +0 -264
- package/dist/showcase/assets/dialog-CRQNEK2K.js +0 -1
- package/dist/showcase/assets/dialog-CsCLDb0G.js +0 -1
- package/dist/showcase/assets/dialog-Qh3EHEKq.js +0 -1
- package/dist/showcase/assets/display-utilities-rP3hb4FK.js +0 -4
- package/dist/showcase/assets/display-utilities.examples-BwbvHOcx.js +0 -309
- package/dist/showcase/assets/dist-CbqRct9s.js +0 -1
- package/dist/showcase/assets/dist-iivamCjp.js +0 -45
- package/dist/showcase/assets/dollar-sign-COaRmdJE.js +0 -1
- package/dist/showcase/assets/download-yCcb4rfH.js +0 -1
- package/dist/showcase/assets/dropdown-menu-KoFNw-fX.js +0 -1
- package/dist/showcase/assets/dropzone-DLguWnmu.js +0 -1
- package/dist/showcase/assets/earth-TDRqTA4S.js +0 -1
- package/dist/showcase/assets/ellipsis-Q_fBbRE9.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-Bh8t3Z1g.js +0 -1
- package/dist/showcase/assets/empty-DvmDTSAj.js +0 -1
- package/dist/showcase/assets/empty-item-C3HP5nuw.js +0 -49
- package/dist/showcase/assets/empty-state-Dcin4cOt.js +0 -190
- package/dist/showcase/assets/empty-state-IV_GTNEI.js +0 -1
- package/dist/showcase/assets/enhanced-activities-BLf2gpes.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-ClZcVnhv.js +0 -1
- package/dist/showcase/assets/esm-Cf6QQstQ.js +0 -2
- package/dist/showcase/assets/event-calendar-zrfI_3AM.js +0 -138
- package/dist/showcase/assets/event-log-D-_CViAw.js +0 -330
- package/dist/showcase/assets/example-6bZGEb3-.js +0 -1
- package/dist/showcase/assets/external-link-7ldgjHZM.js +0 -1
- package/dist/showcase/assets/eye-pXVkim6z.js +0 -1
- package/dist/showcase/assets/feature-announcement-CFcGj3ge.js +0 -34
- package/dist/showcase/assets/file-Bn9sAGaT.js +0 -1
- package/dist/showcase/assets/file-text-Cvxg6pjh.js +0 -1
- package/dist/showcase/assets/filter-layout-DqNRRzDU.js +0 -1
- package/dist/showcase/assets/filters-CQMI_T63.js +0 -139
- package/dist/showcase/assets/flag-vI_WJ-BU.js +0 -1
- package/dist/showcase/assets/folder-open-0AyKSRQS.js +0 -1
- package/dist/showcase/assets/form-field-BaBeXn7a.js +0 -1
- package/dist/showcase/assets/form-sizing-Dltt6Fj-.js +0 -1
- package/dist/showcase/assets/format-DLLMyN-3.js +0 -1
- package/dist/showcase/assets/forms-gPD-Caru.js +0 -915
- package/dist/showcase/assets/funnel-Ca9nWMHm.js +0 -1
- package/dist/showcase/assets/generic-AAssz0h7.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-fbxSMOsb.js +0 -1
- package/dist/showcase/assets/gift-BC42Oxfz.js +0 -1
- package/dist/showcase/assets/giftcard-cards-CFKnYe0c.js +0 -85
- package/dist/showcase/assets/git-branch-B-nF8w-J.js +0 -1
- package/dist/showcase/assets/global-search-D6Gxw0G3.js +0 -1
- package/dist/showcase/assets/global-search-jsb_4idg.js +0 -215
- package/dist/showcase/assets/globe-C92uBSrO.js +0 -1
- package/dist/showcase/assets/gradient-card-D4ly60sD.js +0 -58
- package/dist/showcase/assets/hash-BShTbxlR.js +0 -1
- package/dist/showcase/assets/header-CSiNqg9Q.js +0 -1
- package/dist/showcase/assets/header-notifications-CpHeFPQF.js +0 -1
- package/dist/showcase/assets/heart-B3hXs7fr.js +0 -1
- package/dist/showcase/assets/hooks-CamAqFFh.js +0 -220
- package/dist/showcase/assets/house-4_CouE-Y.js +0 -1
- package/dist/showcase/assets/icon-badge-CePIZqWR.js +0 -1
- package/dist/showcase/assets/icon-badge-DSbvvnxh.js +0 -37
- package/dist/showcase/assets/image-BxbFIbVJ.js +0 -1
- package/dist/showcase/assets/inbox-BXab1SM6.js +0 -1
- package/dist/showcase/assets/index-BPUtPJjB.css +0 -2
- package/dist/showcase/assets/index-BjjNfnhP.js +0 -10
- package/dist/showcase/assets/inertValue-CZOzgsmF.js +0 -1
- package/dist/showcase/assets/info-DzqwCq93.js +0 -1
- package/dist/showcase/assets/inline-stat-D5ybpUh-.js +0 -15
- package/dist/showcase/assets/inline-stat-Dq34wv-6.js +0 -1
- package/dist/showcase/assets/input-C8OfUHCK.js +0 -1
- package/dist/showcase/assets/input-D34Ge3rh.js +0 -1
- package/dist/showcase/assets/input-group-BCPZ6Pwq.js +0 -1
- package/dist/showcase/assets/input-group-CySTANka.js +0 -47
- package/dist/showcase/assets/inputs-CnmHo_lj.js +0 -155
- package/dist/showcase/assets/installation-BPvseS46.js +0 -134
- package/dist/showcase/assets/invoice-header-C9JjJWQX.js +0 -36
- package/dist/showcase/assets/invoice-items-DB8tbCv9.js +0 -36
- package/dist/showcase/assets/invoice-mini-Q_PnimKL.js +0 -14
- package/dist/showcase/assets/invoice-table-CLDvpLib.js +0 -30
- package/dist/showcase/assets/isSameDay-D8bDebyL.js +0 -1
- package/dist/showcase/assets/isToday-XVjRuMtp.js +0 -1
- package/dist/showcase/assets/italic-Cm13b8qb.js +0 -1
- package/dist/showcase/assets/item-C07859JQ.js +0 -1
- package/dist/showcase/assets/item-LinnMxvu.js +0 -1
- package/dist/showcase/assets/item-i7ZUMs5t.js +0 -140
- package/dist/showcase/assets/kanban-CIMTpuN5.js +0 -188
- package/dist/showcase/assets/key-round-Bh7EzOyR.js +0 -1
- package/dist/showcase/assets/label-C3A4CjeG.js +0 -1
- package/dist/showcase/assets/languages-C37jhetw.js +0 -1
- package/dist/showcase/assets/layers-Lyr6p-Nt.js +0 -1
- package/dist/showcase/assets/layout-app-shell-BWAkl9gq.js +0 -608
- package/dist/showcase/assets/layout-auth-y1alnhc8.js +0 -790
- package/dist/showcase/assets/layout-containers-B6c-uvil.js +0 -101
- package/dist/showcase/assets/layout-header-DNhJHWNw.js +0 -203
- package/dist/showcase/assets/layout-page-CXU7CnQK.js +0 -315
- package/dist/showcase/assets/layout-primitives-StuFwfwh.js +0 -34
- package/dist/showcase/assets/layout-sidebar-D-QjnZPh.js +0 -224
- package/dist/showcase/assets/layout-users-D7KMzs3-.js +0 -117
- package/dist/showcase/assets/layout-workspace-Butr7CL5.js +0 -191
- package/dist/showcase/assets/lib-D5nOMXIt.js +0 -1
- package/dist/showcase/assets/list-checks-Cg9HZf4W.js +0 -1
- package/dist/showcase/assets/lock-Da21HhQx.js +0 -1
- package/dist/showcase/assets/lock-keyhole-DNTfa9e3.js +0 -1
- package/dist/showcase/assets/mail-Bamky-ti.js +0 -1
- package/dist/showcase/assets/mail-check-BfVYPC42.js +0 -1
- package/dist/showcase/assets/map-BTlWnRAQ.js +0 -124
- package/dist/showcase/assets/map-pin-BU2RBuvC.js +0 -1
- package/dist/showcase/assets/media-library-DJxgoGAF.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-CbXVAvbK.js +0 -1
- package/dist/showcase/assets/mentions-kMT-Z3qU.js +0 -138
- package/dist/showcase/assets/menus-bhp_n9PT.js +0 -171
- package/dist/showcase/assets/message-square-DC5Bb9Zs.js +0 -1
- package/dist/showcase/assets/metadata-list-DGr729EW.js +0 -286
- package/dist/showcase/assets/metadata-list-DyjhZi6d.js +0 -1
- package/dist/showcase/assets/metric-DRDok6Ci.js +0 -1
- package/dist/showcase/assets/metric-bar-DZsH4Q3U.js +0 -1
- package/dist/showcase/assets/metric-grid-BlFXTrid.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-oEihbEK8.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-BovaXHQX.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-CeX9Skmd.js +0 -50
- package/dist/showcase/assets/metrics-comparison-DFPSmREl.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-CXzfZwe_.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-DQJaNpYH.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-BIpv8CPU.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-EOCkRI5Z.js +0 -42
- package/dist/showcase/assets/metrics-overview-BD4s9H2T.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-t7asN5nA.js +0 -54
- package/dist/showcase/assets/minus-Dr1iTc_q.js +0 -1
- package/dist/showcase/assets/money-display-B5_VqQC0.js +0 -1
- package/dist/showcase/assets/money-display-bU2_cVGX.js +0 -1
- package/dist/showcase/assets/month-year-picker-DVRuYbLm.js +0 -1
- package/dist/showcase/assets/navigation-DBKvJoe-.js +0 -231
- package/dist/showcase/assets/navigation-DOhfmtgy.js +0 -90
- package/dist/showcase/assets/navigation-extras-BkO2TZP7.js +0 -43
- package/dist/showcase/assets/notification-banner-CE1Ei_ZT.js +0 -1
- package/dist/showcase/assets/onboarding-checklist-Bf0aoBoa.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-B2RXtyMP.js +0 -1
- package/dist/showcase/assets/overlays-4E_sUgkz.js +0 -408
- package/dist/showcase/assets/overlays-ulNl-Vhr.js +0 -159
- package/dist/showcase/assets/overview-CgymfIBq.js +0 -184
- package/dist/showcase/assets/package-CADuUP1u.js +0 -1
- package/dist/showcase/assets/package-check-O7MD6XE_.js +0 -1
- package/dist/showcase/assets/page-GB6OIgID.js +0 -1
- package/dist/showcase/assets/page-action-button-Dpprot7y.js +0 -1
- package/dist/showcase/assets/page-header-2VEUPx67.js +0 -1
- package/dist/showcase/assets/pagination-BBuRtAX9.js +0 -1
- package/dist/showcase/assets/pagination-C4mt4Q4l.js +0 -42
- package/dist/showcase/assets/paperclip-Cmyh3Bhf.js +0 -1
- package/dist/showcase/assets/password-input-CgZj1niQ.js +0 -1
- package/dist/showcase/assets/pencil-CtdXjogr.js +0 -1
- package/dist/showcase/assets/phone-CAFMH1vV.js +0 -1
- package/dist/showcase/assets/placeholder-pattern-DHKm-uYV.js +0 -1
- package/dist/showcase/assets/plus-CN2dzUxL.js +0 -1
- package/dist/showcase/assets/popover-DILNXLWy.js +0 -1
- package/dist/showcase/assets/popover-menu-Bp08xxOf.js +0 -1
- package/dist/showcase/assets/popover-o1EO2yVS.js +0 -1
- package/dist/showcase/assets/products-CCLAbHBN.js +0 -423
- package/dist/showcase/assets/progress-BGna-ZmU.js +0 -18
- package/dist/showcase/assets/progress-BSYlNLIJ.js +0 -1
- package/dist/showcase/assets/progress-CZVy3LGB.js +0 -1
- package/dist/showcase/assets/props-table-X9St7Q4m.js +0 -1
- package/dist/showcase/assets/props.generated-f_jHBhPb.json +0 -41753
- package/dist/showcase/assets/qr-code-CEmKf9xU.js +0 -1
- package/dist/showcase/assets/quote-IH6r-rlY.js +0 -1
- package/dist/showcase/assets/receipt-m9rOe5lY.js +0 -1
- package/dist/showcase/assets/receipt-text-C0TobatH.js +0 -1
- package/dist/showcase/assets/refinement-guide-t9T7iAS2.js +0 -189
- package/dist/showcase/assets/refresh-cw-Dy_Nc4jA.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-DR7LgQP5.js +0 -1
- package/dist/showcase/assets/resource-BcJ8O6uj.js +0 -1
- package/dist/showcase/assets/resource-_zDXez77.js +0 -139
- package/dist/showcase/assets/resource-selector-card-CCAEF-AT.js +0 -43
- package/dist/showcase/assets/rich-text-editor-BJG_ECJp.js +0 -143
- package/dist/showcase/assets/rich-text-editor-fbgVfyEH.js +0 -124
- package/dist/showcase/assets/rotate-ccw-CGuTkHQ3.js +0 -1
- package/dist/showcase/assets/route-C7EZ2Njy.js +0 -1
- package/dist/showcase/assets/save-fKrt-yFG.js +0 -1
- package/dist/showcase/assets/schema-form-k7TXeirD.js +0 -327
- package/dist/showcase/assets/scroll-area-CqNwdlI6.js +0 -32
- package/dist/showcase/assets/scroll-area-UVtlGOgx.js +0 -1
- package/dist/showcase/assets/section-DuBNJP4P.js +0 -1
- package/dist/showcase/assets/select-CINVEIWn.js +0 -1
- package/dist/showcase/assets/select-ZLaamXrm.js +0 -1
- package/dist/showcase/assets/send-DBvt_4jT.js +0 -1
- package/dist/showcase/assets/separator-BdBXRpc3.js +0 -28
- package/dist/showcase/assets/separator-CkJjJQWW.js +0 -1
- package/dist/showcase/assets/separator-CxOeStjL.js +0 -1
- package/dist/showcase/assets/separator-O-VQMSf_.js +0 -1
- package/dist/showcase/assets/settings-2-BWjMVlyS.js +0 -1
- package/dist/showcase/assets/settings-D9Z79UcG.js +0 -1
- package/dist/showcase/assets/sheet-CK9C6r7_.js +0 -1
- package/dist/showcase/assets/shield-BboB3Zlo.js +0 -1
- package/dist/showcase/assets/shield-alert-CAAobStl.js +0 -1
- package/dist/showcase/assets/shield-check-Rfyzz9bK.js +0 -1
- package/dist/showcase/assets/shopping-bag-5hLD82YW.js +0 -1
- package/dist/showcase/assets/showcase-DhOQXB5E.js +0 -132
- package/dist/showcase/assets/sidebar-ZTUACc0t.js +0 -1
- package/dist/showcase/assets/sidebar.context-BiNOpG5W.js +0 -1
- package/dist/showcase/assets/skeleton-BZUSoHbk.js +0 -1
- package/dist/showcase/assets/skeleton-BZkYzAdq.js +0 -1
- package/dist/showcase/assets/skeleton-CrOp8tx3.js +0 -29
- package/dist/showcase/assets/skeleton-P5GXAj4U.js +0 -1
- package/dist/showcase/assets/slider-zlE7nLrp.js +0 -1
- package/dist/showcase/assets/smart-card-OExZHSsj.js +0 -1
- package/dist/showcase/assets/sonner-eMphKM9E.js +0 -22
- package/dist/showcase/assets/sortable.esm-CM9VD5N4.js +0 -5
- package/dist/showcase/assets/sparkles-CIB5irID.js +0 -1
- package/dist/showcase/assets/spinner-11-kP-Ob.js +0 -1
- package/dist/showcase/assets/spinner-D4G5TFSm.js +0 -49
- package/dist/showcase/assets/spinner-DKGukuFV.js +0 -30
- package/dist/showcase/assets/square-pen-zflKy9oX.js +0 -1
- package/dist/showcase/assets/stacked-avatars-Cve1Y6GY.js +0 -1
- package/dist/showcase/assets/star-DleXDkCp.js +0 -1
- package/dist/showcase/assets/startOfDay-TDP2erzM.js +0 -1
- package/dist/showcase/assets/styles-BKlX_Ipc.js +0 -1
- package/dist/showcase/assets/suggestions-Dt2hm1NY.js +0 -126
- package/dist/showcase/assets/switch-DAPAgJbv.js +0 -1
- package/dist/showcase/assets/switch-fQpP2tJl.js +0 -1
- package/dist/showcase/assets/sync-BRcK160D.js +0 -124
- package/dist/showcase/assets/table-Dhmbe1yN.js +0 -686
- package/dist/showcase/assets/table-actions-GGrPOQcv.js +0 -1
- package/dist/showcase/assets/table-v0Eu5yZn.js +0 -1
- package/dist/showcase/assets/tabs-DmaXB1aF.js +0 -19
- package/dist/showcase/assets/tabs-vbNIJ-eo.js +0 -1
- package/dist/showcase/assets/tags-input-Bms_Q5CE.js +0 -1
- package/dist/showcase/assets/text-button-gvJCzaXS.js +0 -1
- package/dist/showcase/assets/text-link-DkByVX4d.js +0 -1
- package/dist/showcase/assets/textarea-B6Ho29y3.js +0 -1
- package/dist/showcase/assets/textarea-JCb0yhZ1.js +0 -1
- package/dist/showcase/assets/throttle-alert-CPU-u6Rs.js +0 -1
- package/dist/showcase/assets/timelines-Bw7mvAdx.js +0 -200
- package/dist/showcase/assets/toggle-group-jlIGX1zh.js +0 -1
- package/dist/showcase/assets/toggles-DV6V9vj-.js +0 -71
- package/dist/showcase/assets/toggles-group-C-Y3dG8q.js +0 -32
- package/dist/showcase/assets/tooltip-CDtPyNOv.js +0 -31
- package/dist/showcase/assets/trash-2-CXRm3lMl.js +0 -1
- package/dist/showcase/assets/trending-up-Bcyp9cw8.js +0 -1
- package/dist/showcase/assets/truck-DVgzuKLP.js +0 -1
- package/dist/showcase/assets/typography-BKPf4j85.js +0 -223
- package/dist/showcase/assets/ui-badge-D-Ud2MES.js +0 -28
- package/dist/showcase/assets/ui-card-gGqI2cfr.js +0 -30
- package/dist/showcase/assets/ui-table-Bqcab_kq.js +0 -42
- package/dist/showcase/assets/upload-tray-BFh6twLE.js +0 -138
- package/dist/showcase/assets/use-layout-link-e9jr981L.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-ByBTPUi3.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-Bx_-SRtw.js +0 -1
- package/dist/showcase/assets/useCompositeItem-Dmih9c3W.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-C0QJgAKb.js +0 -1
- package/dist/showcase/assets/useLabelableId-COfjI9qt.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CRefmlni.js +0 -1
- package/dist/showcase/assets/useRender-Bgu76j1u.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-B2fPZeWf.js +0 -1
- package/dist/showcase/assets/useValueChanged-CNjJ-spo.js +0 -1
- package/dist/showcase/assets/user-CmkLnMh9.js +0 -1
- package/dist/showcase/assets/user-plus-3CGFNUf0.js +0 -1
- package/dist/showcase/assets/users-CuO8W7wn.js +0 -1
- package/dist/showcase/assets/vendor-profile-HLMsE22G.js +0 -37
- package/dist/showcase/assets/video-CoHnn0fp.js +0 -1
- package/dist/showcase/assets/visually-hidden-D5bPAL7Q.js +0 -1
- package/dist/showcase/assets/wrench-C93IxaGt.js +0 -1
- package/dist/showcase/assets/x-BJDvVLAz.js +0 -1
- package/dist/showcase/assets/zap-DYD_Ljkv.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-display-0uNuZSN7.js","names":[],"sources":["../../src/components/composed/data-display/invoice-items/invoice-items.tsx","../../src/components/composed/data-display/invoice-mini/types.ts","../../src/components/composed/data-display/invoice-mini/invoice-mini.tsx","../../src/components/composed/data-display/invoice-header/types.ts","../../src/components/composed/data-display/invoice-header/invoice-header.tsx","../../src/components/composed/data-display/invoice-table/types.ts","../../src/components/composed/data-display/invoice-table/invoice-table.tsx","../../src/components/composed/data-display/dense-info-card/helpers.tsx","../../src/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.tsx","../../src/components/composed/data-display/dense-info-card/partials/dense-info-classification.tsx","../../src/components/composed/data-display/dense-info-card/partials/dense-info-financial.tsx","../../src/components/composed/data-display/dense-info-card/partials/dense-info-project.tsx","../../src/components/composed/data-display/dense-info-card/partials/dense-info-score.tsx","../../src/components/composed/data-display/inline-metric/inline-metric.tsx","../../src/components/composed/data-display/mini-kpi/mini-kpi.tsx","../../src/components/composed/data-display/resource-selector-card.tsx","../../src/components/composed/data-display/empty-state/empty-state.strings.ts","../../src/components/composed/data-display/empty-state/empty-state.tsx","../../src/components/composed/data-display/empty-state/partials/illustrations/document-stack.tsx","../../src/components/composed/data-display/empty-state/partials/illustrations/inbox-clean.tsx","../../src/components/composed/data-display/empty-state/partials/illustrations/search-glass.tsx","../../src/components/composed/data-display/empty-state/partials/illustrations/stacked-cards.tsx","../../src/components/composed/data-display/empty-state/partials/illustrations/users-circle.tsx","../../src/components/composed/data-display/fields/email-display.tsx","../../src/components/composed/data-display/fields/phone-display.tsx","../../src/components/composed/data-display/fields/url-display.tsx","../../src/components/composed/data-display/metadata/metadata-list.strings.ts","../../src/components/composed/data-display/metadata/metadata-list.tsx","../../src/components/composed/data-display/inline-stat/inline-stat.tsx","../../src/components/composed/data-display/numeric-value/numeric-value.tsx","../../src/components/composed/data-display/user-cell/user-cell.tsx","../../src/components/composed/data-display/section-header/section-header.tsx"],"sourcesContent":["import { Text } from '@/components/typography/text';\nimport { IconBadge } from '@/components/base/display';\nimport { InlineStat } from '@/components/composed/data-display';\nimport { Separator } from '@/components/base/display/separator';\nimport { Badge } from '@/components/base/badge/badge';\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemGroup,\n ItemMedia,\n ItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\nimport { Package } from 'lucide-react';\nimport { type InvoiceItemsProps } from './types';\n\n/* ─── Layout A: Table-style rows ───────────────────────────────────────────── */\n\nexport function InvoiceItemsTable({\n items,\n subtotal,\n tax,\n discount,\n total,\n className,\n}: InvoiceItemsProps) {\n return (\n <div className={cn('invoice-items--component', 'w-full min-w-0 max-w-full overflow-hidden rounded-lg border border-border bg-card shadow-sm', className)}>\n {/* Header row */}\n <div className=\"grid grid-cols-[1fr_72px_96px_96px] gap-3 bg-muted/40 px-4 py-3\">\n <Text size=\"xs\" type=\"secondary\" weight=\"medium\">Item</Text>\n <Text size=\"xs\" type=\"secondary\" weight=\"medium\" align=\"center\">Qty</Text>\n <Text size=\"xs\" type=\"secondary\" weight=\"medium\" align=\"right\">Price</Text>\n <Text size=\"xs\" type=\"secondary\" weight=\"medium\" align=\"right\">Total</Text>\n </div>\n\n {/* Items */}\n {items.map((item, idx) => (\n <div key={item.id}>\n <div className=\"grid grid-cols-[1fr_72px_96px_96px] items-center gap-3 px-4 py-3\">\n <div className=\"flex flex-col gap-0.5\">\n <div className=\"flex items-center gap-2\">\n <Text weight=\"medium\">{item.title}</Text>\n {!!item.badge && (\n <Badge variant={item.badgeVariant ?? 'secondary'}>\n {item.badge}\n </Badge>\n )}\n </div>\n {!!item.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"line-clamp-1\">\n {item.description}\n </Text>\n )}\n </div>\n <Text align=\"center\" type=\"secondary\" className=\"tabular-nums\">\n {item.quantity ?? 1}\n </Text>\n <Text align=\"right\" className=\"tabular-nums\">\n {item.unitPrice ?? item.total}\n </Text>\n <Text align=\"right\" weight=\"semibold\" className=\"tabular-nums\">\n {item.total}\n </Text>\n </div>\n {idx < items.length - 1 && <Separator className=\"mx-4 !w-auto\" />}\n </div>\n ))}\n\n {/* Totals */}\n {!!(subtotal || tax || discount || total) && (\n <div className=\"space-y-2 border-t border-border bg-muted/30 px-4 py-3\">\n {!!subtotal && (\n <InlineStat label=\"Subtotal\" value={subtotal} mono labelClassName=\"text-sm\" valueClassName=\"text-sm\" />\n )}\n {!!discount && (\n <InlineStat label=\"Discount\" value={`-${discount}`} mono labelClassName=\"text-sm\" valueClassName=\"text-sm text-success\" />\n )}\n {!!tax && (\n <InlineStat label=\"Tax\" value={tax} mono labelClassName=\"text-sm\" valueClassName=\"text-sm\" />\n )}\n {!!total && (\n <>\n <Separator />\n <InlineStat\n className=\"pt-1\"\n label=\"Total\"\n value={<Text weight=\"semibold\" className=\"tabular-nums\">{total}</Text>}\n labelClassName=\"text-sm font-semibold\"\n />\n </>\n )}\n </div>\n )}\n </div>\n );\n}\n\n/* ─── Layout B: Compact card rows ──────────────────────────────────────────── */\n\nexport function InvoiceItemsCompact({\n items,\n total,\n className,\n}: InvoiceItemsProps) {\n return (\n <div className={cn('invoice-items--component', 'w-full min-w-0 max-w-full space-y-2', className)}>\n <ItemGroup className=\"min-w-0 max-w-full\">\n {items.map((item) => (\n <Item key={item.id} className=\"min-w-0 bg-card shadow-sm\">\n <ItemMedia>\n <IconBadge tone=\"muted\" size=\"default\" shape=\"square\">\n {item.icon ?? <Package />}\n </IconBadge>\n </ItemMedia>\n <ItemContent className=\"min-w-0 basis-0\">\n <ItemTitle className=\"w-full min-w-0 max-w-full\">\n <span className=\"block min-w-0 truncate\">{item.title}</span>\n </ItemTitle>\n {!!(item.description || item.badge) && (\n <div className=\"flex min-w-0 items-center gap-1.5\">\n {!!item.badge && (\n <Badge variant={item.badgeVariant ?? 'secondary'} className=\"shrink-0\">\n {item.badge}\n </Badge>\n )}\n {!!item.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"min-w-0 truncate\">\n {item.description}\n </Text>\n )}\n </div>\n )}\n </ItemContent>\n <ItemActions className=\"ml-auto min-w-0 shrink-0 justify-end\">\n {!!item.quantity && item.quantity > 1 && (\n <Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n x{item.quantity}\n </Text>\n )}\n <Text weight=\"semibold\" align=\"right\" className=\"shrink-0 tabular-nums\">\n {item.total}\n </Text>\n </ItemActions>\n </Item>\n ))}\n </ItemGroup>\n\n {!!total && (\n <InlineStat\n className=\"rounded-lg border border-border bg-muted/30 px-4 py-2.5\"\n label=\"Total\"\n value={<Text weight=\"semibold\" className=\"tabular-nums\">{total}</Text>}\n labelClassName=\"text-sm font-semibold\"\n />\n )}\n </div>\n );\n}\n\n/* ─── Layout C: Detailed breakdown ─────────────────────────────────────────── */\n\nexport function InvoiceItemsDetailed({\n items,\n subtotal,\n tax,\n discount,\n total,\n className,\n}: InvoiceItemsProps) {\n return (\n <div className={cn('invoice-items--component', 'w-full min-w-0 max-w-full overflow-hidden rounded-lg border border-border bg-card shadow-sm', className)}>\n <div className=\"divide-y divide-border\">\n {items.map((item) => (\n <div key={item.id} className=\"px-4 py-3\">\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"flex items-start gap-3 flex-1 min-w-0\">\n <div className=\"mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-md bg-primary/10 text-primary\">\n {item.icon ?? <Package className=\"size-4\" />}\n </div>\n <div className=\"flex-1 min-w-0 space-y-1\">\n <div className=\"flex items-center gap-2\">\n <Text weight=\"semibold\">{item.title}</Text>\n {!!item.badge && (\n <Badge variant={item.badgeVariant ?? 'secondary'}>\n {item.badge}\n </Badge>\n )}\n </div>\n {!!item.description && (\n <Text size=\"xs\" type=\"secondary\" className=\"line-clamp-2\">\n {item.description}\n </Text>\n )}\n <div className=\"flex items-center gap-3 pt-0.5\">\n {!!item.quantity && (\n <Text size=\"xs\" type=\"discrete\">\n Qty: {item.quantity}\n </Text>\n )}\n {!!item.unitPrice && (\n <Text size=\"xs\" type=\"discrete\" className=\"tabular-nums\">\n @ {item.unitPrice}\n </Text>\n )}\n </div>\n </div>\n </div>\n <div className=\"flex flex-col items-end gap-1 shrink-0\">\n <Text weight=\"semibold\" className=\"tabular-nums\">\n {item.total}\n </Text>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n {/* Summary footer */}\n {!!total && (\n <div className=\"border-t border-border bg-muted/30 px-4 py-3\">\n <div className=\"space-y-2\">\n {!!subtotal && (\n <InlineStat label=\"Subtotal\" value={subtotal} mono labelClassName=\"text-sm\" valueClassName=\"text-sm\" />\n )}\n {!!discount && (\n <InlineStat label=\"Discount\" value={`-${discount}`} mono labelClassName=\"text-sm\" valueClassName=\"text-sm text-success\" />\n )}\n {!!tax && (\n <InlineStat label=\"Tax (20%)\" value={tax} mono labelClassName=\"text-sm\" valueClassName=\"text-sm\" />\n )}\n <Separator />\n <InlineStat\n className=\"pt-1\"\n label=\"Total Due\"\n value={<Text weight=\"semibold\" className=\"tabular-nums\">{total}</Text>}\n labelClassName=\"text-sm font-semibold\"\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\nInvoiceItemsTable.displayName = 'InvoiceItemsTable';\nInvoiceItemsCompact.displayName = 'InvoiceItemsCompact';\nInvoiceItemsDetailed.displayName = 'InvoiceItemsDetailed';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport type InvoiceStatus = 'paid' | 'pending' | 'overdue';\n\nexport interface InvoiceMiniData {\n invoiceNumber: string;\n customerName: string;\n lineItemsCount: number;\n totalAmount: string;\n status: InvoiceStatus;\n dueDate: string;\n}\n\nexport interface InvoiceMiniStrings {\n paid: string;\n pending: string;\n overdue: string;\n items: (count: number) => string;\n due: string;\n}\n\nexport const defaultInvoiceMiniStrings: InvoiceMiniStrings = {\n paid: 'Paid',\n pending: 'Pending',\n overdue: 'Overdue',\n items: (count) => (count === 1 ? '1 line item' : `${count} line items`),\n due: 'Due',\n};\n\nexport interface InvoiceMiniCardProps {\n invoice: InvoiceMiniData;\n className?: string;\n strings?: StringsProp<InvoiceMiniStrings>;\n}\n\nexport const invoiceStatusVariant: Record<InvoiceStatus, ComposedBadgeVariant> = {\n paid: 'success',\n pending: 'warning',\n overdue: 'error',\n};\n\n/** @deprecated Prefer `defaultInvoiceMiniStrings` for labels and `invoiceStatusVariant` for variants. */\nexport const invoiceStatusMap: Record<InvoiceStatus, { label: string; variant: ComposedBadgeVariant }> = {\n paid: { label: defaultInvoiceMiniStrings.paid, variant: 'success' },\n pending: { label: defaultInvoiceMiniStrings.pending, variant: 'warning' },\n overdue: { label: defaultInvoiceMiniStrings.overdue, variant: 'error' },\n};\n","/**\n * InvoiceMiniCard — compact invoice tile for lists / dashboards. Header\n * (number + status chip), customer name, footer split between items-count /\n * due date and the total amount. Strings (status labels, \"Due\", item count\n * pluralisation) overridable for i18n via the `strings` prop.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { Text } from '@/components/typography/text';\nimport { mergeStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultInvoiceMiniStrings,\n\tinvoiceStatusVariant,\n\ttype InvoiceMiniCardProps,\n\ttype InvoiceStatus,\n} from './types';\n\nexport function InvoiceMiniCard({\n\tinvoice,\n\tclassName,\n\tstrings: stringsProp,\n}: InvoiceMiniCardProps) {\n\tconst strings = mergeStrings(defaultInvoiceMiniStrings, stringsProp);\n\tconst labelByStatus: Record<InvoiceStatus, string> = {\n\t\tpaid: strings.paid,\n\t\tpending: strings.pending,\n\t\toverdue: strings.overdue,\n\t};\n\n\treturn (\n\t\t<SmartCard padding=\"default\" className={cn('invoice-mini--component min-w-0', className)}>\n\t\t\t<div className=\"space-y-2\">\n\t\t\t\t<div className=\"flex items-center justify-between gap-2\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tclassName=\"min-w-0 flex-1 truncate font-mono tracking-wide\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{invoice.invoiceNumber}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Badge\n\t\t\t\t\t\tvariant={invoiceStatusVariant[invoice.status]}\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tdot\n\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{labelByStatus[invoice.status]}\n\t\t\t\t\t</Badge>\n\t\t\t\t</div>\n\n\t\t\t\t<Text type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t{invoice.customerName}\n\t\t\t\t</Text>\n\n\t\t\t\t<div className=\"flex flex-wrap items-end justify-between gap-x-3 gap-y-1 pt-1\">\n\t\t\t\t\t<div className=\"min-w-0 space-y-0.5\">\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t{strings.items(invoice.lineItemsCount)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"discrete\" className=\"whitespace-nowrap tabular-nums\">\n\t\t\t\t\t\t\t{strings.due} {invoice.dueDate}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\t\tclassName={cn('ml-auto shrink-0 tabular-nums leading-none')}\n\t\t\t\t\t>\n\t\t\t\t\t\t{invoice.totalAmount}\n\t\t\t\t\t</Text>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nInvoiceMiniCard.displayName = 'InvoiceMiniCard';\n","import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface InvoiceParty {\n name: string;\n location?: string;\n}\n\nexport interface InvoiceHeaderStrings {\n title: string;\n billFrom: string;\n billTo: string;\n issued: string;\n due: string;\n amountDue: string;\n}\n\nexport const defaultInvoiceHeaderStrings: InvoiceHeaderStrings = {\n title: 'Invoice',\n billFrom: 'Bill From',\n billTo: 'Bill To',\n issued: 'Issued',\n due: 'Due',\n amountDue: 'Amount Due',\n};\n\nexport interface InvoiceHeaderCardProps {\n invoiceNumber: string;\n status: string;\n statusVariant?: BadgeVariant;\n from: InvoiceParty;\n to: InvoiceParty;\n issuedDate?: string;\n dueDate?: string;\n amount: string;\n className?: string;\n strings?: StringsProp<InvoiceHeaderStrings>;\n}\n","/**\n * InvoiceHeaderCard — invoice document header.\n *\n * Top row: invoice number (mono, prominent) + status chip.\n * Middle: Bill-from / Bill-to parties as a 2-col grid that stacks on small\n * screens and uses an uppercase-tracking-wider eyebrow + name + secondary\n * location.\n * Bottom: dates on the leading edge + amount-due block on the trailing edge.\n *\n * Strings overridable for i18n via the `strings` prop.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/composed/data-display';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultInvoiceHeaderStrings, type InvoiceHeaderCardProps } from './types';\n\nfunction PartyBlock({\n\teyebrow,\n\tname,\n\tlocation,\n}: {\n\teyebrow: string;\n\tname: string;\n\tlocation?: string;\n}) {\n\treturn (\n\t\t<div className={cn('invoice-header--component', 'space-y-1')}>\n\t\t\t<Text\n\t\t\t\tsize=\"xs\"\n\t\t\t\ttype=\"secondary\"\n\t\t\t\tweight=\"medium\"\n\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t>\n\t\t\t\t{eyebrow}\n\t\t\t</Text>\n\t\t\t<Text weight=\"semibold\" className=\"leading-snug\">\n\t\t\t\t{name}\n\t\t\t</Text>\n\t\t\t{!!location && (\n\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"leading-snug\">\n\t\t\t\t\t{location}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function InvoiceHeaderCard({\n\tinvoiceNumber,\n\tstatus,\n\tstatusVariant = 'success',\n\tfrom,\n\tto,\n\tissuedDate,\n\tdueDate,\n\tamount,\n\tclassName,\n\tstrings: stringsProp,\n}: InvoiceHeaderCardProps) {\n\tconst strings = useStrings(defaultInvoiceHeaderStrings, stringsProp);\n\n\treturn (\n\t\t<SmartCard title={strings.title} className={className}>\n\t\t\t<div className=\"flex items-center justify-between gap-3\">\n\t\t\t\t<Text\n\t\t\t\t\tweight=\"bold\"\n\t\t\t\t\tclassName=\"font-mono tracking-wide\"\n\t\t\t\t>\n\t\t\t\t\t{invoiceNumber}\n\t\t\t\t</Text>\n\t\t\t\t<Badge variant={statusVariant}>{status}</Badge>\n\t\t\t</div>\n\n\t\t\t<div className=\"mt-5 grid grid-cols-1 gap-5 sm:grid-cols-2 sm:gap-6\">\n\t\t\t\t<PartyBlock eyebrow={strings.billFrom} name={from.name} location={from.location} />\n\t\t\t\t<PartyBlock eyebrow={strings.billTo} name={to.name} location={to.location} />\n\t\t\t</div>\n\n\t\t\t<Separator className=\"my-5\" />\n\n\t\t\t<div className=\"flex flex-wrap items-end justify-between gap-4\">\n\t\t\t\t<div className=\"space-y-1\">\n\t\t\t\t\t{!!issuedDate && (\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tlayout=\"inline\"\n\t\t\t\t\t\t\tlabel={strings.issued}\n\t\t\t\t\t\t\tvalue={issuedDate}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-xs uppercase tracking-wider font-medium\"\n\t\t\t\t\t\t\tvalueClassName=\"text-xs font-medium\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!dueDate && (\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tlayout=\"inline\"\n\t\t\t\t\t\t\tlabel={strings.due}\n\t\t\t\t\t\t\tvalue={dueDate}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-xs uppercase tracking-wider font-medium\"\n\t\t\t\t\t\t\tvalueClassName=\"text-xs font-medium\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"text-right\">\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\tweight=\"medium\"\n\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.amountDue}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Heading\n\t\t\t\t\t\ttag=\"h3\"\n\t\t\t\t\t\tclassName={cn('mt-1 text-base tabular-nums leading-none tracking-tight border-none pb-0')}\n\t\t\t\t\t>\n\t\t\t\t\t\t{amount}\n\t\t\t\t\t</Heading>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nInvoiceHeaderCard.displayName = 'InvoiceHeaderCard';\n","import type { ReactNode } from 'react';\nimport type { StringsProp } from '@/lib/strings';\n\n/** Backwards-compatible default line item shape. */\nexport interface InvoiceLineItem {\n\tdescription: string;\n\tqty: number;\n\tprice: number;\n\ttotal: number;\n}\n\n/**\n * Per-column definition. Each column declares how to render its header label\n * and a row's cell. Generic over the row type so consumers can pass arbitrary\n * data without losing type safety.\n */\nexport interface InvoiceColumn<TItem = InvoiceLineItem> {\n\tid: string;\n\theader: ReactNode;\n\t/** Tailwind class for the column's grid track (e.g. `'1fr'`, `'80px'`). */\n\twidth?: string;\n\talign?: 'left' | 'right' | 'center';\n\tcell: (item: TItem, index: number) => ReactNode;\n\t/** Class names appended to header cell. */\n\theaderClassName?: string;\n\t/** Class names appended to each row cell of this column. */\n\tcellClassName?: string;\n}\n\n/** A footer row (totals, taxes, etc.). Ordered as written. */\nexport interface InvoiceTableFooterRow {\n\tlabel: ReactNode;\n\tvalue: ReactNode;\n\t/** Emphasis for the row. `total` renders bold + thicker top spacing. */\n\temphasis?: 'normal' | 'total';\n}\n\nexport interface InvoiceTableStrings {\n\tsubtotal: string;\n\ttax: string;\n\ttotal: string;\n}\n\nexport const defaultInvoiceTableStrings: InvoiceTableStrings = {\n\tsubtotal: 'Subtotal',\n\ttax: 'Tax',\n\ttotal: 'Total',\n};\n\nexport interface InvoiceTableProps<TItem = InvoiceLineItem> {\n\titems: TItem[];\n\t/** Optional custom columns. Defaults to Description / Qty / Price / Total. */\n\tcolumns?: InvoiceColumn<TItem>[];\n\t/** Optional custom footer rows. When omitted and items match the default\n\t * `InvoiceLineItem` shape, the legacy auto-computed subtotal / tax / total\n\t * footer is used. */\n\tfooterRows?: InvoiceTableFooterRow[];\n\t/** Legacy: tax rate for auto-computed footer (only used with default columns). */\n\ttaxRate?: number;\n\t/** Legacy: currency symbol for auto-computed footer. */\n\tcurrency?: string;\n\tclassName?: string;\n\tstrings?: StringsProp<InvoiceTableStrings>;\n}\n","/**\n * InvoiceTable — flexible invoice line-item table.\n *\n * Generic over the row type. Pass custom `columns` and `footerRows` for any\n * shape of data. Without those, falls back to the legacy default\n * `InvoiceLineItem` shape (description / qty / price / total) with an\n * auto-computed subtotal / tax / total footer.\n */\nimport { Text } from '@/components/typography/text';\nimport { Separator } from '@/components/base/display/separator';\nimport { useStrings } from '@/lib/strings';\nimport { useMoneyConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultInvoiceTableStrings,\n\ttype InvoiceColumn,\n\ttype InvoiceLineItem,\n\ttype InvoiceTableFooterRow,\n\ttype InvoiceTableProps,\n} from './types';\n\nconst wrapperGlass = 'border border-border shadow-sm';\n\nconst ALIGN_CLASS = {\n\tleft: 'text-left justify-start',\n\tright: 'text-right justify-end',\n\tcenter: 'text-center justify-center',\n} as const;\n\nfunction buildDefaultColumns(currency: string): InvoiceColumn<InvoiceLineItem>[] {\n\treturn [\n\t\t{\n\t\t\tid: 'description',\n\t\t\theader: 'Item',\n\t\t\twidth: 'minmax(0,1fr)',\n\t\t\tcell: (item) => <Text className=\"truncate\">{item.description}</Text>,\n\t\t},\n\t\t{\n\t\t\tid: 'qty',\n\t\t\theader: 'Qty',\n\t\t\twidth: '36px',\n\t\t\talign: 'center',\n\t\t\tcell: (item) => <Text align=\"center\" className=\"tabular-nums\">{item.qty}</Text>,\n\t\t},\n\t\t{\n\t\t\tid: 'price',\n\t\t\theader: 'Price',\n\t\t\twidth: '82px',\n\t\t\talign: 'right',\n\t\t\tcell: (item) => (\n\t\t\t\t<Text className=\"tabular-nums font-mono\">\n\t\t\t\t\t{currency}{item.price.toFixed(2)}\n\t\t\t\t</Text>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: 'total',\n\t\t\theader: 'Total',\n\t\t\twidth: '82px',\n\t\t\talign: 'right',\n\t\t\tcell: (item) => (\n\t\t\t\t<Text weight=\"medium\" className=\"tabular-nums font-mono\">\n\t\t\t\t\t{currency}{item.total.toFixed(2)}\n\t\t\t\t</Text>\n\t\t\t),\n\t\t},\n\t];\n}\n\nfunction buildDefaultFooterRows(\n\titems: InvoiceLineItem[],\n\ttaxRate: number,\n\tcurrency: string,\n\tstrings: typeof defaultInvoiceTableStrings,\n): InvoiceTableFooterRow[] {\n\tconst subtotal = items.reduce((s, i) => s + i.total, 0);\n\tconst tax = Math.round(subtotal * taxRate * 100) / 100;\n\tconst taxPct = Math.round(taxRate * 100);\n\tconst total = subtotal + tax;\n\tconst fmt = (n: number) => `${currency}${n.toFixed(2)}`;\n\treturn [\n\t\t{ label: strings.subtotal, value: fmt(subtotal) },\n\t\t{ label: `${strings.tax} (${taxPct}%)`, value: fmt(tax) },\n\t\t{ label: strings.total, value: fmt(total), emphasis: 'total' },\n\t];\n}\n\nexport function InvoiceTable<TItem = InvoiceLineItem>({\n\titems,\n\tcolumns,\n\tfooterRows,\n\ttaxRate = 0.2,\n\tcurrency,\n\tclassName,\n\tstrings: stringsProp,\n}: InvoiceTableProps<TItem>) {\n\tconst strings = useStrings(defaultInvoiceTableStrings, stringsProp);\n\tconst { defaultCurrency } = useMoneyConfig();\n\tconst resolvedCurrency = currency ?? defaultCurrency ?? '€';\n\n\t// Boundary casts: the default builders are intentionally non-generic and\n\t// only fire in legacy default mode where the consumer didn't pass\n\t// `columns`. In that mode the runtime row shape IS `InvoiceLineItem` —\n\t// the cast is the documented bridge between the generic `<TItem>` API\n\t// and the concrete default shape.\n\tconst resolvedColumns: InvoiceColumn<TItem>[] =\n\t\tcolumns ?? (buildDefaultColumns(resolvedCurrency) as unknown as InvoiceColumn<TItem>[]);\n\n\tconst resolvedFooterRows: InvoiceTableFooterRow[] = footerRows\n\t\t?? (columns\n\t\t\t? []\n\t\t\t: buildDefaultFooterRows(items as unknown as InvoiceLineItem[], taxRate, resolvedCurrency, strings));\n\n\tconst gridTemplate = resolvedColumns.map((c) => c.width ?? '1fr').join(' ');\n\n\treturn (\n\t\t<div className={cn('invoice-table--component', 'w-full min-w-0 max-w-full overflow-hidden rounded-lg bg-card', wrapperGlass, className)}>\n\t\t\t{/* Header */}\n\t\t\t<div\n\t\t\t\tclassName=\"grid min-w-0 gap-2 bg-muted/40 px-4 py-3\"\n\t\t\t\tstyle={{ gridTemplateColumns: gridTemplate }}\n\t\t\t>\n\t\t\t\t{resolvedColumns.map((col) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={col.id}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex min-w-0',\n\t\t\t\t\t\t\tALIGN_CLASS[col.align ?? 'left'],\n\t\t\t\t\t\t\tcol.headerClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text size=\"xs\" weight=\"medium\" type=\"secondary\" className=\"min-w-0 truncate uppercase tracking-wider\">\n\t\t\t\t\t\t\t{col.header}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* Rows */}\n\t\t\t{items.map((item, i) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={i}\n\t\t\t\t\tclassName={cn('grid min-w-0 gap-2 px-4 py-3', i % 2 === 1 && 'bg-muted/20')}\n\t\t\t\t\tstyle={{ gridTemplateColumns: gridTemplate }}\n\t\t\t\t>\n\t\t\t\t\t{resolvedColumns.map((col) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={col.id}\n\t\t\t\t\t\t\tclassName={cn('flex min-w-0 items-center', ALIGN_CLASS[col.align ?? 'left'], col.cellClassName)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{col.cell(item, i)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t))}\n\n\t\t\t{/* Footer */}\n\t\t\t{resolvedFooterRows.length > 0 && (\n\t\t\t\t<>\n\t\t\t\t\t<Separator />\n\t\t\t\t\t<div className=\"space-y-2 px-4 py-3\">\n\t\t\t\t\t\t{resolvedFooterRows.map((row, idx) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'flex justify-between',\n\t\t\t\t\t\t\t\t\trow.emphasis === 'total' && 'pt-2',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\ttype={row.emphasis === 'total' ? undefined : 'secondary'}\n\t\t\t\t\t\t\t\t\tweight={row.emphasis === 'total' ? 'bold' : 'regular'}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{row.label}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tweight={row.emphasis === 'total' ? 'bold' : 'regular'}\n\t\t\t\t\t\t\t\t\tclassName=\"tabular-nums font-mono\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{row.value}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nInvoiceTable.displayName = 'InvoiceTable';\n","import { Badge } from '@/components/base/badge/badge';\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\nimport { type BadgeVariant } from './types';\n\n/* ─── Shared: Complexity / Scale Bar ─────────────────────────────────────── */\n\nexport function ScaleBar({\n\tvalue,\n\tmax = 5,\n\tlabel,\n}: {\n\tvalue: number;\n\tmax?: number;\n\tlabel?: string;\n}) {\n\treturn (\n\t\t<div className={cn('helpers--component', 'flex items-center gap-1')}>\n\t\t\t{Array.from({ length: max }, (_, i) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={i}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'h-1.5 w-3 rounded-full',\n\t\t\t\t\t\ti < value ? 'bg-foreground/60' : 'bg-muted',\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{!!label && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tclassName=\"ml-1\"\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\n/* ─── Shared: Key-Value Row ──────────────────────────────────────────────── */\n\nexport function KVRow({\n\tlabel,\n\tvalue,\n\tbadge,\n\tbadgeVariant,\n}: {\n\tlabel: string;\n\tvalue?: string;\n\tbadge?: string;\n\tbadgeVariant?: BadgeVariant;\n}) {\n\treturn (\n\t\t<div className=\"flex items-center justify-between gap-2\">\n\t\t\t<Text\n\t\t\t\tsize=\"xs\"\n\t\t\t\tclassName=\"shrink-0 text-muted-foreground\"\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t{!!badge && (\n\t\t\t\t<Badge\n\t\t\t\t\tvariant={badgeVariant ?? 'secondary'}\n\t\t\t\t>\n\t\t\t\t\t{badge}\n\t\t\t\t</Badge>\n\t\t\t)}\n\t\t\t{!!value && !badge && (\n\t\t\t\t<Text\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tclassName=\"text-right tabular-nums\"\n\t\t\t\t>\n\t\t\t\t\t{value}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Text } from '@/components/typography/text';\nimport { Separator } from '@/components/base/display/separator';\nimport { type DenseInfoDashboardProps } from '../types';\nimport { KVRow, ScaleBar } from '../helpers';\n\nexport function DenseInfoDashboard({\n\ttitle,\n\tdescription,\n\tstatusBadges,\n\trows,\n\tsecondaryRows,\n\tscale,\n\tfooterBadges,\n\tfooterText,\n\tactions,\n\tclassName,\n}: DenseInfoDashboardProps) {\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tactions={actions}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t{statusBadges.map((b) => (\n\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\tkey={b.label}\n\t\t\t\t\t\t\tvariant={b.variant}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{b.label}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t{rows.map((row) => (\n\t\t\t\t\t\t<KVRow\n\t\t\t\t\t\t\tkey={row.label}\n\t\t\t\t\t\t\t{...row}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t{!!scale && (\n\t\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\tclassName=\"text-muted-foreground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{scale.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<ScaleBar\n\t\t\t\t\t\t\tvalue={scale.value}\n\t\t\t\t\t\t\tmax={scale.max}\n\t\t\t\t\t\t\tlabel={`${String(scale.value)}/${String(scale.max ?? 5)}`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!secondaryRows && secondaryRows.length > 0 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t{secondaryRows.map((row) => (\n\t\t\t\t\t\t\t\t<KVRow\n\t\t\t\t\t\t\t\t\tkey={row.label}\n\t\t\t\t\t\t\t\t\t{...row}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{(!!footerBadges || !!footerText) && (\n\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-2 border-t pt-2\">\n\t\t\t\t\t\t{!!footerBadges &&\n\t\t\t\t\t\t\tfooterBadges.map((b) => (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={b.label}\n\t\t\t\t\t\t\t\t\tvariant={b.variant}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{b.label}\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{!!footerText && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tclassName=\"text-muted-foreground\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{footerText}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nDenseInfoDashboard.displayName = 'DenseInfoDashboard';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { InlineStat } from '@/components/composed/data-display';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\nimport { type DenseInfoClassificationProps } from '../types';\n\nexport function DenseInfoClassification({\n\ttitle,\n\tdescription,\n\tstats,\n\titems,\n\ttotalLabel,\n\ttotalValue,\n\tfooterBadges,\n\tfooterText,\n\tactions,\n\tclassName,\n}: DenseInfoClassificationProps) {\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tactions={actions}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<div className=\"grid grid-cols-2 gap-2 sm:grid-cols-3\">\n\t\t\t\t\t{stats.map((stat) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={stat.label}\n\t\t\t\t\t\t\tclassName=\"rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5 text-center\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Heading tag=\"h4\" className=\"border-none pb-0 text-base font-semibold tabular-nums\">\n\t\t\t\t\t\t\t\t{stat.value}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" weight=\"medium\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t\t{stat.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t{!!stat.trendBadge && (\n\t\t\t\t\t\t\t\t<div className=\"mt-1 flex justify-center\">\n\t\t\t\t\t\t\t\t\t<Badge variant={stat.trendVariant ?? 'secondary'}>\n\t\t\t\t\t\t\t\t\t\t{stat.trendBadge}\n\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<Separator />\n\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{items.map((item) => (\n\t\t\t\t\t\t<Item key={item.label} size=\"small\">\n\t\t\t\t\t\t\t<ItemMedia>\n\t\t\t\t\t\t\t\t<span className={cn('h-2 w-2 shrink-0 rounded-full', item.dotColor)} />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false} className=\"gap-2\">\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t\t\t\t<Badge variant={item.badgeVariant ?? 'secondary'}>\n\t\t\t\t\t\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{item.value}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t))}\n\t\t\t\t</ItemGroup>\n\n\t\t\t\t{!!totalValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Separator />\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tlabel={totalLabel ?? 'Total'}\n\t\t\t\t\t\t\tvalue={totalValue}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-sm font-bold\"\n\t\t\t\t\t\t\tvalueClassName=\"text-sm font-bold\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{(!!footerBadges || !!footerText) && (\n\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-2 border-t pt-2\">\n\t\t\t\t\t\t{!!footerBadges && footerBadges.map((b) => (\n\t\t\t\t\t\t\t<Badge key={b.label} variant={b.variant}>\n\t\t\t\t\t\t\t\t{b.label}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{!!footerText && (\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t{footerText}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nDenseInfoClassification.displayName = 'DenseInfoClassification';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Text } from '@/components/typography/text';\nimport { InlineStat } from '@/components/composed/data-display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemGroup,\n\tItemSeparator,\n\tItemTitle,\n} from '@/components/base/item';\nimport { type DenseInfoFinancialProps } from '../types';\n\nexport function DenseInfoFinancial({\n\ttitle,\n\tdescription,\n\theaderBadges,\n\tlineItems,\n\ttotalLabel = 'Total',\n\ttotalAmount,\n\tfooterBadges,\n\tfooterText,\n\tactions,\n\tclassName,\n}: DenseInfoFinancialProps) {\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tactions={actions}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t{headerBadges.map((b) => (\n\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\tkey={b.label}\n\t\t\t\t\t\t\tvariant={b.variant}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{b.label}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{lineItems.map((item, idx) => (\n\t\t\t\t\t\t<div key={item.label}>\n\t\t\t\t\t\t\t{idx > 0 && <ItemSeparator className=\"my-0\" />}\n\t\t\t\t\t\t\t<Item size=\"small\">\n\t\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t\t<ItemTitle className=\"gap-2\">\n\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t\t\t\t\t<Badge variant={item.badgeVariant ?? 'secondary'}>\n\t\t\t\t\t\t\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t\t<ItemActions>\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{item.amount}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</ItemActions>\n\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</ItemGroup>\n\n\t\t\t\t{!!totalAmount && (\n\t\t\t\t\t<InlineStat\n\t\t\t\t\t\tclassName=\"rounded-lg bg-muted/50 px-3 py-2.5\"\n\t\t\t\t\t\tlabel={totalLabel}\n\t\t\t\t\t\tvalue={totalAmount}\n\t\t\t\t\t\tmono\n\t\t\t\t\t\tlabelClassName=\"text-sm font-semibold\"\n\t\t\t\t\t\tvalueClassName=\"text-sm font-semibold\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{(!!footerBadges || !!footerText) && (\n\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-2 border-t pt-2\">\n\t\t\t\t\t\t{!!footerBadges &&\n\t\t\t\t\t\t\tfooterBadges.map((b) => (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={b.label}\n\t\t\t\t\t\t\t\t\tvariant={b.variant}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{b.label}\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{!!footerText && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tclassName=\"text-muted-foreground\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{footerText}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nDenseInfoFinancial.displayName = 'DenseInfoFinancial';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Separator } from '@/components/base/display/separator';\nimport {\n\tFolderOpen,\n\tCalendar,\n\tBarChart3,\n} from 'lucide-react';\nimport { type DenseInfoProjectCardProps } from '../types';\n\nexport function DenseInfoProjectCard({\n\ttitle,\n\tdescription,\n\tstatusLabel,\n\tstatusVariant,\n\tmetaPairs,\n\tdate,\n\tpriority,\n\tcompletedTasks,\n\ttotalTasks,\n\tactions,\n\tclassName,\n}: DenseInfoProjectCardProps) {\n\tconst percentage = totalTasks > 0 ? Math.round((completedTasks / totalTasks) * 100) : 0;\n\tconst circumference = 2 * Math.PI * 7;\n\tconst dashOffset = circumference - (percentage / 100) * circumference;\n\n\treturn (\n\t\t<SmartCard\n\t\t\tpadding=\"default\"\n\t\t\tactions={actions}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t<FolderOpen className=\"h-4 w-4 text-muted-foreground\" />\n\t\t\t\t\t<Badge variant={statusVariant} dot>\n\t\t\t\t\t\t{statusLabel}\n\t\t\t\t\t</Badge>\n\t\t\t\t</div>\n\n\t\t\t\t<Heading tag=\"h5\" className=\"font-bold border-none pb-0\">\n\t\t\t\t\t{title}\n\t\t\t\t</Heading>\n\n\t\t\t\t{!!description && (\n\t\t\t\t\t<Text type=\"secondary\" className=\"line-clamp-2\">\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\n\t\t\t\t{!!metaPairs && metaPairs.length > 0 && (\n\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t\t{metaPairs.map((pair, idx) => (\n\t\t\t\t\t\t\t<span key={pair.label} className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t{idx > 0 && (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"discrete\" className=\"mx-0.5\">•</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!pair.icon && (\n\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">{pair.icon}</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{pair.label}</Text>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{(!!date || !!priority) && (\n\t\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t\t{!!date && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<Calendar className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{date}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!priority && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<BarChart3 className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{priority}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<Separator />\n\n\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" className=\"shrink-0\">\n\t\t\t\t\t\t\t<circle\n\t\t\t\t\t\t\t\tcx=\"10\"\n\t\t\t\t\t\t\t\tcy=\"10\"\n\t\t\t\t\t\t\t\tr=\"7\"\n\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\t\t\t\tclassName=\"text-muted/50\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<circle\n\t\t\t\t\t\t\t\tcx=\"10\"\n\t\t\t\t\t\t\t\tcy=\"10\"\n\t\t\t\t\t\t\t\tr=\"7\"\n\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\t\t\t\tstrokeDasharray={circumference}\n\t\t\t\t\t\t\t\tstrokeDashoffset={dashOffset}\n\t\t\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t\t\t\tclassName=\"text-primary\"\n\t\t\t\t\t\t\t\ttransform=\"rotate(-90 10 10)\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<Text size=\"xs\" weight=\"medium\">\n\t\t\t\t\t\t\t{completedTasks}/{totalTasks} Tasks\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"h-6 w-6 rounded-full bg-muted\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nDenseInfoProjectCard.displayName = 'DenseInfoProjectCard';\n","import { SmartCard } from '@/components/base/cards/smart-card';\nimport { Badge } from '@/components/base/badge/badge';\nimport Heading from '@/components/typography/heading';\nimport { InlineStat } from '@/components/composed/data-display';\nimport { Separator } from '@/components/base/display/separator';\nimport { cn } from '@/lib/utils';\nimport { type DenseInfoScoreCardProps } from '../types';\n\nexport function DenseInfoScoreCard({\n\ttitle,\n\tdescription,\n\tstatusBadges,\n\tscore,\n\tscoreLevel,\n\tscoreFilled,\n\tscoreTotal = 10,\n\trows,\n\tfooterBadges,\n\tactions,\n\tclassName,\n}: DenseInfoScoreCardProps) {\n\tconst barColor =\n\t\tscoreLevel === 'good'\n\t\t\t? 'bg-success'\n\t\t\t: scoreLevel === 'medium'\n\t\t\t\t? 'bg-warning'\n\t\t\t\t: 'bg-destructive';\n\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tactions={actions}\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<div className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t{statusBadges.map((b) => (\n\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\tkey={b.label}\n\t\t\t\t\t\t\tvariant={b.variant}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{b.label}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"flex items-center justify-center py-2\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\ttag=\"h2\"\n\t\t\t\t\t\tclassName=\"text-base font-bold tabular-nums border-none pb-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{String(score)}\n\t\t\t\t\t</Heading>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"flex items-center justify-center gap-1\">\n\t\t\t\t\t{Array.from({ length: scoreTotal }, (_, i) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'h-5 w-2 rounded-sm',\n\t\t\t\t\t\t\t\ti < scoreFilled ? barColor : 'bg-muted',\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</div>\n\n\t\t\t\t<Separator />\n\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t{rows.map((row) => (\n\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\tkey={row.label}\n\t\t\t\t\t\t\tlabel={row.label}\n\t\t\t\t\t\t\tvalue={row.value}\n\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\tlabelClassName=\"text-xs text-muted-foreground\"\n\t\t\t\t\t\t\tvalueClassName=\"text-sm font-semibold text-right\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t{!!footerBadges && footerBadges.length > 0 && (\n\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-2 border-t pt-2\">\n\t\t\t\t\t\t{footerBadges.map((b) => (\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tkey={b.label}\n\t\t\t\t\t\t\t\tvariant={b.variant}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{b.label}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</SmartCard>\n\t);\n}\n\nDenseInfoScoreCard.displayName = 'DenseInfoScoreCard';\n","/**\n * InlineMetricBadge — compact \"label · value · change%\" pill rows.\n * Three sizes (sm / base / lg) drive padding, gap, and per-token font sizes.\n * `lg` is the previously-too-big-default rebalanced — value sits at `xs` so\n * the chip stays inline-friendly; consumers needing larger figures should\n * use `MiniKpi` or `StatCard` instead.\n */\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport type { InlineMetricBadgeProps } from './types';\n\nconst containerSize: Record<string, string> = {\n\tsm: 'gap-1 rounded-full px-2 py-0.5',\n\tmd: 'gap-1.5 rounded-full px-2.5 py-1',\n\tbase: 'gap-1.5 rounded-full px-2.5 py-1',\n\tlg: 'gap-1.5 rounded-full px-3 py-1',\n};\n\nconst labelSize: Record<string, 'xxs' | 'xs'> = {\n\tsm: 'xxs',\n\tmd: 'xxs',\n\tbase: 'xxs',\n\tlg: 'xs',\n};\n\nconst valueSize: Record<string, 'xxs' | 'xs'> = {\n\tsm: 'xxs',\n\tmd: 'xs',\n\tbase: 'xs',\n\tlg: 'xs',\n};\n\nconst changeSize: Record<string, 'xxs' | 'xs'> = {\n\tsm: 'xxs',\n\tmd: 'xxs',\n\tbase: 'xxs',\n\tlg: 'xxs',\n};\n\nexport function InlineMetricBadge({ metrics, className }: InlineMetricBadgeProps) {\n\treturn (\n\t\t<div className={cn('inline-metric--component', 'flex flex-wrap gap-1.5', className)}>\n\t\t\t{metrics.map((m) => {\n\t\t\t\tconst sz = m.size ?? 'base';\n\t\t\t\treturn (\n\t\t\t\t\t<span\n\t\t\t\t\t\tkey={m.label}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex items-center bg-card ring-1 ring-border/60',\n\t\t\t\t\t\t\tcontainerSize[sz] ?? containerSize.base,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text tag=\"span\" size={labelSize[sz] ?? 'xxs'} type=\"secondary\">\n\t\t\t\t\t\t\t{m.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize={valueSize[sz] ?? 'xs'}\n\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\tclassName=\"tabular-nums\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{m.value}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize={changeSize[sz] ?? 'xxs'}\n\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'tabular-nums inline-flex items-center gap-0.5 rounded-full px-1',\n\t\t\t\t\t\t\t\tm.up ? 'bg-success/10 text-success' : 'bg-destructive/10 text-destructive',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{m.up ? '↑' : '↓'}\n\t\t\t\t\t\t\t{m.change}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n\nInlineMetricBadge.displayName = 'InlineMetricBadge';\n","/**\n * MiniKpiRow — inline divider-separated KPI strip. Each item shows a value\n * (sm semibold) and a tiny secondary label below. Use as a header / footer\n * accent on dashboards where a full StatCard grid would be too heavy.\n */\nimport { Text } from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport type { MiniKpiRowProps } from './types';\n\nconst glass = 'ring-1 ring-border/50 shadow-sm';\n\nexport function MiniKpiRow({ kpis, className }: MiniKpiRowProps) {\n return (\n <div className={cn('mini-kpi--component', 'inline-flex items-center divide-x divide-border/50 rounded-xl bg-card px-2 py-2', glass, className)}>\n {kpis.map((kpi) => (\n <div key={kpi.label} className=\"flex flex-col items-center px-4\">\n <Text weight=\"bold\" className=\"tabular-nums\">\n {kpi.value}\n </Text>\n <Text size=\"xs\" type=\"secondary\" className=\"text-xs\">\n {kpi.label}\n </Text>\n </div>\n ))}\n </div>\n );\n}\n\nMiniKpiRow.displayName = 'MiniKpiRow';\n","import type { ComponentType, ReactNode } from 'react';\nimport { Plus, X } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard, type CardPadding, type SmartCardSurface } from '@/components/base/cards';\nimport {\n\tResourceCell,\n\ttype ResourceCellBadge,\n\ttype ResourceCellMetadataItem,\n} from '@/components/base/table';\nimport { Text } from '@/components/typography';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface ResourceSelectorCardStrings {\n\tselect: string;\n\tremove: string;\n\temptyTitle: string;\n\temptyDescription: string;\n}\n\nexport const defaultResourceSelectorCardStrings: ResourceSelectorCardStrings = {\n\tselect: 'Select resource',\n\tremove: 'Remove resource',\n\temptyTitle: 'No resource selected',\n\temptyDescription: 'Choose a resource to continue.',\n};\n\nexport interface ResourceSelectorCardProps<TResource> {\n\tresource?: TResource | null;\n\tgetKey: (resource: TResource) => string;\n\tgetTitle: (resource: TResource) => ReactNode;\n\tgetSubtitle?: (resource: TResource) => ReactNode;\n\tgetMetadata?: (resource: TResource) => ReactNode | readonly ResourceCellMetadataItem[];\n\tgetBadges?: (resource: TResource) => readonly ResourceCellBadge[];\n\tgetImageUrl?: (resource: TResource) => string | undefined;\n\tgetIcon?: (resource: TResource) => ComponentType<{ className?: string }> | undefined;\n\trenderResource?: (resource: TResource) => ReactNode;\n\tonSelect?: () => void;\n\tonRemove?: (resource: TResource) => void;\n\ttitle?: ReactNode;\n\tdescription?: ReactNode;\n\temptyTitle?: ReactNode;\n\temptyDescription?: ReactNode;\n\tselectLabel?: ReactNode;\n\tremoveLabel?: ReactNode;\n\tactions?: ReactNode;\n\tpadding?: CardPadding;\n\tsurface?: SmartCardSurface;\n\tclassName?: string;\n\tcontentClassName?: string;\n\tstrings?: StringsProp<ResourceSelectorCardStrings>;\n}\n\nexport function ResourceSelectorCard<TResource>({\n\tresource,\n\tgetKey,\n\tgetTitle,\n\tgetSubtitle,\n\tgetMetadata,\n\tgetBadges,\n\tgetImageUrl,\n\tgetIcon,\n\trenderResource,\n\tonSelect,\n\tonRemove,\n\ttitle,\n\tdescription,\n\temptyTitle,\n\temptyDescription,\n\tselectLabel,\n\tremoveLabel,\n\tactions,\n\tpadding,\n\tsurface,\n\tclassName,\n\tcontentClassName,\n\tstrings: stringsProp,\n}: ResourceSelectorCardProps<TResource>) {\n\tconst strings = useStrings(defaultResourceSelectorCardStrings, stringsProp);\n\tconst selectCopy = selectLabel ?? strings.select;\n\tconst removeCopy = removeLabel ?? strings.remove;\n\tconst removeAriaLabel = typeof removeCopy === 'string' ? removeCopy : strings.remove;\n\tconst headerAction = actions ?? (\n\t\t<div className=\"flex w-full flex-wrap items-center justify-end gap-space-sm sm:w-auto sm:gap-space-md\">\n\t\t\t{!!resource && !!onRemove && (\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=\"small\"\n\t\t\t\t\taria-label={removeAriaLabel}\n\t\t\t\t\tonClick={() => onRemove(resource)}\n\t\t\t\t>\n\t\t\t\t\t<X className=\"size-icon\" />\n\t\t\t\t\t<span className=\"hidden sm:inline\">{removeCopy}</span>\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t\t{!!onSelect && (\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\tsize=\"small\"\n\t\t\t\t\tclassName=\"min-w-0 max-w-full\"\n\t\t\t\t\tonClick={onSelect}\n\t\t\t\t>\n\t\t\t\t\t<Plus className=\"size-icon\" />\n\t\t\t\t\t<span className=\"truncate\">{selectCopy}</span>\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<SmartCard\n\t\t\tdata-component=\"resource-selector-card\"\n\t\t\tdata-slot=\"resource-selector-card\"\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\theaderAction={headerAction}\n\t\t\theaderClassName={cn(\n\t\t\t\t'resource-selector-card--header flex-wrap',\n\t\t\t\t'[&>div:first-child]:basis-full [&>div:last-child]:w-full [&>div:last-child]:justify-end',\n\t\t\t\t'sm:[&>div:first-child]:basis-auto sm:[&>div:last-child]:w-auto',\n\t\t\t)}\n\t\t\tpadding={padding}\n\t\t\tsurface={surface}\n\t\t\tclassName={cn('resource-selector-card--component', className)}\n\t\t\tcontentClassName={cn('resource-selector-card--content', contentClassName)}\n\t\t>\n\t\t\t{resource ? (\n\t\t\t\t<div\n\t\t\t\t\tdata-resource-key={getKey(resource)}\n\t\t\t\t\tclassName=\"resource-selector-card--selected min-w-0\"\n\t\t\t\t>\n\t\t\t\t\t{renderResource ? (\n\t\t\t\t\t\trenderResource(resource)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<ResourceCell\n\t\t\t\t\t\t\ttitle={getTitle(resource)}\n\t\t\t\t\t\t\tsubtitle={getSubtitle?.(resource)}\n\t\t\t\t\t\t\tmetadata={getMetadata?.(resource)}\n\t\t\t\t\t\t\tbadges={getBadges?.(resource)}\n\t\t\t\t\t\t\timageUrl={getImageUrl?.(resource)}\n\t\t\t\t\t\t\ticon={getIcon?.(resource)}\n\t\t\t\t\t\t\tmediaClassName=\"size-avatar-sm\"\n\t\t\t\t\t\t\tcontentClassName=\"gap-space-2xs\"\n\t\t\t\t\t\t\tsubtitleClassName=\"text-xs\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div className=\"resource-selector-card--empty min-w-0\">\n\t\t\t\t\t<div className=\"min-w-0\">\n\t\t\t\t\t\t<Text weight=\"semibold\">{emptyTitle ?? strings.emptyTitle}</Text>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-space-2xs\">\n\t\t\t\t\t\t\t{emptyDescription ?? strings.emptyDescription}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nResourceSelectorCard.displayName = 'ResourceSelectorCard';\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 driven by the package scale and CSS variables, 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/composed/data-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/base/display/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\tsmall: 'py-empty-state-y-small',\n\tdefault: 'py-empty-state-y',\n};\n\nconst normalizeEmptyStatePadding = (padding?: EmptyStatePadding): EmptyStatePadding => {\n\tif (padding === 'small' || padding === 'default') return padding;\n\t// Runtime compatibility for pre-scale callers.\n\tif ((padding as string | undefined) === 'compact') return 'small';\n\treturn 'default';\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 = 'default',\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[normalizeEmptyStatePadding(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, type StringsProp } 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?: StringsProp<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 compatibilityStrings = useStrings(\n\t\tdefaultEmailDisplayStrings,\n\t\tcopySuccessMessage ? { copySuccess: copySuccessMessage } : undefined,\n\t);\n\tconst strings = useStrings(compatibilityStrings, stringsProp);\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, type StringsProp } 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?: StringsProp<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 compatibilityStrings = useStrings(\n\t\tdefaultPhoneDisplayStrings,\n\t\tcopySuccessMessage ? { copySuccess: copySuccessMessage } : undefined,\n\t);\n\tconst strings = useStrings(compatibilityStrings, stringsProp);\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, type StringsProp } 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?: StringsProp<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 compatibilityStrings = useStrings(\n\t\tdefaultUrlDisplayStrings,\n\t\tcopySuccessMessage || httpWarningMessage\n\t\t\t? {\n\t\t\t\tcopySuccess: copySuccessMessage,\n\t\t\t\thttpWarning: httpWarningMessage,\n\t\t\t}\n\t\t\t: undefined,\n\t);\n\tconst strings = useStrings(compatibilityStrings, stringsProp);\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 * Default user-facing strings for `<MetadataList>`.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <MetadataList strings={{ infoFallback: t('metadata.info') }} … />\n */\n\nexport interface MetadataListStrings {\n\t/**\n\t * Suffix appended to the label when generating the tooltip-trigger\n\t * `aria-label` (\"<label> info\"). Receives the label as the first arg\n\t * so consumers can localise the full template.\n\t */\n\tformatInfoAriaLabel: (label: string) => string;\n\t/** Fallback `aria-label` used when the field label is not a plain string. */\n\tinfoFallback: string;\n}\n\nexport const defaultMetadataListStrings: MetadataListStrings = {\n\tformatInfoAriaLabel: (label) => `${label} info`,\n\tinfoFallback: 'Info',\n};\n","/**\n * MetadataList — flexible label/value list for entity metadata.\n *\n * Two layouts:\n * - `vertical` (default): grid of label-on-top, value-below cells, ideal for\n * entity detail screens. Honours `columns` (1–4) and `dense` mode.\n * - `horizontal`: inline label/separator/value pairs that wrap, suitable for\n * pill-style summaries (e.g. \"Created Jan 4 · By Alice · v3.2\").\n *\n * Each item supports an optional icon, tooltip, custom `render`, and\n * per-item `emptyLabel`. Falls back to the shared `EMPTY` when both are\n * missing. Returns `null` when the list is empty so callers can render\n * unconditionally.\n */\nimport { Info, type LucideIcon } from 'lucide-react';\nimport React from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Separator } from '@/components/base/display/separator';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/base/display/tooltip';\nimport Heading from '@/components/typography/heading';\nimport Text from '@/components/typography/text';\nimport { EMPTY } from '@/lib/format';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultMetadataListStrings,\n\ttype MetadataListStrings,\n} from './metadata-list.strings';\n\nexport type { MetadataListStrings };\nexport { defaultMetadataListStrings };\n\nexport type MetadataListItem = {\n\tid?: string;\n\tlabel: React.ReactNode;\n\tvalue?: React.ReactNode | null;\n\tdescription?: React.ReactNode | null;\n\ttooltip?: React.ReactNode;\n\ticon?: LucideIcon;\n\temptyLabel?: React.ReactNode;\n\trender?: (item: MetadataListItem) => React.ReactNode;\n};\n\nexport type MetadataListProps = {\n\titems: MetadataListItem[];\n\tcolumns?: 1 | 2 | 3 | 4;\n\tdense?: boolean;\n\temptyLabel?: React.ReactNode;\n\ttitle?: React.ReactNode;\n\ttitleSeparator?: boolean;\n\tclassName?: string;\n\tgapClassName?: string;\n\tlabelClassName?: string;\n\tvalueClassName?: string;\n\tdescriptionClassName?: string;\n\tlayout?: 'vertical' | 'horizontal' | 'rows';\n\tjustify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';\n\talign?: 'start' | 'center' | 'end' | 'baseline';\n\tseparator?: string;\n\titemSeparator?: boolean | string;\n\twrap?: boolean;\n\t/** Per-instance string overrides (deep-merged over `defaultMetadataListStrings`). */\n\tstrings?: StringsProp<MetadataListStrings>;\n};\n\nconst columnClassMap: Record<NonNullable<MetadataListProps['columns']>, string> = {\n\t1: 'grid-cols-1',\n\t2: 'grid-cols-1 sm:grid-cols-2',\n\t3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',\n\t4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',\n};\n\nconst justifyClassMap: Record<NonNullable<MetadataListProps['justify']>, string> = {\n\tstart: 'justify-start',\n\tend: 'justify-end',\n\tcenter: 'justify-center',\n\tbetween: 'justify-between',\n\taround: 'justify-around',\n\tevenly: 'justify-evenly',\n};\n\nconst alignClassMap: Record<NonNullable<MetadataListProps['align']>, string> = {\n\tstart: 'items-start',\n\tcenter: 'items-center',\n\tend: 'items-end',\n\tbaseline: 'items-baseline',\n};\n\nconst resolveKey = (item: MetadataListItem, index: number): string => {\n\tif (item.id) {\n\t\treturn item.id;\n\t}\n\n\tconst rawLabel = typeof item.label === 'string' ? item.label : `${index}`;\n\treturn `metadata-${rawLabel}-${index}`;\n};\n\nfunction MetadataInfoTrigger({\n\ttriggerProps,\n\tariaLabel,\n}: {\n\ttriggerProps: React.ComponentProps<'button'>;\n\tariaLabel: string;\n}) {\n\tconst { className, ...props } = triggerProps;\n\treturn (\n\t\t<Button\n\t\t\t{...props}\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"ghost\"\n\t\t\tsize=\"icon-small\"\n\t\t\tclassName={cn(\n\t\t\t\t'metadata-list--info-trigger -mx-space-2xs inline-flex size-avatar-sm shrink-0 items-center justify-center rounded-sm',\n\t\t\t\t'text-muted-foreground transition-colors hover:text-foreground',\n\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-label={ariaLabel}\n\t\t>\n\t\t\t<Info className=\"size-icon-sm cursor-help\" />\n\t\t</Button>\n\t);\n}\n\nexport function MetadataList({\n\titems,\n\tcolumns = 2,\n\tdense = false,\n\temptyLabel = EMPTY,\n\ttitle,\n\ttitleSeparator = false,\n\tclassName,\n\tgapClassName,\n\tlabelClassName,\n\tvalueClassName,\n\tdescriptionClassName,\n\tlayout = 'vertical',\n\tjustify = 'start',\n\talign = 'center',\n\tseparator = ': ',\n\titemSeparator = false,\n\twrap = true,\n\tstrings: stringsProp,\n}: MetadataListProps) {\n\tconst strings = useStrings(defaultMetadataListStrings, stringsProp);\n\tconst list = React.useMemo(() => items.filter(Boolean), [items]);\n\n\tReact.useEffect(() => {\n\t\tif (!import.meta.env.DEV) return;\n\t\tif (layout !== 'horizontal') return;\n\n\t\tconst itemsWithDescriptions = list.filter((item) => Boolean(item.description));\n\t\tif (itemsWithDescriptions.length > 0) {\n\t\t\tconsole.warn(\n\t\t\t\t'[MetadataList] Horizontal layout does not support descriptions. Items with descriptions will not display them.',\n\t\t\t\titemsWithDescriptions,\n\t\t\t);\n\t\t}\n\t}, [layout, list]);\n\n\tif (list.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst gridClass = columnClassMap[columns] ?? columnClassMap[2];\n\tconst gapClass = gapClassName ?? (dense ? 'gap-space-md' : 'gap-space-xl');\n\tconst itemStackGapClass = 'gap-space-sm';\n\tconst labelBase = 'metadata--field text-left text-sm font-semibold text-foreground';\n\tconst valueBase = dense ? 'text-xs' : 'text-sm';\n\tconst titleClassName = 'font-medium text-xs text-muted-foreground uppercase tracking-wide';\n\tconst hasTitle = title !== null && title !== undefined;\n\tconst shouldShowSeparator = hasTitle && titleSeparator;\n\n\tif (layout === 'horizontal') {\n\t\tconst justifyClass = justifyClassMap[justify] ?? justifyClassMap.start;\n\t\tconst alignClass = alignClassMap[align] ?? alignClassMap.center;\n\t\tconst itemSeparatorText =\n\t\t\ttypeof itemSeparator === 'string'\n\t\t\t\t? itemSeparator\n\t\t\t\t: itemSeparator\n\t\t\t\t\t? ' | '\n\t\t\t\t\t: '';\n\t\tconst horizontalGapClass = dense ? 'gap-space-sm' : 'gap-space-md';\n\t\tconst wrapClass = wrap ? 'flex-wrap' : 'flex-nowrap';\n\n\t\treturn (\n\t\t\t<div className={cn('metadata-list--component', 'metadata-list-container', className)}>\n\t\t\t\t{!!hasTitle && (\n\t\t\t\t\t<Heading\n\t\t\t\t\t\ttag=\"h6\"\n\t\t\t\t\t\tclassName={cn('mb-space-sm', titleClassName)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Heading>\n\t\t\t\t)}\n\n\t\t\t\t{!!shouldShowSeparator && <Separator className=\"mb-2\" />}\n\n\t\t\t\t<div className={cn('flex', wrapClass, justifyClass, alignClass, horizontalGapClass)}>\n\t\t\t\t\t{list.map((item, index) => {\n\t\t\t\t\t\tconst key = resolveKey(item, index);\n\t\t\t\t\t\tconst effectiveEmptyLabel = item.emptyLabel ?? emptyLabel;\n\t\t\t\t\t\tconst isEmptyValue = item.value === null || item.value === undefined;\n\t\t\t\t\t\tconst value = item.value ?? effectiveEmptyLabel;\n\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\tconst hasTooltip = item.tooltip !== null && item.tooltip !== undefined;\n\t\t\t\t\t\tconst hasCustomRender = typeof item.render === 'function';\n\t\t\t\t\t\tconst showItemSeparator = itemSeparatorText && index < list.length - 1;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<React.Fragment key={key}>\n\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-space-md\">\n\t\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'flex-shrink-0',\n\t\t\t\t\t\t\t\t\t\t\t\tdense ? 'size-icon-sm' : 'size-icon',\n\t\t\t\t\t\t\t\t\t\t\t\t'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\t\t\t\t\t\ttype=\"main\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'whitespace-nowrap',\n\t\t\t\t\t\t\t\t\t\t\tlabelBase,\n\t\t\t\t\t\t\t\t\t\t\tlabelClassName,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipTrigger\n\t\t\t\t\t\t\t\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MetadataInfoTrigger\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerProps={triggerProps}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tariaLabel={typeof item.label === 'string' ? strings.formatInfoAriaLabel(item.label) : strings.infoFallback}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipContent\n\t\t\t\t\t\t\t\t\t\t\t\tside=\"top\"\n\t\t\t\t\t\t\t\t\t\t\t\talign=\"start\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"max-w-xs\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<Text type=\"inverse\" size=\"xs\">{item.tooltip}</Text>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{separator}\n\t\t\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t\t\t{hasCustomRender ? (\n\t\t\t\t\t\t\t\t\t\titem.render?.(item)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(valueBase, 'leading-tight', isEmptyValue ? 'text-foreground/50' : 'text-foreground', valueClassName)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{!!showItemSeparator && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{itemSeparatorText}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (layout === 'rows') {\n\t\tconst rowPaddingY = dense ? 'py-row-y-sm' : 'py-row-y';\n\t\treturn (\n\t\t\t<div className={cn('metadata-list--component', 'metadata-list-container', className)}>\n\t\t\t\t{!!hasTitle && (\n\t\t\t\t\t<Heading\n\t\t\t\t\t\ttag=\"h6\"\n\t\t\t\t\t\tclassName={cn('mb-space-md', titleClassName)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Heading>\n\t\t\t\t)}\n\t\t\t\t{!!shouldShowSeparator && <Separator className=\"mb-2\" />}\n\t\t\t\t<dl className=\"divide-y divide-border/50\">\n\t\t\t\t\t{list.map((item, index) => {\n\t\t\t\t\t\tconst key = resolveKey(item, index);\n\t\t\t\t\t\tconst effectiveEmptyLabel = item.emptyLabel ?? emptyLabel;\n\t\t\t\t\t\tconst isEmptyValue = item.value === null || item.value === undefined;\n\t\t\t\t\t\tconst value = item.value ?? effectiveEmptyLabel;\n\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\tconst hasTooltip = item.tooltip !== null && item.tooltip !== undefined;\n\t\t\t\t\t\tconst hasCustomRender = typeof item.render === 'function';\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={cn('grid items-baseline gap-x-space-xl gap-y-space-sm grid-cols-[minmax(9rem,1fr)_2fr]', rowPaddingY)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<dt className=\"flex items-center gap-space-sm min-w-0\">\n\t\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t\t<Icon className={cn('flex-shrink-0 text-muted-foreground', dense ? 'size-icon-sm' : 'size-icon')} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttype=\"main\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName={cn('truncate', labelBase, labelClassName)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipTrigger\n\t\t\t\t\t\t\t\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MetadataInfoTrigger\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerProps={triggerProps}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tariaLabel={typeof item.label === 'string' ? strings.formatInfoAriaLabel(item.label) : strings.infoFallback}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipContent side=\"top\" align=\"start\" className=\"max-w-xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Text type=\"inverse\" size=\"xs\">{item.tooltip}</Text>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</dt>\n\t\t\t\t\t\t\t\t<dd className=\"min-w-0\">\n\t\t\t\t\t\t\t\t\t{hasCustomRender ? (\n\t\t\t\t\t\t\t\t\t\titem.render?.(item)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(valueBase, 'break-words leading-tight', isEmptyValue ? 'text-foreground/50' : 'text-foreground', valueClassName)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t\t<Text size=\"inherit\" type=\"secondary\" className={cn('mt-space-xs text-xs leading-snug', descriptionClassName)}>\n\t\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</dl>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={cn('metadata-list--component', 'metadata-list-container', className)}>\n\t\t\t{!!hasTitle && (\n\t\t\t\t<Heading\n\t\t\t\t\ttag=\"h6\"\n\t\t\t\t\tclassName={cn('mb-space-sm', titleClassName)}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</Heading>\n\t\t\t)}\n\n\t\t\t{!!shouldShowSeparator && <Separator className=\"mb-2\" />}\n\n\t\t\t<div className={cn('grid', gridClass, gapClass)}>\n\t\t\t\t{list.map((item, index) => {\n\t\t\t\t\tconst key = resolveKey(item, index);\n\t\t\t\t\tconst effectiveEmptyLabel = item.emptyLabel ?? emptyLabel;\n\t\t\t\t\tconst isEmptyValue = item.value === null || item.value === undefined;\n\t\t\t\t\tconst value = item.value ?? effectiveEmptyLabel;\n\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\tconst hasTooltip = item.tooltip !== null && item.tooltip !== undefined;\n\t\t\t\t\tconst hasCustomRender = typeof item.render === 'function';\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\tclassName={cn('grid min-w-0', itemStackGapClass)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-space-sm\">\n\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'flex-shrink-0',\n\t\t\t\t\t\t\t\t\t\t\tdense ? 'size-icon-sm' : 'size-icon',\n\t\t\t\t\t\t\t\t\t\t\t'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\t\t\t\t\ttype=\"main\"\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\tclassName={cn(labelBase, labelClassName)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t\t\t<TooltipTrigger\n\t\t\t\t\t\t\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<MetadataInfoTrigger\n\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerProps={triggerProps}\n\t\t\t\t\t\t\t\t\t\t\t\t\tariaLabel={typeof item.label === 'string' ? strings.formatInfoAriaLabel(item.label) : strings.infoFallback}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<TooltipContent\n\t\t\t\t\t\t\t\t\t\t\tside=\"top\"\n\t\t\t\t\t\t\t\t\t\t\talign=\"start\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"max-w-xs\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Text type=\"inverse\" size=\"xs\">{item.tooltip}</Text>\n\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{hasCustomRender ? (\n\t\t\t\t\t\t\t\titem.render?.(item)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tclassName={cn(valueBase, 'leading-tight', isEmptyValue ? 'text-foreground/50' : 'text-foreground', valueClassName)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\tclassName={cn('text-xs leading-snug', descriptionClassName)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nMetadataList.displayName = 'MetadataList';\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 (xs secondary), value below (md).\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-space-2xs', className)}>\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className={cn('text-xs leading-tight', 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\tsize=\"inherit\"\n\t\t\t\t\tclassName={cn('text-sm leading-snug', 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('inline-stat--component flex items-center gap-space-md', justify, className)}>\n\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className={cn('text-xs leading-tight', 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\tsize=\"inherit\"\n\t\t\t\tclassName={cn('text-sm leading-snug', 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. Sizes use the package display scale (`small/default`).\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 type { ComponentScale } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nexport type UserCellSize = ComponentScale;\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; nameClass: string; subtitleClass: string }> = {\n\tsmall: { avatar: 'size-avatar-sm', gap: 'gap-space-sm', nameClass: 'text-xs', subtitleClass: 'text-xs' },\n\tdefault: { avatar: 'size-avatar', gap: 'gap-space-md', nameClass: 'text-sm', subtitleClass: 'text-xs' },\n};\n\nfunction normalizeUserCellSize(size: UserCellSize | string | undefined): UserCellSize {\n\tif (size === 'small' || size === 'default') return size;\n\tif (size === 'xs' || size === 'sm') return 'small';\n\treturn 'default';\n}\n\nexport function UserCell({\n\tname,\n\tsubtitle,\n\tavatarUrl,\n\tavatarAlt,\n\tinitials,\n\tavatar,\n\ttrailing,\n\tsize = 'default',\n\tclassName,\n}: UserCellProps) {\n\tconst sizes = SIZE_MAP[normalizeUserCellSize(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=\"inherit\" weight=\"semibold\" className={cn('truncate leading-snug', sizes.nameClass)}>\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=\"inherit\" type=\"secondary\" className={cn('truncate leading-tight', sizes.subtitleClass)}>\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-CrsJ_dGn.cjs"),r=require("../lib/utils.cjs"),i=require("./button-CB8e7fui.cjs"),a=require("./tooltip-mvxZV_Lu.cjs"),o=require("./typography-sXFd02zl.cjs"),s=require("./icon-badge-CU6ZkcER.cjs"),c=require("./badge-B0Ashqkn.cjs"),l=require("./cards-DvE5gRFf.cjs"),u=require("./display-DV7n0KA1.cjs"),d=require("./separator-BXn_fnly.cjs"),f=require("./copyable-tJxsOyn-.cjs"),p=require("./avatar-BnKM_o2d.cjs"),m=require("./item-BG2iK1sy.cjs"),h=require("./table-DQA2m2F0.cjs");let g=require("react");g=e.t(g,1);let _=require("react/jsx-runtime"),v=require("lucide-react");function y({items:e,subtotal:t,tax:n,discount:i,total:a,className:s}){return(0,_.jsxs)(`div`,{className:r.cn(`invoice-items--component`,`w-full min-w-0 max-w-full overflow-hidden rounded-lg border border-border bg-card shadow-sm`,s),children:[(0,_.jsxs)(`div`,{className:`grid grid-cols-[1fr_72px_96px_96px] gap-3 bg-muted/40 px-4 py-3`,children:[(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,weight:`medium`,children:`Item`}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,weight:`medium`,align:`center`,children:`Qty`}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,weight:`medium`,align:`right`,children:`Price`}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,weight:`medium`,align:`right`,children:`Total`})]}),e.map((t,n)=>(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`div`,{className:`grid grid-cols-[1fr_72px_96px_96px] items-center gap-3 px-4 py-3`,children:[(0,_.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsx)(o.s,{weight:`medium`,children:t.title}),!!t.badge&&(0,_.jsx)(c.t,{variant:t.badgeVariant??`secondary`,children:t.badge})]}),!!t.description&&(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,className:`line-clamp-1`,children:t.description})]}),(0,_.jsx)(o.s,{align:`center`,type:`secondary`,className:`tabular-nums`,children:t.quantity??1}),(0,_.jsx)(o.s,{align:`right`,className:`tabular-nums`,children:t.unitPrice??t.total}),(0,_.jsx)(o.s,{align:`right`,weight:`semibold`,className:`tabular-nums`,children:t.total})]}),n<e.length-1&&(0,_.jsx)(d.t,{className:`mx-4 !w-auto`})]},t.id)),!!(t||n||i||a)&&(0,_.jsxs)(`div`,{className:`space-y-2 border-t border-border bg-muted/30 px-4 py-3`,children:[!!t&&(0,_.jsx)($,{label:`Subtotal`,value:t,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm`}),!!i&&(0,_.jsx)($,{label:`Discount`,value:`-${i}`,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm text-success`}),!!n&&(0,_.jsx)($,{label:`Tax`,value:n,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm`}),!!a&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(d.t,{}),(0,_.jsx)($,{className:`pt-1`,label:`Total`,value:(0,_.jsx)(o.s,{weight:`semibold`,className:`tabular-nums`,children:a}),labelClassName:`text-sm font-semibold`})]})]})]})}function b({items:e,total:t,className:n}){return(0,_.jsxs)(`div`,{className:r.cn(`invoice-items--component`,`w-full min-w-0 max-w-full space-y-2`,n),children:[(0,_.jsx)(m.o,{className:`min-w-0 max-w-full`,children:e.map(e=>(0,_.jsxs)(m.t,{className:`min-w-0 bg-card shadow-sm`,children:[(0,_.jsx)(m.c,{children:(0,_.jsx)(s.t,{tone:`muted`,size:`default`,shape:`square`,children:e.icon??(0,_.jsx)(v.Package,{})})}),(0,_.jsxs)(m.r,{className:`min-w-0 basis-0`,children:[(0,_.jsx)(m.u,{className:`w-full min-w-0 max-w-full`,children:(0,_.jsx)(`span`,{className:`block min-w-0 truncate`,children:e.title})}),!!(e.description||e.badge)&&(0,_.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[!!e.badge&&(0,_.jsx)(c.t,{variant:e.badgeVariant??`secondary`,className:`shrink-0`,children:e.badge}),!!e.description&&(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,className:`min-w-0 truncate`,children:e.description})]})]}),(0,_.jsxs)(m.n,{className:`ml-auto min-w-0 shrink-0 justify-end`,children:[!!e.quantity&&e.quantity>1&&(0,_.jsxs)(o.s,{size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:[`x`,e.quantity]}),(0,_.jsx)(o.s,{weight:`semibold`,align:`right`,className:`shrink-0 tabular-nums`,children:e.total})]})]},e.id))}),!!t&&(0,_.jsx)($,{className:`rounded-lg border border-border bg-muted/30 px-4 py-2.5`,label:`Total`,value:(0,_.jsx)(o.s,{weight:`semibold`,className:`tabular-nums`,children:t}),labelClassName:`text-sm font-semibold`})]})}function x({items:e,subtotal:t,tax:n,discount:i,total:a,className:s}){return(0,_.jsxs)(`div`,{className:r.cn(`invoice-items--component`,`w-full min-w-0 max-w-full overflow-hidden rounded-lg border border-border bg-card shadow-sm`,s),children:[(0,_.jsx)(`div`,{className:`divide-y divide-border`,children:e.map(e=>(0,_.jsx)(`div`,{className:`px-4 py-3`,children:(0,_.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,_.jsxs)(`div`,{className:`flex items-start gap-3 flex-1 min-w-0`,children:[(0,_.jsx)(`div`,{className:`mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-md bg-primary/10 text-primary`,children:e.icon??(0,_.jsx)(v.Package,{className:`size-4`})}),(0,_.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsx)(o.s,{weight:`semibold`,children:e.title}),!!e.badge&&(0,_.jsx)(c.t,{variant:e.badgeVariant??`secondary`,children:e.badge})]}),!!e.description&&(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,className:`line-clamp-2`,children:e.description}),(0,_.jsxs)(`div`,{className:`flex items-center gap-3 pt-0.5`,children:[!!e.quantity&&(0,_.jsxs)(o.s,{size:`xs`,type:`discrete`,children:[`Qty: `,e.quantity]}),!!e.unitPrice&&(0,_.jsxs)(o.s,{size:`xs`,type:`discrete`,className:`tabular-nums`,children:[`@ `,e.unitPrice]})]})]})]}),(0,_.jsx)(`div`,{className:`flex flex-col items-end gap-1 shrink-0`,children:(0,_.jsx)(o.s,{weight:`semibold`,className:`tabular-nums`,children:e.total})})]})},e.id))}),!!a&&(0,_.jsx)(`div`,{className:`border-t border-border bg-muted/30 px-4 py-3`,children:(0,_.jsxs)(`div`,{className:`space-y-2`,children:[!!t&&(0,_.jsx)($,{label:`Subtotal`,value:t,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm`}),!!i&&(0,_.jsx)($,{label:`Discount`,value:`-${i}`,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm text-success`}),!!n&&(0,_.jsx)($,{label:`Tax (20%)`,value:n,mono:!0,labelClassName:`text-sm`,valueClassName:`text-sm`}),(0,_.jsx)(d.t,{}),(0,_.jsx)($,{className:`pt-1`,label:`Total Due`,value:(0,_.jsx)(o.s,{weight:`semibold`,className:`tabular-nums`,children:a}),labelClassName:`text-sm font-semibold`})]})})]})}y.displayName=`InvoiceItemsTable`,b.displayName=`InvoiceItemsCompact`,x.displayName=`InvoiceItemsDetailed`;var S={paid:`Paid`,pending:`Pending`,overdue:`Overdue`,items:e=>e===1?`1 line item`:`${e} line items`,due:`Due`},C={paid:`success`,pending:`warning`,overdue:`error`},w={paid:{label:S.paid,variant:`success`},pending:{label:S.pending,variant:`warning`},overdue:{label:S.overdue,variant:`error`}};function T({invoice:e,className:n,strings:i}){let a=t.mergeStrings(S,i),s={paid:a.paid,pending:a.pending,overdue:a.overdue};return(0,_.jsx)(l.t,{padding:`default`,className:r.cn(`invoice-mini--component min-w-0`,n),children:(0,_.jsxs)(`div`,{className:`space-y-2`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,_.jsx)(o.s,{weight:`semibold`,className:`min-w-0 flex-1 truncate font-mono tracking-wide`,children:e.invoiceNumber}),(0,_.jsx)(c.t,{variant:C[e.status],size:`small`,dot:!0,className:`shrink-0`,children:s[e.status]})]}),(0,_.jsx)(o.s,{type:`secondary`,className:`truncate`,children:e.customerName}),(0,_.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-x-3 gap-y-1 pt-1`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,children:a.items(e.lineItemsCount)}),(0,_.jsxs)(o.s,{size:`xs`,type:`discrete`,className:`whitespace-nowrap tabular-nums`,children:[a.due,` `,e.dueDate]})]}),(0,_.jsx)(o.s,{size:`base`,weight:`bold`,className:r.cn(`ml-auto shrink-0 tabular-nums leading-none`),children:e.totalAmount})]})]})})}T.displayName=`InvoiceMiniCard`;var E={title:`Invoice`,billFrom:`Bill From`,billTo:`Bill To`,issued:`Issued`,due:`Due`,amountDue:`Amount Due`};function D({eyebrow:e,name:t,location:n}){return(0,_.jsxs)(`div`,{className:r.cn(`invoice-header--component`,`space-y-1`),children:[(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:e}),(0,_.jsx)(o.s,{weight:`semibold`,className:`leading-snug`,children:t}),!!n&&(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,className:`leading-snug`,children:n})]})}function O({invoiceNumber:e,status:n,statusVariant:i=`success`,from:a,to:s,issuedDate:u,dueDate:f,amount:p,className:m,strings:h}){let g=t.useStrings(E,h);return(0,_.jsxs)(l.t,{title:g.title,className:m,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(o.s,{weight:`bold`,className:`font-mono tracking-wide`,children:e}),(0,_.jsx)(c.t,{variant:i,children:n})]}),(0,_.jsxs)(`div`,{className:`mt-5 grid grid-cols-1 gap-5 sm:grid-cols-2 sm:gap-6`,children:[(0,_.jsx)(D,{eyebrow:g.billFrom,name:a.name,location:a.location}),(0,_.jsx)(D,{eyebrow:g.billTo,name:s.name,location:s.location})]}),(0,_.jsx)(d.t,{className:`my-5`}),(0,_.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-4`,children:[(0,_.jsxs)(`div`,{className:`space-y-1`,children:[!!u&&(0,_.jsx)($,{layout:`inline`,label:g.issued,value:u,mono:!0,labelClassName:`text-xs uppercase tracking-wider font-medium`,valueClassName:`text-xs font-medium`}),!!f&&(0,_.jsx)($,{layout:`inline`,label:g.due,value:f,mono:!0,labelClassName:`text-xs uppercase tracking-wider font-medium`,valueClassName:`text-xs font-medium`})]}),(0,_.jsxs)(`div`,{className:`text-right`,children:[(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wider`,children:g.amountDue}),(0,_.jsx)(o.o,{tag:`h3`,className:r.cn(`mt-1 text-base tabular-nums leading-none tracking-tight border-none pb-0`),children:p})]})]})]})}O.displayName=`InvoiceHeaderCard`;var k={subtotal:`Subtotal`,tax:`Tax`,total:`Total`},A=`border border-border shadow-sm`,j={left:`text-left justify-start`,right:`text-right justify-end`,center:`text-center justify-center`};function M(e){return[{id:`description`,header:`Item`,width:`minmax(0,1fr)`,cell:e=>(0,_.jsx)(o.s,{className:`truncate`,children:e.description})},{id:`qty`,header:`Qty`,width:`36px`,align:`center`,cell:e=>(0,_.jsx)(o.s,{align:`center`,className:`tabular-nums`,children:e.qty})},{id:`price`,header:`Price`,width:`82px`,align:`right`,cell:t=>(0,_.jsxs)(o.s,{className:`tabular-nums font-mono`,children:[e,t.price.toFixed(2)]})},{id:`total`,header:`Total`,width:`82px`,align:`right`,cell:t=>(0,_.jsxs)(o.s,{weight:`medium`,className:`tabular-nums font-mono`,children:[e,t.total.toFixed(2)]})}]}function N(e,t,n,r){let i=e.reduce((e,t)=>e+t.total,0),a=Math.round(i*t*100)/100,o=Math.round(t*100),s=i+a,c=e=>`${n}${e.toFixed(2)}`;return[{label:r.subtotal,value:c(i)},{label:`${r.tax} (${o}%)`,value:c(a)},{label:r.total,value:c(s),emphasis:`total`}]}function P({items:e,columns:i,footerRows:a,taxRate:s=.2,currency:c,className:l,strings:u}){let f=t.useStrings(k,u),{defaultCurrency:p}=n.l(),m=c??p??`€`,h=i??M(m),g=a??(i?[]:N(e,s,m,f)),v=h.map(e=>e.width??`1fr`).join(` `);return(0,_.jsxs)(`div`,{className:r.cn(`invoice-table--component`,`w-full min-w-0 max-w-full overflow-hidden rounded-lg bg-card`,A,l),children:[(0,_.jsx)(`div`,{className:`grid min-w-0 gap-2 bg-muted/40 px-4 py-3`,style:{gridTemplateColumns:v},children:h.map(e=>(0,_.jsx)(`div`,{className:r.cn(`flex min-w-0`,j[e.align??`left`],e.headerClassName),children:(0,_.jsx)(o.s,{size:`xs`,weight:`medium`,type:`secondary`,className:`min-w-0 truncate uppercase tracking-wider`,children:e.header})},e.id))}),e.map((e,t)=>(0,_.jsx)(`div`,{className:r.cn(`grid min-w-0 gap-2 px-4 py-3`,t%2==1&&`bg-muted/20`),style:{gridTemplateColumns:v},children:h.map(n=>(0,_.jsx)(`div`,{className:r.cn(`flex min-w-0 items-center`,j[n.align??`left`],n.cellClassName),children:n.cell(e,t)},n.id))},t)),g.length>0&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(d.t,{}),(0,_.jsx)(`div`,{className:`space-y-2 px-4 py-3`,children:g.map((e,t)=>(0,_.jsxs)(`div`,{className:r.cn(`flex justify-between`,e.emphasis===`total`&&`pt-2`),children:[(0,_.jsx)(o.s,{type:e.emphasis===`total`?void 0:`secondary`,weight:e.emphasis===`total`?`bold`:`regular`,children:e.label}),(0,_.jsx)(o.s,{weight:e.emphasis===`total`?`bold`:`regular`,className:`tabular-nums font-mono`,children:e.value})]},t))})]})]})}P.displayName=`InvoiceTable`;function ee({value:e,max:t=5,label:n}){return(0,_.jsxs)(`div`,{className:r.cn(`helpers--component`,`flex items-center gap-1`),children:[Array.from({length:t},(t,n)=>(0,_.jsx)(`div`,{className:r.cn(`h-1.5 w-3 rounded-full`,n<e?`bg-foreground/60`:`bg-muted`)},n)),!!n&&(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,className:`ml-1`,children:n})]})}function te({label:e,value:t,badge:n,badgeVariant:r}){return(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,_.jsx)(o.s,{size:`xs`,className:`shrink-0 text-muted-foreground`,children:e}),!!n&&(0,_.jsx)(c.t,{variant:r??`secondary`,children:n}),!!t&&!n&&(0,_.jsx)(o.s,{weight:`semibold`,className:`text-right tabular-nums`,children:t})]})}function ne({title:e,description:t,statusBadges:n,rows:r,secondaryRows:i,scale:a,footerBadges:s,footerText:u,actions:f,className:p}){return(0,_.jsx)(l.t,{title:e,description:t,actions:f,className:p,children:(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:n.map(e=>(0,_.jsx)(c.t,{variant:e.variant,children:e.label},e.label))}),(0,_.jsx)(`div`,{className:`space-y-2`,children:r.map(e=>(0,_.jsx)(te,{...e},e.label))}),!!a&&(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsx)(o.s,{size:`xs`,className:`text-muted-foreground`,children:a.label}),(0,_.jsx)(ee,{value:a.value,max:a.max,label:`${String(a.value)}/${String(a.max??5)}`})]}),!!i&&i.length>0&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(d.t,{}),(0,_.jsx)(`div`,{className:`space-y-2`,children:i.map(e=>(0,_.jsx)(te,{...e},e.label))})]}),(!!s||!!u)&&(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-t pt-2`,children:[!!s&&s.map(e=>(0,_.jsx)(c.t,{variant:e.variant,children:e.label},e.label)),!!u&&(0,_.jsx)(o.s,{size:`xs`,className:`text-muted-foreground`,children:u})]})]})})}ne.displayName=`DenseInfoDashboard`;function re({title:e,description:t,stats:n,items:i,totalLabel:a,totalValue:s,footerBadges:u,footerText:f,actions:p,className:h}){return(0,_.jsx)(l.t,{title:e,description:t,actions:p,className:h,children:(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-3`,children:n.map(e=>(0,_.jsxs)(`div`,{className:`rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5 text-center`,children:[(0,_.jsx)(o.o,{tag:`h4`,className:`border-none pb-0 text-base font-semibold tabular-nums`,children:e.value}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`mt-0.5`,children:e.label}),!!e.trendBadge&&(0,_.jsx)(`div`,{className:`mt-1 flex justify-center`,children:(0,_.jsx)(c.t,{variant:e.trendVariant??`secondary`,children:e.trendBadge})})]},e.label))}),(0,_.jsx)(d.t,{}),(0,_.jsx)(m.o,{children:i.map(e=>(0,_.jsxs)(m.t,{size:`small`,children:[(0,_.jsx)(m.c,{children:(0,_.jsx)(`span`,{className:r.cn(`h-2 w-2 shrink-0 rounded-full`,e.dotColor)})}),(0,_.jsx)(m.r,{children:(0,_.jsxs)(m.u,{bold:!1,className:`gap-2`,children:[e.label,!!e.badge&&(0,_.jsx)(c.t,{variant:e.badgeVariant??`secondary`,children:e.badge})]})}),(0,_.jsx)(m.n,{children:(0,_.jsx)(o.s,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:e.value})})]},e.label))}),!!s&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(d.t,{}),(0,_.jsx)($,{label:a??`Total`,value:s,mono:!0,labelClassName:`text-sm font-bold`,valueClassName:`text-sm font-bold`})]}),(!!u||!!f)&&(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-t pt-2`,children:[!!u&&u.map(e=>(0,_.jsx)(c.t,{variant:e.variant,children:e.label},e.label)),!!f&&(0,_.jsx)(o.s,{size:`xs`,className:`text-muted-foreground`,children:f})]})]})})}re.displayName=`DenseInfoClassification`;function ie({title:e,description:t,headerBadges:n,lineItems:r,totalLabel:i=`Total`,totalAmount:a,footerBadges:s,footerText:u,actions:d,className:f}){return(0,_.jsx)(l.t,{title:e,description:t,actions:d,className:f,children:(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:n.map(e=>(0,_.jsx)(c.t,{variant:e.variant,children:e.label},e.label))}),(0,_.jsx)(m.o,{children:r.map((e,t)=>(0,_.jsxs)(`div`,{children:[t>0&&(0,_.jsx)(m.l,{className:`my-0`}),(0,_.jsxs)(m.t,{size:`small`,children:[(0,_.jsx)(m.r,{children:(0,_.jsxs)(m.u,{className:`gap-2`,children:[e.label,!!e.badge&&(0,_.jsx)(c.t,{variant:e.badgeVariant??`secondary`,children:e.badge})]})}),(0,_.jsx)(m.n,{children:(0,_.jsx)(o.s,{size:`xs`,weight:`semibold`,className:`tabular-nums`,children:e.amount})})]})]},e.label))}),!!a&&(0,_.jsx)($,{className:`rounded-lg bg-muted/50 px-3 py-2.5`,label:i,value:a,mono:!0,labelClassName:`text-sm font-semibold`,valueClassName:`text-sm font-semibold`}),(!!s||!!u)&&(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-t pt-2`,children:[!!s&&s.map(e=>(0,_.jsx)(c.t,{variant:e.variant,children:e.label},e.label)),!!u&&(0,_.jsx)(o.s,{size:`xs`,className:`text-muted-foreground`,children:u})]})]})})}ie.displayName=`DenseInfoFinancial`;function F({title:e,description:t,statusLabel:n,statusVariant:r,metaPairs:i,date:a,priority:s,completedTasks:u,totalTasks:f,actions:p,className:m}){let h=f>0?Math.round(u/f*100):0,g=2*Math.PI*7,y=g-h/100*g;return(0,_.jsx)(l.t,{padding:`default`,actions:p,className:m,children:(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsx)(v.FolderOpen,{className:`h-4 w-4 text-muted-foreground`}),(0,_.jsx)(c.t,{variant:r,dot:!0,children:n})]}),(0,_.jsx)(o.o,{tag:`h5`,className:`font-bold border-none pb-0`,children:e}),!!t&&(0,_.jsx)(o.s,{type:`secondary`,className:`line-clamp-2`,children:t}),!!i&&i.length>0&&(0,_.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:i.map((e,t)=>(0,_.jsxs)(`span`,{className:`flex items-center gap-1`,children:[t>0&&(0,_.jsx)(o.s,{tag:`span`,type:`discrete`,className:`mx-0.5`,children:`•`}),!!e.icon&&(0,_.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,children:e.label})]},e.label))}),(!!a||!!s)&&(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[!!a&&(0,_.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,_.jsx)(v.Calendar,{className:`h-3 w-3 text-muted-foreground`}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,children:a})]}),!!s&&(0,_.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,_.jsx)(v.BarChart3,{className:`h-3 w-3 text-muted-foreground`}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,children:s})]})]}),(0,_.jsx)(d.t,{}),(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 20 20`,className:`shrink-0`,children:[(0,_.jsx)(`circle`,{cx:`10`,cy:`10`,r:`7`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,className:`text-muted/50`}),(0,_.jsx)(`circle`,{cx:`10`,cy:`10`,r:`7`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeDasharray:g,strokeDashoffset:y,strokeLinecap:`round`,className:`text-primary`,transform:`rotate(-90 10 10)`})]}),(0,_.jsxs)(o.s,{size:`xs`,weight:`medium`,children:[u,`/`,f,` Tasks`]})]}),(0,_.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-muted`})]})]})})}F.displayName=`DenseInfoProjectCard`;function I({title:e,description:t,statusBadges:n,score:i,scoreLevel:a,scoreFilled:s,scoreTotal:u=10,rows:f,footerBadges:p,actions:m,className:h}){let g=a===`good`?`bg-success`:a===`medium`?`bg-warning`:`bg-destructive`;return(0,_.jsx)(l.t,{title:e,description:t,actions:m,className:h,children:(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:n.map(e=>(0,_.jsx)(c.t,{variant:e.variant,children:e.label},e.label))}),(0,_.jsx)(`div`,{className:`flex items-center justify-center py-2`,children:(0,_.jsx)(o.o,{tag:`h2`,className:`text-base font-bold tabular-nums border-none pb-0`,children:String(i)})}),(0,_.jsx)(`div`,{className:`flex items-center justify-center gap-1`,children:Array.from({length:u},(e,t)=>(0,_.jsx)(`div`,{className:r.cn(`h-5 w-2 rounded-sm`,t<s?g:`bg-muted`)},t))}),(0,_.jsx)(d.t,{}),(0,_.jsx)(`div`,{className:`space-y-2`,children:f.map(e=>(0,_.jsx)($,{label:e.label,value:e.value,mono:!0,labelClassName:`text-xs text-muted-foreground`,valueClassName:`text-sm font-semibold text-right`},e.label))}),!!p&&p.length>0&&(0,_.jsx)(`div`,{className:`flex flex-wrap items-center gap-2 border-t pt-2`,children:p.map(e=>(0,_.jsx)(c.t,{variant:e.variant,children:e.label},e.label))})]})})}I.displayName=`DenseInfoScoreCard`;var L={sm:`gap-1 rounded-full px-2 py-0.5`,md:`gap-1.5 rounded-full px-2.5 py-1`,base:`gap-1.5 rounded-full px-2.5 py-1`,lg:`gap-1.5 rounded-full px-3 py-1`},ae={sm:`xxs`,md:`xxs`,base:`xxs`,lg:`xs`},oe={sm:`xxs`,md:`xs`,base:`xs`,lg:`xs`},se={sm:`xxs`,md:`xxs`,base:`xxs`,lg:`xxs`};function R({metrics:e,className:t}){return(0,_.jsx)(`div`,{className:r.cn(`inline-metric--component`,`flex flex-wrap gap-1.5`,t),children:e.map(e=>{let t=e.size??`base`;return(0,_.jsxs)(`span`,{className:r.cn(`inline-flex items-center bg-card ring-1 ring-border/60`,L[t]??L.base),children:[(0,_.jsx)(o.s,{tag:`span`,size:ae[t]??`xxs`,type:`secondary`,children:e.label}),(0,_.jsx)(o.s,{tag:`span`,size:oe[t]??`xs`,weight:`semibold`,className:`tabular-nums`,children:e.value}),(0,_.jsxs)(o.s,{tag:`span`,size:se[t]??`xxs`,weight:`medium`,className:r.cn(`tabular-nums inline-flex items-center gap-0.5 rounded-full px-1`,e.up?`bg-success/10 text-success`:`bg-destructive/10 text-destructive`),children:[e.up?`↑`:`↓`,e.change]})]},e.label)})})}R.displayName=`InlineMetricBadge`;var ce=`ring-1 ring-border/50 shadow-sm`;function z({kpis:e,className:t}){return(0,_.jsx)(`div`,{className:r.cn(`mini-kpi--component`,`inline-flex items-center divide-x divide-border/50 rounded-xl bg-card px-2 py-2`,ce,t),children:e.map(e=>(0,_.jsxs)(`div`,{className:`flex flex-col items-center px-4`,children:[(0,_.jsx)(o.s,{weight:`bold`,className:`tabular-nums`,children:e.value}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,className:`text-xs`,children:e.label})]},e.label))})}z.displayName=`MiniKpiRow`;var B={select:`Select resource`,remove:`Remove resource`,emptyTitle:`No resource selected`,emptyDescription:`Choose a resource to continue.`};function V({resource:e,getKey:n,getTitle:a,getSubtitle:s,getMetadata:c,getBadges:u,getImageUrl:d,getIcon:f,renderResource:p,onSelect:m,onRemove:g,title:y,description:b,emptyTitle:x,emptyDescription:S,selectLabel:C,removeLabel:w,actions:T,padding:E,surface:D,className:O,contentClassName:k,strings:A}){let j=t.useStrings(B,A),M=C??j.select,N=w??j.remove,P=typeof N==`string`?N:j.remove;return(0,_.jsx)(l.t,{"data-component":`resource-selector-card`,"data-slot":`resource-selector-card`,title:y,description:b,headerAction:T??(0,_.jsxs)(`div`,{className:`flex w-full flex-wrap items-center justify-end gap-space-sm sm:w-auto sm:gap-space-md`,children:[!!e&&!!g&&(0,_.jsxs)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`small`,"aria-label":P,onClick:()=>g(e),children:[(0,_.jsx)(v.X,{className:`size-icon`}),(0,_.jsx)(`span`,{className:`hidden sm:inline`,children:N})]}),!!m&&(0,_.jsxs)(i.t,{type:`button`,variant:`secondary`,size:`small`,className:`min-w-0 max-w-full`,onClick:m,children:[(0,_.jsx)(v.Plus,{className:`size-icon`}),(0,_.jsx)(`span`,{className:`truncate`,children:M})]})]}),headerClassName:r.cn(`resource-selector-card--header flex-wrap`,`[&>div:first-child]:basis-full [&>div:last-child]:w-full [&>div:last-child]:justify-end`,`sm:[&>div:first-child]:basis-auto sm:[&>div:last-child]:w-auto`),padding:E,surface:D,className:r.cn(`resource-selector-card--component`,O),contentClassName:r.cn(`resource-selector-card--content`,k),children:e?(0,_.jsx)(`div`,{"data-resource-key":n(e),className:`resource-selector-card--selected min-w-0`,children:p?p(e):(0,_.jsx)(h.u,{title:a(e),subtitle:s?.(e),metadata:c?.(e),badges:u?.(e),imageUrl:d?.(e),icon:f?.(e),mediaClassName:`size-avatar-sm`,contentClassName:`gap-space-2xs`,subtitleClassName:`text-xs`})}):(0,_.jsx)(`div`,{className:`resource-selector-card--empty min-w-0`,children:(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsx)(o.s,{weight:`semibold`,children:x??j.emptyTitle}),(0,_.jsx)(o.s,{size:`xs`,type:`secondary`,className:`mt-space-2xs`,children:S??j.emptyDescription})]})})})}V.displayName=`ResourceSelectorCard`;var H={title:`Nothing here yet`,description:`Once data lands, it will show up in this view.`,ariaLabel:`Empty state`},le={small:`py-empty-state-y-small`,default:`py-empty-state-y`},ue=e=>e===`small`||e==="default"?e:e===`compact`?`small`:`default`,de={none:`default`,icon:`icon`,"icon-soft":`icon`,illustration:`default`},fe={none:void 0,icon:void 0,"icon-soft":`bg-muted/40 text-muted-foreground`,illustration:`mb-4`},U=(0,g.forwardRef)(function({title:e,description:n,media:i,mediaVariant:a=`none`,renderMedia:s,actions:c,footer:l,padding:d=`default`,border:f=!1,className:p,strings:m,ariaLabel:h},g){let v=t.useStrings(H,m),y=e??v.title,b=n===!1?null:n??v.description,x=s?s({mediaVariant:a}):i,S=!!x;return(0,_.jsxs)(u.s,{ref:g,role:`status`,"aria-label":h??v.ariaLabel,className:r.cn(`empty-state--component`,le[ue(d)],f?`border border-dashed`:`border-0`,p),children:[(0,_.jsxs)(u.u,{children:[!!S&&(0,_.jsx)(u.d,{variant:de[a],className:fe[a],children:x}),(0,_.jsx)(o.o,{tag:`h3`,className:`border-0 pb-0 text-base`,"data-slot":`empty-title`,children:y}),!!b&&(0,_.jsx)(o.s,{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:b})]}),(!!c||!!l)&&(0,_.jsxs)(u.c,{children:[!!c&&(0,_.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:c}),!!l&&(0,_.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:l})]})]})});U.displayName=`EmptyState`;function W({className:e}){return(0,_.jsxs)(`div`,{className:r.cn(`relative h-24 w-32`,e),"aria-hidden":`true`,children:[(0,_.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,_.jsx)(`div`,{className:`bg-muted h-2 w-12 rounded`}),(0,_.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-10 rounded`}),(0,_.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-9 rounded`})]}),(0,_.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,_.jsx)(`div`,{className:`bg-muted h-2 w-12 rounded`}),(0,_.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-10 rounded`}),(0,_.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-9 rounded`}),(0,_.jsxs)(`div`,{className:`mt-auto flex items-center gap-1`,children:[(0,_.jsx)(`div`,{className:`bg-success size-1.5 rounded-full`}),(0,_.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-8 rounded`})]})]})]})}W.displayName=`DocumentStackIllustration`;function G({className:e}){return(0,_.jsxs)(`div`,{className:r.cn(`relative h-24 w-32`,e),"aria-hidden":`true`,children:[(0,_.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,_.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,_.jsx)(`path`,{d:`M3 8l3 3 7-7`})})}),(0,_.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,_.jsx)(`div`,{className:`bg-muted/30 h-3 rounded-t-lg`}),(0,_.jsxs)(`div`,{className:`flex flex-1 items-center justify-between px-3`,children:[(0,_.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,_.jsx)(`div`,{className:`bg-muted/60 h-1.5 w-12 rounded`}),(0,_.jsx)(`div`,{className:`bg-muted/40 h-1.5 w-8 rounded`})]}),(0,_.jsx)(`div`,{className:`bg-muted/40 size-3 rounded-full`})]})]})]})}G.displayName=`InboxCleanIllustration`;function K({className:e}){return(0,_.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,_.jsx)(v.Search,{className:`size-8 text-muted-foreground`})})}K.displayName=`SearchGlassIllustration`;function q({className:e}){return(0,_.jsxs)(`div`,{className:r.cn(`relative h-24 w-52`,e),"aria-hidden":`true`,children:[(0,_.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,_.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,_.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,_.jsx)(`div`,{className:`bg-muted size-8 shrink-0 rounded`}),(0,_.jsxs)(`div`,{className:`flex flex-1 flex-col gap-1.5`,children:[(0,_.jsx)(`div`,{className:`bg-muted h-2.5 w-3/4 rounded`}),(0,_.jsx)(`div`,{className:`bg-muted/60 h-2 w-1/2 rounded`})]})]}),(0,_.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`})]})}q.displayName=`StackedCardsIllustration`;function J({className:e}){return(0,_.jsxs)(`div`,{className:r.cn(`relative flex h-24 w-32 items-center justify-center`,e),"aria-hidden":`true`,children:[(0,_.jsx)(`div`,{className:`bg-muted/70 border-border absolute left-2 size-12 rounded-full border-2`}),(0,_.jsx)(`div`,{className:`bg-muted border-border z-10 size-14 rounded-full border-2 shadow-sm`}),(0,_.jsx)(`div`,{className:`bg-muted/60 border-border absolute right-2 size-10 rounded-full border-2`})]})}J.displayName=`UsersCircleIllustration`;var pe={copySuccess:`Email copied to clipboard`};function Y({email:e,copyable:i=!0,copySuccessMessage:a,emptyLabel:s=`—`,clickable:c=!0,strings:l,size:u,type:d=`main`,tag:p=`span`,className:m,...h}){let{defaultTextSize:g}=n.p(),v=u??g??`sm`,y=t.useStrings(t.useStrings(pe,a?{copySuccess:a}:void 0),l);if(!e||e.trim().length===0)return(0,_.jsx)(o.s,{size:v,type:`secondary`,tag:p,className:r.cn(`email-display--component`,m),...h,children:s});let b=(0,_.jsx)(o.s,{size:v,type:d,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(i){let t=(0,_.jsx)(f.t,{value:e,displayValue:b,successMessage:y.copySuccess,className:`-mx-0`});return c?(0,_.jsx)(`a`,{href:`mailto:${e}`,className:`inline-flex items-center no-underline`,onClick:e=>e.stopPropagation(),children:t}):t}return c?(0,_.jsx)(`a`,{href:`mailto:${e}`,className:`inline-flex items-center no-underline`,children:b}):b}Y.displayName=`EmailDisplay`;var me={copySuccess:`Phone number copied to clipboard`};function he(e){return e.replace(/[\s().-]/g,``)}function ge({phone:e,copyable:i=!0,copySuccessMessage:a,emptyLabel:s=`—`,clickable:c=!0,strings:l,size:u,type:d=`main`,tag:p=`span`,className:m,...h}){let{defaultTextSize:g}=n.p(),v=u??g??`sm`,y=t.useStrings(t.useStrings(me,a?{copySuccess:a}:void 0),l);if(!e||e.trim().length===0)return(0,_.jsx)(o.s,{size:v,type:`secondary`,tag:p,className:r.cn(`phone-display--component`,m),...h,children:s});let b=(0,_.jsx)(o.s,{size:v,type:d,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(i){let t=(0,_.jsx)(f.t,{value:e,displayValue:b,successMessage:y.copySuccess,className:`-mx-0`});return c?(0,_.jsx)(`a`,{href:`tel:${he(e)}`,className:`inline-flex items-center no-underline`,onClick:e=>e.stopPropagation(),children:t}):t}return c?(0,_.jsx)(`a`,{href:`tel:${he(e)}`,className:`inline-flex items-center no-underline`,children:b}):b}ge.displayName=`PhoneDisplay`;var _e={copySuccess:`URL copied to clipboard`,httpWarning:`This URL uses HTTP which is not secure`};function ve(e){try{return new URL(e).protocol===`http:`}catch{return e.toLowerCase().startsWith(`http://`)}}function ye(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 be({url:e,copyable:i=!0,copySuccessMessage:s,emptyLabel:c=`—`,clickable:l=!0,truncate:u=!1,maxLength:d=50,showExternalIcon:p=!0,httpWarningMessage:m,strings:h,size:g,type:y=`main`,tag:b=`span`,className:x,...S}){let{defaultTextSize:C}=n.p(),w=g??C??`sm`,T=t.useStrings(t.useStrings(_e,s||m?{copySuccess:s,httpWarning:m}:void 0),h);if(!e||e.trim().length===0)return(0,_.jsx)(o.s,{size:w,type:`secondary`,tag:b,className:r.cn(`url-display--component`,x),...S,children:c});let E=ve(e),D=ye(e,u,d),O=u&&e.length>d,k=(0,_.jsxs)(o.s,{size:w,type:y,tag:`span`,className:`inline-flex items-center gap-1.5`,children:[!!E&&(0,_.jsxs)(a.t,{children:[(0,_.jsx)(a.i,{render:e=>{let{type:t,disabled:n,className:i,...a}=e;return(0,_.jsx)(`span`,{...a,tabIndex:0,role:`img`,"aria-label":T.httpWarning,className:r.cn(`inline-flex items-center text-warning`,i),children:(0,_.jsx)(v.ShieldAlert,{className:`size-3.5`,"aria-hidden":`true`})})}}),(0,_.jsx)(a.n,{side:`top`,className:`max-w-xs`,children:(0,_.jsx)(o.s,{size:`xs`,children:T.httpWarning})})]}),(0,_.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,_.jsx)(v.ExternalLink,{className:`size-3 text-muted-foreground`})]});if(i){let t=(0,_.jsx)(f.t,{value:e,displayValue:k,successMessage:T.copySuccess,className:r.cn(`-mx-0`,x)});return l?(0,_.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,_.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center no-underline`,children:k}):k}be.displayName=`UrlDisplay`;var xe={formatInfoAriaLabel:e=>`${e} info`,infoFallback:`Info`},Se={1:`grid-cols-1`,2:`grid-cols-1 sm:grid-cols-2`,3:`grid-cols-1 sm:grid-cols-2 lg:grid-cols-3`,4:`grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`},Ce={start:`justify-start`,end:`justify-end`,center:`justify-center`,between:`justify-between`,around:`justify-around`,evenly:`justify-evenly`},X={start:`items-start`,center:`items-center`,end:`items-end`,baseline:`items-baseline`},Z=(e,t)=>e.id?e.id:`metadata-${typeof e.label==`string`?e.label:`${t}`}-${t}`;function Q({triggerProps:e,ariaLabel:t}){let{className:n,...a}=e;return(0,_.jsx)(i.t,{...a,type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,className:r.cn(`metadata-list--info-trigger -mx-space-2xs inline-flex size-avatar-sm shrink-0 items-center justify-center rounded-sm`,`text-muted-foreground transition-colors hover:text-foreground`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,n),"aria-label":t,children:(0,_.jsx)(v.Info,{className:`size-icon-sm cursor-help`})})}function we({items:e,columns:n=2,dense:i=!1,emptyLabel:s=`—`,title:c,titleSeparator:l=!1,className:u,gapClassName:f,labelClassName:p,valueClassName:m,descriptionClassName:h,layout:v=`vertical`,justify:y=`start`,align:b=`center`,separator:x=`: `,itemSeparator:S=!1,wrap:C=!0,strings:w}){let T=t.useStrings(xe,w),E=g.default.useMemo(()=>e.filter(Boolean),[e]);if(g.default.useEffect(()=>{},[v,E]),E.length===0)return null;let D=Se[n]??Se[2],O=f??(i?`gap-space-md`:`gap-space-xl`),k=`metadata--field text-left text-sm font-semibold text-foreground`,A=i?`text-xs`:`text-sm`,j=`font-medium text-xs text-muted-foreground uppercase tracking-wide`,M=c!=null,N=M&&l;if(v===`horizontal`){let e=Ce[y]??Ce.start,t=X[b]??X.center,n=typeof S==`string`?S:S?` | `:``,l=i?`gap-space-sm`:`gap-space-md`,f=C?`flex-wrap`:`flex-nowrap`;return(0,_.jsxs)(`div`,{className:r.cn(`metadata-list--component`,`metadata-list-container`,u),children:[!!M&&(0,_.jsx)(o.o,{tag:`h6`,className:r.cn(`mb-space-sm`,j),children:c}),!!N&&(0,_.jsx)(d.t,{className:`mb-2`}),(0,_.jsx)(`div`,{className:r.cn(`flex`,f,e,t,l),children:E.map((e,t)=>{let c=Z(e,t),l=e.emptyLabel??s,u=e.value===null||e.value===void 0,d=e.value??l,f=e.icon,h=e.tooltip!==null&&e.tooltip!==void 0,v=typeof e.render==`function`,y=n&&t<E.length-1;return(0,_.jsxs)(g.default.Fragment,{children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-space-md`,children:[!!f&&(0,_.jsx)(f,{className:r.cn(`flex-shrink-0`,i?`size-icon-sm`:`size-icon`,`text-muted-foreground`)}),(0,_.jsx)(o.s,{size:`inherit`,type:`main`,weight:`semibold`,className:r.cn(`whitespace-nowrap`,k,p),children:e.label}),!!h&&(0,_.jsxs)(a.t,{children:[(0,_.jsx)(a.i,{render:t=>(0,_.jsx)(Q,{triggerProps:t,ariaLabel:typeof e.label==`string`?T.formatInfoAriaLabel(e.label):T.infoFallback})}),(0,_.jsx)(a.n,{side:`top`,align:`start`,className:`max-w-xs`,children:(0,_.jsx)(o.s,{type:`inverse`,size:`xs`,children:e.tooltip})})]}),(0,_.jsx)(o.s,{size:`inherit`,type:`secondary`,children:x}),v?e.render?.(e):(0,_.jsx)(o.s,{className:r.cn(A,`leading-tight`,u?`text-foreground/50`:`text-foreground`,m),children:d})]}),!!y&&(0,_.jsx)(o.s,{size:`inherit`,type:`secondary`,children:n})]},c)})})]})}if(v===`rows`){let e=i?`py-row-y-sm`:`py-row-y`;return(0,_.jsxs)(`div`,{className:r.cn(`metadata-list--component`,`metadata-list-container`,u),children:[!!M&&(0,_.jsx)(o.o,{tag:`h6`,className:r.cn(`mb-space-md`,j),children:c}),!!N&&(0,_.jsx)(d.t,{className:`mb-2`}),(0,_.jsx)(`dl`,{className:`divide-y divide-border/50`,children:E.map((t,n)=>{let c=Z(t,n),l=t.emptyLabel??s,u=t.value===null||t.value===void 0,d=t.value??l,f=t.icon,g=t.tooltip!==null&&t.tooltip!==void 0,v=typeof t.render==`function`;return(0,_.jsxs)(`div`,{className:r.cn(`grid items-baseline gap-x-space-xl gap-y-space-sm grid-cols-[minmax(9rem,1fr)_2fr]`,e),children:[(0,_.jsxs)(`dt`,{className:`flex items-center gap-space-sm min-w-0`,children:[!!f&&(0,_.jsx)(f,{className:r.cn(`flex-shrink-0 text-muted-foreground`,i?`size-icon-sm`:`size-icon`)}),(0,_.jsx)(o.s,{type:`main`,weight:`semibold`,className:r.cn(`truncate`,k,p),children:t.label}),!!g&&(0,_.jsxs)(a.t,{children:[(0,_.jsx)(a.i,{render:e=>(0,_.jsx)(Q,{triggerProps:e,ariaLabel:typeof t.label==`string`?T.formatInfoAriaLabel(t.label):T.infoFallback})}),(0,_.jsx)(a.n,{side:`top`,align:`start`,className:`max-w-xs`,children:(0,_.jsx)(o.s,{type:`inverse`,size:`xs`,children:t.tooltip})})]})]}),(0,_.jsxs)(`dd`,{className:`min-w-0`,children:[v?t.render?.(t):(0,_.jsx)(o.s,{className:r.cn(A,`break-words leading-tight`,u?`text-foreground/50`:`text-foreground`,m),children:d}),!!t.description&&(0,_.jsx)(o.s,{size:`inherit`,type:`secondary`,className:r.cn(`mt-space-xs text-xs leading-snug`,h),children:t.description})]})]},c)})})]})}return(0,_.jsxs)(`div`,{className:r.cn(`metadata-list--component`,`metadata-list-container`,u),children:[!!M&&(0,_.jsx)(o.o,{tag:`h6`,className:r.cn(`mb-space-sm`,j),children:c}),!!N&&(0,_.jsx)(d.t,{className:`mb-2`}),(0,_.jsx)(`div`,{className:r.cn(`grid`,D,O),children:E.map((e,t)=>{let n=Z(e,t),c=e.emptyLabel??s,l=e.value===null||e.value===void 0,u=e.value??c,d=e.icon,f=e.tooltip!==null&&e.tooltip!==void 0,g=typeof e.render==`function`;return(0,_.jsxs)(`div`,{className:r.cn(`grid min-w-0`,`gap-space-sm`),children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-space-sm`,children:[!!d&&(0,_.jsx)(d,{className:r.cn(`flex-shrink-0`,i?`size-icon-sm`:`size-icon`,`text-muted-foreground`)}),(0,_.jsx)(o.s,{size:`inherit`,type:`main`,weight:`semibold`,className:r.cn(k,p),children:e.label}),!!f&&(0,_.jsxs)(a.t,{children:[(0,_.jsx)(a.i,{render:t=>(0,_.jsx)(Q,{triggerProps:t,ariaLabel:typeof e.label==`string`?T.formatInfoAriaLabel(e.label):T.infoFallback})}),(0,_.jsx)(a.n,{side:`top`,align:`start`,className:`max-w-xs`,children:(0,_.jsx)(o.s,{type:`inverse`,size:`xs`,children:e.tooltip})})]})]}),g?e.render?.(e):(0,_.jsx)(o.s,{className:r.cn(A,`leading-tight`,l?`text-foreground/50`:`text-foreground`,m),children:u}),!!e.description&&(0,_.jsx)(o.s,{size:`inherit`,type:`secondary`,className:r.cn(`text-xs leading-snug`,h),children:e.description})]},n)})})]})}we.displayName=`MetadataList`;function $({label:e,value:t,layout:n=`between`,mono:i=!1,className:a,labelClassName:s,valueClassName:c}){return n===`stacked`?(0,_.jsxs)(`div`,{className:r.cn(`inline-stat--component`,`flex flex-col gap-space-2xs`,a),children:[(0,_.jsx)(o.s,{tag:`span`,size:`inherit`,type:`secondary`,className:r.cn(`text-xs leading-tight`,s),children:e}),(0,_.jsx)(o.s,{tag:`span`,size:`inherit`,className:r.cn(`text-sm leading-snug`,i&&`tabular-nums`,c),children:t})]}):(0,_.jsxs)(`div`,{className:r.cn(`inline-stat--component flex items-center gap-space-md`,n===`between`?`justify-between`:`justify-start`,a),children:[(0,_.jsx)(o.s,{tag:`span`,size:`inherit`,type:`secondary`,className:r.cn(`text-xs leading-tight`,s),children:e}),(0,_.jsx)(o.s,{tag:`span`,size:`inherit`,className:r.cn(`text-sm leading-snug`,i&&`tabular-nums`,c),children:t})]})}$.displayName=`InlineStat`;var Te=`—`,Ee=(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 De({value:e,align:t=`right`,locale:i,formatOptions:a,emptyLabel:s=Te,size:c,weight:l,type:u,className:d,...f}){let{defaultTextSize:p}=n.p(),m=c??p??`sm`,h=Ee(e,i,a),g=t===`right`?`text-right`:t===`center`?`text-center`:`text-left`;return h===null?(0,_.jsx)(o.s,{size:m,weight:l,type:u??`secondary`,className:r.cn(`numeric-value--component`,`tabular-nums`,g,d),...f,children:s}):(0,_.jsx)(o.s,{size:m,weight:l,type:u,className:r.cn(`tabular-nums`,g,d),...f,children:h})}De.displayName=`NumericValue`;var Oe={small:{avatar:`size-avatar-sm`,gap:`gap-space-sm`,nameClass:`text-xs`,subtitleClass:`text-xs`},default:{avatar:`size-avatar`,gap:`gap-space-md`,nameClass:`text-sm`,subtitleClass:`text-xs`}};function ke(e){return e===`small`||e==="default"?e:e===`xs`||e===`sm`?`small`:`default`}function Ae({name:e,subtitle:t,avatarUrl:n,avatarAlt:i,initials:a,avatar:s,trailing:c,size:l=`default`,className:u}){let d=Oe[ke(l)],f=s??(0,_.jsxs)(p.t,{className:d.avatar,children:[!!n&&(0,_.jsx)(p.o,{src:n,alt:i??(typeof e==`string`?e:void 0)}),!!a&&(0,_.jsx)(p.r,{children:a})]});return(0,_.jsxs)(`div`,{className:r.cn(`user-cell--component`,`flex items-center`,d.gap,u),children:[f,(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(o.s,{size:`inherit`,weight:`semibold`,className:r.cn(`truncate leading-snug`,d.nameClass),children:e}),!!t&&(0,_.jsx)(o.s,{size:`inherit`,type:`secondary`,className:r.cn(`truncate leading-tight`,d.subtitleClass),children:t})]}),!!c&&(0,_.jsx)(`div`,{className:`shrink-0`,children:c})]})}Ae.displayName=`UserCell`;function je({title:e,description:t,badge:n,action:i,dense:a=!1,className:s}){return(0,_.jsxs)(`div`,{className:r.cn(`section-header--component`,`flex items-start justify-between`,a?`gap-2`:`gap-3`,s),children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsxs)(`div`,{className:r.cn(`flex items-center`,a?`gap-1.5`:`gap-2`),children:[(0,_.jsx)(o.s,{size:a?`xs`:`sm`,weight:`semibold`,className:`truncate`,children:e}),!!n&&(0,_.jsx)(`span`,{className:`shrink-0`,children:n})]}),!!t&&(0,_.jsx)(o.s,{size:a?`xxs`:`xs`,type:`secondary`,className:a?`mt-0.5`:`mt-1`,children:t})]}),!!i&&(0,_.jsx)(`div`,{className:`shrink-0`,children:i})]})}je.displayName=`SectionHeader`,Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return I}}),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 V}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return b}}),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 Ae}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return R}});
|
|
2
|
+
//# sourceMappingURL=data-display-DRa39LH8.cjs.map
|