themelia-react-ui 2.0.6 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +250 -0
- package/MIGRATION.md +746 -7
- package/README.md +27 -23
- package/dist/{accordion-0tQUZ20r.js → accordion-DNVqwEIC.js} +36 -36
- package/dist/accordion-DNVqwEIC.js.map +1 -0
- package/dist/action-menu-D5343RwT.js +286 -0
- package/dist/action-menu-D5343RwT.js.map +1 -0
- package/dist/ai-artifact-otrz9ZwS.js +1214 -0
- package/dist/ai-artifact-otrz9ZwS.js.map +1 -0
- package/dist/anchored-positioning-1U_eBFNx.js +9 -0
- package/dist/anchored-positioning-1U_eBFNx.js.map +1 -0
- package/dist/app-shell-CPN30Nb1.js +372 -0
- package/dist/app-shell-CPN30Nb1.js.map +1 -0
- package/dist/{attachment-BCpA4e7i.js → attachment-D2-fpfmv.js} +15 -15
- package/dist/{attachment-BCpA4e7i.js.map → attachment-D2-fpfmv.js.map} +1 -1
- package/dist/{auth-B0girIk_.js → auth-g_oUTDDC.js} +234 -241
- package/dist/auth-g_oUTDDC.js.map +1 -0
- package/dist/{avatar-B9Jnp-T-.js → avatar-Ca3Ihrq4.js} +4 -4
- package/dist/{avatar-B9Jnp-T-.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
- package/dist/{badge-wWauMgAt.js → badge-oGiXblW7.js} +8 -9
- package/dist/badge-oGiXblW7.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 +1 -1
- package/dist/base/buttons.js +2 -2
- package/dist/base/cards.js +3 -3
- package/dist/base/carousel.js +11 -11
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +2 -2
- 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 +4 -4
- package/dist/base/forms-numeric.js +2 -2
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +13 -13
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +203 -2
- package/dist/base/media-gallery.js.map +1 -0
- package/dist/base/metadata-list.js +1 -1
- 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 +32 -22
- package/dist/base/qr-code.js.map +1 -1
- package/dist/base/repeaters.js +91 -88
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sidebar.js +2 -2
- package/dist/base/signature-pad.js +14 -14
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +6 -12
- package/dist/base/spinner.js.map +1 -1
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +3 -3
- package/dist/base/toaster.js +2 -2
- package/dist/base/tree.js +2 -2
- package/dist/base/upload-queue.js +303 -2
- package/dist/base/upload-queue.js.map +1 -0
- package/dist/base/upload.js +3 -4
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-BoqWIIpV.js → batch-action-bar-D6MZQNnC.js} +10 -10
- package/dist/{batch-action-bar-BoqWIIpV.js.map → batch-action-bar-D6MZQNnC.js.map} +1 -1
- package/dist/blocks/admin.js +242 -228
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +395 -357
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/charts.js +1022 -0
- package/dist/blocks/analytics/charts.js.map +1 -0
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +171 -1365
- 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 +1487 -1358
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -3
- package/dist/blocks/onboarding.js +91 -82
- 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 +2 -2
- package/dist/{breadcrumbs-Bp9Ke7kd.js → breadcrumbs-CQ9JSlez.js} +52 -45
- package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
- package/dist/{button-ChBovTx0.js → button-rd6FiHfQ.js} +12 -8
- package/dist/button-rd6FiHfQ.js.map +1 -0
- package/dist/{buttons-DeW0bQeK.js → buttons-pZVgPTZn.js} +230 -246
- package/dist/buttons-pZVgPTZn.js.map +1 -0
- package/dist/{cards-CNXnmvV5.js → cards-CgWyqvgZ.js} +25 -22
- package/dist/{cards-CNXnmvV5.js.map → cards-CgWyqvgZ.js.map} +1 -1
- package/dist/cascader-Cf05pwaq.js +444 -0
- package/dist/cascader-Cf05pwaq.js.map +1 -0
- package/dist/{chart-I7ROnsl8.js → chart-CygRCyIZ.js} +5 -5
- package/dist/{chart-I7ROnsl8.js.map → chart-CygRCyIZ.js.map} +1 -1
- package/dist/{checkbox-MoyHIAPs.js → checkbox-Dy5_XBMZ.js} +4 -4
- package/dist/{checkbox-MoyHIAPs.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
- package/dist/{choice-inputs-DHGtx0QV.js → choice-inputs-oJEsrb5Y.js} +113 -114
- package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
- package/dist/{code-block-BSJyq9e-.js → code-block-BrLD7mCi.js} +44 -60
- package/dist/code-block-BrLD7mCi.js.map +1 -0
- package/dist/collapsible-CRCCg_bO.js +80 -0
- package/dist/collapsible-CRCCg_bO.js.map +1 -0
- package/dist/{collection-content-CSnwtOTH.js → collection-content-D7SoDlYd.js} +3 -3
- package/dist/{collection-content-CSnwtOTH.js.map → collection-content-D7SoDlYd.js.map} +1 -1
- package/dist/combobox-Dl6f6kHz.js +362 -0
- package/dist/combobox-Dl6f6kHz.js.map +1 -0
- package/dist/combobox-DrDXtSSt.js +929 -0
- package/dist/combobox-DrDXtSSt.js.map +1 -0
- package/dist/command-CjZ2VzKC.js +432 -0
- package/dist/command-CjZ2VzKC.js.map +1 -0
- package/dist/comments-C2MZyRmh.js +1214 -0
- package/dist/comments-C2MZyRmh.js.map +1 -0
- package/dist/components/base/accordion/accordion.d.ts +11 -3
- package/dist/components/base/action-menu/action-menu.d.ts +11 -3
- package/dist/components/base/buttons/button.d.ts +2 -2
- package/dist/components/base/buttons/index.d.ts +1 -1
- package/dist/components/base/buttons/loader-button.d.ts +6 -15
- package/dist/components/base/cards/index.d.ts +1 -1
- package/dist/components/base/cards/partials/card-body-context.d.ts +6 -0
- package/dist/components/base/cards/smart-card.d.ts +0 -2
- package/dist/components/base/cards/smart-card.types.d.ts +12 -10
- package/dist/components/base/cascader/cascader.d.ts +8 -2
- package/dist/components/base/cascader/cascader.types.d.ts +24 -2
- package/dist/components/base/cascader/index.d.ts +1 -1
- package/dist/components/base/choice-inputs/switch.d.ts +1 -1
- package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
- package/dist/components/base/command/command.d.ts +1 -1
- package/dist/components/base/date-pickers/datepicker.types.d.ts +1 -3
- package/dist/components/base/display/dialog.d.ts +3 -9
- package/dist/components/base/display/index.d.ts +2 -3
- package/dist/components/base/display/separator.d.ts +1 -1
- package/dist/components/base/feedback/alert.d.ts +2 -1
- package/dist/components/base/feedback/empty.d.ts +10 -2
- package/dist/components/base/forms/workflow.d.ts +2 -2
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +9 -17
- package/dist/components/base/forms-numeric/index.d.ts +3 -3
- package/dist/components/base/item/item.types.d.ts +6 -2
- package/dist/components/base/metadata-list/index.d.ts +1 -3
- package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
- package/dist/components/base/navigation/index.d.ts +2 -2
- package/dist/components/base/navigation/language-switcher.d.ts +7 -6
- package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
- package/dist/components/base/navigation/page-header/index.d.ts +1 -1
- package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
- package/dist/components/base/navigation/pagination.d.ts +5 -5
- package/dist/components/base/popover/popover.recipes.d.ts +0 -1
- package/dist/components/base/qr-code/qr-code.d.ts +4 -0
- package/dist/components/base/repeaters/index.d.ts +1 -1
- package/dist/components/base/repeaters/key-value-editor.d.ts +4 -0
- package/dist/components/base/sheet/sheet.d.ts +6 -15
- package/dist/components/base/sidebar/index.d.ts +1 -6
- package/dist/components/base/sidebar/sidebar.d.ts +38 -10
- package/dist/components/base/skeleton/skeleton.d.ts +1 -1
- package/dist/components/base/structure/structure.types.d.ts +11 -2
- package/dist/components/base/text-inputs/index.d.ts +1 -1
- package/dist/components/base/tree/index.d.ts +1 -0
- package/dist/components/base/tree/tree.d.ts +2 -2
- package/dist/components/base/tree/tree.types.d.ts +7 -1
- package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
- package/dist/components/base/upload/image-upload.d.ts +2 -0
- package/dist/components/base/upload/index.d.ts +3 -9
- package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
- package/dist/components/base/value-inputs/slider.d.ts +5 -2
- package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
- package/dist/components/blocks/admin/index.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
- package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
- package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
- package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-citation/types.d.ts +6 -0
- package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
- package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
- package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
- package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
- package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
- package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
- package/dist/components/blocks/ai/ai-sources/types.d.ts +8 -2
- package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
- package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
- package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +6 -0
- package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
- package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
- package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
- package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
- package/dist/components/blocks/analytics/index.d.ts +17 -24
- package/dist/components/blocks/analytics/metric/metric.d.ts +5 -5
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +2 -2
- package/dist/components/blocks/analytics/types.d.ts +12 -3
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
- package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
- package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
- package/dist/components/blocks/commerce/index.d.ts +8 -8
- package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
- package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
- package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
- package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/order-status/types.d.ts +8 -8
- package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
- package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
- package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
- package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
- package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
- package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
- package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
- package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
- package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
- package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
- package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
- package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
- package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
- package/dist/components/blocks/content-block-hooks.d.ts +22 -0
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
- package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
- package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
- package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +6 -0
- package/dist/components/blocks/data-display/index.d.ts +0 -1
- package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
- package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
- package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
- package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
- package/dist/components/blocks/timelines/index.d.ts +2 -2
- package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
- package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
- package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
- package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
- package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
- package/dist/components/features/activities/activities.strings.d.ts +5 -3
- package/dist/components/features/activities/activities.types.d.ts +28 -11
- package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
- package/dist/components/features/activities/index.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
- package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
- package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
- package/dist/components/features/activities/relative-time.d.ts +18 -0
- package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
- package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
- package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +19 -5
- package/dist/components/features/appointment-calendar/index.d.ts +1 -1
- package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
- package/dist/components/features/async-preview/async-preview.d.ts +2 -2
- package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
- package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
- package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
- package/dist/components/features/combobox/combobox.d.ts +12 -3
- package/dist/components/features/combobox/components/error-message.d.ts +3 -1
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -2
- package/dist/components/features/combobox/index.d.ts +1 -1
- package/dist/components/features/combobox/types.d.ts +47 -45
- package/dist/components/features/comments/comments.strings.d.ts +6 -5
- package/dist/components/features/comments/comments.types.d.ts +40 -26
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
- package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
- package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
- package/dist/components/features/data-view/data-view.types.d.ts +15 -2
- package/dist/components/features/email-composer/email-html.d.ts +5 -0
- package/dist/components/features/email-composer/http.d.ts +2 -0
- package/dist/components/features/email-composer/strings.d.ts +17 -2
- package/dist/components/features/email-composer/types.d.ts +17 -2
- package/dist/components/features/email-composer/use-composer.d.ts +2 -78
- package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
- package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
- package/dist/components/features/filters/facets/range-facet.d.ts +13 -8
- package/dist/components/features/filters/filter-context.d.ts +9 -0
- package/dist/components/features/filters/filters.strings.d.ts +36 -3
- package/dist/components/features/filters/filters.types.d.ts +72 -5
- package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
- package/dist/components/features/filters/index.d.ts +2 -2
- package/dist/components/features/filters/operator-options.d.ts +25 -2
- package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
- package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
- package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
- package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
- package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
- package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +29 -4
- package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
- package/dist/components/features/global-search/global-search.d.ts +7 -1
- package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
- package/dist/components/features/global-search/global-search.types.d.ts +30 -6
- package/dist/components/features/global-search/index.d.ts +1 -1
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
- package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
- package/dist/components/features/kanban/index.d.ts +2 -2
- package/dist/components/features/kanban/kanban-context.d.ts +4 -0
- package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
- package/dist/components/features/kanban/kanban.d.ts +10 -1
- package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
- package/dist/components/features/kanban/kanban.types.d.ts +26 -0
- package/dist/components/features/map/map.d.ts +4 -0
- package/dist/components/features/map/place-autocomplete.d.ts +10 -1
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +33 -3
- package/dist/components/features/media-library/media-library.types.d.ts +47 -2
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
- package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
- package/dist/components/features/mentions/index.d.ts +1 -1
- package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
- package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +8 -1
- package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
- package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
- package/dist/components/features/mentions/utils/index.d.ts +0 -1
- 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/drawer.d.ts +1 -1
- package/dist/components/features/overlays/index.d.ts +2 -2
- package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
- package/dist/components/features/overlays/overlays.types.d.ts +27 -10
- package/dist/components/features/products/components/index.d.ts +0 -10
- package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
- package/dist/components/features/products/components/product-details-card.d.ts +1 -1
- package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
- package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
- package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
- package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
- package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
- package/dist/components/features/products/partials/product-surface.d.ts +15 -0
- package/dist/components/features/products/products.strings.d.ts +8 -0
- package/dist/components/features/products/products.types.d.ts +25 -7
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +6 -4
- package/dist/components/features/resource/index.d.ts +2 -3
- package/dist/components/features/resource/resource.d.ts +2 -10
- package/dist/components/features/resource/resource.types.d.ts +7 -149
- package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
- package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
- package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -0
- package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +5 -7
- package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
- package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +2 -3
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +13 -1
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -0
- package/dist/components/features/schema-form/schema-form.d.ts +1 -1
- package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
- package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts +12 -4
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/filter-bar.d.ts +1 -1
- package/dist/components/features/table/pagination.d.ts +1 -1
- package/dist/components/features/table/partials/cell-value.d.ts +1 -1
- package/dist/components/features/table/table-body.d.ts +1 -1
- package/dist/components/features/table/table-header.d.ts +1 -1
- package/dist/components/features/table/table-helpers.d.ts +31 -9
- package/dist/components/features/table/table-region.recipes.d.ts +11 -0
- package/dist/components/features/table/table-toolbar.d.ts +1 -1
- package/dist/components/features/table/table.strings.d.ts +1 -0
- package/dist/components/features/table/table.types.d.ts +74 -48
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
- package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
- package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
- package/dist/components/layout/app-shell/index.d.ts +2 -2
- package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
- package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
- package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
- package/dist/components/layout/auth/auth-shell.d.ts +1 -1
- package/dist/components/layout/auth/auth.types.d.ts +0 -5
- package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
- package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
- package/dist/components/layout/header/header.types.d.ts +16 -6
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
- package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts +1 -1
- package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
- package/dist/components/layout/layout.types.d.ts +2 -2
- package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
- package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
- package/dist/components/layout/page/index.d.ts +2 -3
- package/dist/components/layout/page/page.strings.d.ts +12 -0
- package/dist/components/layout/page/page.types.d.ts +7 -110
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/index.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +3 -5
- package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/index.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +15 -7
- package/dist/components/layout/sidebar/sidebar.types.d.ts +10 -12
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
- package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
- package/dist/components/primitives/date.d.ts +22 -3
- package/dist/components/primitives/file-size.d.ts +8 -2
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/initials.d.ts +3 -1
- package/dist/components/primitives/link.d.ts +8 -1
- package/dist/components/primitives/money.d.ts +1 -1
- package/dist/components/primitives/number.d.ts +2 -1
- package/dist/components/typography/heading.d.ts +9 -3
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/text-link.d.ts +10 -3
- package/dist/components/ui/badge.d.ts +2 -4
- package/dist/components/ui/breadcrumb.d.ts +2 -3
- package/dist/components/ui/button.d.ts +8 -2
- package/dist/components/ui/collapsible.d.ts +1 -4
- package/dist/components/ui/command.d.ts +20 -18
- package/dist/components/ui/dialog.d.ts +3 -9
- package/dist/components/ui/empty.d.ts +2 -2
- package/dist/components/ui/input-group.d.ts +3 -3
- package/dist/components/ui/item.d.ts +3 -3
- package/dist/components/ui/popover.d.ts +3 -7
- package/dist/components/ui/sheet.d.ts +4 -12
- package/dist/components/ui/sidebar-state.d.ts +6 -1
- package/dist/components/ui/sidebar.d.ts +7 -4
- package/dist/components/ui/tabs.d.ts +2 -2
- package/dist/components/ui/toggle-group.d.ts +3 -3
- package/dist/components/ui/toggle.d.ts +2 -2
- package/dist/components/ui/tooltip.d.ts +1 -3
- package/dist/{containers-CSdc32h9.js → containers-BdfLTP4w.js} +37 -32
- package/dist/containers-BdfLTP4w.js.map +1 -0
- package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
- package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
- package/dist/{copyable-3fdHfMR3.js → copyable-Bmr14W0d.js} +6 -6
- package/dist/{copyable-3fdHfMR3.js.map → copyable-Bmr14W0d.js.map} +1 -1
- package/dist/{data-display-Cmj-xZYl.js → data-display-CWe9SOYh.js} +264 -251
- package/dist/data-display-CWe9SOYh.js.map +1 -0
- package/dist/date-3qsCE1ID.js +209 -0
- package/dist/date-3qsCE1ID.js.map +1 -0
- package/dist/{date-picker-CyQlFYsP.js → date-picker-D1keJQIG.js} +129 -129
- package/dist/date-picker-D1keJQIG.js.map +1 -0
- package/dist/date-pickers-D8aJoeHc.js +185 -0
- package/dist/date-pickers-D8aJoeHc.js.map +1 -0
- package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
- package/dist/{display-CT_N2a3w.js → display-VlmP1I0i.js} +23 -46
- package/dist/display-VlmP1I0i.js.map +1 -0
- package/dist/{dropdown-menu-C08iIugv.js → dropdown-menu-B8hjvbkS.js} +9 -9
- package/dist/{dropdown-menu-C08iIugv.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
- package/dist/dropzone-CHBNK3de.js +116 -0
- package/dist/dropzone-CHBNK3de.js.map +1 -0
- package/dist/features/activities.js +682 -628
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +258 -226
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +436 -340
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +351 -265
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +2 -2
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +212 -151
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +344 -315
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +504 -355
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +2 -2
- package/dist/features/global-search.js +250 -206
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +269 -189
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +385 -371
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +1571 -1199
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +2 -2
- package/dist/features/overlays.js +2 -2
- package/dist/features/products.js +1780 -1691
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +165 -152
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +223 -191
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +55 -220
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +3 -3
- package/dist/features/schema-form.js +280 -228
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +48 -39
- package/dist/features/suggestions.js.map +1 -1
- package/dist/features/table.js +2 -2
- package/dist/features/theme-tweaker.js +723 -633
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-DmqmXKLn.js +254 -0
- package/dist/feedback-DmqmXKLn.js.map +1 -0
- package/dist/{field-affordance-recipes-D6H7tVJi.js → field-affordance-recipes-DfbMadot.js} +13 -9
- package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
- package/dist/{field-state-recipes-7sza8QbC.js → field-state-recipes-EtCxpEy3.js} +6 -2
- package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
- package/dist/filters-BviMRMLS.js +2692 -0
- package/dist/filters-BviMRMLS.js.map +1 -0
- package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
- package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
- package/dist/{form-field-CAPdwdnZ.js → form-field-BdfCwSoQ.js} +5 -5
- package/dist/{form-field-CAPdwdnZ.js.map → form-field-BdfCwSoQ.js.map} +1 -1
- package/dist/{form-sizing-CgcrUbLU.js → form-sizing-DE_dZw32.js} +3 -3
- package/dist/{form-sizing-CgcrUbLU.js.map → form-sizing-DE_dZw32.js.map} +1 -1
- package/dist/{forms-B3W8CH7-.js → forms-B8DzJnBN.js} +35 -35
- package/dist/forms-B8DzJnBN.js.map +1 -0
- package/dist/forms-numeric-DOBswjKj.js +992 -0
- package/dist/forms-numeric-DOBswjKj.js.map +1 -0
- package/dist/{header-ZIIsRKxP.js → header-Cq3G0ZRP.js} +100 -95
- package/dist/header-Cq3G0ZRP.js.map +1 -0
- package/dist/{hooks-BitHSh-Y.js → hooks-DHfeSMAO.js} +34 -14
- package/dist/hooks-DHfeSMAO.js.map +1 -0
- package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
- package/dist/http-Cu-GPpss.js.map +1 -0
- package/dist/{icon-badge-npxF1SLX.js → icon-badge-B0Kq7wom.js} +3 -3
- package/dist/{icon-badge-npxF1SLX.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
- package/dist/index.js +6 -6
- package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
- package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
- package/dist/{input-DIREVYHs.js → input-2YrgTUrz.js} +3 -3
- package/dist/{input-DIREVYHs.js.map → input-2YrgTUrz.js.map} +1 -1
- package/dist/{input-7KAc7XQL.js → input-DfJyrjoR.js} +6 -6
- package/dist/{input-7KAc7XQL.js.map → input-DfJyrjoR.js.map} +1 -1
- package/dist/{interaction-recipes-4wZ2tvfb.js → interaction-recipes-DmuS1ase.js} +2 -2
- package/dist/{interaction-recipes-4wZ2tvfb.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
- package/dist/item-GJ9mvCcg.js +279 -0
- package/dist/item-GJ9mvCcg.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 +2 -2
- package/dist/layout/settings.js +2 -2
- package/dist/layout/sidebar.js +3 -3
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +12 -12
- package/dist/{layout.types-E_GAApzO.js → layout.types-DbtnyAtd.js} +11 -8
- package/dist/layout.types-DbtnyAtd.js.map +1 -0
- package/dist/lib/anchored-positioning.d.ts +11 -0
- package/dist/lib/field-affordance-recipes.d.ts +10 -0
- package/dist/lib/field-state-recipes.d.ts +6 -0
- package/dist/lib/focus-recipes.d.ts +7 -0
- package/dist/lib/format.d.ts +25 -0
- package/dist/lib/money-format.d.ts +6 -0
- package/dist/lib/motion-recipes.d.ts +6 -0
- package/dist/lib/surface-recipes.d.ts +32 -2
- package/dist/lib/theme-scope.d.ts +17 -1
- package/dist/lib/token-merge.generated.d.ts +13 -19
- package/dist/lib/ui-provider/index.d.ts +1 -1
- package/dist/lib/ui-provider/types.d.ts +5 -0
- package/dist/lib/use-controllable-state.d.ts +16 -0
- package/dist/lib/use-copy-feedback.d.ts +15 -0
- package/dist/lib/utils.js +1 -1
- package/dist/lib/variant-props.d.ts +9 -0
- package/dist/main-landmark-context-BAsyqp2I.js +11 -0
- package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
- package/dist/mentions-zz0ewNIq.js +670 -0
- package/dist/mentions-zz0ewNIq.js.map +1 -0
- package/dist/{message-BJHnn43M.js → message-BiiVrRrm.js} +10 -7
- package/dist/{message-BJHnn43M.js.map → message-BiiVrRrm.js.map} +1 -1
- package/dist/{metadata-list-XkqZ_UXH.js → metadata-list-G85roWjS.js} +13 -12
- package/dist/metadata-list-G85roWjS.js.map +1 -0
- package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
- package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
- package/dist/navigation-C0Be5C3i.js +304 -0
- package/dist/navigation-C0Be5C3i.js.map +1 -0
- package/dist/{navigation-Bt-v7rWP.js → navigation-CmqaQR_G.js} +99 -103
- package/dist/navigation-CmqaQR_G.js.map +1 -0
- package/dist/number-NFWKIoiK.js +340 -0
- package/dist/number-NFWKIoiK.js.map +1 -0
- package/dist/{overflow-tab-bar-BQCA2Zn2.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
- package/dist/{overflow-tab-bar-BQCA2Zn2.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
- package/dist/overlays-D-gAIfPF.js +1018 -0
- package/dist/overlays-D-gAIfPF.js.map +1 -0
- package/dist/page-D4pQhgSq.js +216 -0
- package/dist/page-D4pQhgSq.js.map +1 -0
- package/dist/{page-header-commands-DIKspJfx.js → page-header-commands-elelNOfd.js} +29 -29
- package/dist/{page-header-commands-DIKspJfx.js.map → page-header-commands-elelNOfd.js.map} +1 -1
- package/dist/{pagination-Br8TdV9A.js → pagination-BuSWw1US.js} +22 -23
- package/dist/pagination-BuSWw1US.js.map +1 -0
- package/dist/{popover-k8TdUcAt.js → popover-BpMxbqEK.js} +73 -69
- package/dist/popover-BpMxbqEK.js.map +1 -0
- package/dist/{popover-menu-yn-o0kyA.js → popover-menu-CO-_iiuz.js} +7 -7
- package/dist/{popover-menu-yn-o0kyA.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
- package/dist/{popover.recipes-DJ0AkUan.js → popover.recipes-BqkdvlZn.js} +3 -4
- package/dist/{popover.recipes-DJ0AkUan.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
- package/dist/{portal-recipes-DyUXqUtD.js → portal-recipes-BPeS4rGB.js} +2 -2
- package/dist/{portal-recipes-DyUXqUtD.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
- package/dist/primitives-BlC1lXBr.js +447 -0
- package/dist/primitives-BlC1lXBr.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-DZFXXzPs.js → progress-RARK8AjB.js} +5 -5
- package/dist/{progress-DZFXXzPs.js.map → progress-RARK8AjB.js.map} +1 -1
- package/dist/receipt-CUf2Vegp.js +114 -0
- package/dist/receipt-CUf2Vegp.js.map +1 -0
- package/dist/{rich-text-BnTzZjIo.js → rich-text-Cypm9__d.js} +7 -8
- package/dist/{rich-text-BnTzZjIo.js.map → rich-text-Cypm9__d.js.map} +1 -1
- package/dist/rich-text-editor-Z6cQepsA.js +919 -0
- package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
- package/dist/rich-text-tree-DdKHIJx4.js +154 -0
- package/dist/rich-text-tree-DdKHIJx4.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/{scroll-area-Bj6CRUif.js → scroll-area-B9HKbji0.js} +3 -3
- package/dist/{scroll-area-Bj6CRUif.js.map → scroll-area-B9HKbji0.js.map} +1 -1
- package/dist/{separator-DM6gs2vu.js → separator-DaDe26sf.js} +3 -3
- package/dist/separator-DaDe26sf.js.map +1 -0
- package/dist/{separator-B9ewiCGO.js → separator-KGsNXt2J.js} +2 -2
- package/dist/{separator-B9ewiCGO.js.map → separator-KGsNXt2J.js.map} +1 -1
- package/dist/services/actions/action-adapters.d.ts +5 -2
- package/dist/services/actions/index.d.ts +1 -1
- package/dist/services/actions.js +2 -2
- package/dist/services/actions.js.map +1 -1
- package/dist/settings-D5j_RJvT.js +160 -0
- package/dist/settings-D5j_RJvT.js.map +1 -0
- package/dist/sheet-B6j_BE9O.js +241 -0
- package/dist/sheet-B6j_BE9O.js.map +1 -0
- package/dist/{sidebar-CmD6a-HK.js → sidebar-C-iQ_TJP.js} +377 -351
- package/dist/sidebar-C-iQ_TJP.js.map +1 -0
- package/dist/sidebar-D5VO2W8S.js +715 -0
- package/dist/sidebar-D5VO2W8S.js.map +1 -0
- package/dist/{skeleton-DDgdhmu9.js → skeleton-Cab_KgVo.js} +12 -12
- package/dist/skeleton-Cab_KgVo.js.map +1 -0
- package/dist/{smart-card-B6vLxqa_.js → smart-card-C59z6KFO.js} +217 -210
- package/dist/smart-card-C59z6KFO.js.map +1 -0
- package/dist/{structure-DZJ2wbAU.js → structure-DElaQwwN.js} +2 -2
- package/dist/{structure-DZJ2wbAU.js.map → structure-DElaQwwN.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-C8mNycaY.js → surface-recipes-DV6rrOFq.js} +10 -2
- package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
- package/dist/{table-CXSPHH25.js → table-CSRUgpdK.js} +62 -61
- package/dist/table-CSRUgpdK.js.map +1 -0
- package/dist/table-DdXDBsR_.js +1657 -0
- package/dist/table-DdXDBsR_.js.map +1 -0
- package/dist/{tabs-C4Kr_hCr.js → tabs-WnHfV2pM.js} +27 -27
- package/dist/tabs-WnHfV2pM.js.map +1 -0
- package/dist/{text-inputs-jdkS3ReG.js → text-inputs-ljyBYaCd.js} +112 -112
- package/dist/text-inputs-ljyBYaCd.js.map +1 -0
- package/dist/theme.css +21 -5
- package/dist/timelines-mOmS9Eh3.js +479 -0
- package/dist/timelines-mOmS9Eh3.js.map +1 -0
- package/dist/tooltip-yjX-Uv-p.js +112 -0
- package/dist/tooltip-yjX-Uv-p.js.map +1 -0
- package/dist/{tree-CeYVzdFE.js → tree-YpkxUG2Z.js} +80 -72
- package/dist/tree-YpkxUG2Z.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/{typography-C7-YMW1S.js → typography-C0dELqYV.js} +46 -40
- package/dist/typography-C0dELqYV.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
- package/dist/ui-provider-Bu1S-o96.js.map +1 -0
- package/dist/ui-provider.js +2 -2
- package/dist/{upload-Hdm5gObf.js → upload-DMuMYJFT.js} +276 -268
- package/dist/upload-DMuMYJFT.js.map +1 -0
- package/dist/{usage-card-9s8hLDfn.js → usage-card-DDPki5P1.js} +57 -54
- package/dist/usage-card-DDPki5P1.js.map +1 -0
- package/dist/use-controllable-state-BlP8SyBI.js +13 -0
- package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
- package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
- package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
- package/dist/{utils-DhuoqFy4.js → utils-BVbAG2J6.js} +98 -76
- package/dist/utils-BVbAG2J6.js.map +1 -0
- package/dist/value-inputs-h5MwjGCo.js +982 -0
- package/dist/value-inputs-h5MwjGCo.js.map +1 -0
- package/dist/value-typography-D15uwfj-.js +154 -0
- package/dist/value-typography-D15uwfj-.js.map +1 -0
- package/dist/workspace-DIryPqBt.js +400 -0
- package/dist/workspace-DIryPqBt.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +7 -0
- package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
- package/docs/consumer-skill/examples/analytics.tsx +1 -1
- package/docs/consumer-skill/examples/app-layout.tsx +3 -3
- package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
- package/docs/consumer-skill/examples/detail.tsx +3 -2
- package/docs/consumer-skill/examples/email-composer.tsx +1 -1
- package/docs/consumer-skill/examples/index-table.tsx +2 -2
- package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
- package/docs/consumer-skill/references/agents-md.md +20 -16
- package/docs/consumer-skill/references/analytics.md +20 -6
- package/docs/consumer-skill/references/building-views.md +213 -0
- package/docs/consumer-skill/references/catalogue.md +617 -0
- package/docs/consumer-skill/references/component-contracts.json +10202 -18084
- package/docs/consumer-skill/references/composition.md +21 -17
- package/docs/consumer-skill/references/discovery.md +8 -5
- package/docs/consumer-skill/references/installation.md +10 -4
- package/docs/consumer-skill/references/integration.md +5 -5
- package/docs/consumer-skill/references/product-composition.md +2 -2
- package/docs/consumer-skill/references/public-api.json +580 -633
- package/docs/consumer-skill/references/review.md +6 -4
- package/docs/consumer-skill/references/screen-archetypes.md +2 -2
- package/docs/consumer-skill/references/theming.md +1 -1
- package/docs/consumer-skill/references/tokens.json +4 -4
- package/docs/consumer-skill/references/workflows.md +7 -7
- package/docs/consumer-skill/scripts/composition-policy.mjs +40 -20
- package/docs/consumer-skill/scripts/composition.mjs +4 -1
- package/docs/consumer-skill/scripts/discovery.mjs +3 -1
- package/docs/consumer-skill/scripts/setup-skills.mjs +31 -4
- package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
- package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
- package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
- package/package.json +9 -12
- package/templates/README.md +3 -2
- package/templates/admin-shell-template.tsx +49 -9
- package/templates/analytics-operations-template.tsx +20 -24
- package/templates/customers-template.tsx +12 -9
- package/templates/index.ts +2 -8
- package/templates/orders-template.tsx +28 -24
- package/templates/products-template.tsx +14 -4
- package/templates/user-permissions-template.tsx +11 -14
- package/dist/accordion-0tQUZ20r.js.map +0 -1
- package/dist/action-menu-C0gjzLyE.js +0 -284
- package/dist/action-menu-C0gjzLyE.js.map +0 -1
- package/dist/ai-artifact-CGGpQryR.js +0 -1200
- package/dist/ai-artifact-CGGpQryR.js.map +0 -1
- package/dist/anchored-positioning-DPnKTvNs.js +0 -6
- package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
- package/dist/app-shell-EHuuRDGy.js +0 -321
- package/dist/app-shell-EHuuRDGy.js.map +0 -1
- package/dist/auth-B0girIk_.js.map +0 -1
- package/dist/badge-wWauMgAt.js.map +0 -1
- package/dist/base/sheet.js +0 -3
- package/dist/breadcrumbs-Bp9Ke7kd.js.map +0 -1
- package/dist/button-ChBovTx0.js.map +0 -1
- package/dist/buttons-DeW0bQeK.js.map +0 -1
- package/dist/cascader-CrAl9zD5.js +0 -439
- package/dist/cascader-CrAl9zD5.js.map +0 -1
- package/dist/choice-inputs-DHGtx0QV.js.map +0 -1
- package/dist/code-block-BSJyq9e-.js.map +0 -1
- package/dist/collapsible-BzJ91LUG.js +0 -81
- package/dist/collapsible-BzJ91LUG.js.map +0 -1
- package/dist/combobox-Bcvu5J8O.js +0 -363
- package/dist/combobox-Bcvu5J8O.js.map +0 -1
- package/dist/combobox-C2JiSQPc.js +0 -915
- package/dist/combobox-C2JiSQPc.js.map +0 -1
- package/dist/command-9e52NPgK.js +0 -425
- package/dist/command-9e52NPgK.js.map +0 -1
- package/dist/comments-BsgErEqd.js +0 -1174
- package/dist/comments-BsgErEqd.js.map +0 -1
- package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
- package/dist/components/base/display/content-block.d.ts +0 -75
- package/dist/components/base/display/content-block.strings.d.ts +0 -5
- package/dist/components/base/sheet/index.d.ts +0 -29
- package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
- package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -10
- package/dist/components/features/resource/resource.strings.d.ts +0 -12
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
- package/dist/components/features/sync/index.d.ts +0 -26
- package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
- package/dist/components/features/sync/sync.strings.d.ts +0 -18
- package/dist/components/features/sync/sync.types.d.ts +0 -44
- package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
- package/dist/components/ui/slot.d.ts +0 -6
- package/dist/containers-CSdc32h9.js.map +0 -1
- package/dist/data-display-Cmj-xZYl.js.map +0 -1
- package/dist/date-Br0FicVv.js +0 -144
- package/dist/date-Br0FicVv.js.map +0 -1
- package/dist/date-picker-CyQlFYsP.js.map +0 -1
- package/dist/date-pickers-tj2MXmXd.js +0 -185
- package/dist/date-pickers-tj2MXmXd.js.map +0 -1
- package/dist/display-CT_N2a3w.js.map +0 -1
- package/dist/features/sync.js +0 -142
- package/dist/features/sync.js.map +0 -1
- package/dist/feedback-Dzo1xtAU.js +0 -246
- package/dist/feedback-Dzo1xtAU.js.map +0 -1
- package/dist/field-affordance-recipes-D6H7tVJi.js.map +0 -1
- package/dist/field-state-recipes-7sza8QbC.js.map +0 -1
- package/dist/filters-Dl80yYtN.js +0 -2415
- package/dist/filters-Dl80yYtN.js.map +0 -1
- package/dist/focus-recipes-B653VaLq.js.map +0 -1
- package/dist/forms-B3W8CH7-.js.map +0 -1
- package/dist/forms-numeric-CwjQJe-O.js +0 -991
- package/dist/forms-numeric-CwjQJe-O.js.map +0 -1
- package/dist/header-ZIIsRKxP.js.map +0 -1
- package/dist/hooks-BitHSh-Y.js.map +0 -1
- package/dist/http-D_6rOnzU.js.map +0 -1
- package/dist/item-FfWnaYST.js +0 -278
- package/dist/item-FfWnaYST.js.map +0 -1
- package/dist/layout.types-E_GAApzO.js.map +0 -1
- package/dist/media-gallery-C81DAnKI.js +0 -203
- package/dist/media-gallery-C81DAnKI.js.map +0 -1
- package/dist/mentions-qOnedSt4.js +0 -639
- package/dist/mentions-qOnedSt4.js.map +0 -1
- package/dist/metadata-list-XkqZ_UXH.js.map +0 -1
- package/dist/motion-recipes-DitYv6P2.js.map +0 -1
- package/dist/navigation-BgtPJAhi.js +0 -288
- package/dist/navigation-BgtPJAhi.js.map +0 -1
- package/dist/navigation-Bt-v7rWP.js.map +0 -1
- package/dist/number-CYqBcrSj.js +0 -346
- package/dist/number-CYqBcrSj.js.map +0 -1
- package/dist/overlays-CC8zI3Du.js +0 -1017
- package/dist/overlays-CC8zI3Du.js.map +0 -1
- package/dist/page-BoQ1VaFJ.js +0 -331
- package/dist/page-BoQ1VaFJ.js.map +0 -1
- package/dist/pagination-Br8TdV9A.js.map +0 -1
- package/dist/popover-k8TdUcAt.js.map +0 -1
- package/dist/primitives-BkkQjYl7.js +0 -385
- package/dist/primitives-BkkQjYl7.js.map +0 -1
- package/dist/receipt-C7LhOg7Q.js +0 -116
- package/dist/receipt-C7LhOg7Q.js.map +0 -1
- package/dist/rich-text-editor-CAurDwT5.js +0 -1273
- package/dist/rich-text-editor-CAurDwT5.js.map +0 -1
- package/dist/rich-text-editor-toolbar-DbXig7Jk.js +0 -99
- package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +0 -1
- package/dist/rich-text-tree-BqyQ_7-R.js +0 -66
- package/dist/rich-text-tree-BqyQ_7-R.js.map +0 -1
- package/dist/sanitize-html-BWkH4dLM.js +0 -105
- package/dist/sanitize-html-BWkH4dLM.js.map +0 -1
- package/dist/separator-DM6gs2vu.js.map +0 -1
- package/dist/settings-DZPHgpx4.js +0 -155
- package/dist/settings-DZPHgpx4.js.map +0 -1
- package/dist/sheet-C4DHsgLk.js +0 -250
- package/dist/sheet-C4DHsgLk.js.map +0 -1
- package/dist/sidebar-C8BnDwTH.js +0 -709
- package/dist/sidebar-C8BnDwTH.js.map +0 -1
- package/dist/sidebar-CmD6a-HK.js.map +0 -1
- package/dist/skeleton-DDgdhmu9.js.map +0 -1
- package/dist/slot-CLF9kLrS.js +0 -16
- package/dist/slot-CLF9kLrS.js.map +0 -1
- package/dist/smart-card-B6vLxqa_.js.map +0 -1
- package/dist/surface-recipes-C8mNycaY.js.map +0 -1
- package/dist/table-CBonSdTp.js +0 -1584
- package/dist/table-CBonSdTp.js.map +0 -1
- package/dist/table-CXSPHH25.js.map +0 -1
- package/dist/tabs-C4Kr_hCr.js.map +0 -1
- package/dist/text-inputs-jdkS3ReG.js.map +0 -1
- package/dist/timelines-CoPwdJP0.js +0 -458
- package/dist/timelines-CoPwdJP0.js.map +0 -1
- package/dist/tooltip-31NwIpTo.js +0 -113
- package/dist/tooltip-31NwIpTo.js.map +0 -1
- package/dist/tree-CeYVzdFE.js.map +0 -1
- package/dist/typography-C7-YMW1S.js.map +0 -1
- package/dist/ui-provider-C-74NVLc.js.map +0 -1
- package/dist/upload-Hdm5gObf.js.map +0 -1
- package/dist/upload-queue-D0sYPuqo.js +0 -409
- package/dist/upload-queue-D0sYPuqo.js.map +0 -1
- package/dist/usage-card-9s8hLDfn.js.map +0 -1
- package/dist/utils-DhuoqFy4.js.map +0 -1
- package/dist/value-inputs-D3aPgq9H.js +0 -980
- package/dist/value-inputs-D3aPgq9H.js.map +0 -1
- package/dist/value-typography-uSzzG9Gf.js +0 -122
- package/dist/value-typography-uSzzG9Gf.js.map +0 -1
- package/dist/workspace-CC8Vchiu.js +0 -411
- package/dist/workspace-CC8Vchiu.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-DHfeSMAO.js","names":["IconComponent","SidebarMenuBadge","resolveLayoutLinkRenderer","useLayoutLinkRenderer","useMemo","renderLink","toPath","href","isPathMatch","currentPath","currentUrl","path","getCurrentNavigationHref","currentHref","currentPathLength","visit","item","nodes","items","matchesNavigationQuery","query","filterNavigation","children","countNavigationMatches","count","getNavLabel","getNavKey","label","fallbackIndex","NavBadge","value","resolveNavBadge","id","liveBadges","handle","itemBadge","DynamicIcon","props","icon","IconComponent","iconMap","size","renderSidebarLink","active","useActivePath","useCallback","EDITABLE_TARGET","useCommandShortcut","enabled","onTrigger","handler","event","modifier","key","allowInEditable","preventDefault"],"sources":["../src/components/layout/hooks/use-layout-link.tsx","../src/components/layout/sidebar/sidebar.utils.tsx","../src/components/layout/hooks/use-active-path.ts","../src/components/layout/hooks/use-command-shortcut.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport function useLayoutLinkRenderer({\n\trenderLink,\n}: LayoutNavigationAdapter = {}): LayoutLinkRenderer {\n\treturn useMemo(\n\t\t() => resolveLayoutLinkRenderer({ renderLink }),\n\t\t[renderLink],\n\t);\n}\n"," \n/** Sidebar utilities — pure path helpers, labels, icon rendering, badge pill. */\nimport * as React from 'react';\n\nimport { SidebarMenuBadge } from '../../base/sidebar';\n\nimport type { LayoutIconSource, LayoutLinkRenderer } from '../layout.types';\nimport type { SidebarNavItem } from './sidebar.types';\nimport type { ComponentScale } from '../../../lib/component-vocabulary';\n\nexport function toPath(href: string): string {\n\tif (href.startsWith('#/')) {\n\t\treturn href.slice(1).split('?')[0]?.split('#')[0] || '/';\n\t}\n\n\ttry {\n\t\treturn new URL(href, 'http://local.invalid').pathname;\n\t} catch {\n\t\treturn href;\n\t}\n}\n\nexport function isPathMatch(currentUrl: string, path: string): boolean {\n\tconst currentPath = toPath(currentUrl);\n\treturn currentPath === path || currentPath.startsWith(path + '/') || currentPath.startsWith(path + '?');\n}\n\n/** Choose one destination across the whole navigation tree. Prefix matches\n * still open ancestors, but a shorter sibling route is not also current. */\ninterface NavigationPathItem {\n\thref?: string;\n\tchildren?: readonly NavigationPathItem[];\n}\n\nexport function getCurrentNavigationHref(\n\tcurrentUrl: string,\n\titems: readonly NavigationPathItem[],\n): string | undefined {\n\tlet currentHref: string | undefined;\n\tlet currentPathLength = -1;\n\tconst visit = (nodes: readonly NavigationPathItem[]) => {\n\t\tfor (const item of nodes) {\n\t\t\tif (item.href) {\n\t\t\t\tconst path = toPath(item.href);\n\t\t\t\tif (path.length > currentPathLength && isPathMatch(currentUrl, path)) {\n\t\t\t\t\tcurrentHref = item.href;\n\t\t\t\t\tcurrentPathLength = path.length;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (item.children?.length) visit(item.children);\n\t\t}\n\t};\n\tvisit(items);\n\treturn currentHref;\n}\n\nfunction matchesNavigationQuery(item: SidebarNavItem, query: string): boolean {\n\tconst label = typeof item.label === 'string' || typeof item.label === 'number' ? String(item.label) : item.handle ?? '';\n\treturn `${label} ${item.handle ?? ''}`.toLocaleLowerCase().includes(query);\n}\n\n/** Keeps entries whose label or handle matches, and the ancestors that lead to them. `query` is trimmed and lower-cased by the caller. */\nexport function filterNavigation(items: SidebarNavItem[], query: string): SidebarNavItem[] {\n\tif (!query) return items;\n\treturn items.flatMap(item => {\n\t\tif (matchesNavigationQuery(item, query)) return [item];\n\t\tconst children = filterNavigation(item.children ?? [], query);\n\t\treturn children.length ? [{ ...item, children }] : [];\n\t});\n}\n\n/** How many entries match the query themselves, at any depth. */\nexport function countNavigationMatches(items: readonly SidebarNavItem[], query: string): number {\n\tif (!query) return 0;\n\treturn items.reduce((count, item) => count + (matchesNavigationQuery(item, query) ? 1 : 0) + countNavigationMatches(item.children ?? [], query), 0);\n}\n\nexport function getNavLabel(item: Pick<SidebarNavItem, 'label'>): React.ReactNode {\n\treturn item.label;\n}\n\nexport function getNavKey(item: SidebarNavItem, fallbackIndex?: number): React.Key {\n\tconst label = getNavLabel(item);\n\treturn item.id ?? item.handle ?? item.href ?? (typeof label === 'string' || typeof label === 'number' ? label : `nav-${fallbackIndex ?? 0}`);\n}\n\nexport function NavBadge({\n\tvalue,\n\tsize = 'md',\n}: {\n\t/** Current value. Controlled. */\n\tvalue: string | number;\n\t/** Size preset. */\n\tsize?: ComponentScale;\n}) {\n\treturn (\n\t\t<SidebarMenuBadge inline size={size}>\n\t\t\t{value}\n\t\t</SidebarMenuBadge>\n\t);\n}\n\nexport function resolveNavBadge(\n\thandle: string | undefined,\n\titemBadge: string | number | undefined,\n\tliveBadges: Record<string, string | number> | undefined,\n\tid?: string,\n): string | number | undefined {\n\tif (id && liveBadges?.[id] != null) return liveBadges[id];\n\tif (handle && liveBadges && liveBadges[handle] != null) {\n\t\treturn liveBadges[handle];\n\t}\n\treturn itemBadge;\n}\n\nexport interface DynamicIconProps extends React.SVGProps<SVGSVGElement> {\n\t/** Leading glyph. */\n\ticon: LayoutIconSource;\n\t/** Resolves an item's icon name to a component, keeping navigation data serialisable. */\n\ticonMap?: Record<string, React.ComponentType<{ className?: string }>>;\n\t/** Size preset. */\n\tsize?: number;\n\tclassName?: string;\n}\n\nexport function DynamicIcon({\n\ticon,\n\ticonMap = {},\n\tsize = 20,\n\tclassName = 'size-icon',\n\t...props\n}: DynamicIconProps) {\n\tif (!icon) return null;\n\n\tif (typeof icon === 'string') {\n\t\tconst IconComponent = iconMap[icon];\n\t\treturn IconComponent ? <IconComponent className={className} /> : null;\n\t}\n\n\tif (\n\t\ttypeof icon === 'function'\n\t\t|| (typeof icon === 'object' && icon !== null && '$$typeof' in icon)\n\t) {\n\t\tconst IconComponent = icon as React.ElementType<React.SVGProps<SVGSVGElement>>;\n\t\treturn <IconComponent className={className} width={size} height={size} {...props} />;\n\t}\n\n\treturn null;\n}\n\nexport function renderSidebarLink(\n\trenderLink: LayoutLinkRenderer,\n\titem: SidebarNavItem,\n\tchildren: React.ReactNode,\n\tclassName?: string,\n\tactive?: boolean,\n) {\n\treturn renderLink({\n\t\thref: item.href,\n\t\tchildren,\n\t\tclassName,\n\t\tactive,\n\t\t'aria-current': active ? 'page' : undefined,\n\t\tdisabled: item.disabled || !item.href,\n\t\texternal: item.external,\n\t});\n}\n","import { useCallback } from 'react';\n\nimport { isPathMatch, toPath } from '../sidebar/sidebar.utils';\n\nexport function useActivePath(currentUrl = '/') {\n\treturn useCallback(\n\t\t(href?: string) => !!href && isPathMatch(currentUrl, toPath(href)),\n\t\t[currentUrl],\n\t);\n}\n","import { useEffect } from 'react';\n\nexport interface UseCommandShortcutOptions {\n\tkey: string;\n\tenabled?: boolean;\n\tonTrigger?: () => void;\n\tpreventDefault?: boolean;\n\t/** Modifier that must be held: `mod` accepts Meta or Control. @default 'mod' */\n\tmodifier?: 'mod' | 'meta' | 'control';\n\t/** Also fires while focus is in a field, an editor or an open menu, listbox or dialog. @default false */\n\tallowInEditable?: boolean;\n}\n\n/** Targets that own their keyboard input: typing surfaces and open composite widgets. */\nconst EDITABLE_TARGET = 'input,textarea,select,[contenteditable]:not([contenteditable=\"false\"]),[role=\"textbox\"],[role=\"dialog\"],[role=\"alertdialog\"],[role=\"menu\"],[role=\"listbox\"]';\n\n/**\n * Binds one Meta/Control shortcut on the document. It stays out of the way of\n * typing: fields, editors and open menus keep the key, and so do key repeats,\n * Shift/Alt chords and events another handler already took.\n */\nexport function useCommandShortcut({\n\tkey,\n\tenabled = true,\n\tonTrigger,\n\tpreventDefault = true,\n\tmodifier = 'mod',\n\tallowInEditable = false,\n}: UseCommandShortcutOptions) {\n\tuseEffect(() => {\n\t\tif (!enabled || !onTrigger || typeof document === 'undefined') return;\n\n\t\tconst handler = (event: KeyboardEvent) => {\n\t\t\tif (event.defaultPrevented || event.repeat || event.altKey || event.shiftKey) return;\n\t\t\tconst held = modifier === 'meta'\n\t\t\t\t? event.metaKey && !event.ctrlKey\n\t\t\t\t: modifier === 'control'\n\t\t\t\t\t? event.ctrlKey && !event.metaKey\n\t\t\t\t\t: event.metaKey || event.ctrlKey;\n\t\t\tif (!held) return;\n\t\t\tif (event.key.toLowerCase() !== key.toLowerCase()) return;\n\t\t\tif (!allowInEditable) {\n\t\t\t\tconst target = event.target instanceof Element ? event.target : document.activeElement;\n\t\t\t\tif (target?.closest(EDITABLE_TARGET)) return;\n\t\t\t}\n\t\t\tif (preventDefault) event.preventDefault();\n\t\t\tonTrigger();\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handler);\n\t\treturn () => document.removeEventListener('keydown', handler);\n\t}, [allowInEditable, enabled, key, modifier, onTrigger, preventDefault]);\n}\n"],"mappings":";;;;;;AAQA,SAAgBG,EAAsB,EACrC,kBAC4B,CAAC,GAAuB;CACpD,OAAOC,QACAF,EAA0B,EAAE,cAAW,CAAC,GAC9C,CAACG,CAAU,CACZ;AACD;;;ACLA,SAAgBC,EAAO,GAAsB;CAC5C,IAAIC,EAAK,WAAW,IAAI,GACvB,OAAOA,EAAK,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM;CAGtD,IAAI;EACH,OAAO,IAAI,IAAIA,GAAM,sBAAsB,CAAC,CAAC;CAC9C,QAAQ;EACP,OAAOA;CACR;AACD;AAEA,SAAgBC,EAAY,GAAoB,GAAuB;CACtE,IAAMC,IAAcH,EAAOI,CAAU;CACrC,OAAOD,MAAgBE,KAAQF,EAAY,WAAWE,IAAO,GAAG,KAAKF,EAAY,WAAWE,IAAO,GAAG;AACvG;AASA,SAAgBC,EACf,GACA,GACqB;CACrB,IAAIC,GACAC,IAAoB,IAClBC,KAAS,MAAyC;EACvD,KAAK,IAAMC,KAAQC,GAAO;GACzB,IAAID,EAAK,MAAM;IACd,IAAML,IAAOL,EAAOU,EAAK,IAAI;IAC7B,AAAIL,EAAK,SAASG,KAAqBN,EAAYE,GAAYC,CAAI,MAClE,IAAcK,EAAK,MACnB,IAAoBL,EAAK;GAE3B;GACA,AAAIK,EAAK,UAAU,UAAQD,EAAMC,EAAK,QAAQ;EAC/C;CACD;CAEA,OADAD,EAAMG,CAAK,GACJL;AACR;AAEA,SAASM,EAAuB,GAAsB,GAAwB;CAE7E,OAAO,GADO,OAAOH,EAAK,SAAU,YAAY,OAAOA,EAAK,SAAU,WAAW,OAAOA,EAAK,KAAK,IAAIA,EAAK,UAAU,GACrG,GAAGA,EAAK,UAAU,KAAK,kBAAkB,CAAC,CAAC,SAASI,CAAK;AAC1E;AAGA,SAAgBC,EAAiB,GAAyB,GAAiC;CAE1F,OADKD,IACEF,EAAM,SAAQ,MAAQ;EAC5B,IAAIC,EAAuBH,GAAMI,CAAK,GAAG,OAAO,CAACJ,CAAI;EACrD,IAAMM,IAAWD,EAAiBL,EAAK,YAAY,CAAC,GAAGI,CAAK;EAC5D,OAAOE,EAAS,SAAS,CAAC;GAAE,GAAGN;GAAM;EAAS,CAAC,IAAI,CAAC;CACrD,CAAC,IALkBE;AAMpB;AAGA,SAAgBK,EAAuB,GAAkC,GAAuB;CAE/F,OADKH,IACEF,EAAM,QAAQ,GAAO,MAASM,IAAS,KAAuBR,GAAMI,CAAK,IAAaG,EAAuBP,EAAK,YAAY,CAAC,GAAGI,CAAK,GAAG,CAAC,IAD/H;AAEpB;AAEA,SAAgBK,EAAY,GAAsD;CACjF,OAAOT,EAAK;AACb;AAEA,SAAgBU,EAAU,GAAsB,GAAmC;CAClF,IAAMC,IAAQF,EAAYT,CAAI;CAC9B,OAAOA,EAAK,MAAMA,EAAK,UAAUA,EAAK,SAAS,OAAOW,KAAU,YAAY,OAAOA,KAAU,WAAWA,IAAQ,OAAOC,KAAiB;AACzI;AAEA,SAAgBC,EAAS,EACxB,UACA,UAAO,QAML;CACF,OACC,kBAAC5B,GAAD;EAAkB,QAAA;EAAa;EAC7B,UAAA6B;CACgB,CAAA;AAEpB;AAEA,SAAgBC,EACf,GACA,GACA,GACA,GAC8B;CAK9B,OAJIC,KAAMC,IAAaD,MAAO,OAAaC,EAAWD,KAClDE,KAAUD,KAAcA,EAAWC,MAAW,OAC1CD,EAAWC,KAEZC;AACR;AAYA,SAAgBC,EAAY,EAC3B,SACA,aAAU,CAAC,GACX,UAAO,IACP,eAAY,aACZ,GAAGC,KACiB;CACpB,IAAI,CAACC,GAAM,OAAO;CAElB,IAAI,OAAOA,KAAS,UAAU;EAC7B,IAAMC,IAAgBC,EAAQF;EAC9B,OAAOC,IAAgB,kBAACA,GAAD,EAA0B,aAAY,CAAA,IAAI;CAClE;CAUA,OAPC,OAAOD,KAAS,cACZ,OAAOA,KAAS,YAAYA,KAAiB,cAAcA,IAGxD,kBAACtC,GAAD;EAA0B;EAAW,OAAOyC;EAAM,QAAQA;EAAM,GAAIJ;CAAQ,CAAA,IAG7E;AACR;AAEA,SAAgBK,EACf,GACA,GACA,GACA,GACA,GACC;CACD,OAAOrC,EAAW;EACjB,MAAMW,EAAK;EACX;EACA;EACA;EACA,gBAAgB2B,IAAS,SAAS,KAAA;EAClC,UAAU3B,EAAK,YAAY,CAACA,EAAK;EACjC,UAAUA,EAAK;CAChB,CAAC;AACF;;;AClKA,SAAgB4B,EAAc,IAAa,KAAK;CAC/C,OAAOC,GACL,MAAkB,CAAC,CAACtC,KAAQC,EAAYE,GAAYJ,EAAOC,CAAI,CAAC,GACjE,CAACG,CAAU,CACZ;AACD;;;ACKA,IAAMoC,IAAkB;AAOxB,SAAgBC,EAAmB,EAClC,QACA,aAAU,IACV,cACA,oBAAiB,IACjB,cAAW,OACX,qBAAkB,MACW;CAC7B,QAAgB;EACf,IAAI,CAACC,KAAW,CAACC,KAAa,OAAO,WAAa,KAAa;EAE/D,IAAMC,KAAW,MAAyB;GACzC,AAAIC,EAAM,oBAAoBA,EAAM,UAAUA,EAAM,UAAUA,EAAM,aACvDC,MAAa,SACvBD,EAAM,WAAW,CAACA,EAAM,UACxBC,MAAa,YACZD,EAAM,WAAW,CAACA,EAAM,UACxBA,EAAM,WAAWA,EAAM,YAEvBA,EAAM,IAAI,YAAY,MAAME,EAAI,YAAY,MAC3CC,KACW,EAAAH,EAAM,kBAAkB,UAAUA,EAAM,SAAS,SAAS,cAAA,EAC7D,QAAQL,CAAe,OAEhCS,KAAgBJ,EAAM,eAAe,GACzCF,EAAU;EACX;EAGA,OADA,SAAS,iBAAiB,WAAWC,CAAO,SAC/B,SAAS,oBAAoB,WAAWA,CAAO;CAC7D,GAAG;EAACI;EAAiBN;EAASK;EAAKD;EAAUH;EAAWM;CAAc,CAAC;AACxE"}
|
|
@@ -76,11 +76,33 @@ function l(e) {
|
|
|
76
76
|
return r(c(s(e)));
|
|
77
77
|
}
|
|
78
78
|
function u(e) {
|
|
79
|
-
|
|
79
|
+
if (e.type === "text") return e.value;
|
|
80
|
+
if (e.type !== "root" && e.type !== "element") return "";
|
|
81
|
+
let t = () => e.children.map(u).join("");
|
|
82
|
+
if (e.type === "root") return t();
|
|
83
|
+
let { tagName: n, properties: r } = e;
|
|
84
|
+
if (n === "br") return "\n";
|
|
85
|
+
if (n === "img") return typeof r.alt == "string" ? r.alt : "";
|
|
86
|
+
if (n === "ul" || n === "ol") {
|
|
87
|
+
let t = Math.trunc(Number(r.start) || 1);
|
|
88
|
+
return e.children.map((e) => {
|
|
89
|
+
if (e.type !== "element" || e.tagName !== "li") return e.type === "text" && !e.value.trim() ? "" : u(e);
|
|
90
|
+
let r = n === "ol" ? `${t++}. ` : "- ";
|
|
91
|
+
return `${r}${e.children.map(u).join("").replace(/^\n+|\n+$/g, "").replace(/\n/g, `\n${" ".repeat(r.length)}`)}\n`;
|
|
92
|
+
}).join("");
|
|
93
|
+
}
|
|
94
|
+
let i = t();
|
|
95
|
+
if (n === "a") {
|
|
96
|
+
let e = typeof r.href == "string" ? r.href : "", t = e.replace(/^mailto:/i, ""), n = i.trim();
|
|
97
|
+
return !t || n === e || n === t ? i : n ? `${i} (${t})` : t;
|
|
98
|
+
}
|
|
99
|
+
return i + (/^(p|div|li|h[1-6]|tr|blockquote|pre)$/.test(n) ? "\n" : "");
|
|
80
100
|
}
|
|
81
|
-
//#endregion
|
|
82
|
-
//#region src/components/features/email-composer/strings.ts
|
|
83
101
|
var d = {
|
|
102
|
+
confirmCloseTitle: "Discard this draft?",
|
|
103
|
+
confirmCloseDescription: "Your unsent changes will be lost.",
|
|
104
|
+
confirmCloseConfirm: "Discard draft",
|
|
105
|
+
confirmCloseCancel: "Keep editing",
|
|
84
106
|
toolbar: e.toolbar,
|
|
85
107
|
title: "New message",
|
|
86
108
|
to: "To",
|
|
@@ -147,20 +169,20 @@ var d = {
|
|
|
147
169
|
unsupportedNode: (e) => `Unsupported document node: ${e}`,
|
|
148
170
|
renderError: "Unable to render the message.",
|
|
149
171
|
errorTitle: "Message could not be completed"
|
|
150
|
-
}, f = {
|
|
172
|
+
}, f = (e) => `Email request failed (${e}).`, p = {
|
|
151
173
|
type: "doc",
|
|
152
174
|
content: [{ type: "paragraph" }]
|
|
153
|
-
},
|
|
175
|
+
}, m = (e) => e.replace(/[&<>"']/g, (e) => ({
|
|
154
176
|
"&": "&",
|
|
155
177
|
"<": "<",
|
|
156
178
|
">": ">",
|
|
157
179
|
"\"": """,
|
|
158
180
|
"'": "'"
|
|
159
181
|
})[e]);
|
|
160
|
-
function
|
|
161
|
-
let n = () => (e.content ?? []).map((e) =>
|
|
182
|
+
function h(e, t = d) {
|
|
183
|
+
let n = () => (e.content ?? []).map((e) => h(e, t)).join("");
|
|
162
184
|
if (e.type === "text" || e.type === "placeholderToken") {
|
|
163
|
-
let n =
|
|
185
|
+
let n = m(String(e.attrs?.key ?? "")), r = e.type === "text" ? m(e.text ?? "") : `<span data-placeholder="${n}">{{${n}}}</span>`;
|
|
164
186
|
for (let n of e.marks ?? []) {
|
|
165
187
|
let e = {
|
|
166
188
|
bold: "strong",
|
|
@@ -170,7 +192,7 @@ function m(e, t = d) {
|
|
|
170
192
|
code: "code"
|
|
171
193
|
};
|
|
172
194
|
if (e[n.type]) r = `<${e[n.type]}>${r}</${e[n.type]}>`;
|
|
173
|
-
else if (n.type === "link") r = `<a href="${
|
|
195
|
+
else if (n.type === "link") r = `<a href="${m(String(n.attrs?.href ?? ""))}">${r}</a>`;
|
|
174
196
|
else throw Error(t.unsupportedNode(n.type));
|
|
175
197
|
}
|
|
176
198
|
return r;
|
|
@@ -194,28 +216,32 @@ function m(e, t = d) {
|
|
|
194
216
|
if (!e.type || !r[e.type]) throw Error(t.unsupportedNode(e.type ?? "unknown"));
|
|
195
217
|
return `<${r[e.type]}>${n()}</${r[e.type]}>`;
|
|
196
218
|
}
|
|
197
|
-
function
|
|
198
|
-
return l(
|
|
219
|
+
function g(e, t = d) {
|
|
220
|
+
return l(_(e, t));
|
|
199
221
|
}
|
|
200
|
-
function
|
|
201
|
-
return e.kind === "html" ? e.html : e.kind === "text" ? `<p>${
|
|
222
|
+
function _(e, t) {
|
|
223
|
+
return e.kind === "html" ? e.html : e.kind === "text" ? `<p>${m(e.text).replace(/\n/g, "<br>")}</p>` : h(e.document, t);
|
|
202
224
|
}
|
|
203
225
|
//#endregion
|
|
204
226
|
//#region src/components/features/email-composer/engine.ts
|
|
205
|
-
var
|
|
206
|
-
function
|
|
227
|
+
var v = /\{\{([a-zA-Z0-9_.-]+)\}\}/g;
|
|
228
|
+
function y(e, t, n, r) {
|
|
207
229
|
let i = Object.create(null);
|
|
208
230
|
for (let a of Object.keys(n)) {
|
|
209
|
-
let o = Object.hasOwn(e.placeholderOverrides, a) ? e.placeholderOverrides[a] : void 0
|
|
210
|
-
|
|
231
|
+
let o = Object.hasOwn(e.placeholderOverrides, a) ? e.placeholderOverrides[a] : void 0, s = [
|
|
232
|
+
n[a].resolve(t),
|
|
233
|
+
r?.defaults?.[a],
|
|
234
|
+
n[a].fallback
|
|
235
|
+
];
|
|
236
|
+
i[a] = o === void 0 ? s.find((e) => e != null && e !== "") ?? s.find((e) => e != null) ?? null : o;
|
|
211
237
|
}
|
|
212
238
|
return i;
|
|
213
239
|
}
|
|
214
|
-
function
|
|
215
|
-
let o =
|
|
240
|
+
function b(e, t, n, i, a = d) {
|
|
241
|
+
let o = y(e, t, n, i), l = /* @__PURE__ */ new Set(), f = (e) => {
|
|
216
242
|
let t = Object.hasOwn(o, e) ? o[e] : null;
|
|
217
243
|
return t == null || t === "" ? (l.add(e), `{{${e}}}`) : String(t);
|
|
218
|
-
}, p = e.subject.replace(
|
|
244
|
+
}, p = e.subject.replace(v, (e, t) => f(t)), m = s(_(e.body, a));
|
|
219
245
|
function h(e) {
|
|
220
246
|
if (e.type === "element") {
|
|
221
247
|
for (let [t, n] of Object.entries(e.properties)) if (t !== "dataPlaceholder" && typeof n == "string" && n.includes("{{")) throw Error(a.attributeVariables);
|
|
@@ -225,28 +251,28 @@ function y(e, t, n, i, a = d) {
|
|
|
225
251
|
value: f(String(e.properties.dataPlaceholder))
|
|
226
252
|
} : e.type === "text" ? {
|
|
227
253
|
...e,
|
|
228
|
-
value: e.value.replace(
|
|
254
|
+
value: e.value.replace(v, (e, t) => f(t))
|
|
229
255
|
} : (h(e), e)));
|
|
230
256
|
}
|
|
231
257
|
h(m);
|
|
232
258
|
for (let e of Object.keys(n)) n[e]?.required && (o[e] == null || o[e] === "") && l.add(e);
|
|
233
259
|
for (let e of i?.requiredPlaceholders ?? []) (o[e] == null || o[e] === "") && l.add(e);
|
|
234
|
-
let
|
|
260
|
+
let g = c(m);
|
|
235
261
|
return {
|
|
236
262
|
email: {
|
|
237
263
|
to: structuredClone(e.to),
|
|
238
264
|
cc: structuredClone(e.cc),
|
|
239
265
|
bcc: structuredClone(e.bcc),
|
|
240
266
|
subject: p,
|
|
241
|
-
html: r(
|
|
242
|
-
text: u(
|
|
267
|
+
html: r(g),
|
|
268
|
+
text: u(g).trim(),
|
|
243
269
|
templateId: e.templateId,
|
|
244
270
|
resolvedPlaceholders: o
|
|
245
271
|
},
|
|
246
272
|
unresolved: [...l]
|
|
247
273
|
};
|
|
248
274
|
}
|
|
249
|
-
function
|
|
275
|
+
function x(e, t, n, r, i = d) {
|
|
250
276
|
let a = [], o, s = "";
|
|
251
277
|
e.to.length || a.push({
|
|
252
278
|
field: "to",
|
|
@@ -265,13 +291,13 @@ function b(e, t, n, r, i = d) {
|
|
|
265
291
|
message: i.invalidSubject
|
|
266
292
|
});
|
|
267
293
|
try {
|
|
268
|
-
let s =
|
|
294
|
+
let s = b(e, t, n, r, i);
|
|
269
295
|
o = s, s.email.text.trim() || a.push({
|
|
270
296
|
field: "body",
|
|
271
297
|
message: i.emptyBody
|
|
272
298
|
}), s.unresolved.length && a.push({
|
|
273
299
|
field: "placeholders",
|
|
274
|
-
message: i.missingVariables(s.unresolved)
|
|
300
|
+
message: i.missingVariables(s.unresolved.map((e) => (Object.hasOwn(n, e) ? n[e]?.label : void 0) ?? e))
|
|
275
301
|
}), (!s.email.subject.trim() || /[\r\n]/.test(s.email.subject)) && !a.some((e) => e.field === "subject") && a.push({
|
|
276
302
|
field: "subject",
|
|
277
303
|
message: i.invalidResolvedSubject
|
|
@@ -288,13 +314,13 @@ function b(e, t, n, r, i = d) {
|
|
|
288
314
|
issues: a
|
|
289
315
|
};
|
|
290
316
|
}
|
|
291
|
-
function
|
|
292
|
-
return
|
|
317
|
+
function S(e, t, n, r, i = d) {
|
|
318
|
+
return x(e, t, n, r, i).issues;
|
|
293
319
|
}
|
|
294
|
-
function
|
|
320
|
+
function C(e) {
|
|
295
321
|
return e.name ? `${e.name} <${e.email}>` : e.email;
|
|
296
322
|
}
|
|
297
|
-
function
|
|
323
|
+
function w(e) {
|
|
298
324
|
let t = e.trim().match(/^(.*?)\s*<([^<>]+)>$/);
|
|
299
325
|
return t ? {
|
|
300
326
|
name: t[1].trim(),
|
|
@@ -303,7 +329,7 @@ function C(e) {
|
|
|
303
329
|
}
|
|
304
330
|
//#endregion
|
|
305
331
|
//#region src/components/features/email-composer/http.ts
|
|
306
|
-
function
|
|
332
|
+
function T(e, t = {}) {
|
|
307
333
|
return async (n) => {
|
|
308
334
|
let r = await fetch(e, {
|
|
309
335
|
method: "POST",
|
|
@@ -316,7 +342,7 @@ function w(e, t = {}) {
|
|
|
316
342
|
signal: AbortSignal.timeout(t.timeoutMs ?? 3e4)
|
|
317
343
|
});
|
|
318
344
|
if (!r.ok) {
|
|
319
|
-
let e =
|
|
345
|
+
let e = (t.formatError ?? f)(r.status);
|
|
320
346
|
try {
|
|
321
347
|
let t = await r.json();
|
|
322
348
|
t && typeof t == "object" && "message" in t && typeof t.message == "string" && (e = t.message);
|
|
@@ -326,6 +352,6 @@ function w(e, t = {}) {
|
|
|
326
352
|
};
|
|
327
353
|
}
|
|
328
354
|
//#endregion
|
|
329
|
-
export {
|
|
355
|
+
export { b as a, g as c, C as i, p as l, x as n, y as o, w as r, S as s, T as t, d as u };
|
|
330
356
|
|
|
331
|
-
//# sourceMappingURL=http-
|
|
357
|
+
//# sourceMappingURL=http-Cu-GPpss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-Cu-GPpss.js","names":["defaultRichTextEditorStrings","schema","styleProperties","cleanProperties","node","key","value","style","split","declaration","name","parseEmailHtml","fromHtml","html","sanitizeEmailTree","cleaned","sanitize","tree","sanitizeEmailHtml","toHtml","emailHtmlText","children","tagName","properties","number","child","marker","text","href","destination","label","defaultEmailComposerStrings","field","index","email","names","id","defaultEmailRequestFailed","status","emptyDocument","escapeEmailHtml","char","documentHtml","content","strings","mark","tags","level","bodyHtml","bodyMarkup","body","tokens","resolveValues","values","definitions","override","draft","sources","context","template","renderEmail","unresolved","get","subject","visit","clean","inspectDraft","issues","rendered","renderError","r","result","issue","error","validate","recipientLabel","recipient","parseRecipient","match","createHttpSender","response","endpoint","options","message"],"sources":["../src/components/features/email-composer/email-html.ts","../src/components/features/email-composer/strings.ts","../src/components/features/email-composer/document.ts","../src/components/features/email-composer/engine.ts","../src/components/features/email-composer/http.ts"],"sourcesContent":["import { fromHtml } from 'hast-util-from-html';\nimport { sanitize, type Schema } from 'hast-util-sanitize';\nimport { toHtml } from 'hast-util-to-html';\nimport type { Root, RootContent } from 'hast';\nconst tags = ['a', 'b', 'blockquote', 'br', 'code', 'del', 'div', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'li', 'mark', 'ol', 'p', 'pre', 's', 'span', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'th', 'thead', 'tfoot', 'tr', 'u', 'ul'];\nconst schema: Schema = {\n\ttagNames: tags, attributes: { '*': ['style', 'align', 'width', 'height'], a: ['href', 'title'], img: ['src', 'alt', 'title'], span: ['dataPlaceholder'], ol: ['start'], td: ['colSpan', 'rowSpan'], th: ['colSpan', 'rowSpan'], table: ['cellPadding', 'cellSpacing', 'border'] },\n\tprotocols: { href: ['https', 'http', 'mailto'], src: ['https'] },\n\tstrip: ['script', 'style', 'iframe', 'object', 'embed', 'svg', 'math', 'template', 'form', 'input', 'button'],\n};\n// Email content has its own small allowlist; admin UI theme styles never enter it.\nconst styleProperties = new Set(['color', 'background', 'background-color', 'border', 'border-top', 'border-right', 'border-bottom', 'border-left', 'border-color', 'border-width', 'border-style', 'border-collapse', 'border-spacing', 'border-radius', 'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', 'width', 'max-width', 'min-width', 'height', 'font-family', 'font-size', 'font-weight', 'font-style', 'line-height', 'text-align', 'text-decoration', 'vertical-align', 'white-space']);\nfunction cleanProperties(node: Root | RootContent): void {\n\tif (node.type === 'element') {\n\t\tfor (const key of ['href', 'src']) {\n\t\t\tconst value = node.properties[key];\n\t\t\tif (typeof value === 'string' && (value.trimStart().startsWith('//') || (key === 'src' && !/^https:\\/\\//i.test(value))))\n\t\t\t\tdelete node.properties[key];\n\t\t}\n\t\tconst style = node.properties.style;\n\t\tif (typeof style === 'string') {\n\t\t\tnode.properties.style = style.split(';').flatMap(declaration => {\n\t\t\t\tconst split = declaration.indexOf(':');\n\t\t\t\tconst name = declaration.slice(0, split).trim().toLowerCase();\n\t\t\t\tconst value = declaration.slice(split + 1).trim();\n\t\t\t\treturn split > 0 && styleProperties.has(name) && value && /^[\\w\\s#%.,()'\"+/-]+$/.test(value) && !/url\\s*\\(|expression|@|javascript|var\\s*\\(/i.test(value) ? [`${name}:${value}`] : [];\n\t\t\t}).join(';');\n\t\t\tif (!node.properties.style)\n\t\t\t\tdelete node.properties.style;\n\t\t}\n\t}\n\tif (node.type === 'root' || node.type === 'element')\n\t\tnode.children.forEach(cleanProperties);\n}\nexport function parseEmailHtml(html: string): Root { return fromHtml(html, { fragment: true }); }\nexport function sanitizeEmailTree(tree: Root): Root {\n\tconst cleaned = sanitize(tree, schema);\n\tif (cleaned.type !== 'root')\n\t\tthrow new Error('Expected an HTML document fragment.');\n\tcleanProperties(cleaned);\n\treturn cleaned;\n}\nexport function sanitizeEmailHtml(html: string): string { return toHtml(sanitizeEmailTree(parseEmailHtml(html))); }\n/**\n * Plain-text part of a prepared email. A link keeps its destination after the\n * label, list items keep their bullet or number, and an image contributes its\n * description, so a text-only reader can still follow the message.\n */\nexport function emailHtmlText(tree: Root | RootContent): string {\n\tif (tree.type === 'text')\n\t\treturn tree.value;\n\tif (tree.type !== 'root' && tree.type !== 'element')\n\t\treturn '';\n\tconst children = () => tree.children.map(emailHtmlText).join('');\n\tif (tree.type === 'root')\n\t\treturn children();\n\tconst { tagName, properties } = tree;\n\tif (tagName === 'br')\n\t\treturn '\\n';\n\tif (tagName === 'img')\n\t\treturn typeof properties.alt === 'string' ? properties.alt : '';\n\tif (tagName === 'ul' || tagName === 'ol') {\n\t\tlet number = Math.trunc(Number(properties.start) || 1);\n\t\treturn tree.children.map(child => {\n\t\t\tif (child.type !== 'element' || child.tagName !== 'li')\n\t\t\t\treturn child.type === 'text' && !child.value.trim() ? '' : emailHtmlText(child);\n\t\t\tconst marker = tagName === 'ol' ? `${number++}. ` : '- ';\n\t\t\tconst item = child.children.map(emailHtmlText).join('').replace(/^\\n+|\\n+$/g, '');\n\t\t\treturn `${marker}${item.replace(/\\n/g, `\\n${' '.repeat(marker.length)}`)}\\n`;\n\t\t}).join('');\n\t}\n\tconst text = children();\n\tif (tagName === 'a') {\n\t\tconst href = typeof properties.href === 'string' ? properties.href : '';\n\t\tconst destination = href.replace(/^mailto:/i, '');\n\t\tconst label = text.trim();\n\t\tif (!destination || label === href || label === destination)\n\t\t\treturn text;\n\t\treturn label ? `${text} (${destination})` : destination;\n\t}\n\treturn text + (/^(p|div|li|h[1-6]|tr|blockquote|pre)$/.test(tagName) ? '\\n' : '');\n}\n","import { defaultRichTextEditorStrings } from '../rich-text-editor/rich-text-editor.strings';\n/** Copy for the `confirmClose` confirmation. Optional in `EmailComposerStrings`, so existing complete dictionaries stay valid. */\nconst confirmCloseStrings = {\n\tconfirmCloseTitle: 'Discard this draft?', confirmCloseDescription: 'Your unsent changes will be lost.',\n\tconfirmCloseConfirm: 'Discard draft', confirmCloseCancel: 'Keep editing',\n};\nexport const defaultEmailComposerStrings = {\n\t...confirmCloseStrings,\n\ttoolbar: defaultRichTextEditorStrings.toolbar,\n\ttitle: 'New message', to: 'To', cc: 'Cc', bcc: 'Bcc', subject: 'Subject', body: 'Message body',\n\trecipientPlaceholder: 'Name <email@example.com>', addRecipient: (field: string) => `Add ${field} recipient`,\n\trecipientLabel: (field: string, index: number) => `${field} recipient ${index + 1}`,\n\tremoveRecipient: (email: string) => `Remove ${email}`, newRecipient: (field: string) => `New ${field} recipient`,\n\ttemplates: 'Templates', searchTemplates: 'Search templates…', noTemplates: 'No templates found.', importTemplate: 'Import template',\n\ttemplatesUnavailable: 'Templates are unavailable. Wait for loading to finish or retry.', loadingTemplates: 'Loading templates…', loadingVariables: 'Loading variables…', loadingRecipients: (field: string) => `Loading ${field} recipients…`, retry: 'Retry', dataUnavailable: 'Wait for required recipient and variable data to finish loading, or retry the failed request.',\n\tvariables: 'Variables', variablesDescription: 'Insert a variable into the message, or override its live value for this draft.', insertVariable: (label: string) => `Insert ${label}`, reset: 'Reset', dynamic: 'Dynamic value', overridden: 'Manual override',\n\tchoose: 'Choose…', editor: 'Editor', preview: 'Preview', previewLabel: 'Email body preview',\n\tsend: 'Send email', discard: 'Discard', working: 'Working…', sent: 'Email sent successfully.', discarded: 'Draft discarded.', close: 'Close composer', more: 'More actions',\n\tlink: 'Add or edit link', linkTitle: 'Message link', linkUrl: 'Link URL', closeLink: 'Close link editor', closeConversion: 'Close conversion confirmation', apply: 'Apply', cancel: 'Cancel',\n\tinvalidLink: 'Use an https://, http://, or mailto: URL.', convert: 'Convert to editable rich text',\n\tconvertTitle: 'Convert HTML layout?', convertDescription: 'Unsupported layout elements and styling may be lost when converting to rich text.',\n\tmissingRecipient: 'Add at least one recipient.', invalidRecipients: (field: string) => `Check ${field} addresses.`,\n\tinvalidSubject: 'Enter a single-line subject.', invalidResolvedSubject: 'Resolved subject must be a nonempty single line.', emptyBody: 'Enter a message.',\n\t/** Receives each missing variable's label, or its key when the token has no definition. */\n\tmissingVariables: (names: readonly string[]) => `Set values for: ${names.join(', ')}.`,\n\tattributeVariables: 'Placeholders in HTML attributes are unsupported. Put placeholders in visible text.',\n\tunknownVariable: (key: string) => `Unknown placeholder: ${key}`, duplicateVariable: (key: string) => `Duplicate placeholder: ${key}`,\n\tunknownTemplate: (id: string) => `Unknown template: ${id}`, duplicateTemplate: 'Template IDs must be unique.',\n\teditableRequired: 'Use editable rich text for this operation.', editorNotReady: 'Editor is not ready.',\n\tunsupportedNode: (node: string) => `Unsupported document node: ${node}`, renderError: 'Unable to render the message.',\n\terrorTitle: 'Message could not be completed',\n};\nexport type EmailComposerStrings = Omit<typeof defaultEmailComposerStrings, keyof typeof confirmCloseStrings> & Partial<typeof confirmCloseStrings>;\n/** Default `createHttpSender` failure message, used when a failed response carries no message of its own. */\nexport const defaultEmailRequestFailed = (status: number): string => `Email request failed (${status}).`;\n","import type { JSONContent } from '@tiptap/react';\nimport type { EmailBody } from './types';\nimport { sanitizeEmailHtml } from './email-html';\nimport { defaultEmailComposerStrings, type EmailComposerStrings } from './strings';\nexport const emptyDocument: JSONContent = { type: 'doc', content: [{ type: 'paragraph' }] };\nexport const escapeEmailHtml = (value: string): string => value.replace(/[&<>\"']/g, char => ({ '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": ''' })[char]!);\nexport function documentHtml(node: JSONContent, strings: EmailComposerStrings = defaultEmailComposerStrings): string {\n\tconst content = () => (node.content ?? []).map(child => documentHtml(child, strings)).join('');\n\tif (node.type === 'text' || node.type === 'placeholderToken') {\n\t\tconst key = escapeEmailHtml(String(node.attrs?.key ?? ''));\n\t\tlet text = node.type === 'text' ? escapeEmailHtml(node.text ?? '') : `<span data-placeholder=\"${key}\">{{${key}}}</span>`;\n\t\tfor (const mark of node.marks ?? []) {\n\t\t\tconst tags: Record<string, string> = { bold: 'strong', italic: 'em', strike: 's', underline: 'u', code: 'code' };\n\t\t\tif (tags[mark.type])\n\t\t\t\ttext = `<${tags[mark.type]}>${text}</${tags[mark.type]}>`;\n\t\t\telse if (mark.type === 'link')\n\t\t\t\ttext = `<a href=\"${escapeEmailHtml(String(mark.attrs?.href ?? ''))}\">${text}</a>`;\n\t\t\telse\n\t\t\t\tthrow new Error(strings.unsupportedNode(mark.type));\n\t\t}\n\t\treturn text;\n\t}\n\tif (node.type === 'doc')\n\t\treturn content();\n\tif (node.type === 'hardBreak')\n\t\treturn '<br>';\n\tif (node.type === 'horizontalRule')\n\t\treturn '<hr>';\n\tif (node.type === 'heading') {\n\t\tconst level = Math.min(6, Math.max(1, Number(node.attrs?.level) || 2));\n\t\treturn `<h${level}>${content()}</h${level}>`;\n\t}\n\tif (node.type === 'codeBlock')\n\t\treturn `<pre><code>${content()}</code></pre>`;\n\tif (node.type === 'orderedList')\n\t\treturn `<ol start=\"${Math.max(1, Math.trunc(Number(node.attrs?.start) || 1))}\">${content()}</ol>`;\n\tconst tags: Record<string, string> = { paragraph: 'p', blockquote: 'blockquote', bulletList: 'ul', orderedList: 'ol', listItem: 'li' };\n\tif (!node.type || !tags[node.type])\n\t\tthrow new Error(strings.unsupportedNode(node.type ?? 'unknown'));\n\treturn `<${tags[node.type]}>${content()}</${tags[node.type]}>`;\n}\nexport function bodyHtml(body: EmailBody, strings: EmailComposerStrings = defaultEmailComposerStrings): string {\n\treturn sanitizeEmailHtml(bodyMarkup(body, strings));\n}\nexport function bodyMarkup(body: EmailBody, strings: EmailComposerStrings): string {\n\treturn body.kind === 'html' ? body.html : body.kind === 'text' ? `<p>${escapeEmailHtml(body.text).replace(/\\n/g, '<br>')}</p>` : documentHtml(body.document, strings);\n}\n","import { toHtml } from 'hast-util-to-html';\nimport type { Root, RootContent } from 'hast';\nimport { bodyMarkup } from './document';\nimport { parseEmailHtml, sanitizeEmailTree, emailHtmlText } from './email-html';\nimport { defaultEmailComposerStrings, type EmailComposerStrings } from './strings';\nimport type { ComposerDraft, ComposerIssue, EmailTemplate, PlaceholderDefinition, PlaceholderValue, PreparedEmail, Recipient } from './types';\nconst tokens = /\\{\\{([a-zA-Z0-9_.-]+)\\}\\}/g;\nexport function resolveValues<C, K extends string>(draft: ComposerDraft<K>, context: C, definitions: Partial<Record<K, PlaceholderDefinition<C>>>, template?: EmailTemplate<K>): Partial<Record<K, PlaceholderValue>> {\n\tconst values: Partial<Record<K, PlaceholderValue>> = Object.create(null);\n\tfor (const key of Object.keys(definitions) as K[]) {\n\t\tconst override = Object.hasOwn(draft.placeholderOverrides, key) ? draft.placeholderOverrides[key] : undefined;\n\t\t// An explicit override is final. Otherwise the first source that has a value wins;\n\t\t// null and an empty string mean \"no value here\", so the next source is tried.\n\t\tconst sources = [definitions[key]!.resolve(context), template?.defaults?.[key], definitions[key]!.fallback];\n\t\tvalues[key] = override !== undefined ? override : sources.find(value => value != null && value !== '') ?? sources.find(value => value != null) ?? null;\n\t}\n\treturn values;\n}\nexport function renderEmail<C, K extends string>(draft: ComposerDraft<K>, context: C, definitions: Partial<Record<K, PlaceholderDefinition<C>>>, template?: EmailTemplate<K>, strings: EmailComposerStrings = defaultEmailComposerStrings): {\n\temail: PreparedEmail<K>;\n\tunresolved: string[];\n} {\n\tconst values = resolveValues(draft, context, definitions, template);\n\tconst unresolved = new Set<string>();\n\tconst get = (key: string) => {\n\t\tconst value = Object.hasOwn(values, key) ? values[key as K] : null;\n\t\tif (value == null || value === '') {\n\t\t\tunresolved.add(key);\n\t\t\treturn `{{${key}}}`;\n\t\t}\n\t\treturn String(value);\n\t};\n\tconst subject = draft.subject.replace(tokens, (_, key: string) => get(key));\n\tconst tree = parseEmailHtml(bodyMarkup(draft.body, strings));\n\tfunction visit(node: Root | RootContent): void {\n\t\tif (node.type === 'element') {\n\t\t\tfor (const [key, value] of Object.entries(node.properties))\n\t\t\t\tif (key !== 'dataPlaceholder' && typeof value === 'string' && value.includes('{{'))\n\t\t\t\t\tthrow new Error(strings.attributeVariables);\n\t\t}\n\t\tif (node.type === 'root' || node.type === 'element')\n\t\t\tnode.children = node.children.map(child => {\n\t\t\t\tif (child.type === 'element' && child.properties.dataPlaceholder !== undefined)\n\t\t\t\t\treturn { type: 'text', value: get(String(child.properties.dataPlaceholder)) };\n\t\t\t\tif (child.type === 'text')\n\t\t\t\t\treturn { ...child, value: child.value.replace(tokens, (_, key: string) => get(key)) };\n\t\t\t\tvisit(child);\n\t\t\t\treturn child;\n\t\t\t});\n\t}\n\tvisit(tree);\n\tfor (const key of Object.keys(definitions) as K[])\n\t\tif (definitions[key]?.required && (values[key] == null || values[key] === ''))\n\t\t\tunresolved.add(key);\n\tfor (const key of template?.requiredPlaceholders ?? [])\n\t\tif (values[key] == null || values[key] === '')\n\t\t\tunresolved.add(key);\n\tconst clean = sanitizeEmailTree(tree);\n\treturn { email: { to: structuredClone(draft.to), cc: structuredClone(draft.cc), bcc: structuredClone(draft.bcc), subject, html: toHtml(clean), text: emailHtmlText(clean).trim(), templateId: draft.templateId, resolvedPlaceholders: values }, unresolved: [...unresolved] };\n}\nexport function inspectDraft<C, K extends string>(draft: ComposerDraft<K>, context: C, definitions: Partial<Record<K, PlaceholderDefinition<C>>>, template?: EmailTemplate<K>, strings: EmailComposerStrings = defaultEmailComposerStrings) {\n\tconst issues: ComposerIssue[] = [];\n\tlet rendered: ReturnType<typeof renderEmail<C, K>> | undefined;\n\tlet renderError = '';\n\tif (!draft.to.length)\n\t\tissues.push({ field: 'to', message: strings.missingRecipient });\n\tfor (const field of ['to', 'cc', 'bcc'] as const)\n\t\tif (draft[field].some(r => !/^[^\\s@<>]+@[^\\s@<>]+\\.[^\\s@<>]+$/.test(r.email) || /[\\r\\n]/.test(r.name ?? '')))\n\t\t\tissues.push({ field, message: strings.invalidRecipients(strings[field]) });\n\tif (!draft.subject.trim() || /[\\r\\n]/.test(draft.subject))\n\t\tissues.push({ field: 'subject', message: strings.invalidSubject });\n\ttry {\n\t\tconst result = renderEmail(draft, context, definitions, template, strings);\n\t\trendered = result;\n\t\tif (!result.email.text.trim())\n\t\t\tissues.push({ field: 'body', message: strings.emptyBody });\n\t\tif (result.unresolved.length)\n\t\t\t// People read labels; a token with no definition has only its key.\n\t\t\tissues.push({ field: 'placeholders', message: strings.missingVariables(result.unresolved.map(key => (Object.hasOwn(definitions, key) ? definitions[key as K]?.label : undefined) ?? key)) });\n\t\tif ((!result.email.subject.trim() || /[\\r\\n]/.test(result.email.subject)) && !issues.some(issue => issue.field === 'subject'))\n\t\t\tissues.push({ field: 'subject', message: strings.invalidResolvedSubject });\n\t}\n\tcatch (error) {\n\t\trenderError = error instanceof Error ? error.message : strings.renderError;\n\t\tissues.push({ field: 'body', message: renderError });\n\t}\n\treturn { rendered, renderError, issues };\n}\nexport function validate<C, K extends string>(draft: ComposerDraft<K>, context: C, definitions: Partial<Record<K, PlaceholderDefinition<C>>>, template?: EmailTemplate<K>, strings: EmailComposerStrings = defaultEmailComposerStrings): ComposerIssue[] {\n\treturn inspectDraft(draft, context, definitions, template, strings).issues;\n}\nexport function recipientLabel(recipient: Recipient): string { return recipient.name ? `${recipient.name} <${recipient.email}>` : recipient.email; }\nexport function parseRecipient(value: string): Recipient {\n\tconst match = value.trim().match(/^(.*?)\\s*<([^<>]+)>$/);\n\treturn match ? { name: match[1].trim(), email: match[2].trim() } : { email: value.trim() };\n}\n","import { defaultEmailRequestFailed } from './strings';\nimport type { PreparedEmail } from './types';\n/** Optional sender adapter. The consuming application owns the endpoint and delivery. */\nexport function createHttpSender(endpoint: string, options: {\n\theaders?: Record<string, string>;\n\ttimeoutMs?: number;\n\t/** Message for a failed response that carries no `message` of its own. Receives the HTTP status; the composer shows the result in its error alert. */\n\tformatError?: (status: number) => string;\n} = {}) {\n\treturn async <K extends string>(email: PreparedEmail<K>): Promise<void> => {\n\t\tconst response = await fetch(endpoint, { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application/json', ...options.headers }, body: JSON.stringify(email), signal: AbortSignal.timeout(options.timeoutMs ?? 30000) });\n\t\tif (!response.ok) {\n\t\t\tlet message = (options.formatError ?? defaultEmailRequestFailed)(response.status);\n\t\t\ttry {\n\t\t\t\tconst result: unknown = await response.json();\n\t\t\t\tif (result && typeof result === 'object' && 'message' in result && typeof result.message === 'string')\n\t\t\t\t\tmessage = result.message;\n\t\t\t}\n\t\t\tcatch { /* Response bodies are optional. */ }\n\t\t\tthrow new Error(message);\n\t\t}\n\t};\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { t as n } from "./utils-
|
|
2
|
+
import { C as e, f as t } from "./ui-provider-Bu1S-o96.js";
|
|
3
|
+
import { t as n } from "./utils-BVbAG2J6.js";
|
|
4
4
|
import { n as r } from "./icon-size-B6PVwjbC.js";
|
|
5
5
|
import { i } from "./tone-recipes-BPsRAvhu.js";
|
|
6
6
|
import { createElement as a } from "react";
|
|
@@ -52,4 +52,4 @@ u.displayName = "IconBadge";
|
|
|
52
52
|
//#endregion
|
|
53
53
|
export { u as t };
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=icon-badge-
|
|
55
|
+
//# sourceMappingURL=icon-badge-B0Kq7wom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-badge-
|
|
1
|
+
{"version":3,"file":"icon-badge-B0Kq7wom.js","names":["resolveComponentScale","useDensityConfig","cn","ICON_DESCENDANT_SIZE_CLASSNAMES","SIZE_MAP","TONE_TINT","toneRecipes","TONE_SOLID","IconBadge","Icon","sizeProp","ariaHidden","ariaLabel","ariaLabelledBy","props","size","defaultScale","sizes","tones","solid","tone","hasAccessibleName","role","shape","bordered","className","createElement","children"],"sources":["../src/components/base/display/icon-badge/icon-badge.tsx"],"sourcesContent":["/**\n * IconBadge — circular or square icon container with a tinted background.\n * Workhorse for \"row leading icon\" and \"feature illustration\" patterns —\n * coupon checks, conversation initials, search-result tones, AI-bot avatars.\n *\n * Tones reuse the shadcn semantic tokens, with the foreground colour picked\n * to read against its tone's shared tint (`toneRecipes`, contrast-tested).\n * For a fully-saturated mark (primary fill, inverse foreground), use\n * `tone=\"primary\"` and pass `solid`.\n *\n * Warning takes `--warning-accent` rather than `--warning-foreground`: the\n * latter is the colour for text on a SOLID warning fill and stays near-black\n * in both themes, so on a 20% tint it vanished in dark (1.87 contrast). Amber\n * is intrinsically light, so — as with `--primary-accent` — the tone needs a\n * separate foreground token that darkens in light and brightens in dark.\n */\nimport type { ComponentProps, ElementType, ReactNode } from 'react';\nimport { createElement } from 'react';\n\nimport { useDensityConfig, type ComponentScale } from '../../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../../lib/ui-provider/scale';\nimport { cn } from '../../../../lib/utils';\nimport type { SemanticTone } from '../../../../lib/component-vocabulary';\nimport { toneRecipes } from '../../../../lib/tone-recipes';\nimport { ICON_DESCENDANT_SIZE_CLASSNAMES } from '../icon-size';\n\nexport type IconBadgeSize = ComponentScale;\nexport type IconBadgeShape = 'circle' | 'square';\nexport type IconBadgeTone = SemanticTone;\n\nexport interface IconBadgeProps extends Omit<ComponentProps<'span'>, 'children'> {\n\t/** Leading glyph. */\n\ticon?: ElementType;\n\tchildren?: ReactNode;\n\t/** Size preset. */\n\tsize?: IconBadgeSize;\n\tshape?: IconBadgeShape;\n\t/** Semantic tone driving the entry's colour. */\n\ttone?: IconBadgeTone;\n\t/** When true, fills the badge with the tone color and inverts the icon. */\n\tsolid?: boolean;\n\t/**\n\t * When true, renders a hairline `border-border/60` around the badge.\n\t * Useful for compact \"secret list\" / \"key list\" rows where the icon\n\t * needs a subtle outline against the surrounding card surface\n\t * (see `blocks/admin/api-key-list`).\n\t */\n\tbordered?: boolean;\n}\n\nconst SIZE_MAP: Record<IconBadgeSize, { box: string; icon: string }> = {\n\tsm: { box: 'size-avatar-sm', icon: 'size-icon-sm' },\n\tmd: { box: 'size-avatar', icon: 'size-icon' },\n\tlg: { box: 'size-avatar-lg', icon: 'size-icon-lg' },\n};\n\nconst TONE_TINT: Record<IconBadgeTone, string> = {\n\tneutral: 'bg-muted text-muted-foreground',\n\tprimary: `${toneRecipes.primary.tint} ${toneRecipes.primary.ink}`,\n\tsecondary: 'bg-foreground/8 text-muted-foreground',\n\tsuccess: `${toneRecipes.success.tint} ${toneRecipes.success.ink}`,\n\twarning: `${toneRecipes.warning.tint} ${toneRecipes.warning.ink}`,\n\tdestructive: `${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink}`,\n\tinfo: `${toneRecipes.info.tint} ${toneRecipes.info.ink}`,\n};\n\nconst TONE_SOLID: Record<IconBadgeTone, string> = {\n\tneutral: 'bg-foreground text-background',\n\tprimary: 'bg-primary text-primary-foreground',\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tsuccess: 'bg-success text-success-foreground',\n\twarning: 'bg-warning text-warning-foreground',\n\tdestructive: 'bg-destructive text-destructive-foreground',\n\tinfo: 'bg-info text-info-foreground',\n};\n\nexport function IconBadge({\n\ticon: Icon,\n\tchildren,\n\tsize: sizeProp,\n\tshape = 'circle',\n\ttone = 'primary',\n\tsolid = false,\n\tbordered = false,\n\tclassName,\n\trole,\n\t'aria-hidden': ariaHidden,\n\t'aria-label': ariaLabel,\n\t'aria-labelledby': ariaLabelledBy,\n\t...props\n}: IconBadgeProps) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst sizes = SIZE_MAP[size];\n\tconst tones = solid ? TONE_SOLID[tone] : TONE_TINT[tone];\n\tconst hasAccessibleName = Boolean(ariaLabel || ariaLabelledBy);\n\n\treturn (\n\t\t<span\n\t\t\trole={role ?? (hasAccessibleName ? 'img' : undefined)}\n\t\t\taria-hidden={ariaHidden ?? (hasAccessibleName ? undefined : true)}\n\t\t\taria-label={ariaLabel}\n\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\tclassName={cn('icon-badge--component', \n\t\t\t\t'box-border inline-flex shrink-0 items-center justify-center',\n\t\t\t\tshape === 'circle' ? 'rounded-full' : 'rounded-radius',\n\t\t\t\tsizes.box,\n\t\t\t\t// A glyph passed as children takes the size's icon role, like `icon`,\n\t\t\t\t// unless it brings its own size class.\n\t\t\t\tICON_DESCENDANT_SIZE_CLASSNAMES[size],\n\t\t\t\ttones,\n\t\t\t\tbordered && 'border border-border/60',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{Icon ? createElement(Icon, { className: sizes.icon }) : children}\n\t\t</span>\n\t);\n}\n\nIconBadge.displayName = 'IconBadge';\n"],"mappings":";;;;;;;;AAkDA,IAAMI,IAAiE;CACtE,IAAI;EAAE,KAAK;EAAkB,MAAM;CAAe;CAClD,IAAI;EAAE,KAAK;EAAe,MAAM;CAAY;CAC5C,IAAI;EAAE,KAAK;EAAkB,MAAM;CAAe;AACnD,GAEMC,IAA2C;CAChD,SAAS;CACT,SAAS,GAAGC,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;CAC5D,WAAW;CACX,SAAS,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;CAC5D,SAAS,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;CAC5D,aAAa,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY;CACxE,MAAM,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK;AACpD,GAEMC,IAA4C;CACjD,SAAS;CACT,SAAS;CACT,WAAW;CACX,SAAS;CACT,SAAS;CACT,aAAa;CACb,MAAM;AACP;AAEA,SAAgBC,EAAU,EACzB,MAAMC,GACN,aACA,MAAMC,GACN,WAAQ,UACR,UAAO,WACP,WAAQ,IACR,cAAW,IACX,cACA,SACA,eAAeC,GACf,cAAcC,GACd,mBAAmBC,GACnB,GAAGC,KACe;CAClB,IAAM,EAAE,oBAAiBb,EAAiB,GACpCc,IAAOf,EAAsBU,GAAUM,CAAY,GACnDC,IAAQb,EAASW,IACjBG,IAAQC,IAAQZ,EAAWa,KAAQf,EAAUe,IAC7CC,IAAoB,GAAQT,KAAaC;CAE/C,OACC,kBAAC,QAAD;EACC,MAAMS,MAASD,IAAoB,QAAQ,KAAA;EAC3C,eAAaV,MAAe,MAAoB,KAAA;EAChD,cAAYC;EACZ,mBAAiBC;EACjB,WAAWX,EAAG,yBACb,+DACAqB,MAAU,WAAW,iBAAiB,kBACtCN,EAAM,KAGNd,EAAgCY,IAChCG,GACAM,KAAY,2BACZC,CACD;EACA,GAAIX;EAEH,UAAAL,IAAOiB,EAAcjB,GAAM,EAAE,WAAWQ,EAAM,KAAK,CAAC,IAAIU;CACpD,CAAA;AAER;AAEA,EAAU,cAAc"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { C as e, S as t, _ as n,
|
|
2
|
-
import { CARD_SURFACES as
|
|
3
|
-
import { ACTION_BUTTON_STYLES as
|
|
4
|
-
import { interpolateString as
|
|
5
|
-
import { t as
|
|
6
|
-
export {
|
|
1
|
+
import { C as e, S as t, _ as n, b as r, c as i, d as a, f as o, g as s, h as c, l, m as u, n as d, p as f, r as p, s as m, t as h, u as g, v as _, w as v, y } from "./ui-provider-Bu1S-o96.js";
|
|
2
|
+
import { CARD_SURFACES as b, COMPONENT_SCALES as x, DISCLOSURE_SURFACES as S, SEMANTIC_TONES as C } from "./component-vocabulary.js";
|
|
3
|
+
import { ACTION_BUTTON_STYLES as w } from "./action-presentation.js";
|
|
4
|
+
import { interpolateString as T, mergeStrings as E, useStrings as D } from "./lib/strings.js";
|
|
5
|
+
import { t as O } from "./utils-BVbAG2J6.js";
|
|
6
|
+
export { w as ACTION_BUTTON_STYLES, b as CARD_SURFACES, x as COMPONENT_SCALES, v as DEFAULT_UI_CONFIG, S as DISCLOSURE_SURFACES, h as DirectionProvider, C as SEMANTIC_TONES, d as ThemeBoundary, p as ThemeScope, r as UIProvider, O as cn, T as interpolateString, t as isComponentScale, E as mergeStrings, e as resolveComponentScale, m as useBadgeConfig, i as useButtonConfig, l as useCardConfig, g as useCommentsConfig, a as useDatesConfig, o as useDensityConfig, f as useFormattingConfig, u as useItemConfig, c as useMoneyConfig, s as useOverlayConfig, n as useSpinnerConfig, D as useStrings, _ as useToastConfig, y as useTypographyConfig };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext as e, useContext as t } from "react";
|
|
3
|
+
//#region src/components/layout/containers/inline-gutter-context.tsx
|
|
4
|
+
var n = e(!1);
|
|
5
|
+
function r() {
|
|
6
|
+
return t(n);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { r as n, n as t };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=inline-gutter-context-CSqmrMFZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-gutter-context-CSqmrMFZ.js","names":["InlineGutterContext","createContext","useInlineGutterOwned","useContext"],"sources":["../src/components/layout/containers/inline-gutter-context.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\n/**\n * Whether an ancestor measure already draws the page's inline gutter. A shell's\n * contained measure provides it; Page reads it so the same inline space has one\n * owner. An explicit `gutter` on Page still wins.\n */\nexport const InlineGutterContext = createContext(false);\n\nexport function useInlineGutterOwned(): boolean {\n\treturn useContext(InlineGutterContext);\n}\n"],"mappings":";;;AAOA,IAAaA,IAAsBC,EAAc,EAAK;AAEtD,SAAgBC,IAAgC;CAC/C,OAAOC,EAAWH,CAAmB;AACtC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as e } from "./utils-
|
|
2
|
+
import { t as e } from "./utils-BVbAG2J6.js";
|
|
3
3
|
import { t } from "./affordance-geometry.generated-P-aVJisu.js";
|
|
4
|
-
import { t as n } from "./field-state-recipes-
|
|
4
|
+
import { t as n } from "./field-state-recipes-EtCxpEy3.js";
|
|
5
5
|
import { t as r } from "./editable-text-recipe-Cn61kEcv.js";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx as i } from "react/jsx-runtime";
|
|
@@ -18,4 +18,4 @@ function o({ className: o, type: s, ...c }) {
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { o as t };
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=input-
|
|
21
|
+
//# sourceMappingURL=input-2YrgTUrz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-
|
|
1
|
+
{"version":3,"file":"input-2YrgTUrz.js","names":["Input","InputPrimitive","cn","fieldStateRecipes","editableTextSizeClasses","Input$1","props","Input","affordanceGeometry","type","className"],"sources":["../src/components/ui/input.tsx"],"sourcesContent":["import { fieldStateRecipes } from '../../lib/field-state-recipes';\nimport { editableTextSizeClasses } from '../../lib/editable-text-recipe';\nimport { affordanceGeometry } from '../../lib/affordance-geometry.generated';\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-radius border bg-transparent px-control shadow-none transition-[color,box-shadow] file:box-border file:h-control-file file:py-0 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 affordanceGeometry.controlTextMinHeight,\n affordanceGeometry.controlBlockPadding.md,\n type === 'file' && affordanceGeometry.rawFileField.minHeight,\n type === 'file' && affordanceGeometry.rawFileField.blockPadding.md,\n affordanceGeometry.rawFileField.buttonMinHeight,\n editableTextSizeClasses.md,\n fieldStateRecipes.focus,\n fieldStateRecipes.invalid,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n"],"mappings":";;;;;;;;;AAQA,SAASA,EAAM,EAAE,cAAW,SAAM,GAAGM,KAAwC;CAC3E,OACE,kBAACL,GAAD;EACQ;EACN,aAAU;EACV,WAAWC,EACT,waACAM,EAAmB,sBACnBA,EAAmB,oBAAoB,IACvCC,MAAS,UAAUD,EAAmB,aAAa,WACnDC,MAAS,UAAUD,EAAmB,aAAa,aAAa,IAChEA,EAAmB,aAAa,iBAChCJ,EAAwB,IACxBD,EAAkB,OAClBA,EAAkB,SAClBO,CACF;EACA,GAAIJ;CACL,CAAA;AAEL"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { f as e } from "./ui-provider-Bu1S-o96.js";
|
|
3
3
|
import { useStrings as t } from "./lib/strings.js";
|
|
4
|
-
import { t as n } from "./utils-
|
|
4
|
+
import { t as n } from "./utils-BVbAG2J6.js";
|
|
5
5
|
import { t as r } from "./affordance-geometry.generated-P-aVJisu.js";
|
|
6
|
-
import { c as i } from "./typography-
|
|
7
|
-
import { n as a, t as o } from "./field-affordance-recipes-
|
|
8
|
-
import { c as s, f as c, i as l, n as u, r as d, s as f, t as p, y as m } from "./form-sizing-
|
|
6
|
+
import { c as i } from "./typography-C0dELqYV.js";
|
|
7
|
+
import { n as a, t as o } from "./field-affordance-recipes-DfbMadot.js";
|
|
8
|
+
import { c as s, f as c, i as l, n as u, r as d, s as f, t as p, y as m } from "./form-sizing-DE_dZw32.js";
|
|
9
9
|
import * as h from "react";
|
|
10
10
|
import { createContext as g, forwardRef as _, memo as v, useCallback as y, useId as b, useLayoutEffect as x, useMemo as ee, useRef as S, useState as C } from "react";
|
|
11
11
|
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
@@ -286,4 +286,4 @@ j.displayName = "Input";
|
|
|
286
286
|
//#endregion
|
|
287
287
|
export { te as a, ne as i, k as n, D as o, O as r, j as t };
|
|
288
288
|
|
|
289
|
-
//# sourceMappingURL=input-
|
|
289
|
+
//# sourceMappingURL=input-DfJyrjoR.js.map
|