admin-ui-starter-kit 0.6.9 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/admin-ui-consumer-migration/SKILL.md +29 -1
- package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +14 -0
- package/.agents/skills/admin-ui-consumer-migration/references/theme-overrides.md +172 -0
- package/.agents/skills/component-library-rules/SKILL.md +5 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.json +22 -3
- package/.agents/skills/component-library-rules/references/components/INDEX.md +21 -2
- package/.agents/skills/component-library-rules/references/components/base__avatar.md +3 -3
- package/.agents/skills/component-library-rules/references/components/base__carousel.md +8 -5
- package/.agents/skills/component-library-rules/references/components/base__css-variables.md +1 -0
- package/.agents/skills/component-library-rules/references/components/base__currency.md +10 -11
- package/.agents/skills/component-library-rules/references/components/base__item.md +7 -7
- package/.agents/skills/component-library-rules/references/components/base__money-display.md +4 -0
- package/.agents/skills/component-library-rules/references/components/base__typography.md +3 -3
- package/.agents/skills/component-library-rules/references/components/composed__commerce-address-card.md +74 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-cart-summary.md +84 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-coupon-input.md +52 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-discount-stack.md +58 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-inventory-section.md +168 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-loyalty-points.md +60 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-order-status.md +62 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-payment-method.md +58 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-refund-status.md +58 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-seo-listing.md +106 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-shipment-tracking.md +65 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-subscription-summary.md +66 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-tax-breakdown.md +60 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-upcoming-booking.md +62 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce-voucher-entry.md +60 -0
- package/.agents/skills/component-library-rules/references/components/composed__commerce.md +29 -143
- package/.agents/skills/component-library-rules/references/components/features__products.md +18 -462
- package/.agents/skills/component-library-rules/references/components/features__products__actions.md +37 -0
- package/.agents/skills/component-library-rules/references/components/features__products__support-rail.md +73 -0
- package/.agents/skills/component-library-rules/references/components/features__products__variant-details.md +97 -0
- package/.agents/skills/component-library-rules/references/components/features__products__variant-management.md +269 -0
- package/.agents/skills/component-library-rules/references/components/layout__layout-auth.md +1 -1
- package/.agents/skills/component-library-rules/references/testing.md +1 -1
- package/.agents/skills/token-system/SKILL.md +4 -1
- package/AGENTS.md +4 -3
- package/COMPONENT_SELECTION.md +15 -0
- package/INTEGRATION.md +41 -2
- package/MIGRATION.md +7 -7
- package/README.md +7 -3
- package/dist/_shared/accordion-CSRRDWVZ.js +135 -0
- package/dist/_shared/accordion-CSRRDWVZ.js.map +1 -0
- package/dist/_shared/accordion-ClVkIaCy.cjs +2 -0
- package/dist/_shared/accordion-ClVkIaCy.cjs.map +1 -0
- package/dist/_shared/action-menu-8RN2_Jdr.js +96 -0
- package/dist/_shared/action-menu-8RN2_Jdr.js.map +1 -0
- package/dist/_shared/action-menu-Cx2xaBjN.cjs +2 -0
- package/dist/_shared/action-menu-Cx2xaBjN.cjs.map +1 -0
- package/dist/_shared/ai-artifact-BO0XGFHz.cjs +3 -0
- package/dist/_shared/ai-artifact-BO0XGFHz.cjs.map +1 -0
- package/dist/_shared/ai-artifact-CbsGR1t8.js +1099 -0
- package/dist/_shared/ai-artifact-CbsGR1t8.js.map +1 -0
- package/dist/_shared/auth-CwipRgNB.cjs +2 -0
- package/dist/_shared/auth-CwipRgNB.cjs.map +1 -0
- package/dist/_shared/auth-Wipu0Oa_.js +643 -0
- package/dist/_shared/auth-Wipu0Oa_.js.map +1 -0
- package/dist/_shared/badge-B0Ashqkn.cjs +2 -0
- package/dist/_shared/badge-B0Ashqkn.cjs.map +1 -0
- package/dist/_shared/badge-DOJpEtsa.js +110 -0
- package/dist/_shared/badge-DOJpEtsa.js.map +1 -0
- package/dist/_shared/breadcrumbs-C7PI8sxx.cjs +2 -0
- package/dist/_shared/breadcrumbs-C7PI8sxx.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-xNjbIrGc.js +105 -0
- package/dist/_shared/breadcrumbs-xNjbIrGc.js.map +1 -0
- package/dist/_shared/button-CB8e7fui.cjs +2 -0
- package/dist/_shared/button-CB8e7fui.cjs.map +1 -0
- package/dist/_shared/button-CNEMqDHK.js +192 -0
- package/dist/_shared/button-CNEMqDHK.js.map +1 -0
- package/dist/_shared/buttons-BCFKQuB5.js +137 -0
- package/dist/_shared/buttons-BCFKQuB5.js.map +1 -0
- package/dist/_shared/buttons-DHj5I2YL.cjs +2 -0
- package/dist/_shared/buttons-DHj5I2YL.cjs.map +1 -0
- package/dist/_shared/card-radio-group-DdubYUJ6.cjs +2 -0
- package/dist/_shared/card-radio-group-DdubYUJ6.cjs.map +1 -0
- package/dist/_shared/card-radio-group-Du6rzuoC.js +150 -0
- package/dist/_shared/card-radio-group-Du6rzuoC.js.map +1 -0
- package/dist/_shared/cards-B7voInTJ.js +430 -0
- package/dist/_shared/cards-B7voInTJ.js.map +1 -0
- package/dist/_shared/cards-DvE5gRFf.cjs +2 -0
- package/dist/_shared/cards-DvE5gRFf.cjs.map +1 -0
- package/dist/_shared/combobox-AbXh9ft4.cjs +2 -0
- package/dist/_shared/combobox-AbXh9ft4.cjs.map +1 -0
- package/dist/_shared/combobox-ImXiC1qy.js +957 -0
- package/dist/_shared/combobox-ImXiC1qy.js.map +1 -0
- package/dist/_shared/command-B-Yokco3.js +39 -0
- package/dist/_shared/command-B-Yokco3.js.map +1 -0
- package/dist/_shared/command-kcPx4TM_.cjs +2 -0
- package/dist/_shared/command-kcPx4TM_.cjs.map +1 -0
- package/dist/_shared/comments-BR5ENvoo.cjs +2 -0
- package/dist/_shared/comments-BR5ENvoo.cjs.map +1 -0
- package/dist/_shared/comments-a3l--GJ-.js +952 -0
- package/dist/_shared/comments-a3l--GJ-.js.map +1 -0
- package/dist/_shared/containers-8ryMAXNr.js +48 -0
- package/dist/_shared/containers-8ryMAXNr.js.map +1 -0
- package/dist/_shared/containers-BcrM8-22.cjs +2 -0
- package/dist/_shared/containers-BcrM8-22.cjs.map +1 -0
- package/dist/_shared/copyable-C0KJlRVr.js +38 -0
- package/dist/_shared/copyable-C0KJlRVr.js.map +1 -0
- package/dist/_shared/copyable-tJxsOyn-.cjs +2 -0
- package/dist/_shared/copyable-tJxsOyn-.cjs.map +1 -0
- package/dist/_shared/data-display-B9Lciun3.cjs +2 -0
- package/dist/_shared/data-display-B9Lciun3.cjs.map +1 -0
- package/dist/_shared/data-display-CYmwUdmU.js +1878 -0
- package/dist/_shared/data-display-CYmwUdmU.js.map +1 -0
- package/dist/_shared/date-picker-BaPDfs1p.js +1361 -0
- package/dist/_shared/date-picker-BaPDfs1p.js.map +1 -0
- package/dist/_shared/date-picker-DrkoZZdr.cjs +2 -0
- package/dist/_shared/date-picker-DrkoZZdr.cjs.map +1 -0
- package/dist/_shared/date-pickers-CT3aZpPn.cjs +2 -0
- package/dist/_shared/date-pickers-CT3aZpPn.cjs.map +1 -0
- package/dist/_shared/date-pickers-DRp0VM7k.js +329 -0
- package/dist/_shared/date-pickers-DRp0VM7k.js.map +1 -0
- package/dist/_shared/display-BHIs_Y_j.js +1006 -0
- package/dist/_shared/display-BHIs_Y_j.js.map +1 -0
- package/dist/_shared/display-DV7n0KA1.cjs +2 -0
- package/dist/_shared/display-DV7n0KA1.cjs.map +1 -0
- package/dist/_shared/dropdown-menu-5fFMhKo4.js +147 -0
- package/dist/_shared/dropdown-menu-5fFMhKo4.js.map +1 -0
- package/dist/_shared/dropdown-menu-B_SCGRL2.cjs +2 -0
- package/dist/_shared/dropdown-menu-B_SCGRL2.cjs.map +1 -0
- package/dist/_shared/form-sizing-VNEGzvM7.js +42 -0
- package/dist/_shared/form-sizing-VNEGzvM7.js.map +1 -0
- package/dist/_shared/form-sizing-lBFpJWv4.cjs +2 -0
- package/dist/_shared/form-sizing-lBFpJWv4.cjs.map +1 -0
- package/dist/_shared/forms-B7LYVbAy.cjs +2 -0
- package/dist/_shared/forms-B7LYVbAy.cjs.map +1 -0
- package/dist/_shared/forms-C5uZX_kQ.js +3534 -0
- package/dist/_shared/forms-C5uZX_kQ.js.map +1 -0
- package/dist/_shared/header-B4wGB6Ca.cjs +2 -0
- package/dist/_shared/header-B4wGB6Ca.cjs.map +1 -0
- package/dist/_shared/header-CWyOry0f.js +447 -0
- package/dist/_shared/header-CWyOry0f.js.map +1 -0
- package/dist/_shared/hooks-B4Cop5YI.cjs +2 -0
- package/dist/_shared/hooks-B4Cop5YI.cjs.map +1 -0
- package/dist/_shared/hooks-CFUZJW_S.js +95 -0
- package/dist/_shared/hooks-CFUZJW_S.js.map +1 -0
- package/dist/_shared/icon-size-CMNigtUu.js +15 -0
- package/dist/_shared/icon-size-CMNigtUu.js.map +1 -0
- package/dist/_shared/icon-size-D2NnYd0K.cjs +2 -0
- package/dist/_shared/icon-size-D2NnYd0K.cjs.map +1 -0
- package/dist/_shared/input-BEhrcsk7.js +182 -0
- package/dist/_shared/input-BEhrcsk7.js.map +1 -0
- package/dist/_shared/input-DGvh-izk.cjs +2 -0
- package/dist/_shared/input-DGvh-izk.cjs.map +1 -0
- package/dist/_shared/item-BG2iK1sy.cjs +2 -0
- package/dist/_shared/item-BG2iK1sy.cjs.map +1 -0
- package/dist/_shared/item-D75eGy8G.js +227 -0
- package/dist/_shared/item-D75eGy8G.js.map +1 -0
- package/dist/_shared/layout-CZVEJ3p_.cjs +2 -0
- package/dist/_shared/layout-CZVEJ3p_.cjs.map +1 -0
- package/dist/_shared/layout-D75TJTaD.js +268 -0
- package/dist/_shared/layout-D75TJTaD.js.map +1 -0
- package/dist/_shared/mentions-CWqC8Xds.js +506 -0
- package/dist/_shared/mentions-CWqC8Xds.js.map +1 -0
- package/dist/_shared/mentions-wtkrL2hX.cjs +2 -0
- package/dist/_shared/mentions-wtkrL2hX.cjs.map +1 -0
- package/dist/_shared/money-display-BabyaIWb.js +198 -0
- package/dist/_shared/money-display-BabyaIWb.js.map +1 -0
- package/dist/_shared/money-display-CrNRbByx.cjs +2 -0
- package/dist/_shared/money-display-CrNRbByx.cjs.map +1 -0
- package/dist/_shared/navigation-9DB-vtGI.js +436 -0
- package/dist/_shared/navigation-9DB-vtGI.js.map +1 -0
- package/dist/_shared/navigation-DAjFLSv5.cjs +2 -0
- package/dist/_shared/navigation-DAjFLSv5.cjs.map +1 -0
- package/dist/_shared/overlays-BK0J8zSv.cjs +2 -0
- package/dist/_shared/overlays-BK0J8zSv.cjs.map +1 -0
- package/dist/_shared/overlays-DKsXufDv.js +735 -0
- package/dist/_shared/overlays-DKsXufDv.js.map +1 -0
- package/dist/_shared/popover-menu-DXh14PIu.js +93 -0
- package/dist/_shared/popover-menu-DXh14PIu.js.map +1 -0
- package/dist/_shared/popover-menu-DkjPUZ4v.cjs +2 -0
- package/dist/_shared/popover-menu-DkjPUZ4v.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-DjZTJzdm.cjs +2 -0
- package/dist/_shared/rich-text-editor-DjZTJzdm.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-DloyZq46.js +620 -0
- package/dist/_shared/rich-text-editor-DloyZq46.js.map +1 -0
- package/dist/_shared/settings-AIgixHbB.cjs +2 -0
- package/dist/_shared/settings-AIgixHbB.cjs.map +1 -0
- package/dist/_shared/settings-D3KdypJk.js +143 -0
- package/dist/_shared/settings-D3KdypJk.js.map +1 -0
- package/dist/_shared/sidebar-BzBincq3.js +548 -0
- package/dist/_shared/sidebar-BzBincq3.js.map +1 -0
- package/dist/_shared/sidebar-D5NLbyow.cjs +2 -0
- package/dist/_shared/sidebar-D5NLbyow.cjs.map +1 -0
- package/dist/_shared/skeleton-Bc_qa5l_.js +256 -0
- package/dist/_shared/skeleton-Bc_qa5l_.js.map +1 -0
- package/dist/_shared/skeleton-Wq6G0Kya.cjs +2 -0
- package/dist/_shared/skeleton-Wq6G0Kya.cjs.map +1 -0
- package/dist/_shared/spinner-C-yoZUk-.cjs +2 -0
- package/dist/_shared/spinner-C-yoZUk-.cjs.map +1 -0
- package/dist/_shared/spinner-CDVWFN0N.js +67 -0
- package/dist/_shared/spinner-CDVWFN0N.js.map +1 -0
- package/dist/_shared/table-B70kyH2E.js +1377 -0
- package/dist/_shared/table-B70kyH2E.js.map +1 -0
- package/dist/_shared/table-DQA2m2F0.cjs +2 -0
- package/dist/_shared/table-DQA2m2F0.cjs.map +1 -0
- package/dist/_shared/textarea-Dx9yEZY2.js +118 -0
- package/dist/_shared/textarea-Dx9yEZY2.js.map +1 -0
- package/dist/_shared/textarea-rfnSeHHC.cjs +2 -0
- package/dist/_shared/textarea-rfnSeHHC.cjs.map +1 -0
- package/dist/_shared/typography-C_kCoR1d.js +204 -0
- package/dist/_shared/typography-C_kCoR1d.js.map +1 -0
- package/dist/_shared/typography-sXFd02zl.cjs +2 -0
- package/dist/_shared/typography-sXFd02zl.cjs.map +1 -0
- package/dist/_shared/workspace-Bw-k_HXQ.js +357 -0
- package/dist/_shared/workspace-Bw-k_HXQ.js.map +1 -0
- package/dist/_shared/workspace-CLUsYC5y.cjs +2 -0
- package/dist/_shared/workspace-CLUsYC5y.cjs.map +1 -0
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/carousel/carousel.d.ts.map +1 -1
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.cjs.map +1 -1
- package/dist/components/base/carousel/index.js +98 -97
- package/dist/components/base/carousel/index.js.map +1 -1
- package/dist/components/base/combobox/components/combobox-dropdown.d.ts.map +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/command/command.d.ts +1 -1
- package/dist/components/base/command/index.cjs +1 -1
- package/dist/components/base/command/index.js +1 -1
- package/dist/components/base/copyable/index.cjs +1 -1
- package/dist/components/base/copyable/index.js +1 -1
- package/dist/components/base/currency/index.cjs +1 -1
- package/dist/components/base/currency/index.js +1 -1
- package/dist/components/base/date-pickers/index.cjs +1 -1
- package/dist/components/base/date-pickers/index.js +2 -2
- package/dist/components/base/display/alert.d.ts.map +1 -1
- package/dist/components/base/display/chart.cjs +1 -1
- package/dist/components/base/display/chart.js +1 -1
- package/dist/components/base/display/icon-size.d.ts +6 -0
- package/dist/components/base/display/icon-size.d.ts.map +1 -0
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.d.ts +1 -0
- package/dist/components/base/display/index.d.ts.map +1 -1
- package/dist/components/base/display/index.js +10 -9
- package/dist/components/base/display/throttle-alert.d.ts.map +1 -1
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.cjs.map +1 -1
- package/dist/components/base/event-calendar/index.js +4 -4
- package/dist/components/base/event-calendar/index.js.map +1 -1
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +5 -5
- package/dist/components/base/item/index.cjs +1 -1
- package/dist/components/base/item/index.js +1 -1
- package/dist/components/base/item/item.d.ts.map +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.cjs.map +1 -1
- package/dist/components/base/map/index.js +3 -3
- package/dist/components/base/map/index.js.map +1 -1
- package/dist/components/base/map/map.d.ts +1 -1
- package/dist/components/base/map/map.d.ts.map +1 -1
- package/dist/components/base/navigation/dropdown-menu.d.ts +33 -1
- package/dist/components/base/navigation/dropdown-menu.d.ts.map +1 -1
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +4 -4
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- package/dist/components/base/spinner/index.cjs +1 -1
- package/dist/components/base/spinner/index.js +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.cjs.map +1 -1
- package/dist/components/composed/admin/index.js +10 -11
- package/dist/components/composed/admin/index.js.map +1 -1
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.cjs.map +1 -1
- package/dist/components/composed/ai/index.js +8 -9
- package/dist/components/composed/ai/index.js.map +1 -1
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.cjs.map +1 -1
- package/dist/components/composed/analytics/index.js +4 -4
- package/dist/components/composed/analytics/index.js.map +1 -1
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.cjs.map +1 -1
- package/dist/components/composed/cards/index.js +13 -15
- package/dist/components/composed/cards/index.js.map +1 -1
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.cjs.map +1 -1
- package/dist/components/composed/commerce/index.d.ts +2 -0
- package/dist/components/composed/commerce/index.d.ts.map +1 -1
- package/dist/components/composed/commerce/index.js +1246 -382
- package/dist/components/composed/commerce/index.js.map +1 -1
- package/dist/components/composed/commerce/inventory-section/index.d.ts +3 -0
- package/dist/components/composed/commerce/inventory-section/index.d.ts.map +1 -0
- package/dist/components/composed/commerce/inventory-section/inventory-section.d.ts +6 -0
- package/dist/components/composed/commerce/inventory-section/inventory-section.d.ts.map +1 -0
- package/dist/components/composed/commerce/inventory-section/types.d.ts +85 -0
- package/dist/components/composed/commerce/inventory-section/types.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/index.d.ts +4 -0
- package/dist/components/composed/commerce/seo-listing/index.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-card.d.ts +6 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-card.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-score.d.ts +6 -0
- package/dist/components/composed/commerce/seo-listing/seo-listing-score.d.ts.map +1 -0
- package/dist/components/composed/commerce/seo-listing/types.d.ts +68 -0
- package/dist/components/composed/commerce/seo-listing/types.d.ts.map +1 -0
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
- package/dist/components/composed/dark-surfaces/index.js +7 -7
- package/dist/components/composed/dark-surfaces/index.js.map +1 -1
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.cjs.map +1 -1
- package/dist/components/composed/navigation/index.js +5 -6
- package/dist/components/composed/navigation/index.js.map +1 -1
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +3 -3
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +3 -3
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +5 -5
- package/dist/components/features/ai-chat/index.cjs +1 -1
- package/dist/components/features/ai-chat/index.js +5 -5
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +4 -4
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/data-view/index.cjs +1 -1
- package/dist/components/features/data-view/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +4 -4
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.cjs.map +1 -1
- package/dist/components/features/filters/index.js +64 -64
- package/dist/components/features/filters/index.js.map +1 -1
- package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -1
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +4 -4
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +3 -3
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.cjs.map +1 -1
- package/dist/components/features/media-library/index.js +230 -206
- package/dist/components/features/media-library/index.js.map +1 -1
- package/dist/components/features/media-library/media-library.d.ts.map +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
- package/dist/components/features/media-library/media-library.strings.d.ts.map +1 -1
- package/dist/components/features/media-library/partials/media-library-partials.d.ts.map +1 -1
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/products/components/index.d.ts +3 -0
- package/dist/components/features/products/components/index.d.ts.map +1 -1
- package/dist/components/features/products/components/product-options-matrix.d.ts +6 -0
- package/dist/components/features/products/components/product-options-matrix.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variants-bulk-table.d.ts +6 -0
- package/dist/components/features/products/components/product-variants-bulk-table.d.ts.map +1 -0
- package/dist/components/features/products/components/product-variants-manager.d.ts +6 -0
- package/dist/components/features/products/components/product-variants-manager.d.ts.map +1 -0
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.cjs.map +1 -1
- package/dist/components/features/products/index.js +1705 -511
- package/dist/components/features/products/index.js.map +1 -1
- package/dist/components/features/products/products.strings.d.ts +70 -0
- package/dist/components/features/products/products.strings.d.ts.map +1 -1
- package/dist/components/features/products/products.types.d.ts +163 -1
- package/dist/components/features/products/products.types.d.ts.map +1 -1
- package/dist/components/features/resource/index.cjs +1 -1
- package/dist/components/features/resource/index.js +5 -5
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +8 -8
- package/dist/components/features/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.js +1 -1
- package/dist/components/features/sync/index.cjs +1 -1
- package/dist/components/features/sync/index.js +2 -2
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +8 -8
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/page/page-content.d.ts +1 -1
- package/dist/components/layout/page/page-content.d.ts.map +1 -1
- package/dist/components/layout/settings/index.cjs +1 -1
- package/dist/components/layout/settings/index.js +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +1 -1
- package/dist/components/typography/text-link.d.ts +3 -1
- package/dist/components/typography/text-link.d.ts.map +1 -1
- package/dist/components/typography/text.d.ts.map +1 -1
- package/dist/lib/ui-provider/types.d.ts +1 -1
- package/dist/lib/ui-provider/types.d.ts.map +1 -1
- package/dist/lib/utils.cjs +1 -1
- package/dist/lib/utils.cjs.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/services/actions/index.cjs +1 -1
- package/dist/services/actions/index.js +1 -1
- package/dist/showcase/assets/AreaChart-iGBzUSAV.js +6 -0
- package/dist/showcase/assets/CompositeItem-1e8qsdC5.js +1 -0
- package/dist/showcase/assets/CompositeRoot-DneCUh3i.js +1 -0
- package/dist/showcase/assets/DialogTrigger-CVhas4X-.js +1 -0
- package/dist/showcase/assets/LabelableContext-Bfc22fLa.js +1 -0
- package/dist/showcase/assets/MenuTrigger-WTiiOMpe.js +1 -0
- package/dist/showcase/assets/PreviewLayout-ClbLOtTa.js +1 -0
- package/dist/showcase/assets/RadioGroup-DEBYMgi5.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-CilamsvS.js +1 -0
- package/dist/showcase/assets/Separator-DSecBOlo.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-BY_Czi0-.js +1 -0
- package/dist/showcase/assets/accordion-FV2cJ9V1.js +171 -0
- package/dist/showcase/assets/accordion-variants-DRNuXgFT.js +1 -0
- package/dist/showcase/assets/action-menu-uhMTzBIl.js +1 -0
- package/dist/showcase/assets/actions-C3kChFSc.js +310 -0
- package/dist/showcase/assets/actions-DizTzuf8.js +38 -0
- package/dist/showcase/assets/activities-DQ7u_XKr.js +500 -0
- package/dist/showcase/assets/activities-feed-card-DoxFXr20.js +1 -0
- package/dist/showcase/assets/admin-CRVq1bj-.js +140 -0
- package/dist/showcase/assets/ai-DMBh2BKA.js +207 -0
- package/dist/showcase/assets/ai-artifact-DnSz7Xj1.js +2 -0
- package/dist/showcase/assets/ai-chat-Ba60tj9x.js +568 -0
- package/dist/showcase/assets/ai-elements-CaMbMARm.js +387 -0
- package/dist/showcase/assets/ai-tool-call-Cg11pnXq.js +1 -0
- package/dist/showcase/assets/alert-AeDTPQQ5.js +62 -0
- package/dist/showcase/assets/alert-BQucj-0f.js +1 -0
- package/dist/showcase/assets/alert-DY0yMYc3.js +93 -0
- package/dist/showcase/assets/api-key-list-DZiVRCkz.js +73 -0
- package/dist/showcase/assets/api-key-list-DuoC5nyO.js +1 -0
- package/dist/showcase/assets/app-sidebar-D_RbOUZC.js +1 -0
- package/dist/showcase/assets/arrow-down-J_5dmfVv.js +1 -0
- package/dist/showcase/assets/arrow-left-DeKmFjyi.js +1 -0
- package/dist/showcase/assets/arrow-right-ztHj2bIY.js +1 -0
- package/dist/showcase/assets/arrow-up-CCenfeVW.js +1 -0
- package/dist/showcase/assets/arrow-up-right-URGvP7LF.js +1 -0
- package/dist/showcase/assets/avatar-CTFW3AQa.js +1 -0
- package/dist/showcase/assets/avatar-DH3vm33j.js +1 -0
- package/dist/showcase/assets/avatar-DRi6ZWB2.js +67 -0
- package/dist/showcase/assets/avatar-eEOgFI6D.js +57 -0
- package/dist/showcase/assets/badge-C9RqIyT7.js +31 -0
- package/dist/showcase/assets/badge-check-CRkt0WPY.js +1 -0
- package/dist/showcase/assets/bell-B-bFEx5I.js +1 -0
- package/dist/showcase/assets/boolean-indicator-CD3scHDz.js +1 -0
- package/dist/showcase/assets/bot-DbSsnrvR.js +1 -0
- package/dist/showcase/assets/box-BDLbaerX.js +1 -0
- package/dist/showcase/assets/braces-nP1Ffv07.js +1 -0
- package/dist/showcase/assets/brain-B69nRyRF.js +1 -0
- package/dist/showcase/assets/brand-WHRuwaVX.js +36 -0
- package/dist/showcase/assets/breadcrumb-CYxS57Ko.js +1 -0
- package/dist/showcase/assets/breadcrumb-viDsLdax.js +52 -0
- package/dist/showcase/assets/breadcrumbs-CX6eCwn4.js +1 -0
- package/dist/showcase/assets/briefcase-BCMmOuh2.js +1 -0
- package/dist/showcase/assets/building-2-DCSQxFoC.js +1 -0
- package/dist/showcase/assets/button-It_u4rRb.js +44 -0
- package/dist/showcase/assets/button-group-B2NgHAyn.js +1 -0
- package/dist/showcase/assets/buttons-ClK1qR3J.js +272 -0
- package/dist/showcase/assets/calendar-CX89JdTd.js +16 -0
- package/dist/showcase/assets/calendar-DV83xhzB.js +1 -0
- package/dist/showcase/assets/calendar-HrkenM2F.js +1 -0
- package/dist/showcase/assets/calendar-days-O55Ncg5j.js +1 -0
- package/dist/showcase/assets/camera-C6hO-Q3l.js +1 -0
- package/dist/showcase/assets/card-CXet5wLR.js +1 -0
- package/dist/showcase/assets/card-ChwovoeQ.js +188 -0
- package/dist/showcase/assets/card-checkbox-group-DN7Ui724.js +1 -0
- package/dist/showcase/assets/card-primitives-C5YmKK4H.js +1 -0
- package/dist/showcase/assets/card-radio-group-DaiWsziy.js +1 -0
- package/dist/showcase/assets/cards-CpYk7Lcz.js +354 -0
- package/dist/showcase/assets/carousel-CaoSMqW3.js +452 -0
- package/dist/showcase/assets/cell-renderers-BTLGZyvy.js +1 -0
- package/dist/showcase/assets/chart-DukdMlSE.js +358 -0
- package/dist/showcase/assets/chart-column-BqDA22mr.js +1 -0
- package/dist/showcase/assets/checkbox-CJg8G3-s.js +1 -0
- package/dist/showcase/assets/checkbox-DlOCnOfc.js +1 -0
- package/dist/showcase/assets/chevron-down-CjLLqYjs.js +1 -0
- package/dist/showcase/assets/chevron-left-lE5l5Y1q.js +1 -0
- package/dist/showcase/assets/chevron-up-WpyEPcvJ.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-CPkjAe_j.js +1 -0
- package/dist/showcase/assets/circle-B9E-rFdh.js +1 -0
- package/dist/showcase/assets/circle-alert-DX4Q8Agf.js +1 -0
- package/dist/showcase/assets/circle-check-BdcUhuQ7.js +1 -0
- package/dist/showcase/assets/circle-check-big-CeaAGVP1.js +1 -0
- package/dist/showcase/assets/circle-dot-DoXkol-T.js +1 -0
- package/dist/showcase/assets/circle-question-mark-CYE6Hj4n.js +1 -0
- package/dist/showcase/assets/circle-x-BpB4A5gs.js +1 -0
- package/dist/showcase/assets/clock-3-B7Fa1qg-.js +1 -0
- package/dist/showcase/assets/clock-B1cuTZnL.js +1 -0
- package/dist/showcase/assets/code-xml-C_ICl6NY.js +1 -0
- package/dist/showcase/assets/collapsible-CtrQcEWW.js +27 -0
- package/dist/showcase/assets/collapsible-XZ4qRG4O.js +1 -0
- package/dist/showcase/assets/collapsible-ZP3Pv6SI.js +1 -0
- package/dist/showcase/assets/combobox-GMkDgk_z.js +685 -0
- package/dist/showcase/assets/command-BXhyoNX1.js +1 -0
- package/dist/showcase/assets/command-DNHjxTyl.js +1 -0
- package/dist/showcase/assets/comment-composer-BtE5Erp8.js +1 -0
- package/dist/showcase/assets/comment-item-TztxmXc7.js +1 -0
- package/dist/showcase/assets/comments-CEMkLRtb.js +357 -0
- package/dist/showcase/assets/commerce-BtvCQH0C.js +19 -0
- package/dist/showcase/assets/commerce-address-card-8PUGRwNW.js +33 -0
- package/dist/showcase/assets/commerce-cart-summary-nrO5v1O8.js +43 -0
- package/dist/showcase/assets/commerce-coupon-input-C-sT1FNq.js +11 -0
- package/dist/showcase/assets/commerce-discount-stack-BdGk8tbD.js +17 -0
- package/dist/showcase/assets/commerce-inventory-section-BnBu7wK5.js +123 -0
- package/dist/showcase/assets/commerce-loyalty-points-Bjei3EdW.js +19 -0
- package/dist/showcase/assets/commerce-order-status--TMOLhrS.js +21 -0
- package/dist/showcase/assets/commerce-payment-method-C8fVquyN.js +17 -0
- package/dist/showcase/assets/commerce-refund-status-Cs6dbewH.js +17 -0
- package/dist/showcase/assets/commerce-seo-listing-C4WvKFei.js +61 -0
- package/dist/showcase/assets/commerce-shipment-tracking-BcezyjSw.js +24 -0
- package/dist/showcase/assets/commerce-subscription-summary-BjhnmqOx.js +25 -0
- package/dist/showcase/assets/commerce-tax-breakdown-js8xMRDn.js +19 -0
- package/dist/showcase/assets/commerce-upcoming-booking-doggTqfA.js +20 -0
- package/dist/showcase/assets/commerce-voucher-entry-ByMZAiZO.js +19 -0
- package/dist/showcase/assets/composite-D2jjTQvZ.js +1 -0
- package/dist/showcase/assets/conditional-rendering-Cy3xN7KO.js +1 -0
- package/dist/showcase/assets/contact-card-BSH_KDbf.js +65 -0
- package/dist/showcase/assets/content-container-Q9Bp8aFE.js +1 -0
- package/dist/showcase/assets/copyable-8_0ImOB2.js +1 -0
- package/dist/showcase/assets/copyable-B3R9lXVu.js +96 -0
- package/dist/showcase/assets/course-card-zh8fH-6n.js +77 -0
- package/dist/showcase/assets/cpu-DlPQMchp.js +1 -0
- package/dist/showcase/assets/credit-card-DeuhwEKG.js +1 -0
- package/dist/showcase/assets/css-variables-BxE5DqUm.js +1223 -0
- package/dist/showcase/assets/currency-D3DomSfR.js +148 -0
- package/dist/showcase/assets/dark-surfaces-DYh199dt.js +90 -0
- package/dist/showcase/assets/data-view-HJme-PWk.js +124 -0
- package/dist/showcase/assets/data-view-s5TQvt4f.js +4 -0
- package/dist/showcase/assets/database-KGU1LGqB.js +1 -0
- package/dist/showcase/assets/date-block-CxFhNxK2.js +1 -0
- package/dist/showcase/assets/date-block-DmRDymLD.js +1 -0
- package/dist/showcase/assets/date-picker-CScVl5jV.js +1 -0
- package/dist/showcase/assets/date-pickers-D4EmH-RF.js +73 -0
- package/dist/showcase/assets/dense-info-DXbmG0Nf.js +106 -0
- package/dist/showcase/assets/design-system-consistency-D_j9P0qR.js +264 -0
- package/dist/showcase/assets/dialog-BHymSzYi.js +1 -0
- package/dist/showcase/assets/dialog-CGr-za_Y.js +1 -0
- package/dist/showcase/assets/dialog-DeXQn0Lm.js +1 -0
- package/dist/showcase/assets/display-utilities-Y1wtHZNJ.js +4 -0
- package/dist/showcase/assets/display-utilities.examples-BMKQv0ep.js +309 -0
- package/dist/showcase/assets/dist-DfpWey5P.js +1 -0
- package/dist/showcase/assets/dist-DrnHE1zU.js +45 -0
- package/dist/showcase/assets/dollar-sign-DzPcAVIr.js +1 -0
- package/dist/showcase/assets/download-YQyeAxpe.js +1 -0
- package/dist/showcase/assets/dropdown-menu-DijrdxTg.js +1 -0
- package/dist/showcase/assets/dropzone-CJQVfB6l.js +1 -0
- package/dist/showcase/assets/earth-CzKdl3sr.js +1 -0
- package/dist/showcase/assets/ellipsis-Bm3jOBg8.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-BfYWo5Lf.js +1 -0
- package/dist/showcase/assets/empty-BdJ7O2MX.js +1 -0
- package/dist/showcase/assets/empty-item-BQdBtp6f.js +49 -0
- package/dist/showcase/assets/empty-state-62UU8y5C.js +1 -0
- package/dist/showcase/assets/empty-state-CCL_J3tY.js +190 -0
- package/dist/showcase/assets/enhanced-activities-CC1UzTfz.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-B9cjPsF6.js +1 -0
- package/dist/showcase/assets/esm-B-fRlXh3.js +2 -0
- package/dist/showcase/assets/event-calendar-Bhwxq8YS.js +138 -0
- package/dist/showcase/assets/event-log-CnKaX_Qy.js +330 -0
- package/dist/showcase/assets/example-DDhaO2UY.js +1 -0
- package/dist/showcase/assets/external-link-CANOM2jg.js +1 -0
- package/dist/showcase/assets/eye-Bipckkwy.js +1 -0
- package/dist/showcase/assets/feature-announcement-lwmHkJsA.js +34 -0
- package/dist/showcase/assets/file-D3AT65yE.js +1 -0
- package/dist/showcase/assets/file-text-BzM5AARd.js +1 -0
- package/dist/showcase/assets/filter-layout-Dcg6Bnrn.js +1 -0
- package/dist/showcase/assets/filters-CqlLV9PM.js +139 -0
- package/dist/showcase/assets/fixtures-yK2xR5Qs.js +1 -0
- package/dist/showcase/assets/flag-DwDsuNoj.js +1 -0
- package/dist/showcase/assets/folder-open-CU6X87LZ.js +1 -0
- package/dist/showcase/assets/form-field-CpRcKtwS.js +1 -0
- package/dist/showcase/assets/form-sizing-Bv0A0Oi0.js +1 -0
- package/dist/showcase/assets/format-DmB3OvZa.js +1 -0
- package/dist/showcase/assets/forms-htLZTBP2.js +915 -0
- package/dist/showcase/assets/funnel-Dg-pRz2W.js +1 -0
- package/dist/showcase/assets/generic-C19aoW0F.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-r_QLBIGn.js +1 -0
- package/dist/showcase/assets/gift-CpwvL7we.js +1 -0
- package/dist/showcase/assets/giftcard-cards-DHZQPc_n.js +85 -0
- package/dist/showcase/assets/git-branch-CZga8VLM.js +1 -0
- package/dist/showcase/assets/global-search-DqJo5jCc.js +1 -0
- package/dist/showcase/assets/global-search-_HODxZaU.js +215 -0
- package/dist/showcase/assets/globe-pWzZwcAv.js +1 -0
- package/dist/showcase/assets/gradient-card-D9fPawlx.js +58 -0
- package/dist/showcase/assets/grip-vertical-oqI1TI-N.js +1 -0
- package/dist/showcase/assets/hash-DQPCJKw8.js +1 -0
- package/dist/showcase/assets/header-DkCzYf6f.js +1 -0
- package/dist/showcase/assets/header-notifications-CPiuGNR5.js +1 -0
- package/dist/showcase/assets/heart-0z9BLROt.js +1 -0
- package/dist/showcase/assets/hooks-CXwg9TyF.js +220 -0
- package/dist/showcase/assets/house-Bg4YZsNF.js +1 -0
- package/dist/showcase/assets/icon-badge-CrSkFExw.js +1 -0
- package/dist/showcase/assets/icon-badge-D1fdev_s.js +37 -0
- package/dist/showcase/assets/icon-size-BHn0d6Zp.js +1 -0
- package/dist/showcase/assets/image-BXWnqpeJ.js +1 -0
- package/dist/showcase/assets/inbox-CObYzZZR.js +1 -0
- package/dist/showcase/assets/index-DBheiRxz.css +2 -0
- package/dist/showcase/assets/index-DSBghWdd.js +10 -0
- package/dist/showcase/assets/inertValue-DOcq7b5x.js +1 -0
- package/dist/showcase/assets/info-wAcLD6Uj.js +1 -0
- package/dist/showcase/assets/inline-stat-CufTTte_.js +1 -0
- package/dist/showcase/assets/inline-stat-D4GrY6tT.js +15 -0
- package/dist/showcase/assets/input-Bq9vs-9_.js +1 -0
- package/dist/showcase/assets/input-DsP89oH1.js +1 -0
- package/dist/showcase/assets/input-group-CCaNByLp.js +1 -0
- package/dist/showcase/assets/input-group-m-swxf-o.js +47 -0
- package/dist/showcase/assets/inputs-BSEM9vfa.js +155 -0
- package/dist/showcase/assets/installation-uRaDUCjH.js +134 -0
- package/dist/showcase/assets/invoice-header-D48jDTWC.js +36 -0
- package/dist/showcase/assets/invoice-items-jRLo8FHu.js +36 -0
- package/dist/showcase/assets/invoice-mini-DLS8PQrl.js +14 -0
- package/dist/showcase/assets/invoice-table-D4y33M95.js +30 -0
- package/dist/showcase/assets/isSameDay-Cn7Vlp79.js +1 -0
- package/dist/showcase/assets/isToday-B0jKMww1.js +1 -0
- package/dist/showcase/assets/italic-BHsKu0Gj.js +1 -0
- package/dist/showcase/assets/item-BLXAOZLR.js +1 -0
- package/dist/showcase/assets/item-C8eCX4DH.js +140 -0
- package/dist/showcase/assets/item-D5xwkRvf.js +1 -0
- package/dist/showcase/assets/kanban-ujfZHhvd.js +188 -0
- package/dist/showcase/assets/key-round-B_fKEPa6.js +1 -0
- package/dist/showcase/assets/label-NSapdBaB.js +1 -0
- package/dist/showcase/assets/languages-TkdVe7-2.js +1 -0
- package/dist/showcase/assets/layers-1IEBbvoc.js +1 -0
- package/dist/showcase/assets/layout-app-shell-D4PFTEsD.js +608 -0
- package/dist/showcase/assets/layout-auth-BTriDNME.js +790 -0
- package/dist/showcase/assets/layout-containers-CLJfaL-J.js +101 -0
- package/dist/showcase/assets/layout-header-CsNPnQde.js +203 -0
- package/dist/showcase/assets/layout-page-CSejcBCR.js +315 -0
- package/dist/showcase/assets/layout-primitives-D1MJs2E3.js +34 -0
- package/dist/showcase/assets/layout-sidebar-CO8Hdnoh.js +224 -0
- package/dist/showcase/assets/layout-users-BgrXF4nn.js +117 -0
- package/dist/showcase/assets/layout-workspace-DLg1f_o-.js +191 -0
- package/dist/showcase/assets/lib-B7vzArq-.js +1 -0
- package/dist/showcase/assets/list-checks-tsvYcEx2.js +1 -0
- package/dist/showcase/assets/lock-CPztxP5s.js +1 -0
- package/dist/showcase/assets/lock-keyhole-BHaFzps8.js +1 -0
- package/dist/showcase/assets/mail-DFoR3rHO.js +1 -0
- package/dist/showcase/assets/mail-check-QV1zqP5D.js +1 -0
- package/dist/showcase/assets/map-BOo4UMER.js +124 -0
- package/dist/showcase/assets/map-pin-CEcA7jdk.js +1 -0
- package/dist/showcase/assets/media-library-CKR3NF1Y.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-Chbuzkb7.js +1 -0
- package/dist/showcase/assets/mentions-syVuen0M.js +138 -0
- package/dist/showcase/assets/menus-COIxEKPm.js +171 -0
- package/dist/showcase/assets/message-square-CYSVV7nZ.js +1 -0
- package/dist/showcase/assets/metadata-list-BHIfOKD6.js +1 -0
- package/dist/showcase/assets/metadata-list-DLI17y0k.js +286 -0
- package/dist/showcase/assets/metric-bar-OTyaeNJY.js +1 -0
- package/dist/showcase/assets/metric-grid-BcjDZqHZ.js +1 -0
- package/dist/showcase/assets/metric-opI4qu4r.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-BvhqlY9f.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-Z8xY1Gwq.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-DfzbV-8j.js +50 -0
- package/dist/showcase/assets/metrics-comparison-C71X-WeV.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-Cs1ixWQX.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-DP1guaTx.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-CVwHH3rN.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-CQGKibEU.js +42 -0
- package/dist/showcase/assets/metrics-overview-DPGjh2Gi.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-C3k7Uyt1.js +54 -0
- package/dist/showcase/assets/minus-BTHZFjKs.js +1 -0
- package/dist/showcase/assets/money-display-B8BodAKb.js +1 -0
- package/dist/showcase/assets/money-display-C7TuSgzA.js +3 -0
- package/dist/showcase/assets/month-year-picker-DQcCIbM9.js +1 -0
- package/dist/showcase/assets/navigation-BjYK7JTx.js +231 -0
- package/dist/showcase/assets/navigation-DkkHPGFq.js +90 -0
- package/dist/showcase/assets/navigation-extras-drFz7Xmf.js +43 -0
- package/dist/showcase/assets/notification-banner-CATA6COT.js +1 -0
- package/dist/showcase/assets/onboarding-checklist-CjGo74ic.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-BYRykiZn.js +1 -0
- package/dist/showcase/assets/overlays-BtfkqYL1.js +159 -0
- package/dist/showcase/assets/overlays-CzmrvPNh.js +408 -0
- package/dist/showcase/assets/overview-B5ckb1et.js +184 -0
- package/dist/showcase/assets/package-Db-MTVUx.js +1 -0
- package/dist/showcase/assets/package-check-UP9srP8w.js +1 -0
- package/dist/showcase/assets/page-BFvDdpX3.js +1 -0
- package/dist/showcase/assets/page-action-button-CROlcZJb.js +1 -0
- package/dist/showcase/assets/page-header-B8xYCCzF.js +1 -0
- package/dist/showcase/assets/pagination-B7j6cJXU.js +1 -0
- package/dist/showcase/assets/pagination-B8LN9MT7.js +42 -0
- package/dist/showcase/assets/paperclip-CAcGOT6G.js +1 -0
- package/dist/showcase/assets/password-input-DzO1QEsL.js +1 -0
- package/dist/showcase/assets/pencil-Db0qlNpO.js +1 -0
- package/dist/showcase/assets/phone-BHkprQ5O.js +1 -0
- package/dist/showcase/assets/placeholder-pattern-Ba0rjJa5.js +1 -0
- package/dist/showcase/assets/plus-CaAfJIjc.js +1 -0
- package/dist/showcase/assets/popover-BZsIv1AP.js +1 -0
- package/dist/showcase/assets/popover-DCfeA2ZY.js +1 -0
- package/dist/showcase/assets/popover-menu-kjcHCICE.js +1 -0
- package/dist/showcase/assets/product-empty-state-CSdeHHZT.js +1 -0
- package/dist/showcase/assets/product-option-action-menu-FvgEaWA7.js +1 -0
- package/dist/showcase/assets/product-rows-Cb8gLOeV.js +1 -0
- package/dist/showcase/assets/product-structure-card-CFqufBoJ.js +1 -0
- package/dist/showcase/assets/product-variant-action-menu-BvSn7PuK.js +1 -0
- package/dist/showcase/assets/products-D1aG4KFi.js +61 -0
- package/dist/showcase/assets/progress-2NWkkA6x.js +18 -0
- package/dist/showcase/assets/progress-DECH8qUu.js +1 -0
- package/dist/showcase/assets/progress-DHsjY-V1.js +1 -0
- package/dist/showcase/assets/props-table-CzpevabQ.js +1 -0
- package/dist/showcase/assets/props.generated-CXbCZMUk.json +42824 -0
- package/dist/showcase/assets/qr-code-DLeRQu83.js +1 -0
- package/dist/showcase/assets/quote-eFsPYmD1.js +1 -0
- package/dist/showcase/assets/receipt-V9T3dONa.js +1 -0
- package/dist/showcase/assets/receipt-text-866Msgc2.js +1 -0
- package/dist/showcase/assets/refinement-guide-BoerkamA.js +189 -0
- package/dist/showcase/assets/refresh-cw-Crg4uqw8.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-D8poX7JF.js +1 -0
- package/dist/showcase/assets/resource-Ca8tGlsX.js +139 -0
- package/dist/showcase/assets/resource-aE-LkpW8.js +1 -0
- package/dist/showcase/assets/resource-selector-card-DzDG2Wl6.js +43 -0
- package/dist/showcase/assets/rich-text-editor-BCTbpMcY.js +143 -0
- package/dist/showcase/assets/rich-text-editor-CdklzzLj.js +124 -0
- package/dist/showcase/assets/rotate-ccw-CCPhnEPA.js +1 -0
- package/dist/showcase/assets/route-CODe9_7c.js +1 -0
- package/dist/showcase/assets/save-B_ze9MC9.js +1 -0
- package/dist/showcase/assets/schema-form-CEmpu59s.js +327 -0
- package/dist/showcase/assets/scroll-area-BM0asGLD.js +32 -0
- package/dist/showcase/assets/scroll-area-zRw8lSrA.js +1 -0
- package/dist/showcase/assets/section-DLqBJGPH.js +1 -0
- package/dist/showcase/assets/select-B0ivd5pJ.js +1 -0
- package/dist/showcase/assets/select-BrPUZL6Z.js +1 -0
- package/dist/showcase/assets/send-B4jTMdd9.js +1 -0
- package/dist/showcase/assets/separator-7f_tdxB3.js +28 -0
- package/dist/showcase/assets/separator-BvhVS5L0.js +1 -0
- package/dist/showcase/assets/separator-DeMF0eCd.js +1 -0
- package/dist/showcase/assets/separator-Dsqit2yw.js +1 -0
- package/dist/showcase/assets/settings-2-DnZeyxSR.js +1 -0
- package/dist/showcase/assets/settings-GFwewlvm.js +1 -0
- package/dist/showcase/assets/sheet-B06fRKgl.js +1 -0
- package/dist/showcase/assets/shield-NNzIJA-o.js +1 -0
- package/dist/showcase/assets/shield-alert-dlgSUsVl.js +1 -0
- package/dist/showcase/assets/shield-check-CkqmRaJd.js +1 -0
- package/dist/showcase/assets/shopping-bag-x4S32KGc.js +1 -0
- package/dist/showcase/assets/showcase-CiXeaTrT.js +132 -0
- package/dist/showcase/assets/sidebar-BDOvomlZ.js +1 -0
- package/dist/showcase/assets/sidebar.context-M_w0AsBU.js +1 -0
- package/dist/showcase/assets/skeleton-C0-TGyFP.js +29 -0
- package/dist/showcase/assets/skeleton-ClY9N5IF.js +1 -0
- package/dist/showcase/assets/skeleton-CyCX3AHa.js +1 -0
- package/dist/showcase/assets/skeleton-JapnB0xo.js +1 -0
- package/dist/showcase/assets/slider-BagnbSUE.js +1 -0
- package/dist/showcase/assets/smart-card-BA097ZGN.js +1 -0
- package/dist/showcase/assets/sonner-bg55zTHJ.js +22 -0
- package/dist/showcase/assets/sortable.esm-DCj5rKPd.js +5 -0
- package/dist/showcase/assets/sparkles-a2TsduRv.js +1 -0
- package/dist/showcase/assets/spinner-BRTHJLPS.js +49 -0
- package/dist/showcase/assets/spinner-RQ5TsGWE.js +30 -0
- package/dist/showcase/assets/spinner-yQrc4KLG.js +1 -0
- package/dist/showcase/assets/square-pen-wg5I0K5c.js +1 -0
- package/dist/showcase/assets/stacked-avatars-BGpGV4Is.js +1 -0
- package/dist/showcase/assets/star-Ccv6TKPm.js +1 -0
- package/dist/showcase/assets/startOfDay-BslQvd9l.js +1 -0
- package/dist/showcase/assets/styles-CMmKOMCT.js +1 -0
- package/dist/showcase/assets/suggestions--A7bRqHY.js +126 -0
- package/dist/showcase/assets/support-rail-b2WhhyFB.js +26 -0
- package/dist/showcase/assets/switch-Cv_v9byU.js +1 -0
- package/dist/showcase/assets/switch-DY-b3cEd.js +1 -0
- package/dist/showcase/assets/switch-card-C-Q3eon2.js +1 -0
- package/dist/showcase/assets/sync-BmH6kK2e.js +124 -0
- package/dist/showcase/assets/table-DAil3SVn.js +686 -0
- package/dist/showcase/assets/table-DNimuqS6.js +1 -0
- package/dist/showcase/assets/table-actions-Bgp9_jhZ.js +1 -0
- package/dist/showcase/assets/tabs-DN23r2we.js +1 -0
- package/dist/showcase/assets/tabs-RbFeMoGk.js +19 -0
- package/dist/showcase/assets/tags-input-Cp-ikGn_.js +1 -0
- package/dist/showcase/assets/text-button-CPxfmks9.js +1 -0
- package/dist/showcase/assets/text-link-BBHsgNSW.js +1 -0
- package/dist/showcase/assets/textarea-BGe_VCrI.js +1 -0
- package/dist/showcase/assets/textarea-DAV6cQCw.js +1 -0
- package/dist/showcase/assets/throttle-alert-B85zpgs4.js +1 -0
- package/dist/showcase/assets/timelines-BptCi-0C.js +200 -0
- package/dist/showcase/assets/toggle-group-B4tIG940.js +1 -0
- package/dist/showcase/assets/toggles-BSkNLAjb.js +71 -0
- package/dist/showcase/assets/toggles-group-CQIwVA__.js +32 -0
- package/dist/showcase/assets/tooltip-DN6bKPgk.js +31 -0
- package/dist/showcase/assets/trash-2-DZ5FSAFb.js +1 -0
- package/dist/showcase/assets/trending-up-DtSjt9AO.js +1 -0
- package/dist/showcase/assets/truck-B0QFWMMH.js +1 -0
- package/dist/showcase/assets/typography-8sXlmgaD.js +223 -0
- package/dist/showcase/assets/ui-badge-C4odkkUK.js +28 -0
- package/dist/showcase/assets/ui-card-CU1Ga8J6.js +30 -0
- package/dist/showcase/assets/ui-table-Bp-MkWh5.js +42 -0
- package/dist/showcase/assets/upload-tray-DT0HesKW.js +138 -0
- package/dist/showcase/assets/use-layout-link-BsJvjSZp.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-Bl2oGr7T.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-C8-r9Srt.js +1 -0
- package/dist/showcase/assets/useCompositeItem-DVZX40q_.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-DWggcwRs.js +1 -0
- package/dist/showcase/assets/useLabelableId-Dx_-xVBr.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CKNY2kPx.js +1 -0
- package/dist/showcase/assets/useRender-Bk8pPQUW.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-D74GGv1k.js +1 -0
- package/dist/showcase/assets/useValueChanged-BjYsvuOC.js +1 -0
- package/dist/showcase/assets/user-DlFWtE-h.js +1 -0
- package/dist/showcase/assets/user-plus-NGAALkPS.js +1 -0
- package/dist/showcase/assets/users-DYPDZwd6.js +1 -0
- package/dist/showcase/assets/variant-details-DtdWm8Bt.js +50 -0
- package/dist/showcase/assets/variant-management-Dk_P-wBF.js +209 -0
- package/dist/showcase/assets/vendor-profile-Bf1kKKdO.js +37 -0
- package/dist/showcase/assets/video-BObmzTOM.js +1 -0
- package/dist/showcase/assets/visually-hidden-rJ25V2wc.js +1 -0
- package/dist/showcase/assets/weight-input-DpQ3yEQ3.js +1 -0
- package/dist/showcase/assets/wrench-Df-eIMsM.js +1 -0
- package/dist/showcase/assets/x-DVQ0XpIT.js +1 -0
- package/dist/showcase/assets/zap-_0WPgXWT.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/css/tokens/components.css +17 -2
- package/src/css/tokens/foundation.css +4 -2
- package/dist/_shared/accordion-8B4OFqiT.cjs +0 -2
- package/dist/_shared/accordion-8B4OFqiT.cjs.map +0 -1
- package/dist/_shared/accordion-DlpTSZ3p.js +0 -135
- package/dist/_shared/accordion-DlpTSZ3p.js.map +0 -1
- package/dist/_shared/action-menu-BYrYdpkR.cjs +0 -2
- package/dist/_shared/action-menu-BYrYdpkR.cjs.map +0 -1
- package/dist/_shared/action-menu-CYwMZX-b.js +0 -96
- package/dist/_shared/action-menu-CYwMZX-b.js.map +0 -1
- package/dist/_shared/ai-artifact-Cv8VBibf.cjs +0 -3
- package/dist/_shared/ai-artifact-Cv8VBibf.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DwfXQuh4.js +0 -1099
- package/dist/_shared/ai-artifact-DwfXQuh4.js.map +0 -1
- package/dist/_shared/auth-Cz5ci18c.cjs +0 -2
- package/dist/_shared/auth-Cz5ci18c.cjs.map +0 -1
- package/dist/_shared/auth-DDWsgFUL.js +0 -643
- package/dist/_shared/auth-DDWsgFUL.js.map +0 -1
- package/dist/_shared/badge-C65rt1M9.cjs +0 -2
- package/dist/_shared/badge-C65rt1M9.cjs.map +0 -1
- package/dist/_shared/badge-r8ae66Vd.js +0 -110
- package/dist/_shared/badge-r8ae66Vd.js.map +0 -1
- package/dist/_shared/breadcrumbs-CuT0YIfo.js +0 -105
- package/dist/_shared/breadcrumbs-CuT0YIfo.js.map +0 -1
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs +0 -2
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs.map +0 -1
- package/dist/_shared/button-Be2ayMxF.js +0 -192
- package/dist/_shared/button-Be2ayMxF.js.map +0 -1
- package/dist/_shared/button-CfQtOuBK.cjs +0 -2
- package/dist/_shared/button-CfQtOuBK.cjs.map +0 -1
- package/dist/_shared/buttons-DABiSx6N.cjs +0 -2
- package/dist/_shared/buttons-DABiSx6N.cjs.map +0 -1
- package/dist/_shared/buttons-DYQqQPpk.js +0 -137
- package/dist/_shared/buttons-DYQqQPpk.js.map +0 -1
- package/dist/_shared/card-radio-group-DKhZhBFV.cjs +0 -2
- package/dist/_shared/card-radio-group-DKhZhBFV.cjs.map +0 -1
- package/dist/_shared/card-radio-group-DRjmLN5s.js +0 -150
- package/dist/_shared/card-radio-group-DRjmLN5s.js.map +0 -1
- package/dist/_shared/cards-BJctT9KD.js +0 -428
- package/dist/_shared/cards-BJctT9KD.js.map +0 -1
- package/dist/_shared/cards-m03XN10f.cjs +0 -2
- package/dist/_shared/cards-m03XN10f.cjs.map +0 -1
- package/dist/_shared/combobox-BdBpeD3C.cjs +0 -2
- package/dist/_shared/combobox-BdBpeD3C.cjs.map +0 -1
- package/dist/_shared/combobox-D9tU_83-.js +0 -954
- package/dist/_shared/combobox-D9tU_83-.js.map +0 -1
- package/dist/_shared/command-BbJB0pjP.cjs +0 -2
- package/dist/_shared/command-BbJB0pjP.cjs.map +0 -1
- package/dist/_shared/command-IP2wy_HN.js +0 -39
- package/dist/_shared/command-IP2wy_HN.js.map +0 -1
- package/dist/_shared/comments-DAzpeuQq.cjs +0 -2
- package/dist/_shared/comments-DAzpeuQq.cjs.map +0 -1
- package/dist/_shared/comments-DzZaKP9x.js +0 -952
- package/dist/_shared/comments-DzZaKP9x.js.map +0 -1
- package/dist/_shared/containers-CB7zaAvN.cjs +0 -2
- package/dist/_shared/containers-CB7zaAvN.cjs.map +0 -1
- package/dist/_shared/containers-CLBmhGfs.js +0 -48
- package/dist/_shared/containers-CLBmhGfs.js.map +0 -1
- package/dist/_shared/copyable-BJYx2SlN.js +0 -38
- package/dist/_shared/copyable-BJYx2SlN.js.map +0 -1
- package/dist/_shared/copyable-DiDEjp8Z.cjs +0 -2
- package/dist/_shared/copyable-DiDEjp8Z.cjs.map +0 -1
- package/dist/_shared/data-display-DQUUEzCx.cjs +0 -2
- package/dist/_shared/data-display-DQUUEzCx.cjs.map +0 -1
- package/dist/_shared/data-display-LlvMEFTK.js +0 -1878
- package/dist/_shared/data-display-LlvMEFTK.js.map +0 -1
- package/dist/_shared/date-picker-CrC-lHyF.cjs +0 -2
- package/dist/_shared/date-picker-CrC-lHyF.cjs.map +0 -1
- package/dist/_shared/date-picker-DbYBek-b.js +0 -1361
- package/dist/_shared/date-picker-DbYBek-b.js.map +0 -1
- package/dist/_shared/date-pickers-9AU8YQK2.js +0 -329
- package/dist/_shared/date-pickers-9AU8YQK2.js.map +0 -1
- package/dist/_shared/date-pickers-DUEwCWig.cjs +0 -2
- package/dist/_shared/date-pickers-DUEwCWig.cjs.map +0 -1
- package/dist/_shared/display-BqoPOdof.cjs +0 -2
- package/dist/_shared/display-BqoPOdof.cjs.map +0 -1
- package/dist/_shared/display-CQoSwU74.js +0 -986
- package/dist/_shared/display-CQoSwU74.js.map +0 -1
- package/dist/_shared/dropdown-menu-CHQzQWUK.cjs +0 -2
- package/dist/_shared/dropdown-menu-CHQzQWUK.cjs.map +0 -1
- package/dist/_shared/dropdown-menu-CoWmrjYX.js +0 -147
- package/dist/_shared/dropdown-menu-CoWmrjYX.js.map +0 -1
- package/dist/_shared/form-sizing-DJus3nK3.cjs +0 -2
- package/dist/_shared/form-sizing-DJus3nK3.cjs.map +0 -1
- package/dist/_shared/form-sizing-DWjJsQSR.js +0 -42
- package/dist/_shared/form-sizing-DWjJsQSR.js.map +0 -1
- package/dist/_shared/forms-CNh-S9FK.cjs +0 -2
- package/dist/_shared/forms-CNh-S9FK.cjs.map +0 -1
- package/dist/_shared/forms-DIz3SCA9.js +0 -3534
- package/dist/_shared/forms-DIz3SCA9.js.map +0 -1
- package/dist/_shared/header-Bs61tQla.js +0 -447
- package/dist/_shared/header-Bs61tQla.js.map +0 -1
- package/dist/_shared/header-D01oOxna.cjs +0 -2
- package/dist/_shared/header-D01oOxna.cjs.map +0 -1
- package/dist/_shared/hooks-ACnpaIli.js +0 -95
- package/dist/_shared/hooks-ACnpaIli.js.map +0 -1
- package/dist/_shared/hooks-B7khuHkk.cjs +0 -2
- package/dist/_shared/hooks-B7khuHkk.cjs.map +0 -1
- package/dist/_shared/input-CzJzVyQ0.js +0 -182
- package/dist/_shared/input-CzJzVyQ0.js.map +0 -1
- package/dist/_shared/input-Dvvmn96E.cjs +0 -2
- package/dist/_shared/input-Dvvmn96E.cjs.map +0 -1
- package/dist/_shared/item-CVjjpHQd.js +0 -226
- package/dist/_shared/item-CVjjpHQd.js.map +0 -1
- package/dist/_shared/item-ChHblHhR.cjs +0 -2
- package/dist/_shared/item-ChHblHhR.cjs.map +0 -1
- package/dist/_shared/layout-CGi5w1mo.js +0 -268
- package/dist/_shared/layout-CGi5w1mo.js.map +0 -1
- package/dist/_shared/layout-ccVwjUG8.cjs +0 -2
- package/dist/_shared/layout-ccVwjUG8.cjs.map +0 -1
- package/dist/_shared/mentions-Cg_4vFxd.cjs +0 -2
- package/dist/_shared/mentions-Cg_4vFxd.cjs.map +0 -1
- package/dist/_shared/mentions-Ci9RFTfw.js +0 -506
- package/dist/_shared/mentions-Ci9RFTfw.js.map +0 -1
- package/dist/_shared/money-display-BFk9Gu21.cjs +0 -2
- package/dist/_shared/money-display-BFk9Gu21.cjs.map +0 -1
- package/dist/_shared/money-display-DpuLnsK2.js +0 -198
- package/dist/_shared/money-display-DpuLnsK2.js.map +0 -1
- package/dist/_shared/navigation-C1QN2-Vq.cjs +0 -2
- package/dist/_shared/navigation-C1QN2-Vq.cjs.map +0 -1
- package/dist/_shared/navigation-CMrLO8v5.js +0 -436
- package/dist/_shared/navigation-CMrLO8v5.js.map +0 -1
- package/dist/_shared/overlays-BJLczwpz.js +0 -735
- package/dist/_shared/overlays-BJLczwpz.js.map +0 -1
- package/dist/_shared/overlays-DbaPLT67.cjs +0 -2
- package/dist/_shared/overlays-DbaPLT67.cjs.map +0 -1
- package/dist/_shared/popover-menu-D_t6rCvN.cjs +0 -2
- package/dist/_shared/popover-menu-D_t6rCvN.cjs.map +0 -1
- package/dist/_shared/popover-menu-f2O6R_27.js +0 -93
- package/dist/_shared/popover-menu-f2O6R_27.js.map +0 -1
- package/dist/_shared/rich-text-editor-DmZHbsms.js +0 -620
- package/dist/_shared/rich-text-editor-DmZHbsms.js.map +0 -1
- package/dist/_shared/rich-text-editor-DqUU-H7i.cjs +0 -2
- package/dist/_shared/rich-text-editor-DqUU-H7i.cjs.map +0 -1
- package/dist/_shared/settings-CgtcSI8L.js +0 -143
- package/dist/_shared/settings-CgtcSI8L.js.map +0 -1
- package/dist/_shared/settings-csNmeT7b.cjs +0 -2
- package/dist/_shared/settings-csNmeT7b.cjs.map +0 -1
- package/dist/_shared/sidebar-DyGIcJd9.cjs +0 -2
- package/dist/_shared/sidebar-DyGIcJd9.cjs.map +0 -1
- package/dist/_shared/sidebar-OT-xIguQ.js +0 -548
- package/dist/_shared/sidebar-OT-xIguQ.js.map +0 -1
- package/dist/_shared/skeleton-DwF5VdMh.cjs +0 -2
- package/dist/_shared/skeleton-DwF5VdMh.cjs.map +0 -1
- package/dist/_shared/skeleton-yUXqeWzB.js +0 -256
- package/dist/_shared/skeleton-yUXqeWzB.js.map +0 -1
- package/dist/_shared/spinner-BDrUzfTo.cjs +0 -2
- package/dist/_shared/spinner-BDrUzfTo.cjs.map +0 -1
- package/dist/_shared/spinner-CuVZhJhN.js +0 -67
- package/dist/_shared/spinner-CuVZhJhN.js.map +0 -1
- package/dist/_shared/table-BVWemr79.cjs +0 -2
- package/dist/_shared/table-BVWemr79.cjs.map +0 -1
- package/dist/_shared/table-WYSjfQRr.js +0 -1377
- package/dist/_shared/table-WYSjfQRr.js.map +0 -1
- package/dist/_shared/textarea-C0iZwWdD.js +0 -118
- package/dist/_shared/textarea-C0iZwWdD.js.map +0 -1
- package/dist/_shared/textarea-bHFAtwYd.cjs +0 -2
- package/dist/_shared/textarea-bHFAtwYd.cjs.map +0 -1
- package/dist/_shared/typography-5bLhAYaK.js +0 -201
- package/dist/_shared/typography-5bLhAYaK.js.map +0 -1
- package/dist/_shared/typography-CWEobAJV.cjs +0 -2
- package/dist/_shared/typography-CWEobAJV.cjs.map +0 -1
- package/dist/_shared/workspace-BkwsqTrc.cjs +0 -2
- package/dist/_shared/workspace-BkwsqTrc.cjs.map +0 -1
- package/dist/_shared/workspace-DpU1YG1t.js +0 -357
- package/dist/_shared/workspace-DpU1YG1t.js.map +0 -1
- package/dist/showcase/assets/AreaChart-DxDBymDt.js +0 -6
- package/dist/showcase/assets/CompositeItem-owAA4Ah3.js +0 -1
- package/dist/showcase/assets/CompositeRoot-DzHTtLBs.js +0 -1
- package/dist/showcase/assets/DialogTrigger-OUBMI353.js +0 -1
- package/dist/showcase/assets/LabelableContext-Cd9Gf7TR.js +0 -1
- package/dist/showcase/assets/PreviewLayout-X_NxjYOV.js +0 -1
- package/dist/showcase/assets/RadioGroup-BzveyiIV.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-IZFF348L.js +0 -1
- package/dist/showcase/assets/Separator-CSYYEo-X.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BYSKM0e8.js +0 -1
- package/dist/showcase/assets/accordion-B9VkLXiy.js +0 -171
- package/dist/showcase/assets/accordion-variants-g7lk5hEX.js +0 -1
- package/dist/showcase/assets/action-menu-CWIvuiLO.js +0 -1
- package/dist/showcase/assets/actions-BuwzXYEF.js +0 -310
- package/dist/showcase/assets/activities-BTBlr1G4.js +0 -500
- package/dist/showcase/assets/activities-feed-card-C5lcwUFk.js +0 -1
- package/dist/showcase/assets/admin-kbK6nUjx.js +0 -140
- package/dist/showcase/assets/ai-CKu9EGmA.js +0 -207
- package/dist/showcase/assets/ai-artifact-Bg1MFGeF.js +0 -2
- package/dist/showcase/assets/ai-chat-DEntRhJD.js +0 -568
- package/dist/showcase/assets/ai-elements-DyKRCWiS.js +0 -387
- package/dist/showcase/assets/ai-tool-call-DFrTelEX.js +0 -1
- package/dist/showcase/assets/alert-C0wSpBYn.js +0 -93
- package/dist/showcase/assets/alert-CZ4rgwPr.js +0 -62
- package/dist/showcase/assets/alert-WTKIdE4s.js +0 -1
- package/dist/showcase/assets/api-key-list-BnrUT9Uf.js +0 -1
- package/dist/showcase/assets/api-key-list-bQ6QzFhA.js +0 -73
- package/dist/showcase/assets/app-sidebar-B3veRbac.js +0 -1
- package/dist/showcase/assets/arrow-down-CEXJx115.js +0 -1
- package/dist/showcase/assets/arrow-left-Ca6ri5q0.js +0 -1
- package/dist/showcase/assets/arrow-right-a3STqWgx.js +0 -1
- package/dist/showcase/assets/arrow-up-CCU1MaGq.js +0 -1
- package/dist/showcase/assets/arrow-up-right-BDImqvM2.js +0 -1
- package/dist/showcase/assets/avatar-Bwgai0SK.js +0 -67
- package/dist/showcase/assets/avatar-DSmL52Us.js +0 -57
- package/dist/showcase/assets/avatar-kK9n1a25.js +0 -1
- package/dist/showcase/assets/avatar-nb7MgV_x.js +0 -1
- package/dist/showcase/assets/badge-CTGPRSXm.js +0 -31
- package/dist/showcase/assets/badge-check-zqoYYrVj.js +0 -1
- package/dist/showcase/assets/bell-D7HWGStL.js +0 -1
- package/dist/showcase/assets/boolean-indicator-CqwlV0cf.js +0 -1
- package/dist/showcase/assets/bot-Owx4SMiU.js +0 -1
- package/dist/showcase/assets/box-BeeoLlMd.js +0 -1
- package/dist/showcase/assets/braces-fzrExVIx.js +0 -1
- package/dist/showcase/assets/brain-Da2fsBjd.js +0 -1
- package/dist/showcase/assets/brand-Bo6uwdGf.js +0 -36
- package/dist/showcase/assets/breadcrumb-B-K-6dtd.js +0 -1
- package/dist/showcase/assets/breadcrumb-B6lR9Cq2.js +0 -52
- package/dist/showcase/assets/breadcrumbs-Bamog6P5.js +0 -1
- package/dist/showcase/assets/briefcase-DQjbh28E.js +0 -1
- package/dist/showcase/assets/building-2-DaQW5yJa.js +0 -1
- package/dist/showcase/assets/button-D3skvyQS.js +0 -44
- package/dist/showcase/assets/button-group-BYtbrhme.js +0 -1
- package/dist/showcase/assets/buttons-B3IkMmNQ.js +0 -272
- package/dist/showcase/assets/calendar-C4fCDK3O.js +0 -1
- package/dist/showcase/assets/calendar-CcwkVxCK.js +0 -16
- package/dist/showcase/assets/calendar-DBkwxV9H.js +0 -1
- package/dist/showcase/assets/calendar-days-BWed1W3Z.js +0 -1
- package/dist/showcase/assets/camera-BUoAyoZT.js +0 -1
- package/dist/showcase/assets/card-7DBPqWuv.js +0 -1
- package/dist/showcase/assets/card-ClwyNDHJ.js +0 -188
- package/dist/showcase/assets/card-primitives-BE1YpEQW.js +0 -1
- package/dist/showcase/assets/card-radio-group-1NMbocuG.js +0 -1
- package/dist/showcase/assets/cards-Bu8uaGSU.js +0 -354
- package/dist/showcase/assets/carousel-dTTRRSQg.js +0 -449
- package/dist/showcase/assets/cell-renderers-CcyBuUsC.js +0 -1
- package/dist/showcase/assets/chart-BSboeIO6.js +0 -358
- package/dist/showcase/assets/chart-column-CCzA6B9l.js +0 -1
- package/dist/showcase/assets/checkbox-CSdEPNT5.js +0 -1
- package/dist/showcase/assets/checkbox-CqNLi9Q3.js +0 -1
- package/dist/showcase/assets/chevron-down-C91gNQdT.js +0 -1
- package/dist/showcase/assets/chevron-left-SiAoYFSo.js +0 -1
- package/dist/showcase/assets/chevron-up-Beb1_ET_.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-DaST4VKL.js +0 -1
- package/dist/showcase/assets/circle-D9KiRp8C.js +0 -1
- package/dist/showcase/assets/circle-alert-BQkAwFkl.js +0 -1
- package/dist/showcase/assets/circle-check-big-CN5YOJqq.js +0 -1
- package/dist/showcase/assets/circle-check-dqmKTiDe.js +0 -1
- package/dist/showcase/assets/circle-dot-B7LPN_0V.js +0 -1
- package/dist/showcase/assets/circle-question-mark-yTRkQO3d.js +0 -1
- package/dist/showcase/assets/circle-x-CW2dFcX-.js +0 -1
- package/dist/showcase/assets/clock-3-CXJ_JotW.js +0 -1
- package/dist/showcase/assets/clock-DUqvfazQ.js +0 -1
- package/dist/showcase/assets/code-xml-BmdQDeID.js +0 -1
- package/dist/showcase/assets/collapsible-C-WYhJxn.js +0 -1
- package/dist/showcase/assets/collapsible-CL37AlCX.js +0 -27
- package/dist/showcase/assets/collapsible-uGO5Rj8q.js +0 -1
- package/dist/showcase/assets/combobox-CFh5kUzj.js +0 -685
- package/dist/showcase/assets/command-CtpLaHjh.js +0 -1
- package/dist/showcase/assets/command-DSlK-QAE.js +0 -1
- package/dist/showcase/assets/comment-composer-Rr_a5tZQ.js +0 -1
- package/dist/showcase/assets/comment-item-Dme2o2KI.js +0 -1
- package/dist/showcase/assets/comments-CW2nz465.js +0 -357
- package/dist/showcase/assets/commerce-bwcq6oPn.js +0 -267
- package/dist/showcase/assets/composite-DMIR0vmP.js +0 -1
- package/dist/showcase/assets/conditional-rendering-Bk6AC76c.js +0 -1
- package/dist/showcase/assets/contact-card-BCXS9tWq.js +0 -65
- package/dist/showcase/assets/content-container-b1dC2caJ.js +0 -1
- package/dist/showcase/assets/copyable-BIABx-Vv.js +0 -96
- package/dist/showcase/assets/copyable-Ic9wzVaj.js +0 -1
- package/dist/showcase/assets/course-card-Bo5P3TYv.js +0 -77
- package/dist/showcase/assets/cpu-_VqU6yRO.js +0 -1
- package/dist/showcase/assets/credit-card-BbxO8xLo.js +0 -1
- package/dist/showcase/assets/css-variables-zqpBgnS1.js +0 -1205
- package/dist/showcase/assets/currency-Cjvt4F0b.js +0 -149
- package/dist/showcase/assets/dark-surfaces-CLwERt1f.js +0 -90
- package/dist/showcase/assets/data-view-AtyUp7b-.js +0 -124
- package/dist/showcase/assets/data-view-cnEmgP1C.js +0 -4
- package/dist/showcase/assets/database-TbVXEw7v.js +0 -1
- package/dist/showcase/assets/date-block-CDHemKnP.js +0 -1
- package/dist/showcase/assets/date-block-COb89Y_-.js +0 -1
- package/dist/showcase/assets/date-picker-CK8llBIN.js +0 -1
- package/dist/showcase/assets/date-pickers-DFfDnW9w.js +0 -73
- package/dist/showcase/assets/dense-info-CaFVDE90.js +0 -106
- package/dist/showcase/assets/design-system-consistency-CeSMuTuu.js +0 -264
- package/dist/showcase/assets/dialog-CRQNEK2K.js +0 -1
- package/dist/showcase/assets/dialog-CsCLDb0G.js +0 -1
- package/dist/showcase/assets/dialog-Qh3EHEKq.js +0 -1
- package/dist/showcase/assets/display-utilities-rP3hb4FK.js +0 -4
- package/dist/showcase/assets/display-utilities.examples-BwbvHOcx.js +0 -309
- package/dist/showcase/assets/dist-CbqRct9s.js +0 -1
- package/dist/showcase/assets/dist-iivamCjp.js +0 -45
- package/dist/showcase/assets/dollar-sign-COaRmdJE.js +0 -1
- package/dist/showcase/assets/download-yCcb4rfH.js +0 -1
- package/dist/showcase/assets/dropdown-menu-KoFNw-fX.js +0 -1
- package/dist/showcase/assets/dropzone-DLguWnmu.js +0 -1
- package/dist/showcase/assets/earth-TDRqTA4S.js +0 -1
- package/dist/showcase/assets/ellipsis-Q_fBbRE9.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-Bh8t3Z1g.js +0 -1
- package/dist/showcase/assets/empty-DvmDTSAj.js +0 -1
- package/dist/showcase/assets/empty-item-C3HP5nuw.js +0 -49
- package/dist/showcase/assets/empty-state-Dcin4cOt.js +0 -190
- package/dist/showcase/assets/empty-state-IV_GTNEI.js +0 -1
- package/dist/showcase/assets/enhanced-activities-BLf2gpes.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-ClZcVnhv.js +0 -1
- package/dist/showcase/assets/esm-Cf6QQstQ.js +0 -2
- package/dist/showcase/assets/event-calendar-zrfI_3AM.js +0 -138
- package/dist/showcase/assets/event-log-D-_CViAw.js +0 -330
- package/dist/showcase/assets/example-6bZGEb3-.js +0 -1
- package/dist/showcase/assets/external-link-7ldgjHZM.js +0 -1
- package/dist/showcase/assets/eye-pXVkim6z.js +0 -1
- package/dist/showcase/assets/feature-announcement-CFcGj3ge.js +0 -34
- package/dist/showcase/assets/file-Bn9sAGaT.js +0 -1
- package/dist/showcase/assets/file-text-Cvxg6pjh.js +0 -1
- package/dist/showcase/assets/filter-layout-DqNRRzDU.js +0 -1
- package/dist/showcase/assets/filters-CQMI_T63.js +0 -139
- package/dist/showcase/assets/flag-vI_WJ-BU.js +0 -1
- package/dist/showcase/assets/folder-open-0AyKSRQS.js +0 -1
- package/dist/showcase/assets/form-field-BaBeXn7a.js +0 -1
- package/dist/showcase/assets/form-sizing-Dltt6Fj-.js +0 -1
- package/dist/showcase/assets/format-DLLMyN-3.js +0 -1
- package/dist/showcase/assets/forms-gPD-Caru.js +0 -915
- package/dist/showcase/assets/funnel-Ca9nWMHm.js +0 -1
- package/dist/showcase/assets/generic-AAssz0h7.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-fbxSMOsb.js +0 -1
- package/dist/showcase/assets/gift-BC42Oxfz.js +0 -1
- package/dist/showcase/assets/giftcard-cards-CFKnYe0c.js +0 -85
- package/dist/showcase/assets/git-branch-B-nF8w-J.js +0 -1
- package/dist/showcase/assets/global-search-D6Gxw0G3.js +0 -1
- package/dist/showcase/assets/global-search-jsb_4idg.js +0 -215
- package/dist/showcase/assets/globe-C92uBSrO.js +0 -1
- package/dist/showcase/assets/gradient-card-D4ly60sD.js +0 -58
- package/dist/showcase/assets/hash-BShTbxlR.js +0 -1
- package/dist/showcase/assets/header-CSiNqg9Q.js +0 -1
- package/dist/showcase/assets/header-notifications-CpHeFPQF.js +0 -1
- package/dist/showcase/assets/heart-B3hXs7fr.js +0 -1
- package/dist/showcase/assets/hooks-CamAqFFh.js +0 -220
- package/dist/showcase/assets/house-4_CouE-Y.js +0 -1
- package/dist/showcase/assets/icon-badge-CePIZqWR.js +0 -1
- package/dist/showcase/assets/icon-badge-DSbvvnxh.js +0 -37
- package/dist/showcase/assets/image-BxbFIbVJ.js +0 -1
- package/dist/showcase/assets/inbox-BXab1SM6.js +0 -1
- package/dist/showcase/assets/index-BPUtPJjB.css +0 -2
- package/dist/showcase/assets/index-BjjNfnhP.js +0 -10
- package/dist/showcase/assets/inertValue-CZOzgsmF.js +0 -1
- package/dist/showcase/assets/info-DzqwCq93.js +0 -1
- package/dist/showcase/assets/inline-stat-D5ybpUh-.js +0 -15
- package/dist/showcase/assets/inline-stat-Dq34wv-6.js +0 -1
- package/dist/showcase/assets/input-C8OfUHCK.js +0 -1
- package/dist/showcase/assets/input-D34Ge3rh.js +0 -1
- package/dist/showcase/assets/input-group-BCPZ6Pwq.js +0 -1
- package/dist/showcase/assets/input-group-CySTANka.js +0 -47
- package/dist/showcase/assets/inputs-CnmHo_lj.js +0 -155
- package/dist/showcase/assets/installation-BPvseS46.js +0 -134
- package/dist/showcase/assets/invoice-header-C9JjJWQX.js +0 -36
- package/dist/showcase/assets/invoice-items-DB8tbCv9.js +0 -36
- package/dist/showcase/assets/invoice-mini-Q_PnimKL.js +0 -14
- package/dist/showcase/assets/invoice-table-CLDvpLib.js +0 -30
- package/dist/showcase/assets/isSameDay-D8bDebyL.js +0 -1
- package/dist/showcase/assets/isToday-XVjRuMtp.js +0 -1
- package/dist/showcase/assets/italic-Cm13b8qb.js +0 -1
- package/dist/showcase/assets/item-C07859JQ.js +0 -1
- package/dist/showcase/assets/item-LinnMxvu.js +0 -1
- package/dist/showcase/assets/item-i7ZUMs5t.js +0 -140
- package/dist/showcase/assets/kanban-CIMTpuN5.js +0 -188
- package/dist/showcase/assets/key-round-Bh7EzOyR.js +0 -1
- package/dist/showcase/assets/label-C3A4CjeG.js +0 -1
- package/dist/showcase/assets/languages-C37jhetw.js +0 -1
- package/dist/showcase/assets/layers-Lyr6p-Nt.js +0 -1
- package/dist/showcase/assets/layout-app-shell-BWAkl9gq.js +0 -608
- package/dist/showcase/assets/layout-auth-y1alnhc8.js +0 -790
- package/dist/showcase/assets/layout-containers-B6c-uvil.js +0 -101
- package/dist/showcase/assets/layout-header-DNhJHWNw.js +0 -203
- package/dist/showcase/assets/layout-page-CXU7CnQK.js +0 -315
- package/dist/showcase/assets/layout-primitives-StuFwfwh.js +0 -34
- package/dist/showcase/assets/layout-sidebar-D-QjnZPh.js +0 -224
- package/dist/showcase/assets/layout-users-D7KMzs3-.js +0 -117
- package/dist/showcase/assets/layout-workspace-Butr7CL5.js +0 -191
- package/dist/showcase/assets/lib-D5nOMXIt.js +0 -1
- package/dist/showcase/assets/list-checks-Cg9HZf4W.js +0 -1
- package/dist/showcase/assets/lock-Da21HhQx.js +0 -1
- package/dist/showcase/assets/lock-keyhole-DNTfa9e3.js +0 -1
- package/dist/showcase/assets/mail-Bamky-ti.js +0 -1
- package/dist/showcase/assets/mail-check-BfVYPC42.js +0 -1
- package/dist/showcase/assets/map-BTlWnRAQ.js +0 -124
- package/dist/showcase/assets/map-pin-BU2RBuvC.js +0 -1
- package/dist/showcase/assets/media-library-DJxgoGAF.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-CbXVAvbK.js +0 -1
- package/dist/showcase/assets/mentions-kMT-Z3qU.js +0 -138
- package/dist/showcase/assets/menus-bhp_n9PT.js +0 -171
- package/dist/showcase/assets/message-square-DC5Bb9Zs.js +0 -1
- package/dist/showcase/assets/metadata-list-DGr729EW.js +0 -286
- package/dist/showcase/assets/metadata-list-DyjhZi6d.js +0 -1
- package/dist/showcase/assets/metric-DRDok6Ci.js +0 -1
- package/dist/showcase/assets/metric-bar-DZsH4Q3U.js +0 -1
- package/dist/showcase/assets/metric-grid-BlFXTrid.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-oEihbEK8.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-BovaXHQX.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-CeX9Skmd.js +0 -50
- package/dist/showcase/assets/metrics-comparison-DFPSmREl.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-CXzfZwe_.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-DQJaNpYH.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-BIpv8CPU.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-EOCkRI5Z.js +0 -42
- package/dist/showcase/assets/metrics-overview-BD4s9H2T.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-t7asN5nA.js +0 -54
- package/dist/showcase/assets/minus-Dr1iTc_q.js +0 -1
- package/dist/showcase/assets/money-display-B5_VqQC0.js +0 -1
- package/dist/showcase/assets/money-display-bU2_cVGX.js +0 -1
- package/dist/showcase/assets/month-year-picker-DVRuYbLm.js +0 -1
- package/dist/showcase/assets/navigation-DBKvJoe-.js +0 -231
- package/dist/showcase/assets/navigation-DOhfmtgy.js +0 -90
- package/dist/showcase/assets/navigation-extras-BkO2TZP7.js +0 -43
- package/dist/showcase/assets/notification-banner-CE1Ei_ZT.js +0 -1
- package/dist/showcase/assets/onboarding-checklist-Bf0aoBoa.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-B2RXtyMP.js +0 -1
- package/dist/showcase/assets/overlays-4E_sUgkz.js +0 -408
- package/dist/showcase/assets/overlays-ulNl-Vhr.js +0 -159
- package/dist/showcase/assets/overview-CgymfIBq.js +0 -184
- package/dist/showcase/assets/package-CADuUP1u.js +0 -1
- package/dist/showcase/assets/package-check-O7MD6XE_.js +0 -1
- package/dist/showcase/assets/page-GB6OIgID.js +0 -1
- package/dist/showcase/assets/page-action-button-Dpprot7y.js +0 -1
- package/dist/showcase/assets/page-header-2VEUPx67.js +0 -1
- package/dist/showcase/assets/pagination-BBuRtAX9.js +0 -1
- package/dist/showcase/assets/pagination-C4mt4Q4l.js +0 -42
- package/dist/showcase/assets/paperclip-Cmyh3Bhf.js +0 -1
- package/dist/showcase/assets/password-input-CgZj1niQ.js +0 -1
- package/dist/showcase/assets/pencil-CtdXjogr.js +0 -1
- package/dist/showcase/assets/phone-CAFMH1vV.js +0 -1
- package/dist/showcase/assets/placeholder-pattern-DHKm-uYV.js +0 -1
- package/dist/showcase/assets/plus-CN2dzUxL.js +0 -1
- package/dist/showcase/assets/popover-DILNXLWy.js +0 -1
- package/dist/showcase/assets/popover-menu-Bp08xxOf.js +0 -1
- package/dist/showcase/assets/popover-o1EO2yVS.js +0 -1
- package/dist/showcase/assets/products-CCLAbHBN.js +0 -423
- package/dist/showcase/assets/progress-BGna-ZmU.js +0 -18
- package/dist/showcase/assets/progress-BSYlNLIJ.js +0 -1
- package/dist/showcase/assets/progress-CZVy3LGB.js +0 -1
- package/dist/showcase/assets/props-table-X9St7Q4m.js +0 -1
- package/dist/showcase/assets/props.generated-f_jHBhPb.json +0 -41753
- package/dist/showcase/assets/qr-code-CEmKf9xU.js +0 -1
- package/dist/showcase/assets/quote-IH6r-rlY.js +0 -1
- package/dist/showcase/assets/receipt-m9rOe5lY.js +0 -1
- package/dist/showcase/assets/receipt-text-C0TobatH.js +0 -1
- package/dist/showcase/assets/refinement-guide-t9T7iAS2.js +0 -189
- package/dist/showcase/assets/refresh-cw-Dy_Nc4jA.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-DR7LgQP5.js +0 -1
- package/dist/showcase/assets/resource-BcJ8O6uj.js +0 -1
- package/dist/showcase/assets/resource-_zDXez77.js +0 -139
- package/dist/showcase/assets/resource-selector-card-CCAEF-AT.js +0 -43
- package/dist/showcase/assets/rich-text-editor-BJG_ECJp.js +0 -143
- package/dist/showcase/assets/rich-text-editor-fbgVfyEH.js +0 -124
- package/dist/showcase/assets/rotate-ccw-CGuTkHQ3.js +0 -1
- package/dist/showcase/assets/route-C7EZ2Njy.js +0 -1
- package/dist/showcase/assets/save-fKrt-yFG.js +0 -1
- package/dist/showcase/assets/schema-form-k7TXeirD.js +0 -327
- package/dist/showcase/assets/scroll-area-CqNwdlI6.js +0 -32
- package/dist/showcase/assets/scroll-area-UVtlGOgx.js +0 -1
- package/dist/showcase/assets/section-DuBNJP4P.js +0 -1
- package/dist/showcase/assets/select-CINVEIWn.js +0 -1
- package/dist/showcase/assets/select-ZLaamXrm.js +0 -1
- package/dist/showcase/assets/send-DBvt_4jT.js +0 -1
- package/dist/showcase/assets/separator-BdBXRpc3.js +0 -28
- package/dist/showcase/assets/separator-CkJjJQWW.js +0 -1
- package/dist/showcase/assets/separator-CxOeStjL.js +0 -1
- package/dist/showcase/assets/separator-O-VQMSf_.js +0 -1
- package/dist/showcase/assets/settings-2-BWjMVlyS.js +0 -1
- package/dist/showcase/assets/settings-D9Z79UcG.js +0 -1
- package/dist/showcase/assets/sheet-CK9C6r7_.js +0 -1
- package/dist/showcase/assets/shield-BboB3Zlo.js +0 -1
- package/dist/showcase/assets/shield-alert-CAAobStl.js +0 -1
- package/dist/showcase/assets/shield-check-Rfyzz9bK.js +0 -1
- package/dist/showcase/assets/shopping-bag-5hLD82YW.js +0 -1
- package/dist/showcase/assets/showcase-DhOQXB5E.js +0 -132
- package/dist/showcase/assets/sidebar-ZTUACc0t.js +0 -1
- package/dist/showcase/assets/sidebar.context-BiNOpG5W.js +0 -1
- package/dist/showcase/assets/skeleton-BZUSoHbk.js +0 -1
- package/dist/showcase/assets/skeleton-BZkYzAdq.js +0 -1
- package/dist/showcase/assets/skeleton-CrOp8tx3.js +0 -29
- package/dist/showcase/assets/skeleton-P5GXAj4U.js +0 -1
- package/dist/showcase/assets/slider-zlE7nLrp.js +0 -1
- package/dist/showcase/assets/smart-card-OExZHSsj.js +0 -1
- package/dist/showcase/assets/sonner-eMphKM9E.js +0 -22
- package/dist/showcase/assets/sortable.esm-CM9VD5N4.js +0 -5
- package/dist/showcase/assets/sparkles-CIB5irID.js +0 -1
- package/dist/showcase/assets/spinner-11-kP-Ob.js +0 -1
- package/dist/showcase/assets/spinner-D4G5TFSm.js +0 -49
- package/dist/showcase/assets/spinner-DKGukuFV.js +0 -30
- package/dist/showcase/assets/square-pen-zflKy9oX.js +0 -1
- package/dist/showcase/assets/stacked-avatars-Cve1Y6GY.js +0 -1
- package/dist/showcase/assets/star-DleXDkCp.js +0 -1
- package/dist/showcase/assets/startOfDay-TDP2erzM.js +0 -1
- package/dist/showcase/assets/styles-BKlX_Ipc.js +0 -1
- package/dist/showcase/assets/suggestions-Dt2hm1NY.js +0 -126
- package/dist/showcase/assets/switch-DAPAgJbv.js +0 -1
- package/dist/showcase/assets/switch-fQpP2tJl.js +0 -1
- package/dist/showcase/assets/sync-BRcK160D.js +0 -124
- package/dist/showcase/assets/table-Dhmbe1yN.js +0 -686
- package/dist/showcase/assets/table-actions-GGrPOQcv.js +0 -1
- package/dist/showcase/assets/table-v0Eu5yZn.js +0 -1
- package/dist/showcase/assets/tabs-DmaXB1aF.js +0 -19
- package/dist/showcase/assets/tabs-vbNIJ-eo.js +0 -1
- package/dist/showcase/assets/tags-input-Bms_Q5CE.js +0 -1
- package/dist/showcase/assets/text-button-gvJCzaXS.js +0 -1
- package/dist/showcase/assets/text-link-DkByVX4d.js +0 -1
- package/dist/showcase/assets/textarea-B6Ho29y3.js +0 -1
- package/dist/showcase/assets/textarea-JCb0yhZ1.js +0 -1
- package/dist/showcase/assets/throttle-alert-CPU-u6Rs.js +0 -1
- package/dist/showcase/assets/timelines-Bw7mvAdx.js +0 -200
- package/dist/showcase/assets/toggle-group-jlIGX1zh.js +0 -1
- package/dist/showcase/assets/toggles-DV6V9vj-.js +0 -71
- package/dist/showcase/assets/toggles-group-C-Y3dG8q.js +0 -32
- package/dist/showcase/assets/tooltip-CDtPyNOv.js +0 -31
- package/dist/showcase/assets/trash-2-CXRm3lMl.js +0 -1
- package/dist/showcase/assets/trending-up-Bcyp9cw8.js +0 -1
- package/dist/showcase/assets/truck-DVgzuKLP.js +0 -1
- package/dist/showcase/assets/typography-BKPf4j85.js +0 -223
- package/dist/showcase/assets/ui-badge-D-Ud2MES.js +0 -28
- package/dist/showcase/assets/ui-card-gGqI2cfr.js +0 -30
- package/dist/showcase/assets/ui-table-Bqcab_kq.js +0 -42
- package/dist/showcase/assets/upload-tray-BFh6twLE.js +0 -138
- package/dist/showcase/assets/use-layout-link-e9jr981L.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-ByBTPUi3.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-Bx_-SRtw.js +0 -1
- package/dist/showcase/assets/useCompositeItem-Dmih9c3W.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-C0QJgAKb.js +0 -1
- package/dist/showcase/assets/useLabelableId-COfjI9qt.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CRefmlni.js +0 -1
- package/dist/showcase/assets/useRender-Bgu76j1u.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-B2fPZeWf.js +0 -1
- package/dist/showcase/assets/useValueChanged-CNjJ-spo.js +0 -1
- package/dist/showcase/assets/user-CmkLnMh9.js +0 -1
- package/dist/showcase/assets/user-plus-3CGFNUf0.js +0 -1
- package/dist/showcase/assets/users-CuO8W7wn.js +0 -1
- package/dist/showcase/assets/vendor-profile-HLMsE22G.js +0 -37
- package/dist/showcase/assets/video-CoHnn0fp.js +0 -1
- package/dist/showcase/assets/visually-hidden-D5bPAL7Q.js +0 -1
- package/dist/showcase/assets/wrench-C93IxaGt.js +0 -1
- package/dist/showcase/assets/x-BJDvVLAz.js +0 -1
- package/dist/showcase/assets/zap-DYD_Ljkv.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-D9tU_83-.js","names":[],"sources":["../../src/components/ui/combobox.tsx","../../src/components/base/combobox/combobox.strings.ts","../../src/components/base/combobox/constants.ts","../../src/components/base/combobox/components/loading-more.tsx","../../src/components/base/combobox/components/status-content.tsx","../../src/components/base/combobox/components/combobox-dropdown.tsx","../../src/components/base/combobox/components/error-message.tsx","../../src/components/base/combobox/components/highlighted-text.tsx","../../src/components/base/combobox/hooks/use-debounced-search.ts","../../src/components/base/combobox/hooks/use-grouped-items.ts","../../src/components/base/combobox/hooks/use-load-more.ts","../../src/components/base/combobox/hooks/use-enhanced-combobox-core.tsx","../../src/components/base/combobox/enhanced-combobox.tsx","../../src/components/base/combobox/async-resource-combobox.tsx"],"sourcesContent":["import { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { CheckIcon, ChevronDownIcon, XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst Combobox = ComboboxPrimitive.Root;\n\nfunction ComboboxInput({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Input\n\t\t\tdata-slot=\"combobox-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-10 w-full min-w-0 rounded-md border bg-background px-3 py-2 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ComboboxTrigger({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Trigger.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Trigger\n\t\t\tdata-slot=\"combobox-trigger\"\n\t\t\tclassName={cn(\n\t\t\t\t'border-input file:text-foreground placeholder:text-muted-foreground flex h-10 w-full items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive',\n\t\t\t\t'[&>span]:line-clamp-1',\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\t<ComboboxPrimitive.Icon className=\"flex\">\n\t\t\t\t<ChevronDownIcon className=\"size-4 opacity-50\" />\n\t\t\t</ComboboxPrimitive.Icon>\n\t\t</ComboboxPrimitive.Trigger>\n\t);\n}\n\nfunction ComboboxValue({\n\tplaceholder,\n\t...props\n}: ComboboxPrimitive.Value.Props & { placeholder?: React.ReactNode }) {\n\treturn (\n\t\t<ComboboxPrimitive.Value\n\t\t\tdata-slot=\"combobox-value\"\n\t\t\tplaceholder={\n\t\t\t\t!!placeholder && <span className=\"text-muted-foreground\">{placeholder}</span>\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ComboboxClear({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Clear.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Clear\n\t\t\tdata-slot=\"combobox-clear\"\n\t\t\tclassName={cn(\n\t\t\t\t'absolute right-8 top-1/2 -translate-y-1/2 rounded-sm opacity-50 ring-offset-background transition-opacity',\n\t\t\t\t'hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t'disabled:pointer-events-none',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<XIcon className=\"size-4\" />\n\t\t</ComboboxPrimitive.Clear>\n\t);\n}\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\n\nconst inputSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'h-8 text-xs pl-2 pr-8',\n\tmd: 'h-10 text-sm pl-3 pr-10',\n\tlg: 'h-12 text-base pl-4 pr-12',\n};\n\nconst inputSizeWithClearClasses: Record<ComboboxSize, string> = {\n\tsm: 'pr-14',\n\tmd: 'pr-16',\n\tlg: 'pr-20',\n};\n\nconst iconContainerSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'right-1',\n\tmd: 'right-2',\n\tlg: 'right-3',\n};\n\nconst iconSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'size-3',\n\tmd: 'size-4',\n\tlg: 'size-5',\n};\n\ntype ComboboxInputTriggerProps = Omit<ComboboxPrimitive.Input.Props, 'size'> & {\n\tshowClear?: boolean;\n\tsize?: ComboboxSize;\n\terror?: boolean;\n};\n\nfunction ComboboxInputTrigger({\n\tclassName,\n\tshowClear = false,\n\tsize = 'md',\n\terror,\n\t...props\n}: ComboboxInputTriggerProps) {\n\treturn (\n\t\t<div className=\"relative\">\n\t\t\t<ComboboxPrimitive.Input\n\t\t\t\tdata-slot=\"combobox-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-md border bg-background shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\t'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n\t\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15 aria-invalid:placeholder:text-destructive',\n\t\t\t\t\tinputSizeClasses[size],\n\t\t\t\t\tshowClear && inputSizeWithClearClasses[size],\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\taria-invalid={error || undefined}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute top-1/2 -translate-y-1/2 flex items-center gap-1 text-muted-foreground',\n\t\t\t\t\ticonContainerSizeClasses[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!showClear && (\n <ComboboxPrimitive.Clear\n\t\t\t\t\t\tdata-slot=\"combobox-clear\"\n\t\t\t\t\t\tclassName=\"rounded-sm p-1 opacity-50 hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<XIcon className={iconSizeClasses[size]} />\n\t\t\t\t\t</ComboboxPrimitive.Clear>\n )}\n\t\t\t\t<ComboboxPrimitive.Trigger className=\"rounded-sm p-1 hover:bg-accent focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\">\n\t\t\t\t\t<ChevronDownIcon className={iconSizeClasses[size]} />\n\t\t\t\t</ComboboxPrimitive.Trigger>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n// Portal\nconst ComboboxPortal = ComboboxPrimitive.Portal;\n\n// Positioner\nfunction ComboboxPositioner({\n\tclassName,\n\tsideOffset = 4,\n\t...props\n}: ComboboxPrimitive.Positioner.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Positioner\n\t\t\tdata-slot=\"combobox-positioner\"\n\t\t\tsideOffset={sideOffset}\n\t\t\tclassName={cn('z-50 outline-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Popup (content)\nfunction ComboboxPopup({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Popup.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Popup\n\t\t\tdata-slot=\"combobox-popup\"\n\t\t\tclassName={cn(\n\t\t\t\t'w-[var(--anchor-width)] min-w-[8rem] max-w-[var(--available-width)] max-h-[min(var(--available-height),24rem)]',\n\t\t\t\t'overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md',\n\t\t\t\t'origin-[var(--transform-origin)]',\n\t\t\t\t'data-[starting-style]:opacity-0 data-[starting-style]:scale-95',\n\t\t\t\t'data-[ending-style]:opacity-0 data-[ending-style]:scale-95',\n\t\t\t\t'transition-[opacity,transform] duration-150',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// List\nfunction ComboboxList({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.List.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.List\n\t\t\tdata-slot=\"combobox-list\"\n\t\t\tclassName={cn(\n\t\t\t\t'max-h-[min(24rem,var(--available-height))] overflow-y-auto overscroll-contain p-1',\n\t\t\t\t'outline-none empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Item\n//\n// Layout: `[content][indicator]` with the selection check pinned to the\n// right (`justify-between`). Consumers render leading icons naturally inside\n// `renderItem` — the `gap` between icon and label is set by the consumer.\nconst itemSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'py-1 px-2 text-xs gap-2',\n\tmd: 'py-1.5 px-2.5 text-sm gap-2',\n\tlg: 'py-2 px-3 text-base gap-2.5',\n};\n\nconst itemIndicatorSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'size-3',\n\tmd: 'size-4',\n\tlg: 'size-5',\n};\n\nfunction ComboboxItem({\n\tclassName,\n\tchildren,\n\tsize = 'md',\n\t...props\n}: ComboboxPrimitive.Item.Props & { size?: ComboboxSize }) {\n\treturn (\n\t\t<ComboboxPrimitive.Item\n\t\t\tdata-slot=\"combobox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex w-full cursor-default select-none items-center justify-between rounded-sm outline-none',\n\t\t\t\t'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n\t\t\t\t'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n\t\t\t\titemSizeClasses[size],\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"flex min-w-0 flex-1 items-center gap-2 truncate\">\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex shrink-0 items-center justify-center text-muted-foreground',\n\t\t\t\t\titemIndicatorSizeClasses[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<CheckIcon className={itemIndicatorSizeClasses[size]} />\n\t\t\t</ComboboxPrimitive.ItemIndicator>\n\t\t</ComboboxPrimitive.Item>\n\t);\n}\n\n// Item Indicator (standalone)\nfunction ComboboxItemIndicator({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.ItemIndicator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\tdata-slot=\"combobox-item-indicator\"\n\t\t\tclassName={cn(className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ?? <CheckIcon className=\"size-4\" />}\n\t\t</ComboboxPrimitive.ItemIndicator>\n\t);\n}\n\n// Empty\nfunction ComboboxEmpty({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Empty.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Empty\n\t\t\tdata-slot=\"combobox-empty\"\n\t\t\tclassName={cn(\n\t\t\t\t'py-6 text-center text-sm text-muted-foreground empty:hidden',\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</ComboboxPrimitive.Empty>\n\t);\n}\n\n// Status (for async loading states)\nfunction ComboboxStatus({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Status.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Status\n\t\t\tdata-slot=\"combobox-status\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group\nfunction ComboboxGroup({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Group.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Group\n\t\t\tdata-slot=\"combobox-group\"\n\t\t\tclassName={cn('overflow-hidden p-1', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group Label\nfunction ComboboxGroupLabel({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.GroupLabel\n\t\t\tdata-slot=\"combobox-group-label\"\n\t\t\tclassName={cn('px-2 py-1.5 text-xs font-medium text-muted-foreground', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Collection (for rendering items)\nconst ComboboxCollection = ComboboxPrimitive.Collection;\n\n// Separator\nfunction ComboboxSeparator({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Separator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Separator\n\t\t\tdata-slot=\"combobox-separator\"\n\t\t\tclassName={cn('-mx-1 my-1 h-px bg-muted', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chips container (for multiple selection)\nconst chipsSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'min-h-8 gap-1 px-2 py-1 text-xs',\n\tmd: 'min-h-10 gap-1.5 px-3 py-2 text-sm',\n\tlg: 'min-h-12 gap-2 px-4 py-2.5 text-base',\n};\n\nfunction ComboboxChips({\n\tclassName,\n\tsize = 'md',\n\terror,\n\t...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & {\n\tsize?: ComboboxSize;\n\terror?: boolean;\n}) {\n\treturn (\n\t\t<ComboboxPrimitive.Chips\n\t\t\tdata-slot=\"combobox-chips\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex flex-wrap items-center rounded-md border border-input bg-background ring-offset-background shadow-xs transition-[color,box-shadow] outline-none',\n\t\t\t\t'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',\n\t\t\t\t'aria-invalid:ring-destructive/20 aria-invalid:border-destructive aria-invalid:bg-destructive/15',\n\t\t\t\tchipsSizeClasses[size],\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\taria-invalid={error || undefined}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chip\nfunction ComboboxChip({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Chip.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Chip\n\t\t\tdata-slot=\"combobox-chip\"\n\t\t\tclassName={cn(\n\t\t\t\t'inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-1 text-xs font-medium text-secondary-foreground',\n\t\t\t\t'data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground',\n\t\t\t\t'focus-within:bg-primary focus-within:text-primary-foreground',\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\t<ComboboxPrimitive.ChipRemove className=\"rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\">\n\t\t\t\t<XIcon className=\"size-3\" />\n\t\t\t</ComboboxPrimitive.ChipRemove>\n\t\t</ComboboxPrimitive.Chip>\n\t);\n}\n\n// Chips Input\nfunction ComboboxChipsInput({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Input\n\t\t\tdata-slot=\"combobox-chips-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'min-w-[80px] flex-1 bg-transparent outline-none placeholder:text-muted-foreground',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Backdrop (for modal)\nfunction ComboboxBackdrop({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Backdrop.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Backdrop\n\t\t\tdata-slot=\"combobox-backdrop\"\n\t\t\tclassName={cn(\n\t\t\t\t'fixed inset-0 z-50 bg-black/80',\n\t\t\t\t'data-[starting-style]:opacity-0 data-[ending-style]:opacity-0',\n\t\t\t\t'transition-opacity duration-150',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Arrow\nfunction ComboboxArrow({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Arrow.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Arrow\n\t\t\tdata-slot=\"combobox-arrow\"\n\t\t\tclassName={cn('fill-popover', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// useFilter hook re-export\nconst useComboboxFilter = ComboboxPrimitive.useFilter;\n\nexport {\n\tCombobox,\n\tComboboxInput,\n\tComboboxInputTrigger,\n\tComboboxTrigger,\n\tComboboxValue,\n\tComboboxClear,\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxPopup,\n\tComboboxList,\n\tComboboxItem,\n\tComboboxItemIndicator,\n\tComboboxEmpty,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n\tComboboxSeparator,\n\tComboboxChips,\n\tComboboxChip,\n\tComboboxChipsInput,\n\tComboboxBackdrop,\n\tComboboxArrow,\n\tuseComboboxFilter,\n};\n","/**\n * Default user-facing strings for `<EnhancedCombobox>`.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <EnhancedCombobox strings={{ noResults: t('search.empty') }} … />\n *\n * Templates use `{placeholder}` tokens — the component substitutes them at\n * render time. Function-valued strings would also work; we keep templates\n * here for the constants file.\n */\nimport type { ComboboxStrings } from './types';\n\nexport const defaultComboboxStrings: ComboboxStrings = {\n\tplaceholder: 'Search...',\n\tclear: 'Clear selection',\n\ttoggle: 'Open options',\n\tsearching: 'Loading...',\n\tnoResults: 'No results found.',\n\ttypeToSearch: 'Type at least {min} characters to search...',\n\ttypeMore: 'Type {remaining} more character{s} to search...',\n\tcreateNew: 'Create {value}',\n\tloadingMore: 'Loading...',\n\tapply: 'Apply',\n\tcancel: 'Cancel',\n};\n\nexport type { ComboboxStrings };\n","/**\n * Constants and default values for the Enhanced Combobox component.\n *\n * Default strings live in `./combobox.strings.ts` per rule 19. The legacy\n * `DEFAULT_STRINGS` alias is re-exported below for any external consumer\n * still using the old name; new code should import `defaultComboboxStrings`\n * from `./combobox.strings`.\n */\n\nexport { defaultComboboxStrings, defaultComboboxStrings as DEFAULT_STRINGS } from './combobox.strings';\n\n// ============================================================================\n// Default Values\n// ============================================================================\n\nexport const DEFAULT_MIN_SEARCH_LENGTH = 3;\nexport const DEFAULT_DEBOUNCE_MS = 300;\nexport const DEFAULT_SIZE = 'default';\nexport const LOAD_MORE_THRESHOLD = 0.8;\nexport const LOAD_MORE_DEBOUNCE_MS = 100;\nexport const LOAD_MORE_COOLDOWN_MS = 500;\n\n// ============================================================================\n// Symbols\n// ============================================================================\n\nexport const CREATE_OPTION_SYMBOL = Symbol('enhanced-combobox-create-option');\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\nexport function isCreateOption<T>(item: T): item is T & { [CREATE_OPTION_SYMBOL]: string } {\n\treturn (\n\t\ttypeof item === 'object' &&\n\t\titem !== null &&\n\t\tCREATE_OPTION_SYMBOL in (item as object)\n\t);\n}\n\nexport function getCreateOptionValue<T>(item: T): string {\n\tif (!isCreateOption(item)) {\n\t\tthrow new Error('Item is not a create option');\n\t}\n\treturn (item as { [CREATE_OPTION_SYMBOL]: string })[CREATE_OPTION_SYMBOL];\n}\n\nexport function createCreateOption<T>(inputValue: string): T {\n\treturn { [CREATE_OPTION_SYMBOL]: inputValue } as unknown as T;\n}\n","/**\n * LoadingMore Component\n */\n\nimport { Loader2 } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface LoadingMoreProps {\n\tisLoading: boolean;\n\ttext: string;\n\tclassName?: string;\n}\n\nexport function LoadingMore({\n\tisLoading,\n\ttext,\n\tclassName,\n}: LoadingMoreProps): React.ReactElement | null {\n\tif (!isLoading) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('loading-more--component', \n\t\t\t\t'flex items-center justify-center gap-space-sm px-control py-space-xs text-xs text-muted-foreground',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\trole=\"status\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t<Loader2 className=\"size-icon-sm animate-spin\" aria-hidden=\"true\" />\n\t\t\t<span>{text}</span>\n\t\t</div>\n\t);\n}\n\nLoadingMore.displayName = 'LoadingMore';\n","/**\n * StatusContent Component\n */\n\nimport { Loader2 } from 'lucide-react';\nimport * as React from 'react';\nimport type { ComboboxStrings } from '../types';\n\nexport interface StatusContentProps {\n\tisLoading?: boolean;\n\tsearchValue: string;\n\tminSearchLength: number;\n\titemCount: number;\n\tstrings: ComboboxStrings;\n}\n\nexport function StatusContent({\n\tisLoading,\n\tsearchValue,\n\tminSearchLength,\n\titemCount,\n\tstrings,\n}: StatusContentProps): React.ReactNode {\n\tconst trimmed = searchValue.trim();\n\n\tif (isLoading) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Loader2 className=\"size-icon-sm animate-spin\" />\n\t\t\t\t{strings.searching}\n\t\t\t</>\n\t\t);\n\t}\n\n\tif (trimmed === '') {\n\t\tif (strings.typeToSearch.includes('{min}')) {\n\t\t\treturn strings.typeToSearch.replace('{min}', String(minSearchLength));\n\t\t}\n\t\treturn strings.typeToSearch;\n\t}\n\n\tif (trimmed.length < minSearchLength) {\n\t\tconst remaining = minSearchLength - trimmed.length;\n\t\tif (strings.typeMore.includes('{remaining}') || strings.typeMore.includes('{s}')) {\n\t\t\treturn strings.typeMore\n\t\t\t\t.replace('{remaining}', String(remaining))\n\t\t\t\t.replace('{s}', remaining !== 1 ? 's' : '');\n\t\t}\n\t\treturn strings.typeMore;\n\t}\n\n\tif (itemCount === 0) {\n\t\treturn null;\n\t}\n\n\treturn null;\n}\n\nStatusContent.displayName = 'StatusContent';\n","/**\n * Shared ComboboxDropdown Component\n *\n * Renders the dropdown content for both single and multiple selection variants.\n * Extracts shared rendering logic to reduce duplication.\n */\n\nimport * as React from 'react';\n\nimport {\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxPopup,\n\tComboboxEmpty,\n\tComboboxList,\n\tComboboxItem,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n} from '@/components/ui/combobox';\nimport { Button } from '@/components/base/buttons';\nimport { ScrollArea } from '@/components/base/display/scroll-area';\n\nimport { DEFAULT_SIZE } from '../constants';\nimport type { ComboboxStrings, ComboboxSize } from '../types';\nimport { LoadingMore } from './loading-more';\nimport { StatusContent } from './status-content';\n\nconst primitiveSizeByComboboxSize: Record<ComboboxSize, 'sm' | 'md'> = {\n\tsmall: 'sm',\n\tdefault: 'md',\n};\n\nconst itemClassByComboboxSize: Record<ComboboxSize, string> = {\n\tsmall: 'min-h-control-sm gap-space-lg rounded-md px-row-x py-row-y text-xs leading-tight [&>span:first-child]:gap-space-lg [&>span:first-child]:text-xs',\n\tdefault: 'min-h-control gap-space-lg rounded-md px-row-x py-row-y text-sm leading-tight [&>span:first-child]:gap-space-lg [&>span:first-child]:text-sm',\n};\n\nconst groupLabelClassName =\n\t'px-row-x py-row-y text-xs font-medium uppercase tracking-wide text-muted-foreground';\n\nexport interface ComboboxDropdownProps<T> {\n\t// Display state\n\tisLoading: boolean;\n\tshowStatus: boolean;\n\tshowEmpty: boolean;\n\n\t// Search\n\tsearchValue: string;\n\tminSearchLength: number;\n\n\t// Items\n\titems: T[];\n\tgroupedItems: Map<string, T[]> | null;\n\tcreateOptionItem: T | null;\n\n\t// Rendering\n\trenderItemContent: (item: T) => React.ReactNode;\n\tgetItemReactKey: (item: T) => string;\n\tgetItemDisabled?: (item: T) => boolean;\n\trenderGroupLabel?: (group: string) => React.ReactNode;\n\n\t// Load more\n\tisLoadingMore?: boolean;\n\n\t// Strings\n\tstrings: ComboboxStrings;\n\n\t// Size\n\tsize?: ComboboxSize;\n\n\t// Portal\n\tportalContainer?: React.RefObject<HTMLElement | null>;\n\n\t// Refs\n\tlistRef: React.RefObject<HTMLDivElement | null>;\n\n\t// Multiple selection anchor\n\tanchor?: React.RefObject<HTMLElement | null>;\n\n\t/** Optional apply / cancel footer for the apply-button workflow. */\n\tapplyFooter?: {\n\t\tapplyLabel: string;\n\t\tcancelLabel: string;\n\t\tonApply: () => void;\n\t\tonCancel: () => void;\n\t};\n}\n\nexport function ComboboxDropdown<T>({\n\tisLoading,\n\tshowStatus,\n\tshowEmpty,\n\tsearchValue,\n\tminSearchLength,\n\titems,\n\tgroupedItems,\n\tcreateOptionItem,\n\trenderItemContent,\n\tgetItemReactKey,\n\tgetItemDisabled,\n\trenderGroupLabel,\n\tisLoadingMore,\n\tstrings,\n\tsize = DEFAULT_SIZE,\n\tportalContainer,\n\tlistRef,\n\tanchor,\n\tapplyFooter,\n}: ComboboxDropdownProps<T>): React.ReactElement {\n\tconst positionerClassName = portalContainer != null ? 'z-[100]' : undefined;\n\tconst primitiveSize = primitiveSizeByComboboxSize[size];\n\n\tconst content = (\n\t\t<ComboboxPositioner\n\t\t\tanchor={anchor}\n\t\t\tclassName={positionerClassName}\n\t\t>\n\t\t\t<ComboboxPopup\n\t\t\t\taria-busy={isLoading || undefined}\n\t\t\t\tclassName=\"combobox-dropdown--popup rounded-radius border-border/70 shadow-sm\"\n\t\t\t>\n\t\t\t\t{/* Status message */}\n\t\t\t\t{!!showStatus && (\n\t\t\t\t\t<ComboboxStatus className=\"gap-space-sm px-control py-space-xs text-xs text-muted-foreground\">\n\t\t\t\t\t\t<StatusContent\n\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\tsearchValue={searchValue}\n\t\t\t\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\t\t\t\titemCount={items.length}\n\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ComboboxStatus>\n\t\t\t\t)}\n\n\t\t\t\t{/* Empty state */}\n\t\t\t\t{!!showEmpty && (\n\t\t\t\t\t<ComboboxEmpty className=\"px-control py-space-xs text-center text-xs text-muted-foreground\">\n\t\t\t\t\t\t{strings.noResults}\n\t\t\t\t\t</ComboboxEmpty>\n\t\t\t\t)}\n\n\t\t\t\t{/* Items list */}\n\t\t\t\t<ScrollArea\n\t\t\t\t\tviewportRef={listRef}\n\t\t\t\t\tclassName=\"max-h-[min(20rem,var(--available-height))]\"\n\t\t\t\t>\n\t\t\t\t\t<ComboboxList className=\"combobox-dropdown--list max-h-none overflow-visible p-space-sm\">\n\t\t\t\t\t\t{groupedItems ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{Array.from(groupedItems.entries()).map(([group, groupItems]) => {\n\t\t\t\t\t\t\t\t\tconst groupLabel =\n\t\t\t\t\t\t\t\t\t\ttypeof renderGroupLabel === 'function'\n\t\t\t\t\t\t\t\t\t\t\t? renderGroupLabel(group)\n\t\t\t\t\t\t\t\t\t\t\t: group;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ComboboxGroup className=\"combobox-dropdown--group p-0\" key={group} items={groupItems}>\n\t\t\t\t\t\t\t\t\t\t\t<ComboboxGroupLabel className={groupLabelClassName}>{groupLabel}</ComboboxGroupLabel>\n\t\t\t\t\t\t\t\t\t\t\t<ComboboxCollection>\n\t\t\t\t\t\t\t\t\t\t\t\t{(item: T) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={getItemReactKey(item)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={item}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize={primitiveSize}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={itemClassByComboboxSize[size]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={getItemDisabled?.(item)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderItemContent(item)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</ComboboxCollection>\n\t\t\t\t\t\t\t\t\t\t</ComboboxGroup>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t\t{createOptionItem != null && (\n\t\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\t\tkey={getItemReactKey(createOptionItem)}\n\t\t\t\t\t\t\t\t\t\tvalue={createOptionItem}\n\t\t\t\t\t\t\t\t\t\tsize={primitiveSize}\n\t\t\t\t\t\t\t\t\t\tclassName={itemClassByComboboxSize[size]}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderItemContent(createOptionItem)}\n\t\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ComboboxCollection>\n\t\t\t\t\t\t\t\t{(item: T) => (\n\t\t\t\t\t\t\t\t\t<ComboboxItem\n\t\t\t\t\t\t\t\t\t\tkey={getItemReactKey(item)}\n\t\t\t\t\t\t\t\t\t\tvalue={item}\n\t\t\t\t\t\t\t\t\t\tsize={primitiveSize}\n\t\t\t\t\t\t\t\t\t\tclassName={itemClassByComboboxSize[size]}\n\t\t\t\t\t\t\t\t\t\tdisabled={getItemDisabled?.(item)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderItemContent(item)}\n\t\t\t\t\t\t\t\t\t</ComboboxItem>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ComboboxCollection>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ComboboxList>\n\t\t\t\t</ScrollArea>\n\n\t\t\t\t{/* Loading more indicator */}\n\t\t\t\t<LoadingMore\n\t\t\t\t\tisLoading={!!isLoadingMore}\n\t\t\t\t\ttext={strings.loadingMore}\n\t\t\t\t/>\n\n\t\t\t\t{/* Apply / cancel footer (multi-select with applyButton). */}\n\t\t\t\t{!!applyFooter && (\n\t\t\t\t\t<div className=\"flex items-center justify-end gap-space-md border-t border-border/60 px-control py-space-xs\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tapplyFooter.onCancel();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{applyFooter.cancelLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tapplyFooter.onApply();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{applyFooter.applyLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</ComboboxPopup>\n\t\t</ComboboxPositioner>\n\t);\n\n\tif (portalContainer) {\n\t\treturn <ComboboxPortal container={portalContainer}>{content}</ComboboxPortal>;\n\t}\n\n\treturn <ComboboxPortal>{content}</ComboboxPortal>;\n}\n\nComboboxDropdown.displayName = 'ComboboxDropdown';\n","/**\n * ErrorMessage Component\n */\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport type { ComboboxSize } from '../types';\n\nexport interface ErrorMessageProps {\n\terror?: string;\n\tsize: ComboboxSize;\n\tclassName?: string;\n}\n\nconst sizeClasses: Record<ComboboxSize, string> = {\n\tsmall: 'text-xs mt-space-sm',\n\tdefault: 'text-sm mt-space-md',\n};\n\nexport function ErrorMessage({\n\terror,\n\tsize,\n\tclassName,\n}: ErrorMessageProps): React.ReactElement | null {\n\tif (!error) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<p\n\t\t\tclassName={cn('error-message--component', 'text-destructive', sizeClasses[size], className)}\n\t\t\trole=\"alert\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t{error}\n\t\t</p>\n\t);\n}\n\nErrorMessage.displayName = 'ErrorMessage';\n","/**\n * HighlightedText Component\n */\n\nimport * as React from 'react';\n\nexport interface HighlightedTextProps {\n\ttext: string;\n\thighlight: string;\n\thighlightClassName?: string;\n}\n\nfunction escapeRegExp(str: string): string {\n\treturn str.replace(/[$()*+.?[\\\\\\]^{|}]/g, '\\\\$&');\n}\n\nexport function HighlightedText({\n\ttext,\n\thighlight,\n\thighlightClassName = 'rounded-sm bg-warning/20 px-0.5 text-warning-foreground dark:bg-warning/25',\n}: HighlightedTextProps): React.ReactNode {\n\tif (!highlight.trim()) {\n\t\treturn text;\n\t}\n\n\tconst regex = new RegExp(`(${escapeRegExp(highlight)})`, 'gi');\n\tconst parts = text.split(regex);\n\tlet cursor = 0;\n\n\treturn (\n\t\t<>\n\t\t\t{parts.map((part, index) => {\n\t\t\t\tconst isMatch = index % 2 === 1;\n\t\t\t\tconst key = String(cursor);\n\t\t\t\tcursor += part.length;\n\n\t\t\t\tif (isMatch) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<mark key={key} className={highlightClassName}>\n\t\t\t\t\t\t\t{part}\n\t\t\t\t\t\t</mark>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn <span key={key}>{part}</span>;\n\t\t\t})}\n\t\t</>\n\t);\n}\n\nHighlightedText.displayName = 'HighlightedText';\n","/**\n * Hook for debounced search functionality\n */\n\nimport { useEffect, useRef } from 'react';\nimport { DEFAULT_DEBOUNCE_MS, DEFAULT_MIN_SEARCH_LENGTH } from '../constants';\n\nexport interface UseDebouncedSearchOptions {\n\tsearchValue: string;\n\tonSearch: ((value: string) => void) | undefined;\n\tdebounceMs?: number;\n\tminSearchLength?: number;\n}\n\nexport function useDebouncedSearch({\n\tsearchValue,\n\tonSearch,\n\tdebounceMs = DEFAULT_DEBOUNCE_MS,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n}: UseDebouncedSearchOptions): void {\n\tconst timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n\t// Hold the latest onSearch in a ref so the debounce effect does NOT depend\n\t// on its identity. Consumers almost always pass an inline callback whose\n\t// reference changes every render; depending on it here re-ran the effect on\n\t// every render and — when onSearch triggered a state update — caused an\n\t// infinite fetch loop. The effect now only re-runs on real input changes.\n\tconst onSearchRef = useRef(onSearch);\n\tuseEffect(() => {\n\t\tonSearchRef.current = onSearch;\n\t}, [onSearch]);\n\n\tuseEffect(() => {\n\t\tif (!onSearchRef.current) return;\n\n\t\tif (timeoutRef.current) {\n\t\t\tclearTimeout(timeoutRef.current);\n\t\t}\n\n\t\tconst trimmed = searchValue.trim();\n\t\tif (trimmed.length >= minSearchLength) {\n\t\t\ttimeoutRef.current = setTimeout(() => {\n\t\t\t\tonSearchRef.current?.(trimmed);\n\t\t\t}, debounceMs);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (timeoutRef.current) {\n\t\t\t\tclearTimeout(timeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, [searchValue, debounceMs, minSearchLength]);\n}\n","/**\n * Hook for grouping items by category\n */\n\nimport { useMemo } from 'react';\n\nexport interface UseGroupedItemsOptions<T> {\n\titems: T[];\n\tgetItemGroup: ((item: T) => string) | undefined;\n}\n\nexport type GroupedItemsResult<T> = Map<string, T[]> | null;\n\nexport function useGroupedItems<T>({\n\titems,\n\tgetItemGroup,\n}: UseGroupedItemsOptions<T>): GroupedItemsResult<T> {\n\treturn useMemo(() => {\n\t\tif (!getItemGroup) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst groups = new Map<string, T[]>();\n\n\t\tfor (const item of items) {\n\t\t\tconst groupKey = getItemGroup(item);\n\t\t\tconst existing = groups.get(groupKey);\n\n\t\t\tif (existing) {\n\t\t\t\texisting.push(item);\n\t\t\t} else {\n\t\t\t\tgroups.set(groupKey, [item]);\n\t\t\t}\n\t\t}\n\n\t\treturn groups;\n\t}, [items, getItemGroup]);\n}\n","/**\n * Hook for infinite scroll / load more functionality\n */\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport {\n\tLOAD_MORE_THRESHOLD,\n\tLOAD_MORE_DEBOUNCE_MS,\n\tLOAD_MORE_COOLDOWN_MS,\n} from '../constants';\n\nexport interface UseLoadMoreOptions {\n\thasMore: boolean | undefined;\n\tonLoadMore: (() => void) | undefined;\n\tisLoadingMore: boolean | undefined;\n}\n\nexport interface UseLoadMoreReturn {\n\thandleScroll: (event: Event) => void;\n}\n\nexport function useLoadMore({\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n}: UseLoadMoreOptions): UseLoadMoreReturn {\n\tconst isLoadingRef = useRef(false);\n\tconst debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n\tconst handleScroll = useCallback(\n\t\t(event: Event) => {\n\t\t\tif (!hasMore || !onLoadMore || isLoadingMore || isLoadingRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst target = event.target as HTMLElement;\n\t\t\tconst { scrollHeight, scrollTop, clientHeight } = target;\n\t\t\tconst scrollPercentage = (scrollTop + clientHeight) / scrollHeight;\n\n\t\t\tif (scrollPercentage >= LOAD_MORE_THRESHOLD) {\n\t\t\t\tif (debounceRef.current) {\n\t\t\t\t\tclearTimeout(debounceRef.current);\n\t\t\t\t}\n\n\t\t\t\tdebounceRef.current = setTimeout(() => {\n\t\t\t\t\tisLoadingRef.current = true;\n\t\t\t\t\tonLoadMore();\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tisLoadingRef.current = false;\n\t\t\t\t\t}, LOAD_MORE_COOLDOWN_MS);\n\t\t\t\t}, LOAD_MORE_DEBOUNCE_MS);\n\t\t\t}\n\t\t},\n\t\t[hasMore, onLoadMore, isLoadingMore]\n\t);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (debounceRef.current) {\n\t\t\t\tclearTimeout(debounceRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\treturn { handleScroll };\n}\n","/**\n * Core hook for Enhanced Combobox components\n *\n * Extracts shared logic between single and multiple selection variants\n * to reduce duplication and ensure consistent behavior.\n */\n\nimport { PlusIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useMemo, useEffect, useCallback } from 'react';\nimport { Text } from '@/components/typography';\nimport { useStrings, type StringsProp } from '@/lib/strings';\n\nimport { HighlightedText } from '../components/highlighted-text';\nimport { defaultComboboxStrings } from '../combobox.strings';\nimport {\n\tDEFAULT_MIN_SEARCH_LENGTH,\n\tDEFAULT_DEBOUNCE_MS,\n\tisCreateOption,\n\tgetCreateOptionValue,\n\tcreateCreateOption,\n} from '../constants';\nimport type { ComboboxStrings, BaseComboboxProps } from '../types';\nimport { useDebouncedSearch } from './use-debounced-search';\nimport { useGroupedItems } from './use-grouped-items';\nimport { useLoadMore } from './use-load-more';\n\nimport { cn } from '@/lib/utils';\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface UseEnhancedComboboxCoreOptions<T> extends BaseComboboxProps<T> {\n\t/** Items that should always be included (selected items) */\n\tensuredItems?: T[];\n}\n\nexport interface UseEnhancedComboboxCoreReturn<T> {\n\t// Resolved values\n\tstrings: ComboboxStrings;\n\tgetKey: (item: T) => string;\n\ttrimmedSearch: string;\n\n\t// Refs\n\tlistRef: React.RefObject<HTMLDivElement | null>;\n\n\t// Items\n\tbaseItems: T[];\n\tallItems: T[];\n\tgroupedItems: Map<string, T[]> | null;\n\tcreateOptionItem: T | null;\n\n\t// Display state\n\tshowStatus: boolean;\n\tshowEmpty: boolean;\n\tshowCreateOption: boolean;\n\n\t// Handlers\n\trenderItemContent: (item: T) => React.ReactNode;\n\titemToStringLabel: (item: T) => string;\n\tgetItemReactKey: (item: T) => string;\n\n\t// Scroll handling\n\thandleScroll: (event: Event) => void;\n}\n\n// ============================================================================\n// Hook Implementation\n// ============================================================================\n\nfunction useComboboxStrings(custom?: StringsProp<ComboboxStrings>): ComboboxStrings {\n\treturn useStrings(defaultComboboxStrings, custom);\n}\n\nfunction hasExactMatch<T>(\n\titems: T[],\n\tsearchValue: string,\n\tgetItemLabel: (item: T) => string\n): boolean {\n\tconst normalizedSearch = searchValue.toLowerCase();\n\treturn items.some(\n\t\t(item) => getItemLabel(item).toLowerCase() === normalizedSearch\n\t);\n}\n\nexport function useEnhancedComboboxCore<T>({\n\t// Core props\n\titems,\n\tsearchValue,\n\tgetItemLabel,\n\tgetItemKey,\n\tisLoading = false,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n\tstrings: stringsProp,\n\trenderItem,\n\n\t// Debounced Search\n\tonSearch,\n\tdebounceMs = DEFAULT_DEBOUNCE_MS,\n\n\t// Creatable\n\tcreatable,\n\tonCreate,\n\n\t// Grouped Items\n\tgetItemGroup,\n\n\t// Load More\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n\n\t// Highlight Match\n\thighlightMatch,\n\n\t\t// Ensured items (selected items that should always be included)\n\tensuredItems = [],\n}: UseEnhancedComboboxCoreOptions<T>): UseEnhancedComboboxCoreReturn<T> {\n\t// -------------------------------------------------------------------------\n\t// Setup\n\t// -------------------------------------------------------------------------\n\n\tconst strings = useComboboxStrings(stringsProp);\n\tconst getKey = getItemKey ?? getItemLabel;\n\tconst listRef = useRef<HTMLDivElement | null>(null);\n\tconst trimmedSearch = searchValue.trim();\n\n\t// -------------------------------------------------------------------------\n\t// Hooks\n\t// -------------------------------------------------------------------------\n\n\tuseDebouncedSearch({\n\t\tsearchValue,\n\t\tonSearch,\n\t\tdebounceMs,\n\t\tminSearchLength,\n\t});\n\n\tconst { handleScroll } = useLoadMore({\n\t\thasMore,\n\t\tonLoadMore,\n\t\tisLoadingMore,\n\t});\n\n\t// Attach scroll listener\n\tuseEffect(() => {\n\t\tconst listEl = listRef.current;\n\t\tif (!listEl || !hasMore || !onLoadMore) return;\n\n\t\tlistEl.addEventListener('scroll', handleScroll);\n\t\treturn () => listEl.removeEventListener('scroll', handleScroll);\n\t}, [handleScroll, hasMore, onLoadMore]);\n\n\t// -------------------------------------------------------------------------\n\t// Computed Values\n\t// -------------------------------------------------------------------------\n\n\t// Merge ensured items with fetched items\n\tconst baseItems = useMemo(() => {\n\t\tif (ensuredItems.length === 0) return items;\n\n\t\tconst merged = [...ensuredItems];\n\t\titems.forEach((item) => {\n\t\t\tconst itemKey = getKey(item);\n\t\t\tif (!ensuredItems.some((ensured) => getKey(ensured) === itemKey)) {\n\t\t\t\tmerged.push(item);\n\t\t\t}\n\t\t});\n\t\treturn merged;\n\t}, [items, ensuredItems, getKey]);\n\n\t// Group items if grouping is enabled\n\tconst groupedItems = useGroupedItems({\n\t\titems: baseItems,\n\t\tgetItemGroup,\n\t});\n\n\t// Determine if create option should be shown\n\tconst showCreateOption = useMemo(() => {\n\t\tif (!creatable || !onCreate) return false;\n\t\tif (trimmedSearch.length < minSearchLength) return false;\n\t\treturn !hasExactMatch(baseItems, trimmedSearch, getItemLabel);\n\t}, [creatable, onCreate, trimmedSearch, minSearchLength, baseItems, getItemLabel]);\n\n\tconst createOptionItem = useMemo(() => {\n\t\tif (!showCreateOption) return null;\n\t\treturn createCreateOption<T>(trimmedSearch);\n\t}, [showCreateOption, trimmedSearch]);\n\n\t// Build final items array with create option\n\tconst allItems = useMemo(() => {\n\t\tif (createOptionItem) return [...baseItems, createOptionItem];\n\t\treturn baseItems;\n\t}, [baseItems, createOptionItem]);\n\n\t// Status display conditions\n\tconst showStatus = isLoading || trimmedSearch.length < minSearchLength;\n\tconst showEmpty =\n\t\t!isLoading &&\n\t\ttrimmedSearch.length >= minSearchLength &&\n\t\titems.length === 0 &&\n\t\t!showCreateOption;\n\n\t// -------------------------------------------------------------------------\n\t// Handlers\n\t// -------------------------------------------------------------------------\n\n\tconst renderItemContent = useCallback(\n\t\t(item: T): React.ReactNode => {\n\t\t\t// Handle create option\n\t\t\tif (isCreateOption(item)) {\n\t\t\t\tconst value = getCreateOptionValue(item);\n\t\t\t\treturn (\n\t\t\t\t\t<span className={cn('use-enhanced-combobox-core--component', 'flex items-center gap-space-sm text-xs')}>\n\t\t\t\t\t\t<PlusIcon className=\"size-icon-sm\" />\n\t\t\t\t\t\t{strings.createNew.includes('{value}') ? (\n\t\t\t\t\t\t\tstrings.createNew.replace('{value}', value)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"inline-flex items-center gap-space-sm\">\n\t\t\t\t\t\t\t\t<span>{strings.createNew}</span>\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"text-xs\">{value}</Text>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Custom renderer takes precedence\n\t\t\tif (renderItem) {\n\t\t\t\treturn renderItem(item);\n\t\t\t}\n\n\t\t\t// Default rendering with optional highlighting\n\t\t\tconst label = getItemLabel(item);\n\t\t\tif (highlightMatch && trimmedSearch) {\n\t\t\t\treturn <HighlightedText text={label} highlight={trimmedSearch} />;\n\t\t\t}\n\t\t\treturn label;\n\t\t},\n\t\t[strings.createNew, renderItem, getItemLabel, highlightMatch, trimmedSearch]\n\t);\n\n\tconst itemToStringLabel = useCallback(\n\t\t(item: T): string => {\n\t\t\tif (isCreateOption(item)) {\n\t\t\t\treturn getCreateOptionValue(item);\n\t\t\t}\n\t\t\treturn getItemLabel(item);\n\t\t},\n\t\t[getItemLabel]\n\t);\n\n\tconst getItemReactKey = useCallback(\n\t\t(item: T): string => {\n\t\t\tif (isCreateOption(item)) return `__create__:${getCreateOptionValue(item)}`;\n\t\t\treturn String(getKey(item));\n\t\t},\n\t\t[getKey]\n\t);\n\n\treturn {\n\t\tstrings,\n\t\tgetKey,\n\t\ttrimmedSearch,\n\t\tlistRef,\n\t\tbaseItems,\n\t\tallItems,\n\t\tgroupedItems,\n\t\tcreateOptionItem,\n\t\tshowStatus,\n\t\tshowEmpty,\n\t\tshowCreateOption,\n\t\trenderItemContent,\n\t\titemToStringLabel,\n\t\tgetItemReactKey,\n\t\thandleScroll,\n\t};\n}\n","/**\n * Enhanced Combobox Components\n *\n * A feature-rich, API-driven combobox built on Base UI with shadcn styling.\n * Supports single and multiple selection, form integration, debounced search,\n * grouping, pagination, and more.\n *\n * This version uses shared hooks and components to eliminate duplication\n * between single and multiple selection variants.\n */\n\nimport * as React from 'react';\nimport { useRef, useCallback, useEffect, useState } from 'react';\nimport { ChevronDownIcon, XIcon } from 'lucide-react';\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\n\nimport {\n\tCombobox as BaseCombobox,\n\tComboboxChips,\n\tComboboxChip,\n\tComboboxChipsInput,\n} from '@/components/ui/combobox';\nimport { Button } from '@/components/base/buttons';\nimport { Input } from '@/components/base/forms/fields';\nimport { useFormsConfig, type FormControlSize } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport { ComboboxDropdown } from './components/combobox-dropdown';\nimport { ErrorMessage } from './components/error-message';\nimport {\n\tformControlIconClasses,\n\tformControlMinHeightClasses,\n\tformControlPaddingClasses,\n} from '../forms/form-sizing';\nimport {\n\tDEFAULT_MIN_SEARCH_LENGTH,\n\tDEFAULT_SIZE,\n\tisCreateOption,\n\tgetCreateOptionValue,\n} from './constants';\n\nimport { useEnhancedComboboxCore } from './hooks/use-enhanced-combobox-core';\nimport type {\n\tEnhancedComboboxProps,\n\tEnhancedComboboxMultipleProps,\n\tComboboxSize,\n} from './types';\n\nconst formControlSizeToComboboxSize: Record<FormControlSize, ComboboxSize> = {\n\tsmall: 'small',\n\tdefault: 'default',\n};\n\nfunction resolveComboboxSize(\n\tsizeProp: ComboboxSize | undefined,\n\tdefaultControlSize: FormControlSize | undefined,\n): ComboboxSize {\n\treturn sizeProp ?? formControlSizeToComboboxSize[defaultControlSize ?? 'default'] ?? DEFAULT_SIZE;\n}\n\nconst comboboxSizeToFormControlSize: Record<ComboboxSize, FormControlSize> = {\n\tsmall: 'small',\n\tdefault: 'default',\n};\n\nconst inputEndPaddingBySize: Record<ComboboxSize, string> = {\n\tsmall: 'pe-control-actions-sm',\n\tdefault: 'pe-control-actions',\n};\n\nconst primitiveComboboxSizeBySize: Record<ComboboxSize, 'sm' | 'md'> = {\n\tsmall: 'sm',\n\tdefault: 'md',\n};\n\nfunction getComboboxFormSize(size: ComboboxSize): FormControlSize {\n\treturn comboboxSizeToFormControlSize[size];\n}\n\ninterface ComboboxInputFieldProps {\n\tplaceholder: string;\n\tclearLabel: string;\n\ttoggleLabel: string;\n\tsize: FormControlSize;\n\terror?: boolean;\n\trequired?: boolean;\n\tdisabled?: boolean;\n\tclearable?: boolean;\n\tclassName?: string;\n\tonBlur?: () => void;\n}\n\nfunction ComboboxInputField({\n\tplaceholder,\n\tclearLabel,\n\ttoggleLabel,\n\tsize,\n\terror,\n\trequired,\n\tdisabled,\n\tclearable = true,\n\tclassName,\n\tonBlur,\n}: ComboboxInputFieldProps): React.ReactElement {\n\treturn (\n\t\t<div className=\"relative\">\n\t\t\t<ComboboxPrimitive.Input\n\t\t\t\trender={\n\t\t\t\t\t<Input\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tinvalid={error}\n\t\t\t\t\t\tclassName={cn(inputEndPaddingBySize[size], className)}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\taria-invalid={error || undefined}\n\t\t\t\taria-required={required}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonBlur={onBlur}\n\t\t\t/>\n\t\t\t<div className=\"absolute inset-y-0 end-1 flex items-center gap-1 text-muted-foreground\">\n\t\t\t\t{clearable ? (\n\t\t\t\t\t<ComboboxPrimitive.Clear\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\t\t\tclassName=\"size-control-clear text-muted-foreground hover:text-foreground\"\n\t\t\t\t\t\t\t\taria-label={clearLabel}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<XIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t\t<ComboboxPrimitive.Trigger\n\t\t\t\t\trender={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\t\tclassName=\"size-control-clear text-muted-foreground hover:text-foreground\"\n\t\t\t\t\t\t\taria-label={toggleLabel}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ChevronDownIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n// ============================================================================\n// Single Selection Component\n// ============================================================================\n\nexport function EnhancedCombobox<T>({\n\t// Core props\n\titems,\n\tselectedValue,\n\tonSelectedValueChange,\n\tsearchValue,\n\tonSearchValueChange,\n\tgetItemLabel,\n\tgetItemKey,\n\tisLoading = false,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n\tstrings: stringsProp,\n\tdisabled = false,\n\tclassName,\n\tclearable = true,\n\trenderItem,\n\tportalContainer,\n\n\t// Form Integration\n\tname,\n\tinvalid,\n\terror,\n\trequired,\n\tonBlur,\n\n\t// Debounced Search\n\tonSearch,\n\tdebounceMs,\n\n\t// Creatable\n\tcreatable,\n\tonCreate,\n\n\t// Grouped Items\n\tgetItemGroup,\n\trenderGroupLabel,\n\n\t// Load More\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n\n\t// Disable individual items\n\tgetItemDisabled,\n\n\t// Highlight Match\n\thighlightMatch,\n\n\t// Size\n\tsize: sizeProp,\n\n\t// Controlled Open\n\topen,\n\tonOpenChange,\n}: EnhancedComboboxProps<T>): React.ReactElement {\n\tconst { defaultControlSize } = useFormsConfig();\n\tconst size = resolveComboboxSize(sizeProp, defaultControlSize);\n\tconst formSize = getComboboxFormSize(size);\n\tconst hasError = invalid || Boolean(error);\n\n\t// Use shared core hook\n\tconst core = useEnhancedComboboxCore({\n\t\titems,\n\t\tsearchValue,\n\t\tonSearchValueChange,\n\t\tgetItemLabel,\n\t\tgetItemKey,\n\t\tisLoading,\n\t\tminSearchLength,\n\t\tstrings: stringsProp,\n\t\trenderItem,\n\t\tonSearch,\n\t\tdebounceMs,\n\t\tcreatable,\n\t\tonCreate,\n\t\tgetItemGroup,\n\t\thasMore,\n\t\tonLoadMore,\n\t\tisLoadingMore,\n\t\thighlightMatch,\n\t\tsize,\n\t\t// Include selected value in items list\n\t\tensuredItems: selectedValue ? [selectedValue] : [],\n\t});\n\n\t// Track open state so we can show the selected label when closed\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst handleOpenChange = useCallback(\n\t\t(nextOpen: boolean) => {\n\t\t\tsetIsOpen(nextOpen);\n\t\t\tif (!nextOpen) {\n\t\t\t\t// Clear search when closing so next open starts fresh\n\t\t\t\tonSearchValueChange('');\n\t\t\t}\n\t\t\tonOpenChange?.(nextOpen);\n\t\t},\n\t\t[onOpenChange, onSearchValueChange],\n\t);\n\n\t// When closed with a selected value, show the label; when open, show search text\n\tconst displayInputValue = isOpen\n\t\t? searchValue\n\t\t: (selectedValue ? core.itemToStringLabel(selectedValue) : '');\n\n\t// Handle value change, including create option\n\tconst handleValueChange = useCallback(\n\t\t(value: T | null): void => {\n\t\t\tif (value && isCreateOption(value)) {\n\t\t\t\tconst inputValue = getCreateOptionValue(value);\n\t\t\t\tonCreate?.(inputValue);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelectedValueChange(value);\n\t\t},\n\t\t[onSelectedValueChange, onCreate]\n\t);\n\n\treturn (\n\t\t<div className=\"enhanced-combobox--component\">\n\t\t\t<BaseCombobox\n\t\t\t\titems={core.allItems}\n\t\t\t\tvalue={selectedValue}\n\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\tinputValue={displayInputValue}\n\t\t\t\tonInputValueChange={(value, { reason }) => {\n\t\t\t\t\tif (reason === 'item-press') {\n\t\t\t\t\t\tonSearchValueChange('');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonSearchValueChange(value);\n\t\t\t\t}}\n\t\t\t\titemToStringLabel={core.itemToStringLabel}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tfilter={null}\n\t\t\t\tname={name}\n\t\t\t\trequired={required}\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={handleOpenChange}\n\t\t\t>\n\t\t\t\t<ComboboxInputField\n\t\t\t\t\tplaceholder={core.strings.placeholder}\n\t\t\t\t\tclearLabel={core.strings.clear}\n\t\t\t\t\ttoggleLabel={core.strings.toggle}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tsize={formSize}\n\t\t\t\t\terror={hasError}\n\t\t\t\t\trequired={required}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tclearable={clearable}\n\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t/>\n\n\t\t\t\t<ComboboxDropdown\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tshowStatus={core.showStatus}\n\t\t\t\t\tshowEmpty={core.showEmpty}\n\t\t\t\t\tsearchValue={searchValue}\n\t\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\t\titems={items}\n\t\t\t\t\tgroupedItems={core.groupedItems}\n\t\t\t\t\tcreateOptionItem={core.createOptionItem}\n\t\t\t\t\trenderItemContent={core.renderItemContent}\n\t\t\t\t\tgetItemReactKey={core.getItemReactKey}\n\t\t\t\t\tgetItemDisabled={getItemDisabled}\n\t\t\t\t\trenderGroupLabel={renderGroupLabel}\n\t\t\t\t\tisLoadingMore={isLoadingMore}\n\t\t\t\t\tstrings={core.strings}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tportalContainer={portalContainer}\n\t\t\t\t\tlistRef={core.listRef}\n\t\t\t\t/>\n\t\t\t</BaseCombobox>\n\n\t\t\t<ErrorMessage error={error} size={size} />\n\t\t</div>\n\t);\n}\n\n// ============================================================================\n// Multiple Selection Component\n// ============================================================================\n\nexport function EnhancedComboboxMultiple<T>({\n\t// Core props\n\titems,\n\tselectedValues,\n\tonSelectedValuesChange,\n\tsearchValue,\n\tonSearchValueChange,\n\tgetItemLabel,\n\tgetItemKey,\n\tisLoading = false,\n\tminSearchLength = DEFAULT_MIN_SEARCH_LENGTH,\n\tstrings: stringsProp,\n\tdisabled = false,\n\tclassName,\n\trenderItem,\n\tportalContainer,\n\n\t// Form Integration\n\tname,\n\tinvalid,\n\terror,\n\trequired,\n\tonBlur,\n\n\t// Debounced Search\n\tonSearch,\n\tdebounceMs,\n\n\t// Creatable\n\tcreatable,\n\tonCreate,\n\n\t// Grouped Items\n\tgetItemGroup,\n\trenderGroupLabel,\n\n\t// Load More\n\thasMore,\n\tonLoadMore,\n\tisLoadingMore,\n\n\t// Disable individual items\n\tgetItemDisabled,\n\n\t// Highlight Match\n\thighlightMatch,\n\n\t// Size\n\tsize: sizeProp,\n\n\t// Controlled Open\n\topen,\n\tonOpenChange,\n\n\t// Behaviour\n\tcloseOnSelect = false,\n\tapplyButton = false,\n\tonApply,\n\tonCancel,\n}: EnhancedComboboxMultipleProps<T>): React.ReactElement {\n\tconst { defaultControlSize } = useFormsConfig();\n\tconst size = resolveComboboxSize(sizeProp, defaultControlSize);\n\tconst formSize = getComboboxFormSize(size);\n\tconst primitiveComboboxSize = primitiveComboboxSizeBySize[size];\n\tconst hasError = invalid || Boolean(error);\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\tconst getKey = getItemKey ?? getItemLabel;\n\n\t// Draft state — only used in `applyButton` mode. Tracks the user's\n\t// in-progress selection so we can commit it on Apply or revert on\n\t// Cancel. When apply mode is OFF, we pass selections through immediately.\n\tconst [draftValues, setDraftValues] = useState<T[]>(selectedValues);\n\tconst [internalOpen, setInternalOpen] = useState(false);\n\tconst isOpenControlled = open !== undefined;\n\tconst resolvedOpen = isOpenControlled ? open : internalOpen;\n\n\tuseEffect(() => {\n\t\tif (applyButton) setDraftValues(selectedValues);\n\t}, [applyButton, selectedValues]);\n\n\tconst setOpen = useCallback(\n\t\t(next: boolean) => {\n\t\t\tif (!isOpenControlled) setInternalOpen(next);\n\t\t\tonOpenChange?.(next);\n\t\t},\n\t\t[isOpenControlled, onOpenChange],\n\t);\n\n\t// Use shared core hook\n\tconst core = useEnhancedComboboxCore({\n\t\titems,\n\t\tsearchValue,\n\t\tonSearchValueChange,\n\t\tgetItemLabel,\n\t\tgetItemKey,\n\t\tisLoading,\n\t\tminSearchLength,\n\t\tstrings: stringsProp,\n\t\trenderItem,\n\t\tonSearch,\n\t\tdebounceMs,\n\t\tcreatable,\n\t\tonCreate,\n\t\tgetItemGroup,\n\t\thasMore,\n\t\tonLoadMore,\n\t\tisLoadingMore,\n\t\thighlightMatch,\n\t\tsize,\n\t\t// Include selected values in items list\n\t\tensuredItems: selectedValues,\n\t});\n\n\t// Handle value change, filtering out create options\n\tconst handleValueChange = useCallback(\n\t\t(values: T[]): void => {\n\t\t\tconst regularValues: T[] = [];\n\t\t\tlet createValue: string | null = null;\n\n\t\t\tfor (const value of values) {\n\t\t\t\tif (isCreateOption(value)) {\n\t\t\t\t\tcreateValue = getCreateOptionValue(value);\n\t\t\t\t} else {\n\t\t\t\t\tregularValues.push(value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (createValue) {\n\t\t\t\tonCreate?.(createValue);\n\t\t\t}\n\n\t\t\tconst next = (regularValues.length !== values.length || !createValue) ? regularValues : null;\n\t\t\tif (next) {\n\t\t\t\tif (applyButton) {\n\t\t\t\t\tsetDraftValues(next);\n\t\t\t\t} else {\n\t\t\t\t\tonSelectedValuesChange(next);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t},\n\t\t[onSelectedValuesChange, onCreate, applyButton, closeOnSelect, setOpen],\n\t);\n\n\tconst handleApply = useCallback(() => {\n\t\tif (applyButton) onSelectedValuesChange(draftValues);\n\t\tonApply?.();\n\t\tsetOpen(false);\n\t}, [applyButton, draftValues, onApply, onSelectedValuesChange, setOpen]);\n\n\tconst handleCancel = useCallback(() => {\n\t\tif (applyButton) setDraftValues(selectedValues);\n\t\tonCancel?.();\n\t\tsetOpen(false);\n\t}, [applyButton, selectedValues, onCancel, setOpen]);\n\n\tconst visibleValues = applyButton ? draftValues : selectedValues;\n\tconst chipsPlaceholder = visibleValues.length > 0 ? undefined : core.strings.placeholder;\n\n\treturn (\n\t\t<div className=\"enhanced-combobox--component\">\n\t\t\t<BaseCombobox\n\t\t\t\titems={core.allItems}\n\t\t\t\tmultiple\n\t\t\t\tvalue={visibleValues}\n\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\tinputValue={searchValue}\n\t\t\t\tonInputValueChange={(value, { reason }) => {\n\t\t\t\t\tif (reason === 'item-press') {\n\t\t\t\t\t\tonSearchValueChange('');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonSearchValueChange(value);\n\t\t\t\t}}\n\t\t\t\titemToStringLabel={core.itemToStringLabel}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tfilter={null}\n\t\t\t\tname={name}\n\t\t\t\trequired={required}\n\t\t\t\topen={resolvedOpen}\n\t\t\t\tonOpenChange={(next) => {\n\t\t\t\t\t// In apply-button mode, closing without committing should\n\t\t\t\t\t// revert the draft so the next open starts clean.\n\t\t\t\t\tif (!next && applyButton) setDraftValues(selectedValues);\n\t\t\t\t\tsetOpen(next);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<ComboboxChips\n\t\t\t\t\tref={containerRef}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tformControlMinHeightClasses[formSize],\n\t\t\t\t\t\tformControlPaddingClasses[formSize],\n\t\t\t\t\t\tformSize === 'small' ? 'text-xs' : 'text-sm',\n\t\t\t\t\t\t'bg-transparent !shadow-none',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tsize={primitiveComboboxSize}\n\t\t\t\t\terror={hasError}\n\t\t\t\t>\n\t\t\t\t\t{visibleValues.map((item) => (\n\t\t\t\t\t\t<ComboboxChip key={getKey(item)}>\n\t\t\t\t\t\t\t{getItemLabel(item)}\n\t\t\t\t\t\t</ComboboxChip>\n\t\t\t\t\t))}\n\t\t\t\t\t<ComboboxChipsInput\n\t\t\t\t\t\tplaceholder={chipsPlaceholder}\n\t\t\t\t\t\taria-invalid={hasError || undefined}\n\t\t\t\t\t\taria-required={required}\n\t\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\t/>\n\t\t\t\t</ComboboxChips>\n\n\t\t\t\t<ComboboxDropdown\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tshowStatus={core.showStatus}\n\t\t\t\t\tshowEmpty={core.showEmpty}\n\t\t\t\t\tsearchValue={searchValue}\n\t\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\t\titems={items}\n\t\t\t\t\tgroupedItems={core.groupedItems}\n\t\t\t\t\tcreateOptionItem={core.createOptionItem}\n\t\t\t\t\trenderItemContent={core.renderItemContent}\n\t\t\t\t\tgetItemReactKey={core.getItemReactKey}\n\t\t\t\t\tgetItemDisabled={getItemDisabled}\n\t\t\t\t\trenderGroupLabel={renderGroupLabel}\n\t\t\t\t\tisLoadingMore={isLoadingMore}\n\t\t\t\t\tstrings={core.strings}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tportalContainer={portalContainer}\n\t\t\t\t\tlistRef={core.listRef}\n\t\t\t\t\tanchor={containerRef}\n\t\t\t\t\tapplyFooter={applyButton ? {\n\t\t\t\t\t\tapplyLabel: core.strings.apply,\n\t\t\t\t\t\tcancelLabel: core.strings.cancel,\n\t\t\t\t\t\tonApply: handleApply,\n\t\t\t\t\t\tonCancel: handleCancel,\n\t\t\t\t\t} : undefined}\n\t\t\t\t/>\n\t\t\t</BaseCombobox>\n\n\t\t\t<ErrorMessage error={error} size={size} />\n\t\t</div>\n\t);\n}\n\n// ============================================================================\n// Legacy Aliases\n// ============================================================================\n\n/** @deprecated Use EnhancedCombobox instead */\nexport const ApiCombobox = EnhancedCombobox;\n\n/** @deprecated Use EnhancedComboboxMultiple instead */\nexport const ApiComboboxMultiple = EnhancedComboboxMultiple;\n\nEnhancedCombobox.displayName = 'EnhancedCombobox';\nEnhancedComboboxMultiple.displayName = 'EnhancedComboboxMultiple';\n","import { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { EnhancedCombobox } from './enhanced-combobox';\nimport { defaultComboboxStrings } from './combobox.strings';\nimport { DEFAULT_DEBOUNCE_MS } from './constants';\nimport type { ComboboxSize, ComboboxStrings, EnhancedComboboxProps } from './types';\n\nexport interface AsyncResourceComboboxFetcherArgs {\n\tquery: string;\n\tlimit: number;\n\tsignal?: AbortSignal;\n}\n\nexport type AsyncResourceComboboxFetcher<T> = (\n\targs: AsyncResourceComboboxFetcherArgs,\n) => Promise<T[]>;\n\nexport interface AsyncResourceComboboxStrings extends ComboboxStrings {\n\terror: string;\n}\n\nexport const defaultAsyncResourceComboboxStrings: AsyncResourceComboboxStrings = {\n\t...defaultComboboxStrings,\n\terror: 'Unable to load options.',\n};\n\nexport interface AsyncResourceComboboxRenderOptionContext {\n\tquery: string;\n\tisSelected: boolean;\n}\n\nexport interface AsyncResourceComboboxProps<T>\n\textends Omit<\n\t\tEnhancedComboboxProps<T>,\n\t\t| 'items'\n\t\t| 'selectedValue'\n\t\t| 'onSelectedValueChange'\n\t\t| 'searchValue'\n\t\t| 'onSearchValueChange'\n\t\t| 'getItemLabel'\n\t\t| 'getItemKey'\n\t\t| 'isLoading'\n\t\t| 'renderItem'\n\t\t| 'strings'\n\t\t| 'error'\n\t\t| 'debounceMs'\n\t> {\n\tfetcher: AsyncResourceComboboxFetcher<T>;\n\tvalue?: T | null;\n\tdefaultValue?: T | null;\n\tonValueChange?: (value: T | null) => void;\n\tonAfterFetch?: (items: T[], context: AsyncResourceComboboxFetcherArgs) => void;\n\tonError?: (error: unknown, context: AsyncResourceComboboxFetcherArgs) => void;\n\tgetKey: (item: T) => string;\n\tgetLabel: (item: T) => string;\n\tgetDescription?: (item: T) => ReactNode;\n\tgetMeta?: (item: T) => ReactNode;\n\trenderOption?: (item: T, context: AsyncResourceComboboxRenderOptionContext) => ReactNode;\n\tlimit?: number;\n\tdebounceMs?: number;\n\tpreload?: boolean;\n\terrorMessage?: ReactNode;\n\tstrings?: StringsProp<AsyncResourceComboboxStrings>;\n\tsize?: ComboboxSize;\n}\n\nexport function AsyncResourceCombobox<T>({\n\tfetcher,\n\tvalue,\n\tdefaultValue = null,\n\tonValueChange,\n\tonAfterFetch,\n\tonError,\n\tgetKey,\n\tgetLabel,\n\tgetDescription,\n\tgetMeta,\n\trenderOption,\n\tlimit = 10,\n\tdebounceMs = DEFAULT_DEBOUNCE_MS,\n\tpreload = true,\n\tminSearchLength = 0,\n\terrorMessage,\n\tstrings: stringsProp,\n\tdisabled,\n\t...props\n}: AsyncResourceComboboxProps<T>) {\n\tconst strings = useStrings(defaultAsyncResourceComboboxStrings, stringsProp);\n\tconst isControlled = value !== undefined;\n\tconst [internalValue, setInternalValue] = useState<T | null>(defaultValue);\n\tconst selectedValue = isControlled ? value : internalValue;\n\tconst [searchValue, setSearchValue] = useState('');\n\tconst [items, setItems] = useState<T[]>([]);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState<unknown>(null);\n\tconst requestIdRef = useRef(0);\n\tconst trimmedSearch = searchValue.trim();\n\n\tconst handleValueChange = useCallback(\n\t\t(nextValue: T | null) => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue(nextValue);\n\t\t\t}\n\t\t\tonValueChange?.(nextValue);\n\t\t},\n\t\t[isControlled, onValueChange],\n\t);\n\n\tuseEffect(() => {\n\t\tif (disabled) return;\n\n\t\tconst shouldFetch =\n\t\t\ttrimmedSearch.length > 0\n\t\t\t\t? trimmedSearch.length >= minSearchLength\n\t\t\t\t: preload;\n\n\t\tif (!shouldFetch) {\n\t\t\tsetItems([]);\n\t\t\tsetIsLoading(false);\n\t\t\tsetError(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst requestId = requestIdRef.current + 1;\n\t\trequestIdRef.current = requestId;\n\t\tconst controller = new AbortController();\n\t\tconst context: AsyncResourceComboboxFetcherArgs = {\n\t\t\tquery: trimmedSearch,\n\t\t\tlimit,\n\t\t\tsignal: controller.signal,\n\t\t};\n\n\t\tconst timeout = window.setTimeout(() => {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\n\t\t\tfetcher(context)\n\t\t\t\t.then((nextItems) => {\n\t\t\t\t\tif (controller.signal.aborted || requestIdRef.current !== requestId) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetItems(nextItems);\n\t\t\t\t\tonAfterFetch?.(nextItems, context);\n\t\t\t\t})\n\t\t\t\t.catch((nextError: unknown) => {\n\t\t\t\t\tif (controller.signal.aborted || requestIdRef.current !== requestId) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetItems([]);\n\t\t\t\t\tsetError(nextError);\n\t\t\t\t\tonError?.(nextError, context);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tif (!controller.signal.aborted && requestIdRef.current === requestId) {\n\t\t\t\t\t\tsetIsLoading(false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}, debounceMs);\n\n\t\treturn () => {\n\t\t\twindow.clearTimeout(timeout);\n\t\t\tcontroller.abort();\n\t\t};\n\t}, [\n\t\tdebounceMs,\n\t\tdisabled,\n\t\tfetcher,\n\t\tlimit,\n\t\tminSearchLength,\n\t\tonAfterFetch,\n\t\tonError,\n\t\tpreload,\n\t\ttrimmedSearch,\n\t]);\n\n\tconst renderItem = useCallback(\n\t\t(item: T) => {\n\t\t\tif (renderOption) {\n\t\t\t\treturn renderOption(item, {\n\t\t\t\t\tquery: trimmedSearch,\n\t\t\t\t\tisSelected: selectedValue ? getKey(selectedValue) === getKey(item) : false,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst description = getDescription?.(item);\n\t\t\tconst meta = getMeta?.(item);\n\n\t\t\treturn (\n\t\t\t\t<span className=\"async-resource-combobox--option flex min-w-0 items-center gap-space-md text-xs leading-tight\">\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" className=\"min-w-0 shrink truncate\">\n\t\t\t\t\t\t{getLabel(item)}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{(!!description || !!meta) && (\n\t\t\t\t\t\t<span className=\"inline-flex min-w-0 flex-1 items-center gap-space-sm overflow-hidden text-xs text-muted-foreground\">\n\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"min-w-0 truncate\">\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!meta && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"min-w-0 truncate opacity-75\">\n\t\t\t\t\t\t\t\t\t{meta}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t);\n\t\t},\n\t\t[getDescription, getKey, getLabel, getMeta, renderOption, selectedValue, trimmedSearch],\n\t);\n\n\tconst resolvedError = useMemo(() => {\n\t\tif (!error) return undefined;\n\t\treturn errorMessage ?? strings.error;\n\t}, [error, errorMessage, strings.error]);\n\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"async-resource-combobox\"\n\t\t\tdata-slot=\"async-resource-combobox\"\n\t\t\tclassName={cn('async-resource-combobox--component', props.className)}\n\t\t>\n\t\t\t<EnhancedCombobox\n\t\t\t\t{...props}\n\t\t\t\tclassName={undefined}\n\t\t\t\tdisabled={disabled}\n\t\t\t\titems={items}\n\t\t\t\tselectedValue={selectedValue ?? null}\n\t\t\t\tonSelectedValueChange={handleValueChange}\n\t\t\t\tsearchValue={searchValue}\n\t\t\t\tonSearchValueChange={setSearchValue}\n\t\t\t\tgetItemLabel={getLabel}\n\t\t\t\tgetItemKey={getKey}\n\t\t\t\tisLoading={isLoading}\n\t\t\t\tminSearchLength={minSearchLength}\n\t\t\t\tstrings={strings}\n\t\t\t\trenderItem={renderItem}\n\t\t\t\terror={typeof resolvedError === 'string' ? resolvedError : undefined}\n\t\t\t/>\n\t\t\t{resolvedError && typeof resolvedError !== 'string' && (\n\t\t\t\t<div className=\"async-resource-combobox--error mt-1.5\">\n\t\t\t\t\t{resolvedError}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nAsyncResourceCombobox.displayName = 'AsyncResourceCombobox';\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/utils.cjs"),n=require("./command-DRIySU26.cjs");let r=require("react");r=e.t(r,1);let i=require("react/jsx-runtime");function a({className:e,...r}){return(0,i.jsx)(n.t,{className:t.cn(`command--component`,`rounded-md! p-0 bg-transparent`,e),...r})}function o({className:e,...r}){return(0,i.jsx)(n.o,{className:t.cn(`max-h-72 px-1 py-1`,e),...r})}function s({className:e,...r}){return(0,i.jsx)(n.r,{className:t.cn(`p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70`,e),...r})}function c({className:e,...r}){return(0,i.jsx)(n.a,{className:t.cn(`gap-space-sm rounded-md px-control-sm py-row-y text-xs`,e),...r})}function l({className:e,...r}){return(0,i.jsx)(n.n,{className:t.cn(`py-4 text-center text-xs text-muted-foreground`,e),...r})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
|
|
2
|
-
//# sourceMappingURL=command-BbJB0pjP.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-BbJB0pjP.cjs","names":[],"sources":["../../src/components/base/command/command.tsx"],"sourcesContent":["/**\n * Command — base wrapper around the shadcn `ui/command` (cmdk) primitive.\n *\n * What this layer adds on top of the primitive:\n * - Density-aware list-row padding via the `py-row-y` token utility.\n * - `xs` typography by default for items (admin-density), with the\n * primitive's typography preserved as a `density=\"default\"` variant.\n * - Tighter `Command` root padding aligned to the popover content pad.\n * - Re-exports every primitive part untouched so the compound-component\n * pattern keeps working: consumers compose\n * `<Command><CommandList><CommandGroup><CommandItem/></CommandGroup></CommandList></Command>`.\n *\n * For the recurring \"popover-with-command-list\" pattern, prefer\n * `base/popover-menu/` which composes both wrappers and adds slots.\n */\nimport * as React from 'react';\n\nimport {\n Command as CommandPrimitive,\n CommandEmpty as CommandEmptyPrimitive,\n CommandGroup as CommandGroupPrimitive,\n CommandInput,\n CommandList as CommandListPrimitive,\n CommandSeparator,\n CommandShortcut,\n CommandItem as CommandItemPrimitive,\n} from '@/components/ui/command';\nimport { cn } from '@/lib/utils';\n\ntype CommandRootProps = React.ComponentProps<typeof CommandPrimitive>;\n\nfunction Command({ className, ...props }: CommandRootProps) {\n return (\n <CommandPrimitive\n className={cn('command--component', \n // Tighter than the primitive; popover-content already pads the outer.\n 'rounded-md! p-0 bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandListProps = React.ComponentProps<typeof CommandListPrimitive>;\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n return (\n <CommandListPrimitive\n className={cn('max-h-72 px-1 py-1', className)}\n {...props}\n />\n );\n}\n\ntype CommandGroupProps = React.ComponentProps<typeof CommandGroupPrimitive>;\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandGroupPrimitive\n className={cn(\n 'p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandItemProps = React.ComponentProps<typeof CommandItemPrimitive>;\n\nfunction CommandItem({ className, ...props }: CommandItemProps) {\n return (\n <CommandItemPrimitive\n className={cn(\n // Density-tokenized vertical padding; xs typography for admin density.\n 'gap-space-sm rounded-md px-control-sm py-row-y text-xs',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandEmptyProps = React.ComponentProps<typeof CommandEmptyPrimitive>;\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandEmptyPrimitive\n className={cn('py-4 text-center text-xs text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n"],"mappings":"+KA+BA,SAAS,EAAQ,CAAE,YAAW,GAAG,GAA2B,CACxD,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAAG,qBAEV,iCACA,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAY,CAAE,YAAW,GAAG,GAA2B,CAC5D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAAG,qBAAsB,CAAS,EAC7C,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAa,CAAE,YAAW,GAAG,GAA4B,CAC9D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GACP,gPACA,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAY,CAAE,YAAW,GAAG,GAA2B,CAC5D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAEP,yDACA,CACJ,EACA,GAAI,CACP,CAAA,CAET,CAIA,SAAS,EAAa,CAAE,YAAW,GAAG,GAA4B,CAC9D,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,UAAW,EAAA,GAAG,iDAAkD,CAAS,EACzE,GAAI,CACP,CAAA,CAET"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { cn as e } from "../lib/utils.js";
|
|
2
|
-
import { a as t, n, o as r, r as i, t as a } from "./command-CAI-BCSR.js";
|
|
3
|
-
import "react";
|
|
4
|
-
import { jsx as o } from "react/jsx-runtime";
|
|
5
|
-
//#region src/components/base/command/command.tsx
|
|
6
|
-
function s({ className: t, ...n }) {
|
|
7
|
-
return /* @__PURE__ */ o(a, {
|
|
8
|
-
className: e("command--component", "rounded-md! p-0 bg-transparent", t),
|
|
9
|
-
...n
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
function c({ className: t, ...n }) {
|
|
13
|
-
return /* @__PURE__ */ o(r, {
|
|
14
|
-
className: e("max-h-72 px-1 py-1", t),
|
|
15
|
-
...n
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
function l({ className: t, ...n }) {
|
|
19
|
-
return /* @__PURE__ */ o(i, {
|
|
20
|
-
className: e("p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70", t),
|
|
21
|
-
...n
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
function u({ className: n, ...r }) {
|
|
25
|
-
return /* @__PURE__ */ o(t, {
|
|
26
|
-
className: e("gap-space-sm rounded-md px-control-sm py-row-y text-xs", n),
|
|
27
|
-
...r
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
function d({ className: t, ...r }) {
|
|
31
|
-
return /* @__PURE__ */ o(n, {
|
|
32
|
-
className: e("py-4 text-center text-xs text-muted-foreground", t),
|
|
33
|
-
...r
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
//#endregion
|
|
37
|
-
export { c as a, u as i, d as n, l as r, s as t };
|
|
38
|
-
|
|
39
|
-
//# sourceMappingURL=command-IP2wy_HN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-IP2wy_HN.js","names":[],"sources":["../../src/components/base/command/command.tsx"],"sourcesContent":["/**\n * Command — base wrapper around the shadcn `ui/command` (cmdk) primitive.\n *\n * What this layer adds on top of the primitive:\n * - Density-aware list-row padding via the `py-row-y` token utility.\n * - `xs` typography by default for items (admin-density), with the\n * primitive's typography preserved as a `density=\"default\"` variant.\n * - Tighter `Command` root padding aligned to the popover content pad.\n * - Re-exports every primitive part untouched so the compound-component\n * pattern keeps working: consumers compose\n * `<Command><CommandList><CommandGroup><CommandItem/></CommandGroup></CommandList></Command>`.\n *\n * For the recurring \"popover-with-command-list\" pattern, prefer\n * `base/popover-menu/` which composes both wrappers and adds slots.\n */\nimport * as React from 'react';\n\nimport {\n Command as CommandPrimitive,\n CommandEmpty as CommandEmptyPrimitive,\n CommandGroup as CommandGroupPrimitive,\n CommandInput,\n CommandList as CommandListPrimitive,\n CommandSeparator,\n CommandShortcut,\n CommandItem as CommandItemPrimitive,\n} from '@/components/ui/command';\nimport { cn } from '@/lib/utils';\n\ntype CommandRootProps = React.ComponentProps<typeof CommandPrimitive>;\n\nfunction Command({ className, ...props }: CommandRootProps) {\n return (\n <CommandPrimitive\n className={cn('command--component', \n // Tighter than the primitive; popover-content already pads the outer.\n 'rounded-md! p-0 bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandListProps = React.ComponentProps<typeof CommandListPrimitive>;\n\nfunction CommandList({ className, ...props }: CommandListProps) {\n return (\n <CommandListPrimitive\n className={cn('max-h-72 px-1 py-1', className)}\n {...props}\n />\n );\n}\n\ntype CommandGroupProps = React.ComponentProps<typeof CommandGroupPrimitive>;\n\nfunction CommandGroup({ className, ...props }: CommandGroupProps) {\n return (\n <CommandGroupPrimitive\n className={cn(\n 'p-0 [&_[cmdk-group-heading]]:px-control-sm [&_[cmdk-group-heading]]:pt-space-sm [&_[cmdk-group-heading]]:pb-space-2xs [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground/70',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandItemProps = React.ComponentProps<typeof CommandItemPrimitive>;\n\nfunction CommandItem({ className, ...props }: CommandItemProps) {\n return (\n <CommandItemPrimitive\n className={cn(\n // Density-tokenized vertical padding; xs typography for admin density.\n 'gap-space-sm rounded-md px-control-sm py-row-y text-xs',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CommandEmptyProps = React.ComponentProps<typeof CommandEmptyPrimitive>;\n\nfunction CommandEmpty({ className, ...props }: CommandEmptyProps) {\n return (\n <CommandEmptyPrimitive\n className={cn('py-4 text-center text-xs text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n"],"mappings":";;;;;AA+BA,SAAS,EAAQ,EAAE,cAAW,GAAG,KAA2B;CACxD,OACI,kBAAC,GAAD;EACI,WAAW,EAAG,sBAEV,kCACA,CACJ;EACA,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAY,EAAE,cAAW,GAAG,KAA2B;CAC5D,OACI,kBAAC,GAAD;EACI,WAAW,EAAG,sBAAsB,CAAS;EAC7C,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAa,EAAE,cAAW,GAAG,KAA4B;CAC9D,OACI,kBAAC,GAAD;EACI,WAAW,EACP,iPACA,CACJ;EACA,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAY,EAAE,cAAW,GAAG,KAA2B;CAC5D,OACI,kBAAC,GAAD;EACI,WAAW,EAEP,0DACA,CACJ;EACA,GAAI;CACP,CAAA;AAET;AAIA,SAAS,EAAa,EAAE,cAAW,GAAG,KAA4B;CAC9D,OACI,kBAAC,GAAD;EACI,WAAW,EAAG,kDAAkD,CAAS;EACzE,GAAI;CACP,CAAA;AAET"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../lib/strings.cjs"),t=require("./ui-provider-CrsJ_dGn.cjs"),n=require("../lib/utils.cjs"),r=require("./button-CfQtOuBK.cjs"),i=require("./tooltip-mvxZV_Lu.cjs"),a=require("./typography-CWEobAJV.cjs"),o=require("./badge-C65rt1M9.cjs"),s=require("./cards-m03XN10f.cjs"),c=require("./popover-dWR7-MzY.cjs"),l=require("./avatar-BnKM_o2d.cjs"),u=require("./rich-text-editor-DqUU-H7i.cjs"),d=require("./mentions-Cg_4vFxd.cjs");let f=require("react"),p=require("date-fns"),m=require("react/jsx-runtime"),h=require("lucide-react");var g={title:`Comments`,subtitle:``,empty:`No comments yet.`,emptyHint:`Start the conversation — your team will see it instantly.`,composerPlaceholder:`Write a comment…`,composerSubmit:`Post comment`,composerSubmitting:`Posting…`,composerSave:`Save changes`,invalidContent:`Comment cannot be empty.`,composerCancel:`Cancel`,composerEditingEyebrow:`Editing comment`,composerReplyingEyebrow:`Replying to {{name}}`,composerAttachmentLabel:`Attach file`,composerReferenceLabel:`Mention or link`,composerReferenceMenuTitle:`Insert reference`,composerReferenceSearchPlaceholder:`Search…`,composerReferenceEmpty:`No matches.`,composerReferenceLoading:`Searching…`,fallbackAuthor:`Anonymous`,pinned:`Pinned`,edited:`edited`,deleteLabel:`Delete`,editLabel:`Edit`,replyLabel:`Reply`,pinLabel:`Pin`,unpinLabel:`Unpin`,moreActionsLabel:`More actions`,confirmDeleteLabel:`Delete comment`,attachmentFallback:`Attachment`,attachmentRemoveLabel:`Remove attachment`,attachmentUploadingLabel:`Uploading…`,attachmentFailedLabel:`Upload failed`,attachmentTooLargeError:`File is too large.`,attachmentTooManyError:`Too many attachments.`,attachmentRetryLabel:`Retry`,attachmentDownloadLabel:`Download`,addReactionLabel:`Add reaction`,showRepliesLabel:`Show replies`,hideRepliesLabel:`Hide replies`};function _(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>{let r=t[n];return r==null?``:String(r)})}function v(t){return e.useStrings(g,t)}function y(e){let n=t.c(),r=t.i();return(0,f.useMemo)(()=>({getMediaUrl:e?.getMediaUrl??(e=>n.resolveUrl?.(e??{})),getMediaName:e?.getMediaName??(e=>n.resolveName?.(e??{})),getStatusLabel:e?.getStatusLabel,formatRelativeTime:e?.formatRelativeTime??r.formatRelativeTime}),[e,n,r.formatRelativeTime])}function b(e){return typeof e!=`number`||e<=0?null:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function x(e){return e.mimeType?.startsWith(`image/`)?h.Image:e.mimeType===`application/pdf`||e.mimeType?.startsWith(`text/`)?h.FileText:e.mimeType?h.File:h.Paperclip}var S=({attachment:t,editable:i=!1,onRemove:o,onRetry:s,accessors:c,strings:l,compact:u=!1,className:d})=>{let f=e.useStrings(g,l),p=c?.getMediaUrl?.(t)??t.url,_=c?.getMediaName?.(t)??t.name??f.attachmentFallback,v=x(t),y=t.status===`uploading`,S=t.status===`failed`,C=b(t.size),w=y?f.attachmentUploadingLabel+(typeof t.progress==`number`?` ${Math.round(t.progress)}%`:``):S?t.error??f.attachmentFailedLabel:C,T=n.cn(`relative inline-flex min-w-0 max-w-[20rem] items-center gap-1.5 rounded-md`,`ring-1 ring-inset transition-colors`,u?`px-2 py-1 text-xs`:`px-2.5 py-1 text-xs`,S?`bg-destructive/[0.04] ring-destructive/30 hover:bg-destructive/[0.08]`:`bg-foreground/[0.03] ring-border/60 hover:bg-foreground/[0.06]`,d),E=y?(0,m.jsx)(h.Loader2,{className:n.cn(`shrink-0 animate-spin text-muted-foreground`,`size-3.5`),"aria-hidden":!0}):(0,m.jsx)(v,{className:n.cn(`shrink-0`,`size-3.5`,S?`text-destructive`:`text-muted-foreground`),"aria-hidden":!0}),D=(0,m.jsxs)(`span`,{className:`inline-flex min-w-0 items-baseline gap-1.5`,children:[(0,m.jsx)(a.s,{tag:`span`,size:`xs`,weight:`medium`,className:n.cn(`truncate`,S&&`text-destructive`),children:_}),w?(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:w}):null]});return(0,m.jsxs)(`div`,{className:T,children:[E,p&&!y&&!S?(0,m.jsx)(`a`,{href:p,target:`_blank`,rel:`noreferrer noopener`,className:`inline-flex min-w-0 flex-1 items-baseline gap-1.5 hover:underline`,"aria-label":f.attachmentDownloadLabel,children:D}):D,y&&typeof t.progress==`number`&&(0,m.jsx)(`div`,{className:`bg-primary/15 absolute bottom-0 left-2 right-2 h-px overflow-hidden rounded-full`,children:(0,m.jsx)(`div`,{className:`bg-primary h-full transition-[width]`,style:{width:`${Math.min(100,Math.max(0,t.progress))}%`}})}),S&&s&&(0,m.jsx)(r.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`small`,onClick:()=>s(t.id),className:`h-auto shrink-0 rounded px-1.5 py-px text-xs font-medium ring-1 ring-inset ring-destructive/30 hover:ring-destructive/60`,children:f.attachmentRetryLabel}),i&&o&&(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,onClick:()=>o(t.id),className:`-mr-0.5 size-4 shrink-0 rounded p-0 text-muted-foreground hover:bg-foreground/10 hover:text-foreground`,"aria-label":f.attachmentRemoveLabel,title:f.attachmentRemoveLabel,children:(0,m.jsx)(h.X,{className:`size-3`})})]})};function C(e={}){let{onUpload:t,maxSize:n,maxFiles:r,disabled:i,initialAttachments:a,onChange:o,onError:s}=e,[c,l]=(0,f.useState)(()=>a?[...a]:[]),u=(0,f.useRef)(new Map),d=(0,f.useRef)(new Map),p=(0,f.useRef)(o);p.current=o;let m=(0,f.useCallback)((e,t)=>{l(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),h=(0,f.useCallback)(e=>{l([...e])},[]),g=(0,f.useCallback)((e,n)=>{if(!t)return;let r=new AbortController;u.current.set(e,{controller:r}),m(e,{status:`uploading`,progress:0,error:void 0}),t({file:n,onProgress:t=>{m(e,{progress:t})},signal:r.signal}).then(t=>{u.current.delete(e),m(e,{...t,id:e,status:`uploaded`,progress:100,error:void 0})}).catch(t=>{if(u.current.delete(e),r.signal.aborted)return;let n=t instanceof Error?t.message:`Upload failed`;m(e,{status:`failed`,error:n}),s?.(n)})},[s,t,m]),_=(0,f.useCallback)(e=>{if(i||!t)return;let a=Array.from(e);a.length!==0&&l(e=>{let t=[...e];for(let e of a){if(typeof r==`number`&&t.length>=r){s?.(`Too many attachments.`);break}if(typeof n==`number`&&e.size>n){s?.(`File is too large.`);continue}let i=typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`att-${Date.now()}-${Math.random().toString(36).slice(2)}`;d.current.set(i,e),t.push({id:i,name:e.name,size:e.size,mimeType:e.type,status:`uploading`,progress:0}),queueMicrotask(()=>g(i,e))}return t})},[g,i,r,n,s,t]),v=(0,f.useCallback)(e=>{let t=u.current.get(e);t&&(t.controller.abort(),u.current.delete(e)),d.current.delete(e),l(t=>t.filter(t=>t.id!==e))},[]),y=(0,f.useCallback)(e=>{let t=d.current.get(e);t&&g(e,t)},[g]),b=(0,f.useCallback)(()=>{for(let e of u.current.values())e.controller.abort();u.current.clear(),d.current.clear(),l([])},[]);return(0,f.useEffect)(()=>{p.current?.(c)},[c]),(0,f.useEffect)(()=>{let e=u.current;return()=>{for(let t of e.values())t.controller.abort()}},[]),{attachments:c,uploadedAttachments:(0,f.useMemo)(()=>c.filter(e=>e.status===`uploaded`||!e.status),[c]),isUploading:(0,f.useMemo)(()=>c.some(e=>e.status===`uploading`),[c]),addFiles:_,removeAttachment:v,retryAttachment:y,setAttachments:h,reset:b}}function w(e){return!e||typeof e!=`string`?!1:e.replace(/<[^>]*>/g,``).trim().length>0}var T=(0,f.forwardRef)(function({context:e,canComment:t=!0,isSubmitting:n=!1,errors:i,resetKey:o=0,onSubmit:s,onCancel:l,editingComment:p,strings:g,resources:_,onResourceSearch:y,attachments:b,initialValues:x,autoFocus:T=!1,inlineSubmit:D=!0,placeholder:O},k){let A=v(g),j=_,M=y,N=b,P=(0,f.useRef)(null),[F,I]=(0,f.useState)(()=>x?.content??p?.content??``),[L,R]=(0,f.useState)(null),z=d.u({resources:j,onResourceSearch:M,editorRef:P,initialMentions:x?.references??p?.references}),B=C({...N,initialAttachments:x?.attachments??void 0});(0,f.useImperativeHandle)(k,()=>({focus:()=>P.current?.focus(),clear:()=>{P.current?.clear(),z.reset(),B.reset(),R(null)},setBody:e=>{P.current?.setHTML(e)}}),[B,z]),(0,f.useEffect)(()=>{P.current?.setHTML(x?.content??``),z.setMentions(x?.references??[]),B.setAttachments(x?.attachments??[]),R(null)},[e.id,e.type,o]),(0,f.useEffect)(()=>{if(!p)return;P.current?.setHTML(p.content??``),z.setMentions(p.references??[]);let e=(p.attachments??p.media??[]).filter(e=>!!e);B.setAttachments(e)},[p?.id]),(0,f.useEffect)(()=>{i?.content&&R(i.content)},[i]);let V=t=>{t?.preventDefault();let n=P.current?.getHTML()??F;if(!w(n)){R(A.invalidContent);return}R(null),s({content:n,commentableId:e.id,commentableType:e.type,contentType:`html`,references:z.mentions,attachments:B.uploadedAttachments,editingId:p?.id})},H=(0,f.useRef)(null),U=()=>H.current?.click(),W=e=>{e&&B.addFiles(e)},G=B.attachments.length>0,K=!!p,q=n?A.composerSubmitting:K?A.composerSave:A.composerSubmit,J=K?(0,m.jsx)(E,{label:A.composerEditingEyebrow,closeLabel:A.composerCancel,onClose:l}):null,Y=(0,f.useMemo)(()=>{let e=[];return j&&Object.keys(j).length>0&&e.push({id:`reference`,icon:h.AtSign,label:A.composerReferenceLabel,onClick:()=>z.setPickerOpen(!0)}),N?.onUpload&&!N.disabled&&e.push({id:`attachment`,icon:h.Paperclip,label:A.composerAttachmentLabel,onClick:U}),e},[j,N?.onUpload,N?.disabled,A.composerReferenceLabel,A.composerAttachmentLabel]);if(!t)return null;let X=(0,m.jsx)(r.t,{type:`button`,onClick:()=>V(),disabled:n||B.isUploading,icon:n?h.Loader2:h.Send,children:q}),Z=K||l?(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:l,disabled:n,children:A.composerCancel}):null,Q=G?(0,m.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:B.attachments.map(e=>(0,m.jsx)(S,{attachment:e,editable:!0,onRemove:B.removeAttachment,onRetry:B.retryAttachment,strings:g},e.id))}):null,$=G?Q:null,ee=D===!1?null:X,te=D===!1||K;return(0,m.jsxs)(`form`,{onSubmit:V,className:`space-y-2`,children:[J,(0,m.jsx)(`input`,{ref:H,type:`file`,multiple:!0,hidden:!0,accept:N?.accept,onChange:e=>{W(e.target.files),e.target.value=``}}),!z.triggerActive&&(0,m.jsxs)(c.n,{open:z.pickerOpen,onOpenChange:z.setPickerOpen,children:[(0,m.jsx)(c.s,{render:(0,m.jsx)(`button`,{type:`button`,className:`sr-only`,tabIndex:-1}),children:A.composerReferenceLabel}),(0,m.jsx)(d.r,{open:z.pickerOpen,activeKind:z.activeKind,setActiveKind:z.setActiveKind,kinds:z.kinds,resources:j,query:z.query,setQuery:z.setQuery,suggestions:z.suggestions,isLoading:z.isLoading,onSelect:z.pickSuggestion,strings:{title:A.composerReferenceMenuTitle,searchPlaceholder:A.composerReferenceSearchPlaceholder,empty:A.composerReferenceEmpty,loading:A.composerReferenceLoading}})]}),(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(u.t,{ref:P,value:F,onChange:e=>{I(e);let t=d.t(e),n=z.mentions;if(n.map(e=>e.id).join(`|`)!==t.map(e=>e.id).join(`|`)){let e=new Map(n.map(e=>[e.id,e])),r=t.map(t=>e.get(t.id)??t);z.setMentions(r)}},placeholder:O??A.composerPlaceholder,strings:{editorLabel:O??A.composerPlaceholder},minHeight:`3rem`,autoFocus:T||K,extraToolbarItems:Y,toolbarTrailing:ee,footerSlot:$,onCaretChange:z.handleCaretChange}),(0,m.jsx)(d.n,{open:z.triggerActive&&z.pickerOpen,activeKind:z.activeKind,setActiveKind:z.setActiveKind,onManualKindChange:()=>z.setManualKindOverride(!0),kinds:z.kinds,resources:j,query:z.query,suggestions:z.suggestions,suggestionsByKind:z.suggestionsByKind,isLoading:z.isLoading,onSelect:z.pickSuggestion,strings:{title:A.composerReferenceMenuTitle,empty:A.composerReferenceEmpty,loading:A.composerReferenceLoading}})]}),L&&(0,m.jsx)(a.s,{size:`xs`,type:`error`,children:L}),te&&(0,m.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[Z,X]})]})});function E({label:e,closeLabel:t,onClose:n}){return(0,m.jsxs)(`div`,{className:`bg-muted/40 ring-border/60 flex items-center justify-between rounded px-2.5 py-1.5 ring-1 ring-inset`,children:[(0,m.jsx)(a.s,{size:`xs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wide`,children:e}),n?(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,onClick:n,className:`size-4 rounded p-0 text-muted-foreground hover:text-foreground`,"aria-label":t,children:(0,m.jsx)(h.X,{className:`size-3`})}):null]})}function D(e,t){return _(e,{name:t??``})}var O=({strings:e,icon:t,className:r})=>{let i=v(e);return(0,m.jsxs)(`div`,{className:n.cn(`flex flex-col items-center justify-center py-8 text-center`,r),children:[(0,m.jsx)(`div`,{className:`bg-muted/50 mb-3 flex h-12 w-12 items-center justify-center rounded-full`,children:t??(0,m.jsx)(h.MessageCircle,{className:`text-muted-foreground/60 h-5 w-5`})}),(0,m.jsx)(a.s,{weight:`medium`,children:i.empty}),i.emptyHint?(0,m.jsx)(a.s,{size:`xs`,type:`secondary`,className:`mt-1 max-w-[28ch]`,children:i.emptyHint}):null]})};function k(e){return(0,m.jsx)(A,{comment:e})}function A(e){let{comment:t,resources:n,renderReference:r,sanitizer:i}=e,o=t.contentType??t.content_type??`text`;return o===`rich`?j(t.content):o===`html`?(0,m.jsx)(d.o,{html:t.content??``,mentions:t.references,resources:n,renderMention:r,sanitizer:i}):(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:P(t.content??``)})}function j(e){if(!e)return null;try{let t=JSON.parse(e);return!t||!Array.isArray(t.blocks)||t.blocks.length===0?null:(0,m.jsx)(`div`,{className:`prose prose-sm prose-p:my-0.5 prose-headings:my-1 prose-a:text-primary prose-a:no-underline hover:prose-a:underline max-w-none space-y-1`,children:t.blocks.map((e,t)=>(0,m.jsx)(f.Fragment,{children:M(e)},e.id??`${e.type}-${t}`))})}catch{return(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:P(e)})}}function M(e){let t=e.data??{};switch(e.type){case`paragraph`:{let e=String(t.text??``).trim();return e?(0,m.jsx)(a.s,{asHTML:!0,content:e}):null}case`header`:{let e=N(String(t.text??``)),n=Number(t.level??3);return e?(0,f.createElement)(a.o,{tag:`h${Math.min(Math.max(n,1),6)}`},e):null}case`list`:{let e=(Array.isArray(t.items)?t.items:[]).map(e=>N(String(e??``))).filter(e=>e.length>0);return e.length===0?null:t.style===`ordered`?(0,m.jsx)(`ol`,{className:`ml-6 list-decimal space-y-1 text-sm`,children:e.map((e,t)=>(0,m.jsx)(`li`,{children:e},`${e}-${t}`))}):(0,m.jsx)(`ul`,{className:`ml-6 list-disc space-y-1 text-sm`,children:e.map(e=>(0,m.jsx)(`li`,{children:e},e))})}case`quote`:{let e=String(t.text??``).trim();if(!e)return null;let n=N(String(t.caption??``));return(0,m.jsxs)(`blockquote`,{className:`border-muted text-muted-foreground border-l-2 pl-3 text-sm italic`,children:[(0,m.jsx)(a.s,{asHTML:!0,content:e}),n.length>0&&(0,m.jsxs)(`cite`,{className:`text-muted-foreground/80 mt-1 block text-xs not-italic`,children:[`— `,n]})]})}case`delimiter`:return(0,m.jsx)(`div`,{className:`border-muted my-4 border-b border-dashed`,"aria-hidden":`true`});default:{let e=N(String(t.text??``));return e?(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:e}):null}}}function N(e){return e.replace(/<[^>]*>/g,``).trim()}function P(e){if(typeof e!=`string`)return``;let t=e.trim();if(t===``)return``;if(t.startsWith(`{`)||t.startsWith(`[`))return t;try{let e=JSON.parse(t);if(typeof e==`string`)return e}catch{}return t.startsWith(`"`)&&t.endsWith(`"`)?t.slice(1,-1):t}var F=`?`,I=e=>e?.url,L=e=>e?.name,R=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/_/g,` `),z=e=>{try{return(0,p.formatDistanceToNow)(new Date(e),{addSuffix:!0})}catch{return`—`}},B=(0,f.memo)(function({comment:e,canModerate:t,onDelete:s,onPinToggle:c,onReact:u,onReply:d,strings:p,getMediaUrl:g,getMediaName:_,getStatusLabel:b,formatRelativeTime:x,resources:C,renderAttachment:w,renderReference:T}){let E=v(p),D=y({getMediaUrl:g,getMediaName:_,getStatusLabel:b,formatRelativeTime:x}),O=D.getMediaUrl??I,k=D.getMediaName??L,j=D.getStatusLabel??R,M=D.formatRelativeTime??z,N=e.user?.name??E.fallbackAuthor,P=e.user?.avatar??void 0,B=(0,f.useMemo)(()=>e.createdAt?M(e.createdAt):`—`,[e.createdAt,M]),V=(0,f.useMemo)(()=>{if(!N)return F;let e=N.trim();return e===``?F:e.charAt(0).toUpperCase()},[N]),H=(0,f.useMemo)(()=>Array.isArray(e.tagsArray)?e.tagsArray.filter(e=>typeof e==`string`):e.tagsArray&&typeof e.tagsArray==`object`?Object.values(e.tagsArray).filter(e=>typeof e==`string`):[],[e.tagsArray]),U=(0,f.useMemo)(()=>(e.attachments??e.media??[]).filter(e=>!!e&&typeof e==`object`),[e.attachments,e.media]),W=e.reactions??[],G=e.isPinned===!0,K=e.isEdited===!0,q=e.status&&e.status!==`active`,J=q&&e.status?j(e.status):null,Y=e.canDelete===!0||t===!0,X=e.canEdit===!0||t===!0,Z=U.length>0;return(0,m.jsx)(`article`,{className:n.cn(`comment-item--component group relative overflow-hidden rounded-lg border transition-colors`,`border-border/60 bg-card hover:bg-muted/30 px-3 py-2.5`),"data-comment-id":e.id,children:(0,m.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,m.jsxs)(l.t,{className:`mt-0.5 size-avatar shrink-0`,children:[!!P&&(0,m.jsx)(l.o,{src:P,alt:N}),(0,m.jsx)(l.r,{className:`bg-muted text-muted-foreground text-xs font-medium`,children:V})]}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,m.jsx)(a.s,{tag:`span`,weight:`semibold`,className:`truncate`,children:N}),!!G&&(0,m.jsx)(i.r,{delayDuration:0,children:(0,m.jsxs)(i.t,{children:[(0,m.jsx)(i.i,{render:(0,m.jsx)(`span`,{className:`inline-flex shrink-0 self-center`}),children:(0,m.jsx)(h.Pin,{className:`text-warning size-3`,"aria-hidden":!0})}),(0,m.jsx)(i.n,{side:`top`,className:`text-xs`,children:E.pinned})]})}),(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:B}),!!K&&(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0`,children:E.edited}),!!q&&!!J&&(0,m.jsx)(o.t,{variant:`secondary`,className:`self-center uppercase tracking-wide`,children:J})]}),(0,m.jsx)(`div`,{className:`mt-1 text-sm leading-relaxed`,children:(0,m.jsx)(A,{comment:e,resources:C,renderReference:T})}),H.length>0&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:H.map(e=>(0,m.jsx)(o.t,{variant:`secondary`,className:`uppercase tracking-wide`,children:e},e))}),Z&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:U.map(e=>w?(0,m.jsx)(`div`,{children:w(e)},e.id??e.name):(0,m.jsx)(S,{attachment:e,accessors:{getMediaUrl:O,getMediaName:k},strings:p},e.id??e.name))}),W.length>0&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1`,children:W.map(t=>(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`small`,onClick:()=>u&&e.id?u(e.id,t.emoji):void 0,title:t.users?.join(`, `),className:`h-auto rounded-full p-0`,children:(0,m.jsxs)(o.t,{variant:t.mine?`primary`:`secondary`,className:`cursor-pointer transition-colors hover:opacity-90`,children:[(0,m.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:t.emoji}),(0,m.jsx)(`span`,{className:`tabular-nums`,children:t.count})]})},t.emoji))})]}),(0,m.jsxs)(`div`,{className:n.cn(`absolute right-2 top-2 opacity-0 transition-opacity`,`group-hover:opacity-100 focus-within:opacity-100`,`inline-flex items-center gap-0.5 rounded-md bg-card/95 shadow-sm ring-1 ring-border/70`),children:[!!d&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>e.id&&d(e.id),title:E.replyLabel,"aria-label":E.replyLabel,children:(0,m.jsx)(h.CornerDownRight,{className:`size-3.5`})}),!!u&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>e.id&&u(e.id,`👍`),title:E.addReactionLabel,"aria-label":E.addReactionLabel,children:(0,m.jsx)(h.Smile,{className:`size-3.5`})}),!!c&&t&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>c(e),title:G?E.unpinLabel:E.pinLabel,"aria-label":G?E.unpinLabel:E.pinLabel,children:(0,m.jsx)(h.Pin,{className:n.cn(`size-3.5`,G&&`text-warning`)})}),!!X&&!!e.id&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,title:E.editLabel,"aria-label":E.editLabel,children:(0,m.jsx)(h.Pencil,{className:`size-3.5`})}),!!Y&&!!s&&!!e.id&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,className:`hover:bg-destructive/10 hover:text-destructive`,onClick:()=>s(e.id),title:E.deleteLabel,"aria-label":E.deleteLabel,children:(0,m.jsx)(h.Trash2,{className:`size-3.5`})})]})]})})}),V=function({comments:e,canModerate:t,onDelete:n,onPinToggle:r,onReact:i,onReply:a,strings:o,getMediaUrl:s,getMediaName:c,getStatusLabel:l,formatRelativeTime:u,resources:d,renderItem:f,renderAttachment:p,renderReference:h,emptySlot:g}){return e.length?(0,m.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,g)=>{let _=(0,m.jsx)(B,{comment:e,canModerate:t,onDelete:n,onPinToggle:r,onReact:i,onReply:a,strings:o,getMediaUrl:s,getMediaName:c,getStatusLabel:l,formatRelativeTime:u,resources:d,renderAttachment:p,renderReference:h});return f?(0,m.jsx)(`div`,{children:f({comment:e,canModerate:t??!1,onDelete:n,defaultItem:_})},e.id??`comment-${g}`):(0,m.jsx)(`div`,{children:_},e.id??`comment-${g}`)})}):(0,m.jsx)(m.Fragment,{children:g??(0,m.jsx)(O,{strings:o})})};function H(e){let r=t.r(),i=e.composerPosition??r.composerPosition??`top`,a=e.canComment??!1,o=e.canModerate??!1,c=e.onSubmit,l=e.onDelete,u=e.onPinToggle,d=e.onReact,p=e.onReply,h=e.resources,g=e.attachments,_=v(e.strings),y=e.title===void 0?_.title:e.title,[b,x]=(0,f.useState)({}),[S,C]=(0,f.useState)(!1),[w,E]=(0,f.useState)(0),D={setErrors:e=>x(e),reset:()=>{E(e=>e+1),x({}),C(!1)},setSubmitting:C},k=(0,f.useCallback)(e=>{c&&(C(!0),x({}),c(e,D))},[c]),A=e.composerSlot??(a?(0,m.jsx)(T,{context:e.context,canComment:a,isSubmitting:S,errors:b,resetKey:w,onSubmit:k,strings:e.strings,resources:h,attachments:g}):null),j=(0,m.jsx)(V,{comments:e.comments,canModerate:o,onDelete:l,onPinToggle:u,onReact:d,onReply:p,strings:e.strings,getMediaUrl:e.getMediaUrl,getMediaName:e.getMediaName,getStatusLabel:e.getStatusLabel,formatRelativeTime:e.formatRelativeTime,resources:h,renderItem:e.renderItem,renderAttachment:e.renderAttachment,renderReference:e.renderReference,emptySlot:e.emptySlot??(0,m.jsx)(O,{strings:e.strings})}),M=A?(0,m.jsx)(`div`,{children:A}):null,N=(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[e.headerSlot,i===`top`&&M,j,i===`bottom`&&M,e.footerSlot]});return e.bare?N:(0,m.jsx)(s.t,{title:y===!1?void 0:y,description:_.subtitle||void 0,padding:`default`,className:n.cn(`comments--component`,e.className),children:N})}var U=H;function W(e={}){let{onSubmit:t,onUpdate:n,onDelete:r}=e,[i,a]=(0,f.useState)({kind:`idle`}),[o,s]=(0,f.useState)(!1),[c,l]=(0,f.useState)({}),[u,d]=(0,f.useState)(0),p={setErrors:e=>l(e),reset:()=>{d(e=>e+1),a({kind:`idle`}),l({})},setSubmitting:s};return{composerMode:i,isSubmitting:o,formErrors:c,resetKey:u,startReply:(0,f.useCallback)(e=>{a({kind:`replying`,commentId:e.id??``,authorName:e.user?.name})},[]),startEdit:(0,f.useCallback)(e=>{a({kind:`editing`,comment:e})},[]),cancelComposerMode:(0,f.useCallback)(()=>{a({kind:`idle`}),l({})},[]),submit:(0,f.useCallback)(e=>{if(s(!0),l({}),i.kind===`editing`&&i.comment.id){if(!n){s(!1);return}n(i.comment.id,e,p);return}if(!t){s(!1);return}t(i.kind===`replying`?{...e,replyToId:i.commentId}:e,p)},[i,t,n]),deleteComment:(0,f.useCallback)(e=>{!r||!e||r(e)},[r]),resetComposer:(0,f.useCallback)(()=>{d(e=>e+1),a({kind:`idle`}),l({})},[]),helpers:p}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return D}});
|
|
2
|
-
//# sourceMappingURL=comments-DAzpeuQq.cjs.map
|