themelia-react-ui 2.0.0 → 2.0.1
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 +351 -0
- package/README.md +26 -13
- package/dist/{accordion-CQXVcd7Q.js → accordion-B6a3vVgA.js} +84 -82
- package/dist/accordion-B6a3vVgA.js.map +1 -0
- package/dist/action-menu-TzCoSlwL.js +280 -0
- package/dist/action-menu-TzCoSlwL.js.map +1 -0
- package/dist/{affordance-geometry.generated-CCIXb2A1.js → affordance-geometry.generated-B5iu-Mkr.js} +3 -2
- package/dist/affordance-geometry.generated-B5iu-Mkr.js.map +1 -0
- package/dist/{ai-artifact-2PQ2fItc.js → ai-artifact-BMJdv-6q.js} +379 -376
- package/dist/ai-artifact-BMJdv-6q.js.map +1 -0
- package/dist/{app-shell-BE_j8-AT.js → app-shell-ZK5RWdo6.js} +4 -4
- package/dist/{app-shell-BE_j8-AT.js.map → app-shell-ZK5RWdo6.js.map} +1 -1
- package/dist/attachment-BtfhGm8i.js +245 -0
- package/dist/attachment-BtfhGm8i.js.map +1 -0
- package/dist/{auth-M3vGMgDR.js → auth-CYxKfo69.js} +237 -235
- package/dist/auth-CYxKfo69.js.map +1 -0
- package/dist/{avatar-djdaaQ_s.js → avatar-BBnEJIx8.js} +66 -65
- package/dist/avatar-BBnEJIx8.js.map +1 -0
- package/dist/badge-MrKVNzW9.js +93 -0
- package/dist/badge-MrKVNzW9.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 +13 -13
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +103 -115
- 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 +1 -1
- 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 +17 -17
- 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 +171 -170
- 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 +1 -1
- 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 +2 -2
- 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-BZGDG-Si.js +104 -0
- package/dist/batch-action-bar-BZGDG-Si.js.map +1 -0
- package/dist/blocks/admin.js +173 -171
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +266 -263
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +440 -438
- 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 +1945 -1266
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +3 -2
- package/dist/blocks/onboarding.js +50 -49
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +25 -25
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +1 -1
- package/dist/breadcrumbs-D5t7I023.js +129 -0
- package/dist/breadcrumbs-D5t7I023.js.map +1 -0
- package/dist/{button-R9CCoH7A.js → button-QYwiyhD2.js} +15 -14
- package/dist/button-QYwiyhD2.js.map +1 -0
- package/dist/{button-BS3KDg00.js → buttons-SbIcm1HJ.js} +200 -213
- package/dist/buttons-SbIcm1HJ.js.map +1 -0
- package/dist/{cards-QoJ4syG9.js → cards-CiiHpKYd.js} +8 -8
- package/dist/cards-CiiHpKYd.js.map +1 -0
- package/dist/{chart-DwYRKKc-.js → chart-QfrARkXl.js} +5 -5
- package/dist/{chart-DwYRKKc-.js.map → chart-QfrARkXl.js.map} +1 -1
- package/dist/checkbox-DhB6K0bK.js +36 -0
- package/dist/checkbox-DhB6K0bK.js.map +1 -0
- package/dist/choice-inputs-t6w3ATNz.js +766 -0
- package/dist/choice-inputs-t6w3ATNz.js.map +1 -0
- package/dist/code-block-Dgbu-CU3.js +185 -0
- package/dist/code-block-Dgbu-CU3.js.map +1 -0
- package/dist/{collapsible-oMUGM4tr.js → collapsible-D8AEGU1-.js} +4 -4
- package/dist/{collapsible-oMUGM4tr.js.map → collapsible-D8AEGU1-.js.map} +1 -1
- package/dist/{collection-content-Ys-OZOkY.js → collection-content-uK16Grv0.js} +3 -3
- package/dist/{collection-content-Ys-OZOkY.js.map → collection-content-uK16Grv0.js.map} +1 -1
- package/dist/{combobox-6dvVny2q.js → combobox-2Ic8N9bL.js} +74 -68
- package/dist/combobox-2Ic8N9bL.js.map +1 -0
- package/dist/{combobox-CB7039j7.js → combobox-DLl0bfiq.js} +307 -305
- package/dist/combobox-DLl0bfiq.js.map +1 -0
- package/dist/{command-kPMPjIxJ.js → command-kNR20o7x.js} +7 -7
- package/dist/{command-kPMPjIxJ.js.map → command-kNR20o7x.js.map} +1 -1
- package/dist/{comments-You0Bzbr.js → comments-BpDuCUUu.js} +341 -339
- package/dist/comments-BpDuCUUu.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 +4 -4
- 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/choice-inputs/checkbox.d.ts +2 -2
- package/dist/components/base/choice-inputs/choice-types.d.ts +18 -6
- 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 +15 -12
- 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/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/text-inputs/field-clear-button.d.ts +6 -0
- 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/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 +43 -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/metadata/index.d.ts +30 -4
- 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/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 +4 -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 +1 -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 +45 -0
- 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.types.d.ts +32 -7
- 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/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 +4 -3
- package/dist/components/ui/checkbox.d.ts +4 -3
- package/dist/components/ui/overlay.recipes.d.ts +0 -9
- package/dist/components/ui/switch.d.ts +2 -2
- package/dist/{containers-D_L4mTVb.js → containers-DmWiJa2I.js} +36 -35
- package/dist/containers-DmWiJa2I.js.map +1 -0
- package/dist/{copyable-DDjTeW_j.js → copyable-B3Gwgdqc.js} +6 -6
- package/dist/{copyable-DDjTeW_j.js.map → copyable-B3Gwgdqc.js.map} +1 -1
- package/dist/data-display-DafIvCl5.js +960 -0
- package/dist/data-display-DafIvCl5.js.map +1 -0
- package/dist/{date-uf3z37Nm.js → date-BgK3bTdo.js} +5 -5
- package/dist/{date-uf3z37Nm.js.map → date-BgK3bTdo.js.map} +1 -1
- package/dist/date-picker-CF-DtUpF.js +1529 -0
- package/dist/date-picker-CF-DtUpF.js.map +1 -0
- package/dist/{date-pickers-CnFCb0n2.js → date-pickers-BmzxJl5l.js} +19 -19
- package/dist/{date-pickers-CnFCb0n2.js.map → date-pickers-BmzxJl5l.js.map} +1 -1
- package/dist/{display-DrdvPwF0.js → display-DsQTVzMz.js} +88 -87
- package/dist/display-DsQTVzMz.js.map +1 -0
- package/dist/{dropdown-menu-CURh59jb.js → dropdown-menu-E2qmdC7o.js} +7 -7
- package/dist/{dropdown-menu-CURh59jb.js.map → dropdown-menu-E2qmdC7o.js.map} +1 -1
- package/dist/features/activities.js +414 -501
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +170 -169
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/async-preview.js +8 -8
- 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 +139 -138
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +73 -71
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +278 -275
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +307 -310
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +95 -97
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +56 -57
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +918 -825
- 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 +1115 -1122
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +202 -194
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +25 -25
- 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 +33 -33
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +3 -3
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +397 -396
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/{feedback-C7nR0UtT.js → feedback-qNuMBtRH.js} +84 -83
- package/dist/feedback-qNuMBtRH.js.map +1 -0
- package/dist/{field-affordance-recipes-CkOCdE2y.js → field-affordance-recipes-qQeIf4lG.js} +8 -6
- package/dist/field-affordance-recipes-qQeIf4lG.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-BkHH53uv.js} +565 -563
- package/dist/filters-BkHH53uv.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-DUt4UxSV.js} +4 -4
- package/dist/{form-field-VZRULhUK.js.map → form-field-DUt4UxSV.js.map} +1 -1
- package/dist/{form-sizing-uWP4lzVh.js → form-sizing-By94KzXE.js} +19 -15
- package/dist/form-sizing-By94KzXE.js.map +1 -0
- package/dist/{forms-DDeEnXSY.js → forms-Bzha-Y3B.js} +22 -22
- package/dist/{forms-DDeEnXSY.js.map → forms-Bzha-Y3B.js.map} +1 -1
- package/dist/{forms-numeric-D3CO60IF.js → forms-numeric-C0bvjRPZ.js} +265 -264
- package/dist/forms-numeric-C0bvjRPZ.js.map +1 -0
- package/dist/{header-2ycNqGOR.js → header-BOefOKd1.js} +47 -51
- package/dist/header-BOefOKd1.js.map +1 -0
- package/dist/{hooks-DQ5SPwZw.js → hooks-9k_TtmKh.js} +2 -2
- package/dist/{hooks-DQ5SPwZw.js.map → hooks-9k_TtmKh.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-CAuKupo9.js +55 -0
- package/dist/icon-badge-CAuKupo9.js.map +1 -0
- package/dist/index.js +7 -7
- package/dist/input-DWhBBBww.js +262 -0
- package/dist/input-DWhBBBww.js.map +1 -0
- package/dist/{input-BoLm9Hks.js → input-Ddi_LSYv.js} +3 -3
- package/dist/{input-BoLm9Hks.js.map → input-Ddi_LSYv.js.map} +1 -1
- package/dist/interaction-recipes-CHr0dJUs.js +24 -0
- package/dist/interaction-recipes-CHr0dJUs.js.map +1 -0
- package/dist/{item-xzh8Df65.js → item-DEmDiTlD.js} +98 -97
- package/dist/item-DEmDiTlD.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 +1 -0
- package/dist/lib/field-affordance-recipes.d.ts +6 -1
- 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 +35 -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/token-merge.generated.d.ts +9 -6
- package/dist/lib/tone-recipes.d.ts +79 -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 +9 -0
- package/dist/lib/utils.js +1 -1
- package/dist/media-gallery-DcTtAaeC.js +203 -0
- package/dist/media-gallery-DcTtAaeC.js.map +1 -0
- package/dist/mentions-D-uyCh01.js +568 -0
- package/dist/mentions-D-uyCh01.js.map +1 -0
- package/dist/{message-YfFmbXNP.js → message-CdHgIWKf.js} +5 -5
- package/dist/{message-YfFmbXNP.js.map → message-CdHgIWKf.js.map} +1 -1
- package/dist/metadata-list-X5rYAKSB.js +394 -0
- package/dist/metadata-list-X5rYAKSB.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-D3KwXmaq.js +145 -0
- package/dist/navigation-D3KwXmaq.js.map +1 -0
- package/dist/navigation-HJf5zxlH.js +268 -0
- package/dist/navigation-HJf5zxlH.js.map +1 -0
- package/dist/{navigation-row-recipes-DlU-4QYO.js → navigation-row-recipes-BVowojQw.js} +2 -2
- package/dist/{navigation-row-recipes-DlU-4QYO.js.map → navigation-row-recipes-BVowojQw.js.map} +1 -1
- package/dist/{number-CKRBYmZK.js → number-DMhe-Vsk.js} +5 -5
- package/dist/{number-CKRBYmZK.js.map → number-DMhe-Vsk.js.map} +1 -1
- package/dist/overflow-tab-bar-sQHXLlwQ.js +280 -0
- package/dist/overflow-tab-bar-sQHXLlwQ.js.map +1 -0
- package/dist/overlay.recipes-8GHqmlb4.js +6 -0
- package/dist/overlay.recipes-8GHqmlb4.js.map +1 -0
- package/dist/overlays-I0axtYA6.js +999 -0
- package/dist/overlays-I0axtYA6.js.map +1 -0
- package/dist/page-B5dTH9gE.js +224 -0
- package/dist/page-B5dTH9gE.js.map +1 -0
- package/dist/page-header-commands-DjzFEq3E.js +126 -0
- package/dist/page-header-commands-DjzFEq3E.js.map +1 -0
- package/dist/{pagination-Cm0jqa3I.js → pagination-3bPA_a6K.js} +15 -15
- package/dist/{pagination-Cm0jqa3I.js.map → pagination-3bPA_a6K.js.map} +1 -1
- package/dist/{popover-Dcv_9jxr.js → popover-Di55PyAI.js} +8 -8
- package/dist/popover-Di55PyAI.js.map +1 -0
- package/dist/{popover-menu-DnRFKnHP.js → popover-menu-B71Tn2Qz.js} +6 -6
- package/dist/{popover-menu-DnRFKnHP.js.map → popover-menu-B71Tn2Qz.js.map} +1 -1
- package/dist/{popover.recipes-wmbvL8Ah.js → popover.recipes-Bdyhj2db.js} +2 -2
- package/dist/{popover.recipes-wmbvL8Ah.js.map → popover.recipes-Bdyhj2db.js.map} +1 -1
- package/dist/{primitives-BHrwQXFC.js → primitives-B-CkiEMU.js} +5 -5
- package/dist/{primitives-BHrwQXFC.js.map → primitives-B-CkiEMU.js.map} +1 -1
- package/dist/primitives.js +4 -4
- package/dist/{progress-Br9WTFya.js → progress-rnS8-uAW.js} +9 -9
- package/dist/{progress-Br9WTFya.js.map → progress-rnS8-uAW.js.map} +1 -1
- package/dist/{receipt-CV89q1fs.js → receipt-D0oswZ0p.js} +6 -6
- package/dist/{receipt-CV89q1fs.js.map → receipt-D0oswZ0p.js.map} +1 -1
- package/dist/rich-text-DvGulsNJ.js +78 -0
- package/dist/rich-text-DvGulsNJ.js.map +1 -0
- package/dist/rich-text-editor-sMU_Scqm.js +1204 -0
- package/dist/rich-text-editor-sMU_Scqm.js.map +1 -0
- package/dist/rich-text-editor.recipes-CadiF_Uu.js +88 -0
- package/dist/rich-text-editor.recipes-CadiF_Uu.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-Bt_vXY2b.js +48 -0
- package/dist/scroll-area-Bt_vXY2b.js.map +1 -0
- package/dist/{separator-Do5GWDYi.js → separator-C8DlRGwF.js} +3 -3
- package/dist/{separator-Do5GWDYi.js.map → separator-C8DlRGwF.js.map} +1 -1
- package/dist/{separator-BMEvwnSX.js → separator-CYHnjsAb.js} +2 -2
- package/dist/{separator-BMEvwnSX.js.map → separator-CYHnjsAb.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-CQW3b-Cu.js +170 -0
- package/dist/settings-CQW3b-Cu.js.map +1 -0
- package/dist/sheet-4SEvVYzA.js +210 -0
- package/dist/sheet-4SEvVYzA.js.map +1 -0
- package/dist/{sidebar-Crc9M9JV.js → sidebar-C7WWR29L.js} +180 -179
- package/dist/sidebar-C7WWR29L.js.map +1 -0
- package/dist/{sidebar-Cb8WzOvE.js → sidebar-d7Dg80ln.js} +16 -16
- package/dist/sidebar-d7Dg80ln.js.map +1 -0
- package/dist/{skeleton-DVMXr15h.js → skeleton-Cz890JZF.js} +9 -9
- package/dist/{skeleton-DVMXr15h.js.map → skeleton-Cz890JZF.js.map} +1 -1
- package/dist/smart-card-lFKxn5Hu.js +595 -0
- package/dist/smart-card-lFKxn5Hu.js.map +1 -0
- package/dist/{spinner-CmTAbEp0.js → spinner-fa3h1Aif.js} +7 -7
- package/dist/{spinner-CmTAbEp0.js.map → spinner-fa3h1Aif.js.map} +1 -1
- package/dist/{structure-hzCW-XsV.js → structure-DC2dygdA.js} +2 -2
- package/dist/{structure-hzCW-XsV.js.map → structure-DC2dygdA.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-D6zKeYQX.js → table-CIKyLUsy.js} +59 -58
- package/dist/table-CIKyLUsy.js.map +1 -0
- package/dist/table-CrcLN9Io.js +1458 -0
- package/dist/table-CrcLN9Io.js.map +1 -0
- package/dist/{tabs-Dk8E_knt.js → tabs-DwBJfjxX.js} +58 -57
- package/dist/tabs-DwBJfjxX.js.map +1 -0
- package/dist/{text-inputs-BFpku0Qd.js → text-inputs-aaK9wcDT.js} +74 -79
- package/dist/text-inputs-aaK9wcDT.js.map +1 -0
- package/dist/theme.css +3 -3
- package/dist/{timelines-CxuAFIc2.js → timelines-C_SBwHNP.js} +153 -150
- package/dist/timelines-C_SBwHNP.js.map +1 -0
- package/dist/tone-recipes-CPoExcTE.js +70 -0
- package/dist/tone-recipes-CPoExcTE.js.map +1 -0
- package/dist/tooltip-CsfgrfS7.js +111 -0
- package/dist/tooltip-CsfgrfS7.js.map +1 -0
- package/dist/{tree-BotPlyiD.js → tree-BiKhg8AY.js} +68 -66
- package/dist/tree-BiKhg8AY.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-DTRkE9zL.js +117 -0
- package/dist/typography-DTRkE9zL.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-D2_TeLqw.js → ui-provider-1D_NSYzO.js} +11 -3
- package/dist/ui-provider-1D_NSYzO.js.map +1 -0
- package/dist/ui-provider.js +3 -3
- package/dist/{upload-B0WHW7ak.js → upload-BO8-CLN6.js} +209 -209
- package/dist/upload-BO8-CLN6.js.map +1 -0
- package/dist/{upload-queue-BHZ_wBfd.js → upload-queue-EOC8g1gf.js} +109 -111
- package/dist/upload-queue-EOC8g1gf.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-obRaBskq.js} +46 -46
- package/dist/{usage-card-U0YBLTNT.js.map → usage-card-obRaBskq.js.map} +1 -1
- package/dist/{utils-Cospvlj1.js → utils-l5LpDw2z.js} +56 -24
- package/dist/utils-l5LpDw2z.js.map +1 -0
- package/dist/value-inputs-TAYMX111.js +947 -0
- package/dist/value-inputs-TAYMX111.js.map +1 -0
- package/dist/{value-typography-Deb3yQZg.js → value-typography-b8wpz1eX.js} +2 -2
- package/dist/{value-typography-Deb3yQZg.js.map → value-typography-b8wpz1eX.js.map} +1 -1
- package/dist/workspace-DH0v0KcB.js +407 -0
- package/dist/workspace-DH0v0KcB.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +19 -20
- 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 +51 -8
- package/docs/consumer-skill/references/design-contract.md +12 -3
- package/docs/consumer-skill/references/installation.md +11 -1
- package/docs/consumer-skill/references/public-api.json +847 -447
- package/docs/consumer-skill/references/review.md +25 -5
- package/docs/consumer-skill/references/theming.md +8 -4
- package/docs/consumer-skill/references/tokens.json +1 -1
- package/docs/consumer-skill/references/workflows.md +29 -10
- package/docs/consumer-skill/scripts/composition-policy.mjs +41 -11
- package/docs/consumer-skill/scripts/surface-policy.mjs +139 -5
- package/package.json +10 -2
- 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.map +0 -1
- 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.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.map +0 -1
- 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/display-DrdvPwF0.js.map +0 -1
- package/dist/feedback-C7nR0UtT.js.map +0 -1
- 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-sizing-uWP4lzVh.js.map +0 -1
- 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-DhQdBnV3.js +0 -255
- package/dist/input-DhQdBnV3.js.map +0 -1
- 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/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/popover-Dcv_9jxr.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/surface-recipes-DOdoBXGm.js +0 -28
- package/dist/surface-recipes-DOdoBXGm.js.map +0 -1
- 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.map +0 -1
- package/dist/text-inputs-BFpku0Qd.js.map +0 -1
- 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/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 @@
|
|
|
1
|
+
{"version":3,"file":"input-DWhBBBww.js","names":["React","useDensityConfig","cn","Text","fieldAffordanceRecipes","FieldClearGlyph","resolveFormControlSize","formFieldFrameClasses","formControlEndIconOffsetClasses","formControlCountOffsetClasses","formControlIconClasses","formControlEndAddonOffsetClasses","formControlIconOffsetClasses","formControlAddonOffsetClasses","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 { 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:inline-flex file:h-control-file file:border file:bg-transparent file:px-control 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\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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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./utils-
|
|
3
|
-
import { t } from "./field-state-recipes-
|
|
2
|
+
import { t as e } from "./utils-l5LpDw2z.js";
|
|
3
|
+
import { t } from "./field-state-recipes-BVA2CWHo.js";
|
|
4
4
|
import { t as n } from "./editable-text-recipe-Bkm6wKHp.js";
|
|
5
5
|
import "react";
|
|
6
6
|
import { jsx as r } from "react/jsx-runtime";
|
|
@@ -17,4 +17,4 @@ function a({ className: a, type: o, ...s }) {
|
|
|
17
17
|
//#endregion
|
|
18
18
|
export { a as t };
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=input-
|
|
20
|
+
//# sourceMappingURL=input-Ddi_LSYv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-
|
|
1
|
+
{"version":3,"file":"input-Ddi_LSYv.js","names":["Input","InputPrimitive","cn","editableTextSizeClasses","Input$1","props","Input","fieldStateRecipes","className"],"sources":["../src/components/ui/input.tsx"],"sourcesContent":["import { fieldStateRecipes } from '../../lib/field-state-recipes';\nimport { editableTextSizeClasses } from '../../lib/editable-text-recipe';\nimport { Input as InputPrimitive } from \"@base-ui/react/input\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"box-border font-sans border-input h-control rounded-inner border bg-transparent px-control py-space-xs shadow-none transition-[color,box-shadow] file:h-control-file file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n editableTextSizeClasses.md,\n fieldStateRecipes.focus,\n fieldStateRecipes.invalid,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n"],"mappings":";;;;;;;;AAOA,SAASA,EAAM,EAAE,cAAW,SAAM,GAAGK,KAAwC;CAC3E,OACE,kBAACJ,GAAD;EACQ;EACN,aAAU;EACV,WAAWC,EACT,yZACAC,EAAwB,IACxBI,EAAkB,OAClBA,EAAkB,SAClBC,CACF;EACA,GAAIH;CACL,CAAA;AAEL"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { i as e } from "./surface-recipes-BKRVW8Os.js";
|
|
2
|
+
//#region src/lib/interaction-recipes.ts
|
|
3
|
+
var t = {
|
|
4
|
+
rowHover: "hover:bg-accent hover:text-accent-foreground",
|
|
5
|
+
rowSelected: "bg-accent text-accent-foreground",
|
|
6
|
+
rowCurrent: "bg-accent text-accent-foreground font-medium",
|
|
7
|
+
toggleHover: "hover:bg-muted hover:text-foreground",
|
|
8
|
+
togglePressed: "bg-accent text-accent-foreground",
|
|
9
|
+
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",
|
|
10
|
+
tableHead: e.band,
|
|
11
|
+
tableStripe: e.wash,
|
|
12
|
+
tableRowHover: "hover:bg-muted/50",
|
|
13
|
+
tableRowSelected: "data-[state=selected]:bg-muted",
|
|
14
|
+
tileHover: "hover:border-input",
|
|
15
|
+
segmentActive: "bg-card text-foreground shadow-sm",
|
|
16
|
+
segmentInactive: "text-muted-foreground hover:text-foreground",
|
|
17
|
+
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",
|
|
18
|
+
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",
|
|
19
|
+
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"
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { t };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=interaction-recipes-CHr0dJUs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-recipes-CHr0dJUs.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/** 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;CAEjC,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"}
|
|
@@ -1,33 +1,34 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { t as r } from "./utils-
|
|
4
|
-
import { t as i } from "./separator-
|
|
5
|
-
import { c as a, s as o } from "./typography-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
2
|
+
import { l as e, s as t, v as n } from "./ui-provider-1D_NSYzO.js";
|
|
3
|
+
import { t as r } from "./utils-l5LpDw2z.js";
|
|
4
|
+
import { t as i } from "./separator-CYHnjsAb.js";
|
|
5
|
+
import { c as a, s as o } from "./typography-DTRkE9zL.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 { forwardRef as u } from "react";
|
|
10
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
11
|
+
import { mergeProps as m } from "@base-ui/react/merge-props";
|
|
12
|
+
import { useRender as h } from "@base-ui/react/use-render";
|
|
13
|
+
import { cva as g } from "class-variance-authority";
|
|
13
14
|
//#region src/components/ui/item.tsx
|
|
14
|
-
function
|
|
15
|
-
return /* @__PURE__ */
|
|
15
|
+
function _({ className: e, ...t }) {
|
|
16
|
+
return /* @__PURE__ */ f("div", {
|
|
16
17
|
role: "list",
|
|
17
18
|
"data-slot": "item-group",
|
|
18
19
|
className: r("group/item-group flex w-full flex-col", e),
|
|
19
20
|
...t
|
|
20
21
|
});
|
|
21
22
|
}
|
|
22
|
-
function
|
|
23
|
-
return /* @__PURE__ */
|
|
23
|
+
function v({ className: e, ...t }) {
|
|
24
|
+
return /* @__PURE__ */ f(i, {
|
|
24
25
|
"data-slot": "item-separator",
|
|
25
26
|
orientation: "horizontal",
|
|
26
27
|
className: r("my-space-md", e),
|
|
27
28
|
...t
|
|
28
29
|
});
|
|
29
30
|
}
|
|
30
|
-
var
|
|
31
|
+
var y = g(`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`, {
|
|
31
32
|
variants: {
|
|
32
33
|
variant: {
|
|
33
34
|
default: "border-transparent",
|
|
@@ -35,9 +36,9 @@ var v = h("group/item flex w-full flex-wrap items-center rounded-inner border te
|
|
|
35
36
|
muted: "border-transparent bg-muted/50"
|
|
36
37
|
},
|
|
37
38
|
size: {
|
|
38
|
-
default: r("gap-space-lg px-row-x",
|
|
39
|
-
sm: r("gap-space-lg px-row-x",
|
|
40
|
-
xs: r("gap-space-md px-row-x in-data-[slot=dropdown-menu-content]:p-0",
|
|
39
|
+
default: r("gap-space-lg px-row-x", l.comfortable),
|
|
40
|
+
sm: r("gap-space-lg px-row-x", l.default),
|
|
41
|
+
xs: r("gap-space-md px-row-x in-data-[slot=dropdown-menu-content]:p-0", l.compact)
|
|
41
42
|
}
|
|
42
43
|
},
|
|
43
44
|
defaultVariants: {
|
|
@@ -45,10 +46,10 @@ var v = h("group/item flex w-full flex-wrap items-center rounded-inner border te
|
|
|
45
46
|
size: "default"
|
|
46
47
|
}
|
|
47
48
|
});
|
|
48
|
-
function
|
|
49
|
-
return
|
|
49
|
+
function b({ className: e, variant: t = "default", size: n = "default", render: i, ...a }) {
|
|
50
|
+
return h({
|
|
50
51
|
defaultTagName: "div",
|
|
51
|
-
props:
|
|
52
|
+
props: m({ className: r(y({
|
|
52
53
|
variant: t,
|
|
53
54
|
size: n,
|
|
54
55
|
className: e
|
|
@@ -61,7 +62,7 @@ function y({ className: e, variant: t = "default", size: n = "default", render:
|
|
|
61
62
|
}
|
|
62
63
|
});
|
|
63
64
|
}
|
|
64
|
-
var
|
|
65
|
+
var x = g("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", {
|
|
65
66
|
variants: { variant: {
|
|
66
67
|
default: "bg-transparent",
|
|
67
68
|
icon: "[&_svg:not([class*='size-'])]:size-4",
|
|
@@ -69,54 +70,54 @@ var b = h("flex shrink-0 items-center justify-center gap-space-md group-has-data
|
|
|
69
70
|
} },
|
|
70
71
|
defaultVariants: { variant: "default" }
|
|
71
72
|
});
|
|
72
|
-
function
|
|
73
|
-
return /* @__PURE__ */
|
|
73
|
+
function S({ className: e, variant: t = "default", ...n }) {
|
|
74
|
+
return /* @__PURE__ */ f("div", {
|
|
74
75
|
"data-slot": "item-media",
|
|
75
76
|
"data-variant": t,
|
|
76
|
-
className: r(
|
|
77
|
+
className: r(x({
|
|
77
78
|
variant: t,
|
|
78
79
|
className: e
|
|
79
80
|
})),
|
|
80
81
|
...n
|
|
81
82
|
});
|
|
82
83
|
}
|
|
83
|
-
function
|
|
84
|
-
return /* @__PURE__ */
|
|
84
|
+
function C({ className: e, ...t }) {
|
|
85
|
+
return /* @__PURE__ */ f("div", {
|
|
85
86
|
"data-slot": "item-content",
|
|
86
87
|
className: r("flex flex-1 flex-col [&+[data-slot=item-content]]:flex-none", e),
|
|
87
88
|
...t
|
|
88
89
|
});
|
|
89
90
|
}
|
|
90
|
-
function
|
|
91
|
-
return /* @__PURE__ */
|
|
91
|
+
function w({ className: e, ...t }) {
|
|
92
|
+
return /* @__PURE__ */ f("div", {
|
|
92
93
|
"data-slot": "item-title",
|
|
93
94
|
className: r("line-clamp-1 flex w-fit items-center gap-space-md text-sm leading-snug font-medium underline-offset-4", e),
|
|
94
95
|
...t
|
|
95
96
|
});
|
|
96
97
|
}
|
|
97
|
-
function
|
|
98
|
-
return /* @__PURE__ */
|
|
98
|
+
function T({ className: e, ...t }) {
|
|
99
|
+
return /* @__PURE__ */ f("p", {
|
|
99
100
|
"data-slot": "item-description",
|
|
100
101
|
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),
|
|
101
102
|
...t
|
|
102
103
|
});
|
|
103
104
|
}
|
|
104
|
-
function
|
|
105
|
-
return /* @__PURE__ */
|
|
105
|
+
function E({ className: e, ...t }) {
|
|
106
|
+
return /* @__PURE__ */ f("div", {
|
|
106
107
|
"data-slot": "item-actions",
|
|
107
108
|
className: r("flex items-center", e),
|
|
108
109
|
...t
|
|
109
110
|
});
|
|
110
111
|
}
|
|
111
|
-
function
|
|
112
|
-
return /* @__PURE__ */
|
|
112
|
+
function D({ className: e, ...t }) {
|
|
113
|
+
return /* @__PURE__ */ f("div", {
|
|
113
114
|
"data-slot": "item-header",
|
|
114
115
|
className: r("flex basis-full items-center justify-between gap-space-md", e),
|
|
115
116
|
...t
|
|
116
117
|
});
|
|
117
118
|
}
|
|
118
|
-
function
|
|
119
|
-
return /* @__PURE__ */
|
|
119
|
+
function O({ className: e, ...t }) {
|
|
120
|
+
return /* @__PURE__ */ f("div", {
|
|
120
121
|
"data-slot": "item-footer",
|
|
121
122
|
className: r("flex basis-full items-center justify-between gap-space-md", e),
|
|
122
123
|
...t
|
|
@@ -124,141 +125,141 @@ function D({ className: e, ...t }) {
|
|
|
124
125
|
}
|
|
125
126
|
//#endregion
|
|
126
127
|
//#region src/components/base/item/item.tsx
|
|
127
|
-
var
|
|
128
|
-
let o = "title" in i, { size:
|
|
129
|
-
|
|
130
|
-
variant:
|
|
131
|
-
children:
|
|
128
|
+
var k = u(function(i, a) {
|
|
129
|
+
let o = "title" in i, { size: c, density: u = "default", variant: m, padding: h = "none", textGap: g = "dense", render: _, className: v, children: y, media: x, mediaVariant: S, title: C, description: w, trailing: T, actions: E, titleBold: D, descriptionClamp: O, ...k } = i, { defaultVariant: A = "default" } = e(), { defaultScale: j } = t(), F = n(c, j), I = F === "sm" ? "xs" : "sm", R = m ?? A, B = F === "sm" ? "text-pxs" : F === "lg" ? "text-base" : "text-sm", V = h === "default" ? "px-row-x" : "px-0", H = R === "default" && h === "none" ? "in-data-[slot=item-group]:first:pt-0 in-data-[slot=item-group]:last:pb-0" : void 0, U = R === "default" ? `border-0 ${s.edge}` : void 0, W = o ? /* @__PURE__ */ p(d, { children: [
|
|
130
|
+
x == null ? null : /* @__PURE__ */ f(M, {
|
|
131
|
+
variant: S,
|
|
132
|
+
children: x
|
|
132
133
|
}),
|
|
133
|
-
/* @__PURE__ */
|
|
134
|
-
textGap:
|
|
134
|
+
/* @__PURE__ */ p(N, {
|
|
135
|
+
textGap: g,
|
|
135
136
|
className: "basis-48",
|
|
136
|
-
children: [/* @__PURE__ */
|
|
137
|
-
bold:
|
|
138
|
-
children: S
|
|
139
|
-
}), C == null ? null : /* @__PURE__ */ d(R, {
|
|
140
|
-
clamp: D,
|
|
137
|
+
children: [/* @__PURE__ */ f(L, {
|
|
138
|
+
bold: D,
|
|
141
139
|
children: C
|
|
140
|
+
}), w == null ? null : /* @__PURE__ */ f(z, {
|
|
141
|
+
clamp: O,
|
|
142
|
+
children: w
|
|
142
143
|
})]
|
|
143
144
|
}),
|
|
144
|
-
|
|
145
|
-
] }) :
|
|
146
|
-
return /* @__PURE__ */
|
|
145
|
+
T != null || E != null ? /* @__PURE__ */ p(P, { children: [T, E] }) : null
|
|
146
|
+
] }) : y;
|
|
147
|
+
return /* @__PURE__ */ f(b, {
|
|
147
148
|
ref: a,
|
|
148
|
-
size:
|
|
149
|
-
variant:
|
|
150
|
-
render:
|
|
151
|
-
className: r("item--component box-border font-sans gap-space-lg rounded-inner",
|
|
152
|
-
...
|
|
153
|
-
children:
|
|
149
|
+
size: I,
|
|
150
|
+
variant: R,
|
|
151
|
+
render: _,
|
|
152
|
+
className: r("item--component box-border font-sans gap-space-lg rounded-inner", l[u], V, H, U, B, v),
|
|
153
|
+
...k,
|
|
154
|
+
children: W
|
|
154
155
|
});
|
|
155
156
|
});
|
|
156
|
-
|
|
157
|
-
var
|
|
158
|
-
return /* @__PURE__ */
|
|
157
|
+
k.displayName = "Item";
|
|
158
|
+
var A = u(function({ className: e, role: t, ...n }, i) {
|
|
159
|
+
return /* @__PURE__ */ f(_, {
|
|
159
160
|
ref: i,
|
|
160
161
|
role: t,
|
|
161
162
|
className: r("item-group--component gap-space-sm has-[>[data-slot=item][data-variant=default]]:gap-0", e),
|
|
162
163
|
...n
|
|
163
164
|
});
|
|
164
165
|
});
|
|
165
|
-
|
|
166
|
-
var
|
|
167
|
-
return /* @__PURE__ */
|
|
166
|
+
A.displayName = "ItemGroup";
|
|
167
|
+
var j = u(function({ className: e, ...t }, n) {
|
|
168
|
+
return /* @__PURE__ */ f(v, {
|
|
168
169
|
ref: n,
|
|
169
170
|
className: r("item--separator", e),
|
|
170
171
|
...t
|
|
171
172
|
});
|
|
172
173
|
});
|
|
173
|
-
|
|
174
|
-
var
|
|
175
|
-
let a = e === "image" || e === "avatar" ? "image" : "default", o = e === "icon" ? r(
|
|
176
|
-
return /* @__PURE__ */
|
|
174
|
+
j.displayName = "ItemSeparator";
|
|
175
|
+
var M = u(function({ variant: e = "default", className: t, ...n }, i) {
|
|
176
|
+
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;
|
|
177
|
+
return /* @__PURE__ */ f(S, {
|
|
177
178
|
ref: i,
|
|
178
179
|
variant: a,
|
|
179
180
|
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),
|
|
180
181
|
...n
|
|
181
182
|
});
|
|
182
183
|
});
|
|
183
|
-
|
|
184
|
-
var
|
|
185
|
-
return /* @__PURE__ */
|
|
184
|
+
M.displayName = "ItemMedia";
|
|
185
|
+
var N = u(function({ className: e, textGap: t = "dense", ...n }, i) {
|
|
186
|
+
return /* @__PURE__ */ f(C, {
|
|
186
187
|
ref: i,
|
|
187
188
|
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),
|
|
188
189
|
...n
|
|
189
190
|
});
|
|
190
191
|
});
|
|
191
|
-
|
|
192
|
-
var
|
|
193
|
-
return /* @__PURE__ */
|
|
192
|
+
N.displayName = "ItemContent";
|
|
193
|
+
var P = u(function({ className: e, ...t }, n) {
|
|
194
|
+
return /* @__PURE__ */ f(E, {
|
|
194
195
|
ref: n,
|
|
195
196
|
className: r("item--actions max-w-full flex-wrap shrink-0 gap-space-xs", e),
|
|
196
197
|
...t
|
|
197
198
|
});
|
|
198
199
|
});
|
|
199
|
-
|
|
200
|
-
var
|
|
201
|
-
return /* @__PURE__ */
|
|
200
|
+
P.displayName = "ItemActions";
|
|
201
|
+
var F = u(function({ className: e, ...t }, n) {
|
|
202
|
+
return /* @__PURE__ */ f(D, {
|
|
202
203
|
ref: n,
|
|
203
204
|
className: r("item--header", e),
|
|
204
205
|
...t
|
|
205
206
|
});
|
|
206
207
|
});
|
|
207
|
-
|
|
208
|
-
var
|
|
209
|
-
return /* @__PURE__ */
|
|
208
|
+
F.displayName = "ItemHeader";
|
|
209
|
+
var I = u(function({ className: e, ...t }, n) {
|
|
210
|
+
return /* @__PURE__ */ f(O, {
|
|
210
211
|
ref: n,
|
|
211
212
|
className: r("item--footer", e),
|
|
212
213
|
...t
|
|
213
214
|
});
|
|
214
215
|
});
|
|
215
|
-
|
|
216
|
-
var
|
|
216
|
+
I.displayName = "ItemFooter";
|
|
217
|
+
var L = u(function({ bold: e = !0, className: t, children: n, ...i }, s) {
|
|
217
218
|
let c = typeof n == "string" || typeof n == "number" || typeof n == "bigint";
|
|
218
|
-
return /* @__PURE__ */
|
|
219
|
+
return /* @__PURE__ */ f(w, {
|
|
219
220
|
ref: s,
|
|
220
221
|
className: r("item--title min-w-0 max-w-full overflow-hidden m-0 text-inherit [&>p]:m-0 [&>p]:text-start", t),
|
|
221
222
|
...i,
|
|
222
|
-
children: c ? /* @__PURE__ */
|
|
223
|
+
children: c ? /* @__PURE__ */ f(o, {
|
|
223
224
|
tag: "span",
|
|
224
225
|
size: "inherit",
|
|
225
226
|
weight: e ? "semibold" : "regular",
|
|
226
227
|
lineHeight: "tight",
|
|
227
|
-
className: "text-inherit",
|
|
228
|
+
className: "min-w-0 overflow-hidden text-ellipsis text-inherit",
|
|
228
229
|
children: n
|
|
229
|
-
}) : /* @__PURE__ */
|
|
230
|
+
}) : /* @__PURE__ */ f(a.Provider, {
|
|
230
231
|
value: !0,
|
|
231
232
|
children: n
|
|
232
233
|
})
|
|
233
234
|
});
|
|
234
235
|
});
|
|
235
|
-
|
|
236
|
-
var
|
|
236
|
+
L.displayName = "ItemTitle";
|
|
237
|
+
var R = {
|
|
237
238
|
1: "line-clamp-1",
|
|
238
239
|
2: "line-clamp-2",
|
|
239
240
|
3: "line-clamp-3",
|
|
240
241
|
4: "line-clamp-4",
|
|
241
242
|
none: "line-clamp-none"
|
|
242
|
-
},
|
|
243
|
+
}, z = u(function({ clamp: e = 2, className: t, children: n, ...i }, s) {
|
|
243
244
|
let c = typeof n == "string" || typeof n == "number" || typeof n == "bigint";
|
|
244
|
-
return /* @__PURE__ */
|
|
245
|
+
return /* @__PURE__ */ f(T, {
|
|
245
246
|
ref: s,
|
|
246
|
-
className: r("item--description", "m-0", !c && "text-xs text-muted-foreground leading-tight",
|
|
247
|
+
className: r("item--description", "m-0", !c && "text-xs text-muted-foreground leading-tight", R[e], t),
|
|
247
248
|
...i,
|
|
248
|
-
children: c ? /* @__PURE__ */
|
|
249
|
+
children: c ? /* @__PURE__ */ f(o, {
|
|
249
250
|
tag: "span",
|
|
250
251
|
size: "xs",
|
|
251
252
|
type: "secondary",
|
|
252
253
|
lineHeight: "tight",
|
|
253
254
|
children: n
|
|
254
|
-
}) : /* @__PURE__ */
|
|
255
|
+
}) : /* @__PURE__ */ f(a.Provider, {
|
|
255
256
|
value: !0,
|
|
256
257
|
children: n
|
|
257
258
|
})
|
|
258
259
|
});
|
|
259
260
|
});
|
|
260
|
-
|
|
261
|
+
z.displayName = "ItemDescription";
|
|
261
262
|
//#endregion
|
|
262
|
-
export {
|
|
263
|
+
export { I as a, M as c, z as i, j as l, P as n, A as o, N as r, F as s, k as t, L as u };
|
|
263
264
|
|
|
264
|
-
//# sourceMappingURL=item-
|
|
265
|
+
//# sourceMappingURL=item-DEmDiTlD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-DEmDiTlD.js","names":["ItemGroup","ItemSeparator","Item","ItemMedia","ItemContent","ItemTitle","ItemDescription","ItemActions","ItemHeader","ItemFooter","_Fragment","BaseItem","BaseItemGroup","BaseItemSeparator","BaseItemMedia","BaseItemContent","BaseItemActions","BaseItemHeader","BaseItemFooter","BaseItemTitle","BaseItemDescription","useItemConfig","useDensityConfig","resolveComponentScale","cn","Separator","RunningTextContext","Text","focusRecipes","ICON_DESCENDANT_SIZE_CLASSNAMES","rowBlockPaddingClasses","Fragment$1","ItemGroup$1","props","className","ItemSeparator$1","itemVariants","cva","Item$1","useRender","mergeProps","itemMediaVariants","ItemMedia$1","variant","ItemContent$1","ItemTitle$1","ItemDescription$1","ItemActions$1","ItemHeader$1","ItemFooter$1","Item","forwardRef","convenienceMode","itemProps","resolvedSize","size","defaultScale","primitiveSize","resolvedVariant","defaultVariant","textSizeClass","paddingClass","padding","flushEdgeClass","borderClass","resolvedChildren","media","ItemMedia","mediaVariant","ItemContent","ItemTitle","titleBold","title","description","ItemDescription","descriptionClamp","trailing","actions","ItemActions","children","density","ItemGroup","ItemSeparator","baseVariant","iconClass","textGap","ItemHeader","ItemFooter","isSimpleText","bold","CLAMP_CLASS","clamp"],"sources":["../src/components/ui/item.tsx","../src/components/base/item/item.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { rowBlockPaddingClasses } from \"../../lib/row-recipes\"\nimport { Separator } from \"./separator\"\nimport { focusRecipes } from \"../../lib/focus-recipes\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\n \"group/item-group flex w-full flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-space-md\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n `group/item flex w-full flex-wrap items-center rounded-inner border text-sm transition-colors outline-none ${focusRecipes.frame} [a]:transition-colors [a]:hover:bg-accent [a]:hover:text-accent-foreground`,\n {\n variants: {\n variant: {\n default: \"border-transparent\",\n outline: \"border-border\",\n muted: \"border-transparent bg-muted/50\",\n },\n size: {\n default: cn(\"gap-space-lg px-row-x\", rowBlockPaddingClasses.comfortable),\n sm: cn(\"gap-space-lg px-row-x\", rowBlockPaddingClasses.default),\n xs: cn(\"gap-space-md px-row-x in-data-[slot=dropdown-menu-content]:p-0\", rowBlockPaddingClasses.compact),\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & VariantProps<typeof itemVariants>) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(itemVariants({ variant, size, className })),\n },\n props\n ),\n render,\n state: {\n slot: \"item\",\n variant,\n size,\n },\n })\n}\n\nconst itemMediaVariants = cva(\n \"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\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"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\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"line-clamp-1 flex w-fit items-center gap-space-md text-sm leading-snug font-medium underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"m-0 line-clamp-2 text-start text-sm font-normal text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-space-md\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-space-md\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n","/**\n * Item — base wrapper around the shadcn `Item` primitive.\n *\n * Why this wrapper exists (rules 1, 8, 12, 17):\n * - Resolves `size` and `variant` against `<UIProvider>` (`useItemConfig()`),\n * so consumers set library-wide density once.\n * - Routes `ItemTitle` / `ItemDescription` text through our `<Text>` typography\n * so a title is always `weight=\"semibold\"` and secondary copy follows the\n * shared control/display tokens — no rogue `<div className=\"text-sm font-medium\">`\n * blobs at call sites.\n * - Re-exports every compound part untouched, so `<Item>` keeps working as a\n * drop-in replacement for hand-rolled \"icon-left + text-stack + actions\" rows.\n *\n * Layer rule: import from `@/components/base/item`, never from `@/components/ui/item`.\n */\nimport { forwardRef, type ComponentRef } from 'react';\n\nimport {\n\tItem as BaseItem,\n\tItemActions as BaseItemActions,\n\tItemContent as BaseItemContent,\n\tItemDescription as BaseItemDescription,\n\tItemFooter as BaseItemFooter,\n\tItemGroup as BaseItemGroup,\n\tItemHeader as BaseItemHeader,\n\tItemMedia as BaseItemMedia,\n\tItemSeparator as BaseItemSeparator,\n\tItemTitle as BaseItemTitle,\n} from '../../ui/item';\nimport { ICON_DESCENDANT_SIZE_CLASSNAMES } from '../display/icon-size';\nimport { Text } from '../../typography';\nimport { RunningTextContext } from '../../typography/running-text';\nimport { useDensityConfig, useItemConfig } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\nimport { rowBlockPaddingClasses } from '../../../lib/row-recipes';\nimport { focusRecipes } from '../../../lib/focus-recipes';\n\nimport type {\n\tItemActionsProps,\n\tItemContentProps,\n\tItemDescriptionProps,\n\tItemFooterProps,\n\tItemGroupProps,\n\tItemHeaderProps,\n\tItemMediaProps,\n\tItemProps,\n\tItemTitleProps,\n} from './item.types';\n\nconst Item = forwardRef<ComponentRef<typeof BaseItem>, ItemProps>(function Item(\n\titemProps,\n\tref,\n) {\n\tconst convenienceMode = 'title' in itemProps;\n\tconst {\n\t\tsize,\n\t\tdensity = 'default',\n\t\tvariant,\n\t\tpadding = 'none',\n\t\ttextGap = 'dense',\n\t\trender,\n\t\tclassName,\n\t\tchildren,\n\t\tmedia,\n\t\tmediaVariant,\n\t\ttitle,\n\t\tdescription,\n\t\ttrailing,\n\t\tactions,\n\t\ttitleBold,\n\t\tdescriptionClamp,\n\t\t...props\n\t} = itemProps;\n\tconst { defaultVariant = 'default' } = useItemConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst resolvedSize = resolveComponentScale(size, defaultScale);\n\tconst primitiveSize = resolvedSize === 'sm' ? 'xs' : 'sm';\n\tconst resolvedVariant = variant ?? defaultVariant;\n\tconst textSizeClass = resolvedSize === 'sm' ? 'text-pxs' : resolvedSize === 'lg' ? 'text-base' : 'text-sm';\n\tconst paddingClass = padding === 'default' ? 'px-row-x' : 'px-0';\n\t// A plain flush row draws no box, so in a group its outer edges sit on the group's\n\t// edges and the parent's gap or surface padding owns the space around the list.\n\tconst flushEdgeClass = resolvedVariant === 'default' && padding === 'none'\n\t\t? 'in-data-[slot=item-group]:first:pt-0 in-data-[slot=item-group]:last:pb-0'\n\t\t: undefined;\n\t// The default variant draws no box; a transparent 1px border only nudged its text off the shared edge.\n\t// Without a border, an interactive row draws its focus edge inset instead.\n\tconst borderClass = resolvedVariant === 'default' ? `border-0 ${focusRecipes.edge}` : undefined;\n\tconst resolvedChildren = convenienceMode ? (\n\t\t<>\n\t\t\t{media != null ? <ItemMedia variant={mediaVariant}>{media}</ItemMedia> : null}\n\t\t\t<ItemContent textGap={textGap} className=\"basis-48\">\n\t\t\t\t<ItemTitle bold={titleBold}>{title}</ItemTitle>\n\t\t\t\t{description != null ? (\n\t\t\t\t\t<ItemDescription clamp={descriptionClamp}>{description}</ItemDescription>\n\t\t\t\t) : null}\n\t\t\t</ItemContent>\n\t\t\t{trailing != null || actions != null ? (\n\t\t\t\t<ItemActions>\n\t\t\t\t\t{trailing}\n\t\t\t\t\t{actions}\n\t\t\t\t</ItemActions>\n\t\t\t) : null}\n\t\t</>\n\t) : children;\n\treturn (\n\t\t<BaseItem\n\t\t\tref={ref}\n\t\t\tsize={primitiveSize}\n\t\t\tvariant={resolvedVariant}\n\t\t\trender={render}\n\t\t\tclassName={cn(\n\t\t\t\t'item--component box-border font-sans gap-space-lg rounded-inner',\n\t\t\t\trowBlockPaddingClasses[density],\n\t\t\t\tpaddingClass,\n\t\t\t\tflushEdgeClass,\n\t\t\t\tborderClass,\n\t\t\t\ttextSizeClass,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{resolvedChildren}\n\t\t</BaseItem>\n\t);\n});\nItem.displayName = 'Item';\n\nconst ItemGroup = forwardRef<ComponentRef<typeof BaseItemGroup>, ItemGroupProps>(function ItemGroup(\n\t{ className, role, ...props },\n\tref,\n) {\n\treturn (\n\t\t<BaseItemGroup\n\t\t\tref={ref}\n\t\t\trole={role}\n\t\t\t// Boxed rows (outline/muted) keep a small gap between boxes. Plain rows touch,\n\t\t\t// so their own density padding is the only space between them.\n\t\t\tclassName={cn('item-group--component gap-space-sm has-[>[data-slot=item][data-variant=default]]:gap-0', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nItemGroup.displayName = 'ItemGroup';\n\nconst ItemSeparator = forwardRef<\n\tComponentRef<typeof BaseItemSeparator>,\n\tParameters<typeof BaseItemSeparator>[0]\n>(function ItemSeparator({ className, ...props }, ref) {\n\treturn <BaseItemSeparator ref={ref} className={cn('item--separator', className)} {...props} />;\n});\nItemSeparator.displayName = 'ItemSeparator';\n\nconst ItemMedia = forwardRef<ComponentRef<typeof BaseItemMedia>, ItemMediaProps>(function ItemMedia(\n\t{ variant = 'default', className, ...props },\n\tref,\n) {\n\tconst baseVariant = variant === 'image' || variant === 'avatar' ? 'image' : 'default';\n\tconst iconClass =\n\t\tvariant === 'icon'\n\t\t\t? cn(\n\t\t\t\t\tICON_DESCENDANT_SIZE_CLASSNAMES.md,\n\t\t\t\t\t\"group-data-[size=xs]/item:[&_svg:not([class*='size-'])]:size-icon-sm\",\n\t\t\t\t)\n\t\t\t: undefined;\n\tconst avatarClass =\n\t\tvariant === 'avatar'\n\t\t\t? 'rounded-full group-data-[size=sm]/item:rounded-full group-data-[size=xs]/item:rounded-full'\n\t\t\t: undefined;\n\treturn (\n\t\t<BaseItemMedia\n\t\t\tref={ref}\n\t\t\tvariant={baseVariant}\n\t\t\tclassName={cn(\n\t\t\t\t'item--media',\n\t\t\t\t'group-has-data-[slot=item-description]/item:translate-y-0',\n\t\t\t\ticonClass,\n\t\t\t\tavatarClass,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nItemMedia.displayName = 'ItemMedia';\n\nconst ItemContent = forwardRef<ComponentRef<typeof BaseItemContent>, ItemContentProps>(function ItemContent(\n\t{ className, textGap = 'dense', ...props },\n\tref,\n) {\n\treturn (\n\t\t<BaseItemContent\n\t\t\tref={ref}\n\t\t\tclassName={cn('item--content min-w-0', textGap === 'dense' ? 'gap-dense group-data-[size=xs]/item:gap-dense' : 'gap-normal group-data-[size=xs]/item:gap-normal', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nItemContent.displayName = 'ItemContent';\n\nconst ItemActions = forwardRef<ComponentRef<typeof BaseItemActions>, ItemActionsProps>(function ItemActions(\n\t{ className, ...props },\n\tref,\n) {\n\treturn <BaseItemActions ref={ref} className={cn('item--actions max-w-full flex-wrap shrink-0 gap-space-xs', className)} {...props} />;\n});\nItemActions.displayName = 'ItemActions';\n\nconst ItemHeader = forwardRef<ComponentRef<typeof BaseItemHeader>, ItemHeaderProps>(function ItemHeader(\n\t{ className, ...props },\n\tref,\n) {\n\treturn <BaseItemHeader ref={ref} className={cn('item--header', className)} {...props} />;\n});\nItemHeader.displayName = 'ItemHeader';\n\nconst ItemFooter = forwardRef<ComponentRef<typeof BaseItemFooter>, ItemFooterProps>(function ItemFooter(\n\t{ className, ...props },\n\tref,\n) {\n\treturn <BaseItemFooter ref={ref} className={cn('item--footer', className)} {...props} />;\n});\nItemFooter.displayName = 'ItemFooter';\n\nconst ItemTitle = forwardRef<ComponentRef<typeof BaseItemTitle>, ItemTitleProps>(function ItemTitle(\n\t{ bold = true, className, children, ...props },\n\tref,\n) {\n\tconst isSimpleText = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint';\n\treturn (\n\t\t<BaseItemTitle\n\t\t\tref={ref}\n\t\t\tclassName={cn('item--title min-w-0 max-w-full overflow-hidden m-0 text-inherit [&>p]:m-0 [&>p]:text-start', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText ? (\n\t\t\t\t// The title is a flex row, where text-overflow has no effect: the text itself\n\t\t\t\t// shrinks and ends in an ellipsis instead of clipping a long token mid-glyph.\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight={bold ? 'semibold' : 'regular'} lineHeight=\"tight\" className=\"min-w-0 overflow-hidden text-ellipsis text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : <RunningTextContext.Provider value>{children}</RunningTextContext.Provider>}\n\t\t</BaseItemTitle>\n\t);\n});\nItemTitle.displayName = 'ItemTitle';\n\nconst CLAMP_CLASS: Record<NonNullable<ItemDescriptionProps['clamp']>, string> = {\n\t1: 'line-clamp-1',\n\t2: 'line-clamp-2',\n\t3: 'line-clamp-3',\n\t4: 'line-clamp-4',\n\tnone: 'line-clamp-none',\n};\n\nconst ItemDescription = forwardRef<ComponentRef<typeof BaseItemDescription>, ItemDescriptionProps>(\n\tfunction ItemDescription({ clamp = 2, className, children, ...props }, ref) {\n\t\tconst isSimpleText = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint';\n\t\treturn (\n\t\t\t<BaseItemDescription\n\t\t\t\tref={ref}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'item--description',\n\t\t\t\t\t'm-0',\n\t\t\t\t\t!isSimpleText && 'text-xs text-muted-foreground leading-tight',\n\t\t\t\t\tCLAMP_CLASS[clamp],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{isSimpleText ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" lineHeight=\"tight\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</Text>\n\t\t\t\t) : <RunningTextContext.Provider value>{children}</RunningTextContext.Provider>}\n\t\t\t</BaseItemDescription>\n\t\t);\n\t},\n);\nItemDescription.displayName = 'ItemDescription';\n\nexport {\n\tItem,\n\tItemGroup,\n\tItemSeparator,\n\tItemMedia,\n\tItemContent,\n\tItemTitle,\n\tItemDescription,\n\tItemActions,\n\tItemHeader,\n\tItemFooter,\n};\n"],"mappings":";;;;;;;;;;;;;;AAUA,SAASA,EAAU,EAAE,cAAW,GAAGiC,KAAsC;CACvE,OACE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,WAAWT,EACT,yCACAU,CACF;EACA,GAAID;CACL,CAAA;AAEL;AAEA,SAAShC,EAAc,EACrB,cACA,GAAGgC,KACsC;CACzC,OACE,kBAACR,GAAD;EACE,aAAU;EACV,aAAY;EACZ,WAAWD,EAAG,eAAeU,CAAS;EACtC,GAAID;CACL,CAAA;AAEL;AAEA,IAAMG,IAAeC,EACnB,6GAA6GT,EAAa,MAAM,8EAChI;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;GACT,OAAO;EACT;EACA,MAAM;GACJ,SAASJ,EAAG,yBAAyBM,EAAuB,WAAW;GACvE,IAAIN,EAAG,yBAAyBM,EAAuB,OAAO;GAC9D,IAAIN,EAAG,kEAAkEM,EAAuB,OAAO;EACzG;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF;AAEA,SAAS5B,EAAK,EACZ,cACA,aAAU,WACV,UAAO,WACP,WACA,GAAG+B,KACmE;CACtE,OAAOM,EAAU;EACf,gBAAgB;EAChB,OAAOC,EACL,EACE,WAAWhB,EAAGY,EAAa;GAAE;GAAS;GAAM;EAAU,CAAC,CAAC,EAC1D,GACAH,CACF;EACA;EACA,OAAO;GACL,MAAM;GACN;GACA;EACF;CACF,CAAC;AACH;AAEA,IAAMQ,IAAoBJ,EACxB,yMACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACN,OACE;CACJ,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF;AAEA,SAASlC,EAAU,EACjB,cACA,aAAU,WACV,GAAG8B,KACoE;CACvE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,gBAAcU;EACd,WAAWnB,EAAGiB,EAAkB;GAAE;GAAS;EAAU,CAAC,CAAC;EACvD,GAAIR;CACL,CAAA;AAEL;AAEA,SAAS7B,EAAY,EAAE,cAAW,GAAG6B,KAAsC;CACzE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWT,EACT,+DACAU,CACF;EACA,GAAID;CACL,CAAA;AAEL;AAEA,SAAS5B,EAAU,EAAE,cAAW,GAAG4B,KAAsC;CACvE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWT,EACT,yGACAU,CACF;EACA,GAAID;CACL,CAAA;AAEL;AAEA,SAAS3B,EAAgB,EAAE,cAAW,GAAG2B,KAAoC;CAC3E,OACE,kBAAC,KAAD;EACE,aAAU;EACV,WAAWT,EACT,2IACAU,CACF;EACA,GAAID;CACL,CAAA;AAEL;AAEA,SAAS1B,EAAY,EAAE,cAAW,GAAG0B,KAAsC;CACzE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWT,EAAG,qBAAqBU,CAAS;EAC5C,GAAID;CACL,CAAA;AAEL;AAEA,SAASzB,EAAW,EAAE,cAAW,GAAGyB,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWT,EACT,6DACAU,CACF;EACA,GAAID;CACL,CAAA;AAEL;AAEA,SAASxB,EAAW,EAAE,cAAW,GAAGwB,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWT,EACT,6DACAU,CACF;EACA,GAAID;CACL,CAAA;AAEL;;;AC3IA,IAAMiB,IAAOC,EAAqD,SACjE,GACA,GACC;CACD,IAAMC,IAAkB,WAAWC,GAC7B,EACL,SACA,aAAU,WACV,YACA,aAAU,QACV,aAAU,SACV,WACA,cACA,aACA,UACA,iBACA,UACA,gBACA,aACA,YACA,cACA,qBACA,GAAGpB,MACAoB,GACE,EAAE,oBAAiB,cAAchC,EAAc,GAC/C,EAAE,oBAAiBC,EAAiB,GACpCgC,IAAe/B,EAAsBgC,GAAMC,CAAY,GACvDC,IAAgBH,MAAiB,OAAO,OAAO,MAC/CI,IAAkBf,KAAWgB,GAC7BC,IAAgBN,MAAiB,OAAO,aAAaA,MAAiB,OAAO,cAAc,WAC3FO,IAAeC,MAAY,YAAY,aAAa,QAGpDC,IAAiBL,MAAoB,aAAaI,MAAY,SACjE,6EACA,KAAA,GAGGE,IAAcN,MAAoB,YAAY,YAAY9B,EAAa,SAAS,KAAA,GAChFqC,IAAmBb,IACxB,kBAAA1C,GAAA,EAAA,UAAA;EACEwD,KAAS,OAA+D,OAAxD,kBAACC,GAAD;GAAW,SAASC;GAAe,UAAAF;EAAiB,CAAA;EACrE,kBAACG,GAAD;GAAsB;GAAS,WAAU;GAAzC,UAAA,CACC,kBAACC,GAAD;IAAW,MAAMC;IAAY,UAAAC;GAAiB,CAAA,GAC7CC,KAAe,OAEZ,OADH,kBAACC,GAAD;IAAiB,OAAOC;IAAmB,UAAAF;GAA6B,CAAA,CAE7D;;EACZG,KAAY,QAAQC,KAAW,OAC/B,kBAACC,GAAD,EAAA,UAAA,CACEF,GACAC,CACW,EAAA,CAAA,IACV;CACH,EAAA,CAAA,IACCE;CACJ,OACC,kBAACpE,GAAD;EACM;EACL,MAAM8C;EACN,SAASC;EACD;EACR,WAAWlC,EACV,mEACAM,EAAuBkD,IACvBnB,GACAE,GACAC,GACAJ,GACA1B,CACD;EACA,GAAID;EAEH,UAAAgC;CACQ,CAAA;AAEZ,CAAC;AACD,EAAK,cAAc;AAEnB,IAAMgB,IAAY9B,EAA+D,SAChF,EAAE,cAAW,SAAM,GAAGlB,KACtB,GACC;CACD,OACC,kBAACrB,GAAD;EACM;EACC;EAGN,WAAWY,EAAG,0FAA0FU,CAAS;EACjH,GAAID;CACJ,CAAA;AAEH,CAAC;AACD,EAAU,cAAc;AAExB,IAAMiD,IAAgB/B,EAGpB,SAAuB,EAAE,cAAW,GAAGlB,KAAS,GAAK;CACtD,OAAO,kBAACpB,GAAD;EAAwB;EAAK,WAAWW,EAAG,mBAAmBU,CAAS;EAAG,GAAID;CAAQ,CAAA;AAC9F,CAAC;AACD,EAAc,cAAc;AAE5B,IAAMkC,IAAYhB,EAA+D,SAChF,EAAE,aAAU,WAAW,cAAW,GAAGlB,KACrC,GACC;CACD,IAAMkD,IAAcxC,MAAY,WAAWA,MAAY,WAAW,UAAU,WACtEyC,IACLzC,MAAY,SACTnB,EACAK,EAAgC,IAChC,sEACD,IACC,KAAA;CAKJ,OACC,kBAACf,GAAD;EACM;EACL,SAASqE;EACT,WAAW3D,EACV,eACA,6DACA4D,GAVFzC,MAAY,WACT,+FACA,KAAA,GAUDT,CACD;EACA,GAAID;CACJ,CAAA;AAEH,CAAC;AACD,EAAU,cAAc;AAExB,IAAMoC,IAAclB,EAAmE,SACtF,EAAE,cAAW,aAAU,SAAS,GAAGlB,KACnC,GACC;CACD,OACC,kBAAClB,GAAD;EACM;EACL,WAAWS,EAAG,yBAAyB6D,MAAY,UAAU,kDAAkD,mDAAmDnD,CAAS;EAC3K,GAAID;CACJ,CAAA;AAEH,CAAC;AACD,EAAY,cAAc;AAE1B,IAAM6C,IAAc3B,EAAmE,SACtF,EAAE,cAAW,GAAGlB,KAChB,GACC;CACD,OAAO,kBAACjB,GAAD;EAAsB;EAAK,WAAWQ,EAAG,4DAA4DU,CAAS;EAAG,GAAID;CAAQ,CAAA;AACrI,CAAC;AACD,EAAY,cAAc;AAE1B,IAAMqD,IAAanC,EAAiE,SACnF,EAAE,cAAW,GAAGlB,KAChB,GACC;CACD,OAAO,kBAAChB,GAAD;EAAqB;EAAK,WAAWO,EAAG,gBAAgBU,CAAS;EAAG,GAAID;CAAQ,CAAA;AACxF,CAAC;AACD,EAAW,cAAc;AAEzB,IAAMsD,IAAapC,EAAiE,SACnF,EAAE,cAAW,GAAGlB,KAChB,GACC;CACD,OAAO,kBAACf,GAAD;EAAqB;EAAK,WAAWM,EAAG,gBAAgBU,CAAS;EAAG,GAAID;CAAQ,CAAA;AACxF,CAAC;AACD,EAAW,cAAc;AAEzB,IAAMqC,IAAYnB,EAA+D,SAChF,EAAE,UAAO,IAAM,cAAW,aAAU,GAAGlB,KACvC,GACC;CACD,IAAMuD,IAAe,OAAOT,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa;CACzG,OACC,kBAAC5D,GAAD;EACM;EACL,WAAWK,EAAG,8FAA8FU,CAAS;EACrH,GAAID;EAEH,UAAAuD,IAGA,kBAAC7D,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,QAAQ8D,IAAO,aAAa;GAAW,YAAW;GAAQ,WAAU;GAClG;EACI,CAAA,IACH,kBAAC/D,EAAmB,UAApB;GAA6B,OAAA;GAAO;EAAsC,CAAA;CAChE,CAAA;AAEjB,CAAC;AACD,EAAU,cAAc;AAExB,IAAMgE,IAA0E;CAC/E,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,MAAM;AACP,GAEMhB,IAAkBvB,EACvB,SAAyB,EAAE,WAAQ,GAAG,cAAW,aAAU,GAAGlB,KAAS,GAAK;CAC3E,IAAMuD,IAAe,OAAOT,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa;CACzG,OACC,kBAAC3D,GAAD;EACM;EACL,WAAWI,EACV,qBACA,OACA,CAACgE,KAAgB,+CACjBE,EAAYC,IACZzD,CACD;EACA,GAAID;EAEH,UAAAuD,IACA,kBAAC7D,GAAD;GAAM,KAAI;GAAO,MAAK;GAAK,MAAK;GAAY,YAAW;GACrD;EACI,CAAA,IACH,kBAACD,EAAmB,UAApB;GAA6B,OAAA;GAAO;EAAsC,CAAA;CAC1D,CAAA;AAEvB,CACD;AACA,EAAgB,cAAc"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/lib/layer-recipes.ts
|
|
2
|
+
var e = {
|
|
3
|
+
raised: "z-10",
|
|
4
|
+
sticky: "z-20",
|
|
5
|
+
stickyOver: "z-30",
|
|
6
|
+
chrome: "z-40",
|
|
7
|
+
overlay: "z-50",
|
|
8
|
+
nestedOverlay: "z-[100]"
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { e as t };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=layer-recipes-CCpklYME.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-recipes-CCpklYME.js","names":["layerRecipes"],"sources":["../src/lib/layer-recipes.ts"],"sourcesContent":["/**\n * One stacking scale. Local overlap inside a component is raised; sticky regions\n * stack under the app chrome; popups and modal layers sit above the page. Local\n * ordering may also use z-0, z-[1] and z-[-1]. Design lint rejects other layers.\n */\nexport const layerRecipes = {\n\t/** Overlap inside one component: a badge on a tile, an action over media. */\n\traised: 'z-10',\n\t/** Sticky headers and toolbars inside a scroll region. */\n\tsticky: 'z-20',\n\t/** Sticky parts that must stay above other sticky ones: a sticky corner cell or footer. */\n\tstickyOver: 'z-30',\n\t/** Application chrome: the shell header and floating panels. */\n\tchrome: 'z-40',\n\t/** Popups, menus, tooltips and modal layers. */\n\toverlay: 'z-50',\n\t/** A popup portaled into a consumer container clears the modal layer it opened from. */\n\tnestedOverlay: 'z-[100]',\n} as const;\n"],"mappings":";AAKA,IAAaA,IAAe;CAE3B,QAAQ;CAER,QAAQ;CAER,YAAY;CAEZ,QAAQ;CAER,SAAS;CAET,eAAe;AAChB"}
|
package/dist/layout/app-shell.js
CHANGED
package/dist/layout/auth.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g } from "../auth-
|
|
2
|
+
import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g } from "../auth-CYxKfo69.js";
|
|
3
3
|
export { e as AuthCard, c as AuthFooterLinks, p as AuthForm, s as AuthFormRow, h as AuthMethodSwitch, t as AuthShell, m as AuthSocialProviderButton, n as AuthSocialProviders, d as AuthSplitPanel, g as defaultAuthFooterLinksStrings, r as defaultAuthMethodSwitchStrings, i as defaultAuthShellStrings, f as defaultAuthSocialProvidersStrings, l as isAuthBrandConfig, o as useAuthLinks, u as useAuthMethodSwitch, a as useAuthShell };
|
package/dist/layout/header.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../header-
|
|
2
|
+
import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../header-BOefOKd1.js";
|
|
3
3
|
export { u as Header, n as HeaderBreadcrumbs, e as HeaderGlobalSearchTrigger, l as HeaderNotifications, o as HeaderSearch, r as HeaderToolButton, s as HeaderToolPopover, a as HeaderUserMenu, c as defaultHeaderNotificationsStrings, t as defaultHeaderSearchStrings, i as defaultHeaderUserMenuStrings };
|
package/dist/layout/hooks.js
CHANGED