admin-ui-starter-kit 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/component-library-rules/SKILL.md +24 -0
- package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +2 -2
- package/.agents/skills/component-library-rules/references/import-paths.md +27 -0
- package/AGENTS.md +8 -3
- package/INTEGRATION.md +33 -2
- package/PUBLISHING.md +3 -1
- package/README.md +33 -6
- package/dist/_shared/accordion-CztqyaIN.js +130 -0
- package/dist/_shared/accordion-CztqyaIN.js.map +1 -0
- package/dist/_shared/accordion-D5uTCLCB.cjs +2 -0
- package/dist/_shared/accordion-D5uTCLCB.cjs.map +1 -0
- package/dist/_shared/action-menu-Yrj6VzFS.js +96 -0
- package/dist/_shared/action-menu-Yrj6VzFS.js.map +1 -0
- package/dist/_shared/action-menu-eVP8GGlv.cjs +2 -0
- package/dist/_shared/action-menu-eVP8GGlv.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs +3 -0
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DyLn3JAs.js +1068 -0
- package/dist/_shared/ai-artifact-DyLn3JAs.js.map +1 -0
- package/dist/_shared/alert-BVw4Mq6H.js +48 -0
- package/dist/_shared/alert-BVw4Mq6H.js.map +1 -0
- package/dist/_shared/alert-DXSlR9ja.cjs +2 -0
- package/dist/_shared/alert-DXSlR9ja.cjs.map +1 -0
- package/dist/_shared/avatar-CpBz9pTv.js +52 -0
- package/dist/_shared/avatar-CpBz9pTv.js.map +1 -0
- package/dist/_shared/avatar-dg20YFFs.cjs +2 -0
- package/dist/_shared/avatar-dg20YFFs.cjs.map +1 -0
- package/dist/_shared/badge-BVCh_hfL.js +108 -0
- package/dist/_shared/badge-BVCh_hfL.js.map +1 -0
- package/dist/_shared/badge-C49SSz-6.cjs +2 -0
- package/dist/_shared/badge-C49SSz-6.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs +2 -0
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-Dc93fqqE.js +111 -0
- package/dist/_shared/breadcrumbs-Dc93fqqE.js.map +1 -0
- package/dist/_shared/button-2xglT7yf.cjs +2 -0
- package/dist/_shared/button-2xglT7yf.cjs.map +1 -0
- package/dist/_shared/button-ChCkwoOD.js +176 -0
- package/dist/_shared/button-ChCkwoOD.js.map +1 -0
- package/dist/_shared/button-D0nF99a9.cjs +2 -0
- package/dist/_shared/button-D0nF99a9.cjs.map +1 -0
- package/dist/_shared/button-DBR4QI9E.js +46 -0
- package/dist/_shared/button-DBR4QI9E.js.map +1 -0
- package/dist/_shared/buttons-Bcnt1md_.js +143 -0
- package/dist/_shared/buttons-Bcnt1md_.js.map +1 -0
- package/dist/_shared/buttons-km9xqXJv.cjs +2 -0
- package/dist/_shared/buttons-km9xqXJv.cjs.map +1 -0
- package/dist/_shared/card-radio-group-BGH93O5-.js +158 -0
- package/dist/_shared/card-radio-group-BGH93O5-.js.map +1 -0
- package/dist/_shared/card-radio-group-Vq741uhL.cjs +2 -0
- package/dist/_shared/card-radio-group-Vq741uhL.cjs.map +1 -0
- package/dist/_shared/combobox-BgXAxjU2.js +746 -0
- package/dist/_shared/combobox-BgXAxjU2.js.map +1 -0
- package/dist/_shared/combobox-DuIyh3xJ.cjs +2 -0
- package/dist/_shared/combobox-DuIyh3xJ.cjs.map +1 -0
- package/dist/_shared/command-BbiijN61.js +39 -0
- package/dist/_shared/command-BbiijN61.js.map +1 -0
- package/dist/_shared/command-D7zTvyBJ.cjs +2 -0
- package/dist/_shared/command-D7zTvyBJ.cjs.map +1 -0
- package/dist/_shared/command-DGNtTI-V.cjs +2 -0
- package/dist/_shared/command-DGNtTI-V.cjs.map +1 -0
- package/dist/_shared/command-jKbwFRtS.js +123 -0
- package/dist/_shared/command-jKbwFRtS.js.map +1 -0
- package/dist/_shared/comments-CNUsdwGW.cjs +2 -0
- package/dist/_shared/comments-CNUsdwGW.cjs.map +1 -0
- package/dist/_shared/comments-CvmS7zG3.js +945 -0
- package/dist/_shared/comments-CvmS7zG3.js.map +1 -0
- package/dist/_shared/containers-BFDv7cCV.cjs +2 -0
- package/dist/_shared/containers-BFDv7cCV.cjs.map +1 -0
- package/dist/_shared/containers-C1-A_2PT.js +19 -0
- package/dist/_shared/containers-C1-A_2PT.js.map +1 -0
- package/dist/_shared/content-container-CwqFnaI0.cjs +2 -0
- package/dist/_shared/content-container-CwqFnaI0.cjs.map +1 -0
- package/dist/_shared/content-container-D_3JGBSc.js +33 -0
- package/dist/_shared/content-container-D_3JGBSc.js.map +1 -0
- package/dist/_shared/copyable-CHhCGMfW.js +38 -0
- package/dist/_shared/copyable-CHhCGMfW.js.map +1 -0
- package/dist/_shared/copyable-ndaiocYq.cjs +2 -0
- package/dist/_shared/copyable-ndaiocYq.cjs.map +1 -0
- package/dist/_shared/date-picker-B8O_qbik.js +1353 -0
- package/dist/_shared/date-picker-B8O_qbik.js.map +1 -0
- package/dist/_shared/date-picker-BnOjyuKS.cjs +2 -0
- package/dist/_shared/date-picker-BnOjyuKS.cjs.map +1 -0
- package/dist/_shared/date-pickers-Cas9cPlj.js +330 -0
- package/dist/_shared/date-pickers-Cas9cPlj.js.map +1 -0
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs +2 -0
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs.map +1 -0
- package/dist/_shared/dialog-67GmkMLC.js +101 -0
- package/dist/_shared/dialog-67GmkMLC.js.map +1 -0
- package/dist/_shared/dialog-BF_4uAhE.cjs +2 -0
- package/dist/_shared/dialog-BF_4uAhE.cjs.map +1 -0
- package/dist/_shared/display-B9xVWboG.cjs +8 -0
- package/dist/_shared/display-B9xVWboG.cjs.map +1 -0
- package/dist/_shared/display-BM_GxDAo.js +1237 -0
- package/dist/_shared/display-BM_GxDAo.js.map +1 -0
- package/dist/_shared/dropdown-menu-4nxEBMnd.js +147 -0
- package/dist/_shared/dropdown-menu-4nxEBMnd.js.map +1 -0
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs +2 -0
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs.map +1 -0
- package/dist/_shared/form-field-BQlki-8s.js +319 -0
- package/dist/_shared/form-field-BQlki-8s.js.map +1 -0
- package/dist/_shared/form-field-DzpwVS99.cjs +2 -0
- package/dist/_shared/form-field-DzpwVS99.cjs.map +1 -0
- package/dist/_shared/form-sizing-CcbB-OHF.js +21 -0
- package/dist/_shared/form-sizing-CcbB-OHF.js.map +1 -0
- package/dist/_shared/form-sizing-Cw12UeI6.cjs +2 -0
- package/dist/_shared/form-sizing-Cw12UeI6.cjs.map +1 -0
- package/dist/_shared/format-B2AdSQVn.cjs +2 -0
- package/dist/_shared/format-B2AdSQVn.cjs.map +1 -0
- package/dist/_shared/format-CP65h1vK.js +48 -0
- package/dist/_shared/format-CP65h1vK.js.map +1 -0
- package/dist/_shared/forms-B8aaNG44.cjs +2 -0
- package/dist/_shared/forms-B8aaNG44.cjs.map +1 -0
- package/dist/_shared/forms-BusuTZZ2.js +3374 -0
- package/dist/_shared/forms-BusuTZZ2.js.map +1 -0
- package/dist/_shared/header-DWfOUjFL.cjs +2 -0
- package/dist/_shared/header-DWfOUjFL.cjs.map +1 -0
- package/dist/_shared/header-KpdoLtP9.js +369 -0
- package/dist/_shared/header-KpdoLtP9.js.map +1 -0
- package/dist/_shared/heading-BprqyzDs.js +39 -0
- package/dist/_shared/heading-BprqyzDs.js.map +1 -0
- package/dist/_shared/heading-mZc_jan1.cjs +2 -0
- package/dist/_shared/heading-mZc_jan1.cjs.map +1 -0
- package/dist/_shared/hooks-C-uWoRq5.cjs +2 -0
- package/dist/_shared/hooks-C-uWoRq5.cjs.map +1 -0
- package/dist/_shared/hooks-D5HJtvvP.js +118 -0
- package/dist/_shared/hooks-D5HJtvvP.js.map +1 -0
- package/dist/_shared/icon-badge-BBqDyAUz.cjs +2 -0
- package/dist/_shared/icon-badge-BBqDyAUz.cjs.map +1 -0
- package/dist/_shared/icon-badge-Bi63T-bj.js +52 -0
- package/dist/_shared/icon-badge-Bi63T-bj.js.map +1 -0
- package/dist/_shared/input-B2YXTHqz.cjs +2 -0
- package/dist/_shared/input-B2YXTHqz.cjs.map +1 -0
- package/dist/_shared/input-BJb10xb9.cjs +2 -0
- package/dist/_shared/input-BJb10xb9.cjs.map +1 -0
- package/dist/_shared/input-CZxP5Xgj.js +17 -0
- package/dist/_shared/input-CZxP5Xgj.js.map +1 -0
- package/dist/_shared/input-DQahu2sm.js +182 -0
- package/dist/_shared/input-DQahu2sm.js.map +1 -0
- package/dist/_shared/item-Cu5JbZyZ.js +224 -0
- package/dist/_shared/item-Cu5JbZyZ.js.map +1 -0
- package/dist/_shared/item-Cx_7QZ2o.cjs +2 -0
- package/dist/_shared/item-Cx_7QZ2o.cjs.map +1 -0
- package/dist/_shared/mentions-CS3rIhze.js +493 -0
- package/dist/_shared/mentions-CS3rIhze.js.map +1 -0
- package/dist/_shared/mentions-D7gnP3Nf.cjs +2 -0
- package/dist/_shared/mentions-D7gnP3Nf.cjs.map +1 -0
- package/dist/_shared/metadata-CRsVWE8Y.cjs +2 -0
- package/dist/_shared/metadata-CRsVWE8Y.cjs.map +1 -0
- package/dist/_shared/metadata-CfG0FdFZ.js +236 -0
- package/dist/_shared/metadata-CfG0FdFZ.js.map +1 -0
- package/dist/_shared/money-display-Bd0rkjc9.js +198 -0
- package/dist/_shared/money-display-Bd0rkjc9.js.map +1 -0
- package/dist/_shared/money-display-DSFft9Mi.cjs +2 -0
- package/dist/_shared/money-display-DSFft9Mi.cjs.map +1 -0
- package/dist/_shared/navigation-Do9k5Xh1.js +420 -0
- package/dist/_shared/navigation-Do9k5Xh1.js.map +1 -0
- package/dist/_shared/navigation-QAAD3HJd.cjs +2 -0
- package/dist/_shared/navigation-QAAD3HJd.cjs.map +1 -0
- package/dist/_shared/overlays-B8AH8fNv.js +633 -0
- package/dist/_shared/overlays-B8AH8fNv.js.map +1 -0
- package/dist/_shared/overlays-DOcoRy8k.cjs +2 -0
- package/dist/_shared/overlays-DOcoRy8k.cjs.map +1 -0
- package/dist/_shared/page-BPCeKX9X.js +263 -0
- package/dist/_shared/page-BPCeKX9X.js.map +1 -0
- package/dist/_shared/page-DMM32sxi.cjs +2 -0
- package/dist/_shared/page-DMM32sxi.cjs.map +1 -0
- package/dist/_shared/popover-B1f_EUQS.cjs +2 -0
- package/dist/_shared/popover-B1f_EUQS.cjs.map +1 -0
- package/dist/_shared/popover-CgRGcFk9.js +83 -0
- package/dist/_shared/popover-CgRGcFk9.js.map +1 -0
- package/dist/_shared/popover-menu-BEKIT3LR.cjs +2 -0
- package/dist/_shared/popover-menu-BEKIT3LR.cjs.map +1 -0
- package/dist/_shared/popover-menu-BHdHLEVL.js +95 -0
- package/dist/_shared/popover-menu-BHdHLEVL.js.map +1 -0
- package/dist/_shared/rich-text-editor-0uoIoYXU.js +608 -0
- package/dist/_shared/rich-text-editor-0uoIoYXU.js.map +1 -0
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs +2 -0
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs.map +1 -0
- package/dist/_shared/scroll-area-Bo17wtZD.cjs +2 -0
- package/dist/_shared/scroll-area-Bo17wtZD.cjs.map +1 -0
- package/dist/_shared/scroll-area-Cj-hmB5D.js +41 -0
- package/dist/_shared/scroll-area-Cj-hmB5D.js.map +1 -0
- package/dist/_shared/select-07RRiTWc.js +85 -0
- package/dist/_shared/select-07RRiTWc.js.map +1 -0
- package/dist/_shared/select-BfiU7a4n.cjs +2 -0
- package/dist/_shared/select-BfiU7a4n.cjs.map +1 -0
- package/dist/_shared/separator-CN9zAJfs.cjs +2 -0
- package/dist/_shared/separator-CN9zAJfs.cjs.map +1 -0
- package/dist/_shared/separator-DR0uUMKa.js +16 -0
- package/dist/_shared/separator-DR0uUMKa.js.map +1 -0
- package/dist/_shared/sheet-B5FoGJAZ.cjs +2 -0
- package/dist/_shared/sheet-B5FoGJAZ.cjs.map +1 -0
- package/dist/_shared/sheet-cUI8cypP.js +100 -0
- package/dist/_shared/sheet-cUI8cypP.js.map +1 -0
- package/dist/_shared/sidebar-Bq7yKLrG.cjs +2 -0
- package/dist/_shared/sidebar-Bq7yKLrG.cjs.map +1 -0
- package/dist/_shared/sidebar-Da20tCUc.cjs +2 -0
- package/dist/_shared/sidebar-Da20tCUc.cjs.map +1 -0
- package/dist/_shared/sidebar-Q6TYE8Ux.js +371 -0
- package/dist/_shared/sidebar-Q6TYE8Ux.js.map +1 -0
- package/dist/_shared/sidebar-WmnQ55YY.js +537 -0
- package/dist/_shared/sidebar-WmnQ55YY.js.map +1 -0
- package/dist/_shared/skeleton-B3HWEc6G.js +14 -0
- package/dist/_shared/skeleton-B3HWEc6G.js.map +1 -0
- package/dist/_shared/skeleton-Cz_l8-fc.cjs +2 -0
- package/dist/_shared/skeleton-Cz_l8-fc.cjs.map +1 -0
- package/dist/_shared/slot-BgnZtKR5.js +18 -0
- package/dist/_shared/slot-BgnZtKR5.js.map +1 -0
- package/dist/_shared/slot-Dac1ipUC.cjs +2 -0
- package/dist/_shared/slot-Dac1ipUC.cjs.map +1 -0
- package/dist/_shared/smart-card-Bm_VxYUG.cjs +2 -0
- package/dist/_shared/smart-card-Bm_VxYUG.cjs.map +1 -0
- package/dist/_shared/smart-card-MT6JjkoI.js +360 -0
- package/dist/_shared/smart-card-MT6JjkoI.js.map +1 -0
- package/dist/_shared/spinner-BQjxJ_Kx.js +67 -0
- package/dist/_shared/spinner-BQjxJ_Kx.js.map +1 -0
- package/dist/_shared/spinner-Dvaa6GUm.cjs +2 -0
- package/dist/_shared/spinner-Dvaa6GUm.cjs.map +1 -0
- package/dist/_shared/switch-C0yyhsXZ.js +51 -0
- package/dist/_shared/switch-C0yyhsXZ.js.map +1 -0
- package/dist/_shared/switch-DozkSQNn.cjs +2 -0
- package/dist/_shared/switch-DozkSQNn.cjs.map +1 -0
- package/dist/_shared/textarea-Cgl-FPwu.js +119 -0
- package/dist/_shared/textarea-Cgl-FPwu.js.map +1 -0
- package/dist/_shared/textarea-D8wC0XlZ.cjs +2 -0
- package/dist/_shared/textarea-D8wC0XlZ.cjs.map +1 -0
- package/dist/_shared/tooltip-Cws4BiPT.js +49 -0
- package/dist/_shared/tooltip-Cws4BiPT.js.map +1 -0
- package/dist/_shared/tooltip-DyUi-Tac.cjs +2 -0
- package/dist/_shared/tooltip-DyUi-Tac.cjs.map +1 -0
- package/dist/_shared/typography-BW7iZBx7.cjs +2 -0
- package/dist/_shared/typography-BW7iZBx7.cjs.map +1 -0
- package/dist/_shared/typography-a3hydyvI.js +102 -0
- package/dist/_shared/typography-a3hydyvI.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/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/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 +2 -2
- 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/index.cjs +1 -1
- package/dist/components/base/display/index.js +12 -11
- package/dist/components/base/display/metadata/index.cjs +1 -0
- package/dist/components/base/display/metadata/index.js +2 -0
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.cjs.map +1 -1
- package/dist/components/base/event-calendar/index.js +4 -4
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +6 -6
- package/dist/components/base/item/index.cjs +1 -1
- package/dist/components/base/item/index.js +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.js +3 -3
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +4 -4
- package/dist/components/base/popover/index.cjs +1 -1
- package/dist/components/base/popover/index.js +1 -1
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- package/dist/components/base/sheet/index.cjs +1 -1
- package/dist/components/base/sheet/index.js +1 -1
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/index.js +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 +7 -7
- 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 +12 -12
- 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 +4 -4
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.cjs.map +1 -1
- package/dist/components/composed/cards/index.js +8 -8
- 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 +9 -9
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
- package/dist/components/composed/dark-surfaces/index.js +6 -6
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.cjs.map +1 -1
- package/dist/components/composed/data-display/index.js +7 -7
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +4 -4
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +2 -2
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +2 -2
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +4 -4
- package/dist/components/features/ai-chat/index.cjs +1 -1
- package/dist/components/features/ai-chat/index.cjs.map +1 -1
- package/dist/components/features/ai-chat/index.js +6 -6
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +3 -3
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +3 -3
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.js +9 -9
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +2 -2
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +1 -1
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- 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/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +2 -2
- 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 +6 -6
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +3 -2
- package/dist/showcase/assets/AreaChart-CJ57G5Ub.js +6 -0
- package/dist/showcase/assets/CSPContext-BA7DfnCI.js +1 -0
- package/dist/showcase/assets/CompositeItem-PwzgE4va.js +1 -0
- package/dist/showcase/assets/CompositeRoot-Du4CMlK7.js +1 -0
- package/dist/showcase/assets/DialogTrigger-FkENgwo6.js +1 -0
- package/dist/showcase/assets/FormContext-ChygLayp.js +1 -0
- package/dist/showcase/assets/PreviewLayout-z6vpJJGt.js +1 -0
- package/dist/showcase/assets/RadioGroup-CcDmbxOw.js +1 -0
- package/dist/showcase/assets/Separator-Dk4eN76U.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-D_KAA5hZ.js +1 -0
- package/dist/showcase/assets/accordion-dQszzfmw.js +172 -0
- package/dist/showcase/assets/accordion-variants-Dp4wxic-.js +1 -0
- package/dist/showcase/assets/action-menu-CBi2Eiy0.js +1 -0
- package/dist/showcase/assets/activities-DoXsgP4G.js +501 -0
- package/dist/showcase/assets/activities-feed-card-xz5FtkOm.js +1 -0
- package/dist/showcase/assets/admin-CxklUqAG.js +80 -0
- package/dist/showcase/assets/ai-artifact-DkhUdEbM.js +2 -0
- package/dist/showcase/assets/ai-chat-B6PuqkEu.js +568 -0
- package/dist/showcase/assets/ai-elements-D_rpj_ds.js +379 -0
- package/dist/showcase/assets/ai-new-CUPrAbOK.js +167 -0
- package/dist/showcase/assets/ai-tool-call-CEr-dGVx.js +1 -0
- package/dist/showcase/assets/ai-zxF_msJF.js +41 -0
- package/dist/showcase/assets/alert-771BE3Ny.js +59 -0
- package/dist/showcase/assets/alert-CG42DAlX.js +1 -0
- package/dist/showcase/assets/api-key-list-D6jUN7Fq.js +73 -0
- package/dist/showcase/assets/arrow-down-CUoXUyN1.js +1 -0
- package/dist/showcase/assets/arrow-left-Cdq69X6h.js +1 -0
- package/dist/showcase/assets/arrow-right-i25q9L2H.js +1 -0
- package/dist/showcase/assets/arrow-up-pnezegnF.js +1 -0
- package/dist/showcase/assets/arrow-up-right-CK3XnMah.js +1 -0
- package/dist/showcase/assets/avatar-LPmQqZQv.js +1 -0
- package/dist/showcase/assets/avatar-ZVFIQouy.js +57 -0
- package/dist/showcase/assets/badge-DK4bsgZC.js +28 -0
- package/dist/showcase/assets/badge-check-Cw5gkVcG.js +1 -0
- package/dist/showcase/assets/bell-BvJELoaV.js +1 -0
- package/dist/showcase/assets/bot-DRj6sdSR.js +1 -0
- package/dist/showcase/assets/box-BNND3M2m.js +1 -0
- package/dist/showcase/assets/brain-Cy3o-12l.js +1 -0
- package/dist/showcase/assets/brand-DvipEpFn.js +40 -0
- package/dist/showcase/assets/breadcrumb-B-LNuOyv.js +1 -0
- package/dist/showcase/assets/breadcrumb-Lzpc0yo4.js +52 -0
- package/dist/showcase/assets/breadcrumbs-DD6msKFZ.js +1 -0
- package/dist/showcase/assets/briefcase-LcAwoEmu.js +1 -0
- package/dist/showcase/assets/button-CuwcGzk1.js +44 -0
- package/dist/showcase/assets/button-group-CAImjDrl.js +1 -0
- package/dist/showcase/assets/buttons-DTjNHCMl.js +259 -0
- package/dist/showcase/assets/calendar-B1zW0q6I.js +1 -0
- package/dist/showcase/assets/calendar-Dlv72ytt.js +1 -0
- package/dist/showcase/assets/calendar-ls2A08Pn.js +16 -0
- package/dist/showcase/assets/card-BhtkM1BT.js +1 -0
- package/dist/showcase/assets/cards-BRpRXzGk.js +328 -0
- package/dist/showcase/assets/chart-column-BpQkEi1H.js +1 -0
- package/dist/showcase/assets/chevron-down-DyObdfSb.js +1 -0
- package/dist/showcase/assets/chevron-left-T7dHNxYM.js +1 -0
- package/dist/showcase/assets/chevron-right-D_EcqHpT.js +1 -0
- package/dist/showcase/assets/chevron-up-B38ivdGO.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-SdRARzoq.js +1 -0
- package/dist/showcase/assets/circle-BrCPAmDA.js +1 -0
- package/dist/showcase/assets/circle-alert-DdhzLPY_.js +1 -0
- package/dist/showcase/assets/circle-check-DlA6zidQ.js +1 -0
- package/dist/showcase/assets/circle-check-big-DFGJANQF.js +1 -0
- package/dist/showcase/assets/circle-dot-BKmnVUqM.js +1 -0
- package/dist/showcase/assets/circle-question-mark-BNREvgVC.js +1 -0
- package/dist/showcase/assets/circle-x-C45QjHEs.js +1 -0
- package/dist/showcase/assets/clock-D1nKQzQo.js +1 -0
- package/dist/showcase/assets/code-xml-B8N3GRSu.js +1 -0
- package/dist/showcase/assets/collapsible-4TfcWyNs.js +1 -0
- package/dist/showcase/assets/collapsible-CKbZtvTj.js +27 -0
- package/dist/showcase/assets/combobox-DTdGPaU0.js +622 -0
- package/dist/showcase/assets/command-DymTXwL1.js +1 -0
- package/dist/showcase/assets/command-ksVIHQKJ.js +45 -0
- package/dist/showcase/assets/comment-composer-DC9oS1Yy.js +1 -0
- package/dist/showcase/assets/comment-item-CAmKnJa7.js +1 -0
- package/dist/showcase/assets/comments-Benk-2mV.js +349 -0
- package/dist/showcase/assets/commerce-Qz-mq8mQ.js +78 -0
- package/dist/showcase/assets/commerce-extras-CQRc3Bna.js +179 -0
- package/dist/showcase/assets/composite-DBDXLPyz.js +1 -0
- package/dist/showcase/assets/contact-card-DkL2nI3r.js +65 -0
- package/dist/showcase/assets/content-container-mRm6oJEa.js +1 -0
- package/dist/showcase/assets/copyable-DmLlmwzy.js +96 -0
- package/dist/showcase/assets/course-card-CJJoeZj9.js +113 -0
- package/dist/showcase/assets/cpu-BXJnF2Xy.js +1 -0
- package/dist/showcase/assets/credit-card-BQK3KKb2.js +1 -0
- package/dist/showcase/assets/currency-DBPUh8ee.js +149 -0
- package/dist/showcase/assets/dark-surfaces-LpPuIeYy.js +90 -0
- package/dist/showcase/assets/database-BZerpzGE.js +1 -0
- package/dist/showcase/assets/date-block-iiHUpbNX.js +1 -0
- package/dist/showcase/assets/date-picker-BQeBGL7T.js +1 -0
- package/dist/showcase/assets/date-pickers-CKcUEMMF.js +110 -0
- package/dist/showcase/assets/dense-info-DATmxRU8.js +106 -0
- package/dist/showcase/assets/dialog-Bqu5KDYH.js +1 -0
- package/dist/showcase/assets/display-Bj7uPXD4.js +392 -0
- package/dist/showcase/assets/dist-QK7JxeYv.js +1 -0
- package/dist/showcase/assets/dollar-sign-DFZs6vfz.js +1 -0
- package/dist/showcase/assets/download-5oGw_WbW.js +1 -0
- package/dist/showcase/assets/dropdown-menu-1CJgYn0S.js +1 -0
- package/dist/showcase/assets/dropzone-Co1uhsDn.js +1 -0
- package/dist/showcase/assets/ellipsis-cKRcvuyL.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-B1RErEkj.js +1 -0
- package/dist/showcase/assets/empty-Y2-4nCBr.js +1 -0
- package/dist/showcase/assets/empty-item-USa6xcUv.js +49 -0
- package/dist/showcase/assets/empty-state-DfhZ9AT5.js +188 -0
- package/dist/showcase/assets/enhanced-activities-DmAPVUSu.js +359 -0
- package/dist/showcase/assets/esm-BeGQ_ZTM.js +2 -0
- package/dist/showcase/assets/event-calendar-D-jGrrZS.js +138 -0
- package/dist/showcase/assets/event-log-tA_i4eR9.js +326 -0
- package/dist/showcase/assets/example-6phCHGsN.js +1 -0
- package/dist/showcase/assets/external-link-BuVHkCy0.js +1 -0
- package/dist/showcase/assets/eye-DC5HfGm6.js +1 -0
- package/dist/showcase/assets/feature-announcement-DwvxLytd.js +34 -0
- package/dist/showcase/assets/file-D-xM4vLy.js +1 -0
- package/dist/showcase/assets/file-text-tmG5vNbr.js +1 -0
- package/dist/showcase/assets/filters-CrGRXmq6.js +78 -0
- package/dist/showcase/assets/flag-CWrEtkY5.js +1 -0
- package/dist/showcase/assets/folder-open-Br-x1pjP.js +1 -0
- package/dist/showcase/assets/form-sizing-Bb5hiM45.js +1 -0
- package/dist/showcase/assets/format-D_ETCyg4.js +1 -0
- package/dist/showcase/assets/forms-B_MkQ3rm.js +790 -0
- package/dist/showcase/assets/generic-CdmsyXV3.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-CZnCbCFP.js +1 -0
- package/dist/showcase/assets/gift-NkuklfU2.js +1 -0
- package/dist/showcase/assets/giftcard-cards-BAvevZ0i.js +85 -0
- package/dist/showcase/assets/git-branch-B_CBqPeO.js +1 -0
- package/dist/showcase/assets/global-search-D9teAbPe.js +90 -0
- package/dist/showcase/assets/globe-gzw45GU2.js +1 -0
- package/dist/showcase/assets/gradient-card-Xk2r7R5H.js +58 -0
- package/dist/showcase/assets/header-notifications-_aZCpE5A.js +1 -0
- package/dist/showcase/assets/heart-CEMKbRaZ.js +1 -0
- package/dist/showcase/assets/house-BlGXAcMH.js +1 -0
- package/dist/showcase/assets/icon-badge-z6N9reH_.js +1 -0
- package/dist/showcase/assets/image-B8mzmVBr.js +1 -0
- package/dist/showcase/assets/inbox-qdSnP4UV.js +1 -0
- package/dist/showcase/assets/index-B4ubXfly.js +10 -0
- package/dist/showcase/assets/inertValue-D5Q8cLku.js +1 -0
- package/dist/showcase/assets/info-DBvvNjc_.js +1 -0
- package/dist/showcase/assets/inline-stat-Bm1zVT8D.js +1 -0
- package/dist/showcase/assets/input-CBQR0aeX.js +1 -0
- package/dist/showcase/assets/input-OrUzpI55.js +1 -0
- package/dist/showcase/assets/input-group-DhqOen2N.js +47 -0
- package/dist/showcase/assets/input-group-l8xa5nUq.js +1 -0
- package/dist/showcase/assets/inputs-DbiJ0qy2.js +49 -0
- package/dist/showcase/assets/invoice-header-C6youIbL.js +36 -0
- package/dist/showcase/assets/invoice-items-g6dgryF-.js +36 -0
- package/dist/showcase/assets/invoice-mini-0iWhufpt.js +14 -0
- package/dist/showcase/assets/invoice-table-Bvdh3rRq.js +30 -0
- package/dist/showcase/assets/isSameDay-BpZEtJe8.js +1 -0
- package/dist/showcase/assets/isToday-F0CS28oK.js +1 -0
- package/dist/showcase/assets/italic-CJOEwjdc.js +1 -0
- package/dist/showcase/assets/item-BiMm1PPB.js +1 -0
- package/dist/showcase/assets/item-CN0cwdj_.js +1 -0
- package/dist/showcase/assets/item-DNqEUYLT.js +117 -0
- package/dist/showcase/assets/kanban-DxePEUiQ.js +175 -0
- package/dist/showcase/assets/label-Dx4WO-fg.js +1 -0
- package/dist/showcase/assets/layout-containers-DDl8rG8S.js +96 -0
- package/dist/showcase/assets/layout-header-Bu6IcDWu.js +170 -0
- package/dist/showcase/assets/layout-page-D-88Qnoy.js +122 -0
- package/dist/showcase/assets/layout-sidebar-Ctft10pk.js +224 -0
- package/dist/showcase/assets/layout-users-DtbZduBG.js +104 -0
- package/dist/showcase/assets/lib-D9BoOYUd.js +1 -0
- package/dist/showcase/assets/lock-CHurDI0n.js +1 -0
- package/dist/showcase/assets/mail-DZ1o1RLW.js +1 -0
- package/dist/showcase/assets/map-C8xiyT9X.js +124 -0
- package/dist/showcase/assets/map-pin-CAKaoYod.js +1 -0
- package/dist/showcase/assets/menus-C6mnp636.js +89 -0
- package/dist/showcase/assets/message-square-Zo5J_zU1.js +1 -0
- package/dist/showcase/assets/metadata-list-W83-UMhc.js +278 -0
- package/dist/showcase/assets/metric-BSvxidIX.js +1 -0
- package/dist/showcase/assets/metric-grid-Dtqx_3Lg.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-mtvcJ_M9.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-DQbyss7i.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-CEBu5Uw0.js +77 -0
- package/dist/showcase/assets/metrics-comparison-Bs-R6v4y.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-BKHWH8sM.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-BxVn0Y2p.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-DtACYEds.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-BkwUGOUR.js +42 -0
- package/dist/showcase/assets/metrics-overview-BAtrlzsI.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-iCRCNyHY.js +54 -0
- package/dist/showcase/assets/minus-C6eBW-2t.js +1 -0
- package/dist/showcase/assets/money-display-DjGRJ16l.js +1 -0
- package/dist/showcase/assets/month-year-picker-DTDebPqf.js +1 -0
- package/dist/showcase/assets/navigation-BrG8Chig.js +86 -0
- package/dist/showcase/assets/navigation-CfXQJbyM.js +230 -0
- package/dist/showcase/assets/navigation-extras-D_gzLlZ5.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-1EerUwAo.js +119 -0
- package/dist/showcase/assets/overlays-2AB9-S1Z.js +88 -0
- package/dist/showcase/assets/overlays-CYt9o3Xq.js +393 -0
- package/dist/showcase/assets/package-BJMP-Fcr.js +1 -0
- package/dist/showcase/assets/page-action-button-BZxJ0X1j.js +1 -0
- package/dist/showcase/assets/page-header-B_rqHJhe.js +1 -0
- package/dist/showcase/assets/pagination-BHiQvvka.js +1 -0
- package/dist/showcase/assets/pagination-Dq0GruQd.js +42 -0
- package/dist/showcase/assets/paperclip-BMYKrUQo.js +1 -0
- package/dist/showcase/assets/pencil-BJ3VS_FO.js +1 -0
- package/dist/showcase/assets/phone-CsRIyvep.js +1 -0
- package/dist/showcase/assets/plus-D2JuXYLg.js +1 -0
- package/dist/showcase/assets/popover-DNT9755r.js +1 -0
- package/dist/showcase/assets/popover-KvGgcPNg.js +1 -0
- package/dist/showcase/assets/popover-menu-CJx30R65.js +1 -0
- package/dist/showcase/assets/progress-B7WuXcJR.js +1 -0
- package/dist/showcase/assets/progress-CweCSAUv.js +18 -0
- package/dist/showcase/assets/props-table-uDY4eIzt.js +1 -0
- package/dist/showcase/assets/quote-DAyyfzQd.js +1 -0
- package/dist/showcase/assets/receipt-C0mMZGbF.js +1 -0
- package/dist/showcase/assets/refresh-cw-X06JbXb-.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-Bks7UDko.js +1 -0
- package/dist/showcase/assets/rich-text-editor-QJsb-qIe.js +124 -0
- package/dist/showcase/assets/rich-text-editor-h07VBNI9.js +141 -0
- package/dist/showcase/assets/rotate-ccw-D84bdX_x.js +1 -0
- package/dist/showcase/assets/scroll-area-0rT06pXZ.js +1 -0
- package/dist/showcase/assets/scroll-area-YXwdzGpN.js +32 -0
- package/dist/showcase/assets/select-BoWQDtUf.js +1 -0
- package/dist/showcase/assets/send-DJsk3cr1.js +1 -0
- package/dist/showcase/assets/separator-CLSnRcJa.js +28 -0
- package/dist/showcase/assets/separator-DWv-twD-.js +1 -0
- package/dist/showcase/assets/settings-Cb2MsAmN.js +1 -0
- package/dist/showcase/assets/sheet-Dn1-MYus.js +1 -0
- package/dist/showcase/assets/shield-DwLjF5ch.js +1 -0
- package/dist/showcase/assets/shield-alert-D8i6gzMK.js +1 -0
- package/dist/showcase/assets/shield-check-D5YRSBIz.js +1 -0
- package/dist/showcase/assets/shopping-bag-BqlAP4vn.js +1 -0
- package/dist/showcase/assets/sidebar.context-BAp_pBEB.js +1 -0
- package/dist/showcase/assets/skeleton-CeNPp4hr.js +1 -0
- package/dist/showcase/assets/skeleton-QPsnM_NR.js +29 -0
- package/dist/showcase/assets/smart-card-BisUbLPt.js +1 -0
- package/dist/showcase/assets/sonner-B7GzbBK2.js +22 -0
- package/dist/showcase/assets/sortable.esm-BDcEOHT7.js +5 -0
- package/dist/showcase/assets/sparkles-CF9P5Tqh.js +1 -0
- package/dist/showcase/assets/spinner-BeamEyJd.js +49 -0
- package/dist/showcase/assets/spinner-DoYBfalR.js +1 -0
- package/dist/showcase/assets/spinner-UsLsOYzn.js +30 -0
- package/dist/showcase/assets/square-pen-BGTVdnt1.js +1 -0
- package/dist/showcase/assets/stacked-avatars-BWfVX1Ov.js +1 -0
- package/dist/showcase/assets/star-NsPNO9gR.js +1 -0
- package/dist/showcase/assets/startOfDay-zJBpxLuW.js +1 -0
- package/dist/showcase/assets/styles-DA7a7hVy.js +1 -0
- package/dist/showcase/assets/switch-C62S4U2o.js +1 -0
- package/dist/showcase/assets/switch-CYQcinJZ.js +1 -0
- package/dist/showcase/assets/table-w4IABkpa.js +1 -0
- package/dist/showcase/assets/table-xgB63UrY.js +390 -0
- package/dist/showcase/assets/tabs-BFTEaTXj.js +19 -0
- package/dist/showcase/assets/tabs-oMJn9Ujq.js +1 -0
- package/dist/showcase/assets/text-button-BgcutPuu.js +1 -0
- package/dist/showcase/assets/text-link-CS9thOWL.js +1 -0
- package/dist/showcase/assets/textarea-BOBx4EM6.js +1 -0
- package/dist/showcase/assets/textarea-CTzYZZqa.js +1 -0
- package/dist/showcase/assets/timelines-CK07mEBK.js +186 -0
- package/dist/showcase/assets/toggle-group-CSPdPT6G.js +1 -0
- package/dist/showcase/assets/toggles-DDSdl-gA.js +71 -0
- package/dist/showcase/assets/toggles-group-Y2BdKEFB.js +32 -0
- package/dist/showcase/assets/trash-2-C-FAptQP.js +1 -0
- package/dist/showcase/assets/trending-up-BmLhdF_w.js +1 -0
- package/dist/showcase/assets/truck-pZdUS_as.js +1 -0
- package/dist/showcase/assets/typography-CnBH2z7f.js +214 -0
- package/dist/showcase/assets/ui-badge-Cl6INRO5.js +28 -0
- package/dist/showcase/assets/ui-card-B5P-thNu.js +30 -0
- package/dist/showcase/assets/ui-table-B32RILKk.js +42 -0
- package/dist/showcase/assets/upload-tray-mu6bR2ZE.js +138 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CzDaXxmM.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-B0DZvDFu.js +1 -0
- package/dist/showcase/assets/useCompositeItem-BVIVLT9X.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-JEMeTFPx.js +1 -0
- package/dist/showcase/assets/useControlled-ZjqBfPCn.js +1 -0
- package/dist/showcase/assets/useLabelableId-D8CZq8Bm.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CopGCf3q.js +1 -0
- package/dist/showcase/assets/useRender-zuKv6JQF.js +1 -0
- package/dist/showcase/assets/useRole-08KeyiD3.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-DEuz5CGe.js +1 -0
- package/dist/showcase/assets/useValueChanged-BxFi_qyj.js +1 -0
- package/dist/showcase/assets/user-Bgc2t2_e.js +1 -0
- package/dist/showcase/assets/user-plus-F_TfagnP.js +1 -0
- package/dist/showcase/assets/users-B7G4yTCR.js +1 -0
- package/dist/showcase/assets/vendor-profile-BTQmsKM6.js +37 -0
- package/dist/showcase/assets/wrench-BdzICmjR.js +1 -0
- package/dist/showcase/assets/x-B156Wr-5.js +1 -0
- package/dist/showcase/assets/zap-B3iByjNV.js +1 -0
- package/dist/showcase/index.html +1 -1
- package/package.json +254 -19
- package/dist/_shared/accordion-7rwpgJ1k.cjs +0 -2
- package/dist/_shared/accordion-7rwpgJ1k.cjs.map +0 -1
- package/dist/_shared/accordion-DcduCEIo.js +0 -130
- package/dist/_shared/accordion-DcduCEIo.js.map +0 -1
- package/dist/_shared/action-menu-D0u-q0q-.cjs +0 -2
- package/dist/_shared/action-menu-D0u-q0q-.cjs.map +0 -1
- package/dist/_shared/action-menu-DUBXdReV.js +0 -96
- package/dist/_shared/action-menu-DUBXdReV.js.map +0 -1
- package/dist/_shared/ai-artifact-C3R0god0.cjs +0 -3
- package/dist/_shared/ai-artifact-C3R0god0.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DMjQv_Si.js +0 -1068
- package/dist/_shared/ai-artifact-DMjQv_Si.js.map +0 -1
- package/dist/_shared/alert-B2cuJGAA.cjs +0 -2
- package/dist/_shared/alert-B2cuJGAA.cjs.map +0 -1
- package/dist/_shared/alert-BKUmOI2e.js +0 -48
- package/dist/_shared/alert-BKUmOI2e.js.map +0 -1
- package/dist/_shared/avatar-BcYcRORH.cjs +0 -2
- package/dist/_shared/avatar-BcYcRORH.cjs.map +0 -1
- package/dist/_shared/avatar-CNzG6jSZ.js +0 -52
- package/dist/_shared/avatar-CNzG6jSZ.js.map +0 -1
- package/dist/_shared/badge-BbUN6W7E.js +0 -108
- package/dist/_shared/badge-BbUN6W7E.js.map +0 -1
- package/dist/_shared/badge-BjtDcU1M.cjs +0 -2
- package/dist/_shared/badge-BjtDcU1M.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-DctwTld5.js +0 -111
- package/dist/_shared/breadcrumbs-DctwTld5.js.map +0 -1
- package/dist/_shared/breadcrumbs-m0-gCdNj.cjs +0 -2
- package/dist/_shared/breadcrumbs-m0-gCdNj.cjs.map +0 -1
- package/dist/_shared/button-BCABTFLE.js +0 -46
- package/dist/_shared/button-BCABTFLE.js.map +0 -1
- package/dist/_shared/button-Ck2qS42n.js +0 -176
- package/dist/_shared/button-Ck2qS42n.js.map +0 -1
- package/dist/_shared/button-DjJ-mDI1.cjs +0 -2
- package/dist/_shared/button-DjJ-mDI1.cjs.map +0 -1
- package/dist/_shared/button-DjacsNTg.cjs +0 -2
- package/dist/_shared/button-DjacsNTg.cjs.map +0 -1
- package/dist/_shared/buttons-BVnjQ-uE.js +0 -143
- package/dist/_shared/buttons-BVnjQ-uE.js.map +0 -1
- package/dist/_shared/buttons-BdY6igTr.cjs +0 -2
- package/dist/_shared/buttons-BdY6igTr.cjs.map +0 -1
- package/dist/_shared/card-radio-group--GP1xrz_.js +0 -158
- package/dist/_shared/card-radio-group--GP1xrz_.js.map +0 -1
- package/dist/_shared/card-radio-group-DnQsWozr.cjs +0 -2
- package/dist/_shared/card-radio-group-DnQsWozr.cjs.map +0 -1
- package/dist/_shared/combobox-DBrRE1Dr.cjs +0 -2
- package/dist/_shared/combobox-DBrRE1Dr.cjs.map +0 -1
- package/dist/_shared/combobox-DYztEJaw.js +0 -746
- package/dist/_shared/combobox-DYztEJaw.js.map +0 -1
- package/dist/_shared/command-COvgXQ8r.cjs +0 -2
- package/dist/_shared/command-COvgXQ8r.cjs.map +0 -1
- package/dist/_shared/command-CvZ6Emb8.js +0 -39
- package/dist/_shared/command-CvZ6Emb8.js.map +0 -1
- package/dist/_shared/command-DTFQIUVG.cjs +0 -2
- package/dist/_shared/command-DTFQIUVG.cjs.map +0 -1
- package/dist/_shared/command-Sq8XbHbA.js +0 -123
- package/dist/_shared/command-Sq8XbHbA.js.map +0 -1
- package/dist/_shared/comments-BOFU1GYY.js +0 -945
- package/dist/_shared/comments-BOFU1GYY.js.map +0 -1
- package/dist/_shared/comments-BbTYFzx6.cjs +0 -2
- package/dist/_shared/comments-BbTYFzx6.cjs.map +0 -1
- package/dist/_shared/containers-BthqdOhA.cjs +0 -2
- package/dist/_shared/containers-BthqdOhA.cjs.map +0 -1
- package/dist/_shared/containers-CD2xs1nk.js +0 -19
- package/dist/_shared/containers-CD2xs1nk.js.map +0 -1
- package/dist/_shared/content-container-CFfYbWoa.js +0 -33
- package/dist/_shared/content-container-CFfYbWoa.js.map +0 -1
- package/dist/_shared/content-container-CReiVugL.cjs +0 -2
- package/dist/_shared/content-container-CReiVugL.cjs.map +0 -1
- package/dist/_shared/copyable-CweQ72QI.cjs +0 -2
- package/dist/_shared/copyable-CweQ72QI.cjs.map +0 -1
- package/dist/_shared/copyable-JgsTp6ev.js +0 -38
- package/dist/_shared/copyable-JgsTp6ev.js.map +0 -1
- package/dist/_shared/date-picker-DI4b-SeE.cjs +0 -2
- package/dist/_shared/date-picker-DI4b-SeE.cjs.map +0 -1
- package/dist/_shared/date-picker-DTazvODY.js +0 -1352
- package/dist/_shared/date-picker-DTazvODY.js.map +0 -1
- package/dist/_shared/date-pickers-CLzuzmuc.cjs +0 -2
- package/dist/_shared/date-pickers-CLzuzmuc.cjs.map +0 -1
- package/dist/_shared/date-pickers-CWPxP3zy.js +0 -330
- package/dist/_shared/date-pickers-CWPxP3zy.js.map +0 -1
- package/dist/_shared/dialog-2MJmaj_d.js +0 -101
- package/dist/_shared/dialog-2MJmaj_d.js.map +0 -1
- package/dist/_shared/dialog-KKD0i1T8.cjs +0 -2
- package/dist/_shared/dialog-KKD0i1T8.cjs.map +0 -1
- package/dist/_shared/display-BCy1Ti7T.cjs +0 -8
- package/dist/_shared/display-BCy1Ti7T.cjs.map +0 -1
- package/dist/_shared/display-DUpkE2aS.js +0 -1462
- package/dist/_shared/display-DUpkE2aS.js.map +0 -1
- package/dist/_shared/dropdown-menu-BebBffUH.cjs +0 -2
- package/dist/_shared/dropdown-menu-BebBffUH.cjs.map +0 -1
- package/dist/_shared/dropdown-menu-xdGEynC8.js +0 -147
- package/dist/_shared/dropdown-menu-xdGEynC8.js.map +0 -1
- package/dist/_shared/form-field-rOj3cm6C.js +0 -319
- package/dist/_shared/form-field-rOj3cm6C.js.map +0 -1
- package/dist/_shared/form-field-rcyIIHjR.cjs +0 -2
- package/dist/_shared/form-field-rcyIIHjR.cjs.map +0 -1
- package/dist/_shared/form-sizing--bs_xPe2.cjs +0 -2
- package/dist/_shared/form-sizing--bs_xPe2.cjs.map +0 -1
- package/dist/_shared/form-sizing-CkKcs5fi.js +0 -21
- package/dist/_shared/form-sizing-CkKcs5fi.js.map +0 -1
- package/dist/_shared/format-BlVEsPyT.js +0 -48
- package/dist/_shared/format-BlVEsPyT.js.map +0 -1
- package/dist/_shared/format-DYVtSA2I.cjs +0 -2
- package/dist/_shared/format-DYVtSA2I.cjs.map +0 -1
- package/dist/_shared/forms-BAVsxxRk.js +0 -3374
- package/dist/_shared/forms-BAVsxxRk.js.map +0 -1
- package/dist/_shared/forms-DaZ3LsYc.cjs +0 -2
- package/dist/_shared/forms-DaZ3LsYc.cjs.map +0 -1
- package/dist/_shared/header-BtTMsQ5P.cjs +0 -2
- package/dist/_shared/header-BtTMsQ5P.cjs.map +0 -1
- package/dist/_shared/header-DpW4UWV6.js +0 -369
- package/dist/_shared/header-DpW4UWV6.js.map +0 -1
- package/dist/_shared/hooks-Bsm917yh.cjs +0 -2
- package/dist/_shared/hooks-Bsm917yh.cjs.map +0 -1
- package/dist/_shared/hooks-CX-SICd4.js +0 -118
- package/dist/_shared/hooks-CX-SICd4.js.map +0 -1
- package/dist/_shared/icon-badge-DGKpbo9_.cjs +0 -2
- package/dist/_shared/icon-badge-DGKpbo9_.cjs.map +0 -1
- package/dist/_shared/icon-badge-DoClA_9q.js +0 -52
- package/dist/_shared/icon-badge-DoClA_9q.js.map +0 -1
- package/dist/_shared/input-BXt-YtVs.cjs +0 -2
- package/dist/_shared/input-BXt-YtVs.cjs.map +0 -1
- package/dist/_shared/input-Bx4LeLhn.js +0 -17
- package/dist/_shared/input-Bx4LeLhn.js.map +0 -1
- package/dist/_shared/input-ChZGIhtS.cjs +0 -2
- package/dist/_shared/input-ChZGIhtS.cjs.map +0 -1
- package/dist/_shared/input-Cwv1-5jt.js +0 -182
- package/dist/_shared/input-Cwv1-5jt.js.map +0 -1
- package/dist/_shared/item-BmTYKzEb.js +0 -224
- package/dist/_shared/item-BmTYKzEb.js.map +0 -1
- package/dist/_shared/item-BtR-bz96.cjs +0 -2
- package/dist/_shared/item-BtR-bz96.cjs.map +0 -1
- package/dist/_shared/mentions-DVCjaO_z.cjs +0 -2
- package/dist/_shared/mentions-DVCjaO_z.cjs.map +0 -1
- package/dist/_shared/mentions-DzG8mX5H.js +0 -493
- package/dist/_shared/mentions-DzG8mX5H.js.map +0 -1
- package/dist/_shared/money-display-B5oxCs_0.cjs +0 -2
- package/dist/_shared/money-display-B5oxCs_0.cjs.map +0 -1
- package/dist/_shared/money-display-C0wI02ou.js +0 -198
- package/dist/_shared/money-display-C0wI02ou.js.map +0 -1
- package/dist/_shared/navigation-BA2nsTgU.cjs +0 -2
- package/dist/_shared/navigation-BA2nsTgU.cjs.map +0 -1
- package/dist/_shared/navigation-DHyaf-RZ.js +0 -420
- package/dist/_shared/navigation-DHyaf-RZ.js.map +0 -1
- package/dist/_shared/overlays-Kl6Gp6WR.js +0 -633
- package/dist/_shared/overlays-Kl6Gp6WR.js.map +0 -1
- package/dist/_shared/overlays-W6j-Pe1L.cjs +0 -2
- package/dist/_shared/overlays-W6j-Pe1L.cjs.map +0 -1
- package/dist/_shared/page-DROZhtWT.js +0 -263
- package/dist/_shared/page-DROZhtWT.js.map +0 -1
- package/dist/_shared/page-lh9Rcx_d.cjs +0 -2
- package/dist/_shared/page-lh9Rcx_d.cjs.map +0 -1
- package/dist/_shared/popover-BTEwjJZS.cjs +0 -2
- package/dist/_shared/popover-BTEwjJZS.cjs.map +0 -1
- package/dist/_shared/popover-CF9VWt-l.js +0 -83
- package/dist/_shared/popover-CF9VWt-l.js.map +0 -1
- package/dist/_shared/popover-menu-BYesl29w.js +0 -95
- package/dist/_shared/popover-menu-BYesl29w.js.map +0 -1
- package/dist/_shared/popover-menu-DF9sWz61.cjs +0 -2
- package/dist/_shared/popover-menu-DF9sWz61.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-UZghkgsh.cjs +0 -2
- package/dist/_shared/rich-text-editor-UZghkgsh.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-fUeuK-rY.js +0 -608
- package/dist/_shared/rich-text-editor-fUeuK-rY.js.map +0 -1
- package/dist/_shared/scroll-area-XJLcCczs.js +0 -41
- package/dist/_shared/scroll-area-XJLcCczs.js.map +0 -1
- package/dist/_shared/scroll-area-y8ZJoS97.cjs +0 -2
- package/dist/_shared/scroll-area-y8ZJoS97.cjs.map +0 -1
- package/dist/_shared/select-D8MYF4f7.js +0 -85
- package/dist/_shared/select-D8MYF4f7.js.map +0 -1
- package/dist/_shared/select-DxAiUfpM.cjs +0 -2
- package/dist/_shared/select-DxAiUfpM.cjs.map +0 -1
- package/dist/_shared/separator-BazqiQ9s.js +0 -16
- package/dist/_shared/separator-BazqiQ9s.js.map +0 -1
- package/dist/_shared/separator-DSkXMOXq.cjs +0 -2
- package/dist/_shared/separator-DSkXMOXq.cjs.map +0 -1
- package/dist/_shared/sheet-7iHOs-IU.js +0 -100
- package/dist/_shared/sheet-7iHOs-IU.js.map +0 -1
- package/dist/_shared/sheet-qKtoyxgi.cjs +0 -2
- package/dist/_shared/sheet-qKtoyxgi.cjs.map +0 -1
- package/dist/_shared/sidebar-CaTUJ3t-.js +0 -537
- package/dist/_shared/sidebar-CaTUJ3t-.js.map +0 -1
- package/dist/_shared/sidebar-DVjfsm-f.cjs +0 -2
- package/dist/_shared/sidebar-DVjfsm-f.cjs.map +0 -1
- package/dist/_shared/sidebar-aV5DVAVg.js +0 -371
- package/dist/_shared/sidebar-aV5DVAVg.js.map +0 -1
- package/dist/_shared/sidebar-mL0jSJ8u.cjs +0 -2
- package/dist/_shared/sidebar-mL0jSJ8u.cjs.map +0 -1
- package/dist/_shared/skeleton-Bwv_j9jJ.cjs +0 -2
- package/dist/_shared/skeleton-Bwv_j9jJ.cjs.map +0 -1
- package/dist/_shared/skeleton-DyKa-Ed-.js +0 -14
- package/dist/_shared/skeleton-DyKa-Ed-.js.map +0 -1
- package/dist/_shared/slot-ClIPTht1.cjs +0 -2
- package/dist/_shared/slot-ClIPTht1.cjs.map +0 -1
- package/dist/_shared/slot-CrS_VEVl.js +0 -18
- package/dist/_shared/slot-CrS_VEVl.js.map +0 -1
- package/dist/_shared/smart-card-Ddsjvf7r.cjs +0 -2
- package/dist/_shared/smart-card-Ddsjvf7r.cjs.map +0 -1
- package/dist/_shared/smart-card-hJ01usWt.js +0 -360
- package/dist/_shared/smart-card-hJ01usWt.js.map +0 -1
- package/dist/_shared/spinner-D-pcMBt1.js +0 -67
- package/dist/_shared/spinner-D-pcMBt1.js.map +0 -1
- package/dist/_shared/spinner-zbmhn0vE.cjs +0 -2
- package/dist/_shared/spinner-zbmhn0vE.cjs.map +0 -1
- package/dist/_shared/switch-C5J37LMI.cjs +0 -2
- package/dist/_shared/switch-C5J37LMI.cjs.map +0 -1
- package/dist/_shared/switch-ClGgHcEb.js +0 -51
- package/dist/_shared/switch-ClGgHcEb.js.map +0 -1
- package/dist/_shared/textarea-DeISZfHw.js +0 -119
- package/dist/_shared/textarea-DeISZfHw.js.map +0 -1
- package/dist/_shared/textarea-iR9txrty.cjs +0 -2
- package/dist/_shared/textarea-iR9txrty.cjs.map +0 -1
- package/dist/_shared/tooltip-CEqxHWxQ.js +0 -49
- package/dist/_shared/tooltip-CEqxHWxQ.js.map +0 -1
- package/dist/_shared/tooltip-DPv0LGr9.cjs +0 -2
- package/dist/_shared/tooltip-DPv0LGr9.cjs.map +0 -1
- package/dist/_shared/typography-BtPQBvSm.js +0 -135
- package/dist/_shared/typography-BtPQBvSm.js.map +0 -1
- package/dist/_shared/typography-DClleVWi.cjs +0 -2
- package/dist/_shared/typography-DClleVWi.cjs.map +0 -1
- package/dist/showcase/assets/AreaChart-D-RqNtqG.js +0 -6
- package/dist/showcase/assets/CSPContext-t69BXyB7.js +0 -1
- package/dist/showcase/assets/CompositeItem-DHNLgEeV.js +0 -1
- package/dist/showcase/assets/CompositeRoot-xq_0ZFev.js +0 -1
- package/dist/showcase/assets/DialogTrigger-Cl7n_3xX.js +0 -1
- package/dist/showcase/assets/FormContext-CXdwDz7F.js +0 -1
- package/dist/showcase/assets/PreviewLayout-BHemtKEf.js +0 -1
- package/dist/showcase/assets/RadioGroup-DXAt4VZN.js +0 -1
- package/dist/showcase/assets/Separator-C9vXwWmZ.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-iF4ctnIz.js +0 -1
- package/dist/showcase/assets/accordion-DzkNgNcB.js +0 -172
- package/dist/showcase/assets/accordion-variants-DP5-oxLe.js +0 -1
- package/dist/showcase/assets/action-menu-CyA2e9TF.js +0 -1
- package/dist/showcase/assets/activities-Dt-dO5ew.js +0 -501
- package/dist/showcase/assets/activities-feed-card-DZdFekXl.js +0 -1
- package/dist/showcase/assets/admin-C2SeJmE7.js +0 -80
- package/dist/showcase/assets/ai-Cwo0h_Xn.js +0 -41
- package/dist/showcase/assets/ai-artifact-3UJofyU5.js +0 -2
- package/dist/showcase/assets/ai-chat-CrFtG_Vg.js +0 -568
- package/dist/showcase/assets/ai-elements-iJ15Y7pS.js +0 -379
- package/dist/showcase/assets/ai-new-DuznZydd.js +0 -167
- package/dist/showcase/assets/ai-tool-call-CTcGGAQU.js +0 -1
- package/dist/showcase/assets/alert-CUGGckOX.js +0 -1
- package/dist/showcase/assets/alert-tWped3Sw.js +0 -59
- package/dist/showcase/assets/api-key-list-Q5LAqzMn.js +0 -73
- package/dist/showcase/assets/arrow-down-CfwCPcHL.js +0 -1
- package/dist/showcase/assets/arrow-left-BKx9qNX6.js +0 -1
- package/dist/showcase/assets/arrow-right-DlEpbqEk.js +0 -1
- package/dist/showcase/assets/arrow-up-BYQ4F9L1.js +0 -1
- package/dist/showcase/assets/arrow-up-right-C8r6vYfE.js +0 -1
- package/dist/showcase/assets/avatar-BuZ3zTbH.js +0 -57
- package/dist/showcase/assets/avatar-DR2mqPpY.js +0 -1
- package/dist/showcase/assets/badge-D1HLfP93.js +0 -28
- package/dist/showcase/assets/badge-check-oP2z_95u.js +0 -1
- package/dist/showcase/assets/bell-BTX2D-ES.js +0 -1
- package/dist/showcase/assets/bot-CKh5XgUG.js +0 -1
- package/dist/showcase/assets/box-F1uaZ6iw.js +0 -1
- package/dist/showcase/assets/brain-dD_ppLUa.js +0 -1
- package/dist/showcase/assets/brand-zisZOFKf.js +0 -40
- package/dist/showcase/assets/breadcrumb-C7vv0L8K.js +0 -52
- package/dist/showcase/assets/breadcrumb-fay5sLba.js +0 -1
- package/dist/showcase/assets/breadcrumbs-DklRXepp.js +0 -1
- package/dist/showcase/assets/briefcase-D9M4aNmi.js +0 -1
- package/dist/showcase/assets/button-DbhXfR1N.js +0 -44
- package/dist/showcase/assets/button-group-BpdhyMif.js +0 -1
- package/dist/showcase/assets/buttons-XexbmUtN.js +0 -259
- package/dist/showcase/assets/calendar-BADJgjpI.js +0 -16
- package/dist/showcase/assets/calendar-Djh3xLVx.js +0 -1
- package/dist/showcase/assets/calendar-dWZ2-0gU.js +0 -1
- package/dist/showcase/assets/card-BUSAPPkx.js +0 -1
- package/dist/showcase/assets/cards-DHBPe01w.js +0 -328
- package/dist/showcase/assets/chart-column-6l5wIZ0h.js +0 -1
- package/dist/showcase/assets/chevron-down-at2vrt1V.js +0 -1
- package/dist/showcase/assets/chevron-left-DIs3WYNO.js +0 -1
- package/dist/showcase/assets/chevron-right-BNy0Or0x.js +0 -1
- package/dist/showcase/assets/chevron-up-CX7619BJ.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-Be6eciau.js +0 -1
- package/dist/showcase/assets/circle-C0Yd1DDS.js +0 -1
- package/dist/showcase/assets/circle-alert-DfQp_X3_.js +0 -1
- package/dist/showcase/assets/circle-check-BkqQe1tv.js +0 -1
- package/dist/showcase/assets/circle-check-big-BXxHUhuc.js +0 -1
- package/dist/showcase/assets/circle-dot-HeRgxZxN.js +0 -1
- package/dist/showcase/assets/circle-question-mark-BgS4fb6N.js +0 -1
- package/dist/showcase/assets/circle-x-CMzwDsaf.js +0 -1
- package/dist/showcase/assets/clock-ynCzs_rR.js +0 -1
- package/dist/showcase/assets/code-xml-B8aVstrJ.js +0 -1
- package/dist/showcase/assets/collapsible-C8CKdiRn.js +0 -27
- package/dist/showcase/assets/collapsible-u43HxDHB.js +0 -1
- package/dist/showcase/assets/combobox-D-6ff0VG.js +0 -622
- package/dist/showcase/assets/command-BsHudlBe.js +0 -1
- package/dist/showcase/assets/command-DZqmBolX.js +0 -45
- package/dist/showcase/assets/comment-composer-OnxlkC5y.js +0 -1
- package/dist/showcase/assets/comment-item-DmZ1AJ2Y.js +0 -1
- package/dist/showcase/assets/comments-BjIVksjE.js +0 -349
- package/dist/showcase/assets/commerce-3T1GxvrA.js +0 -78
- package/dist/showcase/assets/commerce-extras-CYv_uRQR.js +0 -179
- package/dist/showcase/assets/composite-mol0-2zZ.js +0 -1
- package/dist/showcase/assets/contact-card-CWAANJqn.js +0 -65
- package/dist/showcase/assets/content-container-D3Phw6h8.js +0 -1
- package/dist/showcase/assets/copyable-BdzUH3U3.js +0 -96
- package/dist/showcase/assets/course-card-Cb6Y2vJ6.js +0 -113
- package/dist/showcase/assets/cpu-CRrekbGQ.js +0 -1
- package/dist/showcase/assets/credit-card--5vg7bQy.js +0 -1
- package/dist/showcase/assets/currency-VuqnKj_Y.js +0 -149
- package/dist/showcase/assets/dark-surfaces-DEyBimFz.js +0 -90
- package/dist/showcase/assets/database-Bnvw0wVV.js +0 -1
- package/dist/showcase/assets/date-block-IhoCVl_d.js +0 -1
- package/dist/showcase/assets/date-picker-DnJpsnaF.js +0 -1
- package/dist/showcase/assets/date-pickers-CEbieq-R.js +0 -110
- package/dist/showcase/assets/dense-info-B04QmrOd.js +0 -106
- package/dist/showcase/assets/dialog-DotEO3IO.js +0 -1
- package/dist/showcase/assets/display-hK7Dtm-B.js +0 -392
- package/dist/showcase/assets/dist-DQgGKvzA.js +0 -1
- package/dist/showcase/assets/dollar-sign-gJtl-XaL.js +0 -1
- package/dist/showcase/assets/download-CMrNgeil.js +0 -1
- package/dist/showcase/assets/dropdown-menu-Cqv6D7Sb.js +0 -1
- package/dist/showcase/assets/dropzone-v69fWHZJ.js +0 -1
- package/dist/showcase/assets/ellipsis-CgqPlt6Z.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-CiJqC0n2.js +0 -1
- package/dist/showcase/assets/empty-DYHzk-Gb.js +0 -1
- package/dist/showcase/assets/empty-item-CTwvC_3M.js +0 -49
- package/dist/showcase/assets/empty-state-eUgJ4h41.js +0 -188
- package/dist/showcase/assets/enhanced-activities-XU2u5gO6.js +0 -359
- package/dist/showcase/assets/esm-B7xAMXnv.js +0 -2
- package/dist/showcase/assets/event-calendar-D2rjpzq1.js +0 -138
- package/dist/showcase/assets/event-log-BxER62Ds.js +0 -326
- package/dist/showcase/assets/example-DPfw-R7_.js +0 -1
- package/dist/showcase/assets/external-link-DJNGkjZ0.js +0 -1
- package/dist/showcase/assets/eye-BQU3UqWi.js +0 -1
- package/dist/showcase/assets/feature-announcement-CjGQEODB.js +0 -34
- package/dist/showcase/assets/file-DBpbC8g-.js +0 -1
- package/dist/showcase/assets/file-text-DokBif5V.js +0 -1
- package/dist/showcase/assets/filters-DM2olMKy.js +0 -78
- package/dist/showcase/assets/flag-hAuZbHU1.js +0 -1
- package/dist/showcase/assets/folder-open-DqubQ0ts.js +0 -1
- package/dist/showcase/assets/form-sizing-CfbZF8Ja.js +0 -1
- package/dist/showcase/assets/format-gCABLair.js +0 -1
- package/dist/showcase/assets/forms-FsAT0C-I.js +0 -790
- package/dist/showcase/assets/generic-BUuo7j09.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-l8uxcPNL.js +0 -1
- package/dist/showcase/assets/gift-CS7Tg3kD.js +0 -1
- package/dist/showcase/assets/giftcard-cards-h1ffLs9F.js +0 -85
- package/dist/showcase/assets/git-branch-D4-6vv6t.js +0 -1
- package/dist/showcase/assets/global-search-BUyhhsQv.js +0 -90
- package/dist/showcase/assets/globe-CqLYhUfl.js +0 -1
- package/dist/showcase/assets/gradient-card-Bwr9OLIL.js +0 -58
- package/dist/showcase/assets/header-notifications-BWla1yhM.js +0 -1
- package/dist/showcase/assets/heart-DfZtXfIP.js +0 -1
- package/dist/showcase/assets/house-DhIReDt8.js +0 -1
- package/dist/showcase/assets/icon-badge-BgRFYZEc.js +0 -1
- package/dist/showcase/assets/image-D_eNEZWQ.js +0 -1
- package/dist/showcase/assets/inbox-5sFkO7gC.js +0 -1
- package/dist/showcase/assets/index-B-Z7p0So.js +0 -10
- package/dist/showcase/assets/inertValue-NU_Amr-x.js +0 -1
- package/dist/showcase/assets/info-DyB6KH3Z.js +0 -1
- package/dist/showcase/assets/inline-stat-D2aaM1Vt.js +0 -1
- package/dist/showcase/assets/input-BS64kyoq.js +0 -1
- package/dist/showcase/assets/input-DWLyniGt.js +0 -1
- package/dist/showcase/assets/input-group-BS8j5Eek.js +0 -47
- package/dist/showcase/assets/input-group-B_E_3EGS.js +0 -1
- package/dist/showcase/assets/inputs-DOQ2foig.js +0 -49
- package/dist/showcase/assets/invoice-header-C2-uQE_s.js +0 -36
- package/dist/showcase/assets/invoice-items-BUunRJqA.js +0 -36
- package/dist/showcase/assets/invoice-mini-BrLMrzN6.js +0 -14
- package/dist/showcase/assets/invoice-table-CaB9Z8jI.js +0 -30
- package/dist/showcase/assets/isSameDay-rwvIyLOL.js +0 -1
- package/dist/showcase/assets/isToday-CIAzBrb5.js +0 -1
- package/dist/showcase/assets/italic-B02a4PdD.js +0 -1
- package/dist/showcase/assets/item-C-0RObvI.js +0 -117
- package/dist/showcase/assets/item-CCu0Ufaq.js +0 -1
- package/dist/showcase/assets/item-DF4m_56j.js +0 -1
- package/dist/showcase/assets/kanban-BgW23a7P.js +0 -175
- package/dist/showcase/assets/label-MdV7pglj.js +0 -1
- package/dist/showcase/assets/layout-containers-nKVReEJB.js +0 -96
- package/dist/showcase/assets/layout-header-CKyxHHPC.js +0 -170
- package/dist/showcase/assets/layout-page-ClD2yMnK.js +0 -122
- package/dist/showcase/assets/layout-sidebar-jdQnYDiT.js +0 -224
- package/dist/showcase/assets/layout-users-Cv849xnU.js +0 -104
- package/dist/showcase/assets/lib-BHW4JERQ.js +0 -1
- package/dist/showcase/assets/lock-B8bfl9sZ.js +0 -1
- package/dist/showcase/assets/mail-DmOBTX4I.js +0 -1
- package/dist/showcase/assets/map-ButgRl8f.js +0 -124
- package/dist/showcase/assets/map-pin-o3egisLq.js +0 -1
- package/dist/showcase/assets/menus-DdXgYKVA.js +0 -89
- package/dist/showcase/assets/message-square-Bl6P4TA0.js +0 -1
- package/dist/showcase/assets/metadata-list-aXo96h_U.js +0 -278
- package/dist/showcase/assets/metric-BLHKuZtE.js +0 -1
- package/dist/showcase/assets/metric-grid-6Dpj5eV3.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-m389ipmG.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-B-1IUlHf.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-B8tvK_RB.js +0 -77
- package/dist/showcase/assets/metrics-comparison-DKJ7Js3F.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-BlRnJoI0.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-COI7f64X.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-LRfmKhsy.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-DmqIQVVR.js +0 -42
- package/dist/showcase/assets/metrics-overview-Dbf5RM2k.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-D5oevQvv.js +0 -54
- package/dist/showcase/assets/minus-D-jmUi0G.js +0 -1
- package/dist/showcase/assets/money-display-C__61373.js +0 -1
- package/dist/showcase/assets/month-year-picker-BfBQePUY.js +0 -1
- package/dist/showcase/assets/navigation-DUAe-sQV.js +0 -86
- package/dist/showcase/assets/navigation-extras-itSAf6QT.js +0 -43
- package/dist/showcase/assets/navigation-fAOvwIlP.js +0 -230
- package/dist/showcase/assets/onboarding-checklist-1gmzk3_J.js +0 -119
- package/dist/showcase/assets/overlays-BMTBOIEI.js +0 -88
- package/dist/showcase/assets/overlays-Lu16yJWM.js +0 -393
- package/dist/showcase/assets/package-BIa1hPVQ.js +0 -1
- package/dist/showcase/assets/page-action-button-C5NiQHnP.js +0 -1
- package/dist/showcase/assets/page-header-Cwf9DuhD.js +0 -1
- package/dist/showcase/assets/pagination-9iSNmdCx.js +0 -1
- package/dist/showcase/assets/pagination-MjniF-7j.js +0 -42
- package/dist/showcase/assets/paperclip-CaNLUOIA.js +0 -1
- package/dist/showcase/assets/pencil-DTLGPoc_.js +0 -1
- package/dist/showcase/assets/phone-XvU6LndA.js +0 -1
- package/dist/showcase/assets/plus-BDSCn8ol.js +0 -1
- package/dist/showcase/assets/popover-CvhuubS6.js +0 -1
- package/dist/showcase/assets/popover-DUQqLZN2.js +0 -1
- package/dist/showcase/assets/popover-menu-DVGBuFpL.js +0 -1
- package/dist/showcase/assets/progress-BQopCRpV.js +0 -1
- package/dist/showcase/assets/progress-CvSUR260.js +0 -18
- package/dist/showcase/assets/props-table-BzUnIcv-.js +0 -1
- package/dist/showcase/assets/quote-D55lkoXn.js +0 -1
- package/dist/showcase/assets/receipt-D3ilhl9U.js +0 -1
- package/dist/showcase/assets/refresh-cw-Csl2LQ4l.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-CM5i142y.js +0 -1
- package/dist/showcase/assets/rich-text-editor-Bz7jWvPv.js +0 -124
- package/dist/showcase/assets/rich-text-editor-DWKFpgNI.js +0 -141
- package/dist/showcase/assets/rotate-ccw-BnkpK7eq.js +0 -1
- package/dist/showcase/assets/scroll-area-BTVLd58j.js +0 -1
- package/dist/showcase/assets/scroll-area-CgFEDepJ.js +0 -32
- package/dist/showcase/assets/select-B7-tZDlG.js +0 -1
- package/dist/showcase/assets/send-BhjEdZ06.js +0 -1
- package/dist/showcase/assets/separator-CJayjKGP.js +0 -28
- package/dist/showcase/assets/separator-CZ_sPWQj.js +0 -1
- package/dist/showcase/assets/settings-Duj7gAZe.js +0 -1
- package/dist/showcase/assets/sheet-BMabZ_Gj.js +0 -1
- package/dist/showcase/assets/shield-C22sWOf4.js +0 -1
- package/dist/showcase/assets/shield-alert-DgZ6UO46.js +0 -1
- package/dist/showcase/assets/shield-check-jGSgmijm.js +0 -1
- package/dist/showcase/assets/shopping-bag-Cd09Ga6D.js +0 -1
- package/dist/showcase/assets/sidebar.context-CXTHS3vn.js +0 -1
- package/dist/showcase/assets/skeleton-Dmp4eC1A.js +0 -1
- package/dist/showcase/assets/skeleton-FLNbc7QP.js +0 -29
- package/dist/showcase/assets/smart-card-50WN9sCI.js +0 -1
- package/dist/showcase/assets/sonner-DR_DYpqb.js +0 -22
- package/dist/showcase/assets/sortable.esm-C_l8_Iqt.js +0 -5
- package/dist/showcase/assets/sparkles-C-fyahzv.js +0 -1
- package/dist/showcase/assets/spinner-B8jgVQNj.js +0 -30
- package/dist/showcase/assets/spinner-C4zPRpI0.js +0 -49
- package/dist/showcase/assets/spinner-DFjHsQlR.js +0 -1
- package/dist/showcase/assets/square-pen-Dp7lCfI3.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CTckbUiW.js +0 -1
- package/dist/showcase/assets/star-l00ivfkD.js +0 -1
- package/dist/showcase/assets/startOfDay-Xmododib.js +0 -1
- package/dist/showcase/assets/styles-zuwR0q1z.js +0 -1
- package/dist/showcase/assets/switch-D3LrIrTQ.js +0 -1
- package/dist/showcase/assets/switch-ylXVyh_N.js +0 -1
- package/dist/showcase/assets/table-Cn3-19zb.js +0 -1
- package/dist/showcase/assets/table-ao3IcAnF.js +0 -390
- package/dist/showcase/assets/tabs-CTLQKtiu.js +0 -19
- package/dist/showcase/assets/tabs-lc1fX94A.js +0 -1
- package/dist/showcase/assets/text-button-Fu8UY1A8.js +0 -1
- package/dist/showcase/assets/text-link--EyGasJN.js +0 -1
- package/dist/showcase/assets/textarea-BdhnlNrF.js +0 -1
- package/dist/showcase/assets/textarea-D1kG3a9B.js +0 -1
- package/dist/showcase/assets/timelines-DF3tNgyG.js +0 -186
- package/dist/showcase/assets/toggle-group-CfxuWsv9.js +0 -1
- package/dist/showcase/assets/toggles-CacdBPlV.js +0 -71
- package/dist/showcase/assets/toggles-group-CRhgTGmL.js +0 -32
- package/dist/showcase/assets/trash-2-B0_GprQM.js +0 -1
- package/dist/showcase/assets/trending-up-B202l1b6.js +0 -1
- package/dist/showcase/assets/truck-Bl1pNrHi.js +0 -1
- package/dist/showcase/assets/typography-DEtOxBlR.js +0 -214
- package/dist/showcase/assets/ui-badge-n4RA0J5b.js +0 -28
- package/dist/showcase/assets/ui-card-Ck-kzrTh.js +0 -30
- package/dist/showcase/assets/ui-table-gzOp82pf.js +0 -42
- package/dist/showcase/assets/upload-tray-VvKdTZSi.js +0 -138
- package/dist/showcase/assets/useAnchoredPopupScrollLock-Cu2ZwN7Z.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-C6_cdQ7B.js +0 -1
- package/dist/showcase/assets/useCompositeItem-BfUPqXoj.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-Cf2lpKB8.js +0 -1
- package/dist/showcase/assets/useControlled-C6q3nmcf.js +0 -1
- package/dist/showcase/assets/useLabelableId-CfPT16c1.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CGeqRuuY.js +0 -1
- package/dist/showcase/assets/useRender-CoUlh0uZ.js +0 -1
- package/dist/showcase/assets/useRole-DSPUSyVX.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-BwZ1HD24.js +0 -1
- package/dist/showcase/assets/useValueChanged-Dej794I1.js +0 -1
- package/dist/showcase/assets/user-3L762Mec.js +0 -1
- package/dist/showcase/assets/user-plus-9WRYjS04.js +0 -1
- package/dist/showcase/assets/users-CxKZ7gt8.js +0 -1
- package/dist/showcase/assets/vendor-profile-BaCptdMF.js +0 -37
- package/dist/showcase/assets/wrench-Duh91tnW.js +0 -1
- package/dist/showcase/assets/x-t42iKYpL.js +0 -1
- package/dist/showcase/assets/zap-D0z3Tv_L.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/components/composed/cards/contact-card/types.ts","../../../../src/components/composed/cards/contact-card/contact-card.tsx","../../../../src/components/composed/cards/gradient-card/gradient-card.tsx","../../../../src/components/composed/cards/giftcard-card/types.ts","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-full.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-compact.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-minimal.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-dark.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-illustrated.tsx","../../../../src/components/composed/cards/course-card/types.ts","../../../../src/components/composed/cards/course-card/course-card.tsx","../../../../src/components/composed/cards/feature-announcement/feature-announcement.tsx","../../../../src/components/composed/cards/vendor-profile/types.ts","../../../../src/components/composed/cards/vendor-profile/vendor-profile.tsx"],"sourcesContent":["import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\n\nexport interface ContactCardStrings {\n contact: string;\n profile: string;\n}\n\nexport const defaultContactCardStrings: ContactCardStrings = {\n contact: 'Contact',\n profile: 'Profile',\n};\n\nexport interface ContactCardProps {\n name: string;\n role?: string;\n email?: string;\n phone?: string;\n location?: string;\n avatarUrl?: string;\n initials?: string;\n badge?: string;\n badgeVariant?: BadgeVariant;\n onContact?: () => void;\n onViewProfile?: () => void;\n className?: string;\n /** Override default action button labels. */\n strings?: Partial<ContactCardStrings>;\n}\n","import { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Button } from '@/components/base/buttons';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n Item,\n ItemContent,\n ItemGroup,\n ItemMedia,\n ItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\nimport { useStrings } from '@/lib/strings';\nimport { Mail, Phone, MapPin, ExternalLink } from 'lucide-react';\nimport { defaultContactCardStrings, type ContactCardProps } from './types';\n\nfunction deriveInitials(name: string, initials?: string): string {\n\tif (initials) return initials;\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\n/**\n * ContactCard — Avatar + name + role + contact details (email, phone, location)\n * with optional Contact / Profile actions and a status badge.\n *\n * Contact details render through `<ItemGroup>` + `<Item>` so density and\n * media slots stay aligned with the rest of the library; the header and CTA\n * row remain bespoke because they are not Item-shaped.\n */\nexport function ContactCard({\n\tname,\n\trole,\n\temail,\n\tphone,\n\tlocation,\n\tavatarUrl,\n\tinitials,\n\tbadge,\n\tbadgeVariant = 'success',\n\tonContact,\n\tonViewProfile,\n\tclassName,\n\tstrings: stringsProp,\n}: ContactCardProps) {\n\tconst strings = useStrings(defaultContactCardStrings, stringsProp);\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('contact-card--component', \n\t\t\t\t'overflow-hidden rounded-xl border border-border bg-card text-card-foreground shadow-sm p-6 sm:p-7',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex items-start gap-4\">\n\t\t\t\t<Avatar className=\"h-16 w-16 shrink-0 border-2 border-border\">\n\t\t\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={name} />}\n\t\t\t\t\t<AvatarFallback className=\"text-lg font-bold\">\n\t\t\t\t\t\t{deriveInitials(name, initials)}\n\t\t\t\t\t</AvatarFallback>\n\t\t\t\t</Avatar>\n\t\t\t\t<div className=\"min-w-0 flex-1 pt-0.5\">\n\t\t\t\t\t<div className=\"flex items-center gap-2.5\">\n\t\t\t\t\t\t<Heading tag=\"h4\" className=\"truncate text-lg\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{!!badge && <Badge variant={badgeVariant}>{badge}</Badge>}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!role && (\n\t\t\t\t\t\t<Text type=\"secondary\" className=\"mt-1\">\n\t\t\t\t\t\t\t{role}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{!!(email || phone || location) && (\n\t\t\t\t<ItemGroup className=\"mt-6 gap-1\">\n\t\t\t\t\t{!!email && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Mail />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{email}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!phone && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Phone />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{phone}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!location && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<MapPin />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{location}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t</ItemGroup>\n\t\t\t)}\n\n\t\t\t{!!(onContact || onViewProfile) && (\n\t\t\t\t<div className=\"mt-6 flex items-center gap-2\">\n\t\t\t\t\t{!!onContact && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\t\ticon={Mail}\n\t\t\t\t\t\t\tonClick={onContact}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.contact}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onViewProfile && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\ticon={ExternalLink}\n\t\t\t\t\t\t\tonClick={onViewProfile}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.profile}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nContactCard.displayName = 'ContactCard';\n","/**\n * GradientCard — vivid gradient surface with a clear single-axis layout.\n *\n * Structure (all sections optional, all left-aligned):\n *\n * ┌──────────────────────────────────────────┐\n * │ Title [icon] [×] │ ← header: title|subtitle / icon / badge\n * │ Subtitle │\n * │ │\n * │ 24 │ ← hero value (large, eyebrow above)\n * │ orders awaiting fulfillment URGENT │\n * │ │\n * │ ⚠ 3 orders older than 48h 3 │ ← inline alert (subordinate to value)\n * │ │\n * │ ──────────────────────────────────────── │\n * │ [Review Orders] footer │ ← action / footer\n * └──────────────────────────────────────────┘\n *\n * Earlier centered-hero mode pushed every element to the centerline which made\n * the alert dominate over the value and produced a fragmented vertical rhythm.\n * The new layout keeps everything on the leading edge so the eye walks\n * top-down: identity → value → context → action.\n *\n * For the compact \"metric tile\" use-case (single value + change), see\n * `GradientCardCompact` below.\n */\nimport { type ReactNode } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { cn } from '@/lib/utils';\nimport {\n\ttype GradientPreset,\n\ttype PatternType,\n\ttype GradientCardProps,\n\ttype GradientCardCompactProps,\n} from './types';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Gradient + pattern presets\n// ──────────────────────────────────────────────────────────────────────────\n\nconst GRADIENT_MAP: Record<GradientPreset, string> = {\n\tcoral: 'bg-gradient-to-br from-[#e8453c] to-[#f4845f]',\n\tocean: 'bg-gradient-to-br from-chart-4 to-[#7c6cf0]',\n\tforest: 'bg-gradient-to-br from-chart-1 to-[#2d9a5f]',\n\ttwilight: 'bg-gradient-to-br from-[#1e1b4b] to-chart-4',\n\tember: 'bg-gradient-to-br from-chart-3 to-chart-2',\n};\n\nfunction PatternCircles() {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"absolute -right-12 -top-12 h-44 w-44 rounded-full bg-white/[0.06]\" aria-hidden=\"true\" />\n\t\t\t<div className=\"absolute -bottom-8 -left-8 h-28 w-28 rounded-full bg-white/[0.05]\" aria-hidden=\"true\" />\n\t\t</>\n\t);\n}\n\nfunction PatternDiagonal() {\n\treturn (\n\t\t<svg\n\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-[0.04]\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid=\"diag-stripes\"\n\t\t\t\t\twidth=\"8\"\n\t\t\t\t\theight=\"8\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t\tpatternTransform=\"rotate(45)\"\n\t\t\t\t>\n\t\t\t\t\t<rect width=\"2\" height=\"8\" fill=\"white\" />\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect width=\"100%\" height=\"100%\" fill=\"url(#diag-stripes)\" />\n\t\t</svg>\n\t);\n}\n\nconst PATTERN_MAP: Record<PatternType, (() => ReactNode) | null> = {\n\tnone: null,\n\tcircles: () => <PatternCircles />,\n\tdiagonal: () => <PatternDiagonal />,\n};\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCard\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCard({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tsubtitle,\n\tvalue,\n\tvalueLabel,\n\tbadge,\n\ticon: Icon,\n\talertText,\n\talertCount,\n\taction,\n\tfooter,\n\tchildren,\n\tclassName,\n}: GradientCardProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\tconst hasHeader = !!(title || subtitle || Icon);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'relative overflow-hidden rounded-2xl',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-5 p-6\">\n\t\t\t\t{/* Header — title + subtitle on the leading edge, icon as a\n\t\t\t\t rounded square on the trailing edge so it acts as a brand\n\t\t\t\t mark rather than competing for the centerline. */}\n\t\t\t\t{!!hasHeader && (\n\t\t\t\t\t<div className=\"flex items-start justify-between gap-4\">\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\tclassName=\"text-white tracking-tight leading-snug\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!subtitle && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"mt-0.5 text-white/70 leading-snug\">\n\t\t\t\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName=\"inline-flex size-10 shrink-0 items-center justify-center rounded-xl bg-white/15 text-white ring-1 ring-white/15 backdrop-blur-sm\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"size-5\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Hero value block — eyebrow above the figure, optional badge\n\t\t\t\t on the trailing edge of the label row. The figure is the\n\t\t\t\t visual anchor of the card. */}\n\t\t\t\t{!!value && (\n\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h3\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-4xl font-bold tabular-nums tracking-tight text-white border-none pb-0 leading-none\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{(valueLabel || badge) && (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t{!!valueLabel && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/75 leading-snug\">\n\t\t\t\t\t\t\t\t\t\t{valueLabel}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!badge && (\n\t\t\t\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-white/20 px-2.5 py-0.5 text-xxs font-semibold uppercase tracking-wider text-white backdrop-blur-sm\">\n\t\t\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Inline alert — subordinate to the value, sits below it. */}\n\t\t\t\t{!!alertText && (\n\t\t\t\t\t<div className=\"flex items-center gap-3 rounded-xl bg-white/10 px-3.5 py-2.5 ring-1 ring-white/10 backdrop-blur-sm\">\n\t\t\t\t\t\t<Text className=\"min-w-0 flex-1 text-white/90 leading-snug\">\n\t\t\t\t\t\t\t{alertText}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!alertCount && (\n\t\t\t\t\t\t\t<span className=\"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-white/25 px-1.5 text-xs font-bold tabular-nums text-white\">\n\t\t\t\t\t\t\t\t{alertCount}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!children && <div>{children}</div>}\n\n\t\t\t\t{(!!action || !!footer) && (\n\t\t\t\t\t<div className=\"flex items-center justify-between gap-3 pt-1\">\n\t\t\t\t\t\t\t{action ? (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\t\tclassName=\"rounded-xl px-4\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!footer && (\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/70\">{footer}</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCard.displayName = 'GradientCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCardCompact — single-metric tile\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCardCompact({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tvalue,\n\tchange,\n\tsubtitle,\n\tclassName,\n}: GradientCardCompactProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'relative overflow-hidden rounded-2xl',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-1 p-5\">\n\t\t\t\t{!!title && (\n\t\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"text-white/80 uppercase tracking-wider\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t{!!value && (\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h4\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-2xl font-bold tabular-nums tracking-tight text-white border-none pb-0 leading-none\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!change && (\n\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-white/15 px-2 py-0.5 text-xs font-semibold tabular-nums text-white backdrop-blur-sm\">\n\t\t\t\t\t\t\t{change}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size=\"xs\" className=\"text-white/65 leading-snug\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCardCompact.displayName = 'GradientCardCompact';\n","export interface GiftcardData {\n\tcode: string;\n\tamount: string;\n\tremainingAmount?: string;\n\tcurrency?: string;\n\tstatus: 'active' | 'redeemed' | 'expired' | 'disabled';\n\trecipientName?: string;\n\tsenderName?: string;\n\tmessage?: string;\n\texpiresAt?: string;\n\tcreatedAt?: string;\n\ttemplate?: string;\n\tonView?: () => void;\n}\n\nexport type GradientVariant = 'purple' | 'green' | 'warm';\nexport type PatternVariant = 'none' | 'circles' | 'waves';\nexport type AccentColor = 'green' | 'purple' | 'warm';\nexport type HeaderColor = 'green' | 'blue' | 'amber';\n\nexport type GiftcardStatus = GiftcardData['status'];\n\n/**\n * Localised labels for giftcard cards. Covers status chips, the recurring\n * field labels rendered by all five partials (full / dark / illustrated /\n * minimal / compact), and the inline button labels.\n *\n * Override per-instance via `strings`.\n */\nexport interface GiftcardStrings {\n\tstatus: Record<GiftcardStatus, string>;\n\tgiftCard: string;\n\tbalance: string;\n\tpersonalMessage: string;\n\tto: string;\n\tfrom: string;\n\texpires: string;\n\trecipient: string;\n\tviewDetails: string;\n\tcopyCode: string;\n}\n\nexport const defaultGiftcardStrings: GiftcardStrings = {\n\tstatus: {\n\t\tactive: 'Active',\n\t\tredeemed: 'Redeemed',\n\t\texpired: 'Expired',\n\t\tdisabled: 'Disabled',\n\t},\n\tgiftCard: 'Gift Card',\n\tbalance: 'Balance',\n\tpersonalMessage: 'Personal Message',\n\tto: 'To',\n\tfrom: 'From',\n\texpires: 'Expires',\n\trecipient: 'Recipient',\n\tviewDetails: 'View Details',\n\tcopyCode: 'Copy code',\n};\n\nexport interface GiftcardCommonProps {\n\t/** Override default English giftcard strings. */\n\tstrings?: Partial<GiftcardStrings>;\n}\n\nexport const giftcardStatusVariant: Record<\n\tGiftcardStatus,\n\t'success' | 'secondary' | 'error' | 'warning'\n> = {\n\tactive: 'success',\n\tredeemed: 'secondary',\n\texpired: 'error',\n\tdisabled: 'warning',\n};\n\n/**\n * @deprecated Use `defaultGiftcardStrings.status` for labels and\n * `giftcardStatusVariant` for badge variants. Kept for backwards compatibility.\n */\nexport const giftcardStatusMap = {\n\tactive: { label: defaultGiftcardStrings.status.active, variant: 'success' as const },\n\tredeemed: { label: defaultGiftcardStrings.status.redeemed, variant: 'secondary' as const },\n\texpired: { label: defaultGiftcardStrings.status.expired, variant: 'error' as const },\n\tdisabled: { label: defaultGiftcardStrings.status.disabled, variant: 'warning' as const },\n};\n\nexport const gradientMap: Record<GradientVariant, { card: string; strip: string }> = {\n\tpurple: {\n\t\tcard: 'from-violet-600 via-purple-700 to-indigo-800',\n\t\tstrip: 'from-violet-500 via-purple-600 to-indigo-700',\n\t},\n\tgreen: {\n\t\tcard: 'from-emerald-600 via-teal-700 to-emerald-800',\n\t\tstrip: 'from-emerald-500 via-teal-600 to-emerald-700',\n\t},\n\twarm: {\n\t\tcard: 'from-orange-500 via-rose-600 to-pink-700',\n\t\tstrip: 'from-orange-400 via-rose-500 to-pink-600',\n\t},\n};\n\nexport const compactGradientMap: Record<GradientVariant, string> = {\n\tpurple: 'from-violet-600 to-indigo-800',\n\tgreen: 'from-emerald-600 to-teal-800',\n\twarm: 'from-orange-500 to-rose-700',\n};\n\nexport const accentColorMap: Record<AccentColor, { line: string; iconBg: string }> = {\n\tgreen: { line: 'bg-success', iconBg: 'bg-success/15 text-success' },\n\tpurple: { line: 'bg-primary', iconBg: 'bg-primary/15 text-primary' },\n\twarm: { line: 'bg-warning', iconBg: 'bg-warning/15 text-warning-foreground' },\n};\n\nexport const headerGradientMap: Record<HeaderColor, string> = {\n\tgreen: 'from-emerald-500 to-teal-600',\n\tblue: 'from-blue-500 to-indigo-600',\n\tamber: 'from-amber-500 to-orange-600',\n};\n\nexport const headerIconBgMap: Record<HeaderColor, string> = {\n\tgreen: 'bg-emerald-500 ring-4 ring-white shadow-lg',\n\tblue: 'bg-blue-500 ring-4 ring-white shadow-lg',\n\tamber: 'bg-amber-500 ring-4 ring-white shadow-lg',\n};\n","/**\n * GiftcardCard (full) — premium gradient layout with shimmer hover, optional\n * pattern overlay (circles / waves), header status chip, balance / strike-\n * through line, copyable code strip, personal message block, and metadata\n * grid (To / From / Expires). Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Button } from '@/components/base/buttons';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n\tGift,\n\tCopy,\n\tEye,\n\tCalendar,\n\tUser,\n\tSparkles,\n} from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\ttype PatternVariant,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\tgradientMap,\n} from '../types';\n\nexport function GiftcardCard({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tsenderName,\n\tmessage,\n\texpiresAt,\n\tcreatedAt: _createdAt,\n\ttemplate: _template,\n\tonView,\n\tgradient = 'purple',\n\tpattern = 'none',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData &\n\tGiftcardCommonProps & {\n\t\tgradient?: GradientVariant;\n\t\tpattern?: PatternVariant;\n\t\tclassName?: string;\n\t}) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'group w-full max-w-sm transition-shadow duration-300 ease-out',\n\t\t\t\t'hover:shadow-xl hover:shadow-black/10',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{/* Gift card header — gradient with shimmer */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative overflow-hidden rounded-t-xl bg-gradient-to-br p-6',\n\t\t\t\t\tgradientMap[gradient].card,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* Shimmer / shine effect */}\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"pointer-events-none absolute inset-0 bg-gradient-to-r from-transparent via-white/10 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-1000 ease-in-out\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\n\t\t\t\t{/* Pattern: circles */}\n\t\t\t\t{pattern === 'circles' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"absolute -top-8 -right-8 h-32 w-32 rounded-full bg-white/5\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<div className=\"absolute -bottom-4 -left-4 h-20 w-20 rounded-full bg-white/5\" aria-hidden=\"true\" />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{/* Pattern: waves */}\n\t\t\t\t{pattern === 'waves' && (\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-5\"\n\t\t\t\t\t\tviewBox=\"0 0 400 200\"\n\t\t\t\t\t\tpreserveAspectRatio=\"none\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path d=\"M0 80 C100 20, 200 140, 400 60 L400 200 L0 200 Z\" fill=\"white\" />\n\t\t\t\t\t\t<path d=\"M0 120 C120 60, 280 180, 400 100 L400 200 L0 200 Z\" fill=\"white\" />\n\t\t\t\t\t</svg>\n\t\t\t\t)}\n\n\t\t\t\t{/* Status badge — top-right overlay with glass effect.\n\t\t\t\t Custom inline pill (white text on glass) so the label\n\t\t\t\t reads cleanly against any gradient — semantic Badge\n\t\t\t\t variants would render dark text and clash. */}\n\t\t\t\t<div className=\"absolute top-4 right-4 z-20\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xxs font-semibold uppercase tracking-wide',\n\t\t\t\t\t\t\t'bg-white/20 text-white border border-white/25 shadow-sm backdrop-blur-md',\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdata-status={statusVariant}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"size-1.5 rounded-full bg-white/85\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{statusLabel}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative z-10\">\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<Gift className=\"h-5 w-5 text-white/80\" />\n\t\t\t\t\t\t<Text weight=\"medium\" className=\"text-white/80\">{strings.giftCard}</Text>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"mt-8 mb-5\">\n\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/50 uppercase tracking-wider\">{strings.balance}</Text>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2.5 mt-1\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"text-4xl border-none pb-0 text-white tabular-nums drop-shadow-sm\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text className=\"text-white/40 line-through tabular-nums\">{amount}</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Code strip — premium feel */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex items-center gap-2 rounded-lg px-4 py-2.5',\n\t\t\t\t\t\t\t'bg-white/10 backdrop-blur-sm',\n\t\t\t\t\t\t\t'border border-white/15',\n\t\t\t\t\t\t\t'shadow-[0_0_12px_-3px_rgba(255,255,255,0.15)]',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"text-white font-mono tracking-[0.2em] flex-1\">\n\t\t\t\t\t\t\t{code}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tclassName=\"p-1 h-auto text-white/50 hover:text-white hover:bg-white/10\"\n\t\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Copy className=\"h-4 w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Details section — structured metadata grid */}\n\t\t\t<div className=\"rounded-b-xl bg-card p-5 shadow-sm border border-t-0 border-border/50 space-y-4\">\n\t\t\t\t{!!message && (\n\t\t\t\t\t<div className=\"rounded-lg bg-muted/50 p-3 border border-border/30\">\n\t\t\t\t\t\t<div className=\"flex items-center gap-1.5 mb-1\">\n\t\t\t\t\t\t\t<Sparkles className=\"h-3 w-3 text-warning\" />\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{strings.personalMessage}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Text type=\"secondary\" className=\"italic leading-relaxed\">\n\t\t\t\t\t\t\t“{message}”\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Metadata grid */}\n\t\t\t\t<div className=\"grid grid-cols-2 gap-3\">\n\t\t\t\t\t{!!recipientName && (\n\t\t\t\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<User className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" weight=\"medium\" className=\"uppercase tracking-wide\">{strings.to}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text weight=\"medium\">{recipientName}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!senderName && (\n\t\t\t\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<User className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" weight=\"medium\" className=\"uppercase tracking-wide\">{strings.from}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text weight=\"medium\">{senderName}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<Calendar className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" weight=\"medium\" className=\"uppercase tracking-wide\">{strings.expires}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text weight=\"medium\">{expiresAt}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCard.displayName = 'GiftcardCard';\n","/**\n * GiftcardCompact — single-row compact layout. Square gradient gift icon on\n * the left, code + recipient in the middle, amount + status badge on the\n * right. Use for inline lists / tables of giftcards. Strings overridable.\n */\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\tcompactGradientMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCompact({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tgradient = 'purple',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { gradient?: GradientVariant; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<Item\n\t\t\tvariant=\"outline\"\n\t\t\tclassName={cn('shadow-sm transition-colors duration-150 hover:border-border', className)}\n\t\t>\n\t\t\t<ItemMedia variant=\"image\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex size-full items-center justify-center bg-gradient-to-br',\n\t\t\t\t\t\tcompactGradientMap[gradient],\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Gift className=\"h-4 w-4 text-white\" />\n\t\t\t\t</div>\n\t\t\t</ItemMedia>\n\n\t\t\t<ItemContent>\n\t\t\t\t<ItemTitle className=\"font-mono\">{code}</ItemTitle>\n\t\t\t\t{!!recipientName && <ItemDescription clamp={1}>{recipientName}</ItemDescription>}\n\t\t\t</ItemContent>\n\n\t\t\t<ItemActions>\n\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t<div className=\"flex items-baseline gap-1\">\n\t\t\t\t\t\t<Text size=\"base\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</div>\n\t\t\t</ItemActions>\n\t\t</Item>\n\t);\n}\n\nGiftcardCompact.displayName = 'GiftcardCompact';\n","/**\n * GiftcardCardMinimal — clean minimal layout. A small accent line (driven by\n * `color`) sits above the header icon + label, balance, code strip, and\n * metadata rows. Footer \"View details\" link uses an arrow affordance.\n * Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { InlineStat } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, ArrowRight } from 'lucide-react';\nimport {\n\ttype AccentColor,\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\taccentColorMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardMinimal({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tcolor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { color?: AccentColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst accent = accentColorMap[color];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'w-full max-w-sm rounded-2xl bg-card border border-border/50 shadow-sm overflow-hidden',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('h-1 w-16 rounded-full mx-6 mt-5', accent.line)} />\n\n\t\t\t<Item size=\"xs\" className=\"px-6 pt-4 pb-2\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex h-8 w-8 items-center justify-center rounded-full',\n\t\t\t\t\t\t\taccent.iconBg,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Gift className=\"h-4 w-4\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t<div className=\"px-6 pt-2 pb-3\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"text-3xl border-none pb-0 tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mx-6 flex items-center gap-2 rounded-lg bg-muted/50 px-3.5 py-2.5 border border-border/30\">\n\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<div className=\"px-6 pt-4 pb-2 space-y-2.5\">\n\t\t\t\t{!!recipientName && (\n\t\t\t\t\t<InlineStat label={strings.recipient} value={recipientName} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t<InlineStat label={strings.expires} value={expiresAt} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"px-3 py-2 border-t border-border/30 mt-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t\tclassName=\"group/link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t\t<ArrowRight className=\"ml-1 h-3.5 w-3.5 transition-transform group-hover/link:translate-x-0.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardMinimal.displayName = 'GiftcardCardMinimal';\n","/**\n * GiftcardCardDark — premium dark variant. Header with chart-2 gift icon,\n * status chip, balance + strike-through line, code strip, metadata rows\n * (recipient / expires), and an outline call-to-action footer. Strings\n * overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { InlineStat } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardDark({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'dark w-full max-w-sm rounded-2xl bg-card text-card-foreground overflow-hidden shadow-lg ring-1 ring-border',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item size=\"xs\" className=\"px-6 pt-6 pb-2\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-warning/15\">\n\t\t\t\t\t\t<Gift className=\"h-4 w-4 text-warning\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t{/* Amount */}\n\t\t\t<div className=\"px-6 pt-4 pb-4\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"text-4xl border-none pb-0 tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Code strip */}\n\t\t\t<div className=\"mx-6 flex items-center gap-2 rounded-lg bg-muted px-3.5 py-2.5 border border-border\">\n\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tonClick={() => {}}\n\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t{/* Metadata rows */}\n\t\t\t<div className=\"px-6 pt-4 pb-2 space-y-2.5\">\n\t\t\t\t{!!recipientName && (\n\t\t\t\t\t<InlineStat label={strings.recipient} value={recipientName} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t<InlineStat label={strings.expires} value={expiresAt} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Footer — solid white-ish button on the dark surface\n\t\t\t so the label always reads (outline-on-dark with the\n\t\t\t warning text token blended into the dark card and\n\t\t\t looked invisible). */}\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"px-6 pt-2 pb-5\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t\tclassName=\"bg-white text-zinc-900 hover:bg-white/90 hover:text-zinc-900\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardDark.displayName = 'GiftcardCardDark';\n","/**\n * GiftcardCardIllustrated — gradient header with diagonal-line + decorative\n * circles overlay, overlapping gift icon, balance + status row, code strip,\n * details (recipient / expires), and an outline footer button. Strings\n * overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport {\n\tItem,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye, Calendar, User } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype HeaderColor,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\theaderGradientMap,\n\theaderIconBgMap,\n} from '../types';\n\nexport function GiftcardCardIllustrated({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\theaderColor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { headerColor?: HeaderColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'w-full max-w-sm rounded-2xl bg-card border border-border/50 shadow-sm overflow-hidden',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{/* Gradient header with pattern */}\n\t\t\t<div className={cn('relative h-24 bg-gradient-to-br', headerGradientMap[headerColor])}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"absolute inset-0\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundImage:\n\t\t\t\t\t\t\t'repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.03) 10px, rgba(255,255,255,0.03) 20px)',\n\t\t\t\t\t}}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t\t<div className=\"absolute -top-8 -right-8 h-28 w-28 rounded-full bg-white/[0.06]\" aria-hidden=\"true\" />\n\t\t\t\t<div className=\"absolute -bottom-4 -left-4 h-20 w-20 rounded-full bg-white/[0.04]\" aria-hidden=\"true\" />\n\t\t\t</div>\n\n\t\t\t{/* Overlapping icon */}\n\t\t\t<div className=\"relative -mt-7 px-6\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex h-14 w-14 items-center justify-center rounded-xl',\n\t\t\t\t\t\theaderIconBgMap[headerColor],\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Gift className=\"h-6 w-6 text-white\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Body */}\n\t\t\t<div className=\"px-6 pt-4 pb-6 space-y-4\">\n\t\t\t\t<div className=\"flex items-start justify-between\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"text-3xl border-none pb-0 tabular-nums\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t{strings.giftCard} · {strings.balance}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"flex items-center gap-2 rounded-lg bg-muted/50 px-3.5 py-2.5 border border-border/30\">\n\t\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t\t{code}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\n\t\t\t\t<ItemGroup className=\"gap-1\">\n\t\t\t\t\t{!!recipientName && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<User />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle>{recipientName}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Calendar />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle>{expiresAt}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t</ItemGroup>\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCardIllustrated.displayName = 'GiftcardCardIllustrated';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport interface CourseParticipant {\n\t/** Display name (used for tooltip + initials extraction). */\n\tname?: string;\n\t/** Pre-computed initials override. */\n\tinitials?: string;\n\t/** Optional photo. */\n\timageUrl?: string;\n}\n\nexport interface CourseBadge {\n\tlabel: string;\n\tvariant: ComposedBadgeVariant;\n}\n\nexport type CourseCardVariant = 'default' | 'minimal' | 'gradient';\n\nexport interface CourseCardStrings {\n\tparticipants: string;\n\tprogress: string;\n}\n\nexport const defaultCourseCardStrings: CourseCardStrings = {\n\tparticipants: 'Participants',\n\tprogress: 'Progress',\n};\n\nexport interface CourseCardProps {\n\ttitle: string;\n\tdescription?: string;\n\tbadges?: CourseBadge[];\n\tparticipants?: CourseParticipant[];\n\textraParticipants?: number;\n\tprogressPercent?: number;\n\tactionLabel?: string;\n\tonAction?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<CourseCardStrings>;\n\t/** Visual variant. Default `default`. */\n\tvariant?: CourseCardVariant;\n\t/** Optional gradient (`from-... via-... to-...` Tailwind tokens) for `gradient` variant. */\n\tgradient?: string;\n}\n","/**\n * CourseCard — course summary tile with title, description, badges row,\n * stacked-avatar participants block, progress bar, and primary action.\n *\n * Three variants:\n * - `default` — soft gradient surface (current behaviour)\n * - `gradient` — vivid gradient header background, white text overlay\n * - `minimal` — borderless inline row (icon-free, single line of meta)\n *\n * Strings overridable for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography/text';\nimport { StackedAvatars, type StackedAvatarUser } from '@/components/base/display/stacked-avatars';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultCourseCardStrings, type CourseCardProps, type CourseParticipant } from './types';\n\nconst innerSurface = 'rounded-xl bg-background/80 ring-1 ring-border/60 p-3';\n\nconst DEFAULT_GRADIENT = 'bg-gradient-to-br from-violet-500 via-fuchsia-500 to-pink-500';\n\nfunction toAvatarUsers(participants: CourseParticipant[]): StackedAvatarUser[] {\n\treturn participants.map((p, idx) => ({\n\t\tid: `${idx}-${p.name ?? p.initials ?? ''}`,\n\t\tname: p.name ?? p.initials ?? `P${idx + 1}`,\n\t\timageUrl: p.imageUrl,\n\t}));\n}\n\nexport function CourseCard({\n\ttitle,\n\tdescription,\n\tbadges = [],\n\tparticipants = [],\n\textraParticipants = 0,\n\tprogressPercent,\n\tactionLabel,\n\tonAction,\n\tclassName,\n\tstrings: stringsProp,\n\tvariant = 'default',\n\tgradient = DEFAULT_GRADIENT,\n}: CourseCardProps) {\n\tconst strings = useStrings(defaultCourseCardStrings, stringsProp);\n\tconst totalUsers = participants.length + extraParticipants;\n\tconst avatarUsers = toAvatarUsers(participants);\n\n\tif (variant === 'minimal') {\n\t\treturn (\n\t\t\t<Item variant=\"outline\" className={cn('course-card--component', 'hover:bg-muted/30 transition-colors', className)}>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t{!!description && <ItemDescription clamp={1}>{description}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\tmax={3}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants || 0}`}\n\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t\t<Button variant=\"secondary\" buttonStyle=\"ghost\" onClick={onAction}>\n\t\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\t\t);\n\t}\n\n\tif (variant === 'gradient') {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative overflow-hidden rounded-2xl text-white shadow-sm',\n\t\t\t\t\tgradient,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"p-5\">\n\t\t\t\t\t<Text size=\"base\" weight=\"semibold\" className=\"text-white\">{title}</Text>\n\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t<Text className=\"text-white/80 mt-0.5\">{description}</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{badges.length > 0 && (\n\t\t\t\t\t\t<div className=\"mt-3 flex flex-wrap gap-1.5\">\n\t\t\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tkey={badge.label}\n\t\t\t\t\t\t\t\t\tclassName=\"inline-flex items-center rounded-full bg-white/20 px-2 py-0.5 text-xxs font-medium text-white backdrop-blur-sm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t\t<div className=\"bg-black/15 px-5 py-3 backdrop-blur-sm flex items-center gap-4\">\n\t\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t<StackedAvatars users={avatarUsers} max={3} size=\"sm\" showOverflow={false} />\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/80\">\n\t\t\t\t\t\t\t\t\t{totalUsers} {strings.participants.toLowerCase()}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t\t<div className=\"ml-auto flex items-center gap-2\">\n\t\t\t\t\t\t\t\t<div className=\"h-1.5 w-24 overflow-hidden rounded-full bg-white/25\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-white\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/90 tabular-nums\">{progressPercent}%</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t<div className=\"px-5 pb-5 pt-0\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={onAction}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'w-full rounded-xl bg-white/95 px-3 py-2 text-sm font-semibold text-foreground shadow-sm hover:bg-white transition-colors',\n\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tclassName={cn('bg-gradient-to-b from-muted/30 to-card', className)}\n\t\t>\n\t\t\t{badges.length > 0 && (\n\t\t\t\t<div className=\"flex flex-wrap gap-1.5\">\n\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t<Badge key={badge.label} variant={badge.variant}>\n\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t<div className=\"mt-4 grid grid-cols-2 gap-2.5\">\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.participants}</Text>\n\t\t\t\t\t\t\t<div className=\"mt-2\">\n\t\t\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\t\t\tmax={4}\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants}`}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.progress}</Text>\n\t\t\t\t\t\t\t<div className=\"mt-2.5\">\n\t\t\t\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-success/15\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-success\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-1 tabular-nums\">{progressPercent}%</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<Button variant=\"dark\" className=\"mt-4 w-full rounded-xl\" onClick={onAction}>\n\t\t\t\t\t{actionLabel}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCourseCard.displayName = 'CourseCard';\n","/**\n * FeatureAnnouncementCard — promotional surface for new-feature callouts.\n * Sparkles-style icon (configurable via `icon`) sits on the leading edge of\n * the header so the title / description block has a clear typographic anchor;\n * tag chips wrap below; the action is rendered as an inline ghost link with\n * a trailing chevron. All copy is consumer-supplied so no `strings` prop is\n * needed.\n */\nimport { ChevronRight, Sparkles } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\n\nimport type { FeatureAnnouncementCardProps } from './types';\n\nexport function FeatureAnnouncementCard({\n\ticon: Icon = Sparkles,\n\ttitle,\n\tdescription,\n\ttags = [],\n\tactionLabel,\n\tonAction,\n\tclassName,\n}: FeatureAnnouncementCardProps) {\n\treturn (\n\t\t<SmartCard className={cn('feature-announcement--component', 'bg-gradient-to-b from-muted/30 to-card', className)}>\n\t\t\t<Item size=\"default\" className=\"px-0 items-start\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<IconBadge icon={Icon} tone=\"primary\" size=\"lg\" shape=\"square\" className=\"rounded-xl ring-1 ring-primary/15\" />\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle className=\"text-base\">{title}</ItemTitle>\n\t\t\t\t\t<ItemDescription clamp=\"none\">{description}</ItemDescription>\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{tags.length > 0 && (\n\t\t\t\t<div className=\"mt-4 flex flex-wrap gap-1.5\">\n\t\t\t\t\t{tags.map((tag) => (\n\t\t\t\t\t\t<Badge key={tag} variant=\"info\">\n\t\t\t\t\t\t\t{tag}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<div className=\"mt-4\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onAction}\n\t\t\t\t\t\tclassName=\"-ml-2 h-auto px-2\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nFeatureAnnouncementCard.displayName = 'FeatureAnnouncementCard';\n","export interface VendorProfileStat {\n\tlabel: string;\n\tvalue: string;\n\tchange?: string;\n}\n\nexport interface VendorProfileMetric {\n\tlabel: string;\n\tvalue: string;\n}\n\n/**\n * Localised labels for VendorProfileCard. Override per-instance via `strings`.\n */\nexport interface VendorProfileStrings {\n\ttabOverview: string;\n\ttabStats: string;\n\ttotalEarnings: string;\n\tmessage: string;\n\thire: string;\n\tverifiedAriaLabel: string;\n}\n\nexport const defaultVendorProfileStrings: VendorProfileStrings = {\n\ttabOverview: 'Overview',\n\ttabStats: 'Stats',\n\ttotalEarnings: 'Total Earnings',\n\tmessage: 'Message',\n\thire: 'Hire Me',\n\tverifiedAriaLabel: 'Verified',\n};\n\nexport interface VendorProfileCardProps {\n\tname: string;\n\tinitials?: string;\n\tavatarUrl?: string;\n\trole?: string;\n\tverified?: boolean;\n\tearnings?: string;\n\tearningsChange?: string;\n\tmetrics?: VendorProfileMetric[];\n\tstats?: VendorProfileStat[];\n\tonMessage?: () => void;\n\tonHire?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<VendorProfileStrings>;\n}\n","/**\n * VendorProfileCard — vendor avatar, name, role, verified badge, earnings,\n * and a pill-tab switcher between Overview (metrics list) and Stats (small\n * KPI grid). Trailing Message / Hire actions. Strings are overridable for\n * i18n via the `strings` prop.\n *\n * Avatar sits BESIDE the name (not above) so the header row reads as a\n * cohesive identity block rather than a floating icon over a separate text\n * block. The card uses a custom layout instead of SmartCard's slot system to\n * keep the tab switcher / earnings hero / metrics grid / actions footer\n * arranged in a tighter visual rhythm.\n */\nimport { useState } from 'react';\nimport { Check, ChevronRight, MessageSquare } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { IconBadge, InlineStat } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultVendorProfileStrings, type VendorProfileCardProps } from './types';\n\nexport function VendorProfileCard({\n\tname,\n\tinitials,\n\tavatarUrl,\n\trole,\n\tverified = false,\n\tearnings,\n\tearningsChange,\n\tmetrics = [],\n\tstats = [],\n\tonMessage,\n\tonHire,\n\tclassName,\n\tstrings: stringsProp,\n}: VendorProfileCardProps) {\n\tconst strings = useStrings(defaultVendorProfileStrings, stringsProp);\n\tconst [tab, setTab] = useState<'overview' | 'stats'>('overview');\n\n\tconst displayInitials =\n\t\tinitials ?? name.split(' ').map((w) => w[0]).join('').slice(0, 2).toUpperCase();\n\n\tconst tabLabel: Record<'overview' | 'stats', string> = {\n\t\toverview: strings.tabOverview,\n\t\tstats: strings.tabStats,\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('vendor-profile--component', \n\t\t\t\t'flex flex-col gap-5 rounded-xl border border-border bg-gradient-to-b from-muted/30 to-card p-5 shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item size=\"default\" className=\"px-0 items-start\">\n\t\t\t\t<ItemMedia variant={avatarUrl ? 'avatar' : 'default'}>\n\t\t\t\t\t{avatarUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={avatarUrl}\n\t\t\t\t\t\t\talt={name}\n\t\t\t\t\t\t\tclassName=\"size-12 rounded-full object-cover ring-2 ring-border\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<IconBadge tone=\"primary\" size=\"lg\" className=\"font-semibold ring-2 ring-primary/15\">\n\t\t\t\t\t\t\t{displayInitials}\n\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t)}\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle className=\"text-base\">\n\t\t\t\t\t\t<Heading tag=\"h4\" className=\"border-none p-0 text-base font-semibold tracking-tight\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{!!verified && (\n\t\t\t\t\t\t\t<IconBadge tone=\"success\" solid size=\"xs\" aria-label={strings.verifiedAriaLabel} className=\"size-4\">\n\t\t\t\t\t\t\t\t<Check className=\"size-2.5\" strokeWidth={3} />\n\t\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t{!!role && <ItemDescription clamp={2}>{role}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{/* Pill tab switcher */}\n\t\t\t<div className=\"flex gap-1 rounded-full bg-muted/60 p-1\">\n\t\t\t\t{(['overview', 'stats'] as const).map((t) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={t}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-pressed={tab === t}\n\t\t\t\t\t\tonClick={() => setTab(t)}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex-1 rounded-full px-3 py-1.5 text-xs font-medium transition-colors',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\t\ttab === t\n\t\t\t\t\t\t\t\t? 'bg-card text-foreground shadow-sm'\n\t\t\t\t\t\t\t\t: 'text-muted-foreground hover:text-foreground',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tabLabel[t]}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{tab === 'overview' ? (\n\t\t\t\t<div className=\"space-y-4\">\n\t\t\t\t\t{!!earnings && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.totalEarnings}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-0.5 flex items-baseline gap-2\">\n\t\t\t\t\t\t\t\t<Heading tag=\"h3\" className=\"text-3xl tabular-nums tracking-tight border-none pb-0\">\n\t\t\t\t\t\t\t\t\t{earnings}\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t{!!earningsChange && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"rounded-full bg-success/15 px-1.5 py-0.5 text-success tabular-nums\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{earningsChange}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{metrics.length > 0 && (\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t{metrics.map((metric) => (\n\t\t\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\t\t\tkey={metric.label}\n\t\t\t\t\t\t\t\t\tclassName=\"border-b border-border/50 pb-2 last:border-0\"\n\t\t\t\t\t\t\t\t\tlabel={metric.label}\n\t\t\t\t\t\t\t\t\tvalue={metric.value}\n\t\t\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\t\t\t\t\t\tvalueClassName=\"text-sm font-semibold\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div className=\"grid grid-cols-2 gap-2\">\n\t\t\t\t\t{stats.map((stat) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={stat.label}\n\t\t\t\t\t\t\tclassName=\"rounded-lg border border-border/60 bg-muted/20 px-3 py-2.5\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{stat.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1.5\">\n\t\t\t\t\t\t\t\t<Text size=\"base\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{stat.value}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!stat.change && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'rounded-full px-1.5 py-0.5 tabular-nums',\n\t\t\t\t\t\t\t\t\t\t\tstat.change.startsWith('+')\n\t\t\t\t\t\t\t\t\t\t\t\t? 'bg-success/15 text-success'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'bg-destructive/15 text-destructive',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{stat.change}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tclassName=\"flex-1 rounded-xl\"\n\t\t\t\t\tonClick={onMessage}\n\t\t\t\t>\n\t\t\t\t\t<MessageSquare className=\"mr-1.5 size-3.5\" />\n\t\t\t\t\t{strings.message}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\tclassName=\"flex-1 rounded-xl\"\n\t\t\t\t\tonClick={onHire}\n\t\t\t\t>\n\t\t\t\t\t{strings.hire}\n\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nVendorProfileCard.displayName = 'VendorProfileCard';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/components/composed/cards/contact-card/types.ts","../../../../src/components/composed/cards/contact-card/contact-card.tsx","../../../../src/components/composed/cards/gradient-card/gradient-card.tsx","../../../../src/components/composed/cards/giftcard-card/types.ts","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-full.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-compact.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-minimal.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-dark.tsx","../../../../src/components/composed/cards/giftcard-card/partials/giftcard-illustrated.tsx","../../../../src/components/composed/cards/course-card/types.ts","../../../../src/components/composed/cards/course-card/course-card.tsx","../../../../src/components/composed/cards/feature-announcement/feature-announcement.tsx","../../../../src/components/composed/cards/vendor-profile/types.ts","../../../../src/components/composed/cards/vendor-profile/vendor-profile.tsx"],"sourcesContent":["import type { ComposedBadgeVariant as BadgeVariant } from '@/components/base/badge/badge';\n\nexport interface ContactCardStrings {\n contact: string;\n profile: string;\n}\n\nexport const defaultContactCardStrings: ContactCardStrings = {\n contact: 'Contact',\n profile: 'Profile',\n};\n\nexport interface ContactCardProps {\n name: string;\n role?: string;\n email?: string;\n phone?: string;\n location?: string;\n avatarUrl?: string;\n initials?: string;\n badge?: string;\n badgeVariant?: BadgeVariant;\n onContact?: () => void;\n onViewProfile?: () => void;\n className?: string;\n /** Override default action button labels. */\n strings?: Partial<ContactCardStrings>;\n}\n","import { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Button } from '@/components/base/buttons';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n Item,\n ItemContent,\n ItemGroup,\n ItemMedia,\n ItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\nimport { useStrings } from '@/lib/strings';\nimport { Mail, Phone, MapPin, ExternalLink } from 'lucide-react';\nimport { defaultContactCardStrings, type ContactCardProps } from './types';\n\nfunction deriveInitials(name: string, initials?: string): string {\n\tif (initials) return initials;\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\n/**\n * ContactCard — Avatar + name + role + contact details (email, phone, location)\n * with optional Contact / Profile actions and a status badge.\n *\n * Contact details render through `<ItemGroup>` + `<Item>` so density and\n * media slots stay aligned with the rest of the library; the header and CTA\n * row remain bespoke because they are not Item-shaped.\n */\nexport function ContactCard({\n\tname,\n\trole,\n\temail,\n\tphone,\n\tlocation,\n\tavatarUrl,\n\tinitials,\n\tbadge,\n\tbadgeVariant = 'success',\n\tonContact,\n\tonViewProfile,\n\tclassName,\n\tstrings: stringsProp,\n}: ContactCardProps) {\n\tconst strings = useStrings(defaultContactCardStrings, stringsProp);\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('contact-card--component', \n\t\t\t\t'overflow-hidden rounded-xl border border-border bg-card text-card-foreground shadow-sm p-6 sm:p-7',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex items-start gap-4\">\n\t\t\t\t<Avatar className=\"h-16 w-16 shrink-0 border-2 border-border\">\n\t\t\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={name} />}\n\t\t\t\t\t<AvatarFallback className=\"text-lg font-bold\">\n\t\t\t\t\t\t{deriveInitials(name, initials)}\n\t\t\t\t\t</AvatarFallback>\n\t\t\t\t</Avatar>\n\t\t\t\t<div className=\"min-w-0 flex-1 pt-0.5\">\n\t\t\t\t\t<div className=\"flex items-center gap-2.5\">\n\t\t\t\t\t\t<Heading tag=\"h4\" className=\"truncate text-lg\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{!!badge && <Badge variant={badgeVariant}>{badge}</Badge>}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!role && (\n\t\t\t\t\t\t<Text type=\"secondary\" className=\"mt-1\">\n\t\t\t\t\t\t\t{role}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{!!(email || phone || location) && (\n\t\t\t\t<ItemGroup className=\"mt-6 gap-1\">\n\t\t\t\t\t{!!email && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Mail />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{email}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!phone && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Phone />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{phone}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!location && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<MapPin />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle bold={false}>{location}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t</ItemGroup>\n\t\t\t)}\n\n\t\t\t{!!(onContact || onViewProfile) && (\n\t\t\t\t<div className=\"mt-6 flex items-center gap-2\">\n\t\t\t\t\t{!!onContact && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\t\ticon={Mail}\n\t\t\t\t\t\t\tonClick={onContact}\n\t\t\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.contact}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!onViewProfile && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\ticon={ExternalLink}\n\t\t\t\t\t\t\tonClick={onViewProfile}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.profile}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nContactCard.displayName = 'ContactCard';\n","/**\n * GradientCard — vivid gradient surface with a clear single-axis layout.\n *\n * Structure (all sections optional, all left-aligned):\n *\n * ┌──────────────────────────────────────────┐\n * │ Title [icon] [×] │ ← header: title|subtitle / icon / badge\n * │ Subtitle │\n * │ │\n * │ 24 │ ← hero value (large, eyebrow above)\n * │ orders awaiting fulfillment URGENT │\n * │ │\n * │ ⚠ 3 orders older than 48h 3 │ ← inline alert (subordinate to value)\n * │ │\n * │ ──────────────────────────────────────── │\n * │ [Review Orders] footer │ ← action / footer\n * └──────────────────────────────────────────┘\n *\n * Earlier centered-hero mode pushed every element to the centerline which made\n * the alert dominate over the value and produced a fragmented vertical rhythm.\n * The new layout keeps everything on the leading edge so the eye walks\n * top-down: identity → value → context → action.\n *\n * For the compact \"metric tile\" use-case (single value + change), see\n * `GradientCardCompact` below.\n */\nimport { type ReactNode } from 'react';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { cn } from '@/lib/utils';\nimport {\n\ttype GradientPreset,\n\ttype PatternType,\n\ttype GradientCardProps,\n\ttype GradientCardCompactProps,\n} from './types';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Gradient + pattern presets\n// ──────────────────────────────────────────────────────────────────────────\n\nconst GRADIENT_MAP: Record<GradientPreset, string> = {\n\tcoral: 'bg-gradient-to-br from-[#e8453c] to-[#f4845f]',\n\tocean: 'bg-gradient-to-br from-chart-4 to-[#7c6cf0]',\n\tforest: 'bg-gradient-to-br from-chart-1 to-[#2d9a5f]',\n\ttwilight: 'bg-gradient-to-br from-[#1e1b4b] to-chart-4',\n\tember: 'bg-gradient-to-br from-chart-3 to-chart-2',\n};\n\nfunction PatternCircles() {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"absolute -right-12 -top-12 h-44 w-44 rounded-full bg-white/[0.06]\" aria-hidden=\"true\" />\n\t\t\t<div className=\"absolute -bottom-8 -left-8 h-28 w-28 rounded-full bg-white/[0.05]\" aria-hidden=\"true\" />\n\t\t</>\n\t);\n}\n\nfunction PatternDiagonal() {\n\treturn (\n\t\t<svg\n\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-[0.04]\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid=\"diag-stripes\"\n\t\t\t\t\twidth=\"8\"\n\t\t\t\t\theight=\"8\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t\tpatternTransform=\"rotate(45)\"\n\t\t\t\t>\n\t\t\t\t\t<rect width=\"2\" height=\"8\" fill=\"white\" />\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect width=\"100%\" height=\"100%\" fill=\"url(#diag-stripes)\" />\n\t\t</svg>\n\t);\n}\n\nconst PATTERN_MAP: Record<PatternType, (() => ReactNode) | null> = {\n\tnone: null,\n\tcircles: () => <PatternCircles />,\n\tdiagonal: () => <PatternDiagonal />,\n};\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCard\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCard({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tsubtitle,\n\tvalue,\n\tvalueLabel,\n\tbadge,\n\ticon: Icon,\n\talertText,\n\talertCount,\n\taction,\n\tfooter,\n\tchildren,\n\tclassName,\n}: GradientCardProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\tconst hasHeader = !!(title || subtitle || Icon);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'relative overflow-hidden rounded-2xl',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-5 p-6\">\n\t\t\t\t{/* Header — title + subtitle on the leading edge, icon as a\n\t\t\t\t rounded square on the trailing edge so it acts as a brand\n\t\t\t\t mark rather than competing for the centerline. */}\n\t\t\t\t{!!hasHeader && (\n\t\t\t\t\t<div className=\"flex items-start justify-between gap-4\">\n\t\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\tclassName=\"text-white tracking-tight leading-snug\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!subtitle && (\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"mt-0.5 text-white/70 leading-snug\">\n\t\t\t\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName=\"inline-flex size-10 shrink-0 items-center justify-center rounded-xl bg-white/15 text-white ring-1 ring-white/15 backdrop-blur-sm\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"size-5\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Hero value block — eyebrow above the figure, optional badge\n\t\t\t\t on the trailing edge of the label row. The figure is the\n\t\t\t\t visual anchor of the card. */}\n\t\t\t\t{!!value && (\n\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h3\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-4xl font-bold tabular-nums tracking-tight text-white border-none pb-0 leading-none\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{(valueLabel || badge) && (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center justify-between gap-2\">\n\t\t\t\t\t\t\t\t{!!valueLabel && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/75 leading-snug\">\n\t\t\t\t\t\t\t\t\t\t{valueLabel}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!badge && (\n\t\t\t\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-white/20 px-2.5 py-0.5 text-xxs font-semibold uppercase tracking-wider text-white backdrop-blur-sm\">\n\t\t\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Inline alert — subordinate to the value, sits below it. */}\n\t\t\t\t{!!alertText && (\n\t\t\t\t\t<div className=\"flex items-center gap-3 rounded-xl bg-white/10 px-3.5 py-2.5 ring-1 ring-white/10 backdrop-blur-sm\">\n\t\t\t\t\t\t<Text className=\"min-w-0 flex-1 text-white/90 leading-snug\">\n\t\t\t\t\t\t\t{alertText}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!alertCount && (\n\t\t\t\t\t\t\t<span className=\"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-white/25 px-1.5 text-xs font-bold tabular-nums text-white\">\n\t\t\t\t\t\t\t\t{alertCount}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!children && <div>{children}</div>}\n\n\t\t\t\t{(!!action || !!footer) && (\n\t\t\t\t\t<div className=\"flex items-center justify-between gap-3 pt-1\">\n\t\t\t\t\t\t\t{action ? (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t\t\tclassName=\"rounded-xl px-4\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!footer && (\n\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/70\">{footer}</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCard.displayName = 'GradientCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// GradientCardCompact — single-metric tile\n// ──────────────────────────────────────────────────────────────────────────\n\nexport function GradientCardCompact({\n\tgradient = 'coral',\n\tpattern = 'none',\n\ttitle,\n\tvalue,\n\tchange,\n\tsubtitle,\n\tclassName,\n}: GradientCardCompactProps) {\n\tconst PatternRenderer = PATTERN_MAP[pattern];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'relative overflow-hidden rounded-2xl',\n\t\t\t\tGRADIENT_MAP[gradient],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!PatternRenderer && PatternRenderer()}\n\n\t\t\t<div className=\"relative flex flex-col gap-1 p-5\">\n\t\t\t\t{!!title && (\n\t\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"text-white/80 uppercase tracking-wider\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t{!!value && (\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\ttag=\"h4\"\n\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\tclassName=\"text-2xl font-bold tabular-nums tracking-tight text-white border-none pb-0 leading-none\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!change && (\n\t\t\t\t\t\t<span className=\"inline-flex items-center rounded-full bg-white/15 px-2 py-0.5 text-xs font-semibold tabular-nums text-white backdrop-blur-sm\">\n\t\t\t\t\t\t\t{change}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{!!subtitle && (\n\t\t\t\t\t<Text size=\"xs\" className=\"text-white/65 leading-snug\">\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGradientCardCompact.displayName = 'GradientCardCompact';\n","export interface GiftcardData {\n\tcode: string;\n\tamount: string;\n\tremainingAmount?: string;\n\tcurrency?: string;\n\tstatus: 'active' | 'redeemed' | 'expired' | 'disabled';\n\trecipientName?: string;\n\tsenderName?: string;\n\tmessage?: string;\n\texpiresAt?: string;\n\tcreatedAt?: string;\n\ttemplate?: string;\n\tonView?: () => void;\n}\n\nexport type GradientVariant = 'purple' | 'green' | 'warm';\nexport type PatternVariant = 'none' | 'circles' | 'waves';\nexport type AccentColor = 'green' | 'purple' | 'warm';\nexport type HeaderColor = 'green' | 'blue' | 'amber';\n\nexport type GiftcardStatus = GiftcardData['status'];\n\n/**\n * Localised labels for giftcard cards. Covers status chips, the recurring\n * field labels rendered by all five partials (full / dark / illustrated /\n * minimal / compact), and the inline button labels.\n *\n * Override per-instance via `strings`.\n */\nexport interface GiftcardStrings {\n\tstatus: Record<GiftcardStatus, string>;\n\tgiftCard: string;\n\tbalance: string;\n\tpersonalMessage: string;\n\tto: string;\n\tfrom: string;\n\texpires: string;\n\trecipient: string;\n\tviewDetails: string;\n\tcopyCode: string;\n}\n\nexport const defaultGiftcardStrings: GiftcardStrings = {\n\tstatus: {\n\t\tactive: 'Active',\n\t\tredeemed: 'Redeemed',\n\t\texpired: 'Expired',\n\t\tdisabled: 'Disabled',\n\t},\n\tgiftCard: 'Gift Card',\n\tbalance: 'Balance',\n\tpersonalMessage: 'Personal Message',\n\tto: 'To',\n\tfrom: 'From',\n\texpires: 'Expires',\n\trecipient: 'Recipient',\n\tviewDetails: 'View Details',\n\tcopyCode: 'Copy code',\n};\n\nexport interface GiftcardCommonProps {\n\t/** Override default English giftcard strings. */\n\tstrings?: Partial<GiftcardStrings>;\n}\n\nexport const giftcardStatusVariant: Record<\n\tGiftcardStatus,\n\t'success' | 'secondary' | 'error' | 'warning'\n> = {\n\tactive: 'success',\n\tredeemed: 'secondary',\n\texpired: 'error',\n\tdisabled: 'warning',\n};\n\n/**\n * @deprecated Use `defaultGiftcardStrings.status` for labels and\n * `giftcardStatusVariant` for badge variants. Kept for backwards compatibility.\n */\nexport const giftcardStatusMap = {\n\tactive: { label: defaultGiftcardStrings.status.active, variant: 'success' as const },\n\tredeemed: { label: defaultGiftcardStrings.status.redeemed, variant: 'secondary' as const },\n\texpired: { label: defaultGiftcardStrings.status.expired, variant: 'error' as const },\n\tdisabled: { label: defaultGiftcardStrings.status.disabled, variant: 'warning' as const },\n};\n\nexport const gradientMap: Record<GradientVariant, { card: string; strip: string }> = {\n\tpurple: {\n\t\tcard: 'from-violet-600 via-purple-700 to-indigo-800',\n\t\tstrip: 'from-violet-500 via-purple-600 to-indigo-700',\n\t},\n\tgreen: {\n\t\tcard: 'from-emerald-600 via-teal-700 to-emerald-800',\n\t\tstrip: 'from-emerald-500 via-teal-600 to-emerald-700',\n\t},\n\twarm: {\n\t\tcard: 'from-orange-500 via-rose-600 to-pink-700',\n\t\tstrip: 'from-orange-400 via-rose-500 to-pink-600',\n\t},\n};\n\nexport const compactGradientMap: Record<GradientVariant, string> = {\n\tpurple: 'from-violet-600 to-indigo-800',\n\tgreen: 'from-emerald-600 to-teal-800',\n\twarm: 'from-orange-500 to-rose-700',\n};\n\nexport const accentColorMap: Record<AccentColor, { line: string; iconBg: string }> = {\n\tgreen: { line: 'bg-success', iconBg: 'bg-success/15 text-success' },\n\tpurple: { line: 'bg-primary', iconBg: 'bg-primary/15 text-primary' },\n\twarm: { line: 'bg-warning', iconBg: 'bg-warning/15 text-warning-foreground' },\n};\n\nexport const headerGradientMap: Record<HeaderColor, string> = {\n\tgreen: 'from-emerald-500 to-teal-600',\n\tblue: 'from-blue-500 to-indigo-600',\n\tamber: 'from-amber-500 to-orange-600',\n};\n\nexport const headerIconBgMap: Record<HeaderColor, string> = {\n\tgreen: 'bg-emerald-500 ring-4 ring-white shadow-lg',\n\tblue: 'bg-blue-500 ring-4 ring-white shadow-lg',\n\tamber: 'bg-amber-500 ring-4 ring-white shadow-lg',\n};\n","/**\n * GiftcardCard (full) — premium gradient layout with shimmer hover, optional\n * pattern overlay (circles / waves), header status chip, balance / strike-\n * through line, copyable code strip, personal message block, and metadata\n * grid (To / From / Expires). Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Button } from '@/components/base/buttons';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport {\n\tGift,\n\tCopy,\n\tEye,\n\tCalendar,\n\tUser,\n\tSparkles,\n} from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\ttype PatternVariant,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\tgradientMap,\n} from '../types';\n\nexport function GiftcardCard({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tsenderName,\n\tmessage,\n\texpiresAt,\n\tcreatedAt: _createdAt,\n\ttemplate: _template,\n\tonView,\n\tgradient = 'purple',\n\tpattern = 'none',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData &\n\tGiftcardCommonProps & {\n\t\tgradient?: GradientVariant;\n\t\tpattern?: PatternVariant;\n\t\tclassName?: string;\n\t}) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'group w-full max-w-sm transition-shadow duration-300 ease-out',\n\t\t\t\t'hover:shadow-xl hover:shadow-black/10',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{/* Gift card header — gradient with shimmer */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative overflow-hidden rounded-t-xl bg-gradient-to-br p-6',\n\t\t\t\t\tgradientMap[gradient].card,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* Shimmer / shine effect */}\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"pointer-events-none absolute inset-0 bg-gradient-to-r from-transparent via-white/10 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-1000 ease-in-out\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\n\t\t\t\t{/* Pattern: circles */}\n\t\t\t\t{pattern === 'circles' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"absolute -top-8 -right-8 h-32 w-32 rounded-full bg-white/5\" aria-hidden=\"true\" />\n\t\t\t\t\t\t<div className=\"absolute -bottom-4 -left-4 h-20 w-20 rounded-full bg-white/5\" aria-hidden=\"true\" />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t\t{/* Pattern: waves */}\n\t\t\t\t{pattern === 'waves' && (\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName=\"absolute inset-0 h-full w-full opacity-5\"\n\t\t\t\t\t\tviewBox=\"0 0 400 200\"\n\t\t\t\t\t\tpreserveAspectRatio=\"none\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path d=\"M0 80 C100 20, 200 140, 400 60 L400 200 L0 200 Z\" fill=\"white\" />\n\t\t\t\t\t\t<path d=\"M0 120 C120 60, 280 180, 400 100 L400 200 L0 200 Z\" fill=\"white\" />\n\t\t\t\t\t</svg>\n\t\t\t\t)}\n\n\t\t\t\t{/* Status badge — top-right overlay with glass effect.\n\t\t\t\t Custom inline pill (white text on glass) so the label\n\t\t\t\t reads cleanly against any gradient — semantic Badge\n\t\t\t\t variants would render dark text and clash. */}\n\t\t\t\t<div className=\"absolute top-4 right-4 z-20\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xxs font-semibold uppercase tracking-wide',\n\t\t\t\t\t\t\t'bg-white/20 text-white border border-white/25 shadow-sm backdrop-blur-md',\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdata-status={statusVariant}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"size-1.5 rounded-full bg-white/85\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{statusLabel}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"relative z-10\">\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<Gift className=\"h-5 w-5 text-white/80\" />\n\t\t\t\t\t\t<Text weight=\"medium\" className=\"text-white/80\">{strings.giftCard}</Text>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"mt-8 mb-5\">\n\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/50 uppercase tracking-wider\">{strings.balance}</Text>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2.5 mt-1\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"text-4xl border-none pb-0 text-white tabular-nums drop-shadow-sm\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text className=\"text-white/40 line-through tabular-nums\">{amount}</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Code strip — premium feel */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex items-center gap-2 rounded-lg px-4 py-2.5',\n\t\t\t\t\t\t\t'bg-white/10 backdrop-blur-sm',\n\t\t\t\t\t\t\t'border border-white/15',\n\t\t\t\t\t\t\t'shadow-[0_0_12px_-3px_rgba(255,255,255,0.15)]',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text weight=\"semibold\" className=\"text-white font-mono tracking-[0.2em] flex-1\">\n\t\t\t\t\t\t\t{code}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tclassName=\"p-1 h-auto text-white/50 hover:text-white hover:bg-white/10\"\n\t\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Copy className=\"h-4 w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Details section — structured metadata grid */}\n\t\t\t<div className=\"rounded-b-xl bg-card p-5 shadow-sm border border-t-0 border-border/50 space-y-4\">\n\t\t\t\t{!!message && (\n\t\t\t\t\t<div className=\"rounded-lg bg-muted/50 p-3 border border-border/30\">\n\t\t\t\t\t\t<div className=\"flex items-center gap-1.5 mb-1\">\n\t\t\t\t\t\t\t<Sparkles className=\"h-3 w-3 text-warning\" />\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t{strings.personalMessage}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Text type=\"secondary\" className=\"italic leading-relaxed\">\n\t\t\t\t\t\t\t“{message}”\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Metadata grid */}\n\t\t\t\t<div className=\"grid grid-cols-2 gap-3\">\n\t\t\t\t\t{!!recipientName && (\n\t\t\t\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<User className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" weight=\"medium\" className=\"uppercase tracking-wide\">{strings.to}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text weight=\"medium\">{recipientName}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!senderName && (\n\t\t\t\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<User className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" weight=\"medium\" className=\"uppercase tracking-wide\">{strings.from}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text weight=\"medium\">{senderName}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t\t<div className=\"space-y-0.5\">\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t<Calendar className=\"h-3 w-3 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" weight=\"medium\" className=\"uppercase tracking-wide\">{strings.expires}</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Text weight=\"medium\">{expiresAt}</Text>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCard.displayName = 'GiftcardCard';\n","/**\n * GiftcardCompact — single-row compact layout. Square gradient gift icon on\n * the left, code + recipient in the middle, amount + status badge on the\n * right. Use for inline lists / tables of giftcards. Strings overridable.\n */\nimport { Text } from '@/components/typography/text';\nimport { Badge } from '@/components/base/badge/badge';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype GradientVariant,\n\tcompactGradientMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCompact({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\tgradient = 'purple',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { gradient?: GradientVariant; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<Item\n\t\t\tvariant=\"outline\"\n\t\t\tclassName={cn('shadow-sm transition-colors duration-150 hover:border-border', className)}\n\t\t>\n\t\t\t<ItemMedia variant=\"image\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex size-full items-center justify-center bg-gradient-to-br',\n\t\t\t\t\t\tcompactGradientMap[gradient],\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Gift className=\"h-4 w-4 text-white\" />\n\t\t\t\t</div>\n\t\t\t</ItemMedia>\n\n\t\t\t<ItemContent>\n\t\t\t\t<ItemTitle className=\"font-mono\">{code}</ItemTitle>\n\t\t\t\t{!!recipientName && <ItemDescription clamp={1}>{recipientName}</ItemDescription>}\n\t\t\t</ItemContent>\n\n\t\t\t<ItemActions>\n\t\t\t\t<div className=\"flex shrink-0 flex-col items-end gap-0.5\">\n\t\t\t\t\t<div className=\"flex items-baseline gap-1\">\n\t\t\t\t\t\t<Text size=\"base\" weight=\"bold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</div>\n\t\t\t</ItemActions>\n\t\t</Item>\n\t);\n}\n\nGiftcardCompact.displayName = 'GiftcardCompact';\n","/**\n * GiftcardCardMinimal — clean minimal layout. A small accent line (driven by\n * `color`) sits above the header icon + label, balance, code strip, and\n * metadata rows. Footer \"View details\" link uses an arrow affordance.\n * Strings overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { InlineStat } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, ArrowRight } from 'lucide-react';\nimport {\n\ttype AccentColor,\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\taccentColorMap,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardMinimal({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tcolor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { color?: AccentColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\tconst accent = accentColorMap[color];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'w-full max-w-sm rounded-2xl bg-card border border-border/50 shadow-sm overflow-hidden',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('h-1 w-16 rounded-full mx-6 mt-5', accent.line)} />\n\n\t\t\t<Item size=\"xs\" className=\"px-6 pt-4 pb-2\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex h-8 w-8 items-center justify-center rounded-full',\n\t\t\t\t\t\t\taccent.iconBg,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Gift className=\"h-4 w-4\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t<div className=\"px-6 pt-2 pb-3\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"text-3xl border-none pb-0 tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"mx-6 flex items-center gap-2 rounded-lg bg-muted/50 px-3.5 py-2.5 border border-border/30\">\n\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<div className=\"px-6 pt-4 pb-2 space-y-2.5\">\n\t\t\t\t{!!recipientName && (\n\t\t\t\t\t<InlineStat label={strings.recipient} value={recipientName} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t<InlineStat label={strings.expires} value={expiresAt} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"px-3 py-2 border-t border-border/30 mt-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t\tclassName=\"group/link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t\t<ArrowRight className=\"ml-1 h-3.5 w-3.5 transition-transform group-hover/link:translate-x-0.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardMinimal.displayName = 'GiftcardCardMinimal';\n","/**\n * GiftcardCardDark — premium dark variant. Header with chart-2 gift icon,\n * status chip, balance + strike-through line, code strip, metadata rows\n * (recipient / expires), and an outline call-to-action footer. Strings\n * overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { InlineStat } from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n} from '../types';\n\nexport function GiftcardCardDark({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'dark w-full max-w-sm rounded-2xl bg-card text-card-foreground overflow-hidden shadow-lg ring-1 ring-border',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item size=\"xs\" className=\"px-6 pt-6 pb-2\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-warning/15\">\n\t\t\t\t\t\t<Gift className=\"h-4 w-4 text-warning\" />\n\t\t\t\t\t</div>\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle bold={false} className=\"text-muted-foreground\">{strings.giftCard}</ItemTitle>\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\n\t\t\t{/* Amount */}\n\t\t\t<div className=\"px-6 pt-4 pb-4\">\n\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t<Heading tag=\"h2\" className=\"text-4xl border-none pb-0 tabular-nums\">\n\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Code strip */}\n\t\t\t<div className=\"mx-6 flex items-center gap-2 rounded-lg bg-muted px-3.5 py-2.5 border border-border\">\n\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t{code}\n\t\t\t\t</Text>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tonClick={() => {}}\n\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t>\n\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t{/* Metadata rows */}\n\t\t\t<div className=\"px-6 pt-4 pb-2 space-y-2.5\">\n\t\t\t\t{!!recipientName && (\n\t\t\t\t\t<InlineStat label={strings.recipient} value={recipientName} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t<InlineStat label={strings.expires} value={expiresAt} valueClassName=\"text-sm font-medium\" />\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Footer — solid white-ish button on the dark surface\n\t\t\t so the label always reads (outline-on-dark with the\n\t\t\t warning text token blended into the dark card and\n\t\t\t looked invisible). */}\n\t\t\t{!!onView && (\n\t\t\t\t<div className=\"px-6 pt-2 pb-5\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tbuttonStyle=\"solid\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t\tclassName=\"bg-white text-zinc-900 hover:bg-white/90 hover:text-zinc-900\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nGiftcardCardDark.displayName = 'GiftcardCardDark';\n","/**\n * GiftcardCardIllustrated — gradient header with diagonal-line + decorative\n * circles overlay, overlapping gift icon, balance + status row, code strip,\n * details (recipient / expires), and an outline footer button. Strings\n * overridable for i18n.\n */\nimport { Text } from '@/components/typography/text';\nimport Heading from '@/components/typography/heading';\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport {\n\tItem,\n\tItemContent,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\nimport { Gift, Copy, Eye, Calendar, User } from 'lucide-react';\nimport {\n\ttype GiftcardCommonProps,\n\ttype GiftcardData,\n\ttype HeaderColor,\n\tdefaultGiftcardStrings,\n\tgiftcardStatusVariant,\n\theaderGradientMap,\n\theaderIconBgMap,\n} from '../types';\n\nexport function GiftcardCardIllustrated({\n\tcode,\n\tamount,\n\tremainingAmount,\n\tstatus,\n\trecipientName,\n\texpiresAt,\n\tonView,\n\theaderColor = 'green',\n\tclassName,\n\tstrings: stringsProp,\n}: GiftcardData & GiftcardCommonProps & { headerColor?: HeaderColor; className?: string }) {\n\tconst strings = useStrings(defaultGiftcardStrings, stringsProp);\n\tconst statusLabel = strings.status[status];\n\tconst statusVariant = giftcardStatusVariant[status];\n\tconst isPartiallyUsed = !!remainingAmount && remainingAmount !== amount;\n\tconst displayAmount = isPartiallyUsed ? remainingAmount : amount;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'w-full max-w-sm rounded-2xl bg-card border border-border/50 shadow-sm overflow-hidden',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{/* Gradient header with pattern */}\n\t\t\t<div className={cn('relative h-24 bg-gradient-to-br', headerGradientMap[headerColor])}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"absolute inset-0\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundImage:\n\t\t\t\t\t\t\t'repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.03) 10px, rgba(255,255,255,0.03) 20px)',\n\t\t\t\t\t}}\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t/>\n\t\t\t\t<div className=\"absolute -top-8 -right-8 h-28 w-28 rounded-full bg-white/[0.06]\" aria-hidden=\"true\" />\n\t\t\t\t<div className=\"absolute -bottom-4 -left-4 h-20 w-20 rounded-full bg-white/[0.04]\" aria-hidden=\"true\" />\n\t\t\t</div>\n\n\t\t\t{/* Overlapping icon */}\n\t\t\t<div className=\"relative -mt-7 px-6\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex h-14 w-14 items-center justify-center rounded-xl',\n\t\t\t\t\t\theaderIconBgMap[headerColor],\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Gift className=\"h-6 w-6 text-white\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Body */}\n\t\t\t<div className=\"px-6 pt-4 pb-6 space-y-4\">\n\t\t\t\t<div className=\"flex items-start justify-between\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div className=\"flex items-baseline gap-2\">\n\t\t\t\t\t\t\t<Heading tag=\"h2\" className=\"text-3xl border-none pb-0 tabular-nums\">\n\t\t\t\t\t\t\t\t{displayAmount}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t{!!isPartiallyUsed && (\n\t\t\t\t\t\t\t\t<Text type=\"discrete\" className=\"line-through tabular-nums\">\n\t\t\t\t\t\t\t\t\t{amount}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-0.5\">\n\t\t\t\t\t\t\t{strings.giftCard} · {strings.balance}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Badge variant={statusVariant}>{statusLabel}</Badge>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"flex items-center gap-2 rounded-lg bg-muted/50 px-3.5 py-2.5 border border-border/30\">\n\t\t\t\t\t<Text weight=\"medium\" className=\"font-mono tracking-[0.15em] flex-1\">\n\t\t\t\t\t\t{code}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tclassName=\"p-1 h-auto\"\n\t\t\t\t\t\taria-label={strings.copyCode}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Copy className=\"h-3.5 w-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\n\t\t\t\t<ItemGroup className=\"gap-1\">\n\t\t\t\t\t{!!recipientName && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<User />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle>{recipientName}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!expiresAt && (\n\t\t\t\t\t\t<Item size=\"xs\" className=\"px-0\">\n\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t<Calendar />\n\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t<ItemTitle>{expiresAt}</ItemTitle>\n\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t</Item>\n\t\t\t\t\t)}\n\t\t\t\t</ItemGroup>\n\n\t\t\t\t{!!onView && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\ticon={Eye}\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tonClick={onView}\n\t\t\t\t\t>\n\t\t\t\t\t\t{strings.viewDetails}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nGiftcardCardIllustrated.displayName = 'GiftcardCardIllustrated';\n","import type { ComposedBadgeVariant } from '@/components/base/badge/badge';\n\nexport interface CourseParticipant {\n\t/** Display name (used for tooltip + initials extraction). */\n\tname?: string;\n\t/** Pre-computed initials override. */\n\tinitials?: string;\n\t/** Optional photo. */\n\timageUrl?: string;\n}\n\nexport interface CourseBadge {\n\tlabel: string;\n\tvariant: ComposedBadgeVariant;\n}\n\nexport type CourseCardVariant = 'default' | 'minimal' | 'gradient';\n\nexport interface CourseCardStrings {\n\tparticipants: string;\n\tprogress: string;\n}\n\nexport const defaultCourseCardStrings: CourseCardStrings = {\n\tparticipants: 'Participants',\n\tprogress: 'Progress',\n};\n\nexport interface CourseCardProps {\n\ttitle: string;\n\tdescription?: string;\n\tbadges?: CourseBadge[];\n\tparticipants?: CourseParticipant[];\n\textraParticipants?: number;\n\tprogressPercent?: number;\n\tactionLabel?: string;\n\tonAction?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<CourseCardStrings>;\n\t/** Visual variant. Default `default`. */\n\tvariant?: CourseCardVariant;\n\t/** Optional gradient (`from-... via-... to-...` Tailwind tokens) for `gradient` variant. */\n\tgradient?: string;\n}\n","/**\n * CourseCard — course summary tile with title, description, badges row,\n * stacked-avatar participants block, progress bar, and primary action.\n *\n * Three variants:\n * - `default` — soft gradient surface (current behaviour)\n * - `gradient` — vivid gradient header background, white text overlay\n * - `minimal` — borderless inline row (icon-free, single line of meta)\n *\n * Strings overridable for i18n.\n */\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Text } from '@/components/typography/text';\nimport { StackedAvatars, type StackedAvatarUser } from '@/components/base/display/stacked-avatars';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultCourseCardStrings, type CourseCardProps, type CourseParticipant } from './types';\n\nconst innerSurface = 'rounded-xl bg-background/80 ring-1 ring-border/60 p-3';\n\nconst DEFAULT_GRADIENT = 'bg-gradient-to-br from-violet-500 via-fuchsia-500 to-pink-500';\n\nfunction toAvatarUsers(participants: CourseParticipant[]): StackedAvatarUser[] {\n\treturn participants.map((p, idx) => ({\n\t\tid: `${idx}-${p.name ?? p.initials ?? ''}`,\n\t\tname: p.name ?? p.initials ?? `P${idx + 1}`,\n\t\timageUrl: p.imageUrl,\n\t}));\n}\n\nexport function CourseCard({\n\ttitle,\n\tdescription,\n\tbadges = [],\n\tparticipants = [],\n\textraParticipants = 0,\n\tprogressPercent,\n\tactionLabel,\n\tonAction,\n\tclassName,\n\tstrings: stringsProp,\n\tvariant = 'default',\n\tgradient = DEFAULT_GRADIENT,\n}: CourseCardProps) {\n\tconst strings = useStrings(defaultCourseCardStrings, stringsProp);\n\tconst totalUsers = participants.length + extraParticipants;\n\tconst avatarUsers = toAvatarUsers(participants);\n\n\tif (variant === 'minimal') {\n\t\treturn (\n\t\t\t<Item variant=\"outline\" className={cn('course-card--component', 'hover:bg-muted/30 transition-colors', className)}>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle>{title}</ItemTitle>\n\t\t\t\t\t{!!description && <ItemDescription clamp={1}>{description}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t\t<ItemActions>\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\tmax={3}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants || 0}`}\n\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"shrink-0 tabular-nums\">\n\t\t\t\t\t\t\t{progressPercent}%\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t\t<Button variant=\"secondary\" buttonStyle=\"ghost\" onClick={onAction}>\n\t\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</ItemActions>\n\t\t\t</Item>\n\t\t);\n\t}\n\n\tif (variant === 'gradient') {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative overflow-hidden rounded-2xl text-white shadow-sm',\n\t\t\t\t\tgradient,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"p-5\">\n\t\t\t\t\t<Text size=\"base\" weight=\"semibold\" className=\"text-white\">{title}</Text>\n\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t<Text className=\"text-white/80 mt-0.5\">{description}</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{badges.length > 0 && (\n\t\t\t\t\t\t<div className=\"mt-3 flex flex-wrap gap-1.5\">\n\t\t\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tkey={badge.label}\n\t\t\t\t\t\t\t\t\tclassName=\"inline-flex items-center rounded-full bg-white/20 px-2 py-0.5 text-xxs font-medium text-white backdrop-blur-sm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t\t<div className=\"bg-black/15 px-5 py-3 backdrop-blur-sm flex items-center gap-4\">\n\t\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t<StackedAvatars users={avatarUsers} max={3} size=\"sm\" showOverflow={false} />\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/80\">\n\t\t\t\t\t\t\t\t\t{totalUsers} {strings.participants.toLowerCase()}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t\t<div className=\"ml-auto flex items-center gap-2\">\n\t\t\t\t\t\t\t\t<div className=\"h-1.5 w-24 overflow-hidden rounded-full bg-white/25\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-white\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" className=\"text-white/90 tabular-nums\">{progressPercent}%</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!!actionLabel && (\n\t\t\t\t\t<div className=\"px-5 pb-5 pt-0\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={onAction}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'w-full rounded-xl bg-white/95 px-3 py-2 text-sm font-semibold text-foreground shadow-sm hover:bg-white transition-colors',\n\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SmartCard\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tclassName={cn('bg-gradient-to-b from-muted/30 to-card', className)}\n\t\t>\n\t\t\t{badges.length > 0 && (\n\t\t\t\t<div className=\"flex flex-wrap gap-1.5\">\n\t\t\t\t\t{badges.map((badge) => (\n\t\t\t\t\t\t<Badge key={badge.label} variant={badge.variant}>\n\t\t\t\t\t\t\t{badge.label}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{(participants.length > 0 || progressPercent !== undefined) && (\n\t\t\t\t<div className=\"mt-4 grid grid-cols-2 gap-2.5\">\n\t\t\t\t\t{participants.length > 0 && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.participants}</Text>\n\t\t\t\t\t\t\t<div className=\"mt-2\">\n\t\t\t\t\t\t\t\t<StackedAvatars\n\t\t\t\t\t\t\t\t\tusers={avatarUsers}\n\t\t\t\t\t\t\t\t\tmax={4}\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tshowOverflow={extraParticipants > 0}\n\t\t\t\t\t\t\t\t\toverflowFormatter={() => `+${extraParticipants}`}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{progressPercent !== undefined && (\n\t\t\t\t\t\t<div className={innerSurface}>\n\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">{strings.progress}</Text>\n\t\t\t\t\t\t\t<div className=\"mt-2.5\">\n\t\t\t\t\t\t\t\t<div className=\"h-1.5 w-full overflow-hidden rounded-full bg-success/15\">\n\t\t\t\t\t\t\t\t\t<div className=\"h-full rounded-full bg-success\" style={{ width: `${progressPercent}%` }} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"mt-1 tabular-nums\">{progressPercent}%</Text>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<Button variant=\"dark\" className=\"mt-4 w-full rounded-xl\" onClick={onAction}>\n\t\t\t\t\t{actionLabel}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nCourseCard.displayName = 'CourseCard';\n","/**\n * FeatureAnnouncementCard — promotional surface for new-feature callouts.\n * Sparkles-style icon (configurable via `icon`) sits on the leading edge of\n * the header so the title / description block has a clear typographic anchor;\n * tag chips wrap below; the action is rendered as an inline ghost link with\n * a trailing chevron. All copy is consumer-supplied so no `strings` prop is\n * needed.\n */\nimport { ChevronRight, Sparkles } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge/badge';\nimport { Button } from '@/components/base/buttons';\nimport { SmartCard } from '@/components/base/cards/smart-card';\nimport { IconBadge } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { cn } from '@/lib/utils';\n\nimport type { FeatureAnnouncementCardProps } from './types';\n\nexport function FeatureAnnouncementCard({\n\ticon: Icon = Sparkles,\n\ttitle,\n\tdescription,\n\ttags = [],\n\tactionLabel,\n\tonAction,\n\tclassName,\n}: FeatureAnnouncementCardProps) {\n\treturn (\n\t\t<SmartCard className={cn('feature-announcement--component', 'bg-gradient-to-b from-muted/30 to-card', className)}>\n\t\t\t<Item size=\"default\" className=\"px-0 items-start\">\n\t\t\t\t<ItemMedia>\n\t\t\t\t\t<IconBadge icon={Icon} tone=\"primary\" size=\"lg\" shape=\"square\" className=\"rounded-xl ring-1 ring-primary/15\" />\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle className=\"text-base\">{title}</ItemTitle>\n\t\t\t\t\t<ItemDescription clamp=\"none\">{description}</ItemDescription>\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{tags.length > 0 && (\n\t\t\t\t<div className=\"mt-4 flex flex-wrap gap-1.5\">\n\t\t\t\t\t{tags.map((tag) => (\n\t\t\t\t\t\t<Badge key={tag} variant=\"info\">\n\t\t\t\t\t\t\t{tag}\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!actionLabel && (\n\t\t\t\t<div className=\"mt-4\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tonClick={onAction}\n\t\t\t\t\t\tclassName=\"-ml-2 h-auto px-2\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actionLabel}\n\t\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SmartCard>\n\t);\n}\n\nFeatureAnnouncementCard.displayName = 'FeatureAnnouncementCard';\n","export interface VendorProfileStat {\n\tlabel: string;\n\tvalue: string;\n\tchange?: string;\n}\n\nexport interface VendorProfileMetric {\n\tlabel: string;\n\tvalue: string;\n}\n\n/**\n * Localised labels for VendorProfileCard. Override per-instance via `strings`.\n */\nexport interface VendorProfileStrings {\n\ttabOverview: string;\n\ttabStats: string;\n\ttotalEarnings: string;\n\tmessage: string;\n\thire: string;\n\tverifiedAriaLabel: string;\n}\n\nexport const defaultVendorProfileStrings: VendorProfileStrings = {\n\ttabOverview: 'Overview',\n\ttabStats: 'Stats',\n\ttotalEarnings: 'Total Earnings',\n\tmessage: 'Message',\n\thire: 'Hire Me',\n\tverifiedAriaLabel: 'Verified',\n};\n\nexport interface VendorProfileCardProps {\n\tname: string;\n\tinitials?: string;\n\tavatarUrl?: string;\n\trole?: string;\n\tverified?: boolean;\n\tearnings?: string;\n\tearningsChange?: string;\n\tmetrics?: VendorProfileMetric[];\n\tstats?: VendorProfileStat[];\n\tonMessage?: () => void;\n\tonHire?: () => void;\n\tclassName?: string;\n\tstrings?: Partial<VendorProfileStrings>;\n}\n","/**\n * VendorProfileCard — vendor avatar, name, role, verified badge, earnings,\n * and a pill-tab switcher between Overview (metrics list) and Stats (small\n * KPI grid). Trailing Message / Hire actions. Strings are overridable for\n * i18n via the `strings` prop.\n *\n * Avatar sits BESIDE the name (not above) so the header row reads as a\n * cohesive identity block rather than a floating icon over a separate text\n * block. The card uses a custom layout instead of SmartCard's slot system to\n * keep the tab switcher / earnings hero / metrics grid / actions footer\n * arranged in a tighter visual rhythm.\n */\nimport { useState } from 'react';\nimport { Check, ChevronRight, MessageSquare } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography/text';\nimport { IconBadge, InlineStat } from '@/components/base/display';\nimport {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { defaultVendorProfileStrings, type VendorProfileCardProps } from './types';\n\nexport function VendorProfileCard({\n\tname,\n\tinitials,\n\tavatarUrl,\n\trole,\n\tverified = false,\n\tearnings,\n\tearningsChange,\n\tmetrics = [],\n\tstats = [],\n\tonMessage,\n\tonHire,\n\tclassName,\n\tstrings: stringsProp,\n}: VendorProfileCardProps) {\n\tconst strings = useStrings(defaultVendorProfileStrings, stringsProp);\n\tconst [tab, setTab] = useState<'overview' | 'stats'>('overview');\n\n\tconst displayInitials =\n\t\tinitials ?? name.split(' ').map((w) => w[0]).join('').slice(0, 2).toUpperCase();\n\n\tconst tabLabel: Record<'overview' | 'stats', string> = {\n\t\toverview: strings.tabOverview,\n\t\tstats: strings.tabStats,\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('vendor-profile--component', \n\t\t\t\t'flex flex-col gap-5 rounded-xl border border-border bg-gradient-to-b from-muted/30 to-card p-5 shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Item size=\"default\" className=\"px-0 items-start\">\n\t\t\t\t<ItemMedia variant={avatarUrl ? 'avatar' : 'default'}>\n\t\t\t\t\t{avatarUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={avatarUrl}\n\t\t\t\t\t\t\talt={name}\n\t\t\t\t\t\t\tclassName=\"size-12 rounded-full object-cover ring-2 ring-border\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<IconBadge tone=\"primary\" size=\"lg\" className=\"font-semibold ring-2 ring-primary/15\">\n\t\t\t\t\t\t\t{displayInitials}\n\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t)}\n\t\t\t\t</ItemMedia>\n\t\t\t\t<ItemContent>\n\t\t\t\t\t<ItemTitle className=\"text-base\">\n\t\t\t\t\t\t<Heading tag=\"h4\" className=\"border-none p-0 text-base font-semibold tracking-tight\">\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{!!verified && (\n\t\t\t\t\t\t\t<IconBadge tone=\"success\" solid size=\"xs\" aria-label={strings.verifiedAriaLabel} className=\"size-4\">\n\t\t\t\t\t\t\t\t<Check className=\"size-2.5\" strokeWidth={3} />\n\t\t\t\t\t\t\t</IconBadge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ItemTitle>\n\t\t\t\t\t{!!role && <ItemDescription clamp={2}>{role}</ItemDescription>}\n\t\t\t\t</ItemContent>\n\t\t\t</Item>\n\n\t\t\t{/* Pill tab switcher */}\n\t\t\t<div className=\"flex gap-1 rounded-full bg-muted/60 p-1\">\n\t\t\t\t{(['overview', 'stats'] as const).map((t) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={t}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-pressed={tab === t}\n\t\t\t\t\t\tonClick={() => setTab(t)}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex-1 rounded-full px-3 py-1.5 text-xs font-medium transition-colors',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\t\ttab === t\n\t\t\t\t\t\t\t\t? 'bg-card text-foreground shadow-sm'\n\t\t\t\t\t\t\t\t: 'text-muted-foreground hover:text-foreground',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tabLabel[t]}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{tab === 'overview' ? (\n\t\t\t\t<div className=\"space-y-4\">\n\t\t\t\t\t{!!earnings && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{strings.totalEarnings}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-0.5 flex items-baseline gap-2\">\n\t\t\t\t\t\t\t\t<Heading tag=\"h3\" className=\"text-3xl tabular-nums tracking-tight border-none pb-0\">\n\t\t\t\t\t\t\t\t\t{earnings}\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t\t{!!earningsChange && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"rounded-full bg-success/15 px-1.5 py-0.5 text-success tabular-nums\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{earningsChange}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{metrics.length > 0 && (\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t{metrics.map((metric) => (\n\t\t\t\t\t\t\t\t<InlineStat\n\t\t\t\t\t\t\t\t\tkey={metric.label}\n\t\t\t\t\t\t\t\t\tclassName=\"border-b border-border/50 pb-2 last:border-0\"\n\t\t\t\t\t\t\t\t\tlabel={metric.label}\n\t\t\t\t\t\t\t\t\tvalue={metric.value}\n\t\t\t\t\t\t\t\t\tmono\n\t\t\t\t\t\t\t\t\tlabelClassName=\"text-sm\"\n\t\t\t\t\t\t\t\t\tvalueClassName=\"text-sm font-semibold\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div className=\"grid grid-cols-2 gap-2\">\n\t\t\t\t\t{stats.map((stat) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={stat.label}\n\t\t\t\t\t\t\tclassName=\"rounded-lg border border-border/60 bg-muted/20 px-3 py-2.5\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\tclassName=\"uppercase tracking-wider\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{stat.label}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<div className=\"mt-1 flex items-baseline gap-1.5\">\n\t\t\t\t\t\t\t\t<Text size=\"base\" weight=\"semibold\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t{stat.value}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!stat.change && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xxs\"\n\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'rounded-full px-1.5 py-0.5 tabular-nums',\n\t\t\t\t\t\t\t\t\t\t\tstat.change.startsWith('+')\n\t\t\t\t\t\t\t\t\t\t\t\t? 'bg-success/15 text-success'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'bg-destructive/15 text-destructive',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{stat.change}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tclassName=\"flex-1 rounded-xl\"\n\t\t\t\t\tonClick={onMessage}\n\t\t\t\t>\n\t\t\t\t\t<MessageSquare className=\"mr-1.5 size-3.5\" />\n\t\t\t\t\t{strings.message}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"dark\"\n\t\t\t\t\tclassName=\"flex-1 rounded-xl\"\n\t\t\t\t\tonClick={onHire}\n\t\t\t\t>\n\t\t\t\t\t{strings.hire}\n\t\t\t\t\t<ChevronRight className=\"ml-1 size-3.5\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nVendorProfileCard.displayName = 'VendorProfileCard';\n"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { useStrings as e } from "../../../lib/strings.js";
|
|
2
2
|
import { cn as t } from "../../../lib/utils.js";
|
|
3
3
|
import { t as n } from "../../../_shared/text-DIxMTECE.js";
|
|
4
|
-
import {
|
|
5
|
-
import { t as i } from "../../../_shared/icon-badge-
|
|
6
|
-
import { t as a } from "../../../_shared/badge-
|
|
7
|
-
import { t as o } from "../../../_shared/button-
|
|
8
|
-
import { t as s } from "../../../_shared/smart-card-
|
|
9
|
-
import {
|
|
10
|
-
import { o as u, r as d, t as f } from "../../../_shared/avatar-
|
|
11
|
-
import { c as p, i as m, n as h, o as g, r as _, t as v, u as y } from "../../../_shared/item-
|
|
4
|
+
import { t as r } from "../../../_shared/heading-BprqyzDs.js";
|
|
5
|
+
import { t as i } from "../../../_shared/icon-badge-Bi63T-bj.js";
|
|
6
|
+
import { t as a } from "../../../_shared/badge-BVCh_hfL.js";
|
|
7
|
+
import { t as o } from "../../../_shared/button-ChCkwoOD.js";
|
|
8
|
+
import { t as s } from "../../../_shared/smart-card-MT6JjkoI.js";
|
|
9
|
+
import { P as c, i as l } from "../../../_shared/display-BM_GxDAo.js";
|
|
10
|
+
import { o as u, r as d, t as f } from "../../../_shared/avatar-CpBz9pTv.js";
|
|
11
|
+
import { c as p, i as m, n as h, o as g, r as _, t as v, u as y } from "../../../_shared/item-Cu5JbZyZ.js";
|
|
12
12
|
import { useState as b } from "react";
|
|
13
13
|
import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
14
14
|
import { ArrowRight as w, Calendar as T, Check as E, ChevronRight as D, Copy as O, ExternalLink as k, Eye as A, Gift as j, Mail as M, MapPin as N, MessageSquare as ee, Phone as P, Sparkles as F, User as I } from "lucide-react";
|