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":"sidebar-C-iQ_TJP.js","names":["React","SidebarProvider","SidebarTrigger","_Fragment","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","React","SidebarMenuAction","SidebarMenuBadge","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","React","SidebarProviderPrimitive","useSidebarPrimitive","SidebarHeaderPrimitive","SidebarFooterPrimitive","SidebarContentPrimitive","SidebarGroupPrimitive","SidebarGroupContentPrimitive","SidebarGroupActionPrimitive","SidebarInputPrimitive","SidebarSeparatorPrimitive","SidebarMenuPrimitive","SidebarMenuItemPrimitive","SidebarMenuActionPrimitive","SidebarMenuBadgePrimitive","SidebarMenuSubPrimitive","SidebarMenuSubItemPrimitive","SidebarInsetPrimitive","SidebarRailPrimitive","SidebarTriggerPrimitive","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive","SidebarGroupLabelPrimitive","useThemePortalContainer","useDensityConfig","ThemeScopeHostProvider","cn","affordanceGeometry","SheetDescription","SheetTitle","SheetContent","SheetHeader","Sheet","Text","DisplayLabel","focusRecipes","Separator","motionRecipes","Tooltip","TooltipContent","TooltipTrigger","Button","surfaceDividerRecipes","Skeleton","formFieldFrameClasses","resolveFormControlSize","Input","navigationRowDensityRecipes","navigationRowInlineClasses","navigationChildInsetClasses","React$1","Fragment$1","sidebarDockThresholds","SidebarScopeContext","SidebarScope","SidebarContext","useSidebarStore","useSidebar","store","scope","selected","panelId","open","presentation","isMobile","value","SidebarProvider$1","controlledMobilePanel","forwardedRef","props","hostRef","viewportWidth","setViewportWidth","containerWidth","setContainerWidth","regions","setRegions","internalPanels","setInternalPanels","defaultOpenPanels","defaultOpen","internalMobilePanel","setInternalMobilePanel","panels","openPanels","panel","currentPanels","currentMobile","currentMobileRef","triggers","rememberTrigger","element","triggerFor","visible","current","style","remembered","candidates","update","query","host","adaptTo","width","observer","registerRegion","existing","previous","registration","next","getPresentation","region","getCollapseMode","setPanelOpen","wasOpen","nextOpen","onOpenPanelsChange","onOpenChange","stateCookie","setMobilePanel","onMobilePanelChange","setPanelOpenMobile","togglePanel","mobilePanel","navigationPanel","keyboardShortcut","handler","event","target","activeHost","hosts","useRender","className","SIDEBAR_TOGGLE_LABEL","SidebarTrigger$1","openMobile","onClick","toggleSidebar","children","jsx","PanelRightIcon","PanelLeftIcon","toggleLabel","SidebarRail$1","SidebarInset$1","SidebarInput$1","SidebarHeader$1","SidebarFooter$1","SidebarSeparator$1","SidebarContent$1","SidebarGroup$1","SidebarGroupLabel$1","mergeProps","SidebarGroupAction$1","SidebarGroupContent$1","SidebarMenu$1","SidebarMenuItem$1","sidebarMenuButtonVariants","cva","SidebarMenuButton$1","isDisabled","disabled","comp","isActive","preventDisabledSidebarActivation","preventDisabledSidebarKey","tooltip","collapsed","SidebarMenuAction$1","showOnHover","SidebarMenuBadge$1","SidebarMenuSub$1","SidebarMenuSubItem$1","SidebarMenuSubButton$1","defaultSidebarStrings","defaultInspectorSidebarStrings","sidebarTriggerSizes","sidebarMenuButtonStateClasses","sidebarMenuSubButtonStateClasses","sidebarSecondaryRowClasses","SidebarMenuDensityContext","SidebarFooterInsetContext","sidebarMenuDensityRecipes","paddedCollapsedSidebarWidthClass","renderSidebarMenuText","renderSidebarTooltipText","normalizeSidebarMenuTooltip","getSidebarMenuButtonHeightClass","size","SidebarProvider","menuDensity","SidebarDrawerOwner","SidebarDrawerContext","equalProperties","keys","first","second","key","registrations","setRegistrations","registeredPanels","selection","mounted","setTarget","retainedPanel","setRetainedPanel","shownPanel","lastPanel","register","wasRegistered","active","context","capturedHost","container","localDrawer","drawerContainer","SidebarRegion","availableWidth","setAvailableWidth","collapse","setCollapse","hasStore","storeHostRef","shell","measuredHost","parentWidth","dockAt","docked","hidden","suppressContents","concealed","rail","side","effectiveWidth","node","Sidebar","inherited","SidebarPanel","sideProp","stringsProp","regionOwnsWidth","drawer","inheritedThemeContainer","themeHost","themeContainer","themeScope","drawerThemeScope","strings","useStrings","rootRef","collapsible","variant","registerPanelRegion","popup","registerDrawer","attachRoot","root","state","styles","permanent","sidebarWidth","createPortal","positioningProps","permanentBoundaryProps","contained","rootClassName","surface","surfaceClassName","SidebarHeader","SidebarFooter","SidebarContent","SidebarGroup","footerOwnsInset","SidebarGroupContent","SidebarGroupAction","SidebarInput","defaultScale","SidebarSeparator","SidebarMenu","inheritedDensity","density","recipe","SidebarMenuItem","SidebarMenuAction","SidebarMenuBadge","content","inline","SidebarMenuSkeleton","resolvedWidth","showIcon","SidebarMenuSub","flushEnd","SidebarMenuSubItem","SidebarInset","SidebarRail","SidebarTrigger","SidebarMenuButton","normalizedRender","render","normalizedTooltip","resolvedSize","primitiveSize","tone","SidebarMenuSubButton","SidebarGroupLabel","compact","useBaseSidebarContext","useHasSidebarProvider","useBaseSidebarMenuDensity"],"sources":["../src/components/ui/sidebar-state.tsx","../src/components/ui/sidebar.tsx","../src/components/base/sidebar/sidebar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\n\nexport type SidebarPanelId = 'primary' | 'secondary' | 'aside';\nexport type SidebarPresentation = 'docked' | 'drawer';\nexport type SidebarCollapseMode = 'offcanvas' | 'icon' | 'none';\nexport const sidebarDockThresholds = { primary: 768, secondary: 1024, aside: 1440 } as const;\n\nexport interface SidebarStateProps {\n defaultOpen?: boolean;\n adaptTo?: 'viewport' | 'container';\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Controlled expanded desktop panels. Takes precedence over the legacy primary `open` prop. */\n openPanels?: readonly SidebarPanelId[];\n /** Initial uncontrolled desktop panels. Otherwise `defaultOpen` initializes primary only. */\n defaultOpenPanels?: readonly SidebarPanelId[];\n /** Receives an isolated desktop-state proposal; primary changes also notify `onOpenChange`. */\n onOpenPanelsChange?: (panels: SidebarPanelId[]) => void;\n /** Controlled active undocked panel, or null. Independent of remembered desktop expansion. */\n mobilePanel?: SidebarPanelId | null;\n /** Receives drawer selection and dismissal proposals, including removal or return to docked presentation. */\n onMobilePanelChange?: (panel: SidebarPanelId | null) => void;\n /** Default target for untargeted triggers and the keyboard shortcut. @default 'primary' */\n navigationPanel?: 'primary' | 'secondary';\n /** Ctrl/Command key for navigationPanel; false disables it. Editable fields and overlays retain their shortcuts. @default 'b' */\n keyboardShortcut?: string | false;\n /**\n * Cookie name that records the primary panel's open state (`true` or `false`, one week, path `/`),\n * so a server can render the same `defaultOpen`. Omitted by default: nothing is written.\n */\n stateCookie?: string;\n}\n\ntype RegionRegistration = { dockAt: number; width?: number; collapsible?: SidebarCollapseMode };\nexport interface SidebarScopeValue {\n panelId: SidebarPanelId;\n geometry?: 'panel' | 'rail';\n side?: 'left' | 'right';\n setCollapse?: (value: { collapsible: SidebarCollapseMode; variant: 'sidebar' | 'floating' | 'inset' } | null) => void;\n}\nexport const SidebarScopeContext = React.createContext<SidebarScopeValue | null>(null);\nexport const SidebarScope = SidebarScopeContext.Provider;\n\ntype SidebarStore = {\n openPanels: readonly SidebarPanelId[];\n mobilePanel: SidebarPanelId | null;\n navigationPanel: SidebarPanelId;\n adaptTo: 'viewport' | 'container';\n hostRef: React.RefObject<HTMLDivElement | null>;\n getPresentation: (panelId: SidebarPanelId) => SidebarPresentation;\n getCollapseMode: (panelId: SidebarPanelId) => SidebarCollapseMode | undefined;\n setPanelOpen: (panelId: SidebarPanelId, value: boolean | ((open: boolean) => boolean)) => void;\n setPanelOpenMobile: (panelId: SidebarPanelId, value: React.SetStateAction<boolean>) => void;\n setMobilePanel: (value: SidebarPanelId | null) => void;\n togglePanel: (panelId: SidebarPanelId) => void;\n registerRegion: (panelId: SidebarPanelId, region: RegionRegistration | null) => void;\n triggerFor: (panelId: SidebarPanelId) => HTMLElement | null;\n rememberTrigger: (panelId: SidebarPanelId, element: HTMLElement) => void;\n};\nconst SidebarContext = React.createContext<SidebarStore | null>(null);\nexport function useSidebarStore() { return React.useContext(SidebarContext); }\n\nexport function useSidebar(panelId?: SidebarPanelId) {\n const store = useSidebarStore();\n const scope = React.useContext(SidebarScopeContext);\n if (!store) throw new Error('useSidebar must be used within a SidebarProvider.');\n const selected = panelId ?? scope?.panelId ?? 'primary';\n const open = store.openPanels.includes(selected);\n const presentation = store.getPresentation(selected);\n const isMobile = presentation === 'drawer';\n const setOpen = (value: boolean | ((open: boolean) => boolean)) => store.setPanelOpen(selected, value);\n const setOpenMobile = (value: React.SetStateAction<boolean>) => store.setPanelOpenMobile(selected, value);\n return {\n panelId: selected,\n side: (scope?.panelId === selected ? scope.side ?? 'left' : 'left') as 'left' | 'right',\n state: open ? 'expanded' as const : 'collapsed' as const,\n open, setOpen,\n /** Whether the selected desktop panel is collapsed; drawers expose expanded content. */\n collapsed: !open && !isMobile && store.getCollapseMode(selected) !== 'none',\n /** Effective presentation for the selected panel, including its own docking threshold. */\n presentation, isMobile,\n openMobile: store.mobilePanel === selected,\n setOpenMobile,\n toggleSidebar: () => store.togglePanel(selected),\n openPanels: store.openPanels,\n mobilePanel: store.mobilePanel,\n setMobilePanel: store.setMobilePanel,\n };\n}\n\nexport function SidebarProvider({\n defaultOpen = true, adaptTo = 'viewport', open, onOpenChange,\n openPanels, defaultOpenPanels, onOpenPanelsChange,\n mobilePanel: controlledMobilePanel, onMobilePanelChange,\n navigationPanel = 'primary', keyboardShortcut = 'b', stateCookie,\n ref: forwardedRef, className, style, children, ...props\n}: React.ComponentProps<'div'> & SidebarStateProps) {\n const hostRef = React.useRef<HTMLDivElement>(null);\n // The server and first client render share the same desktop snapshot.\n const [viewportWidth, setViewportWidth] = React.useState(Number.POSITIVE_INFINITY);\n const [containerWidth, setContainerWidth] = React.useState<number>();\n const [regions, setRegions] = React.useState<Partial<Record<SidebarPanelId, RegionRegistration>>>({});\n const [internalPanels, setInternalPanels] = React.useState<readonly SidebarPanelId[]>(() => defaultOpenPanels ? [...defaultOpenPanels] : (defaultOpen ? ['primary'] : []));\n const [internalMobilePanel, setInternalMobilePanel] = React.useState<SidebarPanelId | null>(null);\n const panels = React.useMemo(() => openPanels ?? (open === undefined ? internalPanels : [...internalPanels.filter(panel => panel !== 'primary'), ...(open ? ['primary' as const] : [])]), [openPanels, open, internalPanels]);\n const currentPanels = React.useRef(panels);\n currentPanels.current = panels;\n const currentMobile = controlledMobilePanel === undefined ? internalMobilePanel : controlledMobilePanel;\n const currentMobileRef = React.useRef(currentMobile);\n currentMobileRef.current = currentMobile;\n const triggers = React.useRef<Partial<Record<SidebarPanelId, HTMLElement>>>({});\n const rememberTrigger = React.useCallback((panelId: SidebarPanelId, element: HTMLElement) => { triggers.current[panelId] = element; }, []);\n const triggerFor = React.useCallback((panelId: SidebarPanelId) => {\n const visible = (element: HTMLElement) => {\n if (!element.isConnected) return false;\n for (let current: HTMLElement | null = element; current; current = current.parentElement) {\n const style = window.getComputedStyle(current);\n if (current.hidden || current.hasAttribute('inert') || style.display === 'none' || style.visibility === 'hidden') return false;\n }\n return true;\n };\n const remembered = triggers.current[panelId];\n if (remembered && visible(remembered)) return remembered;\n const candidates = hostRef.current?.querySelectorAll<HTMLElement>(`[data-sidebar-trigger-panel=\"${panelId}\"]`);\n return candidates ? Array.from(candidates).find(visible) ?? null : null;\n }, []);\n React.useEffect(() => {\n const update = () => setViewportWidth(window.innerWidth);\n const query = window.matchMedia?.('(max-width: 767px)');\n window.addEventListener('resize', update);\n query?.addEventListener('change', update);\n update();\n return () => { window.removeEventListener('resize', update); query?.removeEventListener('change', update); };\n }, []);\n React.useEffect(() => {\n const host = hostRef.current;\n if (adaptTo !== 'container' || !host) return;\n const update = () => { const width = host.getBoundingClientRect().width; if (width > 0) setContainerWidth(width); };\n update();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(update); observer.observe(host);\n return () => observer.disconnect();\n }, [adaptTo]);\n const registerRegion = React.useCallback((panelId: SidebarPanelId, registration: RegionRegistration | null) => {\n setRegions(previous => {\n const existing = previous[panelId];\n if (!registration && !existing) return previous;\n if (registration && existing?.dockAt === registration.dockAt && existing?.width === registration.width && existing?.collapsible === registration.collapsible) return previous;\n const next = {...previous};\n if (registration) next[panelId] = registration; else delete next[panelId];\n return next;\n });\n }, []);\n const getPresentation = React.useCallback((panelId: SidebarPanelId): SidebarPresentation => {\n const region = regions[panelId];\n if (region?.collapsible === 'none') return 'docked';\n const width = Math.min(viewportWidth, region?.width ?? Number.POSITIVE_INFINITY, adaptTo === 'container' ? containerWidth ?? Number.POSITIVE_INFINITY : Number.POSITIVE_INFINITY);\n return width < (region?.dockAt ?? sidebarDockThresholds[panelId]) ? 'drawer' : 'docked';\n }, [regions, viewportWidth, containerWidth, adaptTo]);\n const getCollapseMode = React.useCallback((panelId: SidebarPanelId) => regions[panelId]?.collapsible, [regions]);\n const setPanelOpen = React.useCallback((panelId: SidebarPanelId, value: boolean | ((value: boolean) => boolean)) => {\n const previous = currentPanels.current;\n const wasOpen = previous.includes(panelId);\n const nextOpen = typeof value === 'function' ? value(wasOpen) : value;\n if (nextOpen === wasOpen) return;\n const next = previous.filter(panel => panel !== panelId);\n if (nextOpen) next.push(panelId);\n // Controlled proposals are not accepted state. Uncontrolled panels still\n // compose multiple updates made before React commits the next render.\n if (openPanels === undefined && (panelId !== 'primary' || open === undefined)) currentPanels.current = next;\n if (openPanels === undefined) setInternalPanels(next);\n onOpenPanelsChange?.([...next]);\n if (panelId === 'primary') {\n onOpenChange?.(nextOpen);\n if (stateCookie) document.cookie = `${stateCookie}=${nextOpen}; path=/; max-age=${60 * 60 * 24 * 7}`;\n }\n }, [openPanels, open, onOpenPanelsChange, onOpenChange, stateCookie]);\n const setMobilePanel = React.useCallback((next: SidebarPanelId | null) => {\n if (currentMobileRef.current === next) return;\n if (controlledMobilePanel === undefined) {\n currentMobileRef.current = next;\n setInternalMobilePanel(next);\n }\n onMobilePanelChange?.(next);\n }, [controlledMobilePanel, onMobilePanelChange]);\n const setPanelOpenMobile = React.useCallback((panelId: SidebarPanelId, value: React.SetStateAction<boolean>) => {\n const wasOpen = currentMobileRef.current === panelId;\n const nextOpen = typeof value === 'function' ? value(wasOpen) : value;\n if (nextOpen !== wasOpen) setMobilePanel(nextOpen ? panelId : null);\n }, [setMobilePanel]);\n const togglePanel = React.useCallback((panelId: SidebarPanelId) => {\n if (getPresentation(panelId) === 'drawer') setMobilePanel(currentMobileRef.current === panelId ? null : panelId);\n else setPanelOpen(panelId, value => !value);\n }, [getPresentation,setMobilePanel,setPanelOpen]);\n const mobilePanel = currentMobile && getPresentation(currentMobile) === 'drawer' ? currentMobile : null;\n React.useEffect(() => {\n if (Number.isFinite(viewportWidth) && currentMobile && getPresentation(currentMobile) === 'docked') {\n setMobilePanel(null);\n triggerFor(currentMobile)?.focus();\n }\n }, [currentMobile, getPresentation, setMobilePanel, triggerFor, viewportWidth]);\n const value = React.useMemo<SidebarStore>(() => ({openPanels: panels, mobilePanel, navigationPanel, adaptTo, hostRef, getPresentation, getCollapseMode, setPanelOpen, setPanelOpenMobile, setMobilePanel, togglePanel, registerRegion, triggerFor, rememberTrigger}), [panels, mobilePanel, navigationPanel, adaptTo, getPresentation, getCollapseMode, setPanelOpen, setPanelOpenMobile, setMobilePanel, togglePanel, registerRegion, triggerFor, rememberTrigger]);\n React.useEffect(() => {\n if (keyboardShortcut === false) return;\n const handler = (event: KeyboardEvent) => {\n if (event.defaultPrevented || event.repeat || event.altKey || event.shiftKey || !(event.metaKey || event.ctrlKey) || event.key.toLowerCase() !== keyboardShortcut.toLowerCase()) return;\n const target = event.target instanceof Element ? event.target : document.activeElement;\n if (target?.closest('input,textarea,select,[contenteditable]:not([contenteditable=\"false\"]),[role=\"textbox\"],[role=\"dialog\"],[role=\"alertdialog\"],[role=\"menu\"],[role=\"listbox\"]')) return;\n const activeHost = target?.closest('[data-slot=\"sidebar-wrapper\"]');\n const hosts = document.querySelectorAll('[data-slot=\"sidebar-wrapper\"]');\n if (activeHost ? activeHost !== hostRef.current : hosts.length !== 1) return;\n event.preventDefault();\n if (getPresentation(navigationPanel) === 'drawer') setMobilePanel(currentMobileRef.current === navigationPanel ? null : navigationPanel);\n else setPanelOpen(navigationPanel, current => !current);\n };\n window.addEventListener('keydown', handler);\n return () => window.removeEventListener('keydown', handler);\n }, [keyboardShortcut, navigationPanel, getPresentation, setMobilePanel, setPanelOpen]);\n const host = useRender({defaultTagName:'div', ref:forwardedRef ? [hostRef,forwardedRef] : hostRef, props:{...props, 'data-slot':'sidebar-wrapper', 'data-mobile':getPresentation('primary') === 'drawer', style:{'--sidebar-width':'16rem','--sidebar-width-icon':'3rem',...style} as React.CSSProperties, className:cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar relative flex min-h-svh w-full',adaptTo === 'container' && 'isolate [contain:paint]',className), children}});\n return <SidebarContext.Provider value={value}>{host}</SidebarContext.Provider>;\n}\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva } from \"class-variance-authority\"\nimport type { StrictVariantProps } from \"../../lib/variant-props\"\n\nimport { PanelLeftIcon, PanelRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Separator } from \"./separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"./sheet\"\nimport { Skeleton } from \"./skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"./tooltip\"\nimport { cn } from \"../../lib/utils\"\nimport { navigationRowInlineClasses } from \"../../lib/navigation-row-recipes\"\nimport { focusRecipes } from \"../../lib/focus-recipes\"\nimport { motionRecipes } from \"../../lib/motion-recipes\"\n\nimport { SidebarProvider, useSidebar } from \"./sidebar-state\"\nimport { useSidebarStore, type SidebarPanelId } from \"./sidebar-state\"\n\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n motionRecipes.sidebar,\n \"relative w-(--sidebar-width) bg-transparent\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-shell-sidebar-icon-padded\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n motionRecipes.sidebarOffset,\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-space-md group-data-[collapsible=icon]:w-shell-sidebar-icon-padded\"\n : \"border-border group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-surface group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\n/** Default accessible name of the sidebar trigger and rail. */\nconst SIDEBAR_TOGGLE_LABEL = \"Toggle Sidebar\"\n\nfunction SidebarTrigger({\n className,\n onClick,\n panelId,\n toggleLabel = SIDEBAR_TOGGLE_LABEL,\n children,\n ...props\n}: React.ComponentProps<typeof Button> & { panelId?: SidebarPanelId; toggleLabel?: string }) {\n const store = useSidebarStore()\n const target = panelId ?? store?.navigationPanel ?? \"primary\"\n const { toggleSidebar, open, openMobile, isMobile } = useSidebar(target)\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n data-sidebar-trigger-panel={target}\n aria-expanded={isMobile ? openMobile : open}\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n if (!event.defaultPrevented) {\n store?.rememberTrigger(target, event.currentTarget)\n toggleSidebar()\n }\n }}\n {...props}\n >\n {children ?? <>\n {target === \"aside\" ? <PanelRightIcon /> : <PanelLeftIcon />}\n <span className=\"sr-only\">{toggleLabel}</span>\n </>}\n </Button>\n )\n}\n\nfunction SidebarRail({ className, toggleLabel = SIDEBAR_TOGGLE_LABEL, ...props }: React.ComponentProps<\"button\"> & { toggleLabel?: string }) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label={toggleLabel}\n tabIndex={-1}\n onClick={toggleSidebar}\n title={toggleLabel}\n className={cn(\n motionRecipes.sidebarRail,\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background md:peer-data-[variant=inset]:m-space-md md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-surface md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-space-md relative flex w-full flex-1 flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"w-full\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-space-md w-auto\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"gap-space-md flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & React.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n `text-sidebar-foreground/70 h-8 rounded-radius text-xs font-medium transition-opacity duration-150 group-data-[collapsible=icon]:opacity-0 ${focusRecipes.sidebar} [&>svg]:size-icon flex shrink-0 items-center outline-hidden [&>svg]:shrink-0`,\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-label\",\n sidebar: \"group-label\",\n },\n })\n}\n\nfunction SidebarGroupAction({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"button\"> & React.ComponentProps<\"button\">) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n `box-border border-0 bg-transparent font-sans text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-radius p-0 ${focusRecipes.sidebar} [&>svg]:size-icon flex aspect-square items-center justify-center outline-hidden transition-transform [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden`,\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-action\",\n sidebar: \"group-action\",\n },\n })\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"text-sm w-full\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"m-0 p-0 list-none flex w-full min-w-0 flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n cn(`box-border border-0 bg-transparent py-0 font-sans no-underline hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground text-left transition-[background-color,color] ${focusRecipes.sidebar} data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button disabled:opacity-50 aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-icon [&_svg]:shrink-0`, navigationRowInlineClasses),\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline: \"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground ring-1 ring-sidebar-border hover:ring-sidebar-accent\",\n },\n size: {\n default: \"h-action\",\n sm: \"h-action-sm\",\n lg: \"h-action-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction SidebarMenuButton({\n render,\n disabled = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & StrictVariantProps<typeof sidebarMenuButtonVariants>) {\n const { isMobile, collapsed } = useSidebar()\n const isDisabled = disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\"\n\n const comp = useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-button\",\n sidebar: \"menu-button\",\n size,\n active: isActive,\n },\n })\n\n // Tooltip.Trigger's disabled prop disables the tooltip, not its DOM target.\n // Own the target state after render composition so a render element cannot\n // re-enable the row; links retain their native role and destination.\n const target = isDisabled ? React.cloneElement(comp as React.ReactElement<React.HTMLAttributes<HTMLElement> & { disabled?: boolean }>, {\n disabled: comp.type === \"a\" ? undefined : true,\n \"aria-disabled\": true,\n tabIndex: -1,\n onClickCapture: preventDisabledSidebarActivation,\n onClick: preventDisabledSidebarActivation,\n onPointerDownCapture: preventDisabledSidebarActivation,\n onKeyDownCapture: preventDisabledSidebarKey,\n onKeyUpCapture: preventDisabledSidebarKey,\n }) : comp\n\n if (!tooltip) {\n return target\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip disabled={isDisabled || !collapsed || isMobile}>\n <TooltipTrigger disabled={isDisabled} render={target} />\n <TooltipContent\n side=\"right\"\n align=\"center\"\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\nfunction preventDisabledSidebarActivation(event: React.SyntheticEvent) {\n event.preventDefault()\n event.stopPropagation()\n}\n\nfunction preventDisabledSidebarKey(event: React.KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") preventDisabledSidebarActivation(event)\n}\n\nfunction SidebarMenuAction({\n className,\n render,\n showOnHover = false,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n showOnHover?: boolean\n }) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n `box-border border-0 bg-transparent font-sans text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-radius p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 ${focusRecipes.sidebar} [&>svg]:size-icon flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&_svg]:shrink-0`,\n showOnHover &&\n \"peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-action\",\n sidebar: \"menu-action\",\n },\n })\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"box-border\",\n \"text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 rounded-radius px-space-xs text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"h-action flex items-center\", navigationRowInlineClasses, className)}\n {...props}\n >\n {!!showIcon && (\n <Skeleton\n className=\"size-4 rounded-radius-xs\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\"m-0 p-0 list-none border-sidebar-border mx-space-lg translate-x-px gap-space-xs border-l px-row-x py-row-y group-data-[collapsible=icon]:hidden flex min-w-0 flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n render,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: useRender.ComponentProps<\"a\"> &\n React.ComponentProps<\"a\"> & {\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n `text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-action-xs ${focusRecipes.sidebar} data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-icon flex -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0`,\n navigationRowInlineClasses,\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-sub-button\",\n sidebar: \"menu-sub-button\",\n size,\n active: isActive,\n },\n })\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","/**\n * base/sidebar — tokenized wrapper around the shadcn `Sidebar` compound component.\n *\n * The internal Base UI owner supplies shared state. This layer applies the package shell,\n * density, spacing, typography, focus, and stable DOM-hook contracts while\n * preserving every compound part and polymorphic `render` seam.\n */\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { ThemeScopeHostProvider, useThemePortalContainer, type ThemePortalContainer } from '../../../lib/theme-scope';\nimport { SidebarScope, SidebarScopeContext, sidebarDockThresholds, useSidebarStore, type SidebarPanelId, type SidebarPresentation, type SidebarStateProps } from '../../ui/sidebar-state';\n\nimport {\n\tSidebarContent as SidebarContentPrimitive,\n\tSidebarFooter as SidebarFooterPrimitive,\n\tSidebarGroup as SidebarGroupPrimitive,\n\tSidebarGroupAction as SidebarGroupActionPrimitive,\n\tSidebarGroupContent as SidebarGroupContentPrimitive,\n\tSidebarGroupLabel as SidebarGroupLabelPrimitive,\n\tSidebarHeader as SidebarHeaderPrimitive,\n\tSidebarInput as SidebarInputPrimitive,\n\tSidebarInset as SidebarInsetPrimitive,\n\tSidebarMenu as SidebarMenuPrimitive,\n\tSidebarMenuAction as SidebarMenuActionPrimitive,\n\tSidebarMenuBadge as SidebarMenuBadgePrimitive,\n\tSidebarMenuButton as SidebarMenuButtonPrimitive,\n\tSidebarMenuItem as SidebarMenuItemPrimitive,\n\tSidebarMenuSub as SidebarMenuSubPrimitive,\n\tSidebarMenuSubButton as SidebarMenuSubButtonPrimitive,\n\tSidebarMenuSubItem as SidebarMenuSubItemPrimitive,\n\tSidebarProvider as SidebarProviderPrimitive,\n\tSidebarRail as SidebarRailPrimitive,\n\tSidebarSeparator as SidebarSeparatorPrimitive,\n\tSidebarTrigger as SidebarTriggerPrimitive,\n\tuseSidebar as useSidebarPrimitive,\n} from '../../ui/sidebar';\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from '../sheet/sheet';\nimport { Skeleton } from '../skeleton';\nimport { DisplayLabel, Text } from '../../typography';\nimport type { ComponentScale } from '../../../lib/component-vocabulary';\nimport { useDensityConfig } from '../../../lib/ui-provider';\nimport { formFieldFrameClasses, resolveFormControlSize } from '../forms/form-sizing';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport { surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport { navigationChildInsetClasses, navigationRowDensityRecipes, navigationRowInlineClasses } from '../../../lib/navigation-row-recipes';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\nimport { motionRecipes } from '../../../lib/motion-recipes';\n\nexport interface SidebarStrings {\n\tmobileTitle: string;\n\tmobileDescription: string;\n\t/** Accessible name of `SidebarTrigger` and `SidebarRail`. Optional so existing complete string objects stay valid. */\n\ttoggle?: string;\n}\n\nexport const defaultSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Navigation',\n\tmobileDescription: 'Navigation for this application.',\n\ttoggle: 'Toggle Sidebar',\n};\n\nconst defaultInspectorSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Inspector',\n\tmobileDescription: 'Supporting tools and details.',\n};\n\nexport interface SidebarProps extends React.ComponentProps<'div'> {\n\t/** Explicit state identity; otherwise inherits the nearest shell region. */\n\tpanelId?: SidebarPanelId;\n\t/** Desktop canvas treatment. Drawers always retain their opaque sidebar surface. */\n\tsurface?: 'default' | 'transparent';\n\t/** Edge where the desktop rail and mobile sheet are anchored. */\n\tside?: 'left' | 'right';\n\t/** Surface treatment and inset behavior for the desktop shell. */\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\t/** Desktop collapse mode. `none` renders a permanently expanded panel. */\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\t/** Keeps the desktop sidebar in its parent layout instead of fixing it to the viewport. */\n\tcontained?: boolean;\n\t/** Classes for the visible sidebar surface, separate from the positioning container. */\n\tsurfaceClassName?: string;\n\t/** Classes for the responsive positioning root. */\n\trootClassName?: string;\n\t/** Copy for the mobile drawer heading and accessible description. */\n\tstrings?: StringsProp<SidebarStrings>;\n}\ntype SidebarContentProps = React.ComponentProps<typeof SidebarContentPrimitive>;\ntype SidebarFooterProps = React.ComponentProps<typeof SidebarFooterPrimitive>;\ntype SidebarGroupProps = React.ComponentProps<typeof SidebarGroupPrimitive>;\ntype SidebarGroupActionProps = React.ComponentProps<typeof SidebarGroupActionPrimitive>;\ntype SidebarGroupContentProps = React.ComponentProps<typeof SidebarGroupContentPrimitive>;\ntype SidebarGroupLabelProps = React.ComponentProps<typeof SidebarGroupLabelPrimitive> & {\n\t/**\n\t * A static heading: content height and no bottom margin, so the surrounding\n\t * gap owns the rhythm. Defaults to `false`, the action-height label row.\n\t */\n\tcompact?: boolean;\n};\n/** `secondary` rests on the sidebar's secondary text tier; hover and the current entry return to the full foreground. */\nexport type SidebarRowTone = 'default' | 'secondary';\ntype SidebarHeaderProps = React.ComponentProps<typeof SidebarHeaderPrimitive>;\nexport interface SidebarInputProps extends React.ComponentProps<typeof SidebarInputPrimitive> {\n\t/** Accessible name when no visible label is associated with the navigation search. */\n\t'aria-label'?: string;\n\t/** Search or filter hint. */\n\tplaceholder?: string;\n\t/** Controlled input value. */\n\tvalue?: React.InputHTMLAttributes<HTMLInputElement>['value'];\n\t/** Disables the navigation input. */\n\tdisabled?: boolean;\n\t/** Native input change callback. */\n\tonChange?: React.ChangeEventHandler<HTMLInputElement>;\n\t/** Additional classes merged with the tokenized control defaults. */\n\tclassName?: string;\n}\ntype SidebarInsetProps = React.ComponentProps<typeof SidebarInsetPrimitive>;\nexport type SidebarMenuDensity = 'compact' | 'default' | 'comfortable';\n\nexport interface SidebarMenuProps extends React.ComponentProps<typeof SidebarMenuPrimitive> {\n\t/** Row and child-list rhythm. Inherits the nearest sidebar menu/provider. */\n\tmenuDensity?: SidebarMenuDensity;\n}\ntype SidebarMenuActionProps = React.ComponentProps<typeof SidebarMenuActionPrimitive>;\nexport interface SidebarMenuBadgeProps extends React.ComponentProps<typeof SidebarMenuBadgePrimitive> {\n\t/** Render in normal flow, for example inside a nested menu button. */\n\tinline?: boolean;\n\t/** Count-bubble size. @default \"md\" */\n\tsize?: ComponentScale;\n}\nexport interface SidebarMenuButtonProps extends Omit<React.ComponentProps<typeof SidebarMenuButtonPrimitive>, 'size' | 'isActive'> {\n\t/** Explicit row scale. Otherwise follows menuDensity, or md in an unconfigured base menu. */\n\tsize?: ComponentScale;\n\t/** Marks the navigation item as current. */\n\tactive?: boolean;\n\t/** Text tier of the resting row. Defaults to `default`. */\n\ttone?: SidebarRowTone;\n}\ntype SidebarMenuItemProps = React.ComponentProps<typeof SidebarMenuItemPrimitive>;\nexport interface SidebarMenuSkeletonProps extends React.ComponentProps<'div'> {\n\t/** Show the leading icon placeholder. */\n\tshowIcon?: boolean;\n\t/** Deterministic text-bar width. @default \"72%\" */\n\twidth?: string;\n}\ntype SidebarMenuSubProps = React.ComponentProps<typeof SidebarMenuSubPrimitive> & {\n\t/** Drops the list's end inset, so child rows reach the same end edge as their parent row. Defaults to `false`. */\n\tflushEnd?: boolean;\n};\nexport interface SidebarMenuSubButtonProps extends Omit<React.ComponentProps<typeof SidebarMenuSubButtonPrimitive>, 'isActive'> {\n\t/** Marks the nested navigation item as current. */\n\tactive?: boolean;\n\t/** Text tier of the resting row. Defaults to `default`. */\n\ttone?: SidebarRowTone;\n}\ntype SidebarMenuSubItemProps = React.ComponentProps<typeof SidebarMenuSubItemPrimitive>;\nexport interface SidebarProviderProps extends React.ComponentProps<'div'>, SidebarStateProps {\n\t/** Use the provider width for drawers in embedded workspaces; viewport remains the default. */\n\tadaptTo?: 'viewport' | 'container';\n\t/** Initial expanded state for uncontrolled sidebars. @default true */\n\tdefaultOpen?: boolean;\n\t/** Controlled expanded state. */\n\topen?: boolean;\n\t/** Controlled state callback. */\n\tonOpenChange?: (open: boolean) => void;\n\t/** Default menu rhythm; individual menus may override it. */\n\tmenuDensity?: SidebarMenuDensity;\n\t/** Sidebar shell contents. */\n\tchildren?: React.ReactNode;\n\t/** Scoped shell token overrides and other root styles. */\n\tstyle?: React.CSSProperties;\n\t/** Additional classes merged with the provider root. */\n\tclassName?: string;\n}\ntype SidebarToggleStrings = StringsProp<Pick<SidebarStrings, 'toggle'>>;\ntype SidebarTriggerScale = 'sm' | 'md' | 'lg';\nconst sidebarTriggerSizes = { sm: 'icon-sm', md: 'icon', lg: 'icon-lg' } as const;\ntype SidebarRailProps = Omit<React.ComponentProps<typeof SidebarRailPrimitive>, 'toggleLabel'> & {\n\t/** Overrides the rail's accessible name. */\n\tstrings?: SidebarToggleStrings;\n};\ntype SidebarSeparatorProps = React.ComponentProps<typeof SidebarSeparatorPrimitive>;\ntype RawSidebarTriggerProps = React.ComponentProps<typeof SidebarTriggerPrimitive>;\ntype SidebarTriggerProps = Omit<RawSidebarTriggerProps, 'toggleLabel' | 'size' | 'variant'> & {\n\t/** Overrides the trigger's accessible name. */\n\tstrings?: SidebarToggleStrings;\n\t/** Button scale, matching the public `Button`. Defaults to `md`, the height of the header controls beside it. */\n\tsize?: SidebarTriggerScale;\n};\n\n// Navigation labels are medium throughout; the current entry is marked by its fill.\nconst sidebarMenuButtonStateClasses =\n\t`font-medium text-sidebar-foreground transition-[background-color,color] hover:bg-sidebar-accent hover:text-sidebar-foreground ${focusRecipes.sidebar} data-active:bg-sidebar-accent data-active:text-sidebar-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-foreground`;\n\nconst sidebarMenuSubButtonStateClasses = sidebarMenuButtonStateClasses;\n\n/** The sidebar's one secondary text tier at rest; the hover and current states above keep the full foreground. */\nconst sidebarSecondaryRowClasses = 'text-sidebar-foreground/70';\n\n// One token-backed recipe covers both composed navigation and raw menu anatomy.\n// No density configured falls back to the default density, like the rest of the menu.\nconst SidebarMenuDensityContext = React.createContext<SidebarMenuDensity | undefined>(undefined);\n// A footer already owns the surface inset. Groups nested in that region keep\n// their navigation anatomy while delegating the surrounding inset to it.\nconst SidebarFooterInsetContext = React.createContext(false);\nconst sidebarMenuDensityRecipes = navigationRowDensityRecipes;\n\nconst paddedCollapsedSidebarWidthClass =\n\t'group-data-[collapsible=icon]:w-shell-sidebar-icon-padded';\n\nfunction renderSidebarMenuText(children: React.ReactNode) {\n\tif (typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint') {\n\t\treturn (\n\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"inherit\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t);\n\t}\n\treturn children;\n}\n\nfunction renderSidebarTooltipText(children: React.ReactNode) {\n\tif (typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint') {\n\t\treturn (\n\t\t\t<Text\n\t\t\t\ttag=\"span\"\n\t\t\t\tsize=\"inherit\"\n\t\t\t\tlineHeight=\"snug\"\n\t\t\t\tclassName=\"sidebar-menu-button--tooltip-text text-inherit\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t);\n\t}\n\treturn children;\n}\n\nfunction normalizeSidebarMenuTooltip(tooltip: SidebarMenuButtonProps['tooltip']) {\n\tif (!tooltip) return tooltip;\n\n\tif (typeof tooltip === 'string') {\n\t\treturn { children: renderSidebarTooltipText(tooltip) };\n\t}\n\n\treturn {\n\t\t...tooltip,\n\t\tchildren: renderSidebarTooltipText(tooltip.children),\n\t};\n}\n\n/** Row height, and the matching square when the sidebar collapses to icons. */\nfunction getSidebarMenuButtonHeightClass(size: SidebarMenuButtonProps['size']) {\n\tif (size === 'sm') {\n\t\treturn 'h-action-sm group-data-[collapsible=icon]:size-action-sm!';\n\t}\n\tif (size === 'lg') {\n\t\treturn 'h-action-lg group-data-[collapsible=icon]:size-action-lg!';\n\t}\n\treturn 'h-action group-data-[collapsible=icon]:size-action!';\n}\n\nfunction SidebarProvider({ className, style, menuDensity, ...props }: SidebarProviderProps) {\n\treturn (\n\t\t<SidebarMenuDensityContext.Provider value={menuDensity}>\n\t\t\t<SidebarProviderPrimitive\n\t\t\t\tclassName={cn('sidebar-provider--component shell-sidebar-vars box-border', className)}\n\t\t\t\tstyle={{\n\t\t\t\t\t'--sidebar-width': 'var(--shell-sidebar-width)',\n\t\t\t\t\t'--sidebar-width-icon': 'var(--shell-sidebar-width-icon)',\n\t\t\t\t\t...style,\n\t\t\t\t} as React.CSSProperties}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<SidebarDrawerOwner>{props.children}</SidebarDrawerOwner>\n\t\t\t</SidebarProviderPrimitive>\n\t\t</SidebarMenuDensityContext.Provider>\n\t);\n}\n\ntype SidebarDrawerRegistration = {\n\tcontained: boolean;\n\tside: 'left' | 'right';\n\tdir?: string;\n\tclassName?: string;\n\tsurfaceClassName?: string;\n\trootClassName?: string;\n\ttitle: string;\n\tdescription: string;\n\tthemeContainer: ThemePortalContainer;\n\tthemeScope: React.ComponentProps<typeof ThemeScopeHostProvider>['value'];\n\tprops: React.ComponentProps<'div'>;\n};\ntype SidebarDrawerContextValue = {\n\ttarget: HTMLDivElement | null;\n\tregister: (panelId: SidebarPanelId, registration: SidebarDrawerRegistration | null) => void;\n};\nconst SidebarDrawerContext = React.createContext<SidebarDrawerContextValue | null>(null);\n\nfunction equalProperties(first: object, second: object) {\n\tconst keys = Object.keys(first);\n\treturn keys.length === Object.keys(second).length && keys.every(key => Reflect.get(first, key) === Reflect.get(second, key));\n}\n\n/** One Base UI modal owner for every named undocked region in this provider. */\nfunction SidebarDrawerOwner({ children }: { children: React.ReactNode }) {\n\tconst { mobilePanel, setMobilePanel } = useSidebarPrimitive();\n\tconst store = useSidebarStore()!;\n\tconst [registrations, setRegistrations] = React.useState<Partial<Record<SidebarPanelId, SidebarDrawerRegistration>>>({});\n\tconst registeredPanels = React.useRef<Partial<Record<SidebarPanelId, SidebarDrawerRegistration>>>({});\n\tconst selection = React.useRef({mobilePanel,setMobilePanel});\n\t// Read only from the deferred unregistration check, which runs after commit.\n\tReact.useLayoutEffect(() => {selection.current = {mobilePanel,setMobilePanel};});\n\tconst mounted = React.useRef(true);\n\tReact.useLayoutEffect(() => {mounted.current = true; return () => {mounted.current = false;};}, []);\n\tconst [target, setTarget] = React.useState<HTMLDivElement | null>(null);\n\t// The last opened panel stays rendered while its drawer closes. It is\n\t// state adjusted during render, so a discarded render leaves nothing behind.\n\tconst [retainedPanel, setRetainedPanel] = React.useState<SidebarPanelId | null>(null);\n\tif (mobilePanel && mobilePanel !== retainedPanel) setRetainedPanel(mobilePanel);\n\tconst shownPanel = mobilePanel ?? retainedPanel;\n\tconst lastPanel = shownPanel ?? 'primary';\n\tconst register = React.useCallback((panelId: SidebarPanelId, registration: SidebarDrawerRegistration | null) => {\n\t\tconst wasRegistered = !!registeredPanels.current[panelId];\n\t\tif (registration) registeredPanels.current[panelId] = registration; else delete registeredPanels.current[panelId];\n\t\tif (!registration && wasRegistered) {\n\t\t\t// A panel that leaves while its drawer is closed is no longer retained.\n\t\t\tsetRetainedPanel(current => current === panelId ? null : current);\n\t\t\t// Wait for this commit's registrations: StrictMode can unregister and\n\t\t\t// immediately restore a panel without removing its rendered owner.\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tif (mounted.current && !registeredPanels.current[panelId] && selection.current.mobilePanel === panelId) selection.current.setMobilePanel(null);\n\t\t\t});\n\t\t}\n\t\tsetRegistrations(previous => {\n\t\t\tconst existing = previous[panelId];\n\t\t\tif (!registration && !existing) return previous;\n\t\t\tif (existing && registration && equalProperties(existing.props, registration.props) && equalProperties({...existing,props:undefined}, {...registration,props:undefined})) return previous;\n\t\t\tconst next = {...previous};\n\t\t\tif (registration) next[panelId] = registration; else delete next[panelId];\n\t\t\treturn next;\n\t\t});\n\t}, []);\n\tconst active = shownPanel ? registrations[shownPanel] : undefined;\n\tconst context = React.useMemo(() => ({target, register}), [target,register]);\n\tlet capturedHost: HTMLElement | ShadowRoot | null = null;\n\tif (active?.themeContainer) {\n\t\tconst container = active.themeContainer;\n\t\tcapturedHost = 'current' in container ? container.current : container;\n\t}\n\t// An ancestor theme already reaches the application through CSS inheritance;\n\t// keep the native portal inside the frame that owns container adaptation.\n\tconst localDrawer = !!active?.contained || store.adaptTo === 'container';\n\tconst drawerContainer = localDrawer && capturedHost && !store.hostRef.current?.contains(capturedHost)\n\t\t? store.hostRef : active?.themeContainer;\n\treturn <Sheet modal={true} open={!!mobilePanel && !!active} onOpenChange={next => {if (!next) setMobilePanel(null);}}>\n\t\t<SidebarDrawerContext.Provider value={context}>\n\t\t\t{children}\n\t\t\t{active && <ThemeScopeHostProvider value={active.themeScope}><SheetContent\n\t\t\t\t{...active.props}\n\t\t\t\tcontainer={drawerContainer}\n\t\t\t\tforceRenderBackdrop\n\t\t\t\tbackdropClassName={active.contained ? 'absolute' : undefined}\n\t\t\t\tdir={active.dir}\n\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tdata-panel-id={lastPanel}\n\t\t\t\tdata-mobile=\"true\"\n\t\t\t\tdata-presentation=\"drawer\"\n\t\t\t\tside={active.side}\n\t\t\t\tfinalFocus={() => store.triggerFor(lastPanel)}\n\t\t\t\tclassName={cn('sidebar--component shell-sidebar-vars box-border data-[side=left]:w-(--sidebar-width) data-[side=right]:w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&_[data-overlay-close]]:top-[calc(var(--surface-y)*var(--space-scale)/2+(var(--text-base)*var(--leading-snug)-var(--height-action)*7/8*var(--density-scale))/2)]! [&_[data-overlay-close]]:end-[calc(var(--surface-x)*var(--space-scale)/2)]!', active.contained && 'absolute', active.surfaceClassName, active.className, active.rootClassName)}\n\t\t\t\tstyle={{...active.props.style, '--sidebar-width':'var(--shell-sidebar-width-offcanvas)', ...(localDrawer ? {maxWidth:'calc(100% - var(--control-x) * var(--space-scale))'} : {})} as React.CSSProperties}\n\t\t\t>\n\t\t\t\t<SheetHeader className=\"min-h-[calc(var(--height-action)*var(--density-scale)+var(--surface-y)*var(--space-scale))] p-surface-xs pe-[calc(var(--height-action)*var(--density-scale)+var(--surface-x)*var(--space-scale))]\"><SheetTitle>{active.title}</SheetTitle><SheetDescription className=\"sr-only\">{active.description}</SheetDescription></SheetHeader>\n\t\t\t\t<div ref={setTarget} className=\"sidebar--surface flex min-h-0 w-full flex-1 flex-col\" />\n\t\t\t</SheetContent></ThemeScopeHostProvider>}\n\t\t</SidebarDrawerContext.Provider>\n\t</Sheet>;\n}\n\nexport interface SidebarRegionProps extends Omit<React.ComponentProps<'div'>, 'ref'> {\n\t/** Ref to the semantic aside boundary. */\n\tref?: React.Ref<HTMLElement>;\n\t/** Named desktop/drawer state and descendant scope owned by this region. */\n\tpanelId: SidebarPanelId;\n\t/** Minimum available width for docking; primary/secondary/aside default to 768/1024/1440. Zero stays docked. */\n\tdockAt?: number;\n\t/** Persistent region geometry, separate from docked/drawer presentation. */\n\tpresentation?: 'panel' | 'rail';\n\t/** Physical edge inherited by the scoped Sidebar and its drawer. @default 'left' */\n\tside?: 'left' | 'right';\n\t/** Expanded CSS length; defaults to --shell-sidebar-width. Rail widths derive from existing density roots. */\n\twidth?: string;\n}\n\n/** A named state and width boundary. Shells can also use static content without a provider. */\nfunction SidebarRegion({panelId, dockAt = sidebarDockThresholds[panelId], presentation = 'panel', side = 'left', width, className, style, ref: forwardedRef, children, ...props}: SidebarRegionProps) {\n\tconst store = useSidebarStore();\n\tconst hostRef = React.useRef<HTMLElement | null>(null);\n\tconst [availableWidth, setAvailableWidth] = React.useState(Number.POSITIVE_INFINITY);\n\tconst [collapse, setCollapse] = React.useState<{collapsible: 'offcanvas' | 'icon' | 'none';variant:'sidebar'|'floating'|'inset'} | null>(null);\n\tconst registerRegion = store?.registerRegion;\n\tconst hasStore = Boolean(store);\n\tconst adaptTo = store?.adaptTo;\n\tconst storeHostRef = store?.hostRef;\n\tReact.useLayoutEffect(() => {\n\t\tconst host = hostRef.current;\n\t\tif (!host) return;\n\t\tconst shell = host.closest('[data-shell-regions]');\n\t\tconst measuredHost = !hasStore || adaptTo === 'container' ? shell ?? storeHostRef?.current : null;\n\t\tconst update = () => {\n\t\t\tconst parentWidth = measuredHost?.getBoundingClientRect().width;\n\t\t\tsetAvailableWidth(Math.min(window.innerWidth, parentWidth && parentWidth > 0 ? parentWidth : Number.POSITIVE_INFINITY));\n\t\t};\n\t\tupdate();\n\t\twindow.addEventListener('resize', update);\n\t\tconst observer = measuredHost && typeof ResizeObserver !== 'undefined' ? new ResizeObserver(update) : null;\n\t\tif (measuredHost) observer?.observe(measuredHost);\n\t\treturn () => {window.removeEventListener('resize', update); observer?.disconnect();};\n\t}, [hasStore, adaptTo, storeHostRef]);\n\tReact.useLayoutEffect(() => {registerRegion?.(panelId,{dockAt,width:availableWidth,collapsible:collapse?.collapsible});}, [registerRegion,panelId,dockAt,availableWidth,collapse?.collapsible]);\n\tReact.useLayoutEffect(() => () => {registerRegion?.(panelId,null);}, [registerRegion,panelId]);\n\tconst docked = store ? store.getPresentation(panelId) === 'docked' : availableWidth >= dockAt;\n\tconst open = store?.openPanels.includes(panelId) ?? true;\n\tconst collapsed = !open && collapse?.collapsible !== 'none';\n\tconst hidden = !docked || (collapsed && collapse?.collapsible === 'offcanvas');\n\t// Native ThemeScope hosts must stay live while their Sidebar portals into the shared drawer.\n\tconst suppressContents = !docked && !collapse;\n\tconst concealed = docked && collapsed && collapse?.collapsible === 'offcanvas';\n\tconst rail = presentation === 'rail' || (collapsed && collapse?.collapsible === 'icon');\n\tconst scope = React.useMemo(() => ({panelId,geometry:presentation,side,setCollapse}), [panelId,presentation,side]);\n\tlet effectiveWidth = presentation === 'rail' ? 'var(--shell-navigation-rail-width)' : rail ? 'var(--shell-sidebar-width-icon)' : 'var(--sidebar-width)';\n\tif (collapsed && collapse?.collapsible === 'icon' && collapse.variant !== 'sidebar' && presentation !== 'rail') effectiveWidth = 'calc(var(--shell-sidebar-width-icon) + 1rem * var(--space-scale))';\n\treturn <SidebarScope value={scope}><aside\n\t\t{...props}\n\t\tref={node => {hostRef.current = node; if(typeof forwardedRef === 'function') forwardedRef(node); else if(forwardedRef) forwardedRef.current = node;}}\n\t\tdata-slot=\"sidebar-region\"\n\t\tdata-panel-id={panelId}\n\t\tdata-presentation={docked ? 'docked' : 'drawer'}\n\t\tdata-region-presentation={presentation}\n\t\tdata-state={open ? 'expanded' : 'collapsed'}\n\t\tdata-collapsible={collapsed ? collapse?.collapsible : ''}\n\t\tdata-side={side}\n\t\taria-hidden={concealed || undefined}\n\t\tinert={concealed || undefined}\n\t\tclassName={cn('sidebar-region--component shell-sidebar-vars box-border relative min-h-0 shrink-0', collapse?.collapsible === 'offcanvas' && 'overflow-hidden', docked && motionRecipes.sidebar, className)}\n\t\tstyle={{...style, '--sidebar-width':width ?? 'var(--shell-sidebar-width)', width:hidden ? 0 : effectiveWidth, position:docked ? undefined : 'static', display:suppressContents ? 'none' : undefined} as React.CSSProperties}\n\t>{children}</aside></SidebarScope>;\n}\n\n/** Tokenized responsive sidebar shell with contained and viewport-fixed modes. */\nfunction Sidebar(props: SidebarProps) {\n\tconst inherited = React.useContext(SidebarScopeContext);\n\tconst selected = props.panelId ?? inherited?.panelId ?? 'primary';\n\tconst scope = React.useMemo(() => ({...(inherited?.panelId === selected ? inherited : {}),panelId:selected,side:props.side ?? (inherited?.panelId === selected ? inherited.side : undefined) ?? 'left'}), [inherited,selected,props.side]);\n\treturn <SidebarScope value={scope}><SidebarPanel {...props} panelId={selected} /></SidebarScope>;\n}\n\nfunction SidebarPanel({\n\tpanelId = 'primary', surface = 'default', side: sideProp,\n\tvariant = 'sidebar', collapsible = 'offcanvas', contained = false,\n\tclassName, surfaceClassName, rootClassName, children, dir,\n\tstrings: stringsProp, ref: forwardedRef, ...props\n}: SidebarProps) {\n\tconst scope = React.useContext(SidebarScopeContext);\n\tconst regionOwnsWidth = !!scope?.setCollapse;\n\tconst side = sideProp ?? scope?.side ?? 'left';\n\tconst { isMobile, state } = useSidebarPrimitive(panelId);\n\tconst store = useSidebarStore()!;\n\tconst drawer = React.useContext(SidebarDrawerContext);\n\tconst inheritedThemeContainer = useThemePortalContainer();\n\t// Without an explicit container the theme hook returns its native host ref.\n\tconst themeHost = inheritedThemeContainer && 'current' in inheritedThemeContainer\n\t\t? inheritedThemeContainer as React.RefObject<HTMLElement | null> : store.hostRef;\n\tconst themeContainer = inheritedThemeContainer === undefined ? store.hostRef : inheritedThemeContainer;\n\tconst themeScope = React.useMemo(() => ({host:themeHost,mounted:inheritedThemeContainer !== null}), [themeHost,inheritedThemeContainer]);\n\tconst drawerThemeScope = React.useMemo(() => ({host:{current:drawer?.target ?? null},mounted:!!drawer?.target}), [drawer?.target]);\n\tconst strings = useStrings(panelId === 'aside' ? defaultInspectorSidebarStrings : defaultSidebarStrings, stringsProp);\n\tconst rootRef = React.useRef<HTMLDivElement | null>(null);\n\tconst setCollapse = scope?.setCollapse;\n\tReact.useLayoutEffect(() => {setCollapse?.({collapsible,variant}); return () => setCollapse?.(null);}, [setCollapse,collapsible,variant]);\n\tconst registerPanelRegion = store.registerRegion;\n\tconst triggerFor = store.triggerFor;\n\tReact.useLayoutEffect(() => {\n\t\tif (regionOwnsWidth) return;\n\t\tregisterPanelRegion(panelId,{dockAt:sidebarDockThresholds[panelId],collapsible});\n\t\treturn () => registerPanelRegion(panelId,null);\n\t}, [regionOwnsWidth,registerPanelRegion,panelId,collapsible]);\n\tReact.useLayoutEffect(() => {\n\t\tdrawer?.register(panelId,{contained,side,dir,className,surfaceClassName,rootClassName,title:strings.mobileTitle,description:strings.mobileDescription,themeContainer,themeScope,props:{...props,ref:forwardedRef}});\n\t});\n\tReact.useLayoutEffect(() => {\n\t\tconst target = drawer?.target;\n\t\tconst popup = target?.parentElement;\n\t\tif (!isMobile || store.mobilePanel !== panelId || !target || !popup || popup.contains(document.activeElement)) return;\n\t\t// Switching panels keeps the same modal owner; its old focused child may\n\t\t// have unmounted, so place focus in the newly selected content.\n\t\tconst first = target.querySelector<HTMLElement>('button:not(:disabled),a[href],input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex]:not([tabindex=\"-1\"])');\n\t\t(first ?? popup).focus({preventScroll:true});\n\t}, [isMobile,store.mobilePanel,drawer?.target,panelId]);\n\tconst registerDrawer = drawer?.register;\n\tReact.useLayoutEffect(() => () => registerDrawer?.(panelId,null), [registerDrawer,panelId]);\n\tconst attachRoot = React.useCallback((node: HTMLDivElement | null) => {\n\t\tconst previous = rootRef.current;\n\t\tif (!node && previous?.contains(document.activeElement)) {\n\t\t\tqueueMicrotask(() => {if (!previous.isConnected) triggerFor(panelId)?.focus();});\n\t\t}\n\t\trootRef.current = node;\n\t}, [triggerFor,panelId]);\n\tReact.useLayoutEffect(() => {\n\t\tconst root = rootRef.current;\n\t\tconst active = document.activeElement;\n\t\tif (state !== 'collapsed' || collapsible === 'none' || !root || !(active instanceof HTMLElement) || !root.contains(active)) return;\n\t\tlet concealed = collapsible === 'offcanvas';\n\t\tfor (let node: HTMLElement | null = active; !concealed && node && root.contains(node); node = node.parentElement) {\n\t\t\tconst styles = window.getComputedStyle(node);\n\t\t\tconcealed = node.hidden || styles.display === 'none' || styles.visibility === 'hidden';\n\t\t}\n\t\tif (concealed) store.triggerFor(panelId)?.focus();\n\t}, [state,collapsible,panelId,store]);\n\tconst concealed = !isMobile && state === 'collapsed' && collapsible === 'offcanvas';\n\tconst permanent = collapsible === 'none';\n\tconst sidebarWidth = (props.style as React.CSSProperties & {'--sidebar-width'?: string})?.['--sidebar-width']\n\t\t?? (scope?.geometry === 'rail' ? 'var(--shell-navigation-rail-width)' : undefined);\n\tif (isMobile && collapsible !== 'none') {\n\t\t// Nested surfaces stay within the visible modal boundary and inherit its\n\t\t// selected CSS scope through the native drawer host.\n\t\treturn drawer?.target && store.mobilePanel === panelId ? createPortal(<ThemeScopeHostProvider value={drawerThemeScope}>{children}</ThemeScopeHostProvider>, drawer.target) : null;\n\t}\n\t// Keep one desktop content tree across collapse modes. A permanent panel's\n\t// transparent group lets native widths resolve against its original parent.\n\tconst positioningProps = {...props,ref:forwardedRef};\n\tconst permanentBoundaryProps = permanent ? {\n\t\t'data-panel-id':panelId, 'data-presentation':'docked', 'data-state':state,\n\t\t'data-collapsible':'', 'data-variant':variant, 'data-side':side, dir,\n\t} : {};\n\tif (contained) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'shell-sidebar-vars group peer text-sidebar-foreground',\n\t\t\t\t\tpermanent ? 'contents' : 'sidebar--component sticky top-0 block h-full shrink-0',\n\t\t\t\t\t!permanent && (regionOwnsWidth ? 'w-full' : cn('w-(--sidebar-width) data-[collapsible=offcanvas]:w-0', motionRecipes.sidebar)),\n\t\t\t\t\t!permanent && !regionOwnsWidth && (variant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? 'data-[collapsible=icon]:w-shell-sidebar-icon-padded'\n\t\t\t\t\t\t: 'data-[collapsible=icon]:w-(--sidebar-width-icon)'),\n\t\t\t\t\t!permanent && rootClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={{'--sidebar-width': sidebarWidth} as React.CSSProperties}\n\t\t\t\tdata-panel-id={panelId}\n\t\t\tdata-presentation=\"docked\"\n\t\t\t\t\taria-hidden={concealed || undefined}\n\t\t\t\t\tinert={concealed || undefined}\n\t\t\tref={attachRoot}\n\t\t\tdata-state={state}\n\t\t\t\t\tdata-collapsible={!permanent && state === 'collapsed' ? collapsible : ''}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tdata-side={side}\n\t\t\t\t\tdata-slot={permanent ? undefined : 'sidebar'}\n\t\t\t\tdir={dir}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot={permanent ? 'sidebar' : undefined}\n\t\t\t\t\t{...permanentBoundaryProps}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'box-border flex h-full', permanent ? 'relative' : 'absolute inset-y-0 z-10',\n\t\t\t\t\t\tpermanent && 'sidebar--component',\n\t\t\t\t\t\tregionOwnsWidth ? collapsible === 'offcanvas' ? 'w-(--sidebar-width)' : 'w-full' : cn('w-(--sidebar-width)', motionRecipes.sidebarSlide),\n\t\t\t\t\t\t!regionOwnsWidth && (side === 'left'\n\t\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:-translate-x-full'\n\t\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:translate-x-full'),\n\t\t\t\t\t\tregionOwnsWidth && (side === 'left' ? 'left-0' : 'right-0'),\n\t\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t\t? cn(variant === 'floating' ? 'p-space-md' : 'px-space-md py-space-lg', paddedCollapsedSidebarWidthClass)\n\t\t\t\t\t\t\t: !regionOwnsWidth && 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n\t\t\t\t\t\tpermanent && rootClassName, className,\n\t\t\t\t\t)}\n\t\t\t\t\t{...positioningProps}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'sidebar--surface box-border flex size-full flex-col group-data-[variant=floating]:rounded-surface group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border',\n\t\t\t\t\t\t\tsurface === 'transparent' ? 'bg-transparent' : 'bg-sidebar',\n\t\t\t\t\t\t\tsurfaceClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\t\tclassName={cn('shell-sidebar-vars group peer text-sidebar-foreground', permanent ? 'contents' : 'sidebar--component block', !permanent && rootClassName)}\n\t\t\t\tstyle={{'--sidebar-width': sidebarWidth} as React.CSSProperties}\n\t\t\tdata-panel-id={panelId}\n\t\t\tdata-presentation=\"docked\"\n\t\t\t\taria-hidden={concealed || undefined}\n\t\t\t\tinert={concealed || undefined}\n\t\t\tref={attachRoot}\n\t\t\tdata-state={state}\n\t\t\t\tdata-collapsible={!permanent && state === 'collapsed' ? collapsible : ''}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot={permanent ? undefined : 'sidebar'}\n\t\t\tdir={dir}\n\t\t>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative w-(--sidebar-width) bg-transparent', motionRecipes.sidebar,\n\t\t\t\t\t\tpermanent && 'hidden',\n\t\t\t\t\t'group-data-[collapsible=offcanvas]:w-0',\n\t\t\t\t\t'group-data-[side=right]:rotate-180',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? paddedCollapsedSidebarWidthClass\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot={permanent ? 'sidebar' : 'sidebar-container'}\n\t\t\t\tdata-side={side}\n\t\t\t\t{...permanentBoundaryProps}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\tpermanent ? 'box-border relative flex h-full w-(--sidebar-width)' : cn(motionRecipes.sidebarOffset, 'box-border fixed inset-y-0 z-10 flex h-svh w-(--sidebar-width) data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]'),\n\t\t\t\t\tpermanent && 'sidebar--component',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? cn('p-space-md', paddedCollapsedSidebarWidthClass)\n\t\t\t\t\t\t: 'border-border group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n\t\t\t\t\tpermanent && rootClassName, className,\n\t\t\t\t)}\n\t\t\t\t{...positioningProps}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'sidebar--surface box-border flex size-full flex-col group-data-[variant=floating]:rounded-surface group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border',\n\t\t\t\t\t\tsurface === 'transparent' ? 'bg-transparent' : 'bg-sidebar',\n\t\t\t\t\tsurfaceClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: SidebarHeaderProps) {\n\treturn <SidebarHeaderPrimitive className={cn('sidebar-header--component box-border min-w-0 shrink-0 gap-space-sm p-surface-xs', className)} {...props} />;\n}\n\nfunction SidebarFooter({ className, ...props }: SidebarFooterProps) {\n\treturn <SidebarFooterInsetContext.Provider value={true}>\n\t\t<SidebarFooterPrimitive className={cn('sidebar-footer--component box-border min-w-0 shrink-0 gap-space-md p-surface-xs', surfaceDividerRecipes.sidebar.footer, className)} {...props} />\n\t</SidebarFooterInsetContext.Provider>;\n}\n\nfunction SidebarContent({ className, ...props }: SidebarContentProps) {\n\treturn <SidebarContentPrimitive className={cn('sidebar-content--component min-w-0 gap-space-sm overflow-x-hidden', className)} {...props} />;\n}\n\nfunction SidebarGroup({ className, ...props }: SidebarGroupProps) {\n\tconst footerOwnsInset = React.useContext(SidebarFooterInsetContext);\n\treturn <SidebarGroupPrimitive className={cn('sidebar-group--component box-border', footerOwnsInset ? 'p-0' : 'px-surface-xs py-space-2xs', className)} {...props} />;\n}\n\nfunction SidebarGroupContent({ className, ...props }: SidebarGroupContentProps) {\n\treturn <SidebarGroupContentPrimitive className={cn('sidebar-group-content--component', className)} {...props} />;\n}\n\nfunction SidebarGroupAction({ className, ...props }: SidebarGroupActionProps) {\n\treturn <SidebarGroupActionPrimitive className={cn('sidebar-group-action--component top-space-xs size-action-xs', className)} {...props} />;\n}\n\nfunction SidebarInput({ className, ...props }: SidebarInputProps) {\n\tconst {defaultScale} = useDensityConfig();\n\tconst size = resolveFormControlSize(undefined,defaultScale);\n\treturn <SidebarInputPrimitive className={cn('sidebar-input--component',formFieldFrameClasses(size),className)} {...props} />;\n}\n\nfunction SidebarSeparator({ className, ...props }: SidebarSeparatorProps) {\n\treturn <SidebarSeparatorPrimitive className={cn('sidebar-separator--component mx-space-lg', className)} {...props} />;\n}\n\nfunction SidebarMenu({ className, menuDensity, ...props }: SidebarMenuProps) {\n\tconst inheritedDensity = React.useContext(SidebarMenuDensityContext);\n\tconst density = menuDensity ?? inheritedDensity;\n\tconst recipe = sidebarMenuDensityRecipes[density ?? 'default'];\n\treturn (\n\t\t<SidebarMenuDensityContext.Provider value={density}>\n\t\t\t<SidebarMenuPrimitive className={cn('sidebar-menu--component', recipe.gap, className)} {...props} />\n\t\t</SidebarMenuDensityContext.Provider>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: SidebarMenuItemProps) {\n\treturn <SidebarMenuItemPrimitive className={cn('sidebar-menu-item--component group-data-[collapsible=icon]:flex group-data-[collapsible=icon]:justify-center', className)} {...props} />;\n}\n\nfunction SidebarMenuAction({ className, ...props }: SidebarMenuActionProps) {\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\treturn <SidebarMenuActionPrimitive className={cn(\n\t\t'sidebar-menu-action--component size-action-xs right-auto end-space-2xs! top-action-center! -translate-y-1/2 peer-data-[size=sm]/menu-button:top-action-sm-center! peer-data-[size=lg]/menu-button:top-action-lg-center!',\n\t\tdensity === 'comfortable'\n\t\t\t? 'peer-data-[sidebar=menu-sub-button]/menu-sub-button:top-action-sm-center!'\n\t\t\t: 'peer-data-[sidebar=menu-sub-button]/menu-sub-button:top-action-xs-center!',\n\t\tclassName,\n\t)} {...props} />;\n}\n\nfunction SidebarMenuBadge({ className, inline = false, size = 'md', children, ...props }: SidebarMenuBadgeProps) {\n\tconst content = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t? (\n\t\t\t<Text tag=\"span\" size=\"xxs\" weight=\"semibold\" lineHeight=\"none\" className=\"text-inherit tabular-nums\">\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t)\n\t\t: children;\n\n\treturn (\n\t\t<SidebarMenuBadgePrimitive\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-badge--component shrink-0 text-sidebar-foreground',\n\t\t\t\tsize === 'sm' ? 'h-4 min-w-4' : size === 'lg' ? 'h-6 min-w-6' : 'h-5 min-w-5',\n\t\t\t\tinline\n\t\t\t\t\t? 'static ms-auto translate-y-0'\n\t\t\t\t\t: 'top-action-center! -translate-y-1/2 peer-data-[size=sm]/menu-button:top-action-sm-center! peer-data-[size=lg]/menu-button:top-action-lg-center!',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</SidebarMenuBadgePrimitive>\n\t);\n}\n\nfunction SidebarMenuSkeleton({ className, showIcon = false, style, width, ...props }: SidebarMenuSkeletonProps) {\n\tconst resolvedWidth = width ?? '72%';\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-skeleton--component flex h-action items-center gap-space-md rounded-radius px-control-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon ? (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-icon rounded-radius-sm\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-icon-sm flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={{ maxWidth: resolvedWidth }}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, flushEnd = false, ...props }: SidebarMenuSubProps) {\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\treturn <SidebarMenuSubPrimitive data-flush-end={flushEnd || undefined} className={cn('sidebar-menu-sub--component border-l-0 border-s! border-sidebar-border', navigationChildInsetClasses, flushEnd && 'pe-0', sidebarMenuDensityRecipes[density].childGap, className)} {...props} />;\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: SidebarMenuSubItemProps) {\n\treturn <SidebarMenuSubItemPrimitive className={cn('sidebar-menu-sub-item--component', className)} {...props} />;\n}\n\nfunction SidebarInset({ className, ...props }: SidebarInsetProps) {\n\treturn <SidebarInsetPrimitive className={cn('sidebar-inset--component', className)} {...props} />;\n}\n\nfunction SidebarRail({ className, strings: stringsProp, ...props }: SidebarRailProps) {\n\tconst strings = useStrings(defaultSidebarStrings, stringsProp);\n\treturn <SidebarRailPrimitive toggleLabel={strings.toggle ?? defaultSidebarStrings.toggle} className={cn('sidebar-rail--component', className)} {...props} />;\n}\n\nfunction SidebarTrigger({ className, strings: stringsProp, size = 'md', ...props }: SidebarTriggerProps) {\n\tconst strings = useStrings(defaultSidebarStrings, stringsProp);\n\t// Triggers sit in header rows beside search, tools and account controls, so they share their height.\n\treturn <SidebarTriggerPrimitive\n\t\ttoggleLabel={strings.toggle ?? defaultSidebarStrings.toggle}\n\t\tsize={sidebarTriggerSizes[size]}\n\t\tclassName={cn('sidebar-trigger--component', size === 'sm' ? 'size-action-sm' : size === 'lg' ? 'size-action-lg' : 'size-action', className)}\n\t\t{...props}\n\t/>;\n}\n\nfunction SidebarMenuButton({\n\tclassName,\n\trender,\n\tsize,\n\ttooltip,\n\tchildren,\n\tactive = false,\n\ttone = 'default',\n\t...props\n}: SidebarMenuButtonProps) {\n\tconst normalizedRender = tooltip && !render\n\t\t? <button type=\"button\" />\n\t\t: render;\n\tconst normalizedTooltip = normalizeSidebarMenuTooltip(tooltip);\n\t// Without a scope, rows take the default density like the menu gap, child rows\n\t// and actions do, so an unscoped sidebar is not taller than its own rhythm.\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\tconst resolvedSize = size ?? sidebarMenuDensityRecipes[density].size;\n\tconst primitiveSize = resolvedSize === 'md' ? 'default' : resolvedSize;\n\n\treturn (\n\t\t<SidebarMenuButtonPrimitive\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-button--component group-data-[collapsible=icon]:px-control-sm! group-data-[collapsible=icon]:py-0!',\n\t\t\t\tnavigationRowInlineClasses,\n\t\t\t\t// Reserve the trailing action (action-xs) plus the control inset: the\n\t\t\t\t// generated recipe is written from the root knobs, because the derived\n\t\t\t\t// --spacing-* aliases are fixed at :root and a scoped density would\n\t\t\t\t// otherwise resolve with the root scale.\n\t\t\t\t'group-has-data-[sidebar=menu-action]/menu-item:px-control-sm!',\n\t\t\t\taffordanceGeometry.menuActionReserve.item,\n\t\t\t\tgetSidebarMenuButtonHeightClass(resolvedSize),\n\t\t\t\tsidebarMenuButtonStateClasses,\n\t\t\t\ttone === 'secondary' && sidebarSecondaryRowClasses,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdata-tone={tone === 'secondary' ? tone : undefined}\n\t\t\trender={normalizedRender}\n\t\t\tsize={primitiveSize}\n\t\t\ttooltip={normalizedTooltip}\n\t\t\tisActive={active}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderSidebarMenuText(children)}\n\t\t</SidebarMenuButtonPrimitive>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tclassName,\n\tchildren,\n\tactive = false,\n\ttone = 'default',\n\t...props\n}: SidebarMenuSubButtonProps) {\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\treturn (\n\t\t<SidebarMenuSubButtonPrimitive\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-sub-button--component peer/menu-sub-button translate-x-0',\n\t\t\t\taffordanceGeometry.menuActionReserve.subItem,\n\t\t\t\tnavigationRowInlineClasses,\n\t\t\t\tsidebarMenuDensityRecipes[density].childHeight,\n\t\t\t\tsidebarMenuSubButtonStateClasses,\n\t\t\t\ttone === 'secondary' && sidebarSecondaryRowClasses,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdata-tone={tone === 'secondary' ? tone : undefined}\n\t\t\tisActive={active}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderSidebarMenuText(children)}\n\t\t</SidebarMenuSubButtonPrimitive>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tchildren,\n\tcompact = false,\n\t...props\n}: SidebarGroupLabelProps) {\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? <DisplayLabel>{children}</DisplayLabel>\n\t\t\t: children;\n\n\treturn (\n\t\t<SidebarGroupLabelPrimitive\n\t\t\tdata-compact={compact || undefined}\n\t\t\tclassName={cn('sidebar-group-label--component px-control-sm group-data-[collapsible=icon]:hidden', compact ? 'mb-0 h-auto' : 'mb-space-md h-action-sm', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</SidebarGroupLabelPrimitive>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRegion,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n};\n\n/** Internal bridge for the layout layer; not part of the base package entrypoint. */\nexport const useBaseSidebarContext = useSidebarPrimitive;\n\n/** Lets composed layouts omit a sidebar control when no provider is present. */\nexport function useHasSidebarProvider() {\n\treturn useSidebarStore() !== null;\n}\n\n/** Internal density bridge for composed navigation; not a base entrypoint export. */\nexport function useBaseSidebarMenuDensity() {\n\treturn React.useContext(SidebarMenuDensityContext);\n}\n\nexport type { SidebarPanelId, SidebarPresentation };\n"],"mappings":"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"}
|