themelia-react-ui 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +527 -0
- package/README.md +47 -14
- package/THIRD_PARTY_NOTICES.md +13 -0
- package/dist/accordion-Cjb6sx0G.js +208 -0
- package/dist/accordion-Cjb6sx0G.js.map +1 -0
- package/dist/action-menu-CllU52Mm.js +280 -0
- package/dist/action-menu-CllU52Mm.js.map +1 -0
- package/dist/affordance-geometry.generated-tF36bREk.js +140 -0
- package/dist/affordance-geometry.generated-tF36bREk.js.map +1 -0
- package/dist/ai-artifact-DvTwDVyL.js +1148 -0
- package/dist/ai-artifact-DvTwDVyL.js.map +1 -0
- package/dist/{app-shell-BE_j8-AT.js → app-shell-C4FhvCqF.js} +5 -5
- package/dist/{app-shell-BE_j8-AT.js.map → app-shell-C4FhvCqF.js.map} +1 -1
- package/dist/attachment-BxDfL2mw.js +246 -0
- package/dist/attachment-BxDfL2mw.js.map +1 -0
- package/dist/{auth-M3vGMgDR.js → auth-ax2BqjrI.js} +241 -235
- package/dist/auth-ax2BqjrI.js.map +1 -0
- package/dist/{avatar-djdaaQ_s.js → avatar-DAPlDvhJ.js} +67 -66
- package/dist/avatar-DAPlDvhJ.js.map +1 -0
- package/dist/badge-HpFqoqSY.js +93 -0
- package/dist/badge-HpFqoqSY.js.map +1 -0
- package/dist/base/accordion.js +1 -1
- package/dist/base/action-menu.js +1 -1
- package/dist/base/attachment.js +1 -1
- package/dist/base/avatar.js +1 -1
- package/dist/base/badge.js +1 -1
- package/dist/base/batch-action-bar.js +3 -0
- package/dist/base/buttons.js +2 -3
- package/dist/base/cards.js +2 -2
- package/dist/base/carousel.js +50 -46
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +69 -81
- package/dist/base/cascader.js.map +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +3 -3
- package/dist/base/code-block.js +1 -1
- package/dist/base/combobox.js +2 -2
- package/dist/base/command.js +1 -1
- package/dist/base/copyable.js +1 -1
- package/dist/base/date-pickers.js +2 -2
- package/dist/base/display.js +7 -7
- package/dist/base/feedback.js +3 -3
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +20 -20
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- package/dist/base/metadata-list.js +3 -0
- package/dist/base/navigation.js +7 -7
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/qr-code.js +1 -1
- package/dist/base/repeaters.js +216 -220
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +1 -1
- package/dist/base/signature-pad.js +147 -137
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +79 -2
- package/dist/base/spinner.js.map +1 -0
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +2 -2
- package/dist/base/toaster.js +46 -45
- package/dist/base/toaster.js.map +1 -1
- package/dist/base/tree.js +1 -1
- package/dist/base/upload-queue.js +1 -1
- package/dist/base/upload.js +3 -3
- package/dist/base/value-inputs.js +2 -2
- package/dist/batch-action-bar-DnUJ21NQ.js +105 -0
- package/dist/batch-action-bar-DnUJ21NQ.js.map +1 -0
- package/dist/blocks/admin.js +171 -169
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +308 -285
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +626 -589
- package/dist/blocks/analytics.js.map +1 -1
- package/dist/blocks/collaboration.js +1 -1
- package/dist/blocks/commerce/receipt.js +1 -1
- package/dist/blocks/commerce.js +2051 -1329
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +3 -2
- package/dist/blocks/onboarding.js +68 -58
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +27 -26
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +1 -1
- package/dist/breadcrumbs-C-oqs1sQ.js +129 -0
- package/dist/breadcrumbs-C-oqs1sQ.js.map +1 -0
- package/dist/{button-R9CCoH7A.js → button-DVzspB_G.js} +15 -14
- package/dist/button-DVzspB_G.js.map +1 -0
- package/dist/{button-BS3KDg00.js → buttons-DPZekJFu.js} +208 -216
- package/dist/buttons-DPZekJFu.js.map +1 -0
- package/dist/cards-BaBZR-AU.js +68 -0
- package/dist/cards-BaBZR-AU.js.map +1 -0
- package/dist/{chart-DwYRKKc-.js → chart-ZOYyK2xG.js} +58 -55
- package/dist/chart-ZOYyK2xG.js.map +1 -0
- package/dist/checkbox-AWIhNhmo.js +36 -0
- package/dist/checkbox-AWIhNhmo.js.map +1 -0
- package/dist/choice-inputs-CNHvARCJ.js +770 -0
- package/dist/choice-inputs-CNHvARCJ.js.map +1 -0
- package/dist/code-block-DeneBJR_.js +185 -0
- package/dist/code-block-DeneBJR_.js.map +1 -0
- package/dist/{collapsible-oMUGM4tr.js → collapsible-C-_l4hpy.js} +4 -4
- package/dist/{collapsible-oMUGM4tr.js.map → collapsible-C-_l4hpy.js.map} +1 -1
- package/dist/{collection-content-Ys-OZOkY.js → collection-content-By56pLog.js} +3 -3
- package/dist/{collection-content-Ys-OZOkY.js.map → collection-content-By56pLog.js.map} +1 -1
- package/dist/combobox-C0EQW6dr.js +875 -0
- package/dist/combobox-C0EQW6dr.js.map +1 -0
- package/dist/combobox-xCQ2RMNE.js +309 -0
- package/dist/combobox-xCQ2RMNE.js.map +1 -0
- package/dist/{command-kPMPjIxJ.js → command-C25VMRII.js} +7 -7
- package/dist/{command-kPMPjIxJ.js.map → command-C25VMRII.js.map} +1 -1
- package/dist/{comments-You0Bzbr.js → comments-BYYlTA8E.js} +390 -379
- package/dist/comments-BYYlTA8E.js.map +1 -0
- package/dist/components/base/action-menu/action-menu.d.ts +21 -4
- package/dist/components/base/action-menu/action-menu.recipes.d.ts +21 -0
- package/dist/components/base/action-menu/index.d.ts +1 -0
- package/dist/components/base/badge/badge.recipes.d.ts +5 -5
- package/dist/components/base/batch-action-bar/batch-action-bar.d.ts +50 -0
- package/dist/components/base/batch-action-bar/batch-action-bar.strings.d.ts +20 -0
- package/dist/components/base/batch-action-bar/index.d.ts +8 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +1 -1
- package/dist/components/base/buttons/button.recipes.d.ts +2 -2
- package/dist/components/base/buttons/loader-button.d.ts +2 -1
- package/dist/components/base/cards/card.recipes.d.ts +2 -3
- package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +3 -13
- package/dist/components/base/cards/smart-card.types.d.ts +11 -4
- package/dist/components/base/chart/chart.d.ts +2 -5
- package/dist/components/base/choice-inputs/checkbox.d.ts +2 -2
- package/dist/components/base/choice-inputs/choice-types.d.ts +18 -6
- package/dist/components/base/combobox/combobox.strings.d.ts +7 -0
- package/dist/components/base/combobox/index.d.ts +30 -4
- package/dist/components/base/display/alert-dialog.d.ts +6 -5
- package/dist/components/base/display/dialog.d.ts +4 -8
- package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
- package/dist/components/base/forms/form-sizing.d.ts +26 -15
- package/dist/components/base/metadata-list/index.d.ts +12 -0
- package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.d.ts +28 -25
- package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-value.d.ts +2 -2
- package/dist/components/base/navigation/index.d.ts +1 -1
- package/dist/components/base/navigation/page-header/index.d.ts +1 -0
- package/dist/components/base/navigation/page-header/page-header-commands.d.ts +73 -0
- package/dist/components/base/navigation/page-header/page-header.d.ts +26 -3
- package/dist/components/base/navigation/pagination.d.ts +5 -2
- package/dist/components/base/popover/popover.recipes.d.ts +15 -1
- package/dist/components/base/sheet/sheet.d.ts +4 -8
- package/dist/components/base/signature-pad/signature-pad.types.d.ts +5 -1
- package/dist/components/base/signature-pad/signature-pad.utils.d.ts +11 -3
- package/dist/components/base/table/index.d.ts +9 -2
- package/dist/components/base/text-inputs/field-clear-button.d.ts +6 -0
- package/dist/components/base/text-inputs/input-group.d.ts +2 -2
- package/dist/components/base/upload/upload.recipes.d.ts +25 -3
- package/dist/components/base/value-inputs/index.d.ts +5 -5
- package/dist/components/base/value-inputs/tags-input.d.ts +36 -12
- package/dist/components/blocks/ai/ai-shimmer/ai-shimmer.d.ts +1 -1
- package/dist/components/blocks/ai/ai-shimmer/types.d.ts +3 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/blocks/commerce/address-card/types.d.ts +2 -1
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +3 -1
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +6 -1
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +3 -1
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +16 -4
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +5 -0
- package/dist/components/blocks/commerce/fulfillment-group/index.d.ts +2 -0
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +45 -0
- package/dist/components/blocks/commerce/index.d.ts +13 -5
- package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-header/types.d.ts +4 -2
- package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-mini/types.d.ts +2 -1
- package/dist/components/blocks/commerce/order-customer/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +5 -0
- package/dist/components/blocks/commerce/order-customer/types.d.ts +48 -0
- package/dist/components/blocks/commerce/order-header/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-header/order-header.d.ts +5 -0
- package/dist/components/blocks/commerce/order-header/types.d.ts +37 -0
- package/dist/components/blocks/commerce/order-line-item/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-line-item/order-line-item.d.ts +5 -0
- package/dist/components/blocks/commerce/order-line-item/types.d.ts +46 -0
- package/dist/components/blocks/commerce/order-summary/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-summary/order-summary.d.ts +5 -0
- package/dist/components/blocks/commerce/order-summary/types.d.ts +42 -0
- package/dist/components/blocks/commerce/order-transactions/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-transactions/order-transactions.d.ts +5 -0
- package/dist/components/blocks/commerce/order-transactions/types.d.ts +46 -0
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +9 -1
- package/dist/components/blocks/commerce/payment-method/types.d.ts +12 -1
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +3 -1
- package/dist/components/blocks/commerce/refund-status/types.d.ts +6 -3
- package/dist/components/blocks/commerce/shared/address-lines.d.ts +21 -0
- package/dist/components/blocks/commerce/shared/line-thumbnail.d.ts +9 -0
- package/dist/components/blocks/commerce/shared/order-status.d.ts +51 -0
- package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
- package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +27 -6
- package/dist/components/blocks/commerce/summary-panel/amount-row.d.ts +2 -0
- package/dist/components/blocks/commerce/summary-panel/index.d.ts +3 -0
- package/dist/components/blocks/commerce/summary-panel/summary-panel.d.ts +2 -0
- package/dist/components/blocks/commerce/summary-panel/types.d.ts +26 -0
- package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
- package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +2 -1
- package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +16 -8
- package/dist/components/blocks/data-display/metadata/index.d.ts +30 -4
- package/dist/components/features/activities/partials/activity-marker.d.ts +6 -3
- package/dist/components/features/activities/partials/activity-row.d.ts +6 -2
- package/dist/components/features/activities/partials/tone-tokens.d.ts +0 -6
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +5 -0
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +220 -0
- package/dist/components/features/appointment-calendar/appointment-calendar.utils.d.ts +41 -0
- package/dist/components/features/appointment-calendar/index.d.ts +3 -0
- package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +32 -0
- package/dist/components/features/appointment-calendar/partials/appointment-month.d.ts +13 -0
- package/dist/components/features/combobox/combobox.strings.d.ts +15 -1
- package/dist/components/features/combobox/types.d.ts +4 -0
- package/dist/components/features/global-search/partials/global-search-group-heading.d.ts +15 -0
- package/dist/components/features/global-search/partials/tone-palettes.d.ts +0 -5
- package/dist/components/features/kanban/kanban.d.ts +1 -1
- package/dist/components/features/kanban/kanban.strings.d.ts +1 -1
- package/dist/components/features/kanban/kanban.types.d.ts +2 -2
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
- package/dist/components/features/media-library/index.d.ts +1 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +6 -0
- package/dist/components/features/media-library/media-library.types.d.ts +74 -1
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
- package/dist/components/features/mentions/partials/mention-kind-toggles.d.ts +16 -0
- package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/dialog.d.ts +1 -1
- package/dist/components/features/overlays/index.d.ts +1 -1
- package/dist/components/features/overlays/overlay-tone-icon.d.ts +3 -3
- package/dist/components/features/overlays/overlays.types.d.ts +20 -0
- package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
- package/dist/components/features/products/components/product-details-card.d.ts +5 -0
- package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
- package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
- package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
- package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
- package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
- package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +23 -1
- package/dist/components/features/products/products.types.d.ts +9 -2
- package/dist/components/features/resource/index.d.ts +1 -1
- package/dist/components/features/resource/resource.d.ts +1 -1
- package/dist/components/features/resource/resource.types.d.ts +34 -6
- package/dist/components/features/rich-text-editor/index.d.ts +2 -1
- package/dist/components/features/rich-text-editor/partials/image-nodes.d.ts +13 -0
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +66 -0
- package/dist/components/features/rich-text-editor/partials/inline-reference-node.d.ts +19 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +7 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +14 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +54 -1
- package/dist/components/features/rich-text-editor/use-rich-text-images.d.ts +18 -0
- package/dist/components/features/sync/index.d.ts +26 -3
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/table-header.d.ts +1 -1
- package/dist/components/features/table/table.strings.d.ts +55 -1
- package/dist/components/features/table/table.types.d.ts +49 -11
- package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +5 -0
- package/dist/components/layout/page/index.d.ts +1 -1
- package/dist/components/layout/page/page.types.d.ts +33 -36
- package/dist/components/layout/page/partials/page-actions.d.ts +1 -0
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +16 -2
- package/dist/components/layout/workspace/workspace.types.d.ts +21 -4
- package/dist/components/primitives/number.d.ts +4 -2
- package/dist/components/primitives/value.d.ts +3 -1
- package/dist/components/typography/rich-text/index.d.ts +1 -1
- package/dist/components/typography/rich-text/rich-text-tree.d.ts +19 -0
- package/dist/components/typography/rich-text/rich-text.d.ts +16 -0
- package/dist/components/typography/text-link.d.ts +8 -3
- package/dist/components/ui/checkbox.d.ts +4 -3
- package/dist/components/ui/combobox.d.ts +6 -2
- package/dist/components/ui/item.d.ts +8 -8
- package/dist/components/ui/overlay.recipes.d.ts +0 -9
- package/dist/components/ui/switch.d.ts +2 -2
- package/dist/components/ui/tabs.d.ts +1 -1
- package/dist/{containers-D_L4mTVb.js → containers-Mu1LMGV1.js} +36 -35
- package/dist/containers-Mu1LMGV1.js.map +1 -0
- package/dist/{copyable-DDjTeW_j.js → copyable-ClBuk_UK.js} +6 -6
- package/dist/{copyable-DDjTeW_j.js.map → copyable-ClBuk_UK.js.map} +1 -1
- package/dist/data-display-DT_khPl_.js +971 -0
- package/dist/data-display-DT_khPl_.js.map +1 -0
- package/dist/{date-uf3z37Nm.js → date-DCrsDTZc.js} +5 -5
- package/dist/{date-uf3z37Nm.js.map → date-DCrsDTZc.js.map} +1 -1
- package/dist/date-picker-ay0Pha_a.js +1530 -0
- package/dist/date-picker-ay0Pha_a.js.map +1 -0
- package/dist/date-pickers-Ccw8DL2b.js +175 -0
- package/dist/date-pickers-Ccw8DL2b.js.map +1 -0
- package/dist/display-hAc1HjpI.js +344 -0
- package/dist/display-hAc1HjpI.js.map +1 -0
- package/dist/dropdown-menu-Cl4X7L5S.js +193 -0
- package/dist/dropdown-menu-Cl4X7L5S.js.map +1 -0
- package/dist/editable-text-recipe-Cn61kEcv.js +10 -0
- package/dist/editable-text-recipe-Cn61kEcv.js.map +1 -0
- package/dist/features/activities.js +478 -542
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +209 -199
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +683 -0
- package/dist/features/appointment-calendar.js.map +1 -0
- package/dist/features/async-preview.js +109 -107
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +1 -1
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +30 -29
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +285 -283
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +282 -273
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +318 -318
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +146 -147
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +269 -268
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +970 -863
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +1 -1
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +1137 -1124
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +206 -194
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +24 -21
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +77 -69
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +30 -11
- package/dist/features/rich-text-editor.js.map +1 -1
- package/dist/features/schema-form.js +35 -33
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +11 -5
- package/dist/features/sync.js.map +1 -1
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +501 -496
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-BYIhtitP.js +239 -0
- package/dist/feedback-BYIhtitP.js.map +1 -0
- package/dist/field-affordance-recipes-DZhnIL_Y.js +41 -0
- package/dist/field-affordance-recipes-DZhnIL_Y.js.map +1 -0
- package/dist/field-state-recipes-BVA2CWHo.js +12 -0
- package/dist/field-state-recipes-BVA2CWHo.js.map +1 -0
- package/dist/{filters-Da-gNPsE.js → filters-BGfvjP4d.js} +483 -472
- package/dist/filters-BGfvjP4d.js.map +1 -0
- package/dist/focus-recipes-B653VaLq.js +12 -0
- package/dist/focus-recipes-B653VaLq.js.map +1 -0
- package/dist/{form-field-VZRULhUK.js → form-field-CwH9y77i.js} +6 -5
- package/dist/form-field-CwH9y77i.js.map +1 -0
- package/dist/{form-sizing-uWP4lzVh.js → form-sizing-BdP_Mf5p.js} +45 -46
- package/dist/form-sizing-BdP_Mf5p.js.map +1 -0
- package/dist/{forms-DDeEnXSY.js → forms-B9G_xwzi.js} +22 -22
- package/dist/{forms-DDeEnXSY.js.map → forms-B9G_xwzi.js.map} +1 -1
- package/dist/forms-numeric-B_jraJaQ.js +906 -0
- package/dist/forms-numeric-B_jraJaQ.js.map +1 -0
- package/dist/{header-2ycNqGOR.js → header-CGXuhcRm.js} +164 -161
- package/dist/header-CGXuhcRm.js.map +1 -0
- package/dist/{hooks-DQ5SPwZw.js → hooks-Dkz0K2WT.js} +2 -2
- package/dist/{hooks-DQ5SPwZw.js.map → hooks-Dkz0K2WT.js.map} +1 -1
- package/dist/{http-CdEIHyQf.js → http-D_6rOnzU.js} +2 -2
- package/dist/{http-CdEIHyQf.js.map → http-D_6rOnzU.js.map} +1 -1
- package/dist/icon-badge-DYKIwvOV.js +55 -0
- package/dist/icon-badge-DYKIwvOV.js.map +1 -0
- package/dist/index.js +7 -7
- package/dist/input-CZw8iU99.js +21 -0
- package/dist/input-CZw8iU99.js.map +1 -0
- package/dist/input-DQdEd0YD.js +263 -0
- package/dist/input-DQdEd0YD.js.map +1 -0
- package/dist/interaction-recipes-XR9ZpVYL.js +25 -0
- package/dist/interaction-recipes-XR9ZpVYL.js.map +1 -0
- package/dist/item-K5_ghvze.js +275 -0
- package/dist/item-K5_ghvze.js.map +1 -0
- package/dist/layer-recipes-CCpklYME.js +13 -0
- package/dist/layer-recipes-CCpklYME.js.map +1 -0
- package/dist/layout/app-shell.js +1 -1
- package/dist/layout/auth.js +1 -1
- package/dist/layout/containers.js +1 -1
- package/dist/layout/header.js +1 -1
- package/dist/layout/hooks.js +1 -1
- package/dist/layout/navigation.js +1 -1
- package/dist/layout/page.js +1 -1
- package/dist/layout/settings.js +1 -1
- package/dist/layout/sidebar.js +2 -2
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +10 -10
- package/dist/lib/affordance-geometry.generated.d.ts +72 -0
- package/dist/lib/editable-text-recipe.d.ts +4 -4
- package/dist/lib/field-affordance-recipes.d.ts +8 -3
- package/dist/lib/field-state-recipes.d.ts +9 -8
- package/dist/lib/focus-recipes.d.ts +24 -0
- package/dist/lib/interaction-recipes.d.ts +40 -0
- package/dist/lib/layer-recipes.d.ts +19 -0
- package/dist/lib/motion-recipes.d.ts +1 -0
- package/dist/lib/overlay-anatomy-recipes.d.ts +1 -0
- package/dist/lib/safe-image-src.d.ts +10 -0
- package/dist/lib/sanitize-html.d.ts +15 -3
- package/dist/lib/surface-recipes.d.ts +47 -7
- package/dist/lib/theme-mode-css.d.ts +7 -0
- package/dist/lib/token-merge.generated.d.ts +9 -6
- package/dist/lib/tone-recipes.d.ts +87 -0
- package/dist/lib/ui-provider/hooks.d.ts +2 -1
- package/dist/lib/ui-provider/index.d.ts +2 -2
- package/dist/lib/ui-provider/types.d.ts +11 -2
- package/dist/lib/utils.js +1 -1
- package/dist/media-gallery-3zIVLMWH.js +203 -0
- package/dist/media-gallery-3zIVLMWH.js.map +1 -0
- package/dist/mentions-utuUvH1K.js +570 -0
- package/dist/mentions-utuUvH1K.js.map +1 -0
- package/dist/{message-YfFmbXNP.js → message-DZ_ruyUV.js} +7 -6
- package/dist/message-DZ_ruyUV.js.map +1 -0
- package/dist/metadata-list-8N16ZMW_.js +405 -0
- package/dist/metadata-list-8N16ZMW_.js.map +1 -0
- package/dist/{motion-recipes-B6jKXEcN.js → motion-recipes-ChBg4HBq.js} +3 -2
- package/dist/{motion-recipes-B6jKXEcN.js.map → motion-recipes-ChBg4HBq.js.map} +1 -1
- package/dist/navigation-Bnotn4AQ.js +145 -0
- package/dist/navigation-Bnotn4AQ.js.map +1 -0
- package/dist/navigation-BzhHI3lo.js +269 -0
- package/dist/navigation-BzhHI3lo.js.map +1 -0
- package/dist/{navigation-row-recipes-DlU-4QYO.js → navigation-row-recipes-BFLCk_Aq.js} +2 -2
- package/dist/{navigation-row-recipes-DlU-4QYO.js.map → navigation-row-recipes-BFLCk_Aq.js.map} +1 -1
- package/dist/{number-CKRBYmZK.js → number-DbV1Dija.js} +36 -34
- package/dist/{number-CKRBYmZK.js.map → number-DbV1Dija.js.map} +1 -1
- package/dist/overflow-tab-bar-CWY7Nogn.js +282 -0
- package/dist/overflow-tab-bar-CWY7Nogn.js.map +1 -0
- package/dist/overlay.recipes-8GHqmlb4.js +6 -0
- package/dist/overlay.recipes-8GHqmlb4.js.map +1 -0
- package/dist/overlays-DNWmZrJ4.js +1001 -0
- package/dist/overlays-DNWmZrJ4.js.map +1 -0
- package/dist/page-Bgl1F560.js +224 -0
- package/dist/page-Bgl1F560.js.map +1 -0
- package/dist/page-header-commands-DOb6WsfD.js +126 -0
- package/dist/page-header-commands-DOb6WsfD.js.map +1 -0
- package/dist/pagination-BL25hu2s.js +158 -0
- package/dist/pagination-BL25hu2s.js.map +1 -0
- package/dist/{popover-Dcv_9jxr.js → popover-7_m66eYW.js} +11 -10
- package/dist/popover-7_m66eYW.js.map +1 -0
- package/dist/popover-menu-B9WWygpa.js +100 -0
- package/dist/popover-menu-B9WWygpa.js.map +1 -0
- package/dist/{popover.recipes-wmbvL8Ah.js → popover.recipes-D3j8R8Yp.js} +18 -11
- package/dist/popover.recipes-D3j8R8Yp.js.map +1 -0
- package/dist/{primitives-BHrwQXFC.js → primitives-BFK08r9M.js} +45 -44
- package/dist/primitives-BFK08r9M.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-Br9WTFya.js → progress-B1VnCT0K.js} +9 -9
- package/dist/{progress-Br9WTFya.js.map → progress-B1VnCT0K.js.map} +1 -1
- package/dist/{receipt-CV89q1fs.js → receipt-BVSOH3Xo.js} +9 -6
- package/dist/{receipt-CV89q1fs.js.map → receipt-BVSOH3Xo.js.map} +1 -1
- package/dist/rich-text-GOUyKQ-s.js +78 -0
- package/dist/rich-text-GOUyKQ-s.js.map +1 -0
- package/dist/rich-text-editor-cRLC-eBK.js +1196 -0
- package/dist/rich-text-editor-cRLC-eBK.js.map +1 -0
- package/dist/rich-text-editor-toolbar-DfXg0-VC.js +94 -0
- package/dist/rich-text-editor-toolbar-DfXg0-VC.js.map +1 -0
- package/dist/rich-text-editor.strings-CB59ekH2.js +38 -0
- package/dist/rich-text-editor.strings-CB59ekH2.js.map +1 -0
- package/dist/safe-image-src-C6kQSMBZ.js +17 -0
- package/dist/safe-image-src-C6kQSMBZ.js.map +1 -0
- package/dist/sanitize-html-DsQmI48u.js +92 -0
- package/dist/sanitize-html-DsQmI48u.js.map +1 -0
- package/dist/scroll-area-DcI-M1UT.js +48 -0
- package/dist/scroll-area-DcI-M1UT.js.map +1 -0
- package/dist/{separator-Do5GWDYi.js → separator-BDV-Y648.js} +3 -3
- package/dist/{separator-Do5GWDYi.js.map → separator-BDV-Y648.js.map} +1 -1
- package/dist/{separator-BMEvwnSX.js → separator-Bom7NsGO.js} +2 -2
- package/dist/{separator-BMEvwnSX.js.map → separator-Bom7NsGO.js.map} +1 -1
- package/dist/services/actions/action-adapters.d.ts +18 -0
- package/dist/services/actions/index.d.ts +1 -1
- package/dist/services/actions.js +16 -4
- package/dist/services/actions.js.map +1 -1
- package/dist/settings-ybnjVwbd.js +171 -0
- package/dist/settings-ybnjVwbd.js.map +1 -0
- package/dist/sheet-CGpB3omz.js +211 -0
- package/dist/sheet-CGpB3omz.js.map +1 -0
- package/dist/{sidebar-Cb8WzOvE.js → sidebar-A0ElHINE.js} +17 -16
- package/dist/sidebar-A0ElHINE.js.map +1 -0
- package/dist/{sidebar-Crc9M9JV.js → sidebar-CPx_7YBa.js} +205 -203
- package/dist/sidebar-CPx_7YBa.js.map +1 -0
- package/dist/{skeleton-DVMXr15h.js → skeleton-Byjnt7qr.js} +9 -9
- package/dist/{skeleton-DVMXr15h.js.map → skeleton-Byjnt7qr.js.map} +1 -1
- package/dist/smart-card-DiC5aac3.js +604 -0
- package/dist/smart-card-DiC5aac3.js.map +1 -0
- package/dist/{structure-hzCW-XsV.js → structure-BmisBK-3.js} +2 -2
- package/dist/{structure-hzCW-XsV.js.map → structure-BmisBK-3.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/surface-recipes-BKRVW8Os.js +43 -0
- package/dist/surface-recipes-BKRVW8Os.js.map +1 -0
- package/dist/table-BweFy_P9.js +1530 -0
- package/dist/table-BweFy_P9.js.map +1 -0
- package/dist/table-DsfzoUia.js +175 -0
- package/dist/table-DsfzoUia.js.map +1 -0
- package/dist/tabs-CDocW5D1.js +191 -0
- package/dist/tabs-CDocW5D1.js.map +1 -0
- package/dist/text-inputs-f9Ia-aCi.js +353 -0
- package/dist/text-inputs-f9Ia-aCi.js.map +1 -0
- package/dist/theme-mode-css-BB-_RYab.js +14 -0
- package/dist/theme-mode-css-BB-_RYab.js.map +1 -0
- package/dist/theme-scope-BJ6eE2xt.js +50 -0
- package/dist/theme-scope-BJ6eE2xt.js.map +1 -0
- package/dist/theme.css +285 -228
- package/dist/themes/green.css +16 -12
- package/dist/timelines-CwM_9IhD.js +457 -0
- package/dist/timelines-CwM_9IhD.js.map +1 -0
- package/dist/tone-recipes-BPsRAvhu.js +73 -0
- package/dist/tone-recipes-BPsRAvhu.js.map +1 -0
- package/dist/tooltip-yiRJUFjp.js +111 -0
- package/dist/tooltip-yiRJUFjp.js.map +1 -0
- package/dist/{tree-BotPlyiD.js → tree-WnKQzwbq.js} +69 -67
- package/dist/tree-WnKQzwbq.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-UTnveOEy.js +117 -0
- package/dist/typography-UTnveOEy.js.map +1 -0
- package/dist/typography.js +2 -2
- package/dist/{ui-provider-D2_TeLqw.js → ui-provider-C_U0Xma4.js} +13 -5
- package/dist/ui-provider-C_U0Xma4.js.map +1 -0
- package/dist/ui-provider.js +3 -3
- package/dist/{upload-B0WHW7ak.js → upload-CXyxmQBP.js} +210 -209
- package/dist/upload-CXyxmQBP.js.map +1 -0
- package/dist/{upload-queue-BHZ_wBfd.js → upload-queue-Boscubn9.js} +111 -111
- package/dist/upload-queue-Boscubn9.js.map +1 -0
- package/dist/upload.recipes-BbxTqrCT.js +61 -0
- package/dist/upload.recipes-BbxTqrCT.js.map +1 -0
- package/dist/{usage-card-U0YBLTNT.js → usage-card-BhO5eqkX.js} +45 -29
- package/dist/usage-card-BhO5eqkX.js.map +1 -0
- package/dist/{utils-Cospvlj1.js → utils-BRhFDwuU.js} +114 -67
- package/dist/utils-BRhFDwuU.js.map +1 -0
- package/dist/value-inputs-DXPDjvBU.js +963 -0
- package/dist/value-inputs-DXPDjvBU.js.map +1 -0
- package/dist/{value-typography-Deb3yQZg.js → value-typography-BP8OG6h5.js} +2 -2
- package/dist/{value-typography-Deb3yQZg.js.map → value-typography-BP8OG6h5.js.map} +1 -1
- package/dist/workspace-Cdrg7k9f.js +408 -0
- package/dist/workspace-Cdrg7k9f.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +21 -22
- package/docs/consumer-skill/examples/app-layout.tsx +1 -1
- package/docs/consumer-skill/examples/composition.tsx +3 -3
- package/docs/consumer-skill/examples/detail.tsx +59 -12
- package/docs/consumer-skill/examples/edit.tsx +1 -1
- package/docs/consumer-skill/examples/receipt.tsx +2 -2
- package/docs/consumer-skill/examples/scoped-directory.tsx +1 -1
- package/docs/consumer-skill/examples/website.tsx +1 -1
- package/docs/consumer-skill/references/agents-md.md +33 -0
- package/docs/consumer-skill/references/analytics.md +1 -1
- package/docs/consumer-skill/references/composition.md +58 -13
- package/docs/consumer-skill/references/design-contract.md +12 -3
- package/docs/consumer-skill/references/installation.md +11 -1
- package/docs/consumer-skill/references/integration.md +4 -3
- package/docs/consumer-skill/references/public-api.json +956 -453
- package/docs/consumer-skill/references/review.md +32 -5
- package/docs/consumer-skill/references/theming.md +78 -9
- package/docs/consumer-skill/references/tokens.json +1 -1
- package/docs/consumer-skill/references/workflows.md +54 -10
- package/docs/consumer-skill/scripts/composition-policy.mjs +42 -11
- package/docs/consumer-skill/scripts/surface-policy.mjs +150 -5
- package/package.json +17 -5
- package/dist/accordion-CQXVcd7Q.js +0 -205
- package/dist/accordion-CQXVcd7Q.js.map +0 -1
- package/dist/action-menu-BTpyPWJ2.js +0 -264
- package/dist/action-menu-BTpyPWJ2.js.map +0 -1
- package/dist/affordance-geometry.generated-CCIXb2A1.js +0 -68
- package/dist/affordance-geometry.generated-CCIXb2A1.js.map +0 -1
- package/dist/ai-artifact-2PQ2fItc.js +0 -1112
- package/dist/ai-artifact-2PQ2fItc.js.map +0 -1
- package/dist/attachment-q69dlt5Y.js +0 -244
- package/dist/attachment-q69dlt5Y.js.map +0 -1
- package/dist/auth-M3vGMgDR.js.map +0 -1
- package/dist/avatar-djdaaQ_s.js.map +0 -1
- package/dist/badge-0tATj-tW.js +0 -92
- package/dist/badge-0tATj-tW.js.map +0 -1
- package/dist/breadcrumbs-BG_FfMK4.js +0 -128
- package/dist/breadcrumbs-BG_FfMK4.js.map +0 -1
- package/dist/button-BS3KDg00.js.map +0 -1
- package/dist/button-R9CCoH7A.js.map +0 -1
- package/dist/buttons-DS0ZIwJ_.js +0 -99
- package/dist/buttons-DS0ZIwJ_.js.map +0 -1
- package/dist/cards-QoJ4syG9.js +0 -66
- package/dist/cards-QoJ4syG9.js.map +0 -1
- package/dist/chart-DwYRKKc-.js.map +0 -1
- package/dist/checkbox-B7ygNTYp.js +0 -35
- package/dist/checkbox-B7ygNTYp.js.map +0 -1
- package/dist/choice-inputs-DrJ17tpL.js +0 -752
- package/dist/choice-inputs-DrJ17tpL.js.map +0 -1
- package/dist/code-block-CD0B7M93.js +0 -183
- package/dist/code-block-CD0B7M93.js.map +0 -1
- package/dist/combobox-6dvVny2q.js +0 -272
- package/dist/combobox-6dvVny2q.js.map +0 -1
- package/dist/combobox-CB7039j7.js +0 -865
- package/dist/combobox-CB7039j7.js.map +0 -1
- package/dist/comments-You0Bzbr.js.map +0 -1
- package/dist/components/layout/page/partials/page-header-commands.d.ts +0 -13
- package/dist/containers-D_L4mTVb.js.map +0 -1
- package/dist/data-display-3xWQUnMA.js +0 -1335
- package/dist/data-display-3xWQUnMA.js.map +0 -1
- package/dist/date-picker-DrDFj8Lo.js +0 -1527
- package/dist/date-picker-DrDFj8Lo.js.map +0 -1
- package/dist/date-pickers-CnFCb0n2.js +0 -174
- package/dist/date-pickers-CnFCb0n2.js.map +0 -1
- package/dist/display-DrdvPwF0.js +0 -343
- package/dist/display-DrdvPwF0.js.map +0 -1
- package/dist/dropdown-menu-CURh59jb.js +0 -193
- package/dist/dropdown-menu-CURh59jb.js.map +0 -1
- package/dist/editable-text-recipe-Bkm6wKHp.js +0 -10
- package/dist/editable-text-recipe-Bkm6wKHp.js.map +0 -1
- package/dist/feedback-C7nR0UtT.js +0 -232
- package/dist/feedback-C7nR0UtT.js.map +0 -1
- package/dist/field-affordance-recipes-CkOCdE2y.js +0 -46
- package/dist/field-affordance-recipes-CkOCdE2y.js.map +0 -1
- package/dist/field-state-recipes-C-MFBX_8.js +0 -11
- package/dist/field-state-recipes-C-MFBX_8.js.map +0 -1
- package/dist/filters-Da-gNPsE.js.map +0 -1
- package/dist/form-field-VZRULhUK.js.map +0 -1
- package/dist/form-sizing-uWP4lzVh.js.map +0 -1
- package/dist/forms-numeric-D3CO60IF.js +0 -905
- package/dist/forms-numeric-D3CO60IF.js.map +0 -1
- package/dist/header-2ycNqGOR.js.map +0 -1
- package/dist/icon-badge-DKlaKXoo.js +0 -53
- package/dist/icon-badge-DKlaKXoo.js.map +0 -1
- package/dist/input-BoLm9Hks.js +0 -20
- package/dist/input-BoLm9Hks.js.map +0 -1
- package/dist/input-DhQdBnV3.js +0 -255
- package/dist/input-DhQdBnV3.js.map +0 -1
- package/dist/item-xzh8Df65.js +0 -264
- package/dist/item-xzh8Df65.js.map +0 -1
- package/dist/media-gallery-DQUQ0m3O.js +0 -201
- package/dist/media-gallery-DQUQ0m3O.js.map +0 -1
- package/dist/mentions-DwnO1hh4.js +0 -564
- package/dist/mentions-DwnO1hh4.js.map +0 -1
- package/dist/message-YfFmbXNP.js.map +0 -1
- package/dist/navigation-Cbp5V8gG.js +0 -264
- package/dist/navigation-Cbp5V8gG.js.map +0 -1
- package/dist/navigation-Cs1npsPm.js +0 -300
- package/dist/navigation-Cs1npsPm.js.map +0 -1
- package/dist/overlay.recipes-CNO2S9V6.js +0 -34
- package/dist/overlay.recipes-CNO2S9V6.js.map +0 -1
- package/dist/overlays-DhZO7N-I.js +0 -994
- package/dist/overlays-DhZO7N-I.js.map +0 -1
- package/dist/page-C6R_8jFt.js +0 -325
- package/dist/page-C6R_8jFt.js.map +0 -1
- package/dist/page-header-hUTzcRZX.js +0 -112
- package/dist/page-header-hUTzcRZX.js.map +0 -1
- package/dist/pagination-Cm0jqa3I.js +0 -149
- package/dist/pagination-Cm0jqa3I.js.map +0 -1
- package/dist/popover-Dcv_9jxr.js.map +0 -1
- package/dist/popover-menu-DnRFKnHP.js +0 -99
- package/dist/popover-menu-DnRFKnHP.js.map +0 -1
- package/dist/popover.recipes-wmbvL8Ah.js.map +0 -1
- package/dist/primitives-BHrwQXFC.js.map +0 -1
- package/dist/rich-text-editor-CF8QYt5p.js +0 -574
- package/dist/rich-text-editor-CF8QYt5p.js.map +0 -1
- package/dist/rich-text-editor.recipes-CnrbmTS1.js +0 -81
- package/dist/rich-text-editor.recipes-CnrbmTS1.js.map +0 -1
- package/dist/rich-text-editor.strings-BpnIQgMl.js +0 -25
- package/dist/rich-text-editor.strings-BpnIQgMl.js.map +0 -1
- package/dist/rich-text-j-FGAeZW.js +0 -32
- package/dist/rich-text-j-FGAeZW.js.map +0 -1
- package/dist/sanitize-html-BG9FGe-j.js +0 -64
- package/dist/sanitize-html-BG9FGe-j.js.map +0 -1
- package/dist/scroll-area-DRdr16Pt.js +0 -47
- package/dist/scroll-area-DRdr16Pt.js.map +0 -1
- package/dist/settings-DHk0L2MF.js +0 -161
- package/dist/settings-DHk0L2MF.js.map +0 -1
- package/dist/sheet-DRFNY1_D.js +0 -207
- package/dist/sheet-DRFNY1_D.js.map +0 -1
- package/dist/sidebar-Cb8WzOvE.js.map +0 -1
- package/dist/sidebar-Crc9M9JV.js.map +0 -1
- package/dist/smart-card-Bek-TwUp.js +0 -599
- package/dist/smart-card-Bek-TwUp.js.map +0 -1
- package/dist/spinner-CmTAbEp0.js +0 -80
- package/dist/spinner-CmTAbEp0.js.map +0 -1
- package/dist/surface-recipes-DOdoBXGm.js +0 -28
- package/dist/surface-recipes-DOdoBXGm.js.map +0 -1
- package/dist/table-D6zKeYQX.js +0 -162
- package/dist/table-D6zKeYQX.js.map +0 -1
- package/dist/table-Dn4XSrSB.js +0 -1444
- package/dist/table-Dn4XSrSB.js.map +0 -1
- package/dist/tabs-Dk8E_knt.js +0 -189
- package/dist/tabs-Dk8E_knt.js.map +0 -1
- package/dist/text-inputs-BFpku0Qd.js +0 -331
- package/dist/text-inputs-BFpku0Qd.js.map +0 -1
- package/dist/theme-scope-kStaAer0.js +0 -39
- package/dist/theme-scope-kStaAer0.js.map +0 -1
- package/dist/timelines-CxuAFIc2.js +0 -439
- package/dist/timelines-CxuAFIc2.js.map +0 -1
- package/dist/tree-BotPlyiD.js.map +0 -1
- package/dist/typography-CAr3dQhX.js +0 -116
- package/dist/typography-CAr3dQhX.js.map +0 -1
- package/dist/ui-provider-D2_TeLqw.js.map +0 -1
- package/dist/upload-B0WHW7ak.js.map +0 -1
- package/dist/upload-queue-BHZ_wBfd.js.map +0 -1
- package/dist/usage-card-U0YBLTNT.js.map +0 -1
- package/dist/use-file-drop-target-BX7GnhoQ.js +0 -39
- package/dist/use-file-drop-target-BX7GnhoQ.js.map +0 -1
- package/dist/utils-Cospvlj1.js.map +0 -1
- package/dist/value-inputs-CjfzGMsN.js +0 -854
- package/dist/value-inputs-CjfzGMsN.js.map +0 -1
- package/dist/workspace-YoFjXi6i.js +0 -394
- package/dist/workspace-YoFjXi6i.js.map +0 -1
- /package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.strings.d.ts +0 -0
package/dist/base/cards.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { a as e, c as t, d as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../smart-card-
|
|
3
|
-
import { n as u, r as d, t as f } from "../cards-
|
|
2
|
+
import { a as e, c as t, d as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../smart-card-DiC5aac3.js";
|
|
3
|
+
import { n as u, r as d, t as f } from "../cards-BaBZR-AU.js";
|
|
4
4
|
export { c as Card, f as CardActionStrip, e as CardContent, a as CardDescription, s as CardFooter, t as CardHeader, u as CardPrimaryAction, r as CardShell, d as CardSkeleton, d as SmartCardSkeleton, l as CardTitle, i as SmartCard, o as defaultCardStrings, o as defaultSmartCardStrings, n as hasRenderableContent };
|
package/dist/base/carousel.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useStrings as e } from "../lib/strings.js";
|
|
3
|
-
import { t } from "../utils-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { t } from "../utils-BRhFDwuU.js";
|
|
4
|
+
import { n } from "../buttons-DPZekJFu.js";
|
|
5
|
+
import { c as r } from "../typography-UTnveOEy.js";
|
|
6
6
|
import { r as i } from "../icon-size-B6PVwjbC.js";
|
|
7
7
|
import { createContext as a, forwardRef as o, useCallback as s, useContext as c, useEffect as l, useState as u } from "react";
|
|
8
8
|
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
@@ -19,58 +19,62 @@ function y() {
|
|
|
19
19
|
if (!e) throw Error("useCarousel must be used within a <Carousel />");
|
|
20
20
|
return e;
|
|
21
21
|
}
|
|
22
|
-
var b = o(function({ orientation: n = "horizontal", controlPlacement: r = "outside", opts: i, setApi: a, plugins: o, className: c, children: d,
|
|
23
|
-
let
|
|
22
|
+
var b = o(function({ orientation: n = "horizontal", controlPlacement: r = "outside", opts: i, setApi: a, plugins: o, className: c, children: d, onKeyDown: p, strings: m, ...h }, y) {
|
|
23
|
+
let b = e(_, m), [x, S] = g({
|
|
24
24
|
...i,
|
|
25
25
|
axis: n === "horizontal" ? "x" : "y"
|
|
26
|
-
}, o), [
|
|
27
|
-
|
|
28
|
-
}, []),
|
|
29
|
-
|
|
30
|
-
}, [
|
|
31
|
-
|
|
32
|
-
}, [
|
|
33
|
-
|
|
34
|
-
}, [
|
|
35
|
-
|
|
36
|
-
t
|
|
26
|
+
}, o), [C, w] = u(!1), [T, E] = u(!1), [D, O] = u(0), [k, A] = u([]), j = s((e) => {
|
|
27
|
+
w(e.canScrollPrev()), E(e.canScrollNext()), O(e.selectedScrollSnap()), A(e.scrollSnapList());
|
|
28
|
+
}, []), M = s(() => {
|
|
29
|
+
S?.scrollPrev();
|
|
30
|
+
}, [S]), N = s(() => {
|
|
31
|
+
S?.scrollNext();
|
|
32
|
+
}, [S]), P = s((e) => {
|
|
33
|
+
S?.scrollTo(e);
|
|
34
|
+
}, [S]), F = s((e) => {
|
|
35
|
+
if (p?.(e), e.defaultPrevented || e.nativeEvent.isComposing || e.altKey || e.ctrlKey || e.metaKey) return;
|
|
36
|
+
let t = e.target;
|
|
37
|
+
if (t.closest("[data-slot=\"carousel\"]") !== e.currentTarget || t.closest("input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"slider\"], [role=\"spinbutton\"], [role=\"combobox\"]")) return;
|
|
38
|
+
let r = n === "vertical" ? e.key === "ArrowUp" : e.key === "ArrowLeft", i = n === "vertical" ? e.key === "ArrowDown" : e.key === "ArrowRight";
|
|
39
|
+
r ? (e.preventDefault(), M()) : i && (e.preventDefault(), N());
|
|
37
40
|
}, [
|
|
41
|
+
p,
|
|
38
42
|
n,
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
N,
|
|
44
|
+
M
|
|
41
45
|
]);
|
|
42
46
|
return l(() => {
|
|
43
|
-
|
|
44
|
-
}, [
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
+
S && a?.(S);
|
|
48
|
+
}, [S, a]), l(() => {
|
|
49
|
+
if (S) return j(S), S.on("reInit", j), S.on("select", j), () => {
|
|
50
|
+
S.off("reInit", j), S.off("select", j);
|
|
47
51
|
};
|
|
48
|
-
}, [
|
|
52
|
+
}, [S, j]), /* @__PURE__ */ f(v.Provider, {
|
|
49
53
|
value: {
|
|
50
|
-
carouselRef:
|
|
51
|
-
api:
|
|
54
|
+
carouselRef: x,
|
|
55
|
+
api: S,
|
|
52
56
|
opts: i,
|
|
53
57
|
orientation: n,
|
|
54
58
|
controlPlacement: r,
|
|
55
|
-
scrollPrev:
|
|
56
|
-
scrollNext:
|
|
57
|
-
scrollTo:
|
|
58
|
-
canScrollPrev:
|
|
59
|
-
canScrollNext:
|
|
60
|
-
selectedIndex:
|
|
61
|
-
scrollSnaps:
|
|
62
|
-
strings:
|
|
59
|
+
scrollPrev: M,
|
|
60
|
+
scrollNext: N,
|
|
61
|
+
scrollTo: P,
|
|
62
|
+
canScrollPrev: C,
|
|
63
|
+
canScrollNext: T,
|
|
64
|
+
selectedIndex: D,
|
|
65
|
+
scrollSnaps: k,
|
|
66
|
+
strings: b
|
|
63
67
|
},
|
|
64
68
|
children: /* @__PURE__ */ f("div", {
|
|
65
|
-
ref:
|
|
66
|
-
|
|
69
|
+
ref: y,
|
|
70
|
+
onKeyDown: F,
|
|
67
71
|
role: "region",
|
|
68
72
|
"aria-roledescription": "carousel",
|
|
69
73
|
"data-slot": "carousel",
|
|
70
74
|
"data-orientation": n,
|
|
71
75
|
"data-control-placement": r,
|
|
72
76
|
className: t("carousel--component relative", c),
|
|
73
|
-
...
|
|
77
|
+
...h,
|
|
74
78
|
children: d
|
|
75
79
|
})
|
|
76
80
|
});
|
|
@@ -117,14 +121,14 @@ var w = {
|
|
|
117
121
|
end: "justify-end",
|
|
118
122
|
between: "justify-between"
|
|
119
123
|
}, E = {
|
|
120
|
-
dot: "size-2.5 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground
|
|
121
|
-
pill: "h-2 w-2 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground
|
|
124
|
+
dot: "size-2.5 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground",
|
|
125
|
+
pill: "h-2 w-2 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground"
|
|
122
126
|
}, D = {
|
|
123
127
|
dot: "bg-foreground hover:bg-foreground",
|
|
124
128
|
pill: "w-5 bg-foreground hover:bg-foreground"
|
|
125
129
|
}, O = o(function({ className: e, tone: a = "secondary", buttonStyle: o = "outline", size: s = "sm", iconOnly: c = !0, placement: l, onClick: u, disabled: h, children: g, ..._ }, v) {
|
|
126
130
|
let { orientation: b, controlPlacement: x, scrollPrev: S, canScrollPrev: T, strings: E } = y(), D = l ?? x;
|
|
127
|
-
return /* @__PURE__ */ f(
|
|
131
|
+
return /* @__PURE__ */ f(n, {
|
|
128
132
|
ref: v,
|
|
129
133
|
..._,
|
|
130
134
|
type: "button",
|
|
@@ -142,7 +146,7 @@ var w = {
|
|
|
142
146
|
children: g ?? /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f(m, {
|
|
143
147
|
className: i.sm,
|
|
144
148
|
"aria-hidden": "true"
|
|
145
|
-
}), /* @__PURE__ */ f(
|
|
149
|
+
}), /* @__PURE__ */ f(r, {
|
|
146
150
|
tag: "span",
|
|
147
151
|
size: "inherit",
|
|
148
152
|
className: "sr-only",
|
|
@@ -153,7 +157,7 @@ var w = {
|
|
|
153
157
|
O.displayName = "CarouselPrevious";
|
|
154
158
|
var k = o(function({ className: e, tone: a = "secondary", buttonStyle: o = "outline", size: s = "sm", iconOnly: c = !0, placement: l, onClick: u, disabled: m, children: g, ..._ }, v) {
|
|
155
159
|
let { orientation: b, controlPlacement: x, scrollNext: S, canScrollNext: T, strings: E } = y(), D = l ?? x;
|
|
156
|
-
return /* @__PURE__ */ f(
|
|
160
|
+
return /* @__PURE__ */ f(n, {
|
|
157
161
|
ref: v,
|
|
158
162
|
..._,
|
|
159
163
|
type: "button",
|
|
@@ -171,7 +175,7 @@ var k = o(function({ className: e, tone: a = "secondary", buttonStyle: o = "outl
|
|
|
171
175
|
children: g ?? /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f(h, {
|
|
172
176
|
className: i.sm,
|
|
173
177
|
"aria-hidden": "true"
|
|
174
|
-
}), /* @__PURE__ */ f(
|
|
178
|
+
}), /* @__PURE__ */ f(r, {
|
|
175
179
|
tag: "span",
|
|
176
180
|
size: "inherit",
|
|
177
181
|
className: "sr-only",
|
|
@@ -217,15 +221,15 @@ var j = o(function({ className: e, dotClassName: n, paginationStyle: r = "dot",
|
|
|
217
221
|
});
|
|
218
222
|
});
|
|
219
223
|
j.displayName = "CarouselDots";
|
|
220
|
-
var M = o(function({ index: e, paginationStyle:
|
|
224
|
+
var M = o(function({ index: e, paginationStyle: r = "dot", className: i, tone: a = "secondary", buttonStyle: o = "ghost", size: s = "sm", iconOnly: c = !0, onClick: l, children: u, ...d }, p) {
|
|
221
225
|
let { selectedIndex: m, scrollSnaps: h, scrollTo: g, strings: _ } = y(), v = m === e, b = _.goToSlide.replace("{index}", String(e + 1)).replace("{total}", String(h.length));
|
|
222
|
-
return /* @__PURE__ */ f(
|
|
226
|
+
return /* @__PURE__ */ f(n, {
|
|
223
227
|
ref: p,
|
|
224
228
|
...d,
|
|
225
229
|
type: "button",
|
|
226
230
|
"data-slot": "carousel-dot",
|
|
227
231
|
"data-selected": v ? "" : void 0,
|
|
228
|
-
"data-pagination-style":
|
|
232
|
+
"data-pagination-style": r,
|
|
229
233
|
"aria-label": b,
|
|
230
234
|
"aria-current": v ? "true" : void 0,
|
|
231
235
|
tone: a,
|
|
@@ -238,7 +242,7 @@ var M = o(function({ index: e, paginationStyle: n = "dot", className: i, tone: a
|
|
|
238
242
|
},
|
|
239
243
|
children: u ?? /* @__PURE__ */ f("span", {
|
|
240
244
|
"aria-hidden": "true",
|
|
241
|
-
className: t("carousel--dot-mark box-border block transition-[width,background-color,border-color] duration-200", E[
|
|
245
|
+
className: t("carousel--dot-mark box-border block transition-[width,background-color,border-color] duration-200", E[r], v && D[r])
|
|
242
246
|
})
|
|
243
247
|
});
|
|
244
248
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.js","names":["_Fragment","Text","Button","ICON_SIZE_CLASSNAMES","Fragment$1","useEmblaCarousel","defaultCarouselStrings","CarouselContext","createContext","useCarousel","context","useContext","Carousel","forwardRef","stringsProp","props","strings","useStrings","carouselRef","api","opts","orientation","plugins","canScrollPrev","setCanScrollPrev","useState","canScrollNext","setCanScrollNext","selectedIndex","setSelectedIndex","scrollSnaps","setScrollSnaps","onSelect","useCallback","currentApi","scrollPrev","scrollNext","scrollTo","index","handleKeyDown","isPrevKey","event","isNextKey","useEffect","setApi","controlPlacement","cn","className","CarouselContent","CarouselItem","getCarouselControlPlacementClass","placement","direction","carouselControlPlacementTone","carouselNavigationAlignClass","carouselDotClassName","carouselDotSelectedClassName","CarouselPrevious","resolvedPlacement","disabled","onClick","children","ChevronLeft","CarouselNext","ChevronRight","CarouselNavigation","align","previousProps","showDots","CarouselDots","dotsProps","nextProps","paginationStyle","CarouselDot","dotClassName","selected","label"],"sources":["../../src/components/base/carousel/carousel.strings.ts","../../src/components/base/carousel/carousel.tsx"],"sourcesContent":["export interface CarouselStrings {\n\tpreviousSlide: string;\n\tnextSlide: string;\n\tgoToSlide: string;\n}\n\nexport const defaultCarouselStrings: CarouselStrings = {\n\tpreviousSlide: 'Previous slide',\n\tnextSlide: 'Next slide',\n\tgoToSlide: 'Go to slide {index} of {total}',\n};\n","/**\n * Carousel — Embla-backed base carousel primitive.\n *\n * Package-owned wrapper around `embla-carousel-react` with library Button\n * controls, keyboard navigation, overridable accessible labels, and stable\n * BEM hooks. The optional Embla peer is isolated to `base/carousel`.\n */\nimport {\n\tcreateContext,\n\tforwardRef,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\ttype ComponentPropsWithoutRef,\n\ttype KeyboardEvent,\n\ttype ReactNode,\n} from 'react';\nimport useEmblaCarousel, {\n\ttype UseEmblaCarouselType,\n} from 'embla-carousel-react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\n\nimport { Button, type ButtonProps } from '../buttons';\nimport { ICON_SIZE_CLASSNAMES } from '../display/icon-size';\nimport { Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tdefaultCarouselStrings,\n\ttype CarouselStrings,\n} from './carousel.strings';\n\nexport type CarouselApi = UseEmblaCarouselType[1];\nexport type CarouselOptions = Parameters<typeof useEmblaCarousel>[0];\nexport type CarouselPlugin = Parameters<typeof useEmblaCarousel>[1];\nexport type CarouselOrientation = 'horizontal' | 'vertical';\nexport type CarouselControlPlacement = 'outside' | 'inside' | 'overlay' | 'inline';\nexport type CarouselNavigationAlign = 'start' | 'center' | 'end' | 'between';\nexport type CarouselPaginationStyle = 'dot' | 'pill';\n\nexport interface CarouselProps extends ComponentPropsWithoutRef<'div'> {\n\t/** Options forwarded to the underlying Embla carousel. */\n\topts?: CarouselOptions;\n\t/** Embla plugins — autoplay, autoscroll, and similar. */\n\tplugins?: CarouselPlugin;\n\t/** Scroll axis. Default: `horizontal`. */\n\torientation?: CarouselOrientation;\n\t/**\n\t * Where the previous/next controls sit relative to the viewport. Default:\n\t * `outside`.\n\t *\n\t * `outside` positions the controls 2.75rem beyond the viewport edge, so the\n\t * caller must reserve a matching intrinsic control gutter or they render\n\t * outside the visible box — `px-11` horizontally, `py-11` vertically:\n\t *\n\t * ```tsx\n\t * <Carousel className=\"w-full max-w-2xl px-11\">\n\t * ```\n\t *\n\t * Use `inside` to overlay the controls on the viewport and skip the gutter\n\t * entirely; they get an opaque background so slide content never shows\n\t * through. `overlay` adds a shadow for media slides, and `inline` keeps\n\t * the controls in document flow (see `CarouselNavigation`).\n\t */\n\tcontrolPlacement?: CarouselControlPlacement;\n\t/** Receives the carousel API so the consumer can drive it from outside. */\n\tsetApi?: (api: CarouselApi) => void;\n\t/** Overrides the previous/next accessible names. */\n\tstrings?: StringsProp<CarouselStrings>;\n}\n\ninterface CarouselContextValue {\n\tcarouselRef: ReturnType<typeof useEmblaCarousel>[0];\n\tapi: CarouselApi;\n\t/** Options forwarded to the underlying Embla carousel. */\n\topts?: CarouselOptions;\n\t/** Scroll axis. Default: `horizontal`. */\n\torientation: CarouselOrientation;\n\t/** Where the previous/next controls sit relative to the viewport. Default: `outside`. */\n\tcontrolPlacement: CarouselControlPlacement;\n\tscrollPrev: () => void;\n\tscrollNext: () => void;\n\tscrollTo: (index: number) => void;\n\tcanScrollPrev: boolean;\n\tcanScrollNext: boolean;\n\tselectedIndex: number;\n\tscrollSnaps: number[];\n\t/** Overrides the previous/next accessible names. */\n\tstrings: CarouselStrings;\n}\n\nconst CarouselContext = createContext<CarouselContextValue | null>(null);\n\nfunction useCarousel(): CarouselContextValue {\n\tconst context = useContext(CarouselContext);\n\n\tif (!context) {\n\t\tthrow new Error('useCarousel must be used within a <Carousel />');\n\t}\n\n\treturn context;\n}\n\nconst Carousel = forwardRef<HTMLDivElement, CarouselProps>(function Carousel(\n\t{\n\t\torientation = 'horizontal',\n\t\tcontrolPlacement = 'outside',\n\t\topts,\n\t\tsetApi,\n\t\tplugins,\n\t\tclassName,\n\t\tchildren,\n\t\tstrings: stringsProp,\n\t\t...props\n\t},\n\tref,\n) {\n\tconst strings = useStrings(defaultCarouselStrings, stringsProp);\n\tconst [carouselRef, api] = useEmblaCarousel(\n\t\t{\n\t\t\t...opts,\n\t\t\taxis: orientation === 'horizontal' ? 'x' : 'y',\n\t\t},\n\t\tplugins,\n\t);\n\tconst [canScrollPrev, setCanScrollPrev] = useState(false);\n\tconst [canScrollNext, setCanScrollNext] = useState(false);\n\tconst [selectedIndex, setSelectedIndex] = useState(0);\n\tconst [scrollSnaps, setScrollSnaps] = useState<number[]>([]);\n\n\tconst onSelect = useCallback((currentApi: NonNullable<CarouselApi>) => {\n\t\tsetCanScrollPrev(currentApi.canScrollPrev());\n\t\tsetCanScrollNext(currentApi.canScrollNext());\n\t\tsetSelectedIndex(currentApi.selectedScrollSnap());\n\t\tsetScrollSnaps(currentApi.scrollSnapList());\n\t}, []);\n\n\tconst scrollPrev = useCallback(() => {\n\t\tapi?.scrollPrev();\n\t}, [api]);\n\n\tconst scrollNext = useCallback(() => {\n\t\tapi?.scrollNext();\n\t}, [api]);\n\n\tconst scrollTo = useCallback((index: number) => {\n\t\tapi?.scrollTo(index);\n\t}, [api]);\n\n\tconst handleKeyDown = useCallback(\n\t\t(event: KeyboardEvent<HTMLDivElement>) => {\n\t\t\tconst isPrevKey =\n\t\t\t\torientation === 'vertical'\n\t\t\t\t\t? event.key === 'ArrowUp'\n\t\t\t\t\t: event.key === 'ArrowLeft';\n\t\t\tconst isNextKey =\n\t\t\t\torientation === 'vertical'\n\t\t\t\t\t? event.key === 'ArrowDown'\n\t\t\t\t\t: event.key === 'ArrowRight';\n\n\t\t\tif (isPrevKey) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tscrollPrev();\n\t\t\t} else if (isNextKey) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tscrollNext();\n\t\t\t}\n\t\t},\n\t\t[orientation, scrollNext, scrollPrev],\n\t);\n\n\tuseEffect(() => {\n\t\tif (!api) return;\n\t\tsetApi?.(api);\n\t}, [api, setApi]);\n\n\tuseEffect(() => {\n\t\tif (!api) return;\n\n\t\tonSelect(api);\n\t\tapi.on('reInit', onSelect);\n\t\tapi.on('select', onSelect);\n\n\t\treturn () => {\n\t\t\tapi.off('reInit', onSelect);\n\t\t\tapi.off('select', onSelect);\n\t\t};\n\t}, [api, onSelect]);\n\n\treturn (\n\t\t<CarouselContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcarouselRef,\n\t\t\t\tapi,\n\t\t\t\topts,\n\t\t\t\torientation,\n\t\t\t\tcontrolPlacement,\n\t\t\t\tscrollPrev,\n\t\t\t\tscrollNext,\n\t\t\t\tscrollTo,\n\t\t\t\tcanScrollPrev,\n\t\t\t\tcanScrollNext,\n\t\t\t\tselectedIndex,\n\t\t\t\tscrollSnaps,\n\t\t\t\tstrings,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tonKeyDownCapture={handleKeyDown}\n\t\t\t\trole=\"region\"\n\t\t\t\taria-roledescription=\"carousel\"\n\t\t\t\tdata-slot=\"carousel\"\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tdata-control-placement={controlPlacement}\n\t\t\t\tclassName={cn('carousel--component relative', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</CarouselContext.Provider>\n\t);\n});\nCarousel.displayName = 'Carousel';\n\nconst CarouselContent = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n\tfunction CarouselContent({ className, ...props }, ref) {\n\t\tconst { carouselRef, orientation } = useCarousel();\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={carouselRef}\n\t\t\t\tclassName=\"carousel--viewport overflow-hidden\"\n\t\t\t\tdata-slot=\"carousel-viewport\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tdata-slot=\"carousel-content\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'carousel--content flex',\n\t\t\t\t\t\torientation === 'horizontal' ? '-ms-space-xl' : '-mt-space-xl flex-col',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n);\nCarouselContent.displayName = 'CarouselContent';\n\nconst CarouselItem = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n\tfunction CarouselItem({ className, ...props }, ref) {\n\t\tconst { orientation } = useCarousel();\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\trole=\"group\"\n\t\t\t\taria-roledescription=\"slide\"\n\t\t\t\tdata-slot=\"carousel-item\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--item min-w-0 shrink-0 grow-0 basis-full',\n\t\t\t\t\torientation === 'horizontal' ? 'ps-space-xl' : 'pt-space-xl',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCarouselItem.displayName = 'CarouselItem';\n\nfunction getCarouselControlPlacementClass(\n\tdirection: 'previous' | 'next',\n\torientation: CarouselOrientation,\n\tplacement: CarouselControlPlacement,\n) {\n\tif (placement === 'inline') {\n\t\treturn 'relative translate-x-0 translate-y-0 rotate-0 active:not-aria-[haspopup]:translate-y-0';\n\t}\n\n\tif (orientation === 'vertical') {\n\t\tif (direction === 'previous') {\n\t\t\treturn placement === 'outside'\n\t\t\t\t? 'absolute -top-11 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0'\n\t\t\t\t: 'absolute top-2 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0';\n\t\t}\n\n\t\treturn placement === 'outside'\n\t\t\t? 'absolute -bottom-11 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0'\n\t\t\t: 'absolute bottom-2 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0';\n\t}\n\n\tif (direction === 'previous') {\n\t\treturn placement === 'outside'\n\t\t\t? 'absolute top-1/2 -left-11 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2'\n\t\t\t: 'absolute top-1/2 left-2 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2';\n\t}\n\n\treturn placement === 'outside'\n\t\t? 'absolute top-1/2 -right-11 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2'\n\t\t: 'absolute top-1/2 right-2 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2';\n}\n\n// Controls that sit over slide content get an opaque, unblurred surface so the\n// arrow stays legible on any slide; `overlay` adds elevation for media slides.\nconst carouselControlPlacementTone: Record<CarouselControlPlacement, string> = {\n\toutside: '',\n\tinside: 'z-10 bg-background',\n\toverlay: 'z-10 bg-background shadow-md',\n\tinline: '',\n};\n\nconst carouselNavigationAlignClass: Record<CarouselNavigationAlign, string> = {\n\tstart: 'justify-start',\n\tcenter: 'justify-center',\n\tend: 'justify-end',\n\tbetween: 'justify-between',\n};\n\n// Inactive marks share one visible fill in both themes; the selected mark is the\n// foreground (and, for pills, wider). A border-on-muted dot vanished on dark pages.\nconst carouselDotClassName: Record<CarouselPaginationStyle, string> = {\n\tdot: 'size-2.5 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground/70',\n\tpill: 'h-2 w-2 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground/70',\n};\n\nconst carouselDotSelectedClassName: Record<CarouselPaginationStyle, string> = {\n\tdot: 'bg-foreground hover:bg-foreground',\n\tpill: 'w-5 bg-foreground hover:bg-foreground',\n};\n\nexport interface CarouselControlProps extends Omit<ButtonProps, 'children' | 'href'> {\n\tchildren?: ReactNode;\n\t/** Where the controls sit relative to the viewport. */\n\tplacement?: CarouselControlPlacement;\n}\n\nconst CarouselPrevious = forwardRef<HTMLButtonElement, CarouselControlProps>(\n\tfunction CarouselPrevious(\n\t\t{\n\t\t\tclassName,\n\t\t\ttone = 'secondary',\n\t\t\tbuttonStyle = 'outline',\n\t\t\tsize = 'sm',\n\t\t\ticonOnly = true,\n\t\t\tplacement,\n\t\t\tonClick,\n\t\t\tdisabled,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst {\n\t\t\torientation,\n\t\t\tcontrolPlacement,\n\t\t\tscrollPrev,\n\t\t\tcanScrollPrev,\n\t\t\tstrings,\n\t\t} = useCarousel();\n\t\tconst resolvedPlacement = placement ?? controlPlacement;\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t\ttype=\"button\"\n\t\t\t\tdata-slot=\"carousel-previous\"\n\t\t\t\tdata-placement={resolvedPlacement}\n\t\t\t\ttone={tone}\n\t\t\t\tbuttonStyle={buttonStyle}\n\t\t\t\tsize={size}\n\t\t\t\ticonOnly={iconOnly}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--previous touch-manipulation',\n\t\t\t\t\tgetCarouselControlPlacementClass('previous', orientation, resolvedPlacement),\n\t\t\t\t\tcarouselControlPlacementTone[resolvedPlacement],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tdisabled={disabled || !canScrollPrev}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\tif (!event.defaultPrevented) scrollPrev();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children ?? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ChevronLeft className={ICON_SIZE_CLASSNAMES.sm} aria-hidden=\"true\" />\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"sr-only\">\n\t\t\t\t\t\t\t{strings.previousSlide}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Button>\n\t\t);\n\t},\n);\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nconst CarouselNext = forwardRef<HTMLButtonElement, CarouselControlProps>(\n\tfunction CarouselNext(\n\t\t{\n\t\t\tclassName,\n\t\t\ttone = 'secondary',\n\t\t\tbuttonStyle = 'outline',\n\t\t\tsize = 'sm',\n\t\t\ticonOnly = true,\n\t\t\tplacement,\n\t\t\tonClick,\n\t\t\tdisabled,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst {\n\t\t\torientation,\n\t\t\tcontrolPlacement,\n\t\t\tscrollNext,\n\t\t\tcanScrollNext,\n\t\t\tstrings,\n\t\t} = useCarousel();\n\t\tconst resolvedPlacement = placement ?? controlPlacement;\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t\ttype=\"button\"\n\t\t\t\tdata-slot=\"carousel-next\"\n\t\t\t\tdata-placement={resolvedPlacement}\n\t\t\t\ttone={tone}\n\t\t\t\tbuttonStyle={buttonStyle}\n\t\t\t\tsize={size}\n\t\t\t\ticonOnly={iconOnly}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--next touch-manipulation',\n\t\t\t\t\tgetCarouselControlPlacementClass('next', orientation, resolvedPlacement),\n\t\t\t\t\tcarouselControlPlacementTone[resolvedPlacement],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tdisabled={disabled || !canScrollNext}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\tif (!event.defaultPrevented) scrollNext();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children ?? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ChevronRight className={ICON_SIZE_CLASSNAMES.sm} aria-hidden=\"true\" />\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"sr-only\">\n\t\t\t\t\t\t\t{strings.nextSlide}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Button>\n\t\t);\n\t},\n);\nCarouselNext.displayName = 'CarouselNext';\n\nexport interface CarouselNavigationProps extends ComponentPropsWithoutRef<'div'> {\n\t/** Alignment of the dot cluster. */\n\talign?: CarouselNavigationAlign;\n\t/** Renders the pagination dots. */\n\tshowDots?: boolean;\n\t/** Props forwarded to the previous control. */\n\tpreviousProps?: CarouselControlProps;\n\t/** Props forwarded to the next control. */\n\tnextProps?: CarouselControlProps;\n\t/** Props forwarded to the dot cluster. */\n\tdotsProps?: CarouselDotsProps;\n}\n\nconst CarouselNavigation = forwardRef<HTMLDivElement, CarouselNavigationProps>(\n\tfunction CarouselNavigation(\n\t\t{\n\t\t\talign = 'center',\n\t\t\tshowDots = true,\n\t\t\tpreviousProps,\n\t\t\tnextProps,\n\t\t\tdotsProps,\n\t\t\tclassName,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"carousel-navigation\"\n\t\t\t\tdata-align={align}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--navigation flex flex-wrap items-center gap-space-md',\n\t\t\t\t\tcarouselNavigationAlignClass[align],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children ?? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<CarouselPrevious placement=\"inline\" {...previousProps} />\n\t\t\t\t\t\t{showDots && <CarouselDots {...dotsProps} />}\n\t\t\t\t\t\t<CarouselNext placement=\"inline\" {...nextProps} />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\nCarouselNavigation.displayName = 'CarouselNavigation';\n\nexport interface CarouselDotsProps extends ComponentPropsWithoutRef<'div'> {\n\t/** Merged onto each dot. */\n\tdotClassName?: string;\n\t/** Visual treatment of the pagination dots. */\n\tpaginationStyle?: CarouselPaginationStyle;\n}\n\nconst CarouselDots = forwardRef<HTMLDivElement, CarouselDotsProps>(\n\tfunction CarouselDots(\n\t\t{\n\t\t\tclassName,\n\t\t\tdotClassName,\n\t\t\tpaginationStyle = 'dot',\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst { scrollSnaps } = useCarousel();\n\n\t\tif (scrollSnaps.length <= 1) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"carousel-dots\"\n\t\t\t\tdata-pagination-style={paginationStyle}\n\t\t\t\tclassName={cn('carousel--dots flex flex-wrap items-center justify-center gap-space-sm', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{scrollSnaps.map((_, index) => (\n\t\t\t\t\t<CarouselDot\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\tpaginationStyle={paginationStyle}\n\t\t\t\t\t\tclassName={dotClassName}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t},\n);\nCarouselDots.displayName = 'CarouselDots';\n\nexport interface CarouselDotProps\n\textends Omit<ButtonProps, 'children' | 'href'> {\n\tindex: number;\n\tchildren?: ReactNode;\n\t/** Visual treatment of the pagination dots. */\n\tpaginationStyle?: CarouselPaginationStyle;\n}\n\nconst CarouselDot = forwardRef<HTMLButtonElement, CarouselDotProps>(\n\tfunction CarouselDot(\n\t\t{\n\t\t\tindex,\n\t\t\tpaginationStyle = 'dot',\n\t\t\tclassName,\n\t\t\ttone = 'secondary',\n\t\t\tbuttonStyle = 'ghost',\n\t\t\tsize = 'sm',\n\t\t\ticonOnly = true,\n\t\t\tonClick,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst { selectedIndex, scrollSnaps, scrollTo, strings } = useCarousel();\n\t\tconst selected = selectedIndex === index;\n\t\tconst label = strings.goToSlide\n\t\t\t.replace('{index}', String(index + 1))\n\t\t\t.replace('{total}', String(scrollSnaps.length));\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t\ttype=\"button\"\n\t\t\t\tdata-slot=\"carousel-dot\"\n\t\t\t\tdata-selected={selected ? '' : undefined}\n\t\t\t\tdata-pagination-style={paginationStyle}\n\t\t\t\taria-label={label}\n\t\t\t\taria-current={selected ? 'true' : undefined}\n\t\t\t\ttone={tone}\n\t\t\t\tbuttonStyle={buttonStyle}\n\t\t\t\tsize={size}\n\t\t\t\ticonOnly={iconOnly}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--dot min-w-0 shrink-0 p-0 active:not-aria-[haspopup]:translate-y-0',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\tif (!event.defaultPrevented) scrollTo(index);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children ?? <span aria-hidden=\"true\" className={cn('carousel--dot-mark box-border block transition-[width,background-color,border-color] duration-200', carouselDotClassName[paginationStyle], selected && carouselDotSelectedClassName[paginationStyle])} />}\n\t\t\t</Button>\n\t\t);\n\t},\n);\nCarouselDot.displayName = 'CarouselDot';\n\nexport {\n\tCarousel,\n\tCarouselContent,\n\tCarouselItem,\n\tCarouselPrevious,\n\tCarouselNext,\n\tCarouselNavigation,\n\tCarouselDots,\n\tCarouselDot,\n\tuseCarousel,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"carousel.js","names":["_Fragment","Text","ICON_SIZE_CLASSNAMES","Fragment$1","useEmblaCarousel","defaultCarouselStrings","CarouselContext","createContext","useCarousel","context","useContext","Carousel","forwardRef","stringsProp","props","strings","useStrings","carouselRef","api","opts","orientation","plugins","canScrollPrev","setCanScrollPrev","useState","canScrollNext","setCanScrollNext","selectedIndex","setSelectedIndex","scrollSnaps","setScrollSnaps","onSelect","useCallback","currentApi","scrollPrev","scrollNext","scrollTo","index","handleKeyDown","onKeyDown","event","target","isPrevKey","isNextKey","useEffect","setApi","controlPlacement","cn","className","CarouselContent","CarouselItem","getCarouselControlPlacementClass","placement","direction","carouselControlPlacementTone","carouselNavigationAlignClass","carouselDotClassName","carouselDotSelectedClassName","CarouselPrevious","resolvedPlacement","Button","disabled","onClick","children","ChevronLeft","CarouselNext","ChevronRight","CarouselNavigation","align","previousProps","showDots","CarouselDots","dotsProps","nextProps","paginationStyle","CarouselDot","dotClassName","selected","label"],"sources":["../../src/components/base/carousel/carousel.strings.ts","../../src/components/base/carousel/carousel.tsx"],"sourcesContent":["export interface CarouselStrings {\n\tpreviousSlide: string;\n\tnextSlide: string;\n\tgoToSlide: string;\n}\n\nexport const defaultCarouselStrings: CarouselStrings = {\n\tpreviousSlide: 'Previous slide',\n\tnextSlide: 'Next slide',\n\tgoToSlide: 'Go to slide {index} of {total}',\n};\n","/**\n * Carousel — Embla-backed base carousel primitive.\n *\n * Package-owned wrapper around `embla-carousel-react` with library Button\n * controls, keyboard navigation, overridable accessible labels, and stable\n * BEM hooks. The optional Embla peer is isolated to `base/carousel`.\n */\nimport {\n\tcreateContext,\n\tforwardRef,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n\ttype ComponentPropsWithoutRef,\n\ttype KeyboardEvent,\n\ttype ReactNode,\n} from 'react';\nimport useEmblaCarousel, {\n\ttype UseEmblaCarouselType,\n} from 'embla-carousel-react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\n\nimport { Button, type ButtonProps } from '../buttons';\nimport { ICON_SIZE_CLASSNAMES } from '../display/icon-size';\nimport { Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tdefaultCarouselStrings,\n\ttype CarouselStrings,\n} from './carousel.strings';\n\nexport type CarouselApi = UseEmblaCarouselType[1];\nexport type CarouselOptions = Parameters<typeof useEmblaCarousel>[0];\nexport type CarouselPlugin = Parameters<typeof useEmblaCarousel>[1];\nexport type CarouselOrientation = 'horizontal' | 'vertical';\nexport type CarouselControlPlacement = 'outside' | 'inside' | 'overlay' | 'inline';\nexport type CarouselNavigationAlign = 'start' | 'center' | 'end' | 'between';\nexport type CarouselPaginationStyle = 'dot' | 'pill';\n\nexport interface CarouselProps extends ComponentPropsWithoutRef<'div'> {\n\t/** Options forwarded to the underlying Embla carousel. */\n\topts?: CarouselOptions;\n\t/** Embla plugins — autoplay, autoscroll, and similar. */\n\tplugins?: CarouselPlugin;\n\t/** Scroll axis. Default: `horizontal`. */\n\torientation?: CarouselOrientation;\n\t/**\n\t * Where the previous/next controls sit relative to the viewport. Default:\n\t * `outside`.\n\t *\n\t * `outside` positions the controls 2.75rem beyond the viewport edge, so the\n\t * caller must reserve a matching intrinsic control gutter or they render\n\t * outside the visible box — `px-11` horizontally, `py-11` vertically:\n\t *\n\t * ```tsx\n\t * <Carousel className=\"w-full max-w-2xl px-11\">\n\t * ```\n\t *\n\t * Use `inside` to overlay the controls on the viewport and skip the gutter\n\t * entirely; they get an opaque background so slide content never shows\n\t * through. `overlay` adds a shadow for media slides, and `inline` keeps\n\t * the controls in document flow (see `CarouselNavigation`).\n\t */\n\tcontrolPlacement?: CarouselControlPlacement;\n\t/** Receives the carousel API so the consumer can drive it from outside. */\n\tsetApi?: (api: CarouselApi) => void;\n\t/** Overrides the previous/next accessible names. */\n\tstrings?: StringsProp<CarouselStrings>;\n}\n\ninterface CarouselContextValue {\n\tcarouselRef: ReturnType<typeof useEmblaCarousel>[0];\n\tapi: CarouselApi;\n\t/** Options forwarded to the underlying Embla carousel. */\n\topts?: CarouselOptions;\n\t/** Scroll axis. Default: `horizontal`. */\n\torientation: CarouselOrientation;\n\t/** Where the previous/next controls sit relative to the viewport. Default: `outside`. */\n\tcontrolPlacement: CarouselControlPlacement;\n\tscrollPrev: () => void;\n\tscrollNext: () => void;\n\tscrollTo: (index: number) => void;\n\tcanScrollPrev: boolean;\n\tcanScrollNext: boolean;\n\tselectedIndex: number;\n\tscrollSnaps: number[];\n\t/** Overrides the previous/next accessible names. */\n\tstrings: CarouselStrings;\n}\n\nconst CarouselContext = createContext<CarouselContextValue | null>(null);\n\nfunction useCarousel(): CarouselContextValue {\n\tconst context = useContext(CarouselContext);\n\n\tif (!context) {\n\t\tthrow new Error('useCarousel must be used within a <Carousel />');\n\t}\n\n\treturn context;\n}\n\nconst Carousel = forwardRef<HTMLDivElement, CarouselProps>(function Carousel(\n\t{\n\t\torientation = 'horizontal',\n\t\tcontrolPlacement = 'outside',\n\t\topts,\n\t\tsetApi,\n\t\tplugins,\n\t\tclassName,\n\t\tchildren,\n\t\tonKeyDown,\n\t\tstrings: stringsProp,\n\t\t...props\n\t},\n\tref,\n) {\n\tconst strings = useStrings(defaultCarouselStrings, stringsProp);\n\tconst [carouselRef, api] = useEmblaCarousel(\n\t\t{\n\t\t\t...opts,\n\t\t\taxis: orientation === 'horizontal' ? 'x' : 'y',\n\t\t},\n\t\tplugins,\n\t);\n\tconst [canScrollPrev, setCanScrollPrev] = useState(false);\n\tconst [canScrollNext, setCanScrollNext] = useState(false);\n\tconst [selectedIndex, setSelectedIndex] = useState(0);\n\tconst [scrollSnaps, setScrollSnaps] = useState<number[]>([]);\n\n\tconst onSelect = useCallback((currentApi: NonNullable<CarouselApi>) => {\n\t\tsetCanScrollPrev(currentApi.canScrollPrev());\n\t\tsetCanScrollNext(currentApi.canScrollNext());\n\t\tsetSelectedIndex(currentApi.selectedScrollSnap());\n\t\tsetScrollSnaps(currentApi.scrollSnapList());\n\t}, []);\n\n\tconst scrollPrev = useCallback(() => {\n\t\tapi?.scrollPrev();\n\t}, [api]);\n\n\tconst scrollNext = useCallback(() => {\n\t\tapi?.scrollNext();\n\t}, [api]);\n\n\tconst scrollTo = useCallback((index: number) => {\n\t\tapi?.scrollTo(index);\n\t}, [api]);\n\n\tconst handleKeyDown = useCallback(\n\t\t(event: KeyboardEvent<HTMLDivElement>) => {\n\t\t\t// Let composed controls and the consumer handle their own keyboard input\n\t\t\t// before deciding whether this arrow belongs to carousel navigation.\n\t\t\tonKeyDown?.(event);\n\t\t\tif (event.defaultPrevented || event.nativeEvent.isComposing || event.altKey || event.ctrlKey || event.metaKey) return;\n\t\t\tconst target = event.target as HTMLElement;\n\t\t\tif (target.closest('[data-slot=\"carousel\"]') !== event.currentTarget) return;\n\t\t\tif (target.closest('input, textarea, select, [contenteditable]:not([contenteditable=\"false\"]), [role=\"slider\"], [role=\"spinbutton\"], [role=\"combobox\"]')) return;\n\t\t\tconst isPrevKey =\n\t\t\t\torientation === 'vertical'\n\t\t\t\t\t? event.key === 'ArrowUp'\n\t\t\t\t\t: event.key === 'ArrowLeft';\n\t\t\tconst isNextKey =\n\t\t\t\torientation === 'vertical'\n\t\t\t\t\t? event.key === 'ArrowDown'\n\t\t\t\t\t: event.key === 'ArrowRight';\n\n\t\t\tif (isPrevKey) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tscrollPrev();\n\t\t\t} else if (isNextKey) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tscrollNext();\n\t\t\t}\n\t\t},\n\t\t[onKeyDown, orientation, scrollNext, scrollPrev],\n\t);\n\n\tuseEffect(() => {\n\t\tif (!api) return;\n\t\tsetApi?.(api);\n\t}, [api, setApi]);\n\n\tuseEffect(() => {\n\t\tif (!api) return;\n\n\t\tonSelect(api);\n\t\tapi.on('reInit', onSelect);\n\t\tapi.on('select', onSelect);\n\n\t\treturn () => {\n\t\t\tapi.off('reInit', onSelect);\n\t\t\tapi.off('select', onSelect);\n\t\t};\n\t}, [api, onSelect]);\n\n\treturn (\n\t\t<CarouselContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcarouselRef,\n\t\t\t\tapi,\n\t\t\t\topts,\n\t\t\t\torientation,\n\t\t\t\tcontrolPlacement,\n\t\t\t\tscrollPrev,\n\t\t\t\tscrollNext,\n\t\t\t\tscrollTo,\n\t\t\t\tcanScrollPrev,\n\t\t\t\tcanScrollNext,\n\t\t\t\tselectedIndex,\n\t\t\t\tscrollSnaps,\n\t\t\t\tstrings,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\trole=\"region\"\n\t\t\t\taria-roledescription=\"carousel\"\n\t\t\t\tdata-slot=\"carousel\"\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\tdata-control-placement={controlPlacement}\n\t\t\t\tclassName={cn('carousel--component relative', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</CarouselContext.Provider>\n\t);\n});\nCarousel.displayName = 'Carousel';\n\nconst CarouselContent = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n\tfunction CarouselContent({ className, ...props }, ref) {\n\t\tconst { carouselRef, orientation } = useCarousel();\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={carouselRef}\n\t\t\t\tclassName=\"carousel--viewport overflow-hidden\"\n\t\t\t\tdata-slot=\"carousel-viewport\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tdata-slot=\"carousel-content\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'carousel--content flex',\n\t\t\t\t\t\torientation === 'horizontal' ? '-ms-space-xl' : '-mt-space-xl flex-col',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n);\nCarouselContent.displayName = 'CarouselContent';\n\nconst CarouselItem = forwardRef<HTMLDivElement, ComponentPropsWithoutRef<'div'>>(\n\tfunction CarouselItem({ className, ...props }, ref) {\n\t\tconst { orientation } = useCarousel();\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\trole=\"group\"\n\t\t\t\taria-roledescription=\"slide\"\n\t\t\t\tdata-slot=\"carousel-item\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--item min-w-0 shrink-0 grow-0 basis-full',\n\t\t\t\t\torientation === 'horizontal' ? 'ps-space-xl' : 'pt-space-xl',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nCarouselItem.displayName = 'CarouselItem';\n\nfunction getCarouselControlPlacementClass(\n\tdirection: 'previous' | 'next',\n\torientation: CarouselOrientation,\n\tplacement: CarouselControlPlacement,\n) {\n\tif (placement === 'inline') {\n\t\treturn 'relative translate-x-0 translate-y-0 rotate-0 active:not-aria-[haspopup]:translate-y-0';\n\t}\n\n\tif (orientation === 'vertical') {\n\t\tif (direction === 'previous') {\n\t\t\treturn placement === 'outside'\n\t\t\t\t? 'absolute -top-11 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0'\n\t\t\t\t: 'absolute top-2 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0';\n\t\t}\n\n\t\treturn placement === 'outside'\n\t\t\t? 'absolute -bottom-11 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0'\n\t\t\t: 'absolute bottom-2 left-1/2 -translate-x-1/2 rotate-90 active:not-aria-[haspopup]:translate-y-0';\n\t}\n\n\tif (direction === 'previous') {\n\t\treturn placement === 'outside'\n\t\t\t? 'absolute top-1/2 -left-11 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2'\n\t\t\t: 'absolute top-1/2 left-2 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2';\n\t}\n\n\treturn placement === 'outside'\n\t\t? 'absolute top-1/2 -right-11 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2'\n\t\t: 'absolute top-1/2 right-2 -translate-y-1/2 active:not-aria-[haspopup]:-translate-y-1/2';\n}\n\n// Controls that sit over slide content get an opaque, unblurred surface so the\n// arrow stays legible on any slide; `overlay` adds elevation for media slides.\nconst carouselControlPlacementTone: Record<CarouselControlPlacement, string> = {\n\toutside: '',\n\tinside: 'z-10 bg-background',\n\toverlay: 'z-10 bg-background shadow-md',\n\tinline: '',\n};\n\nconst carouselNavigationAlignClass: Record<CarouselNavigationAlign, string> = {\n\tstart: 'justify-start',\n\tcenter: 'justify-center',\n\tend: 'justify-end',\n\tbetween: 'justify-between',\n};\n\n// Inactive marks share one visible fill in both themes; the selected mark is the\n// foreground (and, for pills, wider). A border-on-muted dot vanished on dark pages.\nconst carouselDotClassName: Record<CarouselPaginationStyle, string> = {\n\tdot: 'size-2.5 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground',\n\tpill: 'h-2 w-2 rounded-full border border-transparent bg-muted-foreground/40 hover:bg-muted-foreground',\n};\n\nconst carouselDotSelectedClassName: Record<CarouselPaginationStyle, string> = {\n\tdot: 'bg-foreground hover:bg-foreground',\n\tpill: 'w-5 bg-foreground hover:bg-foreground',\n};\n\nexport interface CarouselControlProps extends Omit<ButtonProps, 'children' | 'href'> {\n\tchildren?: ReactNode;\n\t/** Where the controls sit relative to the viewport. */\n\tplacement?: CarouselControlPlacement;\n}\n\nconst CarouselPrevious = forwardRef<HTMLButtonElement, CarouselControlProps>(\n\tfunction CarouselPrevious(\n\t\t{\n\t\t\tclassName,\n\t\t\ttone = 'secondary',\n\t\t\tbuttonStyle = 'outline',\n\t\t\tsize = 'sm',\n\t\t\ticonOnly = true,\n\t\t\tplacement,\n\t\t\tonClick,\n\t\t\tdisabled,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst {\n\t\t\torientation,\n\t\t\tcontrolPlacement,\n\t\t\tscrollPrev,\n\t\t\tcanScrollPrev,\n\t\t\tstrings,\n\t\t} = useCarousel();\n\t\tconst resolvedPlacement = placement ?? controlPlacement;\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t\ttype=\"button\"\n\t\t\t\tdata-slot=\"carousel-previous\"\n\t\t\t\tdata-placement={resolvedPlacement}\n\t\t\t\ttone={tone}\n\t\t\t\tbuttonStyle={buttonStyle}\n\t\t\t\tsize={size}\n\t\t\t\ticonOnly={iconOnly}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--previous touch-manipulation',\n\t\t\t\t\tgetCarouselControlPlacementClass('previous', orientation, resolvedPlacement),\n\t\t\t\t\tcarouselControlPlacementTone[resolvedPlacement],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tdisabled={disabled || !canScrollPrev}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\tif (!event.defaultPrevented) scrollPrev();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children ?? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ChevronLeft className={ICON_SIZE_CLASSNAMES.sm} aria-hidden=\"true\" />\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"sr-only\">\n\t\t\t\t\t\t\t{strings.previousSlide}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Button>\n\t\t);\n\t},\n);\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nconst CarouselNext = forwardRef<HTMLButtonElement, CarouselControlProps>(\n\tfunction CarouselNext(\n\t\t{\n\t\t\tclassName,\n\t\t\ttone = 'secondary',\n\t\t\tbuttonStyle = 'outline',\n\t\t\tsize = 'sm',\n\t\t\ticonOnly = true,\n\t\t\tplacement,\n\t\t\tonClick,\n\t\t\tdisabled,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst {\n\t\t\torientation,\n\t\t\tcontrolPlacement,\n\t\t\tscrollNext,\n\t\t\tcanScrollNext,\n\t\t\tstrings,\n\t\t} = useCarousel();\n\t\tconst resolvedPlacement = placement ?? controlPlacement;\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t\ttype=\"button\"\n\t\t\t\tdata-slot=\"carousel-next\"\n\t\t\t\tdata-placement={resolvedPlacement}\n\t\t\t\ttone={tone}\n\t\t\t\tbuttonStyle={buttonStyle}\n\t\t\t\tsize={size}\n\t\t\t\ticonOnly={iconOnly}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--next touch-manipulation',\n\t\t\t\t\tgetCarouselControlPlacementClass('next', orientation, resolvedPlacement),\n\t\t\t\t\tcarouselControlPlacementTone[resolvedPlacement],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tdisabled={disabled || !canScrollNext}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\tif (!event.defaultPrevented) scrollNext();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children ?? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ChevronRight className={ICON_SIZE_CLASSNAMES.sm} aria-hidden=\"true\" />\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"sr-only\">\n\t\t\t\t\t\t\t{strings.nextSlide}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Button>\n\t\t);\n\t},\n);\nCarouselNext.displayName = 'CarouselNext';\n\nexport interface CarouselNavigationProps extends ComponentPropsWithoutRef<'div'> {\n\t/** Alignment of the dot cluster. */\n\talign?: CarouselNavigationAlign;\n\t/** Renders the pagination dots. */\n\tshowDots?: boolean;\n\t/** Props forwarded to the previous control. */\n\tpreviousProps?: CarouselControlProps;\n\t/** Props forwarded to the next control. */\n\tnextProps?: CarouselControlProps;\n\t/** Props forwarded to the dot cluster. */\n\tdotsProps?: CarouselDotsProps;\n}\n\nconst CarouselNavigation = forwardRef<HTMLDivElement, CarouselNavigationProps>(\n\tfunction CarouselNavigation(\n\t\t{\n\t\t\talign = 'center',\n\t\t\tshowDots = true,\n\t\t\tpreviousProps,\n\t\t\tnextProps,\n\t\t\tdotsProps,\n\t\t\tclassName,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"carousel-navigation\"\n\t\t\t\tdata-align={align}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--navigation flex flex-wrap items-center gap-space-md',\n\t\t\t\t\tcarouselNavigationAlignClass[align],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children ?? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<CarouselPrevious placement=\"inline\" {...previousProps} />\n\t\t\t\t\t\t{showDots && <CarouselDots {...dotsProps} />}\n\t\t\t\t\t\t<CarouselNext placement=\"inline\" {...nextProps} />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\nCarouselNavigation.displayName = 'CarouselNavigation';\n\nexport interface CarouselDotsProps extends ComponentPropsWithoutRef<'div'> {\n\t/** Merged onto each dot. */\n\tdotClassName?: string;\n\t/** Visual treatment of the pagination dots. */\n\tpaginationStyle?: CarouselPaginationStyle;\n}\n\nconst CarouselDots = forwardRef<HTMLDivElement, CarouselDotsProps>(\n\tfunction CarouselDots(\n\t\t{\n\t\t\tclassName,\n\t\t\tdotClassName,\n\t\t\tpaginationStyle = 'dot',\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst { scrollSnaps } = useCarousel();\n\n\t\tif (scrollSnaps.length <= 1) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"carousel-dots\"\n\t\t\t\tdata-pagination-style={paginationStyle}\n\t\t\t\tclassName={cn('carousel--dots flex flex-wrap items-center justify-center gap-space-sm', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{scrollSnaps.map((_, index) => (\n\t\t\t\t\t<CarouselDot\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\tpaginationStyle={paginationStyle}\n\t\t\t\t\t\tclassName={dotClassName}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t},\n);\nCarouselDots.displayName = 'CarouselDots';\n\nexport interface CarouselDotProps\n\textends Omit<ButtonProps, 'children' | 'href'> {\n\tindex: number;\n\tchildren?: ReactNode;\n\t/** Visual treatment of the pagination dots. */\n\tpaginationStyle?: CarouselPaginationStyle;\n}\n\nconst CarouselDot = forwardRef<HTMLButtonElement, CarouselDotProps>(\n\tfunction CarouselDot(\n\t\t{\n\t\t\tindex,\n\t\t\tpaginationStyle = 'dot',\n\t\t\tclassName,\n\t\t\ttone = 'secondary',\n\t\t\tbuttonStyle = 'ghost',\n\t\t\tsize = 'sm',\n\t\t\ticonOnly = true,\n\t\t\tonClick,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst { selectedIndex, scrollSnaps, scrollTo, strings } = useCarousel();\n\t\tconst selected = selectedIndex === index;\n\t\tconst label = strings.goToSlide\n\t\t\t.replace('{index}', String(index + 1))\n\t\t\t.replace('{total}', String(scrollSnaps.length));\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t\ttype=\"button\"\n\t\t\t\tdata-slot=\"carousel-dot\"\n\t\t\t\tdata-selected={selected ? '' : undefined}\n\t\t\t\tdata-pagination-style={paginationStyle}\n\t\t\t\taria-label={label}\n\t\t\t\taria-current={selected ? 'true' : undefined}\n\t\t\t\ttone={tone}\n\t\t\t\tbuttonStyle={buttonStyle}\n\t\t\t\tsize={size}\n\t\t\t\ticonOnly={iconOnly}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'carousel--dot min-w-0 shrink-0 p-0 active:not-aria-[haspopup]:translate-y-0',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\tif (!event.defaultPrevented) scrollTo(index);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children ?? <span aria-hidden=\"true\" className={cn('carousel--dot-mark box-border block transition-[width,background-color,border-color] duration-200', carouselDotClassName[paginationStyle], selected && carouselDotSelectedClassName[paginationStyle])} />}\n\t\t\t</Button>\n\t\t);\n\t},\n);\nCarouselDot.displayName = 'CarouselDot';\n\nexport {\n\tCarousel,\n\tCarouselContent,\n\tCarouselItem,\n\tCarouselPrevious,\n\tCarouselNext,\n\tCarouselNavigation,\n\tCarouselDots,\n\tCarouselDot,\n\tuseCarousel,\n};\n"],"mappings":"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"}
|