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
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { s as e } from "./ui-provider-C_U0Xma4.js";
|
|
3
|
+
import { useStrings as t } from "./lib/strings.js";
|
|
4
|
+
import { t as n } from "./utils-BRhFDwuU.js";
|
|
5
|
+
import { t as r } from "./affordance-geometry.generated-tF36bREk.js";
|
|
6
|
+
import { c as i } from "./typography-UTnveOEy.js";
|
|
7
|
+
import { n as a, t as o } from "./field-affordance-recipes-DZhnIL_Y.js";
|
|
8
|
+
import { c as s, f as c, i as l, n as u, r as d, s as f, t as p, y as m } from "./form-sizing-BdP_Mf5p.js";
|
|
9
|
+
import * as h from "react";
|
|
10
|
+
import { createContext as g, forwardRef as _, memo as v, useCallback as y, useId as b, useMemo as x, useRef as S, useState as C } from "react";
|
|
11
|
+
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
12
|
+
import { Loader2Icon as ee } from "lucide-react";
|
|
13
|
+
//#region src/components/base/text-inputs/hooks/use-form-field-state.ts
|
|
14
|
+
function te({ controlledValue: e, defaultValue: t, maxLength: n, showCharacterCount: r, providedId: i, idPrefix: a = "field", hasOnChange: o }) {
|
|
15
|
+
let s = b(), c = i || `${a}${s}`, [l, u] = C(t || ""), d = e !== void 0, f = (d ? e : l) ?? "", p = !(!o || d || t), m = f.length, h = n !== void 0, g = r !== !1 && !!(r || h), _ = f !== "", v = y((e) => h && e.length > n, [h, n]), S = y((e) => !v(e) && (d || u(e), !0), [d, v]), w = y(() => {
|
|
16
|
+
d || u("");
|
|
17
|
+
}, [d]);
|
|
18
|
+
return x(() => ({
|
|
19
|
+
id: c,
|
|
20
|
+
value: f,
|
|
21
|
+
isControlled: d,
|
|
22
|
+
isReactHookForm: p,
|
|
23
|
+
characterCount: m,
|
|
24
|
+
hasCharacterLimit: h,
|
|
25
|
+
showCount: g,
|
|
26
|
+
hasValue: _,
|
|
27
|
+
updateValue: S,
|
|
28
|
+
clearValue: w,
|
|
29
|
+
wouldExceedLimit: v
|
|
30
|
+
}), [
|
|
31
|
+
c,
|
|
32
|
+
f,
|
|
33
|
+
d,
|
|
34
|
+
p,
|
|
35
|
+
m,
|
|
36
|
+
h,
|
|
37
|
+
g,
|
|
38
|
+
_,
|
|
39
|
+
S,
|
|
40
|
+
w,
|
|
41
|
+
v
|
|
42
|
+
]);
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/components/base/text-inputs/clear-native-field.ts
|
|
46
|
+
function ne(e) {
|
|
47
|
+
let t = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e), "value")?.set;
|
|
48
|
+
e.type === "file" ? e.value = "" : t?.call(e, ""), e.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/components/base/text-inputs/input-trailing-action.ts
|
|
52
|
+
var re = g(null), E = _(function({ className: e, type: t = "button", ...r }, i) {
|
|
53
|
+
return /* @__PURE__ */ w("button", {
|
|
54
|
+
ref: i,
|
|
55
|
+
type: t,
|
|
56
|
+
className: n(a.target, a.focus, a.clear, e),
|
|
57
|
+
...r,
|
|
58
|
+
children: /* @__PURE__ */ w(o, {
|
|
59
|
+
className: a.icon,
|
|
60
|
+
"aria-hidden": "true"
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
E.displayName = "FieldClearButton";
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region src/components/base/text-inputs/input.tsx
|
|
67
|
+
var ie = { clear: "Clear input" }, ae = (e, t, n) => {
|
|
68
|
+
let r = e || "";
|
|
69
|
+
return t && r && (r = t + r), n && r && (r += n), r;
|
|
70
|
+
};
|
|
71
|
+
function D({ className: o, type: g = "text", startIcon: _, endIcon: v, startAddon: b, endAddon: C, maxLength: D, showCharacterCount: O, clearable: oe, onClear: k, loading: A = !1, returnValueWithAddons: j, invalid: se, size: ce, onChange: M, value: le, defaultValue: ue, id: de, strings: fe, ...N }, P) {
|
|
72
|
+
let F = S(null), I = h.useContext(re), L = S(null), R = S(null), [z, B] = h.useState(), [V, H] = h.useState(), pe = t(ie, fe), { defaultScale: me } = e(), U = m(ce, me), he = y((e) => {
|
|
73
|
+
typeof P == "function" ? P(e) : P && (P.current = e), F.current = e;
|
|
74
|
+
}, [P]), { id: ge, value: _e, isReactHookForm: ve, characterCount: W, hasCharacterLimit: ye, showCount: G, hasValue: be, updateValue: K, clearValue: xe, wouldExceedLimit: Se } = te({
|
|
75
|
+
controlledValue: le,
|
|
76
|
+
defaultValue: ue,
|
|
77
|
+
maxLength: D,
|
|
78
|
+
showCharacterCount: O,
|
|
79
|
+
providedId: de,
|
|
80
|
+
idPrefix: "input",
|
|
81
|
+
hasOnChange: M !== void 0
|
|
82
|
+
}), Ce = !!oe, q = A, we = !!v, Te = !!C, J = g === "file", Y = !!se, X = Ce && be && !G && !q, Z = q && !G, Q = we && !X && !G && !q, $ = Te && !X && !G && !q;
|
|
83
|
+
h.useLayoutEffect(() => {
|
|
84
|
+
let e = L.current, t = R.current, n = () => {
|
|
85
|
+
if (e) {
|
|
86
|
+
let t = e.getBoundingClientRect().width;
|
|
87
|
+
t > 0 && B(t);
|
|
88
|
+
} else B(void 0);
|
|
89
|
+
if (t) {
|
|
90
|
+
let e = t.getBoundingClientRect().width;
|
|
91
|
+
e > 0 && H(e);
|
|
92
|
+
} else H(void 0);
|
|
93
|
+
};
|
|
94
|
+
if (n(), !e && !t) return;
|
|
95
|
+
let r = typeof ResizeObserver > "u" ? void 0 : new ResizeObserver(n);
|
|
96
|
+
return e && r?.observe(e), t && r?.observe(t), window.addEventListener("resize", n), () => {
|
|
97
|
+
r?.disconnect(), window.removeEventListener("resize", n);
|
|
98
|
+
};
|
|
99
|
+
}, [
|
|
100
|
+
U,
|
|
101
|
+
W,
|
|
102
|
+
D,
|
|
103
|
+
b,
|
|
104
|
+
C,
|
|
105
|
+
Q,
|
|
106
|
+
$,
|
|
107
|
+
X,
|
|
108
|
+
G,
|
|
109
|
+
Z,
|
|
110
|
+
I
|
|
111
|
+
]);
|
|
112
|
+
let Ee = x(() => {
|
|
113
|
+
let e = U === "sm" ? "ps-control-sm" : "ps-control", t = U === "sm" ? "pe-control-sm" : "pe-control";
|
|
114
|
+
return _ && (e = s[U]), b && (e = p[U]), b && V !== void 0 && (e = a.measuredStartPadding[U]), Q && (t = l[U]), $ && (t = d[U]), q && (t = l[U]), X && (t = a.clearPadding[U]), G && (t = u[U]), I && (t = G ? a.pairedCountPadding[U] : X ? a.pairedClearPadding[U] : $ ? a.pairedAddonPadding[U] : Q || Z ? a.pairedIconPadding[U] : a.clearPadding[U]), z !== void 0 && (t = a.measuredPadding[U]), `${e} ${t}`;
|
|
115
|
+
}, [
|
|
116
|
+
_,
|
|
117
|
+
b,
|
|
118
|
+
Q,
|
|
119
|
+
$,
|
|
120
|
+
X,
|
|
121
|
+
Z,
|
|
122
|
+
q,
|
|
123
|
+
G,
|
|
124
|
+
I,
|
|
125
|
+
z,
|
|
126
|
+
V,
|
|
127
|
+
U
|
|
128
|
+
]), De = y((e) => {
|
|
129
|
+
let t = e.target.value;
|
|
130
|
+
if (!Se(t) && (K(t), M)) {
|
|
131
|
+
if (j && t) {
|
|
132
|
+
let n = ae(t, b, C);
|
|
133
|
+
M({
|
|
134
|
+
...e,
|
|
135
|
+
target: {
|
|
136
|
+
...e.target,
|
|
137
|
+
value: n
|
|
138
|
+
},
|
|
139
|
+
currentTarget: {
|
|
140
|
+
...e.currentTarget,
|
|
141
|
+
value: n
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
} else M(e);
|
|
145
|
+
}
|
|
146
|
+
}, [
|
|
147
|
+
M,
|
|
148
|
+
j,
|
|
149
|
+
b,
|
|
150
|
+
C,
|
|
151
|
+
K,
|
|
152
|
+
Se
|
|
153
|
+
]), Oe = y(() => {
|
|
154
|
+
if (N.disabled || N.readOnly || A) return;
|
|
155
|
+
let e = F.current;
|
|
156
|
+
if (e?.type === "color" || e?.type === "range") {
|
|
157
|
+
xe();
|
|
158
|
+
let t = {
|
|
159
|
+
value: "",
|
|
160
|
+
name: e.name,
|
|
161
|
+
id: e.id,
|
|
162
|
+
type: e.type
|
|
163
|
+
};
|
|
164
|
+
M?.({
|
|
165
|
+
target: t,
|
|
166
|
+
currentTarget: t
|
|
167
|
+
});
|
|
168
|
+
} else e && ne(e);
|
|
169
|
+
k?.(), F.current?.focus();
|
|
170
|
+
}, [
|
|
171
|
+
N.disabled,
|
|
172
|
+
N.readOnly,
|
|
173
|
+
A,
|
|
174
|
+
xe,
|
|
175
|
+
M,
|
|
176
|
+
k
|
|
177
|
+
]);
|
|
178
|
+
return /* @__PURE__ */ T("div", {
|
|
179
|
+
className: n("input--component", "relative h-fit w-full min-w-0"),
|
|
180
|
+
style: z === void 0 && V === void 0 ? void 0 : {
|
|
181
|
+
"--field-trailing-width": z === void 0 ? void 0 : `${z}px`,
|
|
182
|
+
"--field-leading-width": V === void 0 ? void 0 : `${V}px`
|
|
183
|
+
},
|
|
184
|
+
children: [
|
|
185
|
+
/* @__PURE__ */ w("input", {
|
|
186
|
+
ref: he,
|
|
187
|
+
id: ge,
|
|
188
|
+
type: g,
|
|
189
|
+
...!ve && { value: _e },
|
|
190
|
+
onChange: De,
|
|
191
|
+
maxLength: D,
|
|
192
|
+
"aria-invalid": Y || void 0,
|
|
193
|
+
className: n("flex w-full min-w-0", c(U), "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground", "file:box-border file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:py-0 file:font-medium", "file:text-pxs", J && r.fileField.minHeight, J && r.fileField.blockPadding[U], r.fileField.buttonMinHeight, J ? "cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-inner file:border-input file:bg-background file:text-foreground" : "bg-transparent", J ? "read-only:bg-background" : "[&:read-only:not(:disabled)]:bg-muted", Ee, o),
|
|
194
|
+
...N,
|
|
195
|
+
disabled: N.disabled || A
|
|
196
|
+
}),
|
|
197
|
+
!!_ && /* @__PURE__ */ w("div", {
|
|
198
|
+
className: n("pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center", U === "sm" ? "ps-control-sm" : "ps-control", N.disabled && "opacity-50", Y ? "text-destructive" : "text-muted-foreground"),
|
|
199
|
+
children: /* @__PURE__ */ w(_, {
|
|
200
|
+
className: f[U],
|
|
201
|
+
"aria-hidden": "true"
|
|
202
|
+
})
|
|
203
|
+
}),
|
|
204
|
+
!!b && /* @__PURE__ */ w("span", {
|
|
205
|
+
className: n("pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center", U === "sm" ? "ps-control-sm" : "ps-control", N.disabled && "opacity-50"),
|
|
206
|
+
children: /* @__PURE__ */ w(i, {
|
|
207
|
+
ref: R,
|
|
208
|
+
tag: "span",
|
|
209
|
+
size: U === "sm" ? "pxs" : "sm",
|
|
210
|
+
type: Y ? "error" : "secondary",
|
|
211
|
+
lineHeight: "tight",
|
|
212
|
+
className: "input--start-addon",
|
|
213
|
+
children: b
|
|
214
|
+
})
|
|
215
|
+
}),
|
|
216
|
+
(Q || $ || G || Z || X || I) && /* @__PURE__ */ T("div", {
|
|
217
|
+
ref: L,
|
|
218
|
+
className: n("input--trailing absolute inset-y-0 flex items-center gap-space-sm whitespace-nowrap", a.clearEnd[U], N.disabled && "opacity-50"),
|
|
219
|
+
children: [
|
|
220
|
+
Q && v && /* @__PURE__ */ w(v, {
|
|
221
|
+
className: n("pointer-events-none", f[U], Y ? "text-destructive" : "text-muted-foreground"),
|
|
222
|
+
"aria-hidden": "true"
|
|
223
|
+
}),
|
|
224
|
+
$ && /* @__PURE__ */ w(i, {
|
|
225
|
+
tag: "span",
|
|
226
|
+
size: U === "sm" ? "pxs" : "sm",
|
|
227
|
+
type: Y ? "error" : "secondary",
|
|
228
|
+
lineHeight: "tight",
|
|
229
|
+
className: "input--end-addon pointer-events-none",
|
|
230
|
+
children: C
|
|
231
|
+
}),
|
|
232
|
+
G && /* @__PURE__ */ w("div", {
|
|
233
|
+
role: "status",
|
|
234
|
+
"aria-live": "polite",
|
|
235
|
+
className: "pointer-events-none tabular-nums",
|
|
236
|
+
children: /* @__PURE__ */ T(i, {
|
|
237
|
+
tag: "span",
|
|
238
|
+
size: U === "sm" ? "xxs" : "xs",
|
|
239
|
+
type: Y ? "error" : "secondary",
|
|
240
|
+
children: [W, ye ? `/${D}` : ""]
|
|
241
|
+
})
|
|
242
|
+
}),
|
|
243
|
+
Z && /* @__PURE__ */ w(ee, {
|
|
244
|
+
className: n(f[U], "pointer-events-none animate-spin", Y ? "text-destructive" : "text-muted-foreground"),
|
|
245
|
+
"aria-hidden": "true"
|
|
246
|
+
}),
|
|
247
|
+
X && /* @__PURE__ */ w(E, {
|
|
248
|
+
"aria-label": pe.clear,
|
|
249
|
+
onClick: Oe,
|
|
250
|
+
disabled: N.disabled || N.readOnly || A
|
|
251
|
+
}),
|
|
252
|
+
I
|
|
253
|
+
]
|
|
254
|
+
})
|
|
255
|
+
]
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
var O = v(h.forwardRef(D));
|
|
259
|
+
O.displayName = "Input";
|
|
260
|
+
//#endregion
|
|
261
|
+
export { ne as a, re as i, ie as n, te as o, E as r, O as t };
|
|
262
|
+
|
|
263
|
+
//# sourceMappingURL=input-DQdEd0YD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-DQdEd0YD.js","names":["React","useDensityConfig","cn","affordanceGeometry","Text","fieldAffordanceRecipes","FieldClearGlyph","formControlIconOffsetClasses","formFieldFrameClasses","formControlEndIconOffsetClasses","formControlCountOffsetClasses","formControlEndAddonOffsetClasses","formControlIconClasses","formControlAddonOffsetClasses","resolveFormControlSize","React$1","useFormFieldState","reactId","useId","id","providedId","idPrefix","internalValue","setInternalValue","useState","defaultValue","isControlled","controlledValue","value","isReactHookForm","characterCount","hasCharacterLimit","maxLength","showCount","showCharacterCount","hasValue","wouldExceedLimit","useCallback","newValue","updateValue","clearValue","useMemo","clearNativeField","setValue","field","InputTrailingActionContext","createContext","FieldClearButton","forwardRef","props","className","defaultInputStrings","getValueWithAddons","result","startAddon","endAddon","InputImpl","StartIcon","EndIcon","sizeProp","stringsProp","inputRef","useRef","trailingAction","trailingRef","leadingRef","trailingWidth","setTrailingWidth","leadingWidth","setLeadingWidth","strings","useStrings","size","defaultScale","setRefs","forwardedRef","node","inputValue","onChange","isClearable","clearable","isShowingLoading","loading","hasEndIcon","hasEndAddon","isFileInput","type","hasError","invalid","showClearButton","showLoadingSpinner","showEndIcon","showEndAddon","track","leading","measure","width","observer","inputPaddingClasses","paddingStart","paddingEnd","handleInputChange","returnValueWithAddons","valueWithAddons","handleClear","nativeField","target","onClear","Loader2Icon","Input","memo"],"sources":["../src/components/base/text-inputs/hooks/use-form-field-state.ts","../src/components/base/text-inputs/clear-native-field.ts","../src/components/base/text-inputs/input-trailing-action.ts","../src/components/base/text-inputs/field-clear-button.tsx","../src/components/base/text-inputs/input.tsx"],"sourcesContent":["import { useState, useCallback, useMemo, useId } from 'react';\n\nexport interface UseFormFieldStateOptions {\n\t/** Controlled value from parent */\n\tcontrolledValue?: string;\n\t/** Default value for uncontrolled mode */\n\tdefaultValue?: string;\n\t/** Maximum character length */\n\tmaxLength?: number;\n\t/** Whether to show character count */\n\tshowCharacterCount?: boolean;\n\t/** Provided ID or auto-generate */\n\tprovidedId?: string;\n\t/** Prefix for auto-generated ID */\n\tidPrefix?: string;\n\t/** Whether onChange is provided (for react-hook-form detection) */\n\thasOnChange?: boolean;\n}\n\nexport interface UseFormFieldStateReturn {\n\t/** Generated or provided ID */\n\tid: string;\n\t/** Current value (controlled or internal) */\n\tvalue: string;\n\t/** Whether component is in controlled mode */\n\tisControlled: boolean;\n\t/** Whether using react-hook-form (has onChange but no controlled value) */\n\tisReactHookForm: boolean;\n\t/** Current character count */\n\tcharacterCount: number;\n\t/** Whether a character limit is set */\n\thasCharacterLimit: boolean;\n\t/** Whether to show character count UI */\n\tshowCount: boolean;\n\t/** Whether the field has a value */\n\thasValue: boolean;\n\t/** Update value - returns false if blocked by character limit */\n\tupdateValue: (newValue: string) => boolean;\n\t/** Clear the value */\n\tclearValue: () => void;\n\t/** Check if a new value would exceed the character limit */\n\twouldExceedLimit: (newValue: string) => boolean;\n}\n\n/**\n * Shared hook for managing form field state including:\n * - Controlled vs uncontrolled value handling\n * - Character counting and limits\n * - React Hook Form compatibility detection\n * - ID generation\n */\nexport function useFormFieldState({\n\tcontrolledValue,\n\tdefaultValue,\n\tmaxLength,\n\tshowCharacterCount,\n\tprovidedId,\n\tidPrefix = 'field',\n\thasOnChange,\n}: UseFormFieldStateOptions): UseFormFieldStateReturn {\n\t// Generate stable ID using React 18's useId (SSR-safe)\n\tconst reactId = useId();\n\tconst id = providedId || `${idPrefix}${reactId}`;\n\n\t// Internal state for uncontrolled mode\n\tconst [internalValue, setInternalValue] = useState(defaultValue || '');\n\n\t// Determine control mode\n\tconst isControlled = controlledValue !== undefined;\n\n\t// Normalize value (handle null from backend)\n\tconst rawValue = isControlled ? controlledValue : internalValue;\n\tconst value = rawValue ?? '';\n\n\t// React Hook Form detection: has onChange but no controlled value or defaultValue\n\tconst isReactHookForm = Boolean(hasOnChange && !isControlled && !defaultValue);\n\n\t// Character counting\n\tconst characterCount = value.length;\n\tconst hasCharacterLimit = maxLength !== undefined;\n\tconst showCount = showCharacterCount === false ? false : Boolean(showCharacterCount || hasCharacterLimit);\n\tconst hasValue = value !== '';\n\n\t// Check if value would exceed limit\n\tconst wouldExceedLimit = useCallback(\n\t\t(newValue: string) => {\n\t\t\treturn hasCharacterLimit && newValue.length > maxLength;\n\t\t},\n\t\t[hasCharacterLimit, maxLength]\n\t);\n\n\t// Update value (respects character limit, updates internal state if uncontrolled)\n\tconst updateValue = useCallback(\n\t\t(newValue: string): boolean => {\n\t\t\tif (wouldExceedLimit(newValue)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue(newValue);\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\t\t[isControlled, wouldExceedLimit]\n\t);\n\n\t// Clear value\n\tconst clearValue = useCallback(() => {\n\t\tif (!isControlled) {\n\t\t\tsetInternalValue('');\n\t\t}\n\t}, [isControlled]);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tid,\n\t\t\tvalue,\n\t\t\tisControlled,\n\t\t\tisReactHookForm,\n\t\t\tcharacterCount,\n\t\t\thasCharacterLimit,\n\t\t\tshowCount,\n\t\t\thasValue,\n\t\t\tupdateValue,\n\t\t\tclearValue,\n\t\t\twouldExceedLimit,\n\t\t}),\n\t\t[\n\t\t\tid,\n\t\t\tvalue,\n\t\t\tisControlled,\n\t\t\tisReactHookForm,\n\t\t\tcharacterCount,\n\t\t\thasCharacterLimit,\n\t\t\tshowCount,\n\t\t\thasValue,\n\t\t\tupdateValue,\n\t\t\tclearValue,\n\t\t\twouldExceedLimit,\n\t\t]\n\t);\n}\n","/** Route inline clearing through the field's existing native change handler. */\nexport function clearNativeField(field: HTMLInputElement | HTMLTextAreaElement) {\n\t// Bypass React's value tracker so it observes the change and restores any\n\t// controlled value that the consumer declines or replaces synchronously.\n\tconst setValue = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(field), 'value')?.set;\n\tif (field.type === 'file') field.value = '';\n\telse setValue?.call(field, '');\n\tfield.dispatchEvent(new Event('change', { bubbles: true }));\n}\n","import { createContext, type ReactNode } from 'react';\n\n/** Private composition seam: the Input owner lays out PasswordInput's action. */\nexport const InputTrailingActionContext = createContext<ReactNode>(null);\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { FieldClearGlyph, fieldAffordanceRecipes } from '../../../lib/field-affordance-recipes';\nimport { cn } from '../../../lib/utils';\n\n/**\n * The inline clear action shared by Input, Textarea and Cascader: a native button\n * drawing the shared clear target, focus edge and glyph. Its owner places it and\n * supplies the accessible name, handler and disabled state.\n */\nexport const FieldClearButton = forwardRef<HTMLButtonElement, ComponentPropsWithoutRef<'button'>>(function FieldClearButton(\n\t{ className, type = 'button', ...props },\n\tref,\n) {\n\treturn (\n\t\t<button\n\t\t\tref={ref}\n\t\t\ttype={type}\n\t\t\tclassName={cn(fieldAffordanceRecipes.target, fieldAffordanceRecipes.focus, fieldAffordanceRecipes.clear, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<FieldClearGlyph className={fieldAffordanceRecipes.icon} aria-hidden=\"true\" />\n\t\t</button>\n\t);\n});\nFieldClearButton.displayName = 'FieldClearButton';\n","import { fieldAffordanceRecipes } from '../../../lib/field-affordance-recipes';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\nimport { Loader2Icon, type LucideIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useRef, useCallback, useMemo, memo } from 'react';\nimport { Text } from '../../typography';\nimport { useDensityConfig, type FormControlSize } from '../../../lib/ui-provider';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport {\n\t\tformControlAddonOffsetClasses,\n\t\tformControlCountOffsetClasses,\n\t\tformControlEndAddonOffsetClasses,\n\t\tformControlEndIconOffsetClasses,\n\t\tformControlIconClasses,\n\t\tformControlIconOffsetClasses,\n\t\tformFieldFrameClasses,\n\t\tresolveFormControlSize,\n} from '../forms/form-sizing';\nimport { useFormFieldState } from './hooks';\nimport { clearNativeField } from './clear-native-field';\nimport { InputTrailingActionContext } from './input-trailing-action';\nimport { FieldClearButton } from './field-clear-button';\n\nexport interface InputStrings {\n\t/** Accessible label for the clear action. */\n\t\tclear: string;\n}\n\nexport const defaultInputStrings: InputStrings = {\n\t\tclear: 'Clear input',\n};\n\n/**\n * Helper function to get value with prefix/suffix\n */\nconst getValueWithAddons = (value: string, startAddon?: string, endAddon?: string): string => {\n\t\tlet result = value || '';\n\t\tif (startAddon && result) result = startAddon + result;\n\t\tif (endAddon && result) result = result + endAddon;\n\t\treturn result;\n};\n\nexport interface InputProps extends Omit<React.ComponentProps<'input'>, 'onChange' | 'size'> {\n\t/** Decorative or semantic icon rendered before the value. */\n\t\tstartIcon?: LucideIcon;\n\t/** Decorative or semantic icon rendered after the value. */\n\t\tendIcon?: LucideIcon;\n\n\t/** Visual text prefix rendered inside the input frame. */\n\t\tstartAddon?: string;\n\t/** Visual text suffix rendered inside the input frame. */\n\t\tendAddon?: string;\n\n\t/** Maximum accepted character count. */\n\t\tmaxLength?: number;\n\t/** Shows the current and maximum character count. */\n\t\tshowCharacterCount?: boolean;\n\n\t/** Shows an inline clear action when the input has a value. */\n\t\tclearable?: boolean;\n\t/** Called after the inline clear action resets the value. */\n\t\tonClear?: () => void;\n\n\t/** Replaces the trailing affordance with a loading indicator. */\n\t\tloading?: boolean;\n\n\t/** Includes visual add-on text in the value exposed by `onChange`. */\n\t\treturnValueWithAddons?: boolean;\n\n\t/** Applies invalid control styling. Validation copy remains owned by FormField. */\n\t\tinvalid?: boolean;\n\n\t/** Control-height preset. Falls back to `UIProvider.density.defaultScale`. */\n\t\tsize?: FormControlSize;\n\n\t/** Native-style value callback for the controlled raw string. */\n\t\tonChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\t/** Controlled raw string value. */\n\t\tvalue?: string;\n\t/** Initial raw string value for uncontrolled usage. */\n\t\tdefaultValue?: string;\n\n\t/** Accessible copy overrides for input-owned actions. */\n\t\tstrings?: StringsProp<InputStrings>;\n}\n\nfunction InputImpl(\n\t{\n\t\tclassName,\n\t\ttype = 'text',\n\t\tstartIcon: StartIcon,\n\t\tendIcon: EndIcon,\n\t\tstartAddon,\n\t\tendAddon,\n\t\tmaxLength,\n\t\tshowCharacterCount,\n\t\tclearable,\n\t\tonClear,\n\t\tloading = false,\n\t\treturnValueWithAddons,\n\t\tinvalid,\n\t\tsize: sizeProp,\n\t\tonChange,\n\t\tvalue: controlledValue,\n\t\tdefaultValue,\n\t\tid: providedId,\n\t\tstrings: stringsProp,\n\t\t...props\n\t}: InputProps,\n\tforwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst trailingAction = React.useContext(InputTrailingActionContext);\n\t\tconst trailingRef = useRef<HTMLDivElement>(null);\n\t\tconst leadingRef = useRef<HTMLElement>(null);\n\t\tconst [trailingWidth, setTrailingWidth] = React.useState<number>();\n\t\tconst [leadingWidth, setLeadingWidth] = React.useState<number>();\n\t\tconst strings = useStrings(defaultInputStrings, stringsProp);\n\t\tconst { defaultScale } = useDensityConfig();\n\t\tconst size = resolveFormControlSize(sizeProp, defaultScale);\n\n\t\t// Memoize ref callback to avoid recreation on every render\n\t\tconst setRefs = useCallback(\n\t\t\t\t(node: HTMLInputElement | null) => {\n\t\t\t\t\t\tif (typeof forwardedRef === 'function') {\n\t\t\t\t\t\t\t\tforwardedRef(node);\n\t\t\t\t\t\t} else if (forwardedRef) {\n\t\t\t\t\t\t\t\tforwardedRef.current = node;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinputRef.current = node;\n\t\t\t\t},\n\t\t\t\t[forwardedRef]\n\t\t);\n\n\t\t// Use shared form field state hook\n\t\tconst {\n\t\t\t\tid,\n\t\t\t\tvalue: inputValue,\n\t\t\t\tisReactHookForm,\n\t\t\t\tcharacterCount,\n\t\t\t\thasCharacterLimit,\n\t\t\t\tshowCount,\n\t\t\t\thasValue,\n\t\t\t\tupdateValue,\n\t\t\t\tclearValue,\n\t\t\t\twouldExceedLimit,\n\t\t} = useFormFieldState({\n\t\t\t\tcontrolledValue,\n\t\t\t\tdefaultValue,\n\t\t\t\tmaxLength,\n\t\t\t\tshowCharacterCount,\n\t\t\t\tprovidedId,\n\t\t\t\tidPrefix: 'input',\n\t\t\t\thasOnChange: onChange !== undefined,\n\t\t});\n\n\t\t// Derive display states (simple booleans, no need for useMemo)\n\t\tconst isClearable = !!clearable;\n\t\tconst isShowingLoading = loading;\n\t\tconst hasEndIcon = !!EndIcon;\n\t\tconst hasEndAddon = !!endAddon;\n\t\tconst isFileInput = type === 'file';\n\t\tconst hasError = !!invalid;\n\t\tconst showClearButton = isClearable && hasValue && !showCount && !isShowingLoading;\n\t\tconst showLoadingSpinner = isShowingLoading && !showCount;\n\t\tconst showEndIcon = hasEndIcon && !showClearButton && !showCount && !isShowingLoading;\n\t\tconst showEndAddon = hasEndAddon && !showClearButton && !showCount && !isShowingLoading;\n\n\t\tReact.useLayoutEffect(() => {\n\t\t\tconst track = trailingRef.current;\n\t\t\tconst leading = leadingRef.current;\n\t\t\tconst measure = () => {\n\t\t\t\t// Hidden/SSR surfaces retain the generated fallback until measurable.\n\t\t\t\tif (track) {\n\t\t\t\t\tconst width = track.getBoundingClientRect().width;\n\t\t\t\t\tif (width > 0) setTrailingWidth(width);\n\t\t\t\t} else setTrailingWidth(undefined);\n\t\t\t\tif (leading) {\n\t\t\t\t\tconst width = leading.getBoundingClientRect().width;\n\t\t\t\t\tif (width > 0) setLeadingWidth(width);\n\t\t\t\t} else setLeadingWidth(undefined);\n\t\t\t};\n\t\t\tmeasure();\n\t\t\tif (!track && !leading) return;\n\t\t\tconst observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);\n\t\t\tif (track) observer?.observe(track);\n\t\t\tif (leading) observer?.observe(leading);\n\t\t\twindow.addEventListener('resize', measure);\n\t\t\treturn () => { observer?.disconnect(); window.removeEventListener('resize', measure); };\n\t\t}, [size, characterCount, maxLength, startAddon, endAddon, showEndIcon, showEndAddon, showClearButton, showCount, showLoadingSpinner, trailingAction]);\n\n\t\t// Generated fallbacks cover SSR; measured text keeps translated add-ons\n\t\t// clear of the editable value. Consumer padding classes remain last.\n\t\tconst inputPaddingClasses = useMemo(() => {\n\t\t\t\tlet paddingStart = size === 'sm' ? 'ps-control-sm' : 'ps-control';\n\t\t\t\tlet paddingEnd = size === 'sm' ? 'pe-control-sm' : 'pe-control';\n\n\t\t\t\tif (StartIcon) paddingStart = formControlIconOffsetClasses[size];\n\t\t\t\tif (startAddon) paddingStart = formControlAddonOffsetClasses[size];\n\t\t\t\tif (startAddon && leadingWidth !== undefined) paddingStart = fieldAffordanceRecipes.measuredStartPadding[size];\n\n\t\t\t\tif (showEndIcon) paddingEnd = formControlEndIconOffsetClasses[size];\n\t\t\t\tif (showEndAddon) paddingEnd = formControlEndAddonOffsetClasses[size];\n\t\t\t\tif (isShowingLoading) paddingEnd = formControlEndIconOffsetClasses[size];\n\t\t\t\tif (showClearButton) paddingEnd = fieldAffordanceRecipes.clearPadding[size];\n\t\t\t\tif (showCount) paddingEnd = formControlCountOffsetClasses[size];\n\t\t\t\tif (trailingAction) {\n\t\t\t\t\tpaddingEnd = showCount ? fieldAffordanceRecipes.pairedCountPadding[size]\n\t\t\t\t\t\t: showClearButton ? fieldAffordanceRecipes.pairedClearPadding[size]\n\t\t\t\t\t\t: showEndAddon ? fieldAffordanceRecipes.pairedAddonPadding[size]\n\t\t\t\t\t\t: showEndIcon || showLoadingSpinner ? fieldAffordanceRecipes.pairedIconPadding[size]\n\t\t\t\t\t\t: fieldAffordanceRecipes.clearPadding[size];\n\t\t\t\t}\n\n\t\t\t\tif (trailingWidth !== undefined) paddingEnd = fieldAffordanceRecipes.measuredPadding[size];\n\n\t\t\t\treturn `${paddingStart} ${paddingEnd}`;\n\t\t}, [StartIcon, startAddon, showEndIcon, showEndAddon, showClearButton, showLoadingSpinner, isShowingLoading, showCount, trailingAction, trailingWidth, leadingWidth, size]);\n\n\t\tconst handleInputChange = useCallback(\n\t\t\t\t(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\t\t\t\tconst newValue = e.target.value;\n\n\t\t\t\t\t\t// Check character limit\n\t\t\t\t\t\tif (wouldExceedLimit(newValue)) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update internal state if uncontrolled\n\t\t\t\t\t\tupdateValue(newValue);\n\n\t\t\t\t\t\t// Call external onChange with modified event if addons are requested\n\t\t\t\t\t\tif (onChange) {\n\t\t\t\t\t\t\t\tif (returnValueWithAddons && newValue) {\n\t\t\t\t\t\t\t\t\t\tconst valueWithAddons = getValueWithAddons(newValue, startAddon, endAddon);\n\t\t\t\t\t\t\t\t\t\tconst modifiedEvent = {\n\t\t\t\t\t\t\t\t\t\t\t\t...e,\n\t\t\t\t\t\t\t\t\t\t\t\ttarget: { ...e.target, value: valueWithAddons },\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentTarget: { ...e.currentTarget, value: valueWithAddons },\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tonChange(modifiedEvent as React.ChangeEvent<HTMLInputElement>);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[onChange, returnValueWithAddons, startAddon, endAddon, updateValue, wouldExceedLimit]\n\t\t);\n\n\t\tconst handleClear = useCallback(() => {\n\t\t\t\tif (props.disabled || props.readOnly || loading) return;\n\n\t\t\t\tconst nativeField = inputRef.current;\n\t\t\t\tif (nativeField?.type === 'color' || nativeField?.type === 'range') {\n\t\t\t\t\t\t// These native types cannot represent ''. Retain the existing empty\n\t\t\t\t\t\t// proposal while the browser owns the rendered value's sanitization.\n\t\t\t\t\t\tclearValue();\n\t\t\t\t\t\tconst target = { value: '', name: nativeField.name, id: nativeField.id, type: nativeField.type };\n\t\t\t\t\t\tonChange?.({ target, currentTarget: target } as React.ChangeEvent<HTMLInputElement>);\n\t\t\t\t} else if (nativeField) {\n\t\t\t\t\t\tclearNativeField(nativeField);\n\t\t\t\t}\n\n\t\t\t\t// Execute optional onClear callback\n\t\t\t\tonClear?.();\n\n\t\t\t\t// Focus the input after clearing\n\t\t\t\tinputRef.current?.focus();\n\t\t}, [props.disabled, props.readOnly, loading, clearValue, onChange, onClear]);\n\n\n\n\t\treturn (\n\t\t\t\t<div className={cn('input--component', 'relative h-fit w-full min-w-0')} style={trailingWidth === undefined && leadingWidth === undefined ? undefined : {\n\t\t\t\t\t'--field-trailing-width': trailingWidth === undefined ? undefined : `${trailingWidth}px`,\n\t\t\t\t\t'--field-leading-width': leadingWidth === undefined ? undefined : `${leadingWidth}px`,\n\t\t\t\t} as React.CSSProperties}>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tref={setRefs}\n\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\t\t{...(!isReactHookForm && { value: inputValue })}\n\t\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\t\tmaxLength={maxLength}\n\t\t\t\t\t\t\t\taria-invalid={hasError || undefined}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// The shared field frame, which input-shaped triggers draw too\n\t\t\t\t\t\t\t\t\t\t'flex w-full min-w-0',\n\t\t\t\t\t\t\t\t\t\tformFieldFrameClasses(size),\n\t\t\t\t\t\t\t\t\t\t'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground',\n\t\t\t\t\t\t\t\t\t\t// File input styles\n\t\t\t\t\t\t\t\t\t\t'file:box-border file:inline-flex file:h-control-file file:border file:bg-transparent file:px-control file:py-0 file:font-medium',\n\t\t\t\t\t\t\t\t\t\t'file:text-pxs',\n\t\t\t\t\t\t\t\t\t\tisFileInput && affordanceGeometry.fileField.minHeight,\n\t\t\t\t\t\t\t\t\t\tisFileInput && affordanceGeometry.fileField.blockPadding[size],\n\t\t\t\t\t\t\t\t\t\taffordanceGeometry.fileField.buttonMinHeight,\n\t\t\t\t\t\t\t\t\t\tisFileInput\n\t\t\t\t\t\t\t\t\t\t\t\t? 'cursor-pointer bg-background text-foreground file:cursor-pointer file:rounded-inner file:border-input file:bg-background file:text-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'bg-transparent',\n\t\t\t\t\t\t\t\t\t\t// Read-only fill. A disabled input also matches :read-only, and\n\t\t\t\t\t\t\t\t\t\t// disabled fields dim on a transparent fill like every trigger.\n\t\t\t\t\t\t\t\t\t\tisFileInput\n\t\t\t\t\t\t\t\t\t\t\t\t? 'read-only:bg-background'\n\t\t\t\t\t\t\t\t\t\t\t\t: '[&:read-only:not(:disabled)]:bg-muted',\n\t\t\t\t\t\t\t\t\t\t// Dynamic padding\n\t\t\t\t\t\t\t\t\t\tinputPaddingClasses,\n\t\t\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\t\tdisabled={props.disabled || loading}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Start Icon */}\n\t\t\t\t\t\t{!!StartIcon && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center',\n\t\t\t\t\t\t\t\t\t\t\t\tsize === 'sm' ? 'ps-control-sm' : 'ps-control',\n\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled && 'opacity-50',\n\t\t\t\t\t\t\t\t\t\t\t\thasError ? 'text-destructive' : 'text-muted-foreground'\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<StartIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Start Add-on */}\n\t\t\t\t\t\t{!!startAddon && (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center',\n\t\t\t\t\t\t\t\t\t\t\t\tsize === 'sm' ? 'ps-control-sm' : 'ps-control',\n\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled && 'opacity-50',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tref={leadingRef}\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tsize={size === 'sm' ? 'pxs' : 'sm'}\n\t\t\t\t\t\ttype={hasError ? 'error' : 'secondary'}\n\t\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\t\tclassName=\"input--start-addon\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{startAddon}\n\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{(showEndIcon || showEndAddon || showCount || showLoadingSpinner || showClearButton || trailingAction) && (\n\t\t\t\t\t\t\t<div ref={trailingRef} className={cn('input--trailing absolute inset-y-0 flex items-center gap-space-sm whitespace-nowrap', fieldAffordanceRecipes.clearEnd[size],\n\t\t\t\t\t\t\t\tprops.disabled && 'opacity-50')}>\n\t\t\t\t\t\t\t\t{showEndIcon && EndIcon && <EndIcon className={cn('pointer-events-none', formControlIconClasses[size], hasError ? 'text-destructive' : 'text-muted-foreground')} aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t{showEndAddon && <Text tag=\"span\" size={size === 'sm' ? 'pxs' : 'sm'} type={hasError ? 'error' : 'secondary'} lineHeight=\"tight\" className=\"input--end-addon pointer-events-none\">{endAddon}</Text>}\n\t\t\t\t\t\t\t\t{showCount && <div role=\"status\" aria-live=\"polite\" className=\"pointer-events-none tabular-nums\">\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size={size === 'sm' ? 'xxs' : 'xs'} type={hasError ? 'error' : 'secondary'}>{characterCount}{hasCharacterLimit ? `/${maxLength}` : ''}</Text>\n\t\t\t\t\t\t\t\t</div>}\n\t\t\t\t\t\t\t\t{showLoadingSpinner && <Loader2Icon className={cn(formControlIconClasses[size], 'pointer-events-none animate-spin', hasError ? 'text-destructive' : 'text-muted-foreground')} aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t{showClearButton && <FieldClearButton aria-label={strings.clear} onClick={handleClear} disabled={props.disabled || props.readOnly || loading} />}\n\t\t\t\t\t\t\t\t{trailingAction}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t);\n}\n\n// forwardRef + memo (needed for callers that require refs, e.g. segmented inputs)\nconst Input = memo(React.forwardRef<HTMLInputElement, InputProps>(InputImpl));\nInput.displayName = 'Input';\n\nexport { Input };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { i as e } from "./surface-recipes-BKRVW8Os.js";
|
|
2
|
+
//#region src/lib/interaction-recipes.ts
|
|
3
|
+
var t = {
|
|
4
|
+
nativeButtonReset: "box-border m-0 border-0 bg-transparent p-0 font-sans",
|
|
5
|
+
rowHover: "hover:bg-accent hover:text-accent-foreground",
|
|
6
|
+
rowSelected: "bg-accent text-accent-foreground",
|
|
7
|
+
rowCurrent: "bg-accent text-accent-foreground font-medium",
|
|
8
|
+
toggleHover: "hover:bg-muted hover:text-foreground",
|
|
9
|
+
togglePressed: "bg-accent text-accent-foreground",
|
|
10
|
+
toggleHoverButton: "[&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-muted [&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:text-foreground",
|
|
11
|
+
tableHead: e.band,
|
|
12
|
+
tableStripe: e.wash,
|
|
13
|
+
tableRowHover: "hover:bg-muted/50",
|
|
14
|
+
tableRowSelected: "data-[state=selected]:bg-muted",
|
|
15
|
+
tileHover: "hover:border-input",
|
|
16
|
+
segmentActive: "bg-card text-foreground shadow-sm",
|
|
17
|
+
segmentInactive: "text-muted-foreground hover:text-foreground",
|
|
18
|
+
segmentInactiveButton: "text-muted-foreground hover:text-foreground [&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-transparent [&:active:not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-transparent",
|
|
19
|
+
segmentActiveButton: "bg-card text-foreground shadow-sm hover:text-foreground [&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-card [&:active:not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-card",
|
|
20
|
+
currentButtonHold: "[&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:brightness-100 [&:active:not(:disabled):not([data-disabled]):not([aria-disabled=true])]:brightness-100"
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { t };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=interaction-recipes-XR9ZpVYL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-recipes-XR9ZpVYL.js","names":["neutralFillRecipes","interactionRecipes"],"sources":["../src/lib/interaction-recipes.ts"],"sourcesContent":["import { neutralFillRecipes } from './surface-recipes';\n\n/**\n * Interaction fills, one recipe per element shape. The theme documents --accent as\n * the hover and selected-row fill and --muted as a passive region, so every\n * clickable row, toggle, table and segmented track agrees on what hover, selection\n * and the current location look like. Design lint rejects other interaction fills.\n */\nexport const interactionRecipes = {\n\t/**\n\t * A native `<button>` with its browser chrome removed: the package ships no\n\t * preflight, so every button that draws its own shape starts from this.\n\t */\n\tnativeButtonReset: 'box-border m-0 border-0 bg-transparent p-0 font-sans',\n\t/** Clickable rows (navigation, lists, trees, results, disclosure triggers) and ghost actions. */\n\trowHover: 'hover:bg-accent hover:text-accent-foreground',\n\t/** A selected or keyboard-highlighted row: the hover fill held. */\n\trowSelected: 'bg-accent text-accent-foreground',\n\t/** The current location: the selected fill plus medium weight, so a hover never reads as current. */\n\trowCurrent: 'bg-accent text-accent-foreground font-medium',\n\t/** Toggles show their pressed state by fill alone, so hover is the lighter muted fill. */\n\ttoggleHover: 'hover:bg-muted hover:text-foreground',\n\ttogglePressed: 'bg-accent text-accent-foreground',\n\t/** The toggle hover on a Button, whose complete hover selector would otherwise show the pressed fill. */\n\ttoggleHoverButton: '[&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-muted [&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:text-foreground',\n\t/** Wide tabular rows stay quieter: stripe, hover and selection step up one tint at a time. */\n\ttableHead: neutralFillRecipes.band,\n\ttableStripe: neutralFillRecipes.wash,\n\ttableRowHover: 'hover:bg-muted/50',\n\ttableRowSelected: 'data-[state=selected]:bg-muted',\n\t/** Media and choice tiles: hover strengthens the resting edge to the control boundary; selection draws primary. */\n\ttileHover: 'hover:border-input',\n\t/** Segments on a muted track: the active one is lifted, the others change colour only. */\n\tsegmentActive: 'bg-card text-foreground shadow-sm',\n\tsegmentInactive: 'text-muted-foreground hover:text-foreground',\n\t/** The same inactive segment rendered by a ghost Button: its complete hover and press selectors are cleared too. */\n\tsegmentInactiveButton: 'text-muted-foreground hover:text-foreground [&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-transparent [&:active:not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-transparent',\n\t/** The active segment rendered by a ghost Button stays lifted under hover and press instead of taking the Button's fill. */\n\tsegmentActiveButton: 'bg-card text-foreground shadow-sm hover:text-foreground [&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-card [&:active:not(:disabled):not([data-disabled]):not([aria-disabled=true])]:bg-card',\n\t/** A solid Button marking the current location holds its fill: no hover or press filter. */\n\tcurrentButtonHold: '[&:hover:not(:active):not(:disabled):not([data-disabled]):not([aria-disabled=true])]:brightness-100 [&:active:not(:disabled):not([data-disabled]):not([aria-disabled=true])]:brightness-100',\n} as const;\n"],"mappings":";;AAQA,IAAaC,IAAqB;CAKjC,mBAAmB;CAEnB,UAAU;CAEV,aAAa;CAEb,YAAY;CAEZ,aAAa;CACb,eAAe;CAEf,mBAAmB;CAEnB,WAAWD,EAAmB;CAC9B,aAAaA,EAAmB;CAChC,eAAe;CACf,kBAAkB;CAElB,WAAW;CAEX,eAAe;CACf,iBAAiB;CAEjB,uBAAuB;CAEvB,qBAAqB;CAErB,mBAAmB;AACpB"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { l as e, s as t, v as n } from "./ui-provider-C_U0Xma4.js";
|
|
3
|
+
import { t as r } from "./utils-BRhFDwuU.js";
|
|
4
|
+
import { t as i } from "./separator-Bom7NsGO.js";
|
|
5
|
+
import { c as a, l as o } from "./typography-UTnveOEy.js";
|
|
6
|
+
import { t as s } from "./focus-recipes-B653VaLq.js";
|
|
7
|
+
import { n as c } from "./icon-size-B6PVwjbC.js";
|
|
8
|
+
import { t as l } from "./row-recipes-DL8n7t_b.js";
|
|
9
|
+
import * as u from "react";
|
|
10
|
+
import { forwardRef as d } from "react";
|
|
11
|
+
import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
12
|
+
import { mergeProps as h } from "@base-ui/react/merge-props";
|
|
13
|
+
import { useRender as g } from "@base-ui/react/use-render";
|
|
14
|
+
import { cva as _ } from "class-variance-authority";
|
|
15
|
+
//#region src/components/ui/item.tsx
|
|
16
|
+
function v({ className: e, ...t }) {
|
|
17
|
+
return /* @__PURE__ */ p("div", {
|
|
18
|
+
role: "list",
|
|
19
|
+
"data-slot": "item-group",
|
|
20
|
+
className: r("group/item-group flex w-full flex-col", e),
|
|
21
|
+
...t
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function y({ className: e, ...t }) {
|
|
25
|
+
return /* @__PURE__ */ p(i, {
|
|
26
|
+
"data-slot": "item-separator",
|
|
27
|
+
orientation: "horizontal",
|
|
28
|
+
className: r("my-space-md", e),
|
|
29
|
+
...t
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
var b = _(`group/item flex w-full flex-wrap items-center rounded-inner border text-sm transition-colors outline-none ${s.frame} [a]:transition-colors [a]:hover:bg-accent [a]:hover:text-accent-foreground`, {
|
|
33
|
+
variants: {
|
|
34
|
+
variant: {
|
|
35
|
+
default: "border-transparent",
|
|
36
|
+
outline: "border-border",
|
|
37
|
+
muted: "border-transparent bg-muted/50"
|
|
38
|
+
},
|
|
39
|
+
size: {
|
|
40
|
+
default: r("gap-space-lg px-row-x", l.comfortable),
|
|
41
|
+
sm: r("gap-space-lg px-row-x", l.default),
|
|
42
|
+
xs: r("gap-space-md px-row-x in-data-[slot=dropdown-menu-content]:p-0", l.compact)
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
defaultVariants: {
|
|
46
|
+
variant: "default",
|
|
47
|
+
size: "default"
|
|
48
|
+
}
|
|
49
|
+
}), x = u.createContext(!1);
|
|
50
|
+
function S(e) {
|
|
51
|
+
return u.useContext(x) ? "span" : e;
|
|
52
|
+
}
|
|
53
|
+
function C({ className: e, variant: t = "default", size: n = "default", render: i, ...a }) {
|
|
54
|
+
let o = g({
|
|
55
|
+
defaultTagName: "div",
|
|
56
|
+
props: h({ className: r(b({
|
|
57
|
+
variant: t,
|
|
58
|
+
size: n,
|
|
59
|
+
className: e
|
|
60
|
+
})) }, a),
|
|
61
|
+
render: i,
|
|
62
|
+
state: {
|
|
63
|
+
slot: "item",
|
|
64
|
+
variant: t,
|
|
65
|
+
size: n
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
return /* @__PURE__ */ p(x.Provider, {
|
|
69
|
+
value: i !== void 0,
|
|
70
|
+
children: o
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
var w = _("flex shrink-0 items-center justify-center gap-space-md group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none", {
|
|
74
|
+
variants: { variant: {
|
|
75
|
+
default: "bg-transparent",
|
|
76
|
+
icon: "[&_svg:not([class*='size-'])]:size-icon",
|
|
77
|
+
image: "size-10 overflow-hidden rounded-inner group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded-inner [&_img]:size-full [&_img]:object-cover"
|
|
78
|
+
} },
|
|
79
|
+
defaultVariants: { variant: "default" }
|
|
80
|
+
});
|
|
81
|
+
function T({ className: e, variant: t = "default", ...n }) {
|
|
82
|
+
return g({
|
|
83
|
+
defaultTagName: S("div"),
|
|
84
|
+
props: h({ className: r(w({
|
|
85
|
+
variant: t,
|
|
86
|
+
className: e
|
|
87
|
+
})) }, n),
|
|
88
|
+
state: {
|
|
89
|
+
slot: "item-media",
|
|
90
|
+
variant: t
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function E({ className: e, ...t }) {
|
|
95
|
+
return g({
|
|
96
|
+
defaultTagName: S("div"),
|
|
97
|
+
props: h({ className: r("flex flex-1 flex-col [&+[data-slot=item-content]]:flex-none", e) }, t),
|
|
98
|
+
state: { slot: "item-content" }
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function D({ className: e, ...t }) {
|
|
102
|
+
return g({
|
|
103
|
+
defaultTagName: S("div"),
|
|
104
|
+
props: h({ className: r("line-clamp-1 flex w-fit items-center gap-space-md text-sm leading-snug font-medium underline-offset-4", e) }, t),
|
|
105
|
+
state: { slot: "item-title" }
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function O({ className: e, ...t }) {
|
|
109
|
+
return g({
|
|
110
|
+
defaultTagName: S("p"),
|
|
111
|
+
props: h({ className: r("m-0 line-clamp-2 text-start text-sm font-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", e) }, t),
|
|
112
|
+
state: { slot: "item-description" }
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function k({ className: e, ...t }) {
|
|
116
|
+
return g({
|
|
117
|
+
defaultTagName: S("div"),
|
|
118
|
+
props: h({ className: r("flex items-center", e) }, t),
|
|
119
|
+
state: { slot: "item-actions" }
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function A({ className: e, ...t }) {
|
|
123
|
+
return g({
|
|
124
|
+
defaultTagName: S("div"),
|
|
125
|
+
props: h({ className: r("flex basis-full items-center justify-between gap-space-md", e) }, t),
|
|
126
|
+
state: { slot: "item-header" }
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function j({ className: e, ...t }) {
|
|
130
|
+
return g({
|
|
131
|
+
defaultTagName: S("div"),
|
|
132
|
+
props: h({ className: r("flex basis-full items-center justify-between gap-space-md", e) }, t),
|
|
133
|
+
state: { slot: "item-footer" }
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
//#endregion
|
|
137
|
+
//#region src/components/base/item/item.tsx
|
|
138
|
+
var M = d(function(i, a) {
|
|
139
|
+
let o = "title" in i, { size: c, density: u = "default", variant: d, padding: h = "none", textGap: g = "dense", render: _, className: v, children: y, media: b, mediaVariant: x, title: S, description: w, trailing: T, actions: E, titleBold: D, descriptionClamp: O, ...k } = i, { defaultVariant: A = "default" } = e(), { defaultScale: j } = t(), M = n(c, j), N = M === "sm" ? "xs" : "sm", P = d ?? A, R = M === "sm" ? "text-pxs" : M === "lg" ? "text-base" : "text-sm", z = h === "default" ? "px-row-x" : "px-0", V = P === "default" && h === "none" ? "in-data-[slot=item-group]:first:pt-0 in-data-[slot=item-group]:last:pb-0" : void 0, U = P === "default" ? `border-0 ${s.edge}` : void 0, W = o ? /* @__PURE__ */ m(f, { children: [
|
|
140
|
+
b == null ? null : /* @__PURE__ */ p(F, {
|
|
141
|
+
variant: x,
|
|
142
|
+
children: b
|
|
143
|
+
}),
|
|
144
|
+
/* @__PURE__ */ m(I, {
|
|
145
|
+
textGap: g,
|
|
146
|
+
className: "basis-48",
|
|
147
|
+
children: [/* @__PURE__ */ p(B, {
|
|
148
|
+
bold: D,
|
|
149
|
+
children: S
|
|
150
|
+
}), w == null ? null : /* @__PURE__ */ p(H, {
|
|
151
|
+
clamp: O,
|
|
152
|
+
children: w
|
|
153
|
+
})]
|
|
154
|
+
}),
|
|
155
|
+
T != null || E != null ? /* @__PURE__ */ m(L, { children: [T, E] }) : null
|
|
156
|
+
] }) : y;
|
|
157
|
+
return /* @__PURE__ */ p(C, {
|
|
158
|
+
ref: a,
|
|
159
|
+
size: N,
|
|
160
|
+
variant: P,
|
|
161
|
+
render: _,
|
|
162
|
+
className: r("item--component box-border font-sans gap-space-lg rounded-inner", l[u], z, V, U, R, v),
|
|
163
|
+
...k,
|
|
164
|
+
children: W
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
M.displayName = "Item";
|
|
168
|
+
var N = d(function({ className: e, role: t, ...n }, i) {
|
|
169
|
+
return /* @__PURE__ */ p(v, {
|
|
170
|
+
ref: i,
|
|
171
|
+
role: t,
|
|
172
|
+
className: r("item-group--component gap-space-sm has-[>[data-slot=item][data-variant=default]]:gap-0", e),
|
|
173
|
+
...n
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
N.displayName = "ItemGroup";
|
|
177
|
+
var P = d(function({ className: e, ...t }, n) {
|
|
178
|
+
return /* @__PURE__ */ p(y, {
|
|
179
|
+
ref: n,
|
|
180
|
+
className: r("item--separator", e),
|
|
181
|
+
...t
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
P.displayName = "ItemSeparator";
|
|
185
|
+
var F = d(function({ variant: e = "default", className: t, ...n }, i) {
|
|
186
|
+
let a = e === "image" || e === "avatar" ? "image" : "default", o = e === "icon" ? r(c.md, "group-data-[size=xs]/item:[&_svg:not([class*='size-'])]:size-icon-sm") : void 0;
|
|
187
|
+
return /* @__PURE__ */ p(T, {
|
|
188
|
+
ref: i,
|
|
189
|
+
variant: a,
|
|
190
|
+
className: r("item--media", "group-has-data-[slot=item-description]/item:translate-y-0", o, e === "avatar" ? "rounded-full group-data-[size=sm]/item:rounded-full group-data-[size=xs]/item:rounded-full" : void 0, t),
|
|
191
|
+
...n
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
F.displayName = "ItemMedia";
|
|
195
|
+
var I = d(function({ className: e, textGap: t = "dense", ...n }, i) {
|
|
196
|
+
return /* @__PURE__ */ p(E, {
|
|
197
|
+
ref: i,
|
|
198
|
+
className: r("item--content min-w-0", t === "dense" ? "gap-dense group-data-[size=xs]/item:gap-dense" : "gap-normal group-data-[size=xs]/item:gap-normal", e),
|
|
199
|
+
...n
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
I.displayName = "ItemContent";
|
|
203
|
+
var L = d(function({ className: e, ...t }, n) {
|
|
204
|
+
return /* @__PURE__ */ p(k, {
|
|
205
|
+
ref: n,
|
|
206
|
+
className: r("item--actions max-w-full flex-wrap shrink-0 gap-space-xs", e),
|
|
207
|
+
...t
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
L.displayName = "ItemActions";
|
|
211
|
+
var R = d(function({ className: e, ...t }, n) {
|
|
212
|
+
return /* @__PURE__ */ p(A, {
|
|
213
|
+
ref: n,
|
|
214
|
+
className: r("item--header", e),
|
|
215
|
+
...t
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
R.displayName = "ItemHeader";
|
|
219
|
+
var z = d(function({ className: e, ...t }, n) {
|
|
220
|
+
return /* @__PURE__ */ p(j, {
|
|
221
|
+
ref: n,
|
|
222
|
+
className: r("item--footer", e),
|
|
223
|
+
...t
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
z.displayName = "ItemFooter";
|
|
227
|
+
var B = d(function({ bold: e = !0, className: t, children: n, ...i }, s) {
|
|
228
|
+
let c = typeof n == "string" || typeof n == "number" || typeof n == "bigint";
|
|
229
|
+
return /* @__PURE__ */ p(D, {
|
|
230
|
+
ref: s,
|
|
231
|
+
className: r("item--title min-w-0 max-w-full overflow-hidden m-0 text-inherit [&>p]:m-0 [&>p]:text-start", t),
|
|
232
|
+
...i,
|
|
233
|
+
children: c ? /* @__PURE__ */ p(a, {
|
|
234
|
+
tag: "span",
|
|
235
|
+
size: "inherit",
|
|
236
|
+
weight: e ? "semibold" : "regular",
|
|
237
|
+
lineHeight: "tight",
|
|
238
|
+
className: "min-w-0 overflow-hidden text-ellipsis text-inherit",
|
|
239
|
+
children: n
|
|
240
|
+
}) : /* @__PURE__ */ p(o.Provider, {
|
|
241
|
+
value: !0,
|
|
242
|
+
children: n
|
|
243
|
+
})
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
B.displayName = "ItemTitle";
|
|
247
|
+
var V = {
|
|
248
|
+
1: "line-clamp-1",
|
|
249
|
+
2: "line-clamp-2",
|
|
250
|
+
3: "line-clamp-3",
|
|
251
|
+
4: "line-clamp-4",
|
|
252
|
+
none: "line-clamp-none"
|
|
253
|
+
}, H = d(function({ clamp: e = 2, className: t, children: n, ...i }, s) {
|
|
254
|
+
let c = typeof n == "string" || typeof n == "number" || typeof n == "bigint";
|
|
255
|
+
return /* @__PURE__ */ p(O, {
|
|
256
|
+
ref: s,
|
|
257
|
+
className: r("item--description", "m-0", !c && "text-xs text-muted-foreground leading-tight", V[e], t),
|
|
258
|
+
...i,
|
|
259
|
+
children: c ? /* @__PURE__ */ p(a, {
|
|
260
|
+
tag: "span",
|
|
261
|
+
size: "xs",
|
|
262
|
+
type: "secondary",
|
|
263
|
+
lineHeight: "tight",
|
|
264
|
+
children: n
|
|
265
|
+
}) : /* @__PURE__ */ p(o.Provider, {
|
|
266
|
+
value: !0,
|
|
267
|
+
children: n
|
|
268
|
+
})
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
H.displayName = "ItemDescription";
|
|
272
|
+
//#endregion
|
|
273
|
+
export { z as a, F as c, H as i, P as l, L as n, N as o, I as r, R as s, M as t, B as u };
|
|
274
|
+
|
|
275
|
+
//# sourceMappingURL=item-K5_ghvze.js.map
|