admin-ui-starter-kit 0.6.7 → 0.6.9
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/component-library-rules/SKILL.md +2 -2
- package/.agents/skills/component-library-rules/references/components/INDEX.json +15 -1
- package/.agents/skills/component-library-rules/references/components/INDEX.md +15 -1
- package/.agents/skills/component-library-rules/references/components/base__boolean-indicator.md +33 -0
- package/.agents/skills/component-library-rules/references/components/base__cards.md +3 -2
- package/.agents/skills/component-library-rules/references/components/base__collapsible.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__conditional-rendering.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__date-block.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__dialog.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__display-utilities.md +74 -103
- package/.agents/skills/component-library-rules/references/components/base__item.md +4 -3
- package/.agents/skills/component-library-rules/references/components/base__money-display.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__notification-banner.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__placeholder-pattern.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__progress.md +33 -0
- package/.agents/skills/component-library-rules/references/components/base__qr-code.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__separator.md +33 -0
- package/.agents/skills/component-library-rules/references/components/base__skeleton.md +55 -0
- package/.agents/skills/component-library-rules/references/components/base__throttle-alert.md +39 -0
- package/.agents/skills/component-library-rules/references/components/base__visually-hidden.md +39 -0
- package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +2 -1
- package/.agents/skills/component-library-rules/references/ui-provider.md +2 -2
- package/dist/_shared/accordion-8B4OFqiT.cjs +2 -0
- package/dist/_shared/accordion-8B4OFqiT.cjs.map +1 -0
- package/dist/_shared/accordion-DlpTSZ3p.js +135 -0
- package/dist/_shared/accordion-DlpTSZ3p.js.map +1 -0
- package/dist/_shared/action-menu-BYrYdpkR.cjs +2 -0
- package/dist/_shared/action-menu-BYrYdpkR.cjs.map +1 -0
- package/dist/_shared/action-menu-CYwMZX-b.js +96 -0
- package/dist/_shared/action-menu-CYwMZX-b.js.map +1 -0
- package/dist/_shared/ai-artifact-Cv8VBibf.cjs +3 -0
- package/dist/_shared/ai-artifact-Cv8VBibf.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DwfXQuh4.js +1099 -0
- package/dist/_shared/ai-artifact-DwfXQuh4.js.map +1 -0
- package/dist/_shared/auth-Cz5ci18c.cjs +2 -0
- package/dist/_shared/auth-Cz5ci18c.cjs.map +1 -0
- package/dist/_shared/auth-DDWsgFUL.js +643 -0
- package/dist/_shared/auth-DDWsgFUL.js.map +1 -0
- package/dist/_shared/badge-C65rt1M9.cjs +2 -0
- package/dist/_shared/badge-C65rt1M9.cjs.map +1 -0
- package/dist/_shared/badge-r8ae66Vd.js +110 -0
- package/dist/_shared/badge-r8ae66Vd.js.map +1 -0
- package/dist/_shared/button-Be2ayMxF.js +192 -0
- package/dist/_shared/button-Be2ayMxF.js.map +1 -0
- package/dist/_shared/button-CfQtOuBK.cjs +2 -0
- package/dist/_shared/button-CfQtOuBK.cjs.map +1 -0
- package/dist/_shared/buttons-DABiSx6N.cjs +2 -0
- package/dist/_shared/buttons-DABiSx6N.cjs.map +1 -0
- package/dist/_shared/buttons-DYQqQPpk.js +137 -0
- package/dist/_shared/buttons-DYQqQPpk.js.map +1 -0
- package/dist/_shared/card-radio-group-DKhZhBFV.cjs +2 -0
- package/dist/_shared/card-radio-group-DKhZhBFV.cjs.map +1 -0
- package/dist/_shared/card-radio-group-DRjmLN5s.js +150 -0
- package/dist/_shared/card-radio-group-DRjmLN5s.js.map +1 -0
- package/dist/_shared/cards-BJctT9KD.js +428 -0
- package/dist/_shared/cards-BJctT9KD.js.map +1 -0
- package/dist/_shared/cards-m03XN10f.cjs +2 -0
- package/dist/_shared/cards-m03XN10f.cjs.map +1 -0
- package/dist/_shared/combobox-BdBpeD3C.cjs +2 -0
- package/dist/_shared/combobox-BdBpeD3C.cjs.map +1 -0
- package/dist/_shared/combobox-D9tU_83-.js +954 -0
- package/dist/_shared/combobox-D9tU_83-.js.map +1 -0
- package/dist/_shared/command-BbJB0pjP.cjs +2 -0
- package/dist/_shared/command-BbJB0pjP.cjs.map +1 -0
- package/dist/_shared/command-IP2wy_HN.js +39 -0
- package/dist/_shared/command-IP2wy_HN.js.map +1 -0
- package/dist/_shared/comments-DAzpeuQq.cjs +2 -0
- package/dist/_shared/comments-DAzpeuQq.cjs.map +1 -0
- package/dist/_shared/comments-DzZaKP9x.js +952 -0
- package/dist/_shared/comments-DzZaKP9x.js.map +1 -0
- package/dist/_shared/copyable-BJYx2SlN.js +38 -0
- package/dist/_shared/copyable-BJYx2SlN.js.map +1 -0
- package/dist/_shared/copyable-DiDEjp8Z.cjs +2 -0
- package/dist/_shared/copyable-DiDEjp8Z.cjs.map +1 -0
- package/dist/_shared/data-display-DQUUEzCx.cjs +2 -0
- package/dist/_shared/data-display-DQUUEzCx.cjs.map +1 -0
- package/dist/_shared/data-display-LlvMEFTK.js +1878 -0
- package/dist/_shared/data-display-LlvMEFTK.js.map +1 -0
- package/dist/_shared/date-picker-CrC-lHyF.cjs +2 -0
- package/dist/_shared/date-picker-CrC-lHyF.cjs.map +1 -0
- package/dist/_shared/date-picker-DbYBek-b.js +1361 -0
- package/dist/_shared/date-picker-DbYBek-b.js.map +1 -0
- package/dist/_shared/date-pickers-9AU8YQK2.js +329 -0
- package/dist/_shared/date-pickers-9AU8YQK2.js.map +1 -0
- package/dist/_shared/date-pickers-DUEwCWig.cjs +2 -0
- package/dist/_shared/date-pickers-DUEwCWig.cjs.map +1 -0
- package/dist/_shared/display-BqoPOdof.cjs +2 -0
- package/dist/_shared/display-BqoPOdof.cjs.map +1 -0
- package/dist/_shared/display-CQoSwU74.js +986 -0
- package/dist/_shared/display-CQoSwU74.js.map +1 -0
- package/dist/_shared/forms-CNh-S9FK.cjs +2 -0
- package/dist/_shared/forms-CNh-S9FK.cjs.map +1 -0
- package/dist/_shared/forms-DIz3SCA9.js +3534 -0
- package/dist/_shared/forms-DIz3SCA9.js.map +1 -0
- package/dist/_shared/header-Bs61tQla.js +447 -0
- package/dist/_shared/header-Bs61tQla.js.map +1 -0
- package/dist/_shared/header-D01oOxna.cjs +2 -0
- package/dist/_shared/header-D01oOxna.cjs.map +1 -0
- package/dist/_shared/hooks-ACnpaIli.js +95 -0
- package/dist/_shared/hooks-ACnpaIli.js.map +1 -0
- package/dist/_shared/hooks-B7khuHkk.cjs +2 -0
- package/dist/_shared/hooks-B7khuHkk.cjs.map +1 -0
- package/dist/_shared/input-CzJzVyQ0.js +182 -0
- package/dist/_shared/input-CzJzVyQ0.js.map +1 -0
- package/dist/_shared/input-Dvvmn96E.cjs +2 -0
- package/dist/_shared/input-Dvvmn96E.cjs.map +1 -0
- package/dist/_shared/item-CVjjpHQd.js +226 -0
- package/dist/_shared/item-CVjjpHQd.js.map +1 -0
- package/dist/_shared/item-ChHblHhR.cjs +2 -0
- package/dist/_shared/item-ChHblHhR.cjs.map +1 -0
- package/dist/_shared/layout-CGi5w1mo.js +268 -0
- package/dist/_shared/layout-CGi5w1mo.js.map +1 -0
- package/dist/_shared/layout-ccVwjUG8.cjs +2 -0
- package/dist/_shared/layout-ccVwjUG8.cjs.map +1 -0
- package/dist/_shared/mentions-Cg_4vFxd.cjs +2 -0
- package/dist/_shared/mentions-Cg_4vFxd.cjs.map +1 -0
- package/dist/_shared/mentions-Ci9RFTfw.js +506 -0
- package/dist/_shared/mentions-Ci9RFTfw.js.map +1 -0
- package/dist/_shared/money-display-BFk9Gu21.cjs +2 -0
- package/dist/_shared/money-display-BFk9Gu21.cjs.map +1 -0
- package/dist/_shared/money-display-DpuLnsK2.js +198 -0
- package/dist/_shared/money-display-DpuLnsK2.js.map +1 -0
- package/dist/_shared/navigation-C1QN2-Vq.cjs +2 -0
- package/dist/_shared/navigation-C1QN2-Vq.cjs.map +1 -0
- package/dist/_shared/navigation-CMrLO8v5.js +436 -0
- package/dist/_shared/navigation-CMrLO8v5.js.map +1 -0
- package/dist/_shared/overlays-BJLczwpz.js +735 -0
- package/dist/_shared/overlays-BJLczwpz.js.map +1 -0
- package/dist/_shared/overlays-DbaPLT67.cjs +2 -0
- package/dist/_shared/overlays-DbaPLT67.cjs.map +1 -0
- package/dist/_shared/popover-menu-D_t6rCvN.cjs +2 -0
- package/dist/_shared/popover-menu-D_t6rCvN.cjs.map +1 -0
- package/dist/_shared/popover-menu-f2O6R_27.js +93 -0
- package/dist/_shared/popover-menu-f2O6R_27.js.map +1 -0
- package/dist/_shared/rich-text-editor-DmZHbsms.js +620 -0
- package/dist/_shared/rich-text-editor-DmZHbsms.js.map +1 -0
- package/dist/_shared/rich-text-editor-DqUU-H7i.cjs +2 -0
- package/dist/_shared/rich-text-editor-DqUU-H7i.cjs.map +1 -0
- package/dist/_shared/separator-BXn_fnly.cjs +2 -0
- package/dist/_shared/separator-BXn_fnly.cjs.map +1 -0
- package/dist/_shared/separator-DiH-j--f.js +20 -0
- package/dist/_shared/separator-DiH-j--f.js.map +1 -0
- package/dist/_shared/settings-CgtcSI8L.js +143 -0
- package/dist/_shared/settings-CgtcSI8L.js.map +1 -0
- package/dist/_shared/settings-csNmeT7b.cjs +2 -0
- package/dist/_shared/settings-csNmeT7b.cjs.map +1 -0
- package/dist/_shared/sidebar-DyGIcJd9.cjs +2 -0
- package/dist/_shared/sidebar-DyGIcJd9.cjs.map +1 -0
- package/dist/_shared/sidebar-OT-xIguQ.js +548 -0
- package/dist/_shared/sidebar-OT-xIguQ.js.map +1 -0
- package/dist/_shared/skeleton-DwF5VdMh.cjs +2 -0
- package/dist/_shared/skeleton-DwF5VdMh.cjs.map +1 -0
- package/dist/_shared/skeleton-yUXqeWzB.js +256 -0
- package/dist/_shared/skeleton-yUXqeWzB.js.map +1 -0
- package/dist/_shared/spinner-BDrUzfTo.cjs +2 -0
- package/dist/_shared/spinner-BDrUzfTo.cjs.map +1 -0
- package/dist/_shared/spinner-CuVZhJhN.js +67 -0
- package/dist/_shared/spinner-CuVZhJhN.js.map +1 -0
- package/dist/_shared/table-BVWemr79.cjs +2 -0
- package/dist/_shared/table-BVWemr79.cjs.map +1 -0
- package/dist/_shared/table-WYSjfQRr.js +1377 -0
- package/dist/_shared/table-WYSjfQRr.js.map +1 -0
- package/dist/_shared/textarea-C0iZwWdD.js +118 -0
- package/dist/_shared/textarea-C0iZwWdD.js.map +1 -0
- package/dist/_shared/textarea-bHFAtwYd.cjs +2 -0
- package/dist/_shared/textarea-bHFAtwYd.cjs.map +1 -0
- package/dist/_shared/typography-5bLhAYaK.js +201 -0
- package/dist/_shared/typography-5bLhAYaK.js.map +1 -0
- package/dist/_shared/typography-CWEobAJV.cjs +2 -0
- package/dist/_shared/typography-CWEobAJV.cjs.map +1 -0
- package/dist/_shared/ui-provider-CrsJ_dGn.cjs +2 -0
- package/dist/_shared/ui-provider-CrsJ_dGn.cjs.map +1 -0
- package/dist/_shared/ui-provider-Dz2qXgZQ.js +89 -0
- package/dist/_shared/ui-provider-Dz2qXgZQ.js.map +1 -0
- package/dist/_shared/workspace-BkwsqTrc.cjs +2 -0
- package/dist/_shared/workspace-BkwsqTrc.cjs.map +1 -0
- package/dist/_shared/workspace-DpU1YG1t.js +357 -0
- package/dist/_shared/workspace-DpU1YG1t.js.map +1 -0
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/button.d.ts.map +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/buttons/tooltip-button.d.ts.map +1 -1
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +2 -2
- package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.types.d.ts +7 -3
- package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.js +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/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/chart.cjs +1 -1
- package/dist/components/base/display/chart.js +1 -1
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.js +6 -6
- package/dist/components/base/display/separator.d.ts +10 -1
- package/dist/components/base/display/separator.d.ts.map +1 -1
- package/dist/components/base/display/skeleton.d.ts +52 -1
- package/dist/components/base/display/skeleton.d.ts.map +1 -1
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.js +4 -4
- package/dist/components/base/forms/fields/file-upload.d.ts.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/item/item.types.d.ts +3 -0
- package/dist/components/base/item/item.types.d.ts.map +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.js +2 -2
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +2 -2
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- package/dist/components/base/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/base/toaster/index.cjs +1 -1
- package/dist/components/base/toaster/index.cjs.map +1 -1
- package/dist/components/base/toaster/index.js +82 -23
- package/dist/components/base/toaster/index.js.map +1 -1
- package/dist/components/base/toaster/toaster.d.ts +1 -1
- package/dist/components/base/toaster/toaster.d.ts.map +1 -1
- package/dist/components/composed/admin/api-key-list/api-key-list.d.ts.map +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.cjs.map +1 -1
- package/dist/components/composed/admin/index.js +67 -67
- package/dist/components/composed/admin/index.js.map +1 -1
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +9 -9
- 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 +12 -12
- 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.js +7 -7
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.cjs.map +1 -1
- package/dist/components/composed/commerce/index.js +10 -10
- package/dist/components/composed/commerce/index.js.map +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +5 -5
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-dashboard.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-financial.d.ts.map +1 -1
- package/dist/components/composed/data-display/dense-info-card/partials/dense-info-score.d.ts.map +1 -1
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +1 -1
- package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +5 -5
- 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 +5 -5
- 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 +190 -190
- package/dist/components/features/filters/index.js.map +1 -1
- package/dist/components/features/filters/partials/filters-button.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.js +10 -10
- 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/index.cjs +1 -1
- package/dist/components/features/products/index.js +11 -11
- 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/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 +7 -7
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/page/page.types.d.ts +5 -0
- package/dist/components/layout/page/page.types.d.ts.map +1 -1
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/page/partials/page-header.d.ts.map +1 -1
- package/dist/components/layout/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/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/ui-provider/defaults.d.ts.map +1 -1
- package/dist/lib/ui-provider/index.cjs +1 -1
- package/dist/lib/ui-provider/index.d.ts +1 -1
- package/dist/lib/ui-provider/index.d.ts.map +1 -1
- package/dist/lib/ui-provider/index.js +1 -1
- package/dist/lib/ui-provider/types.d.ts +14 -0
- package/dist/lib/ui-provider/types.d.ts.map +1 -1
- package/dist/services/actions/index.cjs +1 -1
- package/dist/services/actions/index.js +1 -1
- package/dist/showcase/assets/AreaChart-DxDBymDt.js +6 -0
- package/dist/showcase/assets/CompositeItem-owAA4Ah3.js +1 -0
- package/dist/showcase/assets/CompositeRoot-DzHTtLBs.js +1 -0
- package/dist/showcase/assets/DialogTrigger-OUBMI353.js +1 -0
- package/dist/showcase/assets/LabelableContext-Cd9Gf7TR.js +1 -0
- package/dist/showcase/assets/PreviewLayout-X_NxjYOV.js +1 -0
- package/dist/showcase/assets/RadioGroup-BzveyiIV.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-IZFF348L.js +1 -0
- package/dist/showcase/assets/Separator-CSYYEo-X.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-BYSKM0e8.js +1 -0
- package/dist/showcase/assets/accordion-B9VkLXiy.js +171 -0
- package/dist/showcase/assets/accordion-variants-g7lk5hEX.js +1 -0
- package/dist/showcase/assets/action-menu-CWIvuiLO.js +1 -0
- package/dist/showcase/assets/actions-BuwzXYEF.js +310 -0
- package/dist/showcase/assets/activities-BTBlr1G4.js +500 -0
- package/dist/showcase/assets/activities-feed-card-C5lcwUFk.js +1 -0
- package/dist/showcase/assets/admin-kbK6nUjx.js +140 -0
- package/dist/showcase/assets/ai-CKu9EGmA.js +207 -0
- package/dist/showcase/assets/ai-artifact-Bg1MFGeF.js +2 -0
- package/dist/showcase/assets/ai-chat-DEntRhJD.js +568 -0
- package/dist/showcase/assets/ai-elements-DyKRCWiS.js +387 -0
- package/dist/showcase/assets/ai-tool-call-DFrTelEX.js +1 -0
- package/dist/showcase/assets/alert-C0wSpBYn.js +93 -0
- package/dist/showcase/assets/alert-CZ4rgwPr.js +62 -0
- package/dist/showcase/assets/alert-WTKIdE4s.js +1 -0
- package/dist/showcase/assets/api-key-list-BnrUT9Uf.js +1 -0
- package/dist/showcase/assets/api-key-list-bQ6QzFhA.js +73 -0
- package/dist/showcase/assets/app-sidebar-B3veRbac.js +1 -0
- package/dist/showcase/assets/arrow-down-CEXJx115.js +1 -0
- package/dist/showcase/assets/arrow-left-Ca6ri5q0.js +1 -0
- package/dist/showcase/assets/arrow-right-a3STqWgx.js +1 -0
- package/dist/showcase/assets/arrow-up-CCU1MaGq.js +1 -0
- package/dist/showcase/assets/arrow-up-right-BDImqvM2.js +1 -0
- package/dist/showcase/assets/avatar-Bwgai0SK.js +67 -0
- package/dist/showcase/assets/avatar-DSmL52Us.js +57 -0
- package/dist/showcase/assets/avatar-kK9n1a25.js +1 -0
- package/dist/showcase/assets/avatar-nb7MgV_x.js +1 -0
- package/dist/showcase/assets/badge-CTGPRSXm.js +31 -0
- package/dist/showcase/assets/badge-check-zqoYYrVj.js +1 -0
- package/dist/showcase/assets/bell-D7HWGStL.js +1 -0
- package/dist/showcase/assets/boolean-indicator-CqwlV0cf.js +1 -0
- package/dist/showcase/assets/bot-Owx4SMiU.js +1 -0
- package/dist/showcase/assets/box-BeeoLlMd.js +1 -0
- package/dist/showcase/assets/braces-fzrExVIx.js +1 -0
- package/dist/showcase/assets/brain-Da2fsBjd.js +1 -0
- package/dist/showcase/assets/brand-Bo6uwdGf.js +36 -0
- package/dist/showcase/assets/breadcrumb-B-K-6dtd.js +1 -0
- package/dist/showcase/assets/breadcrumb-B6lR9Cq2.js +52 -0
- package/dist/showcase/assets/breadcrumbs-Bamog6P5.js +1 -0
- package/dist/showcase/assets/briefcase-DQjbh28E.js +1 -0
- package/dist/showcase/assets/building-2-DaQW5yJa.js +1 -0
- package/dist/showcase/assets/button-D3skvyQS.js +44 -0
- package/dist/showcase/assets/button-group-BYtbrhme.js +1 -0
- package/dist/showcase/assets/buttons-B3IkMmNQ.js +272 -0
- package/dist/showcase/assets/calendar-C4fCDK3O.js +1 -0
- package/dist/showcase/assets/calendar-CcwkVxCK.js +16 -0
- package/dist/showcase/assets/calendar-DBkwxV9H.js +1 -0
- package/dist/showcase/assets/calendar-days-BWed1W3Z.js +1 -0
- package/dist/showcase/assets/camera-BUoAyoZT.js +1 -0
- package/dist/showcase/assets/card-7DBPqWuv.js +1 -0
- package/dist/showcase/assets/card-ClwyNDHJ.js +188 -0
- package/dist/showcase/assets/card-primitives-BE1YpEQW.js +1 -0
- package/dist/showcase/assets/card-radio-group-1NMbocuG.js +1 -0
- package/dist/showcase/assets/cards-Bu8uaGSU.js +354 -0
- package/dist/showcase/assets/carousel-dTTRRSQg.js +449 -0
- package/dist/showcase/assets/cell-renderers-CcyBuUsC.js +1 -0
- package/dist/showcase/assets/chart-BSboeIO6.js +358 -0
- package/dist/showcase/assets/chart-column-CCzA6B9l.js +1 -0
- package/dist/showcase/assets/checkbox-CSdEPNT5.js +1 -0
- package/dist/showcase/assets/checkbox-CqNLi9Q3.js +1 -0
- package/dist/showcase/assets/chevron-down-C91gNQdT.js +1 -0
- package/dist/showcase/assets/chevron-left-SiAoYFSo.js +1 -0
- package/dist/showcase/assets/chevron-up-Beb1_ET_.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-DaST4VKL.js +1 -0
- package/dist/showcase/assets/circle-D9KiRp8C.js +1 -0
- package/dist/showcase/assets/circle-alert-BQkAwFkl.js +1 -0
- package/dist/showcase/assets/circle-check-big-CN5YOJqq.js +1 -0
- package/dist/showcase/assets/circle-check-dqmKTiDe.js +1 -0
- package/dist/showcase/assets/circle-dot-B7LPN_0V.js +1 -0
- package/dist/showcase/assets/circle-question-mark-yTRkQO3d.js +1 -0
- package/dist/showcase/assets/circle-x-CW2dFcX-.js +1 -0
- package/dist/showcase/assets/clock-3-CXJ_JotW.js +1 -0
- package/dist/showcase/assets/clock-DUqvfazQ.js +1 -0
- package/dist/showcase/assets/code-xml-BmdQDeID.js +1 -0
- package/dist/showcase/assets/collapsible-C-WYhJxn.js +1 -0
- package/dist/showcase/assets/collapsible-CL37AlCX.js +27 -0
- package/dist/showcase/assets/collapsible-uGO5Rj8q.js +1 -0
- package/dist/showcase/assets/combobox-CFh5kUzj.js +685 -0
- package/dist/showcase/assets/command-CtpLaHjh.js +1 -0
- package/dist/showcase/assets/command-DSlK-QAE.js +1 -0
- package/dist/showcase/assets/comment-composer-Rr_a5tZQ.js +1 -0
- package/dist/showcase/assets/comment-item-Dme2o2KI.js +1 -0
- package/dist/showcase/assets/comments-CW2nz465.js +357 -0
- package/dist/showcase/assets/commerce-bwcq6oPn.js +267 -0
- package/dist/showcase/assets/composite-DMIR0vmP.js +1 -0
- package/dist/showcase/assets/conditional-rendering-Bk6AC76c.js +1 -0
- package/dist/showcase/assets/contact-card-BCXS9tWq.js +65 -0
- package/dist/showcase/assets/content-container-b1dC2caJ.js +1 -0
- package/dist/showcase/assets/copyable-BIABx-Vv.js +96 -0
- package/dist/showcase/assets/copyable-Ic9wzVaj.js +1 -0
- package/dist/showcase/assets/course-card-Bo5P3TYv.js +77 -0
- package/dist/showcase/assets/cpu-_VqU6yRO.js +1 -0
- package/dist/showcase/assets/credit-card-BbxO8xLo.js +1 -0
- package/dist/showcase/assets/css-variables-zqpBgnS1.js +1205 -0
- package/dist/showcase/assets/currency-Cjvt4F0b.js +149 -0
- package/dist/showcase/assets/dark-surfaces-CLwERt1f.js +90 -0
- package/dist/showcase/assets/data-view-AtyUp7b-.js +124 -0
- package/dist/showcase/assets/data-view-cnEmgP1C.js +4 -0
- package/dist/showcase/assets/database-TbVXEw7v.js +1 -0
- package/dist/showcase/assets/date-block-CDHemKnP.js +1 -0
- package/dist/showcase/assets/date-block-COb89Y_-.js +1 -0
- package/dist/showcase/assets/date-picker-CK8llBIN.js +1 -0
- package/dist/showcase/assets/date-pickers-DFfDnW9w.js +73 -0
- package/dist/showcase/assets/dense-info-CaFVDE90.js +106 -0
- package/dist/showcase/assets/design-system-consistency-CeSMuTuu.js +264 -0
- package/dist/showcase/assets/dialog-CRQNEK2K.js +1 -0
- package/dist/showcase/assets/dialog-CsCLDb0G.js +1 -0
- package/dist/showcase/assets/dialog-Qh3EHEKq.js +1 -0
- package/dist/showcase/assets/display-utilities-rP3hb4FK.js +4 -0
- package/dist/showcase/assets/display-utilities.examples-BwbvHOcx.js +309 -0
- package/dist/showcase/assets/dist-CbqRct9s.js +1 -0
- package/dist/showcase/assets/dist-iivamCjp.js +45 -0
- package/dist/showcase/assets/dollar-sign-COaRmdJE.js +1 -0
- package/dist/showcase/assets/download-yCcb4rfH.js +1 -0
- package/dist/showcase/assets/dropdown-menu-KoFNw-fX.js +1 -0
- package/dist/showcase/assets/dropzone-DLguWnmu.js +1 -0
- package/dist/showcase/assets/earth-TDRqTA4S.js +1 -0
- package/dist/showcase/assets/ellipsis-Q_fBbRE9.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-Bh8t3Z1g.js +1 -0
- package/dist/showcase/assets/empty-DvmDTSAj.js +1 -0
- package/dist/showcase/assets/empty-item-C3HP5nuw.js +49 -0
- package/dist/showcase/assets/empty-state-Dcin4cOt.js +190 -0
- package/dist/showcase/assets/empty-state-IV_GTNEI.js +1 -0
- package/dist/showcase/assets/enhanced-activities-BLf2gpes.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-ClZcVnhv.js +1 -0
- package/dist/showcase/assets/esm-Cf6QQstQ.js +2 -0
- package/dist/showcase/assets/event-calendar-zrfI_3AM.js +138 -0
- package/dist/showcase/assets/event-log-D-_CViAw.js +330 -0
- package/dist/showcase/assets/example-6bZGEb3-.js +1 -0
- package/dist/showcase/assets/external-link-7ldgjHZM.js +1 -0
- package/dist/showcase/assets/eye-pXVkim6z.js +1 -0
- package/dist/showcase/assets/feature-announcement-CFcGj3ge.js +34 -0
- package/dist/showcase/assets/file-Bn9sAGaT.js +1 -0
- package/dist/showcase/assets/file-text-Cvxg6pjh.js +1 -0
- package/dist/showcase/assets/filter-layout-DqNRRzDU.js +1 -0
- package/dist/showcase/assets/filters-CQMI_T63.js +139 -0
- package/dist/showcase/assets/flag-vI_WJ-BU.js +1 -0
- package/dist/showcase/assets/folder-open-0AyKSRQS.js +1 -0
- package/dist/showcase/assets/form-field-BaBeXn7a.js +1 -0
- package/dist/showcase/assets/format-DLLMyN-3.js +1 -0
- package/dist/showcase/assets/forms-gPD-Caru.js +915 -0
- package/dist/showcase/assets/funnel-Ca9nWMHm.js +1 -0
- package/dist/showcase/assets/generic-AAssz0h7.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-fbxSMOsb.js +1 -0
- package/dist/showcase/assets/gift-BC42Oxfz.js +1 -0
- package/dist/showcase/assets/giftcard-cards-CFKnYe0c.js +85 -0
- package/dist/showcase/assets/git-branch-B-nF8w-J.js +1 -0
- package/dist/showcase/assets/global-search-D6Gxw0G3.js +1 -0
- package/dist/showcase/assets/global-search-jsb_4idg.js +215 -0
- package/dist/showcase/assets/globe-C92uBSrO.js +1 -0
- package/dist/showcase/assets/gradient-card-D4ly60sD.js +58 -0
- package/dist/showcase/assets/hash-BShTbxlR.js +1 -0
- package/dist/showcase/assets/header-CSiNqg9Q.js +1 -0
- package/dist/showcase/assets/header-notifications-CpHeFPQF.js +1 -0
- package/dist/showcase/assets/heart-B3hXs7fr.js +1 -0
- package/dist/showcase/assets/hooks-CamAqFFh.js +220 -0
- package/dist/showcase/assets/house-4_CouE-Y.js +1 -0
- package/dist/showcase/assets/icon-badge-CePIZqWR.js +1 -0
- package/dist/showcase/assets/icon-badge-DSbvvnxh.js +37 -0
- package/dist/showcase/assets/image-BxbFIbVJ.js +1 -0
- package/dist/showcase/assets/inbox-BXab1SM6.js +1 -0
- package/dist/showcase/assets/index-BPUtPJjB.css +2 -0
- package/dist/showcase/assets/index-BjjNfnhP.js +10 -0
- package/dist/showcase/assets/inertValue-CZOzgsmF.js +1 -0
- package/dist/showcase/assets/info-DzqwCq93.js +1 -0
- package/dist/showcase/assets/inline-stat-D5ybpUh-.js +15 -0
- package/dist/showcase/assets/inline-stat-Dq34wv-6.js +1 -0
- package/dist/showcase/assets/input-C8OfUHCK.js +1 -0
- package/dist/showcase/assets/input-D34Ge3rh.js +1 -0
- package/dist/showcase/assets/input-group-BCPZ6Pwq.js +1 -0
- package/dist/showcase/assets/input-group-CySTANka.js +47 -0
- package/dist/showcase/assets/inputs-CnmHo_lj.js +155 -0
- package/dist/showcase/assets/installation-BPvseS46.js +134 -0
- package/dist/showcase/assets/invoice-header-C9JjJWQX.js +36 -0
- package/dist/showcase/assets/invoice-items-DB8tbCv9.js +36 -0
- package/dist/showcase/assets/invoice-mini-Q_PnimKL.js +14 -0
- package/dist/showcase/assets/invoice-table-CLDvpLib.js +30 -0
- package/dist/showcase/assets/isSameDay-D8bDebyL.js +1 -0
- package/dist/showcase/assets/isToday-XVjRuMtp.js +1 -0
- package/dist/showcase/assets/italic-Cm13b8qb.js +1 -0
- package/dist/showcase/assets/item-C07859JQ.js +1 -0
- package/dist/showcase/assets/item-LinnMxvu.js +1 -0
- package/dist/showcase/assets/item-i7ZUMs5t.js +140 -0
- package/dist/showcase/assets/kanban-CIMTpuN5.js +188 -0
- package/dist/showcase/assets/key-round-Bh7EzOyR.js +1 -0
- package/dist/showcase/assets/label-C3A4CjeG.js +1 -0
- package/dist/showcase/assets/languages-C37jhetw.js +1 -0
- package/dist/showcase/assets/layers-Lyr6p-Nt.js +1 -0
- package/dist/showcase/assets/layout-app-shell-BWAkl9gq.js +608 -0
- package/dist/showcase/assets/layout-auth-y1alnhc8.js +790 -0
- package/dist/showcase/assets/layout-containers-B6c-uvil.js +101 -0
- package/dist/showcase/assets/layout-header-DNhJHWNw.js +203 -0
- package/dist/showcase/assets/layout-page-CXU7CnQK.js +315 -0
- package/dist/showcase/assets/layout-primitives-StuFwfwh.js +34 -0
- package/dist/showcase/assets/layout-sidebar-D-QjnZPh.js +224 -0
- package/dist/showcase/assets/layout-users-D7KMzs3-.js +117 -0
- package/dist/showcase/assets/layout-workspace-Butr7CL5.js +191 -0
- package/dist/showcase/assets/lib-D5nOMXIt.js +1 -0
- package/dist/showcase/assets/list-checks-Cg9HZf4W.js +1 -0
- package/dist/showcase/assets/lock-Da21HhQx.js +1 -0
- package/dist/showcase/assets/lock-keyhole-DNTfa9e3.js +1 -0
- package/dist/showcase/assets/mail-Bamky-ti.js +1 -0
- package/dist/showcase/assets/mail-check-BfVYPC42.js +1 -0
- package/dist/showcase/assets/map-BTlWnRAQ.js +124 -0
- package/dist/showcase/assets/map-pin-BU2RBuvC.js +1 -0
- package/dist/showcase/assets/media-library-DJxgoGAF.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-CbXVAvbK.js +1 -0
- package/dist/showcase/assets/mentions-kMT-Z3qU.js +138 -0
- package/dist/showcase/assets/menus-bhp_n9PT.js +171 -0
- package/dist/showcase/assets/message-square-DC5Bb9Zs.js +1 -0
- package/dist/showcase/assets/metadata-list-DGr729EW.js +286 -0
- package/dist/showcase/assets/metadata-list-DyjhZi6d.js +1 -0
- package/dist/showcase/assets/metric-DRDok6Ci.js +1 -0
- package/dist/showcase/assets/metric-bar-DZsH4Q3U.js +1 -0
- package/dist/showcase/assets/metric-grid-BlFXTrid.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-oEihbEK8.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-BovaXHQX.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-CeX9Skmd.js +50 -0
- package/dist/showcase/assets/metrics-comparison-DFPSmREl.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-CXzfZwe_.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-DQJaNpYH.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-BIpv8CPU.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-EOCkRI5Z.js +42 -0
- package/dist/showcase/assets/metrics-overview-BD4s9H2T.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-t7asN5nA.js +54 -0
- package/dist/showcase/assets/minus-Dr1iTc_q.js +1 -0
- package/dist/showcase/assets/money-display-B5_VqQC0.js +1 -0
- package/dist/showcase/assets/money-display-bU2_cVGX.js +1 -0
- package/dist/showcase/assets/month-year-picker-DVRuYbLm.js +1 -0
- package/dist/showcase/assets/navigation-DBKvJoe-.js +231 -0
- package/dist/showcase/assets/navigation-DOhfmtgy.js +90 -0
- package/dist/showcase/assets/navigation-extras-BkO2TZP7.js +43 -0
- package/dist/showcase/assets/notification-banner-CE1Ei_ZT.js +1 -0
- package/dist/showcase/assets/onboarding-checklist-Bf0aoBoa.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-B2RXtyMP.js +1 -0
- package/dist/showcase/assets/overlays-4E_sUgkz.js +408 -0
- package/dist/showcase/assets/overlays-ulNl-Vhr.js +159 -0
- package/dist/showcase/assets/overview-CgymfIBq.js +184 -0
- package/dist/showcase/assets/package-CADuUP1u.js +1 -0
- package/dist/showcase/assets/package-check-O7MD6XE_.js +1 -0
- package/dist/showcase/assets/page-GB6OIgID.js +1 -0
- package/dist/showcase/assets/page-action-button-Dpprot7y.js +1 -0
- package/dist/showcase/assets/page-header-2VEUPx67.js +1 -0
- package/dist/showcase/assets/pagination-BBuRtAX9.js +1 -0
- package/dist/showcase/assets/pagination-C4mt4Q4l.js +42 -0
- package/dist/showcase/assets/paperclip-Cmyh3Bhf.js +1 -0
- package/dist/showcase/assets/password-input-CgZj1niQ.js +1 -0
- package/dist/showcase/assets/pencil-CtdXjogr.js +1 -0
- package/dist/showcase/assets/phone-CAFMH1vV.js +1 -0
- package/dist/showcase/assets/placeholder-pattern-DHKm-uYV.js +1 -0
- package/dist/showcase/assets/plus-CN2dzUxL.js +1 -0
- package/dist/showcase/assets/popover-DILNXLWy.js +1 -0
- package/dist/showcase/assets/popover-menu-Bp08xxOf.js +1 -0
- package/dist/showcase/assets/popover-o1EO2yVS.js +1 -0
- package/dist/showcase/assets/products-CCLAbHBN.js +423 -0
- package/dist/showcase/assets/progress-BGna-ZmU.js +18 -0
- package/dist/showcase/assets/progress-BSYlNLIJ.js +1 -0
- package/dist/showcase/assets/progress-CZVy3LGB.js +1 -0
- package/dist/showcase/assets/props-table-X9St7Q4m.js +1 -0
- package/dist/showcase/assets/props.generated-f_jHBhPb.json +41753 -0
- package/dist/showcase/assets/qr-code-CEmKf9xU.js +1 -0
- package/dist/showcase/assets/quote-IH6r-rlY.js +1 -0
- package/dist/showcase/assets/receipt-m9rOe5lY.js +1 -0
- package/dist/showcase/assets/receipt-text-C0TobatH.js +1 -0
- package/dist/showcase/assets/refinement-guide-t9T7iAS2.js +189 -0
- package/dist/showcase/assets/refresh-cw-Dy_Nc4jA.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-DR7LgQP5.js +1 -0
- package/dist/showcase/assets/resource-BcJ8O6uj.js +1 -0
- package/dist/showcase/assets/resource-_zDXez77.js +139 -0
- package/dist/showcase/assets/resource-selector-card-CCAEF-AT.js +43 -0
- package/dist/showcase/assets/rich-text-editor-BJG_ECJp.js +143 -0
- package/dist/showcase/assets/rich-text-editor-fbgVfyEH.js +124 -0
- package/dist/showcase/assets/rotate-ccw-CGuTkHQ3.js +1 -0
- package/dist/showcase/assets/route-C7EZ2Njy.js +1 -0
- package/dist/showcase/assets/save-fKrt-yFG.js +1 -0
- package/dist/showcase/assets/schema-form-k7TXeirD.js +327 -0
- package/dist/showcase/assets/scroll-area-CqNwdlI6.js +32 -0
- package/dist/showcase/assets/scroll-area-UVtlGOgx.js +1 -0
- package/dist/showcase/assets/section-DuBNJP4P.js +1 -0
- package/dist/showcase/assets/select-CINVEIWn.js +1 -0
- package/dist/showcase/assets/select-ZLaamXrm.js +1 -0
- package/dist/showcase/assets/send-DBvt_4jT.js +1 -0
- package/dist/showcase/assets/separator-BdBXRpc3.js +28 -0
- package/dist/showcase/assets/separator-CkJjJQWW.js +1 -0
- package/dist/showcase/assets/separator-CxOeStjL.js +1 -0
- package/dist/showcase/assets/separator-O-VQMSf_.js +1 -0
- package/dist/showcase/assets/settings-2-BWjMVlyS.js +1 -0
- package/dist/showcase/assets/settings-D9Z79UcG.js +1 -0
- package/dist/showcase/assets/sheet-CK9C6r7_.js +1 -0
- package/dist/showcase/assets/shield-BboB3Zlo.js +1 -0
- package/dist/showcase/assets/shield-alert-CAAobStl.js +1 -0
- package/dist/showcase/assets/shield-check-Rfyzz9bK.js +1 -0
- package/dist/showcase/assets/shopping-bag-5hLD82YW.js +1 -0
- package/dist/showcase/assets/showcase-DhOQXB5E.js +132 -0
- package/dist/showcase/assets/sidebar-ZTUACc0t.js +1 -0
- package/dist/showcase/assets/sidebar.context-BiNOpG5W.js +1 -0
- package/dist/showcase/assets/skeleton-BZUSoHbk.js +1 -0
- package/dist/showcase/assets/skeleton-BZkYzAdq.js +1 -0
- package/dist/showcase/assets/skeleton-CrOp8tx3.js +29 -0
- package/dist/showcase/assets/skeleton-P5GXAj4U.js +1 -0
- package/dist/showcase/assets/slider-zlE7nLrp.js +1 -0
- package/dist/showcase/assets/smart-card-OExZHSsj.js +1 -0
- package/dist/showcase/assets/sonner-eMphKM9E.js +22 -0
- package/dist/showcase/assets/sortable.esm-CM9VD5N4.js +5 -0
- package/dist/showcase/assets/sparkles-CIB5irID.js +1 -0
- package/dist/showcase/assets/spinner-11-kP-Ob.js +1 -0
- package/dist/showcase/assets/spinner-D4G5TFSm.js +49 -0
- package/dist/showcase/assets/spinner-DKGukuFV.js +30 -0
- package/dist/showcase/assets/square-pen-zflKy9oX.js +1 -0
- package/dist/showcase/assets/stacked-avatars-Cve1Y6GY.js +1 -0
- package/dist/showcase/assets/star-DleXDkCp.js +1 -0
- package/dist/showcase/assets/startOfDay-TDP2erzM.js +1 -0
- package/dist/showcase/assets/styles-BKlX_Ipc.js +1 -0
- package/dist/showcase/assets/suggestions-Dt2hm1NY.js +126 -0
- package/dist/showcase/assets/switch-DAPAgJbv.js +1 -0
- package/dist/showcase/assets/switch-fQpP2tJl.js +1 -0
- package/dist/showcase/assets/sync-BRcK160D.js +124 -0
- package/dist/showcase/assets/table-Dhmbe1yN.js +686 -0
- package/dist/showcase/assets/table-actions-GGrPOQcv.js +1 -0
- package/dist/showcase/assets/table-v0Eu5yZn.js +1 -0
- package/dist/showcase/assets/tabs-DmaXB1aF.js +19 -0
- package/dist/showcase/assets/tabs-vbNIJ-eo.js +1 -0
- package/dist/showcase/assets/tags-input-Bms_Q5CE.js +1 -0
- package/dist/showcase/assets/text-button-gvJCzaXS.js +1 -0
- package/dist/showcase/assets/text-link-DkByVX4d.js +1 -0
- package/dist/showcase/assets/textarea-B6Ho29y3.js +1 -0
- package/dist/showcase/assets/textarea-JCb0yhZ1.js +1 -0
- package/dist/showcase/assets/throttle-alert-CPU-u6Rs.js +1 -0
- package/dist/showcase/assets/timelines-Bw7mvAdx.js +200 -0
- package/dist/showcase/assets/toggle-group-jlIGX1zh.js +1 -0
- package/dist/showcase/assets/toggles-DV6V9vj-.js +71 -0
- package/dist/showcase/assets/toggles-group-C-Y3dG8q.js +32 -0
- package/dist/showcase/assets/tooltip-CDtPyNOv.js +31 -0
- package/dist/showcase/assets/trash-2-CXRm3lMl.js +1 -0
- package/dist/showcase/assets/trending-up-Bcyp9cw8.js +1 -0
- package/dist/showcase/assets/truck-DVgzuKLP.js +1 -0
- package/dist/showcase/assets/typography-BKPf4j85.js +223 -0
- package/dist/showcase/assets/ui-badge-D-Ud2MES.js +28 -0
- package/dist/showcase/assets/ui-card-gGqI2cfr.js +30 -0
- package/dist/showcase/assets/ui-table-Bqcab_kq.js +42 -0
- package/dist/showcase/assets/upload-tray-BFh6twLE.js +138 -0
- package/dist/showcase/assets/use-layout-link-e9jr981L.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-ByBTPUi3.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-Bx_-SRtw.js +1 -0
- package/dist/showcase/assets/useCompositeItem-Dmih9c3W.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-C0QJgAKb.js +1 -0
- package/dist/showcase/assets/useLabelableId-COfjI9qt.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CRefmlni.js +1 -0
- package/dist/showcase/assets/useRender-Bgu76j1u.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-B2fPZeWf.js +1 -0
- package/dist/showcase/assets/useValueChanged-CNjJ-spo.js +1 -0
- package/dist/showcase/assets/user-CmkLnMh9.js +1 -0
- package/dist/showcase/assets/user-plus-3CGFNUf0.js +1 -0
- package/dist/showcase/assets/users-CuO8W7wn.js +1 -0
- package/dist/showcase/assets/vendor-profile-HLMsE22G.js +37 -0
- package/dist/showcase/assets/video-CoHnn0fp.js +1 -0
- package/dist/showcase/assets/visually-hidden-D5bPAL7Q.js +1 -0
- package/dist/showcase/assets/wrench-C93IxaGt.js +1 -0
- package/dist/showcase/assets/x-BJDvVLAz.js +1 -0
- package/dist/showcase/assets/zap-DYD_Ljkv.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/css/themes/shadcn.default.css +2 -2
- package/src/css/tokens/foundation.css +1 -1
- package/src/css/tokens/primitives.css +1 -1
- package/src/css/tokens/states.css +3 -0
- package/dist/_shared/accordion-CxjH2WZG.js +0 -135
- package/dist/_shared/accordion-CxjH2WZG.js.map +0 -1
- package/dist/_shared/accordion-mTdJmy23.cjs +0 -2
- package/dist/_shared/accordion-mTdJmy23.cjs.map +0 -1
- package/dist/_shared/action-menu-BrHF4nss.cjs +0 -2
- package/dist/_shared/action-menu-BrHF4nss.cjs.map +0 -1
- package/dist/_shared/action-menu-Crn22LKo.js +0 -96
- package/dist/_shared/action-menu-Crn22LKo.js.map +0 -1
- package/dist/_shared/ai-artifact-CS2Pv-bu.js +0 -1099
- package/dist/_shared/ai-artifact-CS2Pv-bu.js.map +0 -1
- package/dist/_shared/ai-artifact-R4bxz5Iq.cjs +0 -3
- package/dist/_shared/ai-artifact-R4bxz5Iq.cjs.map +0 -1
- package/dist/_shared/alert-BisCSsOE.cjs +0 -2
- package/dist/_shared/alert-BisCSsOE.cjs.map +0 -1
- package/dist/_shared/alert-D23Q7I0W.js +0 -81
- package/dist/_shared/alert-D23Q7I0W.js.map +0 -1
- package/dist/_shared/auth-BV9Daibu.cjs +0 -2
- package/dist/_shared/auth-BV9Daibu.cjs.map +0 -1
- package/dist/_shared/auth-DACpcTnL.js +0 -643
- package/dist/_shared/auth-DACpcTnL.js.map +0 -1
- package/dist/_shared/badge-B4oBB5BJ.js +0 -110
- package/dist/_shared/badge-B4oBB5BJ.js.map +0 -1
- package/dist/_shared/badge-DvUA9Pr2.cjs +0 -2
- package/dist/_shared/badge-DvUA9Pr2.cjs.map +0 -1
- package/dist/_shared/button-BMiPFJIb.cjs +0 -2
- package/dist/_shared/button-BMiPFJIb.cjs.map +0 -1
- package/dist/_shared/button-vv59_uS_.js +0 -189
- package/dist/_shared/button-vv59_uS_.js.map +0 -1
- package/dist/_shared/buttons-CvqIMv3I.js +0 -137
- package/dist/_shared/buttons-CvqIMv3I.js.map +0 -1
- package/dist/_shared/buttons-tCkWktN3.cjs +0 -2
- package/dist/_shared/buttons-tCkWktN3.cjs.map +0 -1
- package/dist/_shared/card-radio-group-BL--IyPB.js +0 -150
- package/dist/_shared/card-radio-group-BL--IyPB.js.map +0 -1
- package/dist/_shared/card-radio-group-Cl5ptR1d.cjs +0 -2
- package/dist/_shared/card-radio-group-Cl5ptR1d.cjs.map +0 -1
- package/dist/_shared/cards-CMNXFo3Y.js +0 -354
- package/dist/_shared/cards-CMNXFo3Y.js.map +0 -1
- package/dist/_shared/cards-DQN9fcwo.cjs +0 -2
- package/dist/_shared/cards-DQN9fcwo.cjs.map +0 -1
- package/dist/_shared/combobox-D0avSXIB.cjs +0 -2
- package/dist/_shared/combobox-D0avSXIB.cjs.map +0 -1
- package/dist/_shared/combobox-Df0srISK.js +0 -954
- package/dist/_shared/combobox-Df0srISK.js.map +0 -1
- package/dist/_shared/command-B5BpMgBT.js +0 -39
- package/dist/_shared/command-B5BpMgBT.js.map +0 -1
- package/dist/_shared/command-en62SpQ7.cjs +0 -2
- package/dist/_shared/command-en62SpQ7.cjs.map +0 -1
- package/dist/_shared/comments-CfkortDW.js +0 -952
- package/dist/_shared/comments-CfkortDW.js.map +0 -1
- package/dist/_shared/comments-yVd7QMOu.cjs +0 -2
- package/dist/_shared/comments-yVd7QMOu.cjs.map +0 -1
- package/dist/_shared/copyable-Cn7tRGL5.js +0 -38
- package/dist/_shared/copyable-Cn7tRGL5.js.map +0 -1
- package/dist/_shared/copyable-CoKTxMSP.cjs +0 -2
- package/dist/_shared/copyable-CoKTxMSP.cjs.map +0 -1
- package/dist/_shared/data-display-BG7CD164.js +0 -1873
- package/dist/_shared/data-display-BG7CD164.js.map +0 -1
- package/dist/_shared/data-display-CXVoX3la.cjs +0 -2
- package/dist/_shared/data-display-CXVoX3la.cjs.map +0 -1
- package/dist/_shared/date-picker-Bf-nnyi-.js +0 -1361
- package/dist/_shared/date-picker-Bf-nnyi-.js.map +0 -1
- package/dist/_shared/date-picker-Cox4PAUt.cjs +0 -2
- package/dist/_shared/date-picker-Cox4PAUt.cjs.map +0 -1
- package/dist/_shared/date-pickers-DbN4q0dn.cjs +0 -2
- package/dist/_shared/date-pickers-DbN4q0dn.cjs.map +0 -1
- package/dist/_shared/date-pickers-DvrOCP-s.js +0 -329
- package/dist/_shared/date-pickers-DvrOCP-s.js.map +0 -1
- package/dist/_shared/display-BQijMo37.js +0 -986
- package/dist/_shared/display-BQijMo37.js.map +0 -1
- package/dist/_shared/display-C0ut-Lew.cjs +0 -2
- package/dist/_shared/display-C0ut-Lew.cjs.map +0 -1
- package/dist/_shared/forms-BjG7QIb1.cjs +0 -2
- package/dist/_shared/forms-BjG7QIb1.cjs.map +0 -1
- package/dist/_shared/forms-DljDdyXR.js +0 -3533
- package/dist/_shared/forms-DljDdyXR.js.map +0 -1
- package/dist/_shared/header-BpFJRINR.cjs +0 -2
- package/dist/_shared/header-BpFJRINR.cjs.map +0 -1
- package/dist/_shared/header-CKqQF4_r.js +0 -447
- package/dist/_shared/header-CKqQF4_r.js.map +0 -1
- package/dist/_shared/hooks-DcCkbP1F.js +0 -95
- package/dist/_shared/hooks-DcCkbP1F.js.map +0 -1
- package/dist/_shared/hooks-RkLytuGj.cjs +0 -2
- package/dist/_shared/hooks-RkLytuGj.cjs.map +0 -1
- package/dist/_shared/input-Cin0qpjj.js +0 -182
- package/dist/_shared/input-Cin0qpjj.js.map +0 -1
- package/dist/_shared/input-uuWeiagN.cjs +0 -2
- package/dist/_shared/input-uuWeiagN.cjs.map +0 -1
- package/dist/_shared/item-CIlSaQg8.js +0 -226
- package/dist/_shared/item-CIlSaQg8.js.map +0 -1
- package/dist/_shared/item-CSk9Y2qB.cjs +0 -2
- package/dist/_shared/item-CSk9Y2qB.cjs.map +0 -1
- package/dist/_shared/layout-Cun0HPL4.cjs +0 -2
- package/dist/_shared/layout-Cun0HPL4.cjs.map +0 -1
- package/dist/_shared/layout-HrU5gwH3.js +0 -261
- package/dist/_shared/layout-HrU5gwH3.js.map +0 -1
- package/dist/_shared/mentions-BqN82Fon.cjs +0 -2
- package/dist/_shared/mentions-BqN82Fon.cjs.map +0 -1
- package/dist/_shared/mentions-DV0FT1Th.js +0 -506
- package/dist/_shared/mentions-DV0FT1Th.js.map +0 -1
- package/dist/_shared/money-display-D5FCRhzB.cjs +0 -2
- package/dist/_shared/money-display-D5FCRhzB.cjs.map +0 -1
- package/dist/_shared/money-display-FcCAQDCz.js +0 -198
- package/dist/_shared/money-display-FcCAQDCz.js.map +0 -1
- package/dist/_shared/navigation-CI_Dd8jM.js +0 -436
- package/dist/_shared/navigation-CI_Dd8jM.js.map +0 -1
- package/dist/_shared/navigation-DUGhCPzJ.cjs +0 -2
- package/dist/_shared/navigation-DUGhCPzJ.cjs.map +0 -1
- package/dist/_shared/overlays-BRLemLSn.cjs +0 -2
- package/dist/_shared/overlays-BRLemLSn.cjs.map +0 -1
- package/dist/_shared/overlays-Bef7VNYY.js +0 -735
- package/dist/_shared/overlays-Bef7VNYY.js.map +0 -1
- package/dist/_shared/popover-menu-CAjhhTfX.js +0 -93
- package/dist/_shared/popover-menu-CAjhhTfX.js.map +0 -1
- package/dist/_shared/popover-menu-DlkRgOkR.cjs +0 -2
- package/dist/_shared/popover-menu-DlkRgOkR.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-Bpt3r3J3.js +0 -620
- package/dist/_shared/rich-text-editor-Bpt3r3J3.js.map +0 -1
- package/dist/_shared/rich-text-editor-DUTX7kBa.cjs +0 -2
- package/dist/_shared/rich-text-editor-DUTX7kBa.cjs.map +0 -1
- package/dist/_shared/settings-CNT4-6u8.cjs +0 -2
- package/dist/_shared/settings-CNT4-6u8.cjs.map +0 -1
- package/dist/_shared/settings-CRP6409J.js +0 -143
- package/dist/_shared/settings-CRP6409J.js.map +0 -1
- package/dist/_shared/sidebar-B0LcBrfI.cjs +0 -2
- package/dist/_shared/sidebar-B0LcBrfI.cjs.map +0 -1
- package/dist/_shared/sidebar-Bc6JsOTD.js +0 -548
- package/dist/_shared/sidebar-Bc6JsOTD.js.map +0 -1
- package/dist/_shared/spinner-CVG62sGs.js +0 -67
- package/dist/_shared/spinner-CVG62sGs.js.map +0 -1
- package/dist/_shared/spinner-VjdonFU2.cjs +0 -2
- package/dist/_shared/spinner-VjdonFU2.cjs.map +0 -1
- package/dist/_shared/table-_yujELN3.js +0 -1377
- package/dist/_shared/table-_yujELN3.js.map +0 -1
- package/dist/_shared/table-iV8H1AE0.cjs +0 -2
- package/dist/_shared/table-iV8H1AE0.cjs.map +0 -1
- package/dist/_shared/textarea-B4zbbqff.cjs +0 -2
- package/dist/_shared/textarea-B4zbbqff.cjs.map +0 -1
- package/dist/_shared/textarea-Dp0RU-rc.js +0 -118
- package/dist/_shared/textarea-Dp0RU-rc.js.map +0 -1
- package/dist/_shared/typography-DXvCmE8w.js +0 -201
- package/dist/_shared/typography-DXvCmE8w.js.map +0 -1
- package/dist/_shared/typography-pzCKaFOc.cjs +0 -2
- package/dist/_shared/typography-pzCKaFOc.cjs.map +0 -1
- package/dist/_shared/ui-provider-DZWtUXf2.cjs +0 -2
- package/dist/_shared/ui-provider-DZWtUXf2.cjs.map +0 -1
- package/dist/_shared/ui-provider-Dj6OSOZi.js +0 -81
- package/dist/_shared/ui-provider-Dj6OSOZi.js.map +0 -1
- package/dist/_shared/workspace-C3U57t2a.cjs +0 -2
- package/dist/_shared/workspace-C3U57t2a.cjs.map +0 -1
- package/dist/_shared/workspace-Db--ow3r.js +0 -357
- package/dist/_shared/workspace-Db--ow3r.js.map +0 -1
- package/dist/showcase/assets/AreaChart-DtVzijR8.js +0 -6
- package/dist/showcase/assets/CompositeItem-SL6R0H3r.js +0 -1
- package/dist/showcase/assets/CompositeRoot-CTygKc2d.js +0 -1
- package/dist/showcase/assets/DialogTrigger-m2m9VdXk.js +0 -1
- package/dist/showcase/assets/LabelableContext-D6DcOg5I.js +0 -1
- package/dist/showcase/assets/PreviewLayout-CHW8F5uE.js +0 -1
- package/dist/showcase/assets/RadioGroup-BAOoU1eO.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-CrCCP65t.js +0 -1
- package/dist/showcase/assets/Separator-DMs71Vib.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-DWKxsCxT.js +0 -1
- package/dist/showcase/assets/accordion-Clw5XNXP.js +0 -171
- package/dist/showcase/assets/accordion-variants-jiwKaPjE.js +0 -1
- package/dist/showcase/assets/action-menu-CW8zR6Ne.js +0 -1
- package/dist/showcase/assets/actions-Cf7vl3u0.js +0 -310
- package/dist/showcase/assets/activities-CyI5sJuS.js +0 -500
- package/dist/showcase/assets/activities-feed-card-Gv-Y4BBq.js +0 -1
- package/dist/showcase/assets/admin-CQVbTxGD.js +0 -140
- package/dist/showcase/assets/ai-Bkp2BY_z.js +0 -207
- package/dist/showcase/assets/ai-artifact-Cf1vEdVD.js +0 -2
- package/dist/showcase/assets/ai-chat-Bs3x6cK3.js +0 -568
- package/dist/showcase/assets/ai-elements-VbMUV2-i.js +0 -387
- package/dist/showcase/assets/ai-tool-call-BQYg4QB_.js +0 -1
- package/dist/showcase/assets/alert-BUmpNcXV.js +0 -1
- package/dist/showcase/assets/alert-CWPNW7eb.js +0 -93
- package/dist/showcase/assets/alert-nUwhk3AB.js +0 -62
- package/dist/showcase/assets/api-key-list-B1qVywOP.js +0 -73
- package/dist/showcase/assets/api-key-list-BI2FGbzV.js +0 -1
- package/dist/showcase/assets/app-sidebar-B35a8HWK.js +0 -1
- package/dist/showcase/assets/arrow-down-C1w0M8tE.js +0 -1
- package/dist/showcase/assets/arrow-left-DtILDtAv.js +0 -1
- package/dist/showcase/assets/arrow-right-TnZMfDbP.js +0 -1
- package/dist/showcase/assets/arrow-up-BX-KDIDB.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CrnWqXwJ.js +0 -1
- package/dist/showcase/assets/avatar-C5YI0roK.js +0 -67
- package/dist/showcase/assets/avatar-DsnH-Xmz.js +0 -1
- package/dist/showcase/assets/avatar-S4vMi7Be.js +0 -57
- package/dist/showcase/assets/avatar-q4wqX6yD.js +0 -1
- package/dist/showcase/assets/badge-DJacF8-J.js +0 -31
- package/dist/showcase/assets/badge-check-DDJtQHcD.js +0 -1
- package/dist/showcase/assets/bell-DiXXE8YI.js +0 -1
- package/dist/showcase/assets/bot-bONqc_7j.js +0 -1
- package/dist/showcase/assets/box-lhUq3Chj.js +0 -1
- package/dist/showcase/assets/braces-IKXiJgb3.js +0 -1
- package/dist/showcase/assets/brain-DcXlhbJZ.js +0 -1
- package/dist/showcase/assets/brand-CramZg2-.js +0 -36
- package/dist/showcase/assets/breadcrumb-BL7UjlLh.js +0 -1
- package/dist/showcase/assets/breadcrumb-CZRbcf09.js +0 -52
- package/dist/showcase/assets/breadcrumbs-DJzvSt_Z.js +0 -1
- package/dist/showcase/assets/briefcase-CQQ0m97G.js +0 -1
- package/dist/showcase/assets/building-2-BkQcv8WR.js +0 -1
- package/dist/showcase/assets/button-K7M0irWq.js +0 -44
- package/dist/showcase/assets/button-group-KCGa38c8.js +0 -1
- package/dist/showcase/assets/buttons-CvyBMRD6.js +0 -272
- package/dist/showcase/assets/calendar-BJHjhWQX.js +0 -1
- package/dist/showcase/assets/calendar-ChMVRsNC.js +0 -16
- package/dist/showcase/assets/calendar-days-BgkRJVxQ.js +0 -1
- package/dist/showcase/assets/calendar-xpHhfGnq.js +0 -1
- package/dist/showcase/assets/camera-C67freYi.js +0 -1
- package/dist/showcase/assets/card-CfOqXMVz.js +0 -188
- package/dist/showcase/assets/card-bLjedjT5.js +0 -1
- package/dist/showcase/assets/card-primitives-FUPmQCsu.js +0 -1
- package/dist/showcase/assets/card-radio-group-D_QNJ2Hm.js +0 -1
- package/dist/showcase/assets/cards-yHZa0kEf.js +0 -353
- package/dist/showcase/assets/carousel-DG1cKry4.js +0 -449
- package/dist/showcase/assets/cell-renderers-qfJ-7alN.js +0 -1
- package/dist/showcase/assets/chart-B_yVfbWJ.js +0 -358
- package/dist/showcase/assets/chart-column-CYrVWmMk.js +0 -1
- package/dist/showcase/assets/checkbox-NW6EcvtD.js +0 -1
- package/dist/showcase/assets/checkbox-pA_L1P-f.js +0 -1
- package/dist/showcase/assets/chevron-down-DLrHjdQ6.js +0 -1
- package/dist/showcase/assets/chevron-left-B_NQOEWI.js +0 -1
- package/dist/showcase/assets/chevron-up-6hst2jwR.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-C_pj9oOa.js +0 -1
- package/dist/showcase/assets/circle-Cw9qV72m.js +0 -1
- package/dist/showcase/assets/circle-alert-D3Vcma6L.js +0 -1
- package/dist/showcase/assets/circle-check-DdjJpGc9.js +0 -1
- package/dist/showcase/assets/circle-check-big-Dnq-jwtv.js +0 -1
- package/dist/showcase/assets/circle-dot-DN8DFgIP.js +0 -1
- package/dist/showcase/assets/circle-question-mark-Dzgiv4oS.js +0 -1
- package/dist/showcase/assets/circle-x-BzTSkndC.js +0 -1
- package/dist/showcase/assets/clock-3-CVwHXCmo.js +0 -1
- package/dist/showcase/assets/clock-BIJ9p953.js +0 -1
- package/dist/showcase/assets/code-xml-DrU5ziCA.js +0 -1
- package/dist/showcase/assets/collapsible-7rdCo71k.js +0 -27
- package/dist/showcase/assets/collapsible-DCcTSlEH.js +0 -1
- package/dist/showcase/assets/combobox-mx8o5sV1.js +0 -685
- package/dist/showcase/assets/command-CKJDGdA9.js +0 -1
- package/dist/showcase/assets/command-CzGLPzoO.js +0 -1
- package/dist/showcase/assets/comment-composer-CSoEIapl.js +0 -1
- package/dist/showcase/assets/comment-item-pjaH53iB.js +0 -1
- package/dist/showcase/assets/comments-_ccotzWA.js +0 -357
- package/dist/showcase/assets/commerce-BuiQiRsf.js +0 -267
- package/dist/showcase/assets/composite-Bghohd0p.js +0 -1
- package/dist/showcase/assets/contact-card-CqM2uz_w.js +0 -65
- package/dist/showcase/assets/content-container-fC4z98GI.js +0 -1
- package/dist/showcase/assets/copyable-BMQK8sID.js +0 -1
- package/dist/showcase/assets/copyable-DVR2FAa0.js +0 -96
- package/dist/showcase/assets/course-card-Cku2z18g.js +0 -77
- package/dist/showcase/assets/cpu-A072t3kq.js +0 -1
- package/dist/showcase/assets/credit-card-BGwhx9Zo.js +0 -1
- package/dist/showcase/assets/css-variables-BAW_VrGk.js +0 -1205
- package/dist/showcase/assets/currency-Da3C0Uzb.js +0 -149
- package/dist/showcase/assets/dark-surfaces-BHYLEj80.js +0 -90
- package/dist/showcase/assets/data-view--EAYihh0.js +0 -124
- package/dist/showcase/assets/data-view-BAMwKzZO.js +0 -4
- package/dist/showcase/assets/database-C489WIbr.js +0 -1
- package/dist/showcase/assets/date-block-DuNaPSBU.js +0 -1
- package/dist/showcase/assets/date-picker-Dq-9L64y.js +0 -1
- package/dist/showcase/assets/date-pickers-D0ReMKc9.js +0 -73
- package/dist/showcase/assets/dense-info-CXwjqQB1.js +0 -106
- package/dist/showcase/assets/design-system-consistency-CGoKv0Vf.js +0 -264
- package/dist/showcase/assets/dialog-DIrJcAzq.js +0 -1
- package/dist/showcase/assets/dialog-O45UwQJs.js +0 -1
- package/dist/showcase/assets/display-utilities-VKOARJyC.js +0 -267
- package/dist/showcase/assets/dist-BavkTE-I.js +0 -1
- package/dist/showcase/assets/dist-DPxPKIgU.js +0 -45
- package/dist/showcase/assets/dollar-sign-CH2fcyek.js +0 -1
- package/dist/showcase/assets/download-whAw79X4.js +0 -1
- package/dist/showcase/assets/dropdown-menu-PVKwhWds.js +0 -1
- package/dist/showcase/assets/dropzone-B9sc8Mwa.js +0 -1
- package/dist/showcase/assets/earth-BpkE9LMh.js +0 -1
- package/dist/showcase/assets/ellipsis-CEVdIbhD.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-CBIvtUVz.js +0 -1
- package/dist/showcase/assets/empty-Dp1eCMIl.js +0 -1
- package/dist/showcase/assets/empty-item--dZz4VlJ.js +0 -49
- package/dist/showcase/assets/empty-state-ZOiE-hWY.js +0 -190
- package/dist/showcase/assets/empty-state-dsivN4CA.js +0 -1
- package/dist/showcase/assets/enhanced-activities-BpzUxaof.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-D71BOuiX.js +0 -1
- package/dist/showcase/assets/esm-DT-TXPCJ.js +0 -2
- package/dist/showcase/assets/event-calendar-aVpAFZFq.js +0 -138
- package/dist/showcase/assets/event-log-DVcvyQ-P.js +0 -330
- package/dist/showcase/assets/example-CzbL5xoH.js +0 -1
- package/dist/showcase/assets/external-link-BaLE1QE5.js +0 -1
- package/dist/showcase/assets/eye-Dq0mLKrs.js +0 -1
- package/dist/showcase/assets/feature-announcement-sWKBC2fs.js +0 -34
- package/dist/showcase/assets/file-CgW3NvCL.js +0 -1
- package/dist/showcase/assets/file-text-JGaJQ8Wd.js +0 -1
- package/dist/showcase/assets/filter-layout-jfahl8aJ.js +0 -1
- package/dist/showcase/assets/filters-D7zegZVD.js +0 -139
- package/dist/showcase/assets/flag-H6U1f4wd.js +0 -1
- package/dist/showcase/assets/folder-open-sT96wRxJ.js +0 -1
- package/dist/showcase/assets/form-field-CQuSWnj8.js +0 -1
- package/dist/showcase/assets/format-DGPJ5dDq.js +0 -1
- package/dist/showcase/assets/forms-CdDJkAFt.js +0 -915
- package/dist/showcase/assets/funnel-Bh56GDO0.js +0 -1
- package/dist/showcase/assets/generic-CqSABKHr.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-Cgw3-xUB.js +0 -1
- package/dist/showcase/assets/gift-ChVS2ovQ.js +0 -1
- package/dist/showcase/assets/giftcard-cards-CuaGn8-J.js +0 -85
- package/dist/showcase/assets/git-branch-86jQZnz4.js +0 -1
- package/dist/showcase/assets/global-search-C92CjOf8.js +0 -215
- package/dist/showcase/assets/global-search-DpVIWyO9.js +0 -1
- package/dist/showcase/assets/globe-DmGzYOlq.js +0 -1
- package/dist/showcase/assets/gradient-card-BUZzXFdZ.js +0 -58
- package/dist/showcase/assets/hash-pc6IIDge.js +0 -1
- package/dist/showcase/assets/header-DbM4l1Z6.js +0 -1
- package/dist/showcase/assets/header-notifications-CaymUd4n.js +0 -1
- package/dist/showcase/assets/heart-DtfPBlXq.js +0 -1
- package/dist/showcase/assets/hooks-JiLlGOJ-.js +0 -220
- package/dist/showcase/assets/house-CzNWewi5.js +0 -1
- package/dist/showcase/assets/icon-badge-G9Fp891n.js +0 -1
- package/dist/showcase/assets/icon-badge-e8N5BSYf.js +0 -37
- package/dist/showcase/assets/image-9IQW7agU.js +0 -1
- package/dist/showcase/assets/inbox-DU4YaGtc.js +0 -1
- package/dist/showcase/assets/index-CuXjv2p6.css +0 -2
- package/dist/showcase/assets/index-DN09-Vts.js +0 -10
- package/dist/showcase/assets/inertValue-kRQb7jwi.js +0 -1
- package/dist/showcase/assets/info-B9AXwUDF.js +0 -1
- package/dist/showcase/assets/inline-stat-BkLIKCvD.js +0 -1
- package/dist/showcase/assets/inline-stat-XqGHDQrK.js +0 -15
- package/dist/showcase/assets/input-BXHv6p9P.js +0 -1
- package/dist/showcase/assets/input-D_T9s_tn.js +0 -1
- package/dist/showcase/assets/input-group-Bs8dmhR6.js +0 -47
- package/dist/showcase/assets/input-group-CqkASeoV.js +0 -1
- package/dist/showcase/assets/inputs-DY7w_ssI.js +0 -155
- package/dist/showcase/assets/installation-Dg3FdGJ1.js +0 -134
- package/dist/showcase/assets/invoice-header-Ba-Y55Ag.js +0 -36
- package/dist/showcase/assets/invoice-items-CIJ8EfPg.js +0 -36
- package/dist/showcase/assets/invoice-mini-BISFvM7J.js +0 -14
- package/dist/showcase/assets/invoice-table-DcyVZTvl.js +0 -30
- package/dist/showcase/assets/isSameDay-av07hGac.js +0 -1
- package/dist/showcase/assets/isToday-GY5FlPL9.js +0 -1
- package/dist/showcase/assets/italic-Du0n76Xk.js +0 -1
- package/dist/showcase/assets/item-D8Lp4R-T.js +0 -139
- package/dist/showcase/assets/item-DTsZnSJG.js +0 -1
- package/dist/showcase/assets/item-Di7HZF5G.js +0 -1
- package/dist/showcase/assets/kanban-Dcminjsa.js +0 -188
- package/dist/showcase/assets/key-round-BBue3xKx.js +0 -1
- package/dist/showcase/assets/label-dkUEHYaz.js +0 -1
- package/dist/showcase/assets/languages-XxP8Uu82.js +0 -1
- package/dist/showcase/assets/layers-Bi_-RuHS.js +0 -1
- package/dist/showcase/assets/layout-app-shell-Cr6Ep0Zz.js +0 -608
- package/dist/showcase/assets/layout-auth-DffIslnp.js +0 -790
- package/dist/showcase/assets/layout-containers-BuSg6L6o.js +0 -101
- package/dist/showcase/assets/layout-header-DAxSUI18.js +0 -203
- package/dist/showcase/assets/layout-page-CVgVJHf1.js +0 -314
- package/dist/showcase/assets/layout-primitives-q8NXbEld.js +0 -34
- package/dist/showcase/assets/layout-sidebar-bB6AJaGs.js +0 -224
- package/dist/showcase/assets/layout-users-DG5u517t.js +0 -117
- package/dist/showcase/assets/layout-workspace-CKMDUM2b.js +0 -191
- package/dist/showcase/assets/lib-CaQvPpSJ.js +0 -1
- package/dist/showcase/assets/list-checks-Dhr60VvL.js +0 -1
- package/dist/showcase/assets/lock-CYVbyBpM.js +0 -1
- package/dist/showcase/assets/lock-keyhole-TUVID45I.js +0 -1
- package/dist/showcase/assets/mail-DfkwmVKE.js +0 -1
- package/dist/showcase/assets/mail-check-CnBhgH_h.js +0 -1
- package/dist/showcase/assets/map-Ck14_o-F.js +0 -124
- package/dist/showcase/assets/map-pin-Di7TUhai.js +0 -1
- package/dist/showcase/assets/media-library-CzM_to29.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-B1RHUfnH.js +0 -1
- package/dist/showcase/assets/mentions-CdaPXOLl.js +0 -138
- package/dist/showcase/assets/menus-DuqcLdg1.js +0 -171
- package/dist/showcase/assets/message-square-DuW3PrFI.js +0 -1
- package/dist/showcase/assets/metadata-list-CCRGSPaS.js +0 -286
- package/dist/showcase/assets/metadata-list-Drvz5mwy.js +0 -1
- package/dist/showcase/assets/metric-BSaXa3Z_.js +0 -1
- package/dist/showcase/assets/metric-bar-CM1Rmk8y.js +0 -1
- package/dist/showcase/assets/metric-grid-BBGxdYNJ.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-C_LrbPyT.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-ByvVltQV.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-CNGiVG1A.js +0 -50
- package/dist/showcase/assets/metrics-comparison-BLUvtt5N.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-CZWhn4_i.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-CcPm2_ON.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-CitG5Aea.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-CAsplRVI.js +0 -42
- package/dist/showcase/assets/metrics-overview-DSRwW-3j.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-BTdSpUV_.js +0 -54
- package/dist/showcase/assets/minus-BaXg6nPb.js +0 -1
- package/dist/showcase/assets/money-display-HegN6NVU.js +0 -1
- package/dist/showcase/assets/month-year-picker-DGSalGea.js +0 -1
- package/dist/showcase/assets/navigation-B9kcgNmJ.js +0 -90
- package/dist/showcase/assets/navigation-D4OJbw4T.js +0 -231
- package/dist/showcase/assets/navigation-extras-xm_wzPZr.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-CWuCJKDd.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-Dq-I4MUu.js +0 -1
- package/dist/showcase/assets/overlays-BHf9SZOh.js +0 -159
- package/dist/showcase/assets/overlays-DziL3nVU.js +0 -408
- package/dist/showcase/assets/overview-Cc69up8i.js +0 -184
- package/dist/showcase/assets/package-Bc-NuFnd.js +0 -1
- package/dist/showcase/assets/package-check-5LQwCfGh.js +0 -1
- package/dist/showcase/assets/page-B2o5HSfY.js +0 -1
- package/dist/showcase/assets/page-action-button-CfS6vsyC.js +0 -1
- package/dist/showcase/assets/page-header-W6quU5pO.js +0 -1
- package/dist/showcase/assets/pagination-Bfs7Zszm.js +0 -1
- package/dist/showcase/assets/pagination-DHs104ji.js +0 -42
- package/dist/showcase/assets/paperclip-CXeiMywc.js +0 -1
- package/dist/showcase/assets/password-input-C61t743N.js +0 -1
- package/dist/showcase/assets/pencil-C1TXsTfP.js +0 -1
- package/dist/showcase/assets/phone-Bh-68R_E.js +0 -1
- package/dist/showcase/assets/plus-CKBaO4jG.js +0 -1
- package/dist/showcase/assets/popover-C_7qLizt.js +0 -1
- package/dist/showcase/assets/popover-hgtHqd0h.js +0 -1
- package/dist/showcase/assets/popover-menu-DmYSBsji.js +0 -1
- package/dist/showcase/assets/products-DSvcQz-Q.js +0 -423
- package/dist/showcase/assets/progress-Chxeo8g4.js +0 -18
- package/dist/showcase/assets/progress-fYPoCyf-.js +0 -1
- package/dist/showcase/assets/props-table-izArO1Pv.js +0 -1
- package/dist/showcase/assets/props.generated-cO7HmIpY.json +0 -41578
- package/dist/showcase/assets/quote-wvfNu9t7.js +0 -1
- package/dist/showcase/assets/receipt-BlXBX4ZJ.js +0 -1
- package/dist/showcase/assets/receipt-text-stSsUTV5.js +0 -1
- package/dist/showcase/assets/refinement-guide-Bri81J9N.js +0 -189
- package/dist/showcase/assets/refresh-cw-tZzNDEGO.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-Cti97iX8.js +0 -1
- package/dist/showcase/assets/resource-B727CTVi.js +0 -139
- package/dist/showcase/assets/resource-DytT_quB.js +0 -1
- package/dist/showcase/assets/resource-selector-card-wNuW382N.js +0 -43
- package/dist/showcase/assets/rich-text-editor-DdK5YD0y.js +0 -143
- package/dist/showcase/assets/rich-text-editor-DqY2H6e0.js +0 -124
- package/dist/showcase/assets/rotate-ccw-Bp4aMDrI.js +0 -1
- package/dist/showcase/assets/route-D2owHMka.js +0 -1
- package/dist/showcase/assets/save-DjC_iy0t.js +0 -1
- package/dist/showcase/assets/schema-form-CQtLwGC1.js +0 -327
- package/dist/showcase/assets/scroll-area-BQlHFfkG.js +0 -32
- package/dist/showcase/assets/scroll-area-D3Rrt85s.js +0 -1
- package/dist/showcase/assets/section-DYfGx1Q5.js +0 -1
- package/dist/showcase/assets/select-BCJGhRpc.js +0 -1
- package/dist/showcase/assets/select-Cf5EigqA.js +0 -1
- package/dist/showcase/assets/send-86Vr11Ys.js +0 -1
- package/dist/showcase/assets/separator-BHjNVb5O.js +0 -1
- package/dist/showcase/assets/separator-BejjbTbO.js +0 -28
- package/dist/showcase/assets/settings-2-DNNVOsjP.js +0 -1
- package/dist/showcase/assets/settings-Bsi5BLx5.js +0 -1
- package/dist/showcase/assets/sheet-BazhMvfb.js +0 -1
- package/dist/showcase/assets/shield-alert-D-Jbocfj.js +0 -1
- package/dist/showcase/assets/shield-check-D9eDVcJ1.js +0 -1
- package/dist/showcase/assets/shield-xI2P9G5d.js +0 -1
- package/dist/showcase/assets/shopping-bag-DOGs3sez.js +0 -1
- package/dist/showcase/assets/showcase-s-5CuLAJ.js +0 -132
- package/dist/showcase/assets/sidebar-Rz44gw_a.js +0 -1
- package/dist/showcase/assets/sidebar.context-Bbcdo3o8.js +0 -1
- package/dist/showcase/assets/skeleton-CY8ieqD-.js +0 -1
- package/dist/showcase/assets/skeleton-CgoH6CPT.js +0 -29
- package/dist/showcase/assets/slider-okW2bgkG.js +0 -1
- package/dist/showcase/assets/smart-card-CVwEPwfI.js +0 -1
- package/dist/showcase/assets/sonner-CixCpxj2.js +0 -22
- package/dist/showcase/assets/sortable.esm-DKcVtGTb.js +0 -5
- package/dist/showcase/assets/sparkles-DDEVdtmy.js +0 -1
- package/dist/showcase/assets/spinner-BVGPoAEv.js +0 -49
- package/dist/showcase/assets/spinner-FURXSp1Q.js +0 -1
- package/dist/showcase/assets/spinner-u6TwJ3Ii.js +0 -30
- package/dist/showcase/assets/square-pen-DVXVT0cQ.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CKOQhAx4.js +0 -1
- package/dist/showcase/assets/star-B3ZPfxuz.js +0 -1
- package/dist/showcase/assets/startOfDay-LwMBRUSU.js +0 -1
- package/dist/showcase/assets/styles-UIKkojWJ.js +0 -1
- package/dist/showcase/assets/suggestions-DbrzKjbi.js +0 -126
- package/dist/showcase/assets/switch-CAw84QpS.js +0 -1
- package/dist/showcase/assets/switch-Cjt2MCgr.js +0 -1
- package/dist/showcase/assets/sync-DWbqfpBH.js +0 -124
- package/dist/showcase/assets/table-Bx5lo5FP.js +0 -686
- package/dist/showcase/assets/table-C2RQulDb.js +0 -1
- package/dist/showcase/assets/table-actions-Clo3WEfM.js +0 -1
- package/dist/showcase/assets/tabs-DRtlcg6b.js +0 -19
- package/dist/showcase/assets/tabs-wMPtvuT5.js +0 -1
- package/dist/showcase/assets/tags-input-D5FpWOWF.js +0 -1
- package/dist/showcase/assets/text-button-Cwh6D6qG.js +0 -1
- package/dist/showcase/assets/text-link-DI1uXdGl.js +0 -1
- package/dist/showcase/assets/textarea-CGbt4gBZ.js +0 -1
- package/dist/showcase/assets/textarea-JPgPLhyk.js +0 -1
- package/dist/showcase/assets/timelines-CkHN08n6.js +0 -200
- package/dist/showcase/assets/toggle-group-BpXkR9uD.js +0 -1
- package/dist/showcase/assets/toggles-DK9iCbki.js +0 -71
- package/dist/showcase/assets/toggles-group-DwzRj0f7.js +0 -32
- package/dist/showcase/assets/tooltip-PtP1suag.js +0 -31
- package/dist/showcase/assets/trash-2-BE4XUI2g.js +0 -1
- package/dist/showcase/assets/trending-up-ByxOf-nR.js +0 -1
- package/dist/showcase/assets/truck-RTOdcRV0.js +0 -1
- package/dist/showcase/assets/typography-BKLgHDxU.js +0 -223
- package/dist/showcase/assets/ui-badge-DIh_3Wmo.js +0 -28
- package/dist/showcase/assets/ui-card-BOdHnZwv.js +0 -30
- package/dist/showcase/assets/ui-table-BW4FCClv.js +0 -42
- package/dist/showcase/assets/upload-tray-CV9_5Lpa.js +0 -138
- package/dist/showcase/assets/use-layout-link-MyeE-CDj.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DSaog2w5.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-DSpPzrxG.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-DsuJtES0.js +0 -1
- package/dist/showcase/assets/useCompositeItem-lbAimLrR.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-pRXWGj4x.js +0 -1
- package/dist/showcase/assets/useLabelableId-IRM1zB5m.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CHDcTj9f.js +0 -1
- package/dist/showcase/assets/useRender-Ogz5zjeJ.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-Du6btFNB.js +0 -1
- package/dist/showcase/assets/useValueChanged-CXpsR4fl.js +0 -1
- package/dist/showcase/assets/user-plus-CLj8AZe1.js +0 -1
- package/dist/showcase/assets/user-ymdT26JK.js +0 -1
- package/dist/showcase/assets/users-BGba2Xwv.js +0 -1
- package/dist/showcase/assets/vendor-profile-Ci6c9mFC.js +0 -37
- package/dist/showcase/assets/video-BcKa36-p.js +0 -1
- package/dist/showcase/assets/wrench-Cj2hRrih.js +0 -1
- package/dist/showcase/assets/x-iCqjAC2D.js +0 -1
- package/dist/showcase/assets/zap-H4bc_OhS.js +0 -1
|
@@ -1,354 +0,0 @@
|
|
|
1
|
-
import { useStrings as e } from "../lib/strings.js";
|
|
2
|
-
import { n as t } from "./ui-provider-Dj6OSOZi.js";
|
|
3
|
-
import { cn as n } from "../lib/utils.js";
|
|
4
|
-
import { t as r } from "./button-vv59_uS_.js";
|
|
5
|
-
import { i, n as a, t as o } from "./tooltip-CLr_sPX8.js";
|
|
6
|
-
import { s } from "./typography-DXvCmE8w.js";
|
|
7
|
-
import { r as c, t as l } from "./alert-D23Q7I0W.js";
|
|
8
|
-
import { a as u, g as d, r as f, t as p } from "./dropdown-menu-CoWmrjYX.js";
|
|
9
|
-
import { Fragment as m, forwardRef as h, isValidElement as g, useCallback as _, useState as v } from "react";
|
|
10
|
-
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
11
|
-
import { ChevronDown as x, Info as S, MoreHorizontal as C } from "lucide-react";
|
|
12
|
-
//#region src/components/ui/card.tsx
|
|
13
|
-
function w({ className: e, size: t = "default", ...r }) {
|
|
14
|
-
return /* @__PURE__ */ y("div", {
|
|
15
|
-
"data-slot": "card",
|
|
16
|
-
"data-size": t,
|
|
17
|
-
className: n("ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col", e),
|
|
18
|
-
...r
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
function T({ className: e, ...t }) {
|
|
22
|
-
return /* @__PURE__ */ y("div", {
|
|
23
|
-
"data-slot": "card-header",
|
|
24
|
-
className: n("gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]", e),
|
|
25
|
-
...t
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function E({ className: e, ...t }) {
|
|
29
|
-
return /* @__PURE__ */ y("div", {
|
|
30
|
-
"data-slot": "card-title",
|
|
31
|
-
className: n("text-base leading-normal font-medium group-data-[size=sm]/card:text-sm", e),
|
|
32
|
-
...t
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
function D({ className: e, ...t }) {
|
|
36
|
-
return /* @__PURE__ */ y("div", {
|
|
37
|
-
"data-slot": "card-description",
|
|
38
|
-
className: n("text-muted-foreground text-sm", e),
|
|
39
|
-
...t
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
function O({ className: e, ...t }) {
|
|
43
|
-
return /* @__PURE__ */ y("div", {
|
|
44
|
-
"data-slot": "card-content",
|
|
45
|
-
className: n("px-6 group-data-[size=sm]/card:px-4", e),
|
|
46
|
-
...t
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
function k({ className: e, ...t }) {
|
|
50
|
-
return /* @__PURE__ */ y("div", {
|
|
51
|
-
"data-slot": "card-footer",
|
|
52
|
-
className: n("rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center", e),
|
|
53
|
-
...t
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
//#endregion
|
|
57
|
-
//#region src/components/base/cards/smart-card.tokens.ts
|
|
58
|
-
var A = {
|
|
59
|
-
root: "card--component",
|
|
60
|
-
header: "card--header",
|
|
61
|
-
title: "card--title",
|
|
62
|
-
description: "card--description",
|
|
63
|
-
content: "card--content",
|
|
64
|
-
footer: "card--footer",
|
|
65
|
-
alert: "card--alert"
|
|
66
|
-
}, j = {
|
|
67
|
-
small: {
|
|
68
|
-
shell: "gap-space-lg py-surface-sm",
|
|
69
|
-
headerX: "px-surface-sm",
|
|
70
|
-
contentX: "px-surface-sm",
|
|
71
|
-
contentY: "py-0",
|
|
72
|
-
footerX: "px-surface-sm",
|
|
73
|
-
alertX: "px-surface-sm",
|
|
74
|
-
alertOffsetWithHeader: "-mt-1",
|
|
75
|
-
alertOffsetStandalone: "mt-0"
|
|
76
|
-
},
|
|
77
|
-
default: {
|
|
78
|
-
shell: "gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]",
|
|
79
|
-
headerX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
80
|
-
contentX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
81
|
-
contentY: "py-0",
|
|
82
|
-
footerX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
83
|
-
alertX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
84
|
-
alertOffsetWithHeader: "-mt-1",
|
|
85
|
-
alertOffsetStandalone: "mt-0"
|
|
86
|
-
}
|
|
87
|
-
}, M = {
|
|
88
|
-
card: "rounded-lg border border-border bg-card text-card-foreground shadow-xs",
|
|
89
|
-
flat: "bg-transparent text-card-foreground border-none shadow-none",
|
|
90
|
-
framed: n("rounded-lg border border-border bg-card text-card-foreground shadow-xs", "ring-4 ring-border/30")
|
|
91
|
-
};
|
|
92
|
-
//#endregion
|
|
93
|
-
//#region src/components/base/cards/partials/has-renderable-content.ts
|
|
94
|
-
function N(e) {
|
|
95
|
-
return e == null || typeof e == "boolean" ? !1 : typeof e == "string" ? e.trim().length > 0 : typeof e == "number" || typeof e == "bigint" ? !0 : Array.isArray(e) ? e.some(N) : g(e) && e.type === m ? N(e.props.children) : !0;
|
|
96
|
-
}
|
|
97
|
-
//#endregion
|
|
98
|
-
//#region src/components/base/cards/partials/card-primitives.tsx
|
|
99
|
-
function P({ className: e, ...t }) {
|
|
100
|
-
return /* @__PURE__ */ y(w, {
|
|
101
|
-
className: n(A.root, "flex w-full flex-col gap-3 py-4 ring-0", e),
|
|
102
|
-
...t
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
function F({ className: e, ...t }) {
|
|
106
|
-
return /* @__PURE__ */ y(T, {
|
|
107
|
-
className: n(A.header, "flex flex-col gap-1 px-4", e),
|
|
108
|
-
...t
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
function I({ className: e, children: t, ...r }) {
|
|
112
|
-
return N(t) ? typeof t == "string" || typeof t == "number" || typeof t == "bigint" ? /* @__PURE__ */ y(s, {
|
|
113
|
-
"data-slot": "card-title",
|
|
114
|
-
tag: "div",
|
|
115
|
-
weight: "semibold",
|
|
116
|
-
lineHeight: "tight",
|
|
117
|
-
className: n(A.title, "min-w-0 font-semibold", e),
|
|
118
|
-
...r,
|
|
119
|
-
children: t
|
|
120
|
-
}) : /* @__PURE__ */ y(E, {
|
|
121
|
-
className: n(A.title, "min-w-0 text-sm leading-tight font-semibold", e),
|
|
122
|
-
...r,
|
|
123
|
-
children: t
|
|
124
|
-
}) : null;
|
|
125
|
-
}
|
|
126
|
-
function L({ className: e, children: t, ...r }) {
|
|
127
|
-
return N(t) ? typeof t == "string" || typeof t == "number" || typeof t == "bigint" ? /* @__PURE__ */ y(s, {
|
|
128
|
-
"data-slot": "card-description",
|
|
129
|
-
tag: "div",
|
|
130
|
-
type: "secondary",
|
|
131
|
-
className: n(A.description, "text-muted-foreground text-sm", e),
|
|
132
|
-
...r,
|
|
133
|
-
children: t
|
|
134
|
-
}) : /* @__PURE__ */ y(D, {
|
|
135
|
-
className: n(A.description, "text-muted-foreground text-sm", e),
|
|
136
|
-
...r,
|
|
137
|
-
children: t
|
|
138
|
-
}) : null;
|
|
139
|
-
}
|
|
140
|
-
function R({ className: e, ...t }) {
|
|
141
|
-
return /* @__PURE__ */ y(O, {
|
|
142
|
-
className: n(A.content, "px-4", e),
|
|
143
|
-
...t
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
function z({ className: e, ...t }) {
|
|
147
|
-
return /* @__PURE__ */ y(k, {
|
|
148
|
-
className: n(A.footer, "flex items-center px-4", e),
|
|
149
|
-
...t
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
//#endregion
|
|
153
|
-
//#region src/components/base/cards/partials/smart-card-alert.tsx
|
|
154
|
-
function ee({ alert: e, alertVariant: t, hasHeader: r, padding: i }) {
|
|
155
|
-
let a = j[i];
|
|
156
|
-
return /* @__PURE__ */ y("div", {
|
|
157
|
-
className: n(A.alert, a.alertX, r ? a.alertOffsetWithHeader : a.alertOffsetStandalone),
|
|
158
|
-
children: /* @__PURE__ */ y(l, {
|
|
159
|
-
variant: t,
|
|
160
|
-
children: /* @__PURE__ */ y(c, { children: e })
|
|
161
|
-
})
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
//#endregion
|
|
165
|
-
//#region src/components/base/cards/partials/smart-card-actions-menu.tsx
|
|
166
|
-
function B({ actions: e, actionsLabel: t }) {
|
|
167
|
-
return /* @__PURE__ */ b(p, { children: [/* @__PURE__ */ y(d, {
|
|
168
|
-
type: "button",
|
|
169
|
-
"aria-label": t,
|
|
170
|
-
className: n("inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0", "text-muted-foreground hover:bg-accent hover:text-accent-foreground", "outline-none focus-visible:ring-2 focus-visible:ring-ring/50", "transition-colors"),
|
|
171
|
-
children: /* @__PURE__ */ y(C, { className: "size-4" })
|
|
172
|
-
}), /* @__PURE__ */ y(f, {
|
|
173
|
-
align: "end",
|
|
174
|
-
className: "min-w-36",
|
|
175
|
-
children: e.map((e, t) => /* @__PURE__ */ b(u, {
|
|
176
|
-
onClick: e.onClick,
|
|
177
|
-
disabled: e.disabled,
|
|
178
|
-
className: "gap-space-lg px-row-x py-row-y text-sm",
|
|
179
|
-
children: [!!e.icon && /* @__PURE__ */ y("span", {
|
|
180
|
-
className: "flex shrink-0 items-center",
|
|
181
|
-
children: e.icon
|
|
182
|
-
}), e.label]
|
|
183
|
-
}, e.id ?? `${e.label}-${t}`))
|
|
184
|
-
})] });
|
|
185
|
-
}
|
|
186
|
-
//#endregion
|
|
187
|
-
//#region src/components/base/cards/partials/smart-card-header-row.tsx
|
|
188
|
-
function V({ tooltipLabel: e }) {
|
|
189
|
-
return /* @__PURE__ */ y(i, { render: (t) => {
|
|
190
|
-
let i = t;
|
|
191
|
-
return /* @__PURE__ */ y(r, {
|
|
192
|
-
...i,
|
|
193
|
-
type: "button",
|
|
194
|
-
variant: "secondary",
|
|
195
|
-
buttonStyle: "ghost",
|
|
196
|
-
size: "icon-small",
|
|
197
|
-
className: n("h-5 w-5 text-muted-foreground", i.className),
|
|
198
|
-
"aria-label": e,
|
|
199
|
-
children: /* @__PURE__ */ y(S, { className: "size-3.5" })
|
|
200
|
-
});
|
|
201
|
-
} });
|
|
202
|
-
}
|
|
203
|
-
function te({ icon: e, title: t, titleSuffix: r, description: i, tooltip: s, tooltipLabel: c, headerStart: l, headerEnd: u, headerAction: d, actions: f, actionsLabel: p, padding: m, className: h }) {
|
|
204
|
-
let g = Array.isArray(f) ? f : [], _ = g.length > 0, v = N(e), x = N(t), S = N(r), C = N(i), w = N(s), T = N(l), E = N(u), D = N(d), O = v || x || S || w, k = E || D || _;
|
|
205
|
-
return /* @__PURE__ */ b(F, {
|
|
206
|
-
className: n("flex-row items-start justify-between gap-3 pb-0", j[m].headerX, h),
|
|
207
|
-
children: [/* @__PURE__ */ b("div", {
|
|
208
|
-
className: "flex min-w-0 flex-1 flex-col gap-1",
|
|
209
|
-
children: [
|
|
210
|
-
!!T && l,
|
|
211
|
-
!!O && /* @__PURE__ */ b("div", {
|
|
212
|
-
className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",
|
|
213
|
-
children: [
|
|
214
|
-
!!v && /* @__PURE__ */ y("span", {
|
|
215
|
-
className: "flex shrink-0 items-center text-muted-foreground",
|
|
216
|
-
children: e
|
|
217
|
-
}),
|
|
218
|
-
/* @__PURE__ */ y(I, { children: t }),
|
|
219
|
-
!!S && /* @__PURE__ */ y("div", {
|
|
220
|
-
className: "flex items-center gap-2",
|
|
221
|
-
children: r
|
|
222
|
-
}),
|
|
223
|
-
!!w && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(V, { tooltipLabel: c }), /* @__PURE__ */ y(a, { children: s })] })
|
|
224
|
-
]
|
|
225
|
-
}),
|
|
226
|
-
!!C && /* @__PURE__ */ y(L, {
|
|
227
|
-
className: "text-left",
|
|
228
|
-
children: i
|
|
229
|
-
})
|
|
230
|
-
]
|
|
231
|
-
}), !!k && /* @__PURE__ */ b("div", {
|
|
232
|
-
className: "flex shrink-0 items-center gap-2",
|
|
233
|
-
children: [
|
|
234
|
-
!!E && u,
|
|
235
|
-
!!D && d,
|
|
236
|
-
!!_ && /* @__PURE__ */ y(B, {
|
|
237
|
-
actions: g,
|
|
238
|
-
actionsLabel: p
|
|
239
|
-
})
|
|
240
|
-
]
|
|
241
|
-
})]
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
//#endregion
|
|
245
|
-
//#region src/components/base/cards/smart-card.strings.ts
|
|
246
|
-
var H = {
|
|
247
|
-
expandLabel: "Expand card",
|
|
248
|
-
collapseLabel: "Collapse card"
|
|
249
|
-
};
|
|
250
|
-
//#endregion
|
|
251
|
-
//#region src/components/base/cards/partials/smart-card-skeleton.tsx
|
|
252
|
-
function U({ title: e, lines: t = 2, className: r }) {
|
|
253
|
-
let i = ({ barClassName: e }) => /* @__PURE__ */ y("div", { className: n("animate-pulse rounded bg-muted", e) });
|
|
254
|
-
return /* @__PURE__ */ b(P, {
|
|
255
|
-
className: n(M.card, "gap-4 py-6", r),
|
|
256
|
-
children: [/* @__PURE__ */ y(F, {
|
|
257
|
-
className: "flex-col gap-1.5 px-6 pb-0",
|
|
258
|
-
children: e ? /* @__PURE__ */ y(I, { children: e }) : /* @__PURE__ */ y(i, { barClassName: "h-4 w-32" })
|
|
259
|
-
}), /* @__PURE__ */ y(R, {
|
|
260
|
-
className: "space-y-3 px-6 py-0",
|
|
261
|
-
children: Array.from({ length: t }, (e, t) => /* @__PURE__ */ y(i, { barClassName: n("h-4", t === 0 ? "w-full" : "w-3/4") }, `skel-${String(t)}`))
|
|
262
|
-
})]
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
U.displayName = "SmartCardSkeleton";
|
|
266
|
-
//#endregion
|
|
267
|
-
//#region src/components/base/cards/smart-card.tsx
|
|
268
|
-
function ne(e) {
|
|
269
|
-
return e === "small" || e === "default" ? e : e === "sm" ? "small" : "default";
|
|
270
|
-
}
|
|
271
|
-
var W = h(function({ icon: i, title: a, titleSuffix: o, description: s, tooltip: c, tooltipAriaLabel: l = "Card info", footerText: u, alert: d, alertVariant: f = "default", surface: p, transparent: m = !1, padding: h, actions: g, actionsLabel: S = "Card actions", headerAction: C, headerStart: w, headerEnd: T, contentTop: E, contentBottom: D, footerSlot: O, headerDivider: k = !1, footerDivider: A = !1, expandable: F = !1, defaultExpanded: I = !1, expanded: L, onExpandedChange: B, children: V, className: U, headerClassName: W, contentClassName: re, footerClassName: G, strings: ie }, ae) {
|
|
272
|
-
let { defaultPadding: oe } = t(), K = ne(h ?? oe), q = j[K], J = Array.isArray(g) ? g : [], Y = e(H, ie), X = F !== !1 && F !== void 0, Z = typeof F == "object" && F?.collapsedMaxHeight !== void 0 ? F.collapsedMaxHeight : "12rem", se = typeof Z == "number" ? `${Z}px` : Z, Q = L !== void 0, [ce, le] = v(I), $ = Q ? L : ce, ue = _(() => {
|
|
273
|
-
let e = !$;
|
|
274
|
-
Q || le(e), B?.(e);
|
|
275
|
-
}, [
|
|
276
|
-
$,
|
|
277
|
-
Q,
|
|
278
|
-
B
|
|
279
|
-
]), de = N(i) || N(a) || N(s) || J.length > 0 || N(C) || N(w) || N(T), fe = N(d), pe = N(u), me = N(O), he = N(E), ge = N(D), _e = l.trim().length > 0 ? l : "Card info", ve = X ? { maxHeight: $ ? "" : se } : void 0, ye = p ?? (m ? "flat" : "framed");
|
|
280
|
-
return /* @__PURE__ */ b(P, {
|
|
281
|
-
ref: ae,
|
|
282
|
-
"data-surface": ye,
|
|
283
|
-
className: n(M[ye], q.shell, X && "relative pb-1 !overflow-visible", U),
|
|
284
|
-
children: [
|
|
285
|
-
!!de && /* @__PURE__ */ y(te, {
|
|
286
|
-
icon: i,
|
|
287
|
-
title: a,
|
|
288
|
-
titleSuffix: o,
|
|
289
|
-
description: s,
|
|
290
|
-
tooltip: c,
|
|
291
|
-
tooltipLabel: _e,
|
|
292
|
-
headerStart: w,
|
|
293
|
-
headerEnd: T,
|
|
294
|
-
headerAction: C,
|
|
295
|
-
actions: J,
|
|
296
|
-
actionsLabel: S,
|
|
297
|
-
padding: K,
|
|
298
|
-
className: n(k && "pb-3 border-b border-border/60", W)
|
|
299
|
-
}),
|
|
300
|
-
!!fe && /* @__PURE__ */ y(ee, {
|
|
301
|
-
alert: d,
|
|
302
|
-
alertVariant: f,
|
|
303
|
-
hasHeader: de,
|
|
304
|
-
padding: K
|
|
305
|
-
}),
|
|
306
|
-
/* @__PURE__ */ b(R, {
|
|
307
|
-
className: n(q.contentX, q.contentY, X && "relative overflow-hidden transition-[max-height] duration-500 ease-in-out", re),
|
|
308
|
-
style: ve,
|
|
309
|
-
children: [
|
|
310
|
-
!!he && E,
|
|
311
|
-
V,
|
|
312
|
-
!!ge && D,
|
|
313
|
-
!!X && !$ && /* @__PURE__ */ y("div", {
|
|
314
|
-
"aria-hidden": "true",
|
|
315
|
-
className: "from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent"
|
|
316
|
-
})
|
|
317
|
-
]
|
|
318
|
-
}),
|
|
319
|
-
!!pe && /* @__PURE__ */ y(z, {
|
|
320
|
-
className: n("justify-end text-xs text-muted-foreground", q.footerX, A && "pt-3 border-t border-border/60", G),
|
|
321
|
-
children: u
|
|
322
|
-
}),
|
|
323
|
-
!!me && /* @__PURE__ */ y(z, {
|
|
324
|
-
className: n("flex-col items-stretch", q.footerX, A && "pt-3 border-t border-border/60", G),
|
|
325
|
-
children: O
|
|
326
|
-
}),
|
|
327
|
-
!!X && /* @__PURE__ */ y("div", {
|
|
328
|
-
className: "absolute -bottom-4 left-1/2 -translate-x-1/2 z-10",
|
|
329
|
-
children: /* @__PURE__ */ b(r, {
|
|
330
|
-
type: "button",
|
|
331
|
-
variant: "secondary",
|
|
332
|
-
buttonStyle: "outline",
|
|
333
|
-
size: "icon-small",
|
|
334
|
-
onClick: ue,
|
|
335
|
-
"aria-expanded": $,
|
|
336
|
-
"aria-label": $ ? Y.collapseLabel : Y.expandLabel,
|
|
337
|
-
className: n("inline-flex size-8 items-center justify-center rounded-full", "border border-border bg-background text-foreground shadow-sm", "hover:bg-muted/40 transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50"),
|
|
338
|
-
children: [/* @__PURE__ */ y(x, {
|
|
339
|
-
"aria-hidden": "true",
|
|
340
|
-
className: n("size-4 transition-transform duration-300", $ && "rotate-180")
|
|
341
|
-
}), /* @__PURE__ */ y("span", {
|
|
342
|
-
className: "sr-only",
|
|
343
|
-
children: $ ? Y.collapseLabel : Y.expandLabel
|
|
344
|
-
})]
|
|
345
|
-
})
|
|
346
|
-
})
|
|
347
|
-
]
|
|
348
|
-
});
|
|
349
|
-
});
|
|
350
|
-
W.displayName = "SmartCard";
|
|
351
|
-
//#endregion
|
|
352
|
-
export { L as a, P as c, R as i, I as l, U as n, z as o, H as r, F as s, W as t };
|
|
353
|
-
|
|
354
|
-
//# sourceMappingURL=cards-CMNXFo3Y.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cards-CMNXFo3Y.js","names":[],"sources":["../../src/components/ui/card.tsx","../../src/components/base/cards/smart-card.tokens.ts","../../src/components/base/cards/partials/has-renderable-content.ts","../../src/components/base/cards/partials/card-primitives.tsx","../../src/components/base/cards/partials/smart-card-alert.tsx","../../src/components/base/cards/partials/smart-card-actions-menu.tsx","../../src/components/base/cards/partials/smart-card-header-row.tsx","../../src/components/base/cards/smart-card.strings.ts","../../src/components/base/cards/partials/smart-card-skeleton.tsx","../../src/components/base/cards/smart-card.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\"ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-base leading-normal font-medium group-data-[size=sm]/card:text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","import { cn } from '@/lib/utils';\n\nimport type { CardPadding, SmartCardSurface } from './smart-card.types';\n\n/**\n * BEM-style hooks applied to every SmartCard subregion. Library\n * consumers can target them in CSS / tests / analytics without\n * relying on shadcn's data-slot attributes (which are framework\n * internals). Keep these names consistent — they are part of the\n * public DOM contract.\n */\nexport const CARD_BEM = {\n\troot: 'card--component',\n\theader: 'card--header',\n\ttitle: 'card--title',\n\tdescription: 'card--description',\n\tcontent: 'card--content',\n\tfooter: 'card--footer',\n\talert: 'card--alert',\n} as const;\n\ninterface PaddingTokens {\n\tshell: string;\n\theaderX: string;\n\tcontentX: string;\n\tcontentY: string;\n\tfooterX: string;\n\talertX: string;\n\t/** Vertical offset applied when alert sits BELOW the header (pulls it up). */\n\talertOffsetWithHeader: string;\n\t/** Vertical spacing applied when alert is the first content (no header). */\n\talertOffsetStandalone: string;\n}\n\nexport const PADDING: Record<CardPadding, PaddingTokens> = {\n\tsmall: {\n\t\tshell: 'gap-space-lg py-surface-sm',\n\t\theaderX: 'px-surface-sm',\n\t\tcontentX: 'px-surface-sm',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-surface-sm',\n\t\talertX: 'px-surface-sm',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n\tdefault: {\n\t\tshell: 'gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]',\n\t\theaderX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n};\n\n/**\n * Surface-specific shell classes. The `framed` variant provides one clean\n * card surface with a soft tokenized ring, not nested borders that compete\n * with the example chrome.\n */\nexport const SURFACE_CLASSES: Record<SmartCardSurface, string> = {\n\tcard: 'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\tflat: 'bg-transparent text-card-foreground border-none shadow-none',\n\tframed: cn(\n\t\t'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\t\t'ring-4 ring-border/30',\n\t),\n};\n","import { Fragment, isValidElement, type ReactNode } from 'react';\n\n/**\n * Predicate used by SmartCard subregions to decide whether each slot\n * warrants rendering its wrapper. Numbers (incl. `0`) and JSX always\n * render; falsy / empty-string content is treated as absent. Fragments\n * recurse into their children.\n */\nexport function hasRenderableContent(content?: ReactNode): boolean {\n\tif (content === null || content === undefined) return false;\n\tif (typeof content === 'boolean') return false;\n\tif (typeof content === 'string') return content.trim().length > 0;\n\tif (typeof content === 'number' || typeof content === 'bigint') return true;\n\tif (Array.isArray(content)) return content.some(hasRenderableContent);\n\tif (isValidElement<{ children?: ReactNode }>(content)) {\n\t\tif (content.type === Fragment) return hasRenderableContent(content.props.children);\n\t\treturn true;\n\t}\n\treturn true;\n}\n","/**\n * Internal layout primitives — re-exported from `smart-card.tsx` for\n * advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each primitive is intentionally thin:\n * a single responsibility, a single set of default classes, no business\n * logic. The BEM hooks (`card--component`, `card--header`, etc.) are\n * applied here so the public DOM contract lives in one place.\n */\nimport {\n\ttype ComponentPropsWithRef,\n\ttype ComponentPropsWithoutRef,\n} from 'react';\n\nimport {\n\tCard as CardPrimitive,\n\tCardContent as CardContentPrimitive,\n\tCardDescription as CardDescriptionPrimitive,\n\tCardFooter as CardFooterPrimitive,\n\tCardHeader as CardHeaderPrimitive,\n\tCardTitle as CardTitlePrimitive,\n} from '@/components/ui/card';\nimport Text from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM } from '../smart-card.tokens';\n\nimport { hasRenderableContent } from './has-renderable-content';\n\nexport function CardShell({ className, ...props }: ComponentPropsWithRef<'div'>) {\n\treturn (\n\t\t<CardPrimitive\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.root,\n\t\t\t\t'flex w-full flex-col gap-3 py-4 ring-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardHeader({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardHeaderPrimitive\n\t\t\tclassName={cn(CARD_BEM.header, 'flex flex-col gap-1 px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardTitle({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardTitlePrimitive\n\t\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 text-sm leading-tight font-semibold', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardTitlePrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-title\"\n\t\t\ttag=\"div\"\n\t\t\tweight=\"semibold\"\n\t\t\tlineHeight=\"tight\"\n\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 font-semibold', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardDescription({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardDescriptionPrimitive\n\t\t\t\tclassName={cn(\n\t\t\t\t\tCARD_BEM.description,\n\t\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardDescriptionPrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-description\"\n\t\t\ttag=\"div\"\n\t\t\ttype=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.description,\n\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardContent({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardContentPrimitive\n\t\t\tclassName={cn(CARD_BEM.content, 'px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardFooter({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardFooterPrimitive\n\t\t\tclassName={cn(CARD_BEM.footer, 'flex items-center px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","/**\n * Inline alert banner rendered between the header and the card body.\n * Pulls itself up under the header (`alertOffsetWithHeader`) when one\n * exists so the visual gap between header bottom and alert top stays\n * tight; otherwise pushes itself down (`alertOffsetStandalone`) so it\n * doesn't kiss the card top edge.\n */\nimport type { ReactNode } from 'react';\n\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM, PADDING } from '../smart-card.tokens';\nimport type { CardAlertVariant, CardPadding } from '../smart-card.types';\n\ninterface AlertSlotProps {\n\talert: ReactNode | string;\n\talertVariant: CardAlertVariant;\n\thasHeader: boolean;\n\tpadding: CardPadding;\n}\n\nexport function SmartCardAlert({\n\talert,\n\talertVariant,\n\thasHeader,\n\tpadding,\n}: AlertSlotProps) {\n\tconst tokens = PADDING[padding];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.alert,\n\t\t\t\ttokens.alertX,\n\t\t\t\thasHeader ? tokens.alertOffsetWithHeader : tokens.alertOffsetStandalone,\n\t\t\t)}\n\t\t>\n\t\t\t<Alert variant={alertVariant}>\n\t\t\t\t<AlertDescription>{alert}</AlertDescription>\n\t\t\t</Alert>\n\t\t</div>\n\t);\n}\n","/**\n * SmartCard actions menu — `⋮` trigger + dropdown of consumer-supplied\n * `SmartCardAction` items. Always renders a 28×28 square trigger so it\n * reads cleanly as a circle (consumer overrides to `rounded-full`) or\n * a rectangle (default `rounded-md`).\n */\nimport { MoreHorizontal } from 'lucide-react';\n\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport type { SmartCardAction } from '../smart-card.types';\n\ninterface ActionsMenuProps {\n\tactions: SmartCardAction[];\n\tactionsLabel: string;\n}\n\nexport function ActionsMenu({ actions, actionsLabel }: ActionsMenuProps) {\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={actionsLabel}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0',\n\t\t\t\t\t'text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t'outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t'transition-colors',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<MoreHorizontal className=\"size-4\" />\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent align=\"end\" className=\"min-w-36\">\n\t\t\t\t{actions.map((action, index) => (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={action.id ?? `${action.label}-${index}`}\n\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\tclassName=\"gap-space-lg px-row-x py-row-y text-sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!action.icon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center\">{action.icon}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{action.label}\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t))}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * SmartCardHeaderRow — the chrome above the card body. Combines icon /\n * title / description / tooltip / suffix on the leading side with the\n * trailing `headerEnd` / `headerAction` slots and the actions menu.\n *\n * `TooltipTrigger_Info` is colocated here because it's only used by the\n * header — keeping it private avoids polluting the public partial\n * surface.\n */\nimport { Info } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '@/components/base/display/tooltip';\nimport { cn } from '@/lib/utils';\n\nimport { PADDING } from '../smart-card.tokens';\nimport type { CardPadding, SmartCardAction } from '../smart-card.types';\n\nimport { CardHeader, CardTitle, CardDescription } from './card-primitives';\nimport { hasRenderableContent } from './has-renderable-content';\nimport { ActionsMenu } from './smart-card-actions-menu';\n\nfunction TooltipTrigger_Info({ tooltipLabel }: { tooltipLabel: string }) {\n\treturn (\n\t\t<TooltipTrigger\n\t\t\trender={(triggerProps) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst passthrough = triggerProps as Record<string, any>;\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...passthrough}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-5 w-5 text-muted-foreground',\n\t\t\t\t\t\t\tpassthrough.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-label={tooltipLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Info className=\"size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\ninterface HeaderProps {\n\ticon?: ReactNode;\n\ttitle?: ReactNode;\n\ttitleSuffix?: ReactNode;\n\tdescription?: ReactNode;\n\ttooltip?: ReactNode;\n\ttooltipLabel: string;\n\theaderStart?: ReactNode;\n\theaderEnd?: ReactNode;\n\theaderAction?: ReactNode;\n\tactions?: SmartCardAction[];\n\tactionsLabel: string;\n\tpadding: CardPadding;\n\tclassName?: string;\n}\n\nexport function SmartCardHeaderRow({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipLabel,\n\theaderStart,\n\theaderEnd,\n\theaderAction,\n\tactions,\n\tactionsLabel,\n\tpadding,\n\tclassName,\n}: HeaderProps) {\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst hasActions = cardActions.length > 0;\n\n\tconst hasIcon = hasRenderableContent(icon);\n\tconst hasTitle = hasRenderableContent(title);\n\tconst hasTitleSuffix = hasRenderableContent(titleSuffix);\n\tconst hasDescription = hasRenderableContent(description);\n\tconst hasTooltip = hasRenderableContent(tooltip);\n\tconst hasHeaderStart = hasRenderableContent(headerStart);\n\tconst hasHeaderEnd = hasRenderableContent(headerEnd);\n\tconst hasHeaderAction = hasRenderableContent(headerAction);\n\n\tconst showTitleRow = hasIcon || hasTitle || hasTitleSuffix || hasTooltip;\n\tconst showTrailing = hasHeaderEnd || hasHeaderAction || hasActions;\n\n\treturn (\n\t\t<CardHeader\n\t\t\tclassName={cn(\n\t\t\t\t'flex-row items-start justify-between gap-3 pb-0',\n\t\t\t\tPADDING[padding].headerX,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n\t\t\t\t{!!hasHeaderStart && headerStart}\n\n\t\t\t\t{!!showTitleRow && (\n\t\t\t\t\t<div className=\"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1\">\n\t\t\t\t\t\t{!!hasIcon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center text-muted-foreground\">\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<CardTitle>{title}</CardTitle>\n\t\t\t\t\t\t{!!hasTitleSuffix && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">{titleSuffix}</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t<TooltipTrigger_Info tooltipLabel={tooltipLabel} />\n\t\t\t\t\t\t\t\t<TooltipContent>{tooltip}</TooltipContent>\n\t\t\t\t\t\t\t</Tooltip>\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{!!hasDescription && (\n\t\t\t\t\t<CardDescription className=\"text-left\">{description}</CardDescription>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!!showTrailing && (\n\t\t\t\t<div className=\"flex shrink-0 items-center gap-2\">\n\t\t\t\t\t{!!hasHeaderEnd && headerEnd}\n\t\t\t\t\t{!!hasHeaderAction && headerAction}\n\t\t\t\t\t{!!hasActions && (\n\t\t\t\t\t\t<ActionsMenu actions={cardActions} actionsLabel={actionsLabel} />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardHeader>\n\t);\n}\n","/**\n * SmartCard strings — i18n surface for the chrome the consumer doesn't\n * pass directly. Most copy (title, description, action labels, alert\n * body) flows in via props; the strings here cover the implicit\n * affordances (expand toggle).\n */\n\nexport interface SmartCardStrings {\n\texpandLabel: string;\n\tcollapseLabel: string;\n}\n\nexport const defaultSmartCardStrings: SmartCardStrings = {\n\texpandLabel: 'Expand card',\n\tcollapseLabel: 'Collapse card',\n};\n","/**\n * SmartCardSkeleton — placeholder shell rendered while a SmartCard's\n * data is loading. Picks up the canonical card surface so the loading\n * state visually matches the eventual `SmartCard` it'll replace.\n */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { SURFACE_CLASSES } from '../smart-card.tokens';\n\nimport {\n\tCardContent,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './card-primitives';\n\nexport interface SmartCardSkeletonProps {\n\ttitle?: ReactNode;\n\tlines?: number;\n\tclassName?: string;\n}\n\nexport function SmartCardSkeleton({\n\ttitle,\n\tlines = 2,\n\tclassName,\n}: SmartCardSkeletonProps) {\n\tconst SkeletonBar = ({ barClassName }: { barClassName?: string }) => (\n\t\t<div className={cn('animate-pulse rounded bg-muted', barClassName)} />\n\t);\n\n\treturn (\n\t\t<CardShell className={cn(SURFACE_CLASSES.card, 'gap-4 py-6', className)}>\n\t\t\t<CardHeader className=\"flex-col gap-1.5 px-6 pb-0\">\n\t\t\t\t{title ? <CardTitle>{title}</CardTitle> : <SkeletonBar barClassName=\"h-4 w-32\" />}\n\t\t\t</CardHeader>\n\t\t\t<CardContent className=\"space-y-3 px-6 py-0\">\n\t\t\t\t{Array.from({ length: lines }, (_, i) => (\n\t\t\t\t\t<SkeletonBar\n\t\t\t\t\t\tkey={`skel-${String(i)}`}\n\t\t\t\t\t\tbarClassName={cn('h-4', i === 0 ? 'w-full' : 'w-3/4')}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</CardContent>\n\t\t</CardShell>\n\t);\n}\n\nSmartCardSkeleton.displayName = 'SmartCardSkeleton';\n","/**\n * SmartCard — composed card with header (icon, title, suffix, description,\n * tooltip), actions menu, alert banner, header / content / footer slots,\n * surface variants (card / flat / framed), and an opt-in expandable body.\n *\n * The single card primitive everything else builds on — never reach past it\n * to shadcn `Card` directly. The CardShell / CardHeader / CardTitle /\n * CardDescription / CardContent / CardFooter primitives are re-exported\n * for advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each subregion paints a BEM-style hook\n * (`card--component`, `card--header`, `card--title`, …) for CSS / test /\n * analytics targeting independent of shadcn's data-slot internals.\n *\n * The file is a thin orchestrator. The actual chrome lives in:\n * - `./smart-card.types.ts` — public prop / variant types\n * - `./smart-card.strings.ts` — i18n (expand toggle copy)\n * - `./smart-card.tokens.ts` — PADDING + SURFACE_CLASSES + CARD_BEM\n * - `./partials/card-primitives.tsx` — CardShell + CardHeader / Title /\n * Description / Content / Footer\n * - `./partials/smart-card-header-row.tsx` — header layout + actions menu\n * - `./partials/smart-card-alert.tsx` — inline alert banner\n * - `./partials/smart-card-actions-menu.tsx` — `⋮` dropdown\n * - `./partials/smart-card-skeleton.tsx` — loading placeholder\n * - `./partials/has-renderable-content.ts` — slot-empty predicate\n */\nimport { ChevronDown } from 'lucide-react';\nimport {\n\ttype CSSProperties,\n\tforwardRef,\n\tuseCallback,\n\tuseState,\n} from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { useStrings } from '@/lib/strings';\nimport { useCardConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tCardContent,\n\tCardFooter,\n\tCardShell,\n} from './partials/card-primitives';\nimport { hasRenderableContent } from './partials/has-renderable-content';\nimport { SmartCardAlert } from './partials/smart-card-alert';\nimport { SmartCardHeaderRow } from './partials/smart-card-header-row';\nimport {\n\tdefaultSmartCardStrings,\n} from './smart-card.strings';\nimport {\n\tPADDING,\n\tSURFACE_CLASSES,\n} from './smart-card.tokens';\nimport type {\n\tCardPadding,\n\tSmartCardProps,\n\tSmartCardSurface,\n} from './smart-card.types';\n\nfunction normalizeCardPadding(padding: CardPadding | string | undefined): CardPadding {\n\tif (padding === 'small' || padding === 'default') return padding;\n\tif (padding === 'sm') return 'small';\n\tif (padding === 'base' || padding === 'lg') return 'default';\n\treturn 'default';\n}\n\nexport const SmartCard = forwardRef<HTMLDivElement, SmartCardProps>(function SmartCard({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipAriaLabel = 'Card info',\n\tfooterText,\n\talert,\n\talertVariant = 'default',\n\tsurface,\n\ttransparent = false,\n\tpadding,\n\tactions,\n\tactionsLabel = 'Card actions',\n\theaderAction,\n\theaderStart,\n\theaderEnd,\n\tcontentTop,\n\tcontentBottom,\n\tfooterSlot,\n\theaderDivider = false,\n\tfooterDivider = false,\n\texpandable = false,\n\tdefaultExpanded = false,\n\texpanded: expandedProp,\n\tonExpandedChange,\n\tchildren,\n\tclassName,\n\theaderClassName,\n\tcontentClassName,\n\tfooterClassName,\n\tstrings: stringsProp,\n}, ref) {\n\tconst { defaultPadding } = useCardConfig();\n\tconst resolvedPadding = normalizeCardPadding(padding ?? defaultPadding);\n\tconst tokens = PADDING[resolvedPadding];\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst strings = useStrings(defaultSmartCardStrings, stringsProp);\n\n\tconst isExpandable = expandable !== false && expandable !== undefined;\n\tconst collapsedMaxHeightRaw =\n\t\ttypeof expandable === 'object' && expandable?.collapsedMaxHeight !== undefined\n\t\t\t? expandable.collapsedMaxHeight\n\t\t\t: '12rem';\n\tconst collapsedMaxHeight =\n\t\ttypeof collapsedMaxHeightRaw === 'number'\n\t\t\t? `${collapsedMaxHeightRaw}px`\n\t\t\t: collapsedMaxHeightRaw;\n\n\tconst isExpandedControlled = expandedProp !== undefined;\n\tconst [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n\tconst expanded = isExpandedControlled ? expandedProp : internalExpanded;\n\tconst handleToggle = useCallback(() => {\n\t\tconst next = !expanded;\n\t\tif (!isExpandedControlled) setInternalExpanded(next);\n\t\tonExpandedChange?.(next);\n\t}, [expanded, isExpandedControlled, onExpandedChange]);\n\n\tconst hasHeader =\n\t\thasRenderableContent(icon) ||\n\t\thasRenderableContent(title) ||\n\t\thasRenderableContent(description) ||\n\t\tcardActions.length > 0 ||\n\t\thasRenderableContent(headerAction) ||\n\t\thasRenderableContent(headerStart) ||\n\t\thasRenderableContent(headerEnd);\n\n\tconst hasAlert = hasRenderableContent(alert);\n\tconst hasFooterText = hasRenderableContent(footerText);\n\tconst hasFooterSlot = hasRenderableContent(footerSlot);\n\tconst hasContentTop = hasRenderableContent(contentTop);\n\tconst hasContentBottom = hasRenderableContent(contentBottom);\n\n\tconst tooltipLabel =\n\t\ttooltipAriaLabel.trim().length > 0 ? tooltipAriaLabel : 'Card info';\n\n\tconst collapseStyle: CSSProperties | undefined = isExpandable\n\t\t? {\n\t\t\t\tmaxHeight: expanded ? '' : collapsedMaxHeight,\n\t\t\t}\n\t\t: undefined;\n\n\t// Resolve surface — explicit `surface` wins, else legacy `transparent`,\n\t// else the default framed chrome.\n\tconst resolvedSurface: SmartCardSurface = surface ?? (transparent ? 'flat' : 'framed');\n\n\treturn (\n\t\t<CardShell\n\t\t\tref={ref}\n\t\t\tdata-surface={resolvedSurface}\n\t\t\tclassName={cn(\n\t\t\t\tSURFACE_CLASSES[resolvedSurface],\n\t\t\t\ttokens.shell,\n\t\t\t\t// `isExpandable` parks the chevron at `-bottom-4` outside the\n\t\t\t\t// shell — `overflow-visible` lets it render past the card\n\t\t\t\t// edge, otherwise the shadcn primitive's `overflow-hidden`\n\t\t\t\t// clips it.\n\t\t\t\tisExpandable && 'relative pb-1 !overflow-visible',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!hasHeader && (\n\t\t\t\t<SmartCardHeaderRow\n\t\t\t\t\ticon={icon}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\ttitleSuffix={titleSuffix}\n\t\t\t\t\tdescription={description}\n\t\t\t\t\ttooltip={tooltip}\n\t\t\t\t\ttooltipLabel={tooltipLabel}\n\t\t\t\t\theaderStart={headerStart}\n\t\t\t\t\theaderEnd={headerEnd}\n\t\t\t\t\theaderAction={headerAction}\n\t\t\t\t\tactions={cardActions}\n\t\t\t\t\tactionsLabel={actionsLabel}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\theaderDivider && 'pb-3 border-b border-border/60',\n\t\t\t\t\t\theaderClassName,\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!!hasAlert && (\n\t\t\t\t<SmartCardAlert\n\t\t\t\t\talert={alert}\n\t\t\t\t\talertVariant={alertVariant}\n\t\t\t\t\thasHeader={hasHeader}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<CardContent\n\t\t\t\tclassName={cn(\n\t\t\t\t\ttokens.contentX,\n\t\t\t\t\ttokens.contentY,\n\t\t\t\t\tisExpandable &&\n\t\t\t\t\t\t'relative overflow-hidden transition-[max-height] duration-500 ease-in-out',\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={collapseStyle}\n\t\t\t>\n\t\t\t\t{!!hasContentTop && contentTop}\n\t\t\t\t{children}\n\t\t\t\t{!!hasContentBottom && contentBottom}\n\n\t\t\t\t{!!isExpandable && !expanded && (\n\t\t\t\t\t<div\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName=\"from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</CardContent>\n\n\t\t\t{!!hasFooterText && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'justify-end text-xs text-muted-foreground',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerText}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!hasFooterSlot && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-col items-stretch',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerSlot}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!isExpandable && (\n\t\t\t\t<div className=\"absolute -bottom-4 left-1/2 -translate-x-1/2 z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\t\taria-expanded={expanded}\n\t\t\t\t\t\taria-label={expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex size-8 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t'border border-border bg-background text-foreground shadow-sm',\n\t\t\t\t\t\t\t'hover:bg-muted/40 transition-colors',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronDown\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'size-4 transition-transform duration-300',\n\t\t\t\t\t\t\t\texpanded && 'rotate-180',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span className=\"sr-only\">\n\t\t\t\t\t\t\t{expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardShell>\n\t);\n});\n\nSmartCard.displayName = 'SmartCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Re-exports — public surface lives here so `import { ... } from\n// '@/components/base/cards'` keeps working through the file split.\n// ──────────────────────────────────────────────────────────────────────────\n\nexport {\n\tdefaultSmartCardStrings,\n\ttype SmartCardStrings,\n} from './smart-card.strings';\nexport type {\n\tCardAlertVariant,\n\tCardPadding,\n\tSmartCardAction,\n\tSmartCardProps,\n\tSmartCardSkeletonProps,\n\tSmartCardSurface,\n} from './smart-card.types';\nexport {\n\tCardContent,\n\tCardDescription,\n\tCardFooter,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './partials/card-primitives';\nexport { SmartCardSkeleton } from './partials/smart-card-skeleton';\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-DZWtUXf2.cjs"),r=require("../lib/utils.cjs"),i=require("./button-BMiPFJIb.cjs"),a=require("./tooltip-mvxZV_Lu.cjs"),o=require("./typography-pzCKaFOc.cjs"),s=require("./alert-BisCSsOE.cjs"),c=require("./dropdown-menu-CHQzQWUK.cjs");let l=require("react");l=e.t(l,1);let u=require("react/jsx-runtime"),d=require("lucide-react");function f({className:e,size:t=`default`,...n}){return(0,u.jsx)(`div`,{"data-slot":`card`,"data-size":t,className:r.cn(`ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col`,e),...n})}function p({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-header`,className:r.cn(`gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,e),...t})}function m({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-title`,className:r.cn(`text-base leading-normal font-medium group-data-[size=sm]/card:text-sm`,e),...t})}function h({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-description`,className:r.cn(`text-muted-foreground text-sm`,e),...t})}function g({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-content`,className:r.cn(`px-6 group-data-[size=sm]/card:px-4`,e),...t})}function _({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-footer`,className:r.cn(`rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center`,e),...t})}var v={root:`card--component`,header:`card--header`,title:`card--title`,description:`card--description`,content:`card--content`,footer:`card--footer`,alert:`card--alert`},y={small:{shell:`gap-space-lg py-surface-sm`,headerX:`px-surface-sm`,contentX:`px-surface-sm`,contentY:`py-0`,footerX:`px-surface-sm`,alertX:`px-surface-sm`,alertOffsetWithHeader:`-mt-1`,alertOffsetStandalone:`mt-0`},default:{shell:`gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]`,headerX:`px-[calc(var(--surface-x)+var(--space-xs))]`,contentX:`px-[calc(var(--surface-x)+var(--space-xs))]`,contentY:`py-0`,footerX:`px-[calc(var(--surface-x)+var(--space-xs))]`,alertX:`px-[calc(var(--surface-x)+var(--space-xs))]`,alertOffsetWithHeader:`-mt-1`,alertOffsetStandalone:`mt-0`}},b={card:`rounded-lg border border-border bg-card text-card-foreground shadow-xs`,flat:`bg-transparent text-card-foreground border-none shadow-none`,framed:r.cn(`rounded-lg border border-border bg-card text-card-foreground shadow-xs`,`ring-4 ring-border/30`)};function x(e){return e==null||typeof e==`boolean`?!1:typeof e==`string`?e.trim().length>0:typeof e==`number`||typeof e==`bigint`?!0:Array.isArray(e)?e.some(x):(0,l.isValidElement)(e)&&e.type===l.Fragment?x(e.props.children):!0}function S({className:e,...t}){return(0,u.jsx)(f,{className:r.cn(v.root,`flex w-full flex-col gap-3 py-4 ring-0`,e),...t})}function C({className:e,...t}){return(0,u.jsx)(p,{className:r.cn(v.header,`flex flex-col gap-1 px-4`,e),...t})}function w({className:e,children:t,...n}){return x(t)?typeof t==`string`||typeof t==`number`||typeof t==`bigint`?(0,u.jsx)(o.s,{"data-slot":`card-title`,tag:`div`,weight:`semibold`,lineHeight:`tight`,className:r.cn(v.title,`min-w-0 font-semibold`,e),...n,children:t}):(0,u.jsx)(m,{className:r.cn(v.title,`min-w-0 text-sm leading-tight font-semibold`,e),...n,children:t}):null}function T({className:e,children:t,...n}){return x(t)?typeof t==`string`||typeof t==`number`||typeof t==`bigint`?(0,u.jsx)(o.s,{"data-slot":`card-description`,tag:`div`,type:`secondary`,className:r.cn(v.description,`text-muted-foreground text-sm`,e),...n,children:t}):(0,u.jsx)(h,{className:r.cn(v.description,`text-muted-foreground text-sm`,e),...n,children:t}):null}function E({className:e,...t}){return(0,u.jsx)(g,{className:r.cn(v.content,`px-4`,e),...t})}function D({className:e,...t}){return(0,u.jsx)(_,{className:r.cn(v.footer,`flex items-center px-4`,e),...t})}function O({alert:e,alertVariant:t,hasHeader:n,padding:i}){let a=y[i];return(0,u.jsx)(`div`,{className:r.cn(v.alert,a.alertX,n?a.alertOffsetWithHeader:a.alertOffsetStandalone),children:(0,u.jsx)(s.t,{variant:t,children:(0,u.jsx)(s.r,{children:e})})})}function k({actions:e,actionsLabel:t}){return(0,u.jsxs)(c.t,{children:[(0,u.jsx)(c.g,{type:`button`,"aria-label":t,className:r.cn(`inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0`,`text-muted-foreground hover:bg-accent hover:text-accent-foreground`,`outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,`transition-colors`),children:(0,u.jsx)(d.MoreHorizontal,{className:`size-4`})}),(0,u.jsx)(c.r,{align:`end`,className:`min-w-36`,children:e.map((e,t)=>(0,u.jsxs)(c.a,{onClick:e.onClick,disabled:e.disabled,className:`gap-space-lg px-row-x py-row-y text-sm`,children:[!!e.icon&&(0,u.jsx)(`span`,{className:`flex shrink-0 items-center`,children:e.icon}),e.label]},e.id??`${e.label}-${t}`))})]})}function A({tooltipLabel:e}){return(0,u.jsx)(a.i,{render:t=>{let n=t;return(0,u.jsx)(i.t,{...n,type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,className:r.cn(`h-5 w-5 text-muted-foreground`,n.className),"aria-label":e,children:(0,u.jsx)(d.Info,{className:`size-3.5`})})}})}function j({icon:e,title:t,titleSuffix:n,description:i,tooltip:o,tooltipLabel:s,headerStart:c,headerEnd:l,headerAction:d,actions:f,actionsLabel:p,padding:m,className:h}){let g=Array.isArray(f)?f:[],_=g.length>0,v=x(e),b=x(t),S=x(n),E=x(i),D=x(o),O=x(c),j=x(l),M=x(d),N=v||b||S||D,P=j||M||_;return(0,u.jsxs)(C,{className:r.cn(`flex-row items-start justify-between gap-3 pb-0`,y[m].headerX,h),children:[(0,u.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[!!O&&c,!!N&&(0,u.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1`,children:[!!v&&(0,u.jsx)(`span`,{className:`flex shrink-0 items-center text-muted-foreground`,children:e}),(0,u.jsx)(w,{children:t}),!!S&&(0,u.jsx)(`div`,{className:`flex items-center gap-2`,children:n}),!!D&&(0,u.jsxs)(a.t,{children:[(0,u.jsx)(A,{tooltipLabel:s}),(0,u.jsx)(a.n,{children:o})]})]}),!!E&&(0,u.jsx)(T,{className:`text-left`,children:i})]}),!!P&&(0,u.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[!!j&&l,!!M&&d,!!_&&(0,u.jsx)(k,{actions:g,actionsLabel:p})]})]})}var M={expandLabel:`Expand card`,collapseLabel:`Collapse card`};function N({title:e,lines:t=2,className:n}){let i=({barClassName:e})=>(0,u.jsx)(`div`,{className:r.cn(`animate-pulse rounded bg-muted`,e)});return(0,u.jsxs)(S,{className:r.cn(b.card,`gap-4 py-6`,n),children:[(0,u.jsx)(C,{className:`flex-col gap-1.5 px-6 pb-0`,children:e?(0,u.jsx)(w,{children:e}):(0,u.jsx)(i,{barClassName:`h-4 w-32`})}),(0,u.jsx)(E,{className:`space-y-3 px-6 py-0`,children:Array.from({length:t},(e,t)=>(0,u.jsx)(i,{barClassName:r.cn(`h-4`,t===0?`w-full`:`w-3/4`)},`skel-${String(t)}`))})]})}N.displayName=`SmartCardSkeleton`;function P(e){return e===`small`||e==="default"?e:e===`sm`?`small`:`default`}var F=(0,l.forwardRef)(function({icon:e,title:a,titleSuffix:o,description:s,tooltip:c,tooltipAriaLabel:f=`Card info`,footerText:p,alert:m,alertVariant:h=`default`,surface:g,transparent:_=!1,padding:v,actions:C,actionsLabel:w=`Card actions`,headerAction:T,headerStart:k,headerEnd:A,contentTop:N,contentBottom:F,footerSlot:I,headerDivider:ee=!1,footerDivider:L=!1,expandable:R=!1,defaultExpanded:te=!1,expanded:z,onExpandedChange:B,children:ne,className:V,headerClassName:re,contentClassName:ie,footerClassName:H,strings:ae},oe){let{defaultPadding:se}=n.n(),U=P(v??se),W=y[U],G=Array.isArray(C)?C:[],K=t.useStrings(M,ae),q=R!==!1&&R!==void 0,J=typeof R==`object`&&R?.collapsedMaxHeight!==void 0?R.collapsedMaxHeight:`12rem`,ce=typeof J==`number`?`${J}px`:J,Y=z!==void 0,[le,ue]=(0,l.useState)(te),X=Y?z:le,de=(0,l.useCallback)(()=>{let e=!X;Y||ue(e),B?.(e)},[X,Y,B]),Z=x(e)||x(a)||x(s)||G.length>0||x(T)||x(k)||x(A),fe=x(m),pe=x(p),me=x(I),he=x(N),ge=x(F),_e=f.trim().length>0?f:`Card info`,Q=q?{maxHeight:X?``:ce}:void 0,$=g??(_?`flat`:`framed`);return(0,u.jsxs)(S,{ref:oe,"data-surface":$,className:r.cn(b[$],W.shell,q&&`relative pb-1 !overflow-visible`,V),children:[!!Z&&(0,u.jsx)(j,{icon:e,title:a,titleSuffix:o,description:s,tooltip:c,tooltipLabel:_e,headerStart:k,headerEnd:A,headerAction:T,actions:G,actionsLabel:w,padding:U,className:r.cn(ee&&`pb-3 border-b border-border/60`,re)}),!!fe&&(0,u.jsx)(O,{alert:m,alertVariant:h,hasHeader:Z,padding:U}),(0,u.jsxs)(E,{className:r.cn(W.contentX,W.contentY,q&&`relative overflow-hidden transition-[max-height] duration-500 ease-in-out`,ie),style:Q,children:[!!he&&N,ne,!!ge&&F,!!q&&!X&&(0,u.jsx)(`div`,{"aria-hidden":`true`,className:`from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent`})]}),!!pe&&(0,u.jsx)(D,{className:r.cn(`justify-end text-xs text-muted-foreground`,W.footerX,L&&`pt-3 border-t border-border/60`,H),children:p}),!!me&&(0,u.jsx)(D,{className:r.cn(`flex-col items-stretch`,W.footerX,L&&`pt-3 border-t border-border/60`,H),children:I}),!!q&&(0,u.jsx)(`div`,{className:`absolute -bottom-4 left-1/2 -translate-x-1/2 z-10`,children:(0,u.jsxs)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,size:`icon-small`,onClick:de,"aria-expanded":X,"aria-label":X?K.collapseLabel:K.expandLabel,className:r.cn(`inline-flex size-8 items-center justify-center rounded-full`,`border border-border bg-background text-foreground shadow-sm`,`hover:bg-muted/40 transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50`),children:[(0,u.jsx)(d.ChevronDown,{"aria-hidden":`true`,className:r.cn(`size-4 transition-transform duration-300`,X&&`rotate-180`)}),(0,u.jsx)(`span`,{className:`sr-only`,children:X?K.collapseLabel:K.expandLabel})]})})]})});F.displayName=`SmartCard`,Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}});
|
|
2
|
-
//# sourceMappingURL=cards-DQN9fcwo.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cards-DQN9fcwo.cjs","names":[],"sources":["../../src/components/ui/card.tsx","../../src/components/base/cards/smart-card.tokens.ts","../../src/components/base/cards/partials/has-renderable-content.ts","../../src/components/base/cards/partials/card-primitives.tsx","../../src/components/base/cards/partials/smart-card-alert.tsx","../../src/components/base/cards/partials/smart-card-actions-menu.tsx","../../src/components/base/cards/partials/smart-card-header-row.tsx","../../src/components/base/cards/smart-card.strings.ts","../../src/components/base/cards/partials/smart-card-skeleton.tsx","../../src/components/base/cards/smart-card.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\"ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-base leading-normal font-medium group-data-[size=sm]/card:text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","import { cn } from '@/lib/utils';\n\nimport type { CardPadding, SmartCardSurface } from './smart-card.types';\n\n/**\n * BEM-style hooks applied to every SmartCard subregion. Library\n * consumers can target them in CSS / tests / analytics without\n * relying on shadcn's data-slot attributes (which are framework\n * internals). Keep these names consistent — they are part of the\n * public DOM contract.\n */\nexport const CARD_BEM = {\n\troot: 'card--component',\n\theader: 'card--header',\n\ttitle: 'card--title',\n\tdescription: 'card--description',\n\tcontent: 'card--content',\n\tfooter: 'card--footer',\n\talert: 'card--alert',\n} as const;\n\ninterface PaddingTokens {\n\tshell: string;\n\theaderX: string;\n\tcontentX: string;\n\tcontentY: string;\n\tfooterX: string;\n\talertX: string;\n\t/** Vertical offset applied when alert sits BELOW the header (pulls it up). */\n\talertOffsetWithHeader: string;\n\t/** Vertical spacing applied when alert is the first content (no header). */\n\talertOffsetStandalone: string;\n}\n\nexport const PADDING: Record<CardPadding, PaddingTokens> = {\n\tsmall: {\n\t\tshell: 'gap-space-lg py-surface-sm',\n\t\theaderX: 'px-surface-sm',\n\t\tcontentX: 'px-surface-sm',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-surface-sm',\n\t\talertX: 'px-surface-sm',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n\tdefault: {\n\t\tshell: 'gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]',\n\t\theaderX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n};\n\n/**\n * Surface-specific shell classes. The `framed` variant provides one clean\n * card surface with a soft tokenized ring, not nested borders that compete\n * with the example chrome.\n */\nexport const SURFACE_CLASSES: Record<SmartCardSurface, string> = {\n\tcard: 'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\tflat: 'bg-transparent text-card-foreground border-none shadow-none',\n\tframed: cn(\n\t\t'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\t\t'ring-4 ring-border/30',\n\t),\n};\n","import { Fragment, isValidElement, type ReactNode } from 'react';\n\n/**\n * Predicate used by SmartCard subregions to decide whether each slot\n * warrants rendering its wrapper. Numbers (incl. `0`) and JSX always\n * render; falsy / empty-string content is treated as absent. Fragments\n * recurse into their children.\n */\nexport function hasRenderableContent(content?: ReactNode): boolean {\n\tif (content === null || content === undefined) return false;\n\tif (typeof content === 'boolean') return false;\n\tif (typeof content === 'string') return content.trim().length > 0;\n\tif (typeof content === 'number' || typeof content === 'bigint') return true;\n\tif (Array.isArray(content)) return content.some(hasRenderableContent);\n\tif (isValidElement<{ children?: ReactNode }>(content)) {\n\t\tif (content.type === Fragment) return hasRenderableContent(content.props.children);\n\t\treturn true;\n\t}\n\treturn true;\n}\n","/**\n * Internal layout primitives — re-exported from `smart-card.tsx` for\n * advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each primitive is intentionally thin:\n * a single responsibility, a single set of default classes, no business\n * logic. The BEM hooks (`card--component`, `card--header`, etc.) are\n * applied here so the public DOM contract lives in one place.\n */\nimport {\n\ttype ComponentPropsWithRef,\n\ttype ComponentPropsWithoutRef,\n} from 'react';\n\nimport {\n\tCard as CardPrimitive,\n\tCardContent as CardContentPrimitive,\n\tCardDescription as CardDescriptionPrimitive,\n\tCardFooter as CardFooterPrimitive,\n\tCardHeader as CardHeaderPrimitive,\n\tCardTitle as CardTitlePrimitive,\n} from '@/components/ui/card';\nimport Text from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM } from '../smart-card.tokens';\n\nimport { hasRenderableContent } from './has-renderable-content';\n\nexport function CardShell({ className, ...props }: ComponentPropsWithRef<'div'>) {\n\treturn (\n\t\t<CardPrimitive\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.root,\n\t\t\t\t'flex w-full flex-col gap-3 py-4 ring-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardHeader({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardHeaderPrimitive\n\t\t\tclassName={cn(CARD_BEM.header, 'flex flex-col gap-1 px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardTitle({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardTitlePrimitive\n\t\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 text-sm leading-tight font-semibold', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardTitlePrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-title\"\n\t\t\ttag=\"div\"\n\t\t\tweight=\"semibold\"\n\t\t\tlineHeight=\"tight\"\n\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 font-semibold', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardDescription({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardDescriptionPrimitive\n\t\t\t\tclassName={cn(\n\t\t\t\t\tCARD_BEM.description,\n\t\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardDescriptionPrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-description\"\n\t\t\ttag=\"div\"\n\t\t\ttype=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.description,\n\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardContent({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardContentPrimitive\n\t\t\tclassName={cn(CARD_BEM.content, 'px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardFooter({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardFooterPrimitive\n\t\t\tclassName={cn(CARD_BEM.footer, 'flex items-center px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","/**\n * Inline alert banner rendered between the header and the card body.\n * Pulls itself up under the header (`alertOffsetWithHeader`) when one\n * exists so the visual gap between header bottom and alert top stays\n * tight; otherwise pushes itself down (`alertOffsetStandalone`) so it\n * doesn't kiss the card top edge.\n */\nimport type { ReactNode } from 'react';\n\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM, PADDING } from '../smart-card.tokens';\nimport type { CardAlertVariant, CardPadding } from '../smart-card.types';\n\ninterface AlertSlotProps {\n\talert: ReactNode | string;\n\talertVariant: CardAlertVariant;\n\thasHeader: boolean;\n\tpadding: CardPadding;\n}\n\nexport function SmartCardAlert({\n\talert,\n\talertVariant,\n\thasHeader,\n\tpadding,\n}: AlertSlotProps) {\n\tconst tokens = PADDING[padding];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.alert,\n\t\t\t\ttokens.alertX,\n\t\t\t\thasHeader ? tokens.alertOffsetWithHeader : tokens.alertOffsetStandalone,\n\t\t\t)}\n\t\t>\n\t\t\t<Alert variant={alertVariant}>\n\t\t\t\t<AlertDescription>{alert}</AlertDescription>\n\t\t\t</Alert>\n\t\t</div>\n\t);\n}\n","/**\n * SmartCard actions menu — `⋮` trigger + dropdown of consumer-supplied\n * `SmartCardAction` items. Always renders a 28×28 square trigger so it\n * reads cleanly as a circle (consumer overrides to `rounded-full`) or\n * a rectangle (default `rounded-md`).\n */\nimport { MoreHorizontal } from 'lucide-react';\n\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport type { SmartCardAction } from '../smart-card.types';\n\ninterface ActionsMenuProps {\n\tactions: SmartCardAction[];\n\tactionsLabel: string;\n}\n\nexport function ActionsMenu({ actions, actionsLabel }: ActionsMenuProps) {\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={actionsLabel}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0',\n\t\t\t\t\t'text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t'outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t'transition-colors',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<MoreHorizontal className=\"size-4\" />\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent align=\"end\" className=\"min-w-36\">\n\t\t\t\t{actions.map((action, index) => (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={action.id ?? `${action.label}-${index}`}\n\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\tclassName=\"gap-space-lg px-row-x py-row-y text-sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!action.icon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center\">{action.icon}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{action.label}\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t))}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * SmartCardHeaderRow — the chrome above the card body. Combines icon /\n * title / description / tooltip / suffix on the leading side with the\n * trailing `headerEnd` / `headerAction` slots and the actions menu.\n *\n * `TooltipTrigger_Info` is colocated here because it's only used by the\n * header — keeping it private avoids polluting the public partial\n * surface.\n */\nimport { Info } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '@/components/base/display/tooltip';\nimport { cn } from '@/lib/utils';\n\nimport { PADDING } from '../smart-card.tokens';\nimport type { CardPadding, SmartCardAction } from '../smart-card.types';\n\nimport { CardHeader, CardTitle, CardDescription } from './card-primitives';\nimport { hasRenderableContent } from './has-renderable-content';\nimport { ActionsMenu } from './smart-card-actions-menu';\n\nfunction TooltipTrigger_Info({ tooltipLabel }: { tooltipLabel: string }) {\n\treturn (\n\t\t<TooltipTrigger\n\t\t\trender={(triggerProps) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst passthrough = triggerProps as Record<string, any>;\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...passthrough}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-5 w-5 text-muted-foreground',\n\t\t\t\t\t\t\tpassthrough.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-label={tooltipLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Info className=\"size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\ninterface HeaderProps {\n\ticon?: ReactNode;\n\ttitle?: ReactNode;\n\ttitleSuffix?: ReactNode;\n\tdescription?: ReactNode;\n\ttooltip?: ReactNode;\n\ttooltipLabel: string;\n\theaderStart?: ReactNode;\n\theaderEnd?: ReactNode;\n\theaderAction?: ReactNode;\n\tactions?: SmartCardAction[];\n\tactionsLabel: string;\n\tpadding: CardPadding;\n\tclassName?: string;\n}\n\nexport function SmartCardHeaderRow({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipLabel,\n\theaderStart,\n\theaderEnd,\n\theaderAction,\n\tactions,\n\tactionsLabel,\n\tpadding,\n\tclassName,\n}: HeaderProps) {\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst hasActions = cardActions.length > 0;\n\n\tconst hasIcon = hasRenderableContent(icon);\n\tconst hasTitle = hasRenderableContent(title);\n\tconst hasTitleSuffix = hasRenderableContent(titleSuffix);\n\tconst hasDescription = hasRenderableContent(description);\n\tconst hasTooltip = hasRenderableContent(tooltip);\n\tconst hasHeaderStart = hasRenderableContent(headerStart);\n\tconst hasHeaderEnd = hasRenderableContent(headerEnd);\n\tconst hasHeaderAction = hasRenderableContent(headerAction);\n\n\tconst showTitleRow = hasIcon || hasTitle || hasTitleSuffix || hasTooltip;\n\tconst showTrailing = hasHeaderEnd || hasHeaderAction || hasActions;\n\n\treturn (\n\t\t<CardHeader\n\t\t\tclassName={cn(\n\t\t\t\t'flex-row items-start justify-between gap-3 pb-0',\n\t\t\t\tPADDING[padding].headerX,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n\t\t\t\t{!!hasHeaderStart && headerStart}\n\n\t\t\t\t{!!showTitleRow && (\n\t\t\t\t\t<div className=\"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1\">\n\t\t\t\t\t\t{!!hasIcon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center text-muted-foreground\">\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<CardTitle>{title}</CardTitle>\n\t\t\t\t\t\t{!!hasTitleSuffix && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">{titleSuffix}</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t<TooltipTrigger_Info tooltipLabel={tooltipLabel} />\n\t\t\t\t\t\t\t\t<TooltipContent>{tooltip}</TooltipContent>\n\t\t\t\t\t\t\t</Tooltip>\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{!!hasDescription && (\n\t\t\t\t\t<CardDescription className=\"text-left\">{description}</CardDescription>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!!showTrailing && (\n\t\t\t\t<div className=\"flex shrink-0 items-center gap-2\">\n\t\t\t\t\t{!!hasHeaderEnd && headerEnd}\n\t\t\t\t\t{!!hasHeaderAction && headerAction}\n\t\t\t\t\t{!!hasActions && (\n\t\t\t\t\t\t<ActionsMenu actions={cardActions} actionsLabel={actionsLabel} />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardHeader>\n\t);\n}\n","/**\n * SmartCard strings — i18n surface for the chrome the consumer doesn't\n * pass directly. Most copy (title, description, action labels, alert\n * body) flows in via props; the strings here cover the implicit\n * affordances (expand toggle).\n */\n\nexport interface SmartCardStrings {\n\texpandLabel: string;\n\tcollapseLabel: string;\n}\n\nexport const defaultSmartCardStrings: SmartCardStrings = {\n\texpandLabel: 'Expand card',\n\tcollapseLabel: 'Collapse card',\n};\n","/**\n * SmartCardSkeleton — placeholder shell rendered while a SmartCard's\n * data is loading. Picks up the canonical card surface so the loading\n * state visually matches the eventual `SmartCard` it'll replace.\n */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { SURFACE_CLASSES } from '../smart-card.tokens';\n\nimport {\n\tCardContent,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './card-primitives';\n\nexport interface SmartCardSkeletonProps {\n\ttitle?: ReactNode;\n\tlines?: number;\n\tclassName?: string;\n}\n\nexport function SmartCardSkeleton({\n\ttitle,\n\tlines = 2,\n\tclassName,\n}: SmartCardSkeletonProps) {\n\tconst SkeletonBar = ({ barClassName }: { barClassName?: string }) => (\n\t\t<div className={cn('animate-pulse rounded bg-muted', barClassName)} />\n\t);\n\n\treturn (\n\t\t<CardShell className={cn(SURFACE_CLASSES.card, 'gap-4 py-6', className)}>\n\t\t\t<CardHeader className=\"flex-col gap-1.5 px-6 pb-0\">\n\t\t\t\t{title ? <CardTitle>{title}</CardTitle> : <SkeletonBar barClassName=\"h-4 w-32\" />}\n\t\t\t</CardHeader>\n\t\t\t<CardContent className=\"space-y-3 px-6 py-0\">\n\t\t\t\t{Array.from({ length: lines }, (_, i) => (\n\t\t\t\t\t<SkeletonBar\n\t\t\t\t\t\tkey={`skel-${String(i)}`}\n\t\t\t\t\t\tbarClassName={cn('h-4', i === 0 ? 'w-full' : 'w-3/4')}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</CardContent>\n\t\t</CardShell>\n\t);\n}\n\nSmartCardSkeleton.displayName = 'SmartCardSkeleton';\n","/**\n * SmartCard — composed card with header (icon, title, suffix, description,\n * tooltip), actions menu, alert banner, header / content / footer slots,\n * surface variants (card / flat / framed), and an opt-in expandable body.\n *\n * The single card primitive everything else builds on — never reach past it\n * to shadcn `Card` directly. The CardShell / CardHeader / CardTitle /\n * CardDescription / CardContent / CardFooter primitives are re-exported\n * for advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each subregion paints a BEM-style hook\n * (`card--component`, `card--header`, `card--title`, …) for CSS / test /\n * analytics targeting independent of shadcn's data-slot internals.\n *\n * The file is a thin orchestrator. The actual chrome lives in:\n * - `./smart-card.types.ts` — public prop / variant types\n * - `./smart-card.strings.ts` — i18n (expand toggle copy)\n * - `./smart-card.tokens.ts` — PADDING + SURFACE_CLASSES + CARD_BEM\n * - `./partials/card-primitives.tsx` — CardShell + CardHeader / Title /\n * Description / Content / Footer\n * - `./partials/smart-card-header-row.tsx` — header layout + actions menu\n * - `./partials/smart-card-alert.tsx` — inline alert banner\n * - `./partials/smart-card-actions-menu.tsx` — `⋮` dropdown\n * - `./partials/smart-card-skeleton.tsx` — loading placeholder\n * - `./partials/has-renderable-content.ts` — slot-empty predicate\n */\nimport { ChevronDown } from 'lucide-react';\nimport {\n\ttype CSSProperties,\n\tforwardRef,\n\tuseCallback,\n\tuseState,\n} from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { useStrings } from '@/lib/strings';\nimport { useCardConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tCardContent,\n\tCardFooter,\n\tCardShell,\n} from './partials/card-primitives';\nimport { hasRenderableContent } from './partials/has-renderable-content';\nimport { SmartCardAlert } from './partials/smart-card-alert';\nimport { SmartCardHeaderRow } from './partials/smart-card-header-row';\nimport {\n\tdefaultSmartCardStrings,\n} from './smart-card.strings';\nimport {\n\tPADDING,\n\tSURFACE_CLASSES,\n} from './smart-card.tokens';\nimport type {\n\tCardPadding,\n\tSmartCardProps,\n\tSmartCardSurface,\n} from './smart-card.types';\n\nfunction normalizeCardPadding(padding: CardPadding | string | undefined): CardPadding {\n\tif (padding === 'small' || padding === 'default') return padding;\n\tif (padding === 'sm') return 'small';\n\tif (padding === 'base' || padding === 'lg') return 'default';\n\treturn 'default';\n}\n\nexport const SmartCard = forwardRef<HTMLDivElement, SmartCardProps>(function SmartCard({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipAriaLabel = 'Card info',\n\tfooterText,\n\talert,\n\talertVariant = 'default',\n\tsurface,\n\ttransparent = false,\n\tpadding,\n\tactions,\n\tactionsLabel = 'Card actions',\n\theaderAction,\n\theaderStart,\n\theaderEnd,\n\tcontentTop,\n\tcontentBottom,\n\tfooterSlot,\n\theaderDivider = false,\n\tfooterDivider = false,\n\texpandable = false,\n\tdefaultExpanded = false,\n\texpanded: expandedProp,\n\tonExpandedChange,\n\tchildren,\n\tclassName,\n\theaderClassName,\n\tcontentClassName,\n\tfooterClassName,\n\tstrings: stringsProp,\n}, ref) {\n\tconst { defaultPadding } = useCardConfig();\n\tconst resolvedPadding = normalizeCardPadding(padding ?? defaultPadding);\n\tconst tokens = PADDING[resolvedPadding];\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst strings = useStrings(defaultSmartCardStrings, stringsProp);\n\n\tconst isExpandable = expandable !== false && expandable !== undefined;\n\tconst collapsedMaxHeightRaw =\n\t\ttypeof expandable === 'object' && expandable?.collapsedMaxHeight !== undefined\n\t\t\t? expandable.collapsedMaxHeight\n\t\t\t: '12rem';\n\tconst collapsedMaxHeight =\n\t\ttypeof collapsedMaxHeightRaw === 'number'\n\t\t\t? `${collapsedMaxHeightRaw}px`\n\t\t\t: collapsedMaxHeightRaw;\n\n\tconst isExpandedControlled = expandedProp !== undefined;\n\tconst [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n\tconst expanded = isExpandedControlled ? expandedProp : internalExpanded;\n\tconst handleToggle = useCallback(() => {\n\t\tconst next = !expanded;\n\t\tif (!isExpandedControlled) setInternalExpanded(next);\n\t\tonExpandedChange?.(next);\n\t}, [expanded, isExpandedControlled, onExpandedChange]);\n\n\tconst hasHeader =\n\t\thasRenderableContent(icon) ||\n\t\thasRenderableContent(title) ||\n\t\thasRenderableContent(description) ||\n\t\tcardActions.length > 0 ||\n\t\thasRenderableContent(headerAction) ||\n\t\thasRenderableContent(headerStart) ||\n\t\thasRenderableContent(headerEnd);\n\n\tconst hasAlert = hasRenderableContent(alert);\n\tconst hasFooterText = hasRenderableContent(footerText);\n\tconst hasFooterSlot = hasRenderableContent(footerSlot);\n\tconst hasContentTop = hasRenderableContent(contentTop);\n\tconst hasContentBottom = hasRenderableContent(contentBottom);\n\n\tconst tooltipLabel =\n\t\ttooltipAriaLabel.trim().length > 0 ? tooltipAriaLabel : 'Card info';\n\n\tconst collapseStyle: CSSProperties | undefined = isExpandable\n\t\t? {\n\t\t\t\tmaxHeight: expanded ? '' : collapsedMaxHeight,\n\t\t\t}\n\t\t: undefined;\n\n\t// Resolve surface — explicit `surface` wins, else legacy `transparent`,\n\t// else the default framed chrome.\n\tconst resolvedSurface: SmartCardSurface = surface ?? (transparent ? 'flat' : 'framed');\n\n\treturn (\n\t\t<CardShell\n\t\t\tref={ref}\n\t\t\tdata-surface={resolvedSurface}\n\t\t\tclassName={cn(\n\t\t\t\tSURFACE_CLASSES[resolvedSurface],\n\t\t\t\ttokens.shell,\n\t\t\t\t// `isExpandable` parks the chevron at `-bottom-4` outside the\n\t\t\t\t// shell — `overflow-visible` lets it render past the card\n\t\t\t\t// edge, otherwise the shadcn primitive's `overflow-hidden`\n\t\t\t\t// clips it.\n\t\t\t\tisExpandable && 'relative pb-1 !overflow-visible',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!hasHeader && (\n\t\t\t\t<SmartCardHeaderRow\n\t\t\t\t\ticon={icon}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\ttitleSuffix={titleSuffix}\n\t\t\t\t\tdescription={description}\n\t\t\t\t\ttooltip={tooltip}\n\t\t\t\t\ttooltipLabel={tooltipLabel}\n\t\t\t\t\theaderStart={headerStart}\n\t\t\t\t\theaderEnd={headerEnd}\n\t\t\t\t\theaderAction={headerAction}\n\t\t\t\t\tactions={cardActions}\n\t\t\t\t\tactionsLabel={actionsLabel}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\theaderDivider && 'pb-3 border-b border-border/60',\n\t\t\t\t\t\theaderClassName,\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!!hasAlert && (\n\t\t\t\t<SmartCardAlert\n\t\t\t\t\talert={alert}\n\t\t\t\t\talertVariant={alertVariant}\n\t\t\t\t\thasHeader={hasHeader}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<CardContent\n\t\t\t\tclassName={cn(\n\t\t\t\t\ttokens.contentX,\n\t\t\t\t\ttokens.contentY,\n\t\t\t\t\tisExpandable &&\n\t\t\t\t\t\t'relative overflow-hidden transition-[max-height] duration-500 ease-in-out',\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={collapseStyle}\n\t\t\t>\n\t\t\t\t{!!hasContentTop && contentTop}\n\t\t\t\t{children}\n\t\t\t\t{!!hasContentBottom && contentBottom}\n\n\t\t\t\t{!!isExpandable && !expanded && (\n\t\t\t\t\t<div\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName=\"from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</CardContent>\n\n\t\t\t{!!hasFooterText && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'justify-end text-xs text-muted-foreground',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerText}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!hasFooterSlot && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-col items-stretch',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerSlot}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!isExpandable && (\n\t\t\t\t<div className=\"absolute -bottom-4 left-1/2 -translate-x-1/2 z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\t\taria-expanded={expanded}\n\t\t\t\t\t\taria-label={expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex size-8 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t'border border-border bg-background text-foreground shadow-sm',\n\t\t\t\t\t\t\t'hover:bg-muted/40 transition-colors',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronDown\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'size-4 transition-transform duration-300',\n\t\t\t\t\t\t\t\texpanded && 'rotate-180',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span className=\"sr-only\">\n\t\t\t\t\t\t\t{expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardShell>\n\t);\n});\n\nSmartCard.displayName = 'SmartCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Re-exports — public surface lives here so `import { ... } from\n// '@/components/base/cards'` keeps working through the file split.\n// ──────────────────────────────────────────────────────────────────────────\n\nexport {\n\tdefaultSmartCardStrings,\n\ttype SmartCardStrings,\n} from './smart-card.strings';\nexport type {\n\tCardAlertVariant,\n\tCardPadding,\n\tSmartCardAction,\n\tSmartCardProps,\n\tSmartCardSkeletonProps,\n\tSmartCardSurface,\n} from './smart-card.types';\nexport {\n\tCardContent,\n\tCardDescription,\n\tCardFooter,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './partials/card-primitives';\nexport { SmartCardSkeleton } from './partials/smart-card-skeleton';\n"],"mappings":"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"}
|