admin-ui-starter-kit 0.6.2 → 0.6.5
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/dist/_shared/auth-BZY91F5_.cjs +2 -0
- package/dist/_shared/auth-BZY91F5_.cjs.map +1 -0
- package/dist/_shared/auth-DcotjEbY.js +643 -0
- package/dist/_shared/auth-DcotjEbY.js.map +1 -0
- package/dist/_shared/buttons-Bek9F7qK.cjs +2 -0
- package/dist/_shared/buttons-Bek9F7qK.cjs.map +1 -0
- package/dist/_shared/buttons-DcynMPnE.js +137 -0
- package/dist/_shared/buttons-DcynMPnE.js.map +1 -0
- package/dist/_shared/cards-C1ythc0Q.js +354 -0
- package/dist/_shared/cards-C1ythc0Q.js.map +1 -0
- package/dist/_shared/cards-GSYfJ-oX.cjs +2 -0
- package/dist/_shared/cards-GSYfJ-oX.cjs.map +1 -0
- package/dist/_shared/comments-CmljtbAW.js +952 -0
- package/dist/_shared/comments-CmljtbAW.js.map +1 -0
- package/dist/_shared/comments-ColUq7eh.cjs +2 -0
- package/dist/_shared/comments-ColUq7eh.cjs.map +1 -0
- package/dist/_shared/containers-CB7zaAvN.cjs +2 -0
- package/dist/_shared/containers-CB7zaAvN.cjs.map +1 -0
- package/dist/_shared/containers-CLBmhGfs.js +48 -0
- package/dist/_shared/containers-CLBmhGfs.js.map +1 -0
- package/dist/_shared/data-display-BTsCY7A5.js +1873 -0
- package/dist/_shared/data-display-BTsCY7A5.js.map +1 -0
- package/dist/_shared/data-display-BdGQMXit.cjs +2 -0
- package/dist/_shared/data-display-BdGQMXit.cjs.map +1 -0
- package/dist/_shared/forms-CEE1te78.cjs +2 -0
- package/dist/_shared/forms-CEE1te78.cjs.map +1 -0
- package/dist/_shared/forms-CQoGvG7q.js +3533 -0
- package/dist/_shared/forms-CQoGvG7q.js.map +1 -0
- package/dist/_shared/header-B9IPDQRW.js +447 -0
- package/dist/_shared/header-B9IPDQRW.js.map +1 -0
- package/dist/_shared/header-C_1x4-rd.cjs +2 -0
- package/dist/_shared/header-C_1x4-rd.cjs.map +1 -0
- package/dist/_shared/hooks---vunGQ6.js +95 -0
- package/dist/_shared/hooks---vunGQ6.js.map +1 -0
- package/dist/_shared/hooks-CjVzmgvY.cjs +2 -0
- package/dist/_shared/hooks-CjVzmgvY.cjs.map +1 -0
- package/dist/_shared/layout-BXrQqUKq.js +262 -0
- package/dist/_shared/layout-BXrQqUKq.js.map +1 -0
- package/dist/_shared/layout-DWicdsPI.cjs +2 -0
- package/dist/_shared/layout-DWicdsPI.cjs.map +1 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs +2 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs.map +1 -0
- package/dist/_shared/layout.types-ip8BYRa7.js +28 -0
- package/dist/_shared/layout.types-ip8BYRa7.js.map +1 -0
- package/dist/_shared/settings-Bfr6PgSi.cjs +2 -0
- package/dist/_shared/settings-Bfr6PgSi.cjs.map +1 -0
- package/dist/_shared/settings-CrPaYr4A.js +143 -0
- package/dist/_shared/settings-CrPaYr4A.js.map +1 -0
- package/dist/_shared/sidebar-CDOLD8fN.js +548 -0
- package/dist/_shared/sidebar-CDOLD8fN.js.map +1 -0
- package/dist/_shared/sidebar-DcsxeNml.cjs +2 -0
- package/dist/_shared/sidebar-DcsxeNml.cjs.map +1 -0
- package/dist/_shared/table-B_pqCQxC.js +1377 -0
- package/dist/_shared/table-B_pqCQxC.js.map +1 -0
- package/dist/_shared/table-CGVOXtdv.cjs +2 -0
- package/dist/_shared/table-CGVOXtdv.cjs.map +1 -0
- package/dist/_shared/workspace-C1twu23r.cjs +2 -0
- package/dist/_shared/workspace-C1twu23r.cjs.map +1 -0
- package/dist/_shared/workspace-CkOZLdcN.js +357 -0
- package/dist/_shared/workspace-CkOZLdcN.js.map +1 -0
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +1 -1
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.js +2 -2
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +2 -2
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.js +1 -1
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +2 -2
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.js +2 -2
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +1 -1
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +1 -1
- package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +1 -1
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +1 -1
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +1 -1
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +1 -1
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +1 -1
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +2 -2
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.js +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.js +4 -4
- package/dist/components/features/resource/index.cjs +1 -1
- package/dist/components/features/resource/index.js +2 -2
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +2 -2
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/containers/containers.types.d.ts +2 -2
- package/dist/components/layout/containers/containers.types.d.ts.map +1 -1
- package/dist/components/layout/containers/content-container.d.ts.map +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +1 -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 +10 -11
- package/dist/components/layout/layout.types.d.ts.map +1 -1
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +2 -2
- package/dist/components/layout/settings/index.cjs +1 -1
- package/dist/components/layout/settings/index.js +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/showcase/assets/AreaChart-WJREayr9.js +6 -0
- package/dist/showcase/assets/CompositeItem-CY3XmFuI.js +1 -0
- package/dist/showcase/assets/CompositeRoot-BPMF0t1F.js +1 -0
- package/dist/showcase/assets/DialogTrigger-BzaF3YN8.js +1 -0
- package/dist/showcase/assets/LabelableContext-LKvvFFnV.js +1 -0
- package/dist/showcase/assets/PreviewLayout-B0n7l00P.js +1 -0
- package/dist/showcase/assets/RadioGroup-VBtGFETg.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-BimGwdGs.js +1 -0
- package/dist/showcase/assets/Separator-BfKe0YiY.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-Cscyv1PN.js +1 -0
- package/dist/showcase/assets/accordion-BEN0VkL4.js +171 -0
- package/dist/showcase/assets/accordion-variants-QFG3H38z.js +1 -0
- package/dist/showcase/assets/action-menu-Bfw1tFqM.js +1 -0
- package/dist/showcase/assets/actions-CFpHs5IC.js +310 -0
- package/dist/showcase/assets/activities-CDxlaghU.js +500 -0
- package/dist/showcase/assets/activities-feed-card-BO1kcjRK.js +1 -0
- package/dist/showcase/assets/admin-DFpHXeuv.js +140 -0
- package/dist/showcase/assets/ai-DyO6VqQP.js +207 -0
- package/dist/showcase/assets/ai-artifact-MVA3ikv6.js +2 -0
- package/dist/showcase/assets/ai-chat-D-xcp6Jf.js +568 -0
- package/dist/showcase/assets/ai-elements-DlFqIOYp.js +387 -0
- package/dist/showcase/assets/ai-tool-call-DedG9TdK.js +1 -0
- package/dist/showcase/assets/alert-CmRK2lOe.js +1 -0
- package/dist/showcase/assets/alert-DCIVryEp.js +62 -0
- package/dist/showcase/assets/alert-DDP3Ktic.js +93 -0
- package/dist/showcase/assets/api-key-list-CWa997YX.js +1 -0
- package/dist/showcase/assets/api-key-list-mTPebHF3.js +73 -0
- package/dist/showcase/assets/app-sidebar-Cnfk9z5K.js +1 -0
- package/dist/showcase/assets/arrow-down-CCYWFimd.js +1 -0
- package/dist/showcase/assets/arrow-left-CrYjfZJ0.js +1 -0
- package/dist/showcase/assets/arrow-right-eLxbBrdm.js +1 -0
- package/dist/showcase/assets/arrow-up-kA33fcPv.js +1 -0
- package/dist/showcase/assets/arrow-up-right-BSWGQVDB.js +1 -0
- package/dist/showcase/assets/avatar-BDGhB3aA.js +57 -0
- package/dist/showcase/assets/avatar-CLBQvnYG.js +1 -0
- package/dist/showcase/assets/avatar-WUMW3Qjo.js +1 -0
- package/dist/showcase/assets/avatar-cKSNuTzf.js +67 -0
- package/dist/showcase/assets/badge--mqVg8Ry.js +31 -0
- package/dist/showcase/assets/badge-check-D7YjWqnm.js +1 -0
- package/dist/showcase/assets/bell-6YyocFK6.js +1 -0
- package/dist/showcase/assets/bot-BC4pGAB3.js +1 -0
- package/dist/showcase/assets/box-CPGIu4Nv.js +1 -0
- package/dist/showcase/assets/braces-9jywZtTA.js +1 -0
- package/dist/showcase/assets/brain-wf_S427C.js +1 -0
- package/dist/showcase/assets/brand-78lhbKSW.js +36 -0
- package/dist/showcase/assets/breadcrumb-6XHObtqO.js +1 -0
- package/dist/showcase/assets/breadcrumb-BVrrS53_.js +52 -0
- package/dist/showcase/assets/breadcrumbs-BwC3Iaae.js +1 -0
- package/dist/showcase/assets/briefcase-BViWYew9.js +1 -0
- package/dist/showcase/assets/building-2-CwR3gV1I.js +1 -0
- package/dist/showcase/assets/button-BWwsy37B.js +44 -0
- package/dist/showcase/assets/button-group-BTiMRQIO.js +1 -0
- package/dist/showcase/assets/buttons-D9pH8hPs.js +272 -0
- package/dist/showcase/assets/calendar-Bzl2i1lu.js +1 -0
- package/dist/showcase/assets/calendar-CNMlC7Fn.js +16 -0
- package/dist/showcase/assets/calendar-D5NdEmaD.js +1 -0
- package/dist/showcase/assets/calendar-days-j8QDBUc5.js +1 -0
- package/dist/showcase/assets/camera-Cwb84N8a.js +1 -0
- package/dist/showcase/assets/card-CX3vQ2Te.js +1 -0
- package/dist/showcase/assets/card-FLJkfdKP.js +188 -0
- package/dist/showcase/assets/card-primitives-C2s13Uvp.js +1 -0
- package/dist/showcase/assets/card-radio-group-BP27dErL.js +1 -0
- package/dist/showcase/assets/cards-DcdxRM9W.js +354 -0
- package/dist/showcase/assets/carousel-CTKyiHD2.js +449 -0
- package/dist/showcase/assets/cell-renderers-ouSypXTE.js +1 -0
- package/dist/showcase/assets/chart-CMsMyCah.js +358 -0
- package/dist/showcase/assets/chart-column-BrwpEFzy.js +1 -0
- package/dist/showcase/assets/checkbox-4qgEfnjv.js +1 -0
- package/dist/showcase/assets/checkbox-ratLYBAF.js +1 -0
- package/dist/showcase/assets/chevron-down-BInaIfd1.js +1 -0
- package/dist/showcase/assets/chevron-left-Bjy3FJ_M.js +1 -0
- package/dist/showcase/assets/chevron-up-Ufl6UEyV.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-CrOH-P5z.js +1 -0
- package/dist/showcase/assets/circle-G0dEx2Ay.js +1 -0
- package/dist/showcase/assets/circle-alert-CiibDCe8.js +1 -0
- package/dist/showcase/assets/circle-check-Bqm54c03.js +1 -0
- package/dist/showcase/assets/circle-check-big-BfiY_qy_.js +1 -0
- package/dist/showcase/assets/circle-dot-VNm7CEgH.js +1 -0
- package/dist/showcase/assets/circle-question-mark-mM7PKy4G.js +1 -0
- package/dist/showcase/assets/circle-x-2tzzp_vB.js +1 -0
- package/dist/showcase/assets/clock-3-CfdZnMP2.js +1 -0
- package/dist/showcase/assets/clock-ByB7C11p.js +1 -0
- package/dist/showcase/assets/code-xml-D2fN-BaU.js +1 -0
- package/dist/showcase/assets/collapsible-B2lI_uVI.js +1 -0
- package/dist/showcase/assets/collapsible-Bs5YFx-M.js +27 -0
- package/dist/showcase/assets/combobox-BqNSwFaM.js +685 -0
- package/dist/showcase/assets/command-Dcbh_YP-.js +1 -0
- package/dist/showcase/assets/command-Mb30xkwq.js +1 -0
- package/dist/showcase/assets/comment-composer-DqTw0zIM.js +1 -0
- package/dist/showcase/assets/comment-item-DbQAZ3yP.js +1 -0
- package/dist/showcase/assets/comments-CGMOOi7k.js +357 -0
- package/dist/showcase/assets/commerce-bVpLHwpS.js +267 -0
- package/dist/showcase/assets/composite-CTpmYme_.js +1 -0
- package/dist/showcase/assets/contact-card-nuS10UKK.js +65 -0
- package/dist/showcase/assets/content-container-NexBp0FV.js +1 -0
- package/dist/showcase/assets/copyable-CNltkC2A.js +1 -0
- package/dist/showcase/assets/copyable-qr6--oJx.js +96 -0
- package/dist/showcase/assets/course-card-0kkl37FX.js +77 -0
- package/dist/showcase/assets/cpu-DSD9h0l5.js +1 -0
- package/dist/showcase/assets/credit-card-CN0E6FU8.js +1 -0
- package/dist/showcase/assets/css-variables-CzmmLWxt.js +1190 -0
- package/dist/showcase/assets/currency-BtofP745.js +149 -0
- package/dist/showcase/assets/dark-surfaces-BU7kfTIi.js +90 -0
- package/dist/showcase/assets/data-view-3W7_KBli.js +124 -0
- package/dist/showcase/assets/data-view-snL5QtHe.js +4 -0
- package/dist/showcase/assets/database-BarEYzaF.js +1 -0
- package/dist/showcase/assets/date-block-dTt9Rcfd.js +1 -0
- package/dist/showcase/assets/date-picker-BKzZeQGc.js +1 -0
- package/dist/showcase/assets/date-pickers-CYERVYRo.js +73 -0
- package/dist/showcase/assets/dense-info-hnKZfRnQ.js +106 -0
- package/dist/showcase/assets/design-system-consistency-D6qngflS.js +264 -0
- package/dist/showcase/assets/dialog-mO0FpHmT.js +1 -0
- package/dist/showcase/assets/dialog-xbuhPXmf.js +1 -0
- package/dist/showcase/assets/display-utilities-C4IflxoK.js +267 -0
- package/dist/showcase/assets/dist-BFChHTWK.js +45 -0
- package/dist/showcase/assets/dist-BkVfs5PY.js +1 -0
- package/dist/showcase/assets/dollar-sign-BES-Y4q8.js +1 -0
- package/dist/showcase/assets/download-CuEg-4DT.js +1 -0
- package/dist/showcase/assets/dropdown-menu-C4Fcfk9z.js +1 -0
- package/dist/showcase/assets/dropzone-CrJ_k9fJ.js +1 -0
- package/dist/showcase/assets/earth-Cmx-Axig.js +1 -0
- package/dist/showcase/assets/ellipsis-Co7iTzp_.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-DMYJFiqQ.js +1 -0
- package/dist/showcase/assets/empty-Dw4ozyll.js +1 -0
- package/dist/showcase/assets/empty-item-DQwAsl0J.js +49 -0
- package/dist/showcase/assets/empty-state-BKvbnAy1.js +1 -0
- package/dist/showcase/assets/empty-state-Dv6f2fmP.js +190 -0
- package/dist/showcase/assets/enhanced-activities-Ctmivg46.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-D0AsPZ-b.js +1 -0
- package/dist/showcase/assets/esm-oZ6qcNoa.js +2 -0
- package/dist/showcase/assets/event-calendar-ChXdeehr.js +138 -0
- package/dist/showcase/assets/event-log-DeOCb2tT.js +330 -0
- package/dist/showcase/assets/example-CDvNeHNP.js +1 -0
- package/dist/showcase/assets/external-link-BaiCqIx3.js +1 -0
- package/dist/showcase/assets/eye-zG-fqYfd.js +1 -0
- package/dist/showcase/assets/feature-announcement-C2XGWNgI.js +34 -0
- package/dist/showcase/assets/file-sAbDfDuO.js +1 -0
- package/dist/showcase/assets/file-text-Boa9IOND.js +1 -0
- package/dist/showcase/assets/filter-layout-tZmZz-2B.js +1 -0
- package/dist/showcase/assets/filters-D8gEkDAE.js +139 -0
- package/dist/showcase/assets/flag-Cu20rcE4.js +1 -0
- package/dist/showcase/assets/folder-open-Cuk6KKLi.js +1 -0
- package/dist/showcase/assets/form-field-D8sL8tat.js +1 -0
- package/dist/showcase/assets/format-CaRklI--.js +1 -0
- package/dist/showcase/assets/forms-CNk2oX65.js +915 -0
- package/dist/showcase/assets/funnel-B2kBprKZ.js +1 -0
- package/dist/showcase/assets/generic-oWYKMvId.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-GjucWEcD.js +1 -0
- package/dist/showcase/assets/gift-C_D_-5GL.js +1 -0
- package/dist/showcase/assets/giftcard-cards-B4DDGzdi.js +85 -0
- package/dist/showcase/assets/git-branch-DlTTLnjW.js +1 -0
- package/dist/showcase/assets/global-search-BjHAfaqS.js +215 -0
- package/dist/showcase/assets/global-search-hKQWHfrf.js +1 -0
- package/dist/showcase/assets/globe-D-gH7XQ2.js +1 -0
- package/dist/showcase/assets/gradient-card-jVxEisUP.js +58 -0
- package/dist/showcase/assets/hash-DySqEhph.js +1 -0
- package/dist/showcase/assets/header-B8hHkAVl.js +1 -0
- package/dist/showcase/assets/header-notifications-s180jNb1.js +1 -0
- package/dist/showcase/assets/heart-DDFCk8Tb.js +1 -0
- package/dist/showcase/assets/hooks-0A_FzYrt.js +220 -0
- package/dist/showcase/assets/house-BqE1X-Wf.js +1 -0
- package/dist/showcase/assets/icon-badge-CyiMjD7j.js +37 -0
- package/dist/showcase/assets/icon-badge-fJVhEHym.js +1 -0
- package/dist/showcase/assets/image-DCtwKHqe.js +1 -0
- package/dist/showcase/assets/inbox-DZA-pAGB.js +1 -0
- package/dist/showcase/assets/index-B37z19z3.js +10 -0
- package/dist/showcase/assets/index-CIsKgiSF.css +2 -0
- package/dist/showcase/assets/inertValue-SPYMBsOM.js +1 -0
- package/dist/showcase/assets/info-DrfDr3GT.js +1 -0
- package/dist/showcase/assets/inline-stat-BVJNx4xR.js +1 -0
- package/dist/showcase/assets/inline-stat-C3cWbSUK.js +15 -0
- package/dist/showcase/assets/input-CKTTGrnR.js +1 -0
- package/dist/showcase/assets/input-UHuWYPMF.js +1 -0
- package/dist/showcase/assets/input-group-BR_lU__a.js +1 -0
- package/dist/showcase/assets/input-group-iZaLbsTP.js +47 -0
- package/dist/showcase/assets/inputs-C7j8Xivm.js +155 -0
- package/dist/showcase/assets/installation-DYnTwaPR.js +134 -0
- package/dist/showcase/assets/invoice-header-D_0KvXQe.js +36 -0
- package/dist/showcase/assets/invoice-items-jcNb-sST.js +36 -0
- package/dist/showcase/assets/invoice-mini-DrZAbjPq.js +14 -0
- package/dist/showcase/assets/invoice-table-DlAw0U4U.js +30 -0
- package/dist/showcase/assets/isSameDay-Cl6v_syG.js +1 -0
- package/dist/showcase/assets/isToday-BBoFjSnJ.js +1 -0
- package/dist/showcase/assets/italic-j2U8krYa.js +1 -0
- package/dist/showcase/assets/item-B2WoC1SD.js +139 -0
- package/dist/showcase/assets/item-BMJ5hfT5.js +1 -0
- package/dist/showcase/assets/item-C_5-EHNK.js +1 -0
- package/dist/showcase/assets/kanban-Cv64Szxq.js +188 -0
- package/dist/showcase/assets/key-round-CORDYqE2.js +1 -0
- package/dist/showcase/assets/label-B0UjYqfw.js +1 -0
- package/dist/showcase/assets/languages-Njdo5y8i.js +1 -0
- package/dist/showcase/assets/layers-Dyew-8IP.js +1 -0
- package/dist/showcase/assets/layout-app-shell-DEZt0d84.js +608 -0
- package/dist/showcase/assets/layout-auth-BT84haSd.js +790 -0
- package/dist/showcase/assets/layout-containers-D6SP4vRB.js +101 -0
- package/dist/showcase/assets/layout-header-kLYjJnHz.js +203 -0
- package/dist/showcase/assets/layout-page-CmS4d8jw.js +314 -0
- package/dist/showcase/assets/layout-primitives-BW858Ymj.js +34 -0
- package/dist/showcase/assets/layout-sidebar-eIDEoyzV.js +224 -0
- package/dist/showcase/assets/layout-users-HyZHQIov.js +117 -0
- package/dist/showcase/assets/layout-workspace-BrDwVUvn.js +191 -0
- package/dist/showcase/assets/lib-Dhty05ZR.js +1 -0
- package/dist/showcase/assets/list-checks-CcWjdDq8.js +1 -0
- package/dist/showcase/assets/lock-CwH3bXx5.js +1 -0
- package/dist/showcase/assets/lock-keyhole-BdBxeIkW.js +1 -0
- package/dist/showcase/assets/mail-Cn94c8yp.js +1 -0
- package/dist/showcase/assets/mail-check-D-q_vPxD.js +1 -0
- package/dist/showcase/assets/map-BfUZMScw.js +124 -0
- package/dist/showcase/assets/map-pin-BZB9GUXP.js +1 -0
- package/dist/showcase/assets/media-library-DguE2q94.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-CyGplHOl.js +1 -0
- package/dist/showcase/assets/mentions-lmr_XmfN.js +138 -0
- package/dist/showcase/assets/menus-D0qYbzKk.js +171 -0
- package/dist/showcase/assets/message-square-7VpiUwcS.js +1 -0
- package/dist/showcase/assets/metadata-list-B8O2ljIS.js +1 -0
- package/dist/showcase/assets/metadata-list-BcYg9Ru3.js +286 -0
- package/dist/showcase/assets/metric-HzQnjCpO.js +1 -0
- package/dist/showcase/assets/metric-bar-Fr1TDnSu.js +1 -0
- package/dist/showcase/assets/metric-grid-CM-P894v.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-DqYH_U8e.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-DKRLzyXq.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-qMbAYBbk.js +50 -0
- package/dist/showcase/assets/metrics-comparison-GSWVebL_.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-Fj5QZoO3.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-BuyhiYDl.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-xNn4bjZc.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-W_ZYCffp.js +42 -0
- package/dist/showcase/assets/metrics-overview-D-km110k.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-odVtufFY.js +54 -0
- package/dist/showcase/assets/minus-DZsXg5PW.js +1 -0
- package/dist/showcase/assets/money-display-C7Hp2pT3.js +1 -0
- package/dist/showcase/assets/month-year-picker-Dnr4J0mO.js +1 -0
- package/dist/showcase/assets/navigation-0nrtBP5O.js +90 -0
- package/dist/showcase/assets/navigation-BaWNq9oa.js +231 -0
- package/dist/showcase/assets/navigation-extras-B22W1Vkk.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-BFj7rmdZ.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-D_rltswa.js +1 -0
- package/dist/showcase/assets/overlays-CNfiB-zF.js +408 -0
- package/dist/showcase/assets/overlays-CuxuFGC8.js +159 -0
- package/dist/showcase/assets/overview-CBmdAWO6.js +184 -0
- package/dist/showcase/assets/package-BwwfLMWb.js +1 -0
- package/dist/showcase/assets/package-check-BepTKJLy.js +1 -0
- package/dist/showcase/assets/page-_JDFUWqe.js +1 -0
- package/dist/showcase/assets/page-action-button-Cf34I-B2.js +1 -0
- package/dist/showcase/assets/page-header-pdHFvyTo.js +1 -0
- package/dist/showcase/assets/pagination-Db1WJvjK.js +42 -0
- package/dist/showcase/assets/pagination-s8_MGk9D.js +1 -0
- package/dist/showcase/assets/paperclip-B9HQ47_2.js +1 -0
- package/dist/showcase/assets/password-input-D-eZWMGX.js +1 -0
- package/dist/showcase/assets/pencil-Dm53P6Db.js +1 -0
- package/dist/showcase/assets/phone-a4Ja9xAp.js +1 -0
- package/dist/showcase/assets/plus-DbOlx2x0.js +1 -0
- package/dist/showcase/assets/popover-B8qrRgt3.js +1 -0
- package/dist/showcase/assets/popover-Bm5wETUP.js +1 -0
- package/dist/showcase/assets/popover-menu-EH4P-BuI.js +1 -0
- package/dist/showcase/assets/products-n6VBSMDh.js +423 -0
- package/dist/showcase/assets/progress-D9r6PSCF.js +1 -0
- package/dist/showcase/assets/progress-DVnMcpeq.js +18 -0
- package/dist/showcase/assets/props-table-udnF7Z46.js +1 -0
- package/dist/showcase/assets/quote-qVQF4JC7.js +1 -0
- package/dist/showcase/assets/receipt-DaC4l-Mr.js +1 -0
- package/dist/showcase/assets/receipt-text-BnwhWHdU.js +1 -0
- package/dist/showcase/assets/refinement-guide-zBbAE-vw.js +189 -0
- package/dist/showcase/assets/refresh-cw-CX6ghqEe.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-Cjbd_80A.js +1 -0
- package/dist/showcase/assets/resource-D1fXD_Pt.js +139 -0
- package/dist/showcase/assets/resource-i2YV9aHL.js +1 -0
- package/dist/showcase/assets/resource-selector-card-CdQEPr9U.js +43 -0
- package/dist/showcase/assets/rich-text-editor-DJ2i03XV.js +143 -0
- package/dist/showcase/assets/rich-text-editor-Wh8r117d.js +124 -0
- package/dist/showcase/assets/rotate-ccw-2_FhUcdG.js +1 -0
- package/dist/showcase/assets/route-EGSdKgEp.js +1 -0
- package/dist/showcase/assets/save-nXKvyYEx.js +1 -0
- package/dist/showcase/assets/schema-form-D_9UkVBe.js +327 -0
- package/dist/showcase/assets/scroll-area-CB7X4JqZ.js +1 -0
- package/dist/showcase/assets/scroll-area-DCHN9iYj.js +32 -0
- package/dist/showcase/assets/section-C2ovQgbv.js +1 -0
- package/dist/showcase/assets/select-BTOraQSw.js +1 -0
- package/dist/showcase/assets/select-CE0BbUs7.js +1 -0
- package/dist/showcase/assets/send-CI0r12bX.js +1 -0
- package/dist/showcase/assets/separator-CmGfh7lI.js +1 -0
- package/dist/showcase/assets/separator-PhQTNRIB.js +28 -0
- package/dist/showcase/assets/settings-2-qkVb0lyz.js +1 -0
- package/dist/showcase/assets/settings-YXjlZ9zs.js +1 -0
- package/dist/showcase/assets/sheet-CFDUB2H1.js +1 -0
- package/dist/showcase/assets/shield-Dr_UeG6H.js +1 -0
- package/dist/showcase/assets/shield-alert-7rAVXg-K.js +1 -0
- package/dist/showcase/assets/shield-check-BbzHL-nM.js +1 -0
- package/dist/showcase/assets/shopping-bag-DeprN0fB.js +1 -0
- package/dist/showcase/assets/showcase-BU6Fvpg_.js +132 -0
- package/dist/showcase/assets/sidebar-CudnhnWN.js +1 -0
- package/dist/showcase/assets/sidebar.context-CZaDhRhh.js +1 -0
- package/dist/showcase/assets/skeleton-DD6VPVrv.js +1 -0
- package/dist/showcase/assets/skeleton-Dc5LvW7E.js +29 -0
- package/dist/showcase/assets/slider-BxvP9nxk.js +1 -0
- package/dist/showcase/assets/smart-card-B0Llbpiy.js +1 -0
- package/dist/showcase/assets/sonner-mszFoDWT.js +22 -0
- package/dist/showcase/assets/sortable.esm-J5bJPtH9.js +5 -0
- package/dist/showcase/assets/sparkles-CQSdl3Gw.js +1 -0
- package/dist/showcase/assets/spinner-BSxBn2qs.js +49 -0
- package/dist/showcase/assets/spinner-DJxoGJtq.js +30 -0
- package/dist/showcase/assets/spinner-DihTCcve.js +1 -0
- package/dist/showcase/assets/square-pen-CGMSA_p6.js +1 -0
- package/dist/showcase/assets/stacked-avatars-Ct8B4doW.js +1 -0
- package/dist/showcase/assets/star-DFlmmJdh.js +1 -0
- package/dist/showcase/assets/startOfDay-BedffeNt.js +1 -0
- package/dist/showcase/assets/styles-jR6uS97D.js +1 -0
- package/dist/showcase/assets/suggestions-DnjJ-U9n.js +126 -0
- package/dist/showcase/assets/switch-Dkojf4Yd.js +1 -0
- package/dist/showcase/assets/switch-bTb6CSLr.js +1 -0
- package/dist/showcase/assets/sync-rk8eFwoJ.js +124 -0
- package/dist/showcase/assets/table-4qIerTVI.js +686 -0
- package/dist/showcase/assets/table-BjMmmYd7.js +1 -0
- package/dist/showcase/assets/table-actions-DqofOI1V.js +1 -0
- package/dist/showcase/assets/tabs-BV6mMsfk.js +19 -0
- package/dist/showcase/assets/tabs-u2fkHRw8.js +1 -0
- package/dist/showcase/assets/tags-input-Cu_UwlwT.js +1 -0
- package/dist/showcase/assets/text-button-Fyy21evq.js +1 -0
- package/dist/showcase/assets/text-link-WRyY3ZZo.js +1 -0
- package/dist/showcase/assets/textarea-BbCxWNzV.js +1 -0
- package/dist/showcase/assets/textarea-CtD7JQsv.js +1 -0
- package/dist/showcase/assets/timelines-BBPQpCFX.js +200 -0
- package/dist/showcase/assets/toggle-group-B8mQ6wer.js +1 -0
- package/dist/showcase/assets/toggles-CCClWVXZ.js +71 -0
- package/dist/showcase/assets/toggles-group-DgCilPMo.js +32 -0
- package/dist/showcase/assets/tooltip-ClJCWWTI.js +31 -0
- package/dist/showcase/assets/trash-2-Cs7y4-K-.js +1 -0
- package/dist/showcase/assets/trending-up-spYhMxs6.js +1 -0
- package/dist/showcase/assets/truck-DENWgqxK.js +1 -0
- package/dist/showcase/assets/typography-DMmYNFQj.js +223 -0
- package/dist/showcase/assets/ui-badge-BJEtsa7X.js +28 -0
- package/dist/showcase/assets/ui-card-CrPKoi3P.js +30 -0
- package/dist/showcase/assets/ui-table-2HhDwPcu.js +42 -0
- package/dist/showcase/assets/upload-tray-CUZAErkI.js +138 -0
- package/dist/showcase/assets/use-layout-link-Co3GiFmb.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DgIA0IXg.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-CDdoyQgg.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-BT0RSjGM.js +1 -0
- package/dist/showcase/assets/useCompositeItem-DFghnuRZ.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-vXyRoJ2x.js +1 -0
- package/dist/showcase/assets/useLabelableId-D__l5sQX.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-bZIaLWfE.js +1 -0
- package/dist/showcase/assets/useRender-BV0akLbc.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-dYriJrQP.js +1 -0
- package/dist/showcase/assets/useValueChanged-Dg0AWST0.js +1 -0
- package/dist/showcase/assets/user-B9eCi5Vl.js +1 -0
- package/dist/showcase/assets/user-plus-Uo4IAY7e.js +1 -0
- package/dist/showcase/assets/users-DLep-WjV.js +1 -0
- package/dist/showcase/assets/vendor-profile-BbcE51Pa.js +37 -0
- package/dist/showcase/assets/video-BasdlaQE.js +1 -0
- package/dist/showcase/assets/wrench-BYUVe1-z.js +1 -0
- package/dist/showcase/assets/x-Bx9ayVXr.js +1 -0
- package/dist/showcase/assets/zap-Mgu5HEtF.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/_shared/auth-B_KVUjsB.cjs +0 -2
- package/dist/_shared/auth-B_KVUjsB.cjs.map +0 -1
- package/dist/_shared/auth-C_TgyzDl.js +0 -643
- package/dist/_shared/auth-C_TgyzDl.js.map +0 -1
- package/dist/_shared/buttons-C8jy-jMd.cjs +0 -2
- package/dist/_shared/buttons-C8jy-jMd.cjs.map +0 -1
- package/dist/_shared/buttons-MxvdokeK.js +0 -137
- package/dist/_shared/buttons-MxvdokeK.js.map +0 -1
- package/dist/_shared/cards-BKFwMTjM.cjs +0 -2
- package/dist/_shared/cards-BKFwMTjM.cjs.map +0 -1
- package/dist/_shared/cards-CtBoSZG9.js +0 -355
- package/dist/_shared/cards-CtBoSZG9.js.map +0 -1
- package/dist/_shared/comments-C8iXy9XO.cjs +0 -2
- package/dist/_shared/comments-C8iXy9XO.cjs.map +0 -1
- package/dist/_shared/comments-DGBxF9fD.js +0 -952
- package/dist/_shared/comments-DGBxF9fD.js.map +0 -1
- package/dist/_shared/containers-D7oZE4XI.cjs +0 -2
- package/dist/_shared/containers-D7oZE4XI.cjs.map +0 -1
- package/dist/_shared/containers-anBivbL9.js +0 -19
- package/dist/_shared/containers-anBivbL9.js.map +0 -1
- package/dist/_shared/content-container-CVUJCLhn.cjs +0 -2
- package/dist/_shared/content-container-CVUJCLhn.cjs.map +0 -1
- package/dist/_shared/content-container-Dv8XsAw4.js +0 -33
- package/dist/_shared/content-container-Dv8XsAw4.js.map +0 -1
- package/dist/_shared/data-display-CRFaMkxT.js +0 -1873
- package/dist/_shared/data-display-CRFaMkxT.js.map +0 -1
- package/dist/_shared/data-display-C_44_V-W.cjs +0 -2
- package/dist/_shared/data-display-C_44_V-W.cjs.map +0 -1
- package/dist/_shared/forms-qnwoUqxf.js +0 -3533
- package/dist/_shared/forms-qnwoUqxf.js.map +0 -1
- package/dist/_shared/forms-rmKcy5uO.cjs +0 -2
- package/dist/_shared/forms-rmKcy5uO.cjs.map +0 -1
- package/dist/_shared/header-CxhEtk9M.cjs +0 -2
- package/dist/_shared/header-CxhEtk9M.cjs.map +0 -1
- package/dist/_shared/header-h3f14vQx.js +0 -447
- package/dist/_shared/header-h3f14vQx.js.map +0 -1
- package/dist/_shared/hooks-CS55-w3h.js +0 -95
- package/dist/_shared/hooks-CS55-w3h.js.map +0 -1
- package/dist/_shared/hooks-sfHAyDgD.cjs +0 -2
- package/dist/_shared/hooks-sfHAyDgD.cjs.map +0 -1
- package/dist/_shared/layout.types-CYuDZ_4h.cjs +0 -2
- package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +0 -1
- package/dist/_shared/layout.types-j7zZAPtg.js +0 -28
- package/dist/_shared/layout.types-j7zZAPtg.js.map +0 -1
- package/dist/_shared/page-C6EzwvTz.cjs +0 -2
- package/dist/_shared/page-C6EzwvTz.cjs.map +0 -1
- package/dist/_shared/page-DCW1eWCJ.js +0 -262
- package/dist/_shared/page-DCW1eWCJ.js.map +0 -1
- package/dist/_shared/settings-DbAyxMrX.cjs +0 -2
- package/dist/_shared/settings-DbAyxMrX.cjs.map +0 -1
- package/dist/_shared/settings-QOBrbgdN.js +0 -143
- package/dist/_shared/settings-QOBrbgdN.js.map +0 -1
- package/dist/_shared/sidebar-DfToCaiC.cjs +0 -2
- package/dist/_shared/sidebar-DfToCaiC.cjs.map +0 -1
- package/dist/_shared/sidebar-DhpRdTZH.js +0 -541
- package/dist/_shared/sidebar-DhpRdTZH.js.map +0 -1
- package/dist/_shared/table-CUA_A-oO.js +0 -1377
- package/dist/_shared/table-CUA_A-oO.js.map +0 -1
- package/dist/_shared/table-mPchjiRn.cjs +0 -2
- package/dist/_shared/table-mPchjiRn.cjs.map +0 -1
- package/dist/_shared/workspace-BgtWS9fA.cjs +0 -2
- package/dist/_shared/workspace-BgtWS9fA.cjs.map +0 -1
- package/dist/_shared/workspace-D2jJ0PlS.js +0 -357
- package/dist/_shared/workspace-D2jJ0PlS.js.map +0 -1
- package/dist/showcase/assets/AreaChart-CFYg5vW0.js +0 -6
- package/dist/showcase/assets/CompositeItem-C1v8tfgt.js +0 -1
- package/dist/showcase/assets/CompositeRoot-DVtTCBlx.js +0 -1
- package/dist/showcase/assets/DialogTrigger-CiVZgbZe.js +0 -1
- package/dist/showcase/assets/LabelableContext-CNcXHqnK.js +0 -1
- package/dist/showcase/assets/PreviewLayout-CBTybzKu.js +0 -1
- package/dist/showcase/assets/RadioGroup-DTNAD-0J.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-Gau2B-d1.js +0 -1
- package/dist/showcase/assets/Separator-DOIh4aar.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BbugmthZ.js +0 -1
- package/dist/showcase/assets/accordion-CB4ePZYm.js +0 -171
- package/dist/showcase/assets/accordion-variants-De2q5GIH.js +0 -1
- package/dist/showcase/assets/action-menu-wJVcvfmC.js +0 -1
- package/dist/showcase/assets/actions-BL1lpPFC.js +0 -310
- package/dist/showcase/assets/activities-C578ZINa.js +0 -500
- package/dist/showcase/assets/activities-feed-card-BeXMgsNO.js +0 -1
- package/dist/showcase/assets/admin-DKJPb23G.js +0 -140
- package/dist/showcase/assets/ai-artifact-BaYtjrP5.js +0 -2
- package/dist/showcase/assets/ai-chat-DxxlaytU.js +0 -568
- package/dist/showcase/assets/ai-elements-BWraZPyC.js +0 -387
- package/dist/showcase/assets/ai-ewP8qLOJ.js +0 -207
- package/dist/showcase/assets/ai-tool-call-Da4srLLe.js +0 -1
- package/dist/showcase/assets/alert-CQI2pomK.js +0 -1
- package/dist/showcase/assets/alert-S12iMEhF.js +0 -62
- package/dist/showcase/assets/alert-xINZmLgm.js +0 -93
- package/dist/showcase/assets/api-key-list-CL6je8dF.js +0 -1
- package/dist/showcase/assets/api-key-list-wxmuRN1m.js +0 -73
- package/dist/showcase/assets/app-sidebar-LVtcgiT_.js +0 -1
- package/dist/showcase/assets/arrow-down-JuqwH6gj.js +0 -1
- package/dist/showcase/assets/arrow-left-BFq65-Ch.js +0 -1
- package/dist/showcase/assets/arrow-right-B4iFg3l1.js +0 -1
- package/dist/showcase/assets/arrow-up-RWJP_FHU.js +0 -1
- package/dist/showcase/assets/arrow-up-right-DdWl37XF.js +0 -1
- package/dist/showcase/assets/avatar-BEvs3dD_.js +0 -1
- package/dist/showcase/assets/avatar-Bv9x1eBh.js +0 -67
- package/dist/showcase/assets/avatar-CC3R0R-x.js +0 -57
- package/dist/showcase/assets/avatar-D29-FL5U.js +0 -1
- package/dist/showcase/assets/badge-B1YIk7bi.js +0 -31
- package/dist/showcase/assets/badge-check-DGmg0_g_.js +0 -1
- package/dist/showcase/assets/bell-Cq9n0a2v.js +0 -1
- package/dist/showcase/assets/bot-DxRjlJlO.js +0 -1
- package/dist/showcase/assets/box-CIh-_2DI.js +0 -1
- package/dist/showcase/assets/braces-BI_smuFG.js +0 -1
- package/dist/showcase/assets/brain-BCAmDdGT.js +0 -1
- package/dist/showcase/assets/brand-CYmrK-FI.js +0 -36
- package/dist/showcase/assets/breadcrumb-DXOwTQNp.js +0 -52
- package/dist/showcase/assets/breadcrumb-DdDGc08y.js +0 -1
- package/dist/showcase/assets/breadcrumbs-SwqzwYW_.js +0 -1
- package/dist/showcase/assets/briefcase-CKrv_pkI.js +0 -1
- package/dist/showcase/assets/building-2-4f1nNGpT.js +0 -1
- package/dist/showcase/assets/button-B9I1TrfQ.js +0 -44
- package/dist/showcase/assets/button-group-DUfRVZy2.js +0 -1
- package/dist/showcase/assets/buttons-Crl8nJKG.js +0 -272
- package/dist/showcase/assets/calendar-4Uqeswbn.js +0 -1
- package/dist/showcase/assets/calendar-Cl5l4Ip1.js +0 -16
- package/dist/showcase/assets/calendar-DxjW_eNc.js +0 -1
- package/dist/showcase/assets/calendar-days-DmDuaOAc.js +0 -1
- package/dist/showcase/assets/camera-j8dT39qf.js +0 -1
- package/dist/showcase/assets/card-BQ_zBZlQ.js +0 -1
- package/dist/showcase/assets/card-DRalKV4i.js +0 -188
- package/dist/showcase/assets/card-primitives-Bn6nhqUA.js +0 -1
- package/dist/showcase/assets/card-radio-group-Dq7AUPTp.js +0 -1
- package/dist/showcase/assets/cards-MR2JolOy.js +0 -354
- package/dist/showcase/assets/carousel-DMceNGDq.js +0 -449
- package/dist/showcase/assets/cell-renderers-VbI9xEAd.js +0 -1
- package/dist/showcase/assets/chart-DW4naldz.js +0 -358
- package/dist/showcase/assets/chart-column-CbUwWFn7.js +0 -1
- package/dist/showcase/assets/checkbox-BJ1yDAQ3.js +0 -1
- package/dist/showcase/assets/checkbox-BqwbtGCF.js +0 -1
- package/dist/showcase/assets/chevron-down-CBa5t2E0.js +0 -1
- package/dist/showcase/assets/chevron-left-Dqne-r3m.js +0 -1
- package/dist/showcase/assets/chevron-up-DiMFydbr.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-umMKLBIL.js +0 -1
- package/dist/showcase/assets/circle-alert-BObXfzSP.js +0 -1
- package/dist/showcase/assets/circle-check-BPhdxh7K.js +0 -1
- package/dist/showcase/assets/circle-check-big-BsQpd0CS.js +0 -1
- package/dist/showcase/assets/circle-dbSBYjvr.js +0 -1
- package/dist/showcase/assets/circle-dot-Bj1an-fp.js +0 -1
- package/dist/showcase/assets/circle-question-mark-BeRdyU_C.js +0 -1
- package/dist/showcase/assets/circle-x-Dh3sb4UC.js +0 -1
- package/dist/showcase/assets/clock-3-R65SwQwa.js +0 -1
- package/dist/showcase/assets/clock-BApGqXwn.js +0 -1
- package/dist/showcase/assets/code-xml-q7JPxij0.js +0 -1
- package/dist/showcase/assets/collapsible-BbiGHywy.js +0 -27
- package/dist/showcase/assets/collapsible-DDV7VHy5.js +0 -1
- package/dist/showcase/assets/combobox-Dv_OkynR.js +0 -685
- package/dist/showcase/assets/command-BSmiujfZ.js +0 -1
- package/dist/showcase/assets/command-Cw81GF7c.js +0 -1
- package/dist/showcase/assets/comment-composer-C09JANlW.js +0 -1
- package/dist/showcase/assets/comment-item-DsQshj1L.js +0 -1
- package/dist/showcase/assets/comments-CO3QCKyX.js +0 -357
- package/dist/showcase/assets/commerce-BvnnX8Ui.js +0 -267
- package/dist/showcase/assets/composite-BjZbcKJw.js +0 -1
- package/dist/showcase/assets/contact-card-Dq50G6UK.js +0 -65
- package/dist/showcase/assets/content-container-BQZdQhX2.js +0 -1
- package/dist/showcase/assets/copyable-BdfWxV6u.js +0 -1
- package/dist/showcase/assets/copyable-lUNYfscm.js +0 -96
- package/dist/showcase/assets/course-card-BTIFY84q.js +0 -77
- package/dist/showcase/assets/cpu-CzkgJ-zb.js +0 -1
- package/dist/showcase/assets/credit-card-D_wnXbTK.js +0 -1
- package/dist/showcase/assets/css-variables-BVjcOHGr.js +0 -1190
- package/dist/showcase/assets/currency-BCX6yQ2j.js +0 -149
- package/dist/showcase/assets/dark-surfaces-BO6sWHrV.js +0 -90
- package/dist/showcase/assets/data-view-C8ThO9ha.js +0 -124
- package/dist/showcase/assets/data-view-DqpNNGp5.js +0 -4
- package/dist/showcase/assets/database-Ad0l2Bjl.js +0 -1
- package/dist/showcase/assets/date-block-CMKpiRdA.js +0 -1
- package/dist/showcase/assets/date-picker-CRogiefV.js +0 -1
- package/dist/showcase/assets/date-pickers-CuRRGP-F.js +0 -73
- package/dist/showcase/assets/dense-info-BL_cGFVK.js +0 -106
- package/dist/showcase/assets/design-system-consistency-BarrI2Uj.js +0 -264
- package/dist/showcase/assets/dialog-BEKecyE3.js +0 -1
- package/dist/showcase/assets/dialog-DbEG3v2T.js +0 -1
- package/dist/showcase/assets/display-utilities-CQRcCpjT.js +0 -267
- package/dist/showcase/assets/dist-CS2Ky1_m.js +0 -1
- package/dist/showcase/assets/dist-q3PLGr1_.js +0 -45
- package/dist/showcase/assets/dollar-sign-lghPxE96.js +0 -1
- package/dist/showcase/assets/download-Cx5kUzHm.js +0 -1
- package/dist/showcase/assets/dropdown-menu-CXYQqRJA.js +0 -1
- package/dist/showcase/assets/dropzone-DK0kBLfC.js +0 -1
- package/dist/showcase/assets/earth-BgJkqIAs.js +0 -1
- package/dist/showcase/assets/ellipsis-CP0hyAeS.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-BdpRiDbb.js +0 -1
- package/dist/showcase/assets/empty-CO_e2e_g.js +0 -1
- package/dist/showcase/assets/empty-item-D39AT9RK.js +0 -49
- package/dist/showcase/assets/empty-state-CTQjlkxC.js +0 -1
- package/dist/showcase/assets/empty-state-Luba-tbF.js +0 -190
- package/dist/showcase/assets/enhanced-activities-e2k5R4sk.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-CY9QcVEl.js +0 -1
- package/dist/showcase/assets/esm-DPz8A4Wl.js +0 -2
- package/dist/showcase/assets/event-calendar-DuQntfyO.js +0 -138
- package/dist/showcase/assets/event-log-B8B_0-q5.js +0 -330
- package/dist/showcase/assets/example-Rrx9vj75.js +0 -1
- package/dist/showcase/assets/external-link-BkCjE03j.js +0 -1
- package/dist/showcase/assets/eye-BKhfxIeD.js +0 -1
- package/dist/showcase/assets/feature-announcement-CRN6kk4B.js +0 -34
- package/dist/showcase/assets/file-BBUnjRPN.js +0 -1
- package/dist/showcase/assets/file-text-Clv0qFr3.js +0 -1
- package/dist/showcase/assets/filter-layout-Bskvgeps.js +0 -1
- package/dist/showcase/assets/filters-DqE5xQEz.js +0 -139
- package/dist/showcase/assets/flag-BQ0Brbw9.js +0 -1
- package/dist/showcase/assets/folder-open-CuUaUrxa.js +0 -1
- package/dist/showcase/assets/form-field-Dg_Az7lk.js +0 -1
- package/dist/showcase/assets/format-BnF8gL8z.js +0 -1
- package/dist/showcase/assets/forms-D2SGtkKv.js +0 -915
- package/dist/showcase/assets/funnel-qCC9cfXa.js +0 -1
- package/dist/showcase/assets/generic-0wwhvFWa.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-DyTpOaBA.js +0 -1
- package/dist/showcase/assets/gift-ibO6X3CO.js +0 -1
- package/dist/showcase/assets/giftcard-cards-BJ0gmgv0.js +0 -85
- package/dist/showcase/assets/git-branch-QLvR3_wX.js +0 -1
- package/dist/showcase/assets/global-search-B2zvjiO2.js +0 -215
- package/dist/showcase/assets/global-search-BtYqFKyN.js +0 -1
- package/dist/showcase/assets/globe-Byoz7QmA.js +0 -1
- package/dist/showcase/assets/gradient-card-CymI8itB.js +0 -58
- package/dist/showcase/assets/hash-DL-sHZny.js +0 -1
- package/dist/showcase/assets/header-C9RMgEgD.js +0 -1
- package/dist/showcase/assets/header-notifications-BT643QVK.js +0 -1
- package/dist/showcase/assets/heart-gHsYuS4V.js +0 -1
- package/dist/showcase/assets/hooks-Dj4gswMj.js +0 -220
- package/dist/showcase/assets/house-Dew9jimg.js +0 -1
- package/dist/showcase/assets/icon-badge-C-mGQdGQ.js +0 -37
- package/dist/showcase/assets/icon-badge-GMIN-bca.js +0 -1
- package/dist/showcase/assets/image-Cda8layy.js +0 -1
- package/dist/showcase/assets/inbox-hJEV8TEx.js +0 -1
- package/dist/showcase/assets/index-CCxHwV7T.css +0 -2
- package/dist/showcase/assets/index-o71HAmc3.js +0 -10
- package/dist/showcase/assets/inertValue-BRyHstYf.js +0 -1
- package/dist/showcase/assets/info-B4aULRpz.js +0 -1
- package/dist/showcase/assets/inline-stat-BzXB3FNC.js +0 -15
- package/dist/showcase/assets/inline-stat-CDQocPgN.js +0 -1
- package/dist/showcase/assets/input-CLysAarX.js +0 -1
- package/dist/showcase/assets/input-CYTQ9nWN.js +0 -1
- package/dist/showcase/assets/input-group-DYMTMed1.js +0 -47
- package/dist/showcase/assets/input-group-DtkAnPaQ.js +0 -1
- package/dist/showcase/assets/inputs-C2flJn12.js +0 -155
- package/dist/showcase/assets/installation-CCvBKDNO.js +0 -134
- package/dist/showcase/assets/invoice-header-C1G_aVIm.js +0 -36
- package/dist/showcase/assets/invoice-items-Ak0CMjDh.js +0 -36
- package/dist/showcase/assets/invoice-mini-B7Dda49y.js +0 -14
- package/dist/showcase/assets/invoice-table-Bl9InDl0.js +0 -30
- package/dist/showcase/assets/isSameDay-Bd_8WAf0.js +0 -1
- package/dist/showcase/assets/isToday-DSGtoEUa.js +0 -1
- package/dist/showcase/assets/italic-CJzEjX5j.js +0 -1
- package/dist/showcase/assets/item-BL_Y_0ou.js +0 -139
- package/dist/showcase/assets/item-Oe2aHuvr.js +0 -1
- package/dist/showcase/assets/item-nf1zOtF7.js +0 -1
- package/dist/showcase/assets/kanban-CB5Hghoo.js +0 -188
- package/dist/showcase/assets/key-round-BQwcojkz.js +0 -1
- package/dist/showcase/assets/label-HtkE4eII.js +0 -1
- package/dist/showcase/assets/languages-69N5-h2e.js +0 -1
- package/dist/showcase/assets/layers-CBPYgoAb.js +0 -1
- package/dist/showcase/assets/layout-app-shell-BfNh8jd0.js +0 -608
- package/dist/showcase/assets/layout-auth-Ct29XkSH.js +0 -790
- package/dist/showcase/assets/layout-containers-DWN4xKbf.js +0 -101
- package/dist/showcase/assets/layout-header-DUX4zFrH.js +0 -203
- package/dist/showcase/assets/layout-page-CsqULW71.js +0 -314
- package/dist/showcase/assets/layout-primitives-CQJ0_wTo.js +0 -34
- package/dist/showcase/assets/layout-sidebar-la-tC4xZ.js +0 -224
- package/dist/showcase/assets/layout-users-6fAYxZ3Z.js +0 -117
- package/dist/showcase/assets/layout-workspace-BbDOjmrE.js +0 -191
- package/dist/showcase/assets/lib-C46V0Rr-.js +0 -1
- package/dist/showcase/assets/list-checks-BkQYzehf.js +0 -1
- package/dist/showcase/assets/lock-CMrS2EKU.js +0 -1
- package/dist/showcase/assets/lock-keyhole-B1BEkNvm.js +0 -1
- package/dist/showcase/assets/mail-Bo_4xDQw.js +0 -1
- package/dist/showcase/assets/mail-check-BprACMug.js +0 -1
- package/dist/showcase/assets/map-Br-xZYf0.js +0 -124
- package/dist/showcase/assets/map-pin-COrIVMWa.js +0 -1
- package/dist/showcase/assets/media-library-DyPu-kR9.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-BTunE4RJ.js +0 -1
- package/dist/showcase/assets/mentions-BXSq2eCS.js +0 -138
- package/dist/showcase/assets/menus-USrp5qP5.js +0 -171
- package/dist/showcase/assets/message-square-Cyrr-QgJ.js +0 -1
- package/dist/showcase/assets/metadata-list-BJTye3J8.js +0 -286
- package/dist/showcase/assets/metadata-list-CoRYXjEw.js +0 -1
- package/dist/showcase/assets/metric-DdC_pWnF.js +0 -1
- package/dist/showcase/assets/metric-bar-PGG8KQS0.js +0 -1
- package/dist/showcase/assets/metric-grid-ZqDufV_5.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-BhCRReMp.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-U3gehGfQ.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-CzbLGAWi.js +0 -50
- package/dist/showcase/assets/metrics-comparison-B1z3nUpo.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-DZeqRxFz.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-CPyhCHXj.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-COVuNReW.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-BNSrw6sM.js +0 -42
- package/dist/showcase/assets/metrics-overview-3IHComMd.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-6Owbjvmc.js +0 -54
- package/dist/showcase/assets/minus-CwzskYaZ.js +0 -1
- package/dist/showcase/assets/money-display-CUkeS9k1.js +0 -1
- package/dist/showcase/assets/month-year-picker-CCCTmZHv.js +0 -1
- package/dist/showcase/assets/navigation-BUReVn4R.js +0 -231
- package/dist/showcase/assets/navigation-CSzYKdcR.js +0 -90
- package/dist/showcase/assets/navigation-extras-DmUhDPMz.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-C3JhV5Gb.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-CEdrls-W.js +0 -1
- package/dist/showcase/assets/overlays-BKKEzmF4.js +0 -159
- package/dist/showcase/assets/overlays-C1UodoAu.js +0 -408
- package/dist/showcase/assets/overview-Dq0MqK32.js +0 -184
- package/dist/showcase/assets/package-BaQGBJmO.js +0 -1
- package/dist/showcase/assets/package-check-C8HJfDxS.js +0 -1
- package/dist/showcase/assets/page-DvMaeo43.js +0 -1
- package/dist/showcase/assets/page-action-button-B5ZGYpYy.js +0 -1
- package/dist/showcase/assets/page-header-Y-96EPMp.js +0 -1
- package/dist/showcase/assets/pagination-Br1AfDte.js +0 -1
- package/dist/showcase/assets/pagination-yLAHxKpc.js +0 -42
- package/dist/showcase/assets/paperclip-BBDKiZeH.js +0 -1
- package/dist/showcase/assets/password-input-iwrucadb.js +0 -1
- package/dist/showcase/assets/pencil-BUhkJ_Nn.js +0 -1
- package/dist/showcase/assets/phone-DtJDFH70.js +0 -1
- package/dist/showcase/assets/plus-4gOvUk-5.js +0 -1
- package/dist/showcase/assets/popover-C8YAdHfL.js +0 -1
- package/dist/showcase/assets/popover-D9ZDWqLl.js +0 -1
- package/dist/showcase/assets/popover-menu-C5M9Up4M.js +0 -1
- package/dist/showcase/assets/products-DrKTk8Aw.js +0 -423
- package/dist/showcase/assets/progress-C1qKfCZB.js +0 -18
- package/dist/showcase/assets/progress-CpD58Wl0.js +0 -1
- package/dist/showcase/assets/props-table-C6gPyO49.js +0 -1
- package/dist/showcase/assets/quote-BXTU9evS.js +0 -1
- package/dist/showcase/assets/receipt-Dwc4p04P.js +0 -1
- package/dist/showcase/assets/receipt-text-DBEu6Gym.js +0 -1
- package/dist/showcase/assets/refinement-guide-DeO_yM8U.js +0 -189
- package/dist/showcase/assets/refresh-cw-BpV3OG_s.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-DZTrDdG0.js +0 -1
- package/dist/showcase/assets/resource-BLGoRFou.js +0 -1
- package/dist/showcase/assets/resource-D5AQesdN.js +0 -139
- package/dist/showcase/assets/resource-selector-card-BKzeUE0k.js +0 -43
- package/dist/showcase/assets/rich-text-editor-DYkPamiq.js +0 -124
- package/dist/showcase/assets/rich-text-editor-k1dtT5bX.js +0 -143
- package/dist/showcase/assets/rotate-ccw-Dajwztf1.js +0 -1
- package/dist/showcase/assets/route-5uO9C0gV.js +0 -1
- package/dist/showcase/assets/save-DONvClxa.js +0 -1
- package/dist/showcase/assets/schema-form-BMQmx4JI.js +0 -327
- package/dist/showcase/assets/scroll-area-CnAyhKQ_.js +0 -1
- package/dist/showcase/assets/scroll-area-CxwfyjX3.js +0 -32
- package/dist/showcase/assets/section-Dd6X6IKg.js +0 -1
- package/dist/showcase/assets/select-CJSyu7sS.js +0 -1
- package/dist/showcase/assets/select-Du9VvUxt.js +0 -1
- package/dist/showcase/assets/send-3ANJL7UB.js +0 -1
- package/dist/showcase/assets/separator-BiXjWmP-.js +0 -28
- package/dist/showcase/assets/separator-y9i6EG-N.js +0 -1
- package/dist/showcase/assets/settings-2-Ynd1Lcz4.js +0 -1
- package/dist/showcase/assets/settings-CqdZB-OI.js +0 -1
- package/dist/showcase/assets/sheet-CzFOcAwE.js +0 -1
- package/dist/showcase/assets/shield-Dmxwcn3w.js +0 -1
- package/dist/showcase/assets/shield-alert-RrMsBuWp.js +0 -1
- package/dist/showcase/assets/shield-check-Bnw8RAvI.js +0 -1
- package/dist/showcase/assets/shopping-bag-DGXTQNOf.js +0 -1
- package/dist/showcase/assets/showcase-DMRZCqmg.js +0 -132
- package/dist/showcase/assets/sidebar-C0tsWnrh.js +0 -1
- package/dist/showcase/assets/sidebar.context-DXGEPgaT.js +0 -1
- package/dist/showcase/assets/skeleton-BFa4FHSC.js +0 -29
- package/dist/showcase/assets/skeleton-DOJ1RAcJ.js +0 -1
- package/dist/showcase/assets/slider-BjQs0C8N.js +0 -1
- package/dist/showcase/assets/smart-card-BwSFemlj.js +0 -1
- package/dist/showcase/assets/sonner-BXMIK3eQ.js +0 -22
- package/dist/showcase/assets/sortable.esm-BeBA3gT5.js +0 -5
- package/dist/showcase/assets/sparkles-Bc0I4qTf.js +0 -1
- package/dist/showcase/assets/spinner-HyNCtTyd.js +0 -1
- package/dist/showcase/assets/spinner-LskR5l9T.js +0 -30
- package/dist/showcase/assets/spinner-mtwVRe8M.js +0 -49
- package/dist/showcase/assets/square-pen-BrZ2OxTe.js +0 -1
- package/dist/showcase/assets/stacked-avatars-DOAFRjmZ.js +0 -1
- package/dist/showcase/assets/star-lUSxI166.js +0 -1
- package/dist/showcase/assets/startOfDay-BLhx9b6k.js +0 -1
- package/dist/showcase/assets/styles-COpnijXU.js +0 -1
- package/dist/showcase/assets/suggestions-ftPYc9p6.js +0 -126
- package/dist/showcase/assets/switch-DirKCDsg.js +0 -1
- package/dist/showcase/assets/switch-DoPIN_UN.js +0 -1
- package/dist/showcase/assets/sync-C2DEiaQz.js +0 -124
- package/dist/showcase/assets/table-D6GywZEx.js +0 -1
- package/dist/showcase/assets/table-Dex8CcfW.js +0 -664
- package/dist/showcase/assets/table-actions-CJg82sW0.js +0 -1
- package/dist/showcase/assets/tabs-B9tgdMRD.js +0 -1
- package/dist/showcase/assets/tabs-C0fSpkON.js +0 -19
- package/dist/showcase/assets/tags-input-CJSpILy6.js +0 -1
- package/dist/showcase/assets/text-button-CoPZBQiq.js +0 -1
- package/dist/showcase/assets/text-link-d9JIRU2N.js +0 -1
- package/dist/showcase/assets/textarea-BN4PUX-V.js +0 -1
- package/dist/showcase/assets/textarea-CBhdtg5X.js +0 -1
- package/dist/showcase/assets/timelines-F_mzbAPA.js +0 -200
- package/dist/showcase/assets/toggle-group-8ESepeYW.js +0 -1
- package/dist/showcase/assets/toggles-B2Cg5NVG.js +0 -71
- package/dist/showcase/assets/toggles-group-BTmtSzAa.js +0 -32
- package/dist/showcase/assets/tooltip-DNsHZ3ZE.js +0 -31
- package/dist/showcase/assets/trash-2-Bf5dpRjn.js +0 -1
- package/dist/showcase/assets/trending-up-RSklVrcZ.js +0 -1
- package/dist/showcase/assets/truck-CqmeajvP.js +0 -1
- package/dist/showcase/assets/typography-DJjQO_Ld.js +0 -223
- package/dist/showcase/assets/ui-badge-BwkZfeBs.js +0 -28
- package/dist/showcase/assets/ui-card-B3mtVa60.js +0 -30
- package/dist/showcase/assets/ui-table-DM-avYTi.js +0 -42
- package/dist/showcase/assets/upload-tray-CFI_7lcB.js +0 -138
- package/dist/showcase/assets/use-layout-link-BI4MRSHG.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DRs8fnir.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-DhgmwFn7.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-vGthv_MA.js +0 -1
- package/dist/showcase/assets/useCompositeItem-g1FeYTbw.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-CyULeWSL.js +0 -1
- package/dist/showcase/assets/useLabelableId-CBWpOnwZ.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CQSuD7yw.js +0 -1
- package/dist/showcase/assets/useRender-Dm8qJkvr.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-B6KAsVMk.js +0 -1
- package/dist/showcase/assets/useValueChanged-DXek_Wx7.js +0 -1
- package/dist/showcase/assets/user-B35DABNz.js +0 -1
- package/dist/showcase/assets/user-plus-C69GplWt.js +0 -1
- package/dist/showcase/assets/users-DDgUGkgw.js +0 -1
- package/dist/showcase/assets/vendor-profile-Zfh99jtA.js +0 -37
- package/dist/showcase/assets/video-CDERYmRS.js +0 -1
- package/dist/showcase/assets/wrench-PjtfaRuJ.js +0 -1
- package/dist/showcase/assets/x-FNPo6qUv.js +0 -1
- package/dist/showcase/assets/zap-CzjU6LH0.js +0 -1
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
import { useStrings as e } from "../lib/strings.js";
|
|
2
|
+
import { n as t } from "./ui-provider-Dj6OSOZi.js";
|
|
3
|
+
import { cn as n } from "../lib/utils.js";
|
|
4
|
+
import { t as r } from "./button-DHksjMvc.js";
|
|
5
|
+
import { i, n as a, t as o } from "./tooltip-CLr_sPX8.js";
|
|
6
|
+
import { s } from "./typography-DE0NGEIE.js";
|
|
7
|
+
import { r as c, t as l } from "./alert-m-4s0Hqq.js";
|
|
8
|
+
import { a as u, g as d, r as f, t as p } from "./dropdown-menu-CoWmrjYX.js";
|
|
9
|
+
import { Fragment as m, forwardRef as h, isValidElement as g, useCallback as _, useState as v } from "react";
|
|
10
|
+
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
11
|
+
import { ChevronDown as x, Info as S, MoreHorizontal as C } from "lucide-react";
|
|
12
|
+
//#region src/components/ui/card.tsx
|
|
13
|
+
function w({ className: e, size: t = "default", ...r }) {
|
|
14
|
+
return /* @__PURE__ */ y("div", {
|
|
15
|
+
"data-slot": "card",
|
|
16
|
+
"data-size": t,
|
|
17
|
+
className: n("ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col", e),
|
|
18
|
+
...r
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function T({ className: e, ...t }) {
|
|
22
|
+
return /* @__PURE__ */ y("div", {
|
|
23
|
+
"data-slot": "card-header",
|
|
24
|
+
className: n("gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]", e),
|
|
25
|
+
...t
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function E({ className: e, ...t }) {
|
|
29
|
+
return /* @__PURE__ */ y("div", {
|
|
30
|
+
"data-slot": "card-title",
|
|
31
|
+
className: n("text-base leading-normal font-medium group-data-[size=sm]/card:text-sm", e),
|
|
32
|
+
...t
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function D({ className: e, ...t }) {
|
|
36
|
+
return /* @__PURE__ */ y("div", {
|
|
37
|
+
"data-slot": "card-description",
|
|
38
|
+
className: n("text-muted-foreground text-sm", e),
|
|
39
|
+
...t
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function O({ className: e, ...t }) {
|
|
43
|
+
return /* @__PURE__ */ y("div", {
|
|
44
|
+
"data-slot": "card-content",
|
|
45
|
+
className: n("px-6 group-data-[size=sm]/card:px-4", e),
|
|
46
|
+
...t
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function k({ className: e, ...t }) {
|
|
50
|
+
return /* @__PURE__ */ y("div", {
|
|
51
|
+
"data-slot": "card-footer",
|
|
52
|
+
className: n("rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center", e),
|
|
53
|
+
...t
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/components/base/cards/smart-card.tokens.ts
|
|
58
|
+
var A = {
|
|
59
|
+
root: "card--component",
|
|
60
|
+
header: "card--header",
|
|
61
|
+
title: "card--title",
|
|
62
|
+
description: "card--description",
|
|
63
|
+
content: "card--content",
|
|
64
|
+
footer: "card--footer",
|
|
65
|
+
alert: "card--alert"
|
|
66
|
+
}, j = {
|
|
67
|
+
small: {
|
|
68
|
+
shell: "gap-space-lg py-surface-sm",
|
|
69
|
+
headerX: "px-surface-sm",
|
|
70
|
+
contentX: "px-surface-sm",
|
|
71
|
+
contentY: "py-0",
|
|
72
|
+
footerX: "px-surface-sm",
|
|
73
|
+
alertX: "px-surface-sm",
|
|
74
|
+
alertOffsetWithHeader: "-mt-1",
|
|
75
|
+
alertOffsetStandalone: "mt-0"
|
|
76
|
+
},
|
|
77
|
+
default: {
|
|
78
|
+
shell: "gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]",
|
|
79
|
+
headerX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
80
|
+
contentX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
81
|
+
contentY: "py-0",
|
|
82
|
+
footerX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
83
|
+
alertX: "px-[calc(var(--surface-x)+var(--space-xs))]",
|
|
84
|
+
alertOffsetWithHeader: "-mt-1",
|
|
85
|
+
alertOffsetStandalone: "mt-0"
|
|
86
|
+
}
|
|
87
|
+
}, M = {
|
|
88
|
+
card: "rounded-lg border border-border bg-card text-card-foreground shadow-xs",
|
|
89
|
+
flat: "bg-transparent text-card-foreground border-none shadow-none",
|
|
90
|
+
framed: n("rounded-lg border border-border bg-card text-card-foreground shadow-xs", "ring-4 ring-border/25")
|
|
91
|
+
};
|
|
92
|
+
//#endregion
|
|
93
|
+
//#region src/components/base/cards/partials/has-renderable-content.ts
|
|
94
|
+
function N(e) {
|
|
95
|
+
return e == null || typeof e == "boolean" ? !1 : typeof e == "string" ? e.trim().length > 0 : typeof e == "number" || typeof e == "bigint" ? !0 : Array.isArray(e) ? e.some(N) : g(e) && e.type === m ? N(e.props.children) : !0;
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/components/base/cards/partials/card-primitives.tsx
|
|
99
|
+
function P({ className: e, ...t }) {
|
|
100
|
+
return /* @__PURE__ */ y(w, {
|
|
101
|
+
className: n(A.root, "flex w-full flex-col gap-3 py-4 ring-0", e),
|
|
102
|
+
...t
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function F({ className: e, ...t }) {
|
|
106
|
+
return /* @__PURE__ */ y(T, {
|
|
107
|
+
className: n(A.header, "flex flex-col gap-1 px-4", e),
|
|
108
|
+
...t
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function I({ className: e, children: t, ...r }) {
|
|
112
|
+
return N(t) ? typeof t == "string" || typeof t == "number" || typeof t == "bigint" ? /* @__PURE__ */ y(s, {
|
|
113
|
+
"data-slot": "card-title",
|
|
114
|
+
tag: "div",
|
|
115
|
+
weight: "semibold",
|
|
116
|
+
lineHeight: "tight",
|
|
117
|
+
className: n(A.title, "min-w-0 font-semibold", e),
|
|
118
|
+
...r,
|
|
119
|
+
children: t
|
|
120
|
+
}) : /* @__PURE__ */ y(E, {
|
|
121
|
+
className: n(A.title, "min-w-0 text-sm leading-tight font-semibold", e),
|
|
122
|
+
...r,
|
|
123
|
+
children: t
|
|
124
|
+
}) : null;
|
|
125
|
+
}
|
|
126
|
+
function L({ className: e, children: t, ...r }) {
|
|
127
|
+
return N(t) ? typeof t == "string" || typeof t == "number" || typeof t == "bigint" ? /* @__PURE__ */ y(s, {
|
|
128
|
+
"data-slot": "card-description",
|
|
129
|
+
tag: "div",
|
|
130
|
+
type: "secondary",
|
|
131
|
+
className: n(A.description, "text-muted-foreground text-sm", e),
|
|
132
|
+
...r,
|
|
133
|
+
children: t
|
|
134
|
+
}) : /* @__PURE__ */ y(D, {
|
|
135
|
+
className: n(A.description, "text-muted-foreground text-sm", e),
|
|
136
|
+
...r,
|
|
137
|
+
children: t
|
|
138
|
+
}) : null;
|
|
139
|
+
}
|
|
140
|
+
function R({ className: e, ...t }) {
|
|
141
|
+
return /* @__PURE__ */ y(O, {
|
|
142
|
+
className: n(A.content, "px-4", e),
|
|
143
|
+
...t
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
function z({ className: e, ...t }) {
|
|
147
|
+
return /* @__PURE__ */ y(k, {
|
|
148
|
+
className: n(A.footer, "flex items-center px-4", e),
|
|
149
|
+
...t
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
//#endregion
|
|
153
|
+
//#region src/components/base/cards/partials/smart-card-alert.tsx
|
|
154
|
+
function ee({ alert: e, alertVariant: t, hasHeader: r, padding: i }) {
|
|
155
|
+
let a = j[i];
|
|
156
|
+
return /* @__PURE__ */ y("div", {
|
|
157
|
+
className: n(A.alert, a.alertX, r ? a.alertOffsetWithHeader : a.alertOffsetStandalone),
|
|
158
|
+
children: /* @__PURE__ */ y(l, {
|
|
159
|
+
variant: t,
|
|
160
|
+
children: /* @__PURE__ */ y(c, { children: e })
|
|
161
|
+
})
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/components/base/cards/partials/smart-card-actions-menu.tsx
|
|
166
|
+
function B({ actions: e, actionsLabel: t }) {
|
|
167
|
+
return /* @__PURE__ */ b(p, { children: [/* @__PURE__ */ y(d, {
|
|
168
|
+
type: "button",
|
|
169
|
+
"aria-label": t,
|
|
170
|
+
className: n("inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0", "text-muted-foreground hover:bg-accent hover:text-accent-foreground", "outline-none focus-visible:ring-2 focus-visible:ring-ring/50", "transition-colors"),
|
|
171
|
+
children: /* @__PURE__ */ y(C, { className: "size-4" })
|
|
172
|
+
}), /* @__PURE__ */ y(f, {
|
|
173
|
+
align: "end",
|
|
174
|
+
className: "min-w-36",
|
|
175
|
+
children: e.map((e, t) => /* @__PURE__ */ b(u, {
|
|
176
|
+
onClick: e.onClick,
|
|
177
|
+
disabled: e.disabled,
|
|
178
|
+
className: "gap-space-lg px-row-x py-row-y text-xs",
|
|
179
|
+
children: [!!e.icon && /* @__PURE__ */ y("span", {
|
|
180
|
+
className: "flex shrink-0 items-center",
|
|
181
|
+
children: e.icon
|
|
182
|
+
}), e.label]
|
|
183
|
+
}, e.id ?? `${e.label}-${t}`))
|
|
184
|
+
})] });
|
|
185
|
+
}
|
|
186
|
+
//#endregion
|
|
187
|
+
//#region src/components/base/cards/partials/smart-card-header-row.tsx
|
|
188
|
+
function V({ tooltipLabel: e }) {
|
|
189
|
+
return /* @__PURE__ */ y(i, { render: (t) => {
|
|
190
|
+
let i = t;
|
|
191
|
+
return /* @__PURE__ */ y(r, {
|
|
192
|
+
...i,
|
|
193
|
+
type: "button",
|
|
194
|
+
variant: "secondary",
|
|
195
|
+
buttonStyle: "ghost",
|
|
196
|
+
size: "icon-small",
|
|
197
|
+
className: n("h-5 w-5 text-muted-foreground", i.className),
|
|
198
|
+
"aria-label": e,
|
|
199
|
+
children: /* @__PURE__ */ y(S, { className: "size-3.5" })
|
|
200
|
+
});
|
|
201
|
+
} });
|
|
202
|
+
}
|
|
203
|
+
function te({ icon: e, title: t, titleSuffix: r, description: i, tooltip: s, tooltipLabel: c, headerStart: l, headerEnd: u, headerAction: d, actions: f, actionsLabel: p, padding: m, className: h }) {
|
|
204
|
+
let g = Array.isArray(f) ? f : [], _ = g.length > 0, v = N(e), x = N(t), S = N(r), C = N(i), w = N(s), T = N(l), E = N(u), D = N(d), O = v || x || S || w, k = E || D || _;
|
|
205
|
+
return /* @__PURE__ */ b(F, {
|
|
206
|
+
className: n("flex-row items-start justify-between gap-3 pb-0", j[m].headerX, h),
|
|
207
|
+
children: [/* @__PURE__ */ b("div", {
|
|
208
|
+
className: "flex min-w-0 flex-1 flex-col gap-1",
|
|
209
|
+
children: [
|
|
210
|
+
!!T && l,
|
|
211
|
+
!!O && /* @__PURE__ */ b("div", {
|
|
212
|
+
className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",
|
|
213
|
+
children: [
|
|
214
|
+
!!v && /* @__PURE__ */ y("span", {
|
|
215
|
+
className: "flex shrink-0 items-center text-muted-foreground",
|
|
216
|
+
children: e
|
|
217
|
+
}),
|
|
218
|
+
/* @__PURE__ */ y(I, { children: t }),
|
|
219
|
+
!!S && /* @__PURE__ */ y("div", {
|
|
220
|
+
className: "flex items-center gap-2",
|
|
221
|
+
children: r
|
|
222
|
+
}),
|
|
223
|
+
!!w && /* @__PURE__ */ b(o, { children: [/* @__PURE__ */ y(V, { tooltipLabel: c }), /* @__PURE__ */ y(a, { children: s })] })
|
|
224
|
+
]
|
|
225
|
+
}),
|
|
226
|
+
!!C && /* @__PURE__ */ y(L, {
|
|
227
|
+
className: "text-left",
|
|
228
|
+
children: i
|
|
229
|
+
})
|
|
230
|
+
]
|
|
231
|
+
}), !!k && /* @__PURE__ */ b("div", {
|
|
232
|
+
className: "flex shrink-0 items-center gap-2",
|
|
233
|
+
children: [
|
|
234
|
+
!!E && u,
|
|
235
|
+
!!D && d,
|
|
236
|
+
!!_ && /* @__PURE__ */ y(B, {
|
|
237
|
+
actions: g,
|
|
238
|
+
actionsLabel: p
|
|
239
|
+
})
|
|
240
|
+
]
|
|
241
|
+
})]
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
//#endregion
|
|
245
|
+
//#region src/components/base/cards/smart-card.strings.ts
|
|
246
|
+
var H = {
|
|
247
|
+
expandLabel: "Expand card",
|
|
248
|
+
collapseLabel: "Collapse card"
|
|
249
|
+
};
|
|
250
|
+
//#endregion
|
|
251
|
+
//#region src/components/base/cards/partials/smart-card-skeleton.tsx
|
|
252
|
+
function U({ title: e, lines: t = 2, className: r }) {
|
|
253
|
+
let i = ({ barClassName: e }) => /* @__PURE__ */ y("div", { className: n("animate-pulse rounded bg-muted", e) });
|
|
254
|
+
return /* @__PURE__ */ b(P, {
|
|
255
|
+
className: n(M.card, "gap-4 py-6", r),
|
|
256
|
+
children: [/* @__PURE__ */ y(F, {
|
|
257
|
+
className: "flex-col gap-1.5 px-6 pb-0",
|
|
258
|
+
children: e ? /* @__PURE__ */ y(I, { children: e }) : /* @__PURE__ */ y(i, { barClassName: "h-4 w-32" })
|
|
259
|
+
}), /* @__PURE__ */ y(R, {
|
|
260
|
+
className: "space-y-3 px-6 py-0",
|
|
261
|
+
children: Array.from({ length: t }, (e, t) => /* @__PURE__ */ y(i, { barClassName: n("h-4", t === 0 ? "w-full" : "w-3/4") }, `skel-${String(t)}`))
|
|
262
|
+
})]
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
U.displayName = "SmartCardSkeleton";
|
|
266
|
+
//#endregion
|
|
267
|
+
//#region src/components/base/cards/smart-card.tsx
|
|
268
|
+
function ne(e) {
|
|
269
|
+
return e === "small" || e === "default" ? e : e === "sm" ? "small" : "default";
|
|
270
|
+
}
|
|
271
|
+
var W = h(function({ icon: i, title: a, titleSuffix: o, description: s, tooltip: c, tooltipAriaLabel: l = "Card info", footerText: u, alert: d, alertVariant: f = "default", surface: p, transparent: m = !1, padding: h, actions: g, actionsLabel: S = "Card actions", headerAction: C, headerStart: w, headerEnd: T, contentTop: E, contentBottom: D, footerSlot: O, headerDivider: k = !1, footerDivider: A = !1, expandable: F = !1, defaultExpanded: I = !1, expanded: L, onExpandedChange: B, children: V, className: U, headerClassName: W, contentClassName: re, footerClassName: G, strings: ie }, ae) {
|
|
272
|
+
let { defaultPadding: oe } = t(), K = ne(h ?? oe), q = j[K], J = Array.isArray(g) ? g : [], Y = e(H, ie), X = F !== !1 && F !== void 0, Z = typeof F == "object" && F?.collapsedMaxHeight !== void 0 ? F.collapsedMaxHeight : "12rem", se = typeof Z == "number" ? `${Z}px` : Z, Q = L !== void 0, [ce, le] = v(I), $ = Q ? L : ce, ue = _(() => {
|
|
273
|
+
let e = !$;
|
|
274
|
+
Q || le(e), B?.(e);
|
|
275
|
+
}, [
|
|
276
|
+
$,
|
|
277
|
+
Q,
|
|
278
|
+
B
|
|
279
|
+
]), de = N(i) || N(a) || N(s) || J.length > 0 || N(C) || N(w) || N(T), fe = N(d), pe = N(u), me = N(O), he = N(E), ge = N(D), _e = l.trim().length > 0 ? l : "Card info", ve = X ? { maxHeight: $ ? "" : se } : void 0, ye = p ?? (m ? "flat" : "card");
|
|
280
|
+
return /* @__PURE__ */ b(P, {
|
|
281
|
+
ref: ae,
|
|
282
|
+
"data-surface": ye,
|
|
283
|
+
className: n(M[ye], q.shell, X && "relative pb-1 !overflow-visible", U),
|
|
284
|
+
children: [
|
|
285
|
+
!!de && /* @__PURE__ */ y(te, {
|
|
286
|
+
icon: i,
|
|
287
|
+
title: a,
|
|
288
|
+
titleSuffix: o,
|
|
289
|
+
description: s,
|
|
290
|
+
tooltip: c,
|
|
291
|
+
tooltipLabel: _e,
|
|
292
|
+
headerStart: w,
|
|
293
|
+
headerEnd: T,
|
|
294
|
+
headerAction: C,
|
|
295
|
+
actions: J,
|
|
296
|
+
actionsLabel: S,
|
|
297
|
+
padding: K,
|
|
298
|
+
className: n(k && "pb-3 border-b border-border/60", W)
|
|
299
|
+
}),
|
|
300
|
+
!!fe && /* @__PURE__ */ y(ee, {
|
|
301
|
+
alert: d,
|
|
302
|
+
alertVariant: f,
|
|
303
|
+
hasHeader: de,
|
|
304
|
+
padding: K
|
|
305
|
+
}),
|
|
306
|
+
/* @__PURE__ */ b(R, {
|
|
307
|
+
className: n(q.contentX, q.contentY, X && "relative overflow-hidden transition-[max-height] duration-500 ease-in-out", re),
|
|
308
|
+
style: ve,
|
|
309
|
+
children: [
|
|
310
|
+
!!he && E,
|
|
311
|
+
V,
|
|
312
|
+
!!ge && D,
|
|
313
|
+
!!X && !$ && /* @__PURE__ */ y("div", {
|
|
314
|
+
"aria-hidden": "true",
|
|
315
|
+
className: "from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent"
|
|
316
|
+
})
|
|
317
|
+
]
|
|
318
|
+
}),
|
|
319
|
+
!!pe && /* @__PURE__ */ y(z, {
|
|
320
|
+
className: n("justify-end text-xs text-muted-foreground", q.footerX, A && "pt-3 border-t border-border/60", G),
|
|
321
|
+
children: u
|
|
322
|
+
}),
|
|
323
|
+
!!me && /* @__PURE__ */ y(z, {
|
|
324
|
+
className: n("flex-col items-stretch", q.footerX, A && "pt-3 border-t border-border/60", G),
|
|
325
|
+
children: O
|
|
326
|
+
}),
|
|
327
|
+
!!X && /* @__PURE__ */ y("div", {
|
|
328
|
+
className: "absolute -bottom-4 left-1/2 -translate-x-1/2 z-10",
|
|
329
|
+
children: /* @__PURE__ */ b(r, {
|
|
330
|
+
type: "button",
|
|
331
|
+
variant: "secondary",
|
|
332
|
+
buttonStyle: "outline",
|
|
333
|
+
size: "icon-small",
|
|
334
|
+
onClick: ue,
|
|
335
|
+
"aria-expanded": $,
|
|
336
|
+
"aria-label": $ ? Y.collapseLabel : Y.expandLabel,
|
|
337
|
+
className: n("inline-flex size-8 items-center justify-center rounded-full", "border border-border bg-background text-foreground shadow-sm", "hover:bg-muted/40 transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50"),
|
|
338
|
+
children: [/* @__PURE__ */ y(x, {
|
|
339
|
+
"aria-hidden": "true",
|
|
340
|
+
className: n("size-4 transition-transform duration-300", $ && "rotate-180")
|
|
341
|
+
}), /* @__PURE__ */ y("span", {
|
|
342
|
+
className: "sr-only",
|
|
343
|
+
children: $ ? Y.collapseLabel : Y.expandLabel
|
|
344
|
+
})]
|
|
345
|
+
})
|
|
346
|
+
})
|
|
347
|
+
]
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
W.displayName = "SmartCard";
|
|
351
|
+
//#endregion
|
|
352
|
+
export { L as a, P as c, R as i, I as l, U as n, z as o, H as r, F as s, W as t };
|
|
353
|
+
|
|
354
|
+
//# sourceMappingURL=cards-C1ythc0Q.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cards-C1ythc0Q.js","names":[],"sources":["../../src/components/ui/card.tsx","../../src/components/base/cards/smart-card.tokens.ts","../../src/components/base/cards/partials/has-renderable-content.ts","../../src/components/base/cards/partials/card-primitives.tsx","../../src/components/base/cards/partials/smart-card-alert.tsx","../../src/components/base/cards/partials/smart-card-actions-menu.tsx","../../src/components/base/cards/partials/smart-card-header-row.tsx","../../src/components/base/cards/smart-card.strings.ts","../../src/components/base/cards/partials/smart-card-skeleton.tsx","../../src/components/base/cards/smart-card.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\"ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-base leading-normal font-medium group-data-[size=sm]/card:text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","import { cn } from '@/lib/utils';\n\nimport type { CardPadding, SmartCardSurface } from './smart-card.types';\n\n/**\n * BEM-style hooks applied to every SmartCard subregion. Library\n * consumers can target them in CSS / tests / analytics without\n * relying on shadcn's data-slot attributes (which are framework\n * internals). Keep these names consistent — they are part of the\n * public DOM contract.\n */\nexport const CARD_BEM = {\n\troot: 'card--component',\n\theader: 'card--header',\n\ttitle: 'card--title',\n\tdescription: 'card--description',\n\tcontent: 'card--content',\n\tfooter: 'card--footer',\n\talert: 'card--alert',\n} as const;\n\ninterface PaddingTokens {\n\tshell: string;\n\theaderX: string;\n\tcontentX: string;\n\tcontentY: string;\n\tfooterX: string;\n\talertX: string;\n\t/** Vertical offset applied when alert sits BELOW the header (pulls it up). */\n\talertOffsetWithHeader: string;\n\t/** Vertical spacing applied when alert is the first content (no header). */\n\talertOffsetStandalone: string;\n}\n\nexport const PADDING: Record<CardPadding, PaddingTokens> = {\n\tsmall: {\n\t\tshell: 'gap-space-lg py-surface-sm',\n\t\theaderX: 'px-surface-sm',\n\t\tcontentX: 'px-surface-sm',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-surface-sm',\n\t\talertX: 'px-surface-sm',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n\tdefault: {\n\t\tshell: 'gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]',\n\t\theaderX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n};\n\n/**\n * Surface-specific shell classes. The `framed` variant provides one clean\n * card surface with a soft tokenized ring, not nested borders that compete\n * with the example chrome.\n */\nexport const SURFACE_CLASSES: Record<SmartCardSurface, string> = {\n\tcard: 'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\tflat: 'bg-transparent text-card-foreground border-none shadow-none',\n\tframed: cn(\n\t\t'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\t\t'ring-4 ring-border/25',\n\t),\n};\n","import { Fragment, isValidElement, type ReactNode } from 'react';\n\n/**\n * Predicate used by SmartCard subregions to decide whether each slot\n * warrants rendering its wrapper. Numbers (incl. `0`) and JSX always\n * render; falsy / empty-string content is treated as absent. Fragments\n * recurse into their children.\n */\nexport function hasRenderableContent(content?: ReactNode): boolean {\n\tif (content === null || content === undefined) return false;\n\tif (typeof content === 'boolean') return false;\n\tif (typeof content === 'string') return content.trim().length > 0;\n\tif (typeof content === 'number' || typeof content === 'bigint') return true;\n\tif (Array.isArray(content)) return content.some(hasRenderableContent);\n\tif (isValidElement<{ children?: ReactNode }>(content)) {\n\t\tif (content.type === Fragment) return hasRenderableContent(content.props.children);\n\t\treturn true;\n\t}\n\treturn true;\n}\n","/**\n * Internal layout primitives — re-exported from `smart-card.tsx` for\n * advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each primitive is intentionally thin:\n * a single responsibility, a single set of default classes, no business\n * logic. The BEM hooks (`card--component`, `card--header`, etc.) are\n * applied here so the public DOM contract lives in one place.\n */\nimport {\n\ttype ComponentPropsWithRef,\n\ttype ComponentPropsWithoutRef,\n} from 'react';\n\nimport {\n\tCard as CardPrimitive,\n\tCardContent as CardContentPrimitive,\n\tCardDescription as CardDescriptionPrimitive,\n\tCardFooter as CardFooterPrimitive,\n\tCardHeader as CardHeaderPrimitive,\n\tCardTitle as CardTitlePrimitive,\n} from '@/components/ui/card';\nimport Text from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM } from '../smart-card.tokens';\n\nimport { hasRenderableContent } from './has-renderable-content';\n\nexport function CardShell({ className, ...props }: ComponentPropsWithRef<'div'>) {\n\treturn (\n\t\t<CardPrimitive\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.root,\n\t\t\t\t'flex w-full flex-col gap-3 py-4 ring-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardHeader({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardHeaderPrimitive\n\t\t\tclassName={cn(CARD_BEM.header, 'flex flex-col gap-1 px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardTitle({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardTitlePrimitive\n\t\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 text-sm leading-tight font-semibold', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardTitlePrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-title\"\n\t\t\ttag=\"div\"\n\t\t\tweight=\"semibold\"\n\t\t\tlineHeight=\"tight\"\n\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 font-semibold', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardDescription({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardDescriptionPrimitive\n\t\t\t\tclassName={cn(\n\t\t\t\t\tCARD_BEM.description,\n\t\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardDescriptionPrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-description\"\n\t\t\ttag=\"div\"\n\t\t\ttype=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.description,\n\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardContent({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardContentPrimitive\n\t\t\tclassName={cn(CARD_BEM.content, 'px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardFooter({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardFooterPrimitive\n\t\t\tclassName={cn(CARD_BEM.footer, 'flex items-center px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","/**\n * Inline alert banner rendered between the header and the card body.\n * Pulls itself up under the header (`alertOffsetWithHeader`) when one\n * exists so the visual gap between header bottom and alert top stays\n * tight; otherwise pushes itself down (`alertOffsetStandalone`) so it\n * doesn't kiss the card top edge.\n */\nimport type { ReactNode } from 'react';\n\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM, PADDING } from '../smart-card.tokens';\nimport type { CardAlertVariant, CardPadding } from '../smart-card.types';\n\ninterface AlertSlotProps {\n\talert: ReactNode | string;\n\talertVariant: CardAlertVariant;\n\thasHeader: boolean;\n\tpadding: CardPadding;\n}\n\nexport function SmartCardAlert({\n\talert,\n\talertVariant,\n\thasHeader,\n\tpadding,\n}: AlertSlotProps) {\n\tconst tokens = PADDING[padding];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.alert,\n\t\t\t\ttokens.alertX,\n\t\t\t\thasHeader ? tokens.alertOffsetWithHeader : tokens.alertOffsetStandalone,\n\t\t\t)}\n\t\t>\n\t\t\t<Alert variant={alertVariant}>\n\t\t\t\t<AlertDescription>{alert}</AlertDescription>\n\t\t\t</Alert>\n\t\t</div>\n\t);\n}\n","/**\n * SmartCard actions menu — `⋮` trigger + dropdown of consumer-supplied\n * `SmartCardAction` items. Always renders a 28×28 square trigger so it\n * reads cleanly as a circle (consumer overrides to `rounded-full`) or\n * a rectangle (default `rounded-md`).\n */\nimport { MoreHorizontal } from 'lucide-react';\n\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport type { SmartCardAction } from '../smart-card.types';\n\ninterface ActionsMenuProps {\n\tactions: SmartCardAction[];\n\tactionsLabel: string;\n}\n\nexport function ActionsMenu({ actions, actionsLabel }: ActionsMenuProps) {\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={actionsLabel}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0',\n\t\t\t\t\t'text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t'outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t'transition-colors',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<MoreHorizontal className=\"size-4\" />\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent align=\"end\" className=\"min-w-36\">\n\t\t\t\t{actions.map((action, index) => (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={action.id ?? `${action.label}-${index}`}\n\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\tclassName=\"gap-space-lg px-row-x py-row-y text-xs\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!action.icon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center\">{action.icon}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{action.label}\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t))}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * SmartCardHeaderRow — the chrome above the card body. Combines icon /\n * title / description / tooltip / suffix on the leading side with the\n * trailing `headerEnd` / `headerAction` slots and the actions menu.\n *\n * `TooltipTrigger_Info` is colocated here because it's only used by the\n * header — keeping it private avoids polluting the public partial\n * surface.\n */\nimport { Info } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '@/components/base/display/tooltip';\nimport { cn } from '@/lib/utils';\n\nimport { PADDING } from '../smart-card.tokens';\nimport type { CardPadding, SmartCardAction } from '../smart-card.types';\n\nimport { CardHeader, CardTitle, CardDescription } from './card-primitives';\nimport { hasRenderableContent } from './has-renderable-content';\nimport { ActionsMenu } from './smart-card-actions-menu';\n\nfunction TooltipTrigger_Info({ tooltipLabel }: { tooltipLabel: string }) {\n\treturn (\n\t\t<TooltipTrigger\n\t\t\trender={(triggerProps) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst passthrough = triggerProps as Record<string, any>;\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...passthrough}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-5 w-5 text-muted-foreground',\n\t\t\t\t\t\t\tpassthrough.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-label={tooltipLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Info className=\"size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\ninterface HeaderProps {\n\ticon?: ReactNode;\n\ttitle?: ReactNode;\n\ttitleSuffix?: ReactNode;\n\tdescription?: ReactNode;\n\ttooltip?: ReactNode;\n\ttooltipLabel: string;\n\theaderStart?: ReactNode;\n\theaderEnd?: ReactNode;\n\theaderAction?: ReactNode;\n\tactions?: SmartCardAction[];\n\tactionsLabel: string;\n\tpadding: CardPadding;\n\tclassName?: string;\n}\n\nexport function SmartCardHeaderRow({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipLabel,\n\theaderStart,\n\theaderEnd,\n\theaderAction,\n\tactions,\n\tactionsLabel,\n\tpadding,\n\tclassName,\n}: HeaderProps) {\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst hasActions = cardActions.length > 0;\n\n\tconst hasIcon = hasRenderableContent(icon);\n\tconst hasTitle = hasRenderableContent(title);\n\tconst hasTitleSuffix = hasRenderableContent(titleSuffix);\n\tconst hasDescription = hasRenderableContent(description);\n\tconst hasTooltip = hasRenderableContent(tooltip);\n\tconst hasHeaderStart = hasRenderableContent(headerStart);\n\tconst hasHeaderEnd = hasRenderableContent(headerEnd);\n\tconst hasHeaderAction = hasRenderableContent(headerAction);\n\n\tconst showTitleRow = hasIcon || hasTitle || hasTitleSuffix || hasTooltip;\n\tconst showTrailing = hasHeaderEnd || hasHeaderAction || hasActions;\n\n\treturn (\n\t\t<CardHeader\n\t\t\tclassName={cn(\n\t\t\t\t'flex-row items-start justify-between gap-3 pb-0',\n\t\t\t\tPADDING[padding].headerX,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n\t\t\t\t{!!hasHeaderStart && headerStart}\n\n\t\t\t\t{!!showTitleRow && (\n\t\t\t\t\t<div className=\"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1\">\n\t\t\t\t\t\t{!!hasIcon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center text-muted-foreground\">\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<CardTitle>{title}</CardTitle>\n\t\t\t\t\t\t{!!hasTitleSuffix && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">{titleSuffix}</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t<TooltipTrigger_Info tooltipLabel={tooltipLabel} />\n\t\t\t\t\t\t\t\t<TooltipContent>{tooltip}</TooltipContent>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasDescription && (\n\t\t\t\t\t<CardDescription className=\"text-left\">{description}</CardDescription>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!!showTrailing && (\n\t\t\t\t<div className=\"flex shrink-0 items-center gap-2\">\n\t\t\t\t\t{!!hasHeaderEnd && headerEnd}\n\t\t\t\t\t{!!hasHeaderAction && headerAction}\n\t\t\t\t\t{!!hasActions && (\n\t\t\t\t\t\t<ActionsMenu actions={cardActions} actionsLabel={actionsLabel} />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardHeader>\n\t);\n}\n","/**\n * SmartCard strings — i18n surface for the chrome the consumer doesn't\n * pass directly. Most copy (title, description, action labels, alert\n * body) flows in via props; the strings here cover the implicit\n * affordances (expand toggle).\n */\n\nexport interface SmartCardStrings {\n\texpandLabel: string;\n\tcollapseLabel: string;\n}\n\nexport const defaultSmartCardStrings: SmartCardStrings = {\n\texpandLabel: 'Expand card',\n\tcollapseLabel: 'Collapse card',\n};\n","/**\n * SmartCardSkeleton — placeholder shell rendered while a SmartCard's\n * data is loading. Picks up the canonical card surface so the loading\n * state visually matches the eventual `SmartCard` it'll replace.\n */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { SURFACE_CLASSES } from '../smart-card.tokens';\n\nimport {\n\tCardContent,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './card-primitives';\n\nexport interface SmartCardSkeletonProps {\n\ttitle?: ReactNode;\n\tlines?: number;\n\tclassName?: string;\n}\n\nexport function SmartCardSkeleton({\n\ttitle,\n\tlines = 2,\n\tclassName,\n}: SmartCardSkeletonProps) {\n\tconst SkeletonBar = ({ barClassName }: { barClassName?: string }) => (\n\t\t<div className={cn('animate-pulse rounded bg-muted', barClassName)} />\n\t);\n\n\treturn (\n\t\t<CardShell className={cn(SURFACE_CLASSES.card, 'gap-4 py-6', className)}>\n\t\t\t<CardHeader className=\"flex-col gap-1.5 px-6 pb-0\">\n\t\t\t\t{title ? <CardTitle>{title}</CardTitle> : <SkeletonBar barClassName=\"h-4 w-32\" />}\n\t\t\t</CardHeader>\n\t\t\t<CardContent className=\"space-y-3 px-6 py-0\">\n\t\t\t\t{Array.from({ length: lines }, (_, i) => (\n\t\t\t\t\t<SkeletonBar\n\t\t\t\t\t\tkey={`skel-${String(i)}`}\n\t\t\t\t\t\tbarClassName={cn('h-4', i === 0 ? 'w-full' : 'w-3/4')}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</CardContent>\n\t\t</CardShell>\n\t);\n}\n\nSmartCardSkeleton.displayName = 'SmartCardSkeleton';\n","/**\n * SmartCard — composed card with header (icon, title, suffix, description,\n * tooltip), actions menu, alert banner, header / content / footer slots,\n * surface variants (card / flat / framed), and an opt-in expandable body.\n *\n * The single card primitive everything else builds on — never reach past it\n * to shadcn `Card` directly. The CardShell / CardHeader / CardTitle /\n * CardDescription / CardContent / CardFooter primitives are re-exported\n * for advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each subregion paints a BEM-style hook\n * (`card--component`, `card--header`, `card--title`, …) for CSS / test /\n * analytics targeting independent of shadcn's data-slot internals.\n *\n * The file is a thin orchestrator. The actual chrome lives in:\n * - `./smart-card.types.ts` — public prop / variant types\n * - `./smart-card.strings.ts` — i18n (expand toggle copy)\n * - `./smart-card.tokens.ts` — PADDING + SURFACE_CLASSES + CARD_BEM\n * - `./partials/card-primitives.tsx` — CardShell + CardHeader / Title /\n * Description / Content / Footer\n * - `./partials/smart-card-header-row.tsx` — header layout + actions menu\n * - `./partials/smart-card-alert.tsx` — inline alert banner\n * - `./partials/smart-card-actions-menu.tsx` — `⋮` dropdown\n * - `./partials/smart-card-skeleton.tsx` — loading placeholder\n * - `./partials/has-renderable-content.ts` — slot-empty predicate\n */\nimport { ChevronDown } from 'lucide-react';\nimport {\n\ttype CSSProperties,\n\tforwardRef,\n\tuseCallback,\n\tuseState,\n} from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { useStrings } from '@/lib/strings';\nimport { useCardConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tCardContent,\n\tCardFooter,\n\tCardShell,\n} from './partials/card-primitives';\nimport { hasRenderableContent } from './partials/has-renderable-content';\nimport { SmartCardAlert } from './partials/smart-card-alert';\nimport { SmartCardHeaderRow } from './partials/smart-card-header-row';\nimport {\n\tdefaultSmartCardStrings,\n} from './smart-card.strings';\nimport {\n\tPADDING,\n\tSURFACE_CLASSES,\n} from './smart-card.tokens';\nimport type {\n\tCardPadding,\n\tSmartCardProps,\n\tSmartCardSurface,\n} from './smart-card.types';\n\nfunction normalizeCardPadding(padding: CardPadding | string | undefined): CardPadding {\n\tif (padding === 'small' || padding === 'default') return padding;\n\tif (padding === 'sm') return 'small';\n\tif (padding === 'base' || padding === 'lg') return 'default';\n\treturn 'default';\n}\n\nexport const SmartCard = forwardRef<HTMLDivElement, SmartCardProps>(function SmartCard({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipAriaLabel = 'Card info',\n\tfooterText,\n\talert,\n\talertVariant = 'default',\n\tsurface,\n\ttransparent = false,\n\tpadding,\n\tactions,\n\tactionsLabel = 'Card actions',\n\theaderAction,\n\theaderStart,\n\theaderEnd,\n\tcontentTop,\n\tcontentBottom,\n\tfooterSlot,\n\theaderDivider = false,\n\tfooterDivider = false,\n\texpandable = false,\n\tdefaultExpanded = false,\n\texpanded: expandedProp,\n\tonExpandedChange,\n\tchildren,\n\tclassName,\n\theaderClassName,\n\tcontentClassName,\n\tfooterClassName,\n\tstrings: stringsProp,\n}, ref) {\n\tconst { defaultPadding } = useCardConfig();\n\tconst resolvedPadding = normalizeCardPadding(padding ?? defaultPadding);\n\tconst tokens = PADDING[resolvedPadding];\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst strings = useStrings(defaultSmartCardStrings, stringsProp);\n\n\tconst isExpandable = expandable !== false && expandable !== undefined;\n\tconst collapsedMaxHeightRaw =\n\t\ttypeof expandable === 'object' && expandable?.collapsedMaxHeight !== undefined\n\t\t\t? expandable.collapsedMaxHeight\n\t\t\t: '12rem';\n\tconst collapsedMaxHeight =\n\t\ttypeof collapsedMaxHeightRaw === 'number'\n\t\t\t? `${collapsedMaxHeightRaw}px`\n\t\t\t: collapsedMaxHeightRaw;\n\n\tconst isExpandedControlled = expandedProp !== undefined;\n\tconst [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n\tconst expanded = isExpandedControlled ? expandedProp : internalExpanded;\n\tconst handleToggle = useCallback(() => {\n\t\tconst next = !expanded;\n\t\tif (!isExpandedControlled) setInternalExpanded(next);\n\t\tonExpandedChange?.(next);\n\t}, [expanded, isExpandedControlled, onExpandedChange]);\n\n\tconst hasHeader =\n\t\thasRenderableContent(icon) ||\n\t\thasRenderableContent(title) ||\n\t\thasRenderableContent(description) ||\n\t\tcardActions.length > 0 ||\n\t\thasRenderableContent(headerAction) ||\n\t\thasRenderableContent(headerStart) ||\n\t\thasRenderableContent(headerEnd);\n\n\tconst hasAlert = hasRenderableContent(alert);\n\tconst hasFooterText = hasRenderableContent(footerText);\n\tconst hasFooterSlot = hasRenderableContent(footerSlot);\n\tconst hasContentTop = hasRenderableContent(contentTop);\n\tconst hasContentBottom = hasRenderableContent(contentBottom);\n\n\tconst tooltipLabel =\n\t\ttooltipAriaLabel.trim().length > 0 ? tooltipAriaLabel : 'Card info';\n\n\tconst collapseStyle: CSSProperties | undefined = isExpandable\n\t\t? {\n\t\t\t\tmaxHeight: expanded ? '' : collapsedMaxHeight,\n\t\t\t}\n\t\t: undefined;\n\n\t// Resolve surface — explicit `surface` wins, else legacy `transparent`,\n\t// else the default `'card'` chrome.\n\tconst resolvedSurface: SmartCardSurface = surface ?? (transparent ? 'flat' : 'card');\n\n\treturn (\n\t\t<CardShell\n\t\t\tref={ref}\n\t\t\tdata-surface={resolvedSurface}\n\t\t\tclassName={cn(\n\t\t\t\tSURFACE_CLASSES[resolvedSurface],\n\t\t\t\ttokens.shell,\n\t\t\t\t// `isExpandable` parks the chevron at `-bottom-4` outside the\n\t\t\t\t// shell — `overflow-visible` lets it render past the card\n\t\t\t\t// edge, otherwise the shadcn primitive's `overflow-hidden`\n\t\t\t\t// clips it.\n\t\t\t\tisExpandable && 'relative pb-1 !overflow-visible',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!hasHeader && (\n\t\t\t\t<SmartCardHeaderRow\n\t\t\t\t\ticon={icon}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\ttitleSuffix={titleSuffix}\n\t\t\t\t\tdescription={description}\n\t\t\t\t\ttooltip={tooltip}\n\t\t\t\t\ttooltipLabel={tooltipLabel}\n\t\t\t\t\theaderStart={headerStart}\n\t\t\t\t\theaderEnd={headerEnd}\n\t\t\t\t\theaderAction={headerAction}\n\t\t\t\t\tactions={cardActions}\n\t\t\t\t\tactionsLabel={actionsLabel}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\theaderDivider && 'pb-3 border-b border-border/60',\n\t\t\t\t\t\theaderClassName,\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!!hasAlert && (\n\t\t\t\t<SmartCardAlert\n\t\t\t\t\talert={alert}\n\t\t\t\t\talertVariant={alertVariant}\n\t\t\t\t\thasHeader={hasHeader}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<CardContent\n\t\t\t\tclassName={cn(\n\t\t\t\t\ttokens.contentX,\n\t\t\t\t\ttokens.contentY,\n\t\t\t\t\tisExpandable &&\n\t\t\t\t\t\t'relative overflow-hidden transition-[max-height] duration-500 ease-in-out',\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={collapseStyle}\n\t\t\t>\n\t\t\t\t{!!hasContentTop && contentTop}\n\t\t\t\t{children}\n\t\t\t\t{!!hasContentBottom && contentBottom}\n\n\t\t\t\t{!!isExpandable && !expanded && (\n\t\t\t\t\t<div\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName=\"from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</CardContent>\n\n\t\t\t{!!hasFooterText && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'justify-end text-xs text-muted-foreground',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerText}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!hasFooterSlot && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-col items-stretch',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerSlot}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!isExpandable && (\n\t\t\t\t<div className=\"absolute -bottom-4 left-1/2 -translate-x-1/2 z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\t\taria-expanded={expanded}\n\t\t\t\t\t\taria-label={expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex size-8 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t'border border-border bg-background text-foreground shadow-sm',\n\t\t\t\t\t\t\t'hover:bg-muted/40 transition-colors',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronDown\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'size-4 transition-transform duration-300',\n\t\t\t\t\t\t\t\texpanded && 'rotate-180',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span className=\"sr-only\">\n\t\t\t\t\t\t\t{expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardShell>\n\t);\n});\n\nSmartCard.displayName = 'SmartCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Re-exports — public surface lives here so `import { ... } from\n// '@/components/base/cards'` keeps working through the file split.\n// ──────────────────────────────────────────────────────────────────────────\n\nexport {\n\tdefaultSmartCardStrings,\n\ttype SmartCardStrings,\n} from './smart-card.strings';\nexport type {\n\tCardAlertVariant,\n\tCardPadding,\n\tSmartCardAction,\n\tSmartCardProps,\n\tSmartCardSkeletonProps,\n\tSmartCardSurface,\n} from './smart-card.types';\nexport {\n\tCardContent,\n\tCardDescription,\n\tCardFooter,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './partials/card-primitives';\nexport { SmartCardSkeleton } from './partials/smart-card-skeleton';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("./ui-provider-DZWtUXf2.cjs"),r=require("../lib/utils.cjs"),i=require("./button-Bd5bEIiB.cjs"),a=require("./tooltip-mvxZV_Lu.cjs"),o=require("./typography-CO9uwZhF.cjs"),s=require("./alert-V0V36Sny.cjs"),c=require("./dropdown-menu-CHQzQWUK.cjs");let l=require("react");l=e.t(l,1);let u=require("react/jsx-runtime"),d=require("lucide-react");function f({className:e,size:t=`default`,...n}){return(0,u.jsx)(`div`,{"data-slot":`card`,"data-size":t,className:r.cn(`ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col`,e),...n})}function p({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-header`,className:r.cn(`gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,e),...t})}function m({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-title`,className:r.cn(`text-base leading-normal font-medium group-data-[size=sm]/card:text-sm`,e),...t})}function h({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-description`,className:r.cn(`text-muted-foreground text-sm`,e),...t})}function g({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-content`,className:r.cn(`px-6 group-data-[size=sm]/card:px-4`,e),...t})}function _({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`card-footer`,className:r.cn(`rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center`,e),...t})}var v={root:`card--component`,header:`card--header`,title:`card--title`,description:`card--description`,content:`card--content`,footer:`card--footer`,alert:`card--alert`},y={small:{shell:`gap-space-lg py-surface-sm`,headerX:`px-surface-sm`,contentX:`px-surface-sm`,contentY:`py-0`,footerX:`px-surface-sm`,alertX:`px-surface-sm`,alertOffsetWithHeader:`-mt-1`,alertOffsetStandalone:`mt-0`},default:{shell:`gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]`,headerX:`px-[calc(var(--surface-x)+var(--space-xs))]`,contentX:`px-[calc(var(--surface-x)+var(--space-xs))]`,contentY:`py-0`,footerX:`px-[calc(var(--surface-x)+var(--space-xs))]`,alertX:`px-[calc(var(--surface-x)+var(--space-xs))]`,alertOffsetWithHeader:`-mt-1`,alertOffsetStandalone:`mt-0`}},b={card:`rounded-lg border border-border bg-card text-card-foreground shadow-xs`,flat:`bg-transparent text-card-foreground border-none shadow-none`,framed:r.cn(`rounded-lg border border-border bg-card text-card-foreground shadow-xs`,`ring-4 ring-border/25`)};function x(e){return e==null||typeof e==`boolean`?!1:typeof e==`string`?e.trim().length>0:typeof e==`number`||typeof e==`bigint`?!0:Array.isArray(e)?e.some(x):(0,l.isValidElement)(e)&&e.type===l.Fragment?x(e.props.children):!0}function S({className:e,...t}){return(0,u.jsx)(f,{className:r.cn(v.root,`flex w-full flex-col gap-3 py-4 ring-0`,e),...t})}function C({className:e,...t}){return(0,u.jsx)(p,{className:r.cn(v.header,`flex flex-col gap-1 px-4`,e),...t})}function w({className:e,children:t,...n}){return x(t)?typeof t==`string`||typeof t==`number`||typeof t==`bigint`?(0,u.jsx)(o.s,{"data-slot":`card-title`,tag:`div`,weight:`semibold`,lineHeight:`tight`,className:r.cn(v.title,`min-w-0 font-semibold`,e),...n,children:t}):(0,u.jsx)(m,{className:r.cn(v.title,`min-w-0 text-sm leading-tight font-semibold`,e),...n,children:t}):null}function T({className:e,children:t,...n}){return x(t)?typeof t==`string`||typeof t==`number`||typeof t==`bigint`?(0,u.jsx)(o.s,{"data-slot":`card-description`,tag:`div`,type:`secondary`,className:r.cn(v.description,`text-muted-foreground text-sm`,e),...n,children:t}):(0,u.jsx)(h,{className:r.cn(v.description,`text-muted-foreground text-sm`,e),...n,children:t}):null}function E({className:e,...t}){return(0,u.jsx)(g,{className:r.cn(v.content,`px-4`,e),...t})}function D({className:e,...t}){return(0,u.jsx)(_,{className:r.cn(v.footer,`flex items-center px-4`,e),...t})}function O({alert:e,alertVariant:t,hasHeader:n,padding:i}){let a=y[i];return(0,u.jsx)(`div`,{className:r.cn(v.alert,a.alertX,n?a.alertOffsetWithHeader:a.alertOffsetStandalone),children:(0,u.jsx)(s.t,{variant:t,children:(0,u.jsx)(s.r,{children:e})})})}function k({actions:e,actionsLabel:t}){return(0,u.jsxs)(c.t,{children:[(0,u.jsx)(c.g,{type:`button`,"aria-label":t,className:r.cn(`inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0`,`text-muted-foreground hover:bg-accent hover:text-accent-foreground`,`outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,`transition-colors`),children:(0,u.jsx)(d.MoreHorizontal,{className:`size-4`})}),(0,u.jsx)(c.r,{align:`end`,className:`min-w-36`,children:e.map((e,t)=>(0,u.jsxs)(c.a,{onClick:e.onClick,disabled:e.disabled,className:`gap-space-lg px-row-x py-row-y text-xs`,children:[!!e.icon&&(0,u.jsx)(`span`,{className:`flex shrink-0 items-center`,children:e.icon}),e.label]},e.id??`${e.label}-${t}`))})]})}function A({tooltipLabel:e}){return(0,u.jsx)(a.i,{render:t=>{let n=t;return(0,u.jsx)(i.t,{...n,type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,className:r.cn(`h-5 w-5 text-muted-foreground`,n.className),"aria-label":e,children:(0,u.jsx)(d.Info,{className:`size-3.5`})})}})}function j({icon:e,title:t,titleSuffix:n,description:i,tooltip:o,tooltipLabel:s,headerStart:c,headerEnd:l,headerAction:d,actions:f,actionsLabel:p,padding:m,className:h}){let g=Array.isArray(f)?f:[],_=g.length>0,v=x(e),b=x(t),S=x(n),E=x(i),D=x(o),O=x(c),j=x(l),M=x(d),N=v||b||S||D,P=j||M||_;return(0,u.jsxs)(C,{className:r.cn(`flex-row items-start justify-between gap-3 pb-0`,y[m].headerX,h),children:[(0,u.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[!!O&&c,!!N&&(0,u.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1`,children:[!!v&&(0,u.jsx)(`span`,{className:`flex shrink-0 items-center text-muted-foreground`,children:e}),(0,u.jsx)(w,{children:t}),!!S&&(0,u.jsx)(`div`,{className:`flex items-center gap-2`,children:n}),!!D&&(0,u.jsxs)(a.t,{children:[(0,u.jsx)(A,{tooltipLabel:s}),(0,u.jsx)(a.n,{children:o})]})]}),!!E&&(0,u.jsx)(T,{className:`text-left`,children:i})]}),!!P&&(0,u.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[!!j&&l,!!M&&d,!!_&&(0,u.jsx)(k,{actions:g,actionsLabel:p})]})]})}var M={expandLabel:`Expand card`,collapseLabel:`Collapse card`};function N({title:e,lines:t=2,className:n}){let i=({barClassName:e})=>(0,u.jsx)(`div`,{className:r.cn(`animate-pulse rounded bg-muted`,e)});return(0,u.jsxs)(S,{className:r.cn(b.card,`gap-4 py-6`,n),children:[(0,u.jsx)(C,{className:`flex-col gap-1.5 px-6 pb-0`,children:e?(0,u.jsx)(w,{children:e}):(0,u.jsx)(i,{barClassName:`h-4 w-32`})}),(0,u.jsx)(E,{className:`space-y-3 px-6 py-0`,children:Array.from({length:t},(e,t)=>(0,u.jsx)(i,{barClassName:r.cn(`h-4`,t===0?`w-full`:`w-3/4`)},`skel-${String(t)}`))})]})}N.displayName=`SmartCardSkeleton`;function P(e){return e===`small`||e==="default"?e:e===`sm`?`small`:`default`}var F=(0,l.forwardRef)(function({icon:e,title:a,titleSuffix:o,description:s,tooltip:c,tooltipAriaLabel:f=`Card info`,footerText:p,alert:m,alertVariant:h=`default`,surface:g,transparent:_=!1,padding:v,actions:C,actionsLabel:w=`Card actions`,headerAction:T,headerStart:k,headerEnd:A,contentTop:N,contentBottom:F,footerSlot:I,headerDivider:ee=!1,footerDivider:L=!1,expandable:R=!1,defaultExpanded:te=!1,expanded:z,onExpandedChange:B,children:ne,className:V,headerClassName:re,contentClassName:ie,footerClassName:H,strings:ae},oe){let{defaultPadding:se}=n.n(),U=P(v??se),W=y[U],G=Array.isArray(C)?C:[],K=t.useStrings(M,ae),q=R!==!1&&R!==void 0,J=typeof R==`object`&&R?.collapsedMaxHeight!==void 0?R.collapsedMaxHeight:`12rem`,ce=typeof J==`number`?`${J}px`:J,Y=z!==void 0,[le,ue]=(0,l.useState)(te),X=Y?z:le,de=(0,l.useCallback)(()=>{let e=!X;Y||ue(e),B?.(e)},[X,Y,B]),Z=x(e)||x(a)||x(s)||G.length>0||x(T)||x(k)||x(A),fe=x(m),pe=x(p),me=x(I),he=x(N),ge=x(F),_e=f.trim().length>0?f:`Card info`,Q=q?{maxHeight:X?``:ce}:void 0,$=g??(_?`flat`:`card`);return(0,u.jsxs)(S,{ref:oe,"data-surface":$,className:r.cn(b[$],W.shell,q&&`relative pb-1 !overflow-visible`,V),children:[!!Z&&(0,u.jsx)(j,{icon:e,title:a,titleSuffix:o,description:s,tooltip:c,tooltipLabel:_e,headerStart:k,headerEnd:A,headerAction:T,actions:G,actionsLabel:w,padding:U,className:r.cn(ee&&`pb-3 border-b border-border/60`,re)}),!!fe&&(0,u.jsx)(O,{alert:m,alertVariant:h,hasHeader:Z,padding:U}),(0,u.jsxs)(E,{className:r.cn(W.contentX,W.contentY,q&&`relative overflow-hidden transition-[max-height] duration-500 ease-in-out`,ie),style:Q,children:[!!he&&N,ne,!!ge&&F,!!q&&!X&&(0,u.jsx)(`div`,{"aria-hidden":`true`,className:`from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent`})]}),!!pe&&(0,u.jsx)(D,{className:r.cn(`justify-end text-xs text-muted-foreground`,W.footerX,L&&`pt-3 border-t border-border/60`,H),children:p}),!!me&&(0,u.jsx)(D,{className:r.cn(`flex-col items-stretch`,W.footerX,L&&`pt-3 border-t border-border/60`,H),children:I}),!!q&&(0,u.jsx)(`div`,{className:`absolute -bottom-4 left-1/2 -translate-x-1/2 z-10`,children:(0,u.jsxs)(i.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,size:`icon-small`,onClick:de,"aria-expanded":X,"aria-label":X?K.collapseLabel:K.expandLabel,className:r.cn(`inline-flex size-8 items-center justify-center rounded-full`,`border border-border bg-background text-foreground shadow-sm`,`hover:bg-muted/40 transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50`),children:[(0,u.jsx)(d.ChevronDown,{"aria-hidden":`true`,className:r.cn(`size-4 transition-transform duration-300`,X&&`rotate-180`)}),(0,u.jsx)(`span`,{className:`sr-only`,children:X?K.collapseLabel:K.expandLabel})]})})]})});F.displayName=`SmartCard`,Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}});
|
|
2
|
+
//# sourceMappingURL=cards-GSYfJ-oX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cards-GSYfJ-oX.cjs","names":[],"sources":["../../src/components/ui/card.tsx","../../src/components/base/cards/smart-card.tokens.ts","../../src/components/base/cards/partials/has-renderable-content.ts","../../src/components/base/cards/partials/card-primitives.tsx","../../src/components/base/cards/partials/smart-card-alert.tsx","../../src/components/base/cards/partials/smart-card-actions-menu.tsx","../../src/components/base/cards/partials/smart-card-header-row.tsx","../../src/components/base/cards/smart-card.strings.ts","../../src/components/base/cards/partials/smart-card-skeleton.tsx","../../src/components/base/cards/smart-card.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\"ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-base leading-normal font-medium group-data-[size=sm]/card:text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6 group-data-[size=sm]/card:px-4\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","import { cn } from '@/lib/utils';\n\nimport type { CardPadding, SmartCardSurface } from './smart-card.types';\n\n/**\n * BEM-style hooks applied to every SmartCard subregion. Library\n * consumers can target them in CSS / tests / analytics without\n * relying on shadcn's data-slot attributes (which are framework\n * internals). Keep these names consistent — they are part of the\n * public DOM contract.\n */\nexport const CARD_BEM = {\n\troot: 'card--component',\n\theader: 'card--header',\n\ttitle: 'card--title',\n\tdescription: 'card--description',\n\tcontent: 'card--content',\n\tfooter: 'card--footer',\n\talert: 'card--alert',\n} as const;\n\ninterface PaddingTokens {\n\tshell: string;\n\theaderX: string;\n\tcontentX: string;\n\tcontentY: string;\n\tfooterX: string;\n\talertX: string;\n\t/** Vertical offset applied when alert sits BELOW the header (pulls it up). */\n\talertOffsetWithHeader: string;\n\t/** Vertical spacing applied when alert is the first content (no header). */\n\talertOffsetStandalone: string;\n}\n\nexport const PADDING: Record<CardPadding, PaddingTokens> = {\n\tsmall: {\n\t\tshell: 'gap-space-lg py-surface-sm',\n\t\theaderX: 'px-surface-sm',\n\t\tcontentX: 'px-surface-sm',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-surface-sm',\n\t\talertX: 'px-surface-sm',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n\tdefault: {\n\t\tshell: 'gap-space-xl py-[calc(var(--surface-y)+var(--space-xs))]',\n\t\theaderX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\tcontentY: 'py-0',\n\t\tfooterX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertX: 'px-[calc(var(--surface-x)+var(--space-xs))]',\n\t\talertOffsetWithHeader: '-mt-1',\n\t\talertOffsetStandalone: 'mt-0',\n\t},\n};\n\n/**\n * Surface-specific shell classes. The `framed` variant provides one clean\n * card surface with a soft tokenized ring, not nested borders that compete\n * with the example chrome.\n */\nexport const SURFACE_CLASSES: Record<SmartCardSurface, string> = {\n\tcard: 'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\tflat: 'bg-transparent text-card-foreground border-none shadow-none',\n\tframed: cn(\n\t\t'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n\t\t'ring-4 ring-border/25',\n\t),\n};\n","import { Fragment, isValidElement, type ReactNode } from 'react';\n\n/**\n * Predicate used by SmartCard subregions to decide whether each slot\n * warrants rendering its wrapper. Numbers (incl. `0`) and JSX always\n * render; falsy / empty-string content is treated as absent. Fragments\n * recurse into their children.\n */\nexport function hasRenderableContent(content?: ReactNode): boolean {\n\tif (content === null || content === undefined) return false;\n\tif (typeof content === 'boolean') return false;\n\tif (typeof content === 'string') return content.trim().length > 0;\n\tif (typeof content === 'number' || typeof content === 'bigint') return true;\n\tif (Array.isArray(content)) return content.some(hasRenderableContent);\n\tif (isValidElement<{ children?: ReactNode }>(content)) {\n\t\tif (content.type === Fragment) return hasRenderableContent(content.props.children);\n\t\treturn true;\n\t}\n\treturn true;\n}\n","/**\n * Internal layout primitives — re-exported from `smart-card.tsx` for\n * advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each primitive is intentionally thin:\n * a single responsibility, a single set of default classes, no business\n * logic. The BEM hooks (`card--component`, `card--header`, etc.) are\n * applied here so the public DOM contract lives in one place.\n */\nimport {\n\ttype ComponentPropsWithRef,\n\ttype ComponentPropsWithoutRef,\n} from 'react';\n\nimport {\n\tCard as CardPrimitive,\n\tCardContent as CardContentPrimitive,\n\tCardDescription as CardDescriptionPrimitive,\n\tCardFooter as CardFooterPrimitive,\n\tCardHeader as CardHeaderPrimitive,\n\tCardTitle as CardTitlePrimitive,\n} from '@/components/ui/card';\nimport Text from '@/components/typography/text';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM } from '../smart-card.tokens';\n\nimport { hasRenderableContent } from './has-renderable-content';\n\nexport function CardShell({ className, ...props }: ComponentPropsWithRef<'div'>) {\n\treturn (\n\t\t<CardPrimitive\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.root,\n\t\t\t\t'flex w-full flex-col gap-3 py-4 ring-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardHeader({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardHeaderPrimitive\n\t\t\tclassName={cn(CARD_BEM.header, 'flex flex-col gap-1 px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardTitle({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardTitlePrimitive\n\t\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 text-sm leading-tight font-semibold', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardTitlePrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-title\"\n\t\t\ttag=\"div\"\n\t\t\tweight=\"semibold\"\n\t\t\tlineHeight=\"tight\"\n\t\t\tclassName={cn(CARD_BEM.title, 'min-w-0 font-semibold', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardDescription({\n\tclassName,\n\tchildren,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\tif (!hasRenderableContent(children)) return null;\n\n\tconst isPlainText =\n\t\ttypeof children === 'string' ||\n\t\ttypeof children === 'number' ||\n\t\ttypeof children === 'bigint';\n\n\tif (!isPlainText) {\n\t\treturn (\n\t\t\t<CardDescriptionPrimitive\n\t\t\t\tclassName={cn(\n\t\t\t\t\tCARD_BEM.description,\n\t\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</CardDescriptionPrimitive>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text\n\t\t\tdata-slot=\"card-description\"\n\t\t\ttag=\"div\"\n\t\t\ttype=\"secondary\"\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.description,\n\t\t\t\t'text-muted-foreground text-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\nexport function CardContent({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardContentPrimitive\n\t\t\tclassName={cn(CARD_BEM.content, 'px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function CardFooter({\n\tclassName,\n\t...props\n}: ComponentPropsWithoutRef<'div'>) {\n\treturn (\n\t\t<CardFooterPrimitive\n\t\t\tclassName={cn(CARD_BEM.footer, 'flex items-center px-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","/**\n * Inline alert banner rendered between the header and the card body.\n * Pulls itself up under the header (`alertOffsetWithHeader`) when one\n * exists so the visual gap between header bottom and alert top stays\n * tight; otherwise pushes itself down (`alertOffsetStandalone`) so it\n * doesn't kiss the card top edge.\n */\nimport type { ReactNode } from 'react';\n\nimport { Alert, AlertDescription } from '@/components/base/display/alert';\nimport { cn } from '@/lib/utils';\n\nimport { CARD_BEM, PADDING } from '../smart-card.tokens';\nimport type { CardAlertVariant, CardPadding } from '../smart-card.types';\n\ninterface AlertSlotProps {\n\talert: ReactNode | string;\n\talertVariant: CardAlertVariant;\n\thasHeader: boolean;\n\tpadding: CardPadding;\n}\n\nexport function SmartCardAlert({\n\talert,\n\talertVariant,\n\thasHeader,\n\tpadding,\n}: AlertSlotProps) {\n\tconst tokens = PADDING[padding];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tCARD_BEM.alert,\n\t\t\t\ttokens.alertX,\n\t\t\t\thasHeader ? tokens.alertOffsetWithHeader : tokens.alertOffsetStandalone,\n\t\t\t)}\n\t\t>\n\t\t\t<Alert variant={alertVariant}>\n\t\t\t\t<AlertDescription>{alert}</AlertDescription>\n\t\t\t</Alert>\n\t\t</div>\n\t);\n}\n","/**\n * SmartCard actions menu — `⋮` trigger + dropdown of consumer-supplied\n * `SmartCardAction` items. Always renders a 28×28 square trigger so it\n * reads cleanly as a circle (consumer overrides to `rounded-full`) or\n * a rectangle (default `rounded-md`).\n */\nimport { MoreHorizontal } from 'lucide-react';\n\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nimport type { SmartCardAction } from '../smart-card.types';\n\ninterface ActionsMenuProps {\n\tactions: SmartCardAction[];\n\tactionsLabel: string;\n}\n\nexport function ActionsMenu({ actions, actionsLabel }: ActionsMenuProps) {\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={actionsLabel}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inline-flex size-7 shrink-0 items-center justify-center rounded-md p-0',\n\t\t\t\t\t'text-muted-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t'outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t'transition-colors',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<MoreHorizontal className=\"size-4\" />\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent align=\"end\" className=\"min-w-36\">\n\t\t\t\t{actions.map((action, index) => (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={action.id ?? `${action.label}-${index}`}\n\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\tclassName=\"gap-space-lg px-row-x py-row-y text-xs\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!action.icon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center\">{action.icon}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{action.label}\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t))}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * SmartCardHeaderRow — the chrome above the card body. Combines icon /\n * title / description / tooltip / suffix on the leading side with the\n * trailing `headerEnd` / `headerAction` slots and the actions menu.\n *\n * `TooltipTrigger_Info` is colocated here because it's only used by the\n * header — keeping it private avoids polluting the public partial\n * surface.\n */\nimport { Info } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from '@/components/base/display/tooltip';\nimport { cn } from '@/lib/utils';\n\nimport { PADDING } from '../smart-card.tokens';\nimport type { CardPadding, SmartCardAction } from '../smart-card.types';\n\nimport { CardHeader, CardTitle, CardDescription } from './card-primitives';\nimport { hasRenderableContent } from './has-renderable-content';\nimport { ActionsMenu } from './smart-card-actions-menu';\n\nfunction TooltipTrigger_Info({ tooltipLabel }: { tooltipLabel: string }) {\n\treturn (\n\t\t<TooltipTrigger\n\t\t\trender={(triggerProps) => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst passthrough = triggerProps as Record<string, any>;\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...passthrough}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-5 w-5 text-muted-foreground',\n\t\t\t\t\t\t\tpassthrough.className,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-label={tooltipLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Info className=\"size-3.5\" />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\ninterface HeaderProps {\n\ticon?: ReactNode;\n\ttitle?: ReactNode;\n\ttitleSuffix?: ReactNode;\n\tdescription?: ReactNode;\n\ttooltip?: ReactNode;\n\ttooltipLabel: string;\n\theaderStart?: ReactNode;\n\theaderEnd?: ReactNode;\n\theaderAction?: ReactNode;\n\tactions?: SmartCardAction[];\n\tactionsLabel: string;\n\tpadding: CardPadding;\n\tclassName?: string;\n}\n\nexport function SmartCardHeaderRow({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipLabel,\n\theaderStart,\n\theaderEnd,\n\theaderAction,\n\tactions,\n\tactionsLabel,\n\tpadding,\n\tclassName,\n}: HeaderProps) {\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst hasActions = cardActions.length > 0;\n\n\tconst hasIcon = hasRenderableContent(icon);\n\tconst hasTitle = hasRenderableContent(title);\n\tconst hasTitleSuffix = hasRenderableContent(titleSuffix);\n\tconst hasDescription = hasRenderableContent(description);\n\tconst hasTooltip = hasRenderableContent(tooltip);\n\tconst hasHeaderStart = hasRenderableContent(headerStart);\n\tconst hasHeaderEnd = hasRenderableContent(headerEnd);\n\tconst hasHeaderAction = hasRenderableContent(headerAction);\n\n\tconst showTitleRow = hasIcon || hasTitle || hasTitleSuffix || hasTooltip;\n\tconst showTrailing = hasHeaderEnd || hasHeaderAction || hasActions;\n\n\treturn (\n\t\t<CardHeader\n\t\t\tclassName={cn(\n\t\t\t\t'flex-row items-start justify-between gap-3 pb-0',\n\t\t\t\tPADDING[padding].headerX,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n\t\t\t\t{!!hasHeaderStart && headerStart}\n\n\t\t\t\t{!!showTitleRow && (\n\t\t\t\t\t<div className=\"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1\">\n\t\t\t\t\t\t{!!hasIcon && (\n\t\t\t\t\t\t\t<span className=\"flex shrink-0 items-center text-muted-foreground\">\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<CardTitle>{title}</CardTitle>\n\t\t\t\t\t\t{!!hasTitleSuffix && (\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">{titleSuffix}</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!hasTooltip && (\n\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t<TooltipTrigger_Info tooltipLabel={tooltipLabel} />\n\t\t\t\t\t\t\t\t<TooltipContent>{tooltip}</TooltipContent>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasDescription && (\n\t\t\t\t\t<CardDescription className=\"text-left\">{description}</CardDescription>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{!!showTrailing && (\n\t\t\t\t<div className=\"flex shrink-0 items-center gap-2\">\n\t\t\t\t\t{!!hasHeaderEnd && headerEnd}\n\t\t\t\t\t{!!hasHeaderAction && headerAction}\n\t\t\t\t\t{!!hasActions && (\n\t\t\t\t\t\t<ActionsMenu actions={cardActions} actionsLabel={actionsLabel} />\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardHeader>\n\t);\n}\n","/**\n * SmartCard strings — i18n surface for the chrome the consumer doesn't\n * pass directly. Most copy (title, description, action labels, alert\n * body) flows in via props; the strings here cover the implicit\n * affordances (expand toggle).\n */\n\nexport interface SmartCardStrings {\n\texpandLabel: string;\n\tcollapseLabel: string;\n}\n\nexport const defaultSmartCardStrings: SmartCardStrings = {\n\texpandLabel: 'Expand card',\n\tcollapseLabel: 'Collapse card',\n};\n","/**\n * SmartCardSkeleton — placeholder shell rendered while a SmartCard's\n * data is loading. Picks up the canonical card surface so the loading\n * state visually matches the eventual `SmartCard` it'll replace.\n */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { SURFACE_CLASSES } from '../smart-card.tokens';\n\nimport {\n\tCardContent,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './card-primitives';\n\nexport interface SmartCardSkeletonProps {\n\ttitle?: ReactNode;\n\tlines?: number;\n\tclassName?: string;\n}\n\nexport function SmartCardSkeleton({\n\ttitle,\n\tlines = 2,\n\tclassName,\n}: SmartCardSkeletonProps) {\n\tconst SkeletonBar = ({ barClassName }: { barClassName?: string }) => (\n\t\t<div className={cn('animate-pulse rounded bg-muted', barClassName)} />\n\t);\n\n\treturn (\n\t\t<CardShell className={cn(SURFACE_CLASSES.card, 'gap-4 py-6', className)}>\n\t\t\t<CardHeader className=\"flex-col gap-1.5 px-6 pb-0\">\n\t\t\t\t{title ? <CardTitle>{title}</CardTitle> : <SkeletonBar barClassName=\"h-4 w-32\" />}\n\t\t\t</CardHeader>\n\t\t\t<CardContent className=\"space-y-3 px-6 py-0\">\n\t\t\t\t{Array.from({ length: lines }, (_, i) => (\n\t\t\t\t\t<SkeletonBar\n\t\t\t\t\t\tkey={`skel-${String(i)}`}\n\t\t\t\t\t\tbarClassName={cn('h-4', i === 0 ? 'w-full' : 'w-3/4')}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</CardContent>\n\t\t</CardShell>\n\t);\n}\n\nSmartCardSkeleton.displayName = 'SmartCardSkeleton';\n","/**\n * SmartCard — composed card with header (icon, title, suffix, description,\n * tooltip), actions menu, alert banner, header / content / footer slots,\n * surface variants (card / flat / framed), and an opt-in expandable body.\n *\n * The single card primitive everything else builds on — never reach past it\n * to shadcn `Card` directly. The CardShell / CardHeader / CardTitle /\n * CardDescription / CardContent / CardFooter primitives are re-exported\n * for advanced composition (deeply customised layouts that still want the\n * design-system surface tokens). Each subregion paints a BEM-style hook\n * (`card--component`, `card--header`, `card--title`, …) for CSS / test /\n * analytics targeting independent of shadcn's data-slot internals.\n *\n * The file is a thin orchestrator. The actual chrome lives in:\n * - `./smart-card.types.ts` — public prop / variant types\n * - `./smart-card.strings.ts` — i18n (expand toggle copy)\n * - `./smart-card.tokens.ts` — PADDING + SURFACE_CLASSES + CARD_BEM\n * - `./partials/card-primitives.tsx` — CardShell + CardHeader / Title /\n * Description / Content / Footer\n * - `./partials/smart-card-header-row.tsx` — header layout + actions menu\n * - `./partials/smart-card-alert.tsx` — inline alert banner\n * - `./partials/smart-card-actions-menu.tsx` — `⋮` dropdown\n * - `./partials/smart-card-skeleton.tsx` — loading placeholder\n * - `./partials/has-renderable-content.ts` — slot-empty predicate\n */\nimport { ChevronDown } from 'lucide-react';\nimport {\n\ttype CSSProperties,\n\tforwardRef,\n\tuseCallback,\n\tuseState,\n} from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { useStrings } from '@/lib/strings';\nimport { useCardConfig } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tCardContent,\n\tCardFooter,\n\tCardShell,\n} from './partials/card-primitives';\nimport { hasRenderableContent } from './partials/has-renderable-content';\nimport { SmartCardAlert } from './partials/smart-card-alert';\nimport { SmartCardHeaderRow } from './partials/smart-card-header-row';\nimport {\n\tdefaultSmartCardStrings,\n} from './smart-card.strings';\nimport {\n\tPADDING,\n\tSURFACE_CLASSES,\n} from './smart-card.tokens';\nimport type {\n\tCardPadding,\n\tSmartCardProps,\n\tSmartCardSurface,\n} from './smart-card.types';\n\nfunction normalizeCardPadding(padding: CardPadding | string | undefined): CardPadding {\n\tif (padding === 'small' || padding === 'default') return padding;\n\tif (padding === 'sm') return 'small';\n\tif (padding === 'base' || padding === 'lg') return 'default';\n\treturn 'default';\n}\n\nexport const SmartCard = forwardRef<HTMLDivElement, SmartCardProps>(function SmartCard({\n\ticon,\n\ttitle,\n\ttitleSuffix,\n\tdescription,\n\ttooltip,\n\ttooltipAriaLabel = 'Card info',\n\tfooterText,\n\talert,\n\talertVariant = 'default',\n\tsurface,\n\ttransparent = false,\n\tpadding,\n\tactions,\n\tactionsLabel = 'Card actions',\n\theaderAction,\n\theaderStart,\n\theaderEnd,\n\tcontentTop,\n\tcontentBottom,\n\tfooterSlot,\n\theaderDivider = false,\n\tfooterDivider = false,\n\texpandable = false,\n\tdefaultExpanded = false,\n\texpanded: expandedProp,\n\tonExpandedChange,\n\tchildren,\n\tclassName,\n\theaderClassName,\n\tcontentClassName,\n\tfooterClassName,\n\tstrings: stringsProp,\n}, ref) {\n\tconst { defaultPadding } = useCardConfig();\n\tconst resolvedPadding = normalizeCardPadding(padding ?? defaultPadding);\n\tconst tokens = PADDING[resolvedPadding];\n\tconst cardActions = Array.isArray(actions) ? actions : [];\n\tconst strings = useStrings(defaultSmartCardStrings, stringsProp);\n\n\tconst isExpandable = expandable !== false && expandable !== undefined;\n\tconst collapsedMaxHeightRaw =\n\t\ttypeof expandable === 'object' && expandable?.collapsedMaxHeight !== undefined\n\t\t\t? expandable.collapsedMaxHeight\n\t\t\t: '12rem';\n\tconst collapsedMaxHeight =\n\t\ttypeof collapsedMaxHeightRaw === 'number'\n\t\t\t? `${collapsedMaxHeightRaw}px`\n\t\t\t: collapsedMaxHeightRaw;\n\n\tconst isExpandedControlled = expandedProp !== undefined;\n\tconst [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n\tconst expanded = isExpandedControlled ? expandedProp : internalExpanded;\n\tconst handleToggle = useCallback(() => {\n\t\tconst next = !expanded;\n\t\tif (!isExpandedControlled) setInternalExpanded(next);\n\t\tonExpandedChange?.(next);\n\t}, [expanded, isExpandedControlled, onExpandedChange]);\n\n\tconst hasHeader =\n\t\thasRenderableContent(icon) ||\n\t\thasRenderableContent(title) ||\n\t\thasRenderableContent(description) ||\n\t\tcardActions.length > 0 ||\n\t\thasRenderableContent(headerAction) ||\n\t\thasRenderableContent(headerStart) ||\n\t\thasRenderableContent(headerEnd);\n\n\tconst hasAlert = hasRenderableContent(alert);\n\tconst hasFooterText = hasRenderableContent(footerText);\n\tconst hasFooterSlot = hasRenderableContent(footerSlot);\n\tconst hasContentTop = hasRenderableContent(contentTop);\n\tconst hasContentBottom = hasRenderableContent(contentBottom);\n\n\tconst tooltipLabel =\n\t\ttooltipAriaLabel.trim().length > 0 ? tooltipAriaLabel : 'Card info';\n\n\tconst collapseStyle: CSSProperties | undefined = isExpandable\n\t\t? {\n\t\t\t\tmaxHeight: expanded ? '' : collapsedMaxHeight,\n\t\t\t}\n\t\t: undefined;\n\n\t// Resolve surface — explicit `surface` wins, else legacy `transparent`,\n\t// else the default `'card'` chrome.\n\tconst resolvedSurface: SmartCardSurface = surface ?? (transparent ? 'flat' : 'card');\n\n\treturn (\n\t\t<CardShell\n\t\t\tref={ref}\n\t\t\tdata-surface={resolvedSurface}\n\t\t\tclassName={cn(\n\t\t\t\tSURFACE_CLASSES[resolvedSurface],\n\t\t\t\ttokens.shell,\n\t\t\t\t// `isExpandable` parks the chevron at `-bottom-4` outside the\n\t\t\t\t// shell — `overflow-visible` lets it render past the card\n\t\t\t\t// edge, otherwise the shadcn primitive's `overflow-hidden`\n\t\t\t\t// clips it.\n\t\t\t\tisExpandable && 'relative pb-1 !overflow-visible',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!hasHeader && (\n\t\t\t\t<SmartCardHeaderRow\n\t\t\t\t\ticon={icon}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\ttitleSuffix={titleSuffix}\n\t\t\t\t\tdescription={description}\n\t\t\t\t\ttooltip={tooltip}\n\t\t\t\t\ttooltipLabel={tooltipLabel}\n\t\t\t\t\theaderStart={headerStart}\n\t\t\t\t\theaderEnd={headerEnd}\n\t\t\t\t\theaderAction={headerAction}\n\t\t\t\t\tactions={cardActions}\n\t\t\t\t\tactionsLabel={actionsLabel}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\theaderDivider && 'pb-3 border-b border-border/60',\n\t\t\t\t\t\theaderClassName,\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!!hasAlert && (\n\t\t\t\t<SmartCardAlert\n\t\t\t\t\talert={alert}\n\t\t\t\t\talertVariant={alertVariant}\n\t\t\t\t\thasHeader={hasHeader}\n\t\t\t\t\tpadding={resolvedPadding}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<CardContent\n\t\t\t\tclassName={cn(\n\t\t\t\t\ttokens.contentX,\n\t\t\t\t\ttokens.contentY,\n\t\t\t\t\tisExpandable &&\n\t\t\t\t\t\t'relative overflow-hidden transition-[max-height] duration-500 ease-in-out',\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={collapseStyle}\n\t\t\t>\n\t\t\t\t{!!hasContentTop && contentTop}\n\t\t\t\t{children}\n\t\t\t\t{!!hasContentBottom && contentBottom}\n\n\t\t\t\t{!!isExpandable && !expanded && (\n\t\t\t\t\t<div\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName=\"from-background pointer-events-none absolute inset-x-0 bottom-0 h-20 rounded-b-lg bg-linear-to-t to-transparent\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</CardContent>\n\n\t\t\t{!!hasFooterText && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'justify-end text-xs text-muted-foreground',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerText}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!hasFooterSlot && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex-col items-stretch',\n\t\t\t\t\t\ttokens.footerX,\n\t\t\t\t\t\tfooterDivider && 'pt-3 border-t border-border/60',\n\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{footerSlot}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\n\t\t\t{!!isExpandable && (\n\t\t\t\t<div className=\"absolute -bottom-4 left-1/2 -translate-x-1/2 z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\tonClick={handleToggle}\n\t\t\t\t\t\taria-expanded={expanded}\n\t\t\t\t\t\taria-label={expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'inline-flex size-8 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t'border border-border bg-background text-foreground shadow-sm',\n\t\t\t\t\t\t\t'hover:bg-muted/40 transition-colors',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChevronDown\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'size-4 transition-transform duration-300',\n\t\t\t\t\t\t\t\texpanded && 'rotate-180',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span className=\"sr-only\">\n\t\t\t\t\t\t\t{expanded ? strings.collapseLabel : strings.expandLabel}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</CardShell>\n\t);\n});\n\nSmartCard.displayName = 'SmartCard';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Re-exports — public surface lives here so `import { ... } from\n// '@/components/base/cards'` keeps working through the file split.\n// ──────────────────────────────────────────────────────────────────────────\n\nexport {\n\tdefaultSmartCardStrings,\n\ttype SmartCardStrings,\n} from './smart-card.strings';\nexport type {\n\tCardAlertVariant,\n\tCardPadding,\n\tSmartCardAction,\n\tSmartCardProps,\n\tSmartCardSkeletonProps,\n\tSmartCardSurface,\n} from './smart-card.types';\nexport {\n\tCardContent,\n\tCardDescription,\n\tCardFooter,\n\tCardHeader,\n\tCardShell,\n\tCardTitle,\n} from './partials/card-primitives';\nexport { SmartCardSkeleton } from './partials/smart-card-skeleton';\n"],"mappings":"uaAIA,SAAS,EAAK,CACZ,YACA,OAAO,UACP,GAAG,GACyD,CAC5D,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,OACV,YAAW,EACX,UAAW,EAAA,GAAG,gRAAiR,CAAS,EACxS,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,cACV,UAAW,EAAA,GACT,qSACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAU,CAAE,YAAW,GAAG,GAAsC,CACvE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,aACV,UAAW,EAAA,GAAG,yEAA0E,CAAS,EACjG,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAsC,CAC7E,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,mBACV,UAAW,EAAA,GAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CAEL,CAeA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,eACV,UAAW,EAAA,GAAG,sCAAuC,CAAS,EAC9D,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,cACV,UAAW,EAAA,GAAG,iIAAkI,CAAS,EACzJ,GAAI,CACL,CAAA,CAEL,CCxEA,IAAa,EAAW,CACvB,KAAM,kBACN,OAAQ,eACR,MAAO,cACP,YAAa,oBACb,QAAS,gBACT,OAAQ,eACR,MAAO,aACR,EAea,EAA8C,CAC1D,MAAO,CACN,MAAO,6BACP,QAAS,gBACT,SAAU,gBACV,SAAU,OACV,QAAS,gBACT,OAAQ,gBACR,sBAAuB,QACvB,sBAAuB,MACxB,EACA,QAAS,CACR,MAAO,2DACP,QAAS,8CACT,SAAU,8CACV,SAAU,OACV,QAAS,8CACT,OAAQ,8CACR,sBAAuB,QACvB,sBAAuB,MACxB,CACD,EAOa,EAAoD,CAChE,KAAM,yEACN,KAAM,8DACN,OAAQ,EAAA,GACP,yEACA,uBACD,CACD,EC7DA,SAAgB,EAAqB,EAA8B,CAUlE,OATI,GAAY,MACZ,OAAO,GAAY,UAAkB,GACrC,OAAO,GAAY,SAAiB,EAAQ,KAAK,EAAE,OAAS,EAC5D,OAAO,GAAY,UAAY,OAAO,GAAY,SAAiB,GACnE,MAAM,QAAQ,CAAO,EAAU,EAAQ,KAAK,CAAoB,GACpE,EAAA,EAAA,gBAA6C,CAAO,GAC/C,EAAQ,OAAS,EAAA,SAAiB,EAAqB,EAAQ,MAAM,QAAQ,EAC1E,EAGT,CCSA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAuC,CAChF,OACC,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GACV,EAAS,KACT,yCACA,CACD,EACA,GAAI,CACJ,CAAA,CAEH,CAEA,SAAgB,EAAW,CAC1B,YACA,GAAG,GACgC,CACnC,OACC,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GAAG,EAAS,OAAQ,2BAA4B,CAAS,EACpE,GAAI,CACJ,CAAA,CAEH,CAEA,SAAgB,EAAU,CACzB,YACA,WACA,GAAG,GACgC,CAmBnC,OAlBK,EAAqB,CAAQ,EAGjC,OAAO,GAAa,UACpB,OAAO,GAAa,UACpB,OAAO,GAAa,UAcpB,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,YAAU,aACV,IAAI,MACJ,OAAO,WACP,WAAW,QACX,UAAW,EAAA,GAAG,EAAS,MAAO,wBAAyB,CAAS,EAChE,GAAI,EAEH,UACI,CAAA,GAnBL,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GAAG,EAAS,MAAO,8CAA+C,CAAS,EACtF,GAAI,EAEH,UACkB,CAAA,EAdsB,IA8B7C,CAEA,SAAgB,EAAgB,CAC/B,YACA,WACA,GAAG,GACgC,CAuBnC,OAtBK,EAAqB,CAAQ,EAGjC,OAAO,GAAa,UACpB,OAAO,GAAa,UACpB,OAAO,GAAa,UAkBpB,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,YAAU,mBACV,IAAI,MACJ,KAAK,YACL,UAAW,EAAA,GACV,EAAS,YACT,gCACA,CACD,EACA,GAAI,EAEH,UACI,CAAA,GA1BL,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GACV,EAAS,YACT,gCACA,CACD,EACA,GAAI,EAEH,UACwB,CAAA,EAlBgB,IAqC7C,CAEA,SAAgB,EAAY,CAC3B,YACA,GAAG,GACgC,CACnC,OACC,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GAAG,EAAS,QAAS,OAAQ,CAAS,EACjD,GAAI,CACJ,CAAA,CAEH,CAEA,SAAgB,EAAW,CAC1B,YACA,GAAG,GACgC,CACnC,OACC,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GAAG,EAAS,OAAQ,yBAA0B,CAAS,EAClE,GAAI,CACJ,CAAA,CAEH,CCtIA,SAAgB,EAAe,CAC9B,QACA,eACA,YACA,WACkB,CAClB,IAAM,EAAS,EAAQ,GAEvB,OACC,EAAA,EAAA,KAAC,MAAD,CACC,UAAW,EAAA,GACV,EAAS,MACT,EAAO,OACP,EAAY,EAAO,sBAAwB,EAAO,qBACnD,YAEA,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAS,YACf,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAmB,CAAwB,CAAA,CACrC,CAAA,CACH,CAAA,CAEP,CCpBA,SAAgB,EAAY,CAAE,UAAS,gBAAkC,CACxE,OACC,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAK,SACL,aAAY,EACZ,UAAW,EAAA,GACV,yEACA,qEACA,+DACA,mBACD,YAEA,EAAA,EAAA,KAAC,EAAA,eAAD,CAAgB,UAAU,QAAU,CAAA,CAChB,CAAA,GACrB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAqB,MAAM,MAAM,UAAU,oBACzC,EAAQ,KAAK,EAAQ,KACrB,EAAA,EAAA,MAAC,EAAA,EAAD,CAEC,QAAS,EAAO,QAChB,SAAU,EAAO,SACjB,UAAU,kDAJX,CAME,CAAC,CAAC,EAAO,OACT,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sCAA8B,EAAO,IAAW,CAAA,EAEhE,EAAO,KACS,GATZ,EAAO,IAAM,GAAG,EAAO,MAAM,GAAG,GASpB,CAClB,CACmB,CAAA,CACR,CAAA,CAAA,CAEhB,CC5BA,SAAS,EAAoB,CAAE,gBAA0C,CACxE,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,OAAS,GAAiB,CAEzB,IAAM,EAAc,EACpB,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,GAAI,EACJ,KAAK,SACL,QAAQ,YACR,YAAY,QACZ,KAAK,aACL,UAAW,EAAA,GACV,gCACA,EAAY,SACb,EACA,aAAY,YAEZ,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,UAAU,UAAY,CAAA,CACrB,CAAA,CAEV,CACA,CAAA,CAEH,CAkBA,SAAgB,EAAmB,CAClC,OACA,QACA,cACA,cACA,UACA,eACA,cACA,YACA,eACA,UACA,eACA,UACA,aACe,CACf,IAAM,EAAc,MAAM,QAAQ,CAAO,EAAI,EAAU,CAAC,EAClD,EAAa,EAAY,OAAS,EAElC,EAAU,EAAqB,CAAI,EACnC,EAAW,EAAqB,CAAK,EACrC,EAAiB,EAAqB,CAAW,EACjD,EAAiB,EAAqB,CAAW,EACjD,EAAa,EAAqB,CAAO,EACzC,EAAiB,EAAqB,CAAW,EACjD,EAAe,EAAqB,CAAS,EAC7C,EAAkB,EAAqB,CAAY,EAEnD,EAAe,GAAW,GAAY,GAAkB,EACxD,EAAe,GAAgB,GAAmB,EAExD,OACC,EAAA,EAAA,MAAC,EAAD,CACC,UAAW,EAAA,GACV,kDACA,EAAQ,GAAS,QACjB,CACD,WALD,EAOC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,8CAAf,CACE,CAAC,CAAC,GAAkB,EAEpB,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+DAAf,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,4DACd,CACI,CAAA,GAEP,EAAA,EAAA,KAAC,EAAD,CAAA,SAAY,CAAiB,CAAA,EAC5B,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,mCAA2B,CAAiB,CAAA,EAE3D,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAD,CAAmC,cAAe,CAAA,GAClD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAiB,CAAwB,CAAA,CACjC,CAAA,CAAA,CAEN,IAGL,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAD,CAAiB,UAAU,qBAAa,CAA6B,CAAA,CAElE,IAEJ,CAAC,CAAC,IACF,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,4CAAf,CACE,CAAC,CAAC,GAAgB,EAClB,CAAC,CAAC,GAAmB,EACrB,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAD,CAAa,QAAS,EAA2B,cAAe,CAAA,CAE7D,GAEK,GAEd,CCvIA,IAAa,EAA4C,CACxD,YAAa,cACb,cAAe,eAChB,ECSA,SAAgB,EAAkB,CACjC,QACA,QAAQ,EACR,aAC0B,CAC1B,IAAM,GAAe,CAAE,mBACtB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,GAAG,iCAAkC,CAAY,CAAI,CAAA,EAGtE,OACC,EAAA,EAAA,MAAC,EAAD,CAAW,UAAW,EAAA,GAAG,EAAgB,KAAM,aAAc,CAAS,WAAtE,EACC,EAAA,EAAA,KAAC,EAAD,CAAY,UAAU,sCACpB,GAAQ,EAAA,EAAA,KAAC,EAAD,CAAA,SAAY,CAAiB,CAAA,GAAI,EAAA,EAAA,KAAC,EAAD,CAAa,aAAa,UAAY,CAAA,CACrE,CAAA,GACZ,EAAA,EAAA,KAAC,EAAD,CAAa,UAAU,+BACrB,MAAM,KAAK,CAAE,OAAQ,CAAM,GAAI,EAAG,KAClC,EAAA,EAAA,KAAC,EAAD,CAEC,aAAc,EAAA,GAAG,MAAO,IAAM,EAAI,SAAW,OAAO,CACpD,EAFK,QAAQ,OAAO,CAAC,GAErB,CACD,CACW,CAAA,CACH,GAEb,CAEA,EAAkB,YAAc,oBCShC,SAAS,EAAqB,EAAwD,CAIrF,OAHI,IAAY,SAAW,IAAY,UAAkB,EACrD,IAAY,KAAa,QACsB,SAEpD,CAEA,IAAa,GAAA,EAAA,EAAA,YAAuD,SAAmB,CACtF,OACA,QACA,cACA,cACA,UACA,mBAAmB,YACnB,aACA,QACA,eAAe,UACf,UACA,cAAc,GACd,UACA,UACA,eAAe,eACf,eACA,cACA,YACA,aACA,gBACA,aACA,iBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,mBAAkB,GAClB,SAAU,EACV,mBACA,YACA,YACA,mBACA,oBACA,kBACA,QAAS,IACP,GAAK,CACP,GAAM,CAAE,mBAAmB,EAAA,EAAc,EACnC,EAAkB,EAAqB,GAAW,EAAc,EAChE,EAAS,EAAQ,GACjB,EAAc,MAAM,QAAQ,CAAO,EAAI,EAAU,CAAC,EAClD,EAAU,EAAA,WAAW,EAAyB,EAAW,EAEzD,EAAe,IAAe,IAAS,IAAe,IAAA,GACtD,EACL,OAAO,GAAe,UAAY,GAAY,qBAAuB,IAAA,GAClE,EAAW,mBACX,QACE,GACL,OAAO,GAA0B,SAC9B,GAAG,EAAsB,IACzB,EAEE,EAAuB,IAAiB,IAAA,GACxC,CAAC,GAAkB,KAAA,EAAA,EAAA,UAAgC,EAAe,EAClE,EAAW,EAAuB,EAAe,GACjD,IAAA,EAAA,EAAA,iBAAiC,CACtC,IAAM,EAAO,CAAC,EACT,GAAsB,GAAoB,CAAI,EACnD,IAAmB,CAAI,CACxB,EAAG,CAAC,EAAU,EAAsB,CAAgB,CAAC,EAE/C,EACL,EAAqB,CAAI,GACzB,EAAqB,CAAK,GAC1B,EAAqB,CAAW,GAChC,EAAY,OAAS,GACrB,EAAqB,CAAY,GACjC,EAAqB,CAAW,GAChC,EAAqB,CAAS,EAEzB,GAAW,EAAqB,CAAK,EACrC,GAAgB,EAAqB,CAAU,EAC/C,GAAgB,EAAqB,CAAU,EAC/C,GAAgB,EAAqB,CAAU,EAC/C,GAAmB,EAAqB,CAAa,EAErD,GACL,EAAiB,KAAK,EAAE,OAAS,EAAI,EAAmB,YAEnD,EAA2C,EAC9C,CACA,UAAW,EAAW,GAAK,EAC5B,EACC,IAAA,GAIG,EAAoC,IAAY,EAAc,OAAS,QAE7E,OACC,EAAA,EAAA,MAAC,EAAD,CACM,OACL,eAAc,EACd,UAAW,EAAA,GACV,EAAgB,GAChB,EAAO,MAKP,GAAgB,kCAChB,CACD,WAZD,CAcE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAD,CACO,OACC,QACM,cACA,cACJ,UACK,gBACD,cACF,YACG,eACd,QAAS,EACK,eACd,QAAS,EACT,UAAW,EAAA,GACV,IAAiB,iCACjB,EACD,CACA,CAAA,EAGD,CAAC,CAAC,KACF,EAAA,EAAA,KAAC,EAAD,CACQ,QACO,eACH,YACX,QAAS,CACT,CAAA,GAGF,EAAA,EAAA,MAAC,EAAD,CACC,UAAW,EAAA,GACV,EAAO,SACP,EAAO,SACP,GACC,4EACD,EACD,EACA,MAAO,WARR,CAUE,CAAC,CAAC,IAAiB,EACnB,GACA,CAAC,CAAC,IAAoB,EAEtB,CAAC,CAAC,GAAgB,CAAC,IACnB,EAAA,EAAA,KAAC,MAAD,CACC,cAAY,OACZ,UAAU,iHACV,CAAA,CAEU,IAEZ,CAAC,CAAC,KACF,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GACV,4CACA,EAAO,QACP,GAAiB,iCACjB,CACD,WAEC,CACU,CAAA,EAGZ,CAAC,CAAC,KACF,EAAA,EAAA,KAAC,EAAD,CACC,UAAW,EAAA,GACV,yBACA,EAAO,QACP,GAAiB,iCACjB,CACD,WAEC,CACU,CAAA,EAGZ,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,8DACd,EAAA,EAAA,MAAC,EAAA,EAAD,CACC,KAAK,SACL,QAAQ,YACR,YAAY,UACZ,KAAK,aACL,QAAS,GACT,gBAAe,EACf,aAAY,EAAW,EAAQ,cAAgB,EAAQ,YACvD,UAAW,EAAA,GACV,8DACA,+DACA,sCACA,4EACD,WAbD,EAeC,EAAA,EAAA,KAAC,EAAA,YAAD,CACC,cAAY,OACZ,UAAW,EAAA,GACV,2CACA,GAAY,YACb,CACA,CAAA,GACD,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mBACd,EAAW,EAAQ,cAAgB,EAAQ,WACvC,CAAA,CACC,GACJ,CAAA,CAEI,GAEb,CAAC,EAED,EAAU,YAAc"}
|