@womp/kookie-ui 0.14.4 → 0.15.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/README.md +2 -2
- package/components.css +711 -2741
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +4 -4
- package/dist/cjs/components/_internal/base-button.props.d.ts +2 -9
- package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.props.js +1 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +2 -9
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -28
- package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-menu.utils.d.ts +2 -9
- package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js.map +4 -4
- package/dist/cjs/components/_internal/base-radio.props.d.ts +1 -8
- package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -6
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
- package/dist/cjs/components/_internal/menu-context.js +1 -1
- package/dist/cjs/components/_internal/menu-context.js.map +4 -4
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +2 -2
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +2 -2
- package/dist/cjs/components/_internal/shell-pane.d.ts +2 -3
- package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-pane.js +1 -1
- package/dist/cjs/components/_internal/shell-pane.js.map +2 -2
- package/dist/cjs/components/_internal/shell-sidebar.d.ts +0 -4
- package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/cjs/components/_internal/shell-store.d.ts +4 -4
- package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-store.js +1 -1
- package/dist/cjs/components/_internal/shell-store.js.map +1 -1
- package/dist/cjs/components/accordion.d.ts.map +1 -1
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +4 -4
- package/dist/cjs/components/accordion.props.d.ts +4 -15
- package/dist/cjs/components/accordion.props.d.ts.map +1 -1
- package/dist/cjs/components/accordion.props.js +1 -1
- package/dist/cjs/components/accordion.props.js.map +4 -4
- package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +4 -4
- package/dist/cjs/components/alert-dialog.props.d.ts +0 -5
- package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
- package/dist/cjs/components/alert-dialog.props.js +1 -1
- package/dist/cjs/components/alert-dialog.props.js.map +3 -3
- package/dist/cjs/components/avatar.d.ts.map +1 -1
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +4 -4
- package/dist/cjs/components/avatar.props.d.ts +2 -17
- package/dist/cjs/components/avatar.props.d.ts.map +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +4 -4
- package/dist/cjs/components/badge.d.ts.map +1 -1
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +4 -4
- package/dist/cjs/components/badge.props.d.ts +1 -16
- package/dist/cjs/components/badge.props.d.ts.map +1 -1
- package/dist/cjs/components/badge.props.js +1 -1
- package/dist/cjs/components/badge.props.js.map +4 -4
- package/dist/cjs/components/blockquote.js.map +1 -1
- package/dist/cjs/components/blockquote.props.d.ts +1 -1
- package/dist/cjs/components/blockquote.props.js +1 -1
- package/dist/cjs/components/blockquote.props.js.map +2 -2
- package/dist/cjs/components/button.d.ts +2 -39
- package/dist/cjs/components/button.d.ts.map +1 -1
- package/dist/cjs/components/button.js +2 -2
- package/dist/cjs/components/button.js.map +4 -4
- package/dist/cjs/components/button.props.js +1 -1
- package/dist/cjs/components/button.props.js.map +4 -4
- package/dist/cjs/components/card.d.ts.map +1 -1
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +4 -4
- package/dist/cjs/components/card.props.d.ts +1 -8
- package/dist/cjs/components/card.props.d.ts.map +1 -1
- package/dist/cjs/components/card.props.js +1 -1
- package/dist/cjs/components/card.props.js.map +4 -4
- package/dist/cjs/components/chatbar.d.ts +1 -3
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js +2 -2
- package/dist/cjs/components/chatbar.js.map +4 -4
- package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-cards.js +1 -1
- package/dist/cjs/components/checkbox-cards.js.map +4 -4
- package/dist/cjs/components/checkbox-cards.props.d.ts +2 -10
- package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-cards.props.js +1 -1
- package/dist/cjs/components/checkbox-cards.props.js.map +4 -4
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +4 -4
- package/dist/cjs/components/checkbox-group.props.d.ts +2 -8
- package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.props.js +1 -1
- package/dist/cjs/components/checkbox-group.props.js.map +4 -4
- package/dist/cjs/components/checkbox.d.ts.map +1 -1
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +4 -4
- package/dist/cjs/components/checkbox.props.js +1 -1
- package/dist/cjs/components/checkbox.props.js.map +4 -4
- package/dist/cjs/components/code.js +1 -1
- package/dist/cjs/components/code.js.map +2 -2
- package/dist/cjs/components/code.props.d.ts +1 -1
- package/dist/cjs/components/code.props.js +1 -1
- package/dist/cjs/components/code.props.js.map +2 -2
- package/dist/cjs/components/combobox.d.ts.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +4 -4
- package/dist/cjs/components/combobox.props.d.ts +1 -20
- package/dist/cjs/components/combobox.props.d.ts.map +1 -1
- package/dist/cjs/components/combobox.props.js +1 -1
- package/dist/cjs/components/combobox.props.js.map +4 -4
- package/dist/cjs/components/context-menu.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +4 -4
- package/dist/cjs/components/context-menu.props.js +1 -1
- package/dist/cjs/components/context-menu.props.js.map +3 -3
- package/dist/cjs/components/data-list.js.map +1 -1
- package/dist/cjs/components/data-list.props.js.map +1 -1
- package/dist/cjs/components/dialog.d.ts.map +1 -1
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +4 -4
- package/dist/cjs/components/dialog.props.d.ts +0 -5
- package/dist/cjs/components/dialog.props.d.ts.map +1 -1
- package/dist/cjs/components/dialog.props.js +1 -1
- package/dist/cjs/components/dialog.props.js.map +3 -3
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.props.js +1 -1
- package/dist/cjs/components/dropdown-menu.props.js.map +3 -3
- package/dist/cjs/components/heading.js.map +1 -1
- package/dist/cjs/components/heading.props.js.map +1 -1
- package/dist/cjs/components/hover-card.js +1 -1
- package/dist/cjs/components/hover-card.js.map +4 -4
- package/dist/cjs/components/icon-button.d.ts +1 -1
- package/dist/cjs/components/icon-button.d.ts.map +1 -1
- package/dist/cjs/components/icon-button.js +2 -2
- package/dist/cjs/components/icon-button.js.map +4 -4
- package/dist/cjs/components/icon-button.props.js +1 -1
- package/dist/cjs/components/icon-button.props.js.map +4 -4
- package/dist/cjs/components/image.d.ts +0 -5
- package/dist/cjs/components/image.d.ts.map +1 -1
- package/dist/cjs/components/image.js +1 -1
- package/dist/cjs/components/image.js.map +3 -3
- package/dist/cjs/components/index.d.ts +0 -3
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/kbd.js +1 -1
- package/dist/cjs/components/kbd.js.map +4 -4
- package/dist/cjs/components/kbd.props.d.ts +2 -4
- package/dist/cjs/components/kbd.props.d.ts.map +1 -1
- package/dist/cjs/components/kbd.props.js +1 -1
- package/dist/cjs/components/kbd.props.js.map +4 -4
- package/dist/cjs/components/link.js +1 -1
- package/dist/cjs/components/link.js.map +2 -2
- package/dist/cjs/components/link.props.d.ts +1 -1
- package/dist/cjs/components/link.props.js +1 -1
- package/dist/cjs/components/link.props.js.map +2 -2
- package/dist/cjs/components/message-scroller.js +2 -2
- package/dist/cjs/components/message-scroller.js.map +4 -4
- package/dist/cjs/components/notice.js +2 -2
- package/dist/cjs/components/notice.js.map +4 -4
- package/dist/cjs/components/popover.d.ts.map +1 -1
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +4 -4
- package/dist/cjs/components/popover.props.d.ts +0 -6
- package/dist/cjs/components/popover.props.d.ts.map +1 -1
- package/dist/cjs/components/popover.props.js +1 -1
- package/dist/cjs/components/popover.props.js.map +3 -3
- package/dist/cjs/components/progress.js.map +1 -1
- package/dist/cjs/components/progress.props.js.map +1 -1
- package/dist/cjs/components/radio-cards.d.ts.map +1 -1
- package/dist/cjs/components/radio-cards.js +1 -1
- package/dist/cjs/components/radio-cards.js.map +4 -4
- package/dist/cjs/components/radio-cards.props.d.ts +2 -10
- package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-cards.props.js +1 -1
- package/dist/cjs/components/radio-cards.props.js.map +4 -4
- package/dist/cjs/components/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.js.map +4 -4
- package/dist/cjs/components/radio-group.props.d.ts +1 -3
- package/dist/cjs/components/radio-group.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.props.js +1 -1
- package/dist/cjs/components/radio-group.props.js.map +4 -4
- package/dist/cjs/components/radio.d.ts.map +1 -1
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +4 -4
- package/dist/cjs/components/radio.props.js +1 -1
- package/dist/cjs/components/radio.props.js.map +4 -4
- package/dist/cjs/components/schemas/base-button.schema.d.ts +0 -7
- package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/button.schema.d.ts +7 -73
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/button.schema.js +1 -1
- package/dist/cjs/components/schemas/button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/icon-button.schema.d.ts +0 -7
- package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
- package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/index.js +1 -1
- package/dist/cjs/components/schemas/index.js.map +2 -2
- package/dist/cjs/components/schemas/shell.schema.d.ts +5 -29
- package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/shell.schema.js +1 -1
- package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts +7 -73
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +0 -7
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
- package/dist/cjs/components/segmented-control.d.ts.map +1 -1
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/segmented-control.js.map +4 -4
- package/dist/cjs/components/segmented-control.props.d.ts +0 -11
- package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
- package/dist/cjs/components/segmented-control.props.js +1 -1
- package/dist/cjs/components/segmented-control.props.js.map +3 -3
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +4 -4
- package/dist/cjs/components/select.props.d.ts +1 -14
- package/dist/cjs/components/select.props.d.ts.map +1 -1
- package/dist/cjs/components/select.props.js +1 -1
- package/dist/cjs/components/select.props.js.map +4 -4
- package/dist/cjs/components/separator.js.map +1 -1
- package/dist/cjs/components/separator.props.js.map +1 -1
- package/dist/cjs/components/sheet.d.ts +1 -2
- package/dist/cjs/components/sheet.d.ts.map +1 -1
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +4 -4
- package/dist/cjs/components/shell.context.js +1 -1
- package/dist/cjs/components/shell.context.js.map +2 -2
- package/dist/cjs/components/shell.hooks.js.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/shell.types.d.ts +1 -1
- package/dist/cjs/components/shell.types.d.ts.map +1 -1
- package/dist/cjs/components/shell.types.js.map +1 -1
- package/dist/cjs/components/sidebar.d.ts +2 -92
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/slider.js.map +1 -1
- package/dist/cjs/components/slider.props.js.map +1 -1
- package/dist/cjs/components/switch.d.ts.map +1 -1
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +3 -3
- package/dist/cjs/components/switch.props.d.ts +0 -18
- package/dist/cjs/components/switch.props.d.ts.map +1 -1
- package/dist/cjs/components/switch.props.js +1 -1
- package/dist/cjs/components/switch.props.js.map +3 -3
- package/dist/cjs/components/tab-nav.d.ts.map +1 -1
- package/dist/cjs/components/tab-nav.js +1 -1
- package/dist/cjs/components/tab-nav.js.map +4 -4
- package/dist/cjs/components/tab-nav.props.js +1 -1
- package/dist/cjs/components/tab-nav.props.js.map +3 -3
- package/dist/cjs/components/tabs.d.ts.map +1 -1
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +4 -4
- package/dist/cjs/components/tabs.props.js +1 -1
- package/dist/cjs/components/tabs.props.js.map +3 -3
- package/dist/cjs/components/text-area.d.ts.map +1 -1
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +4 -4
- package/dist/cjs/components/text-area.props.d.ts +1 -12
- package/dist/cjs/components/text-area.props.d.ts.map +1 -1
- package/dist/cjs/components/text-area.props.js +1 -1
- package/dist/cjs/components/text-area.props.js.map +4 -4
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +4 -4
- package/dist/cjs/components/text-field.props.d.ts +1 -12
- package/dist/cjs/components/text-field.props.d.ts.map +1 -1
- package/dist/cjs/components/text-field.props.js +1 -1
- package/dist/cjs/components/text-field.props.js.map +4 -4
- package/dist/cjs/components/text.js.map +1 -1
- package/dist/cjs/components/text.props.js.map +1 -1
- package/dist/cjs/components/theme-panel.d.ts.map +1 -1
- package/dist/cjs/components/theme-panel.js +3 -3
- package/dist/cjs/components/theme-panel.js.map +4 -4
- package/dist/cjs/components/theme.d.ts +0 -3
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +4 -4
- package/dist/cjs/components/theme.props.d.ts +1 -19
- package/dist/cjs/components/theme.props.d.ts.map +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +3 -3
- package/dist/cjs/components/toggle-button.d.ts.map +1 -1
- package/dist/cjs/components/toggle-button.js +3 -3
- package/dist/cjs/components/toggle-button.js.map +4 -4
- package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
- package/dist/cjs/components/toggle-icon-button.js +3 -3
- package/dist/cjs/components/toggle-icon-button.js.map +4 -4
- package/dist/cjs/components/toolbar.d.ts +1 -1
- package/dist/cjs/components/toolbar.d.ts.map +1 -1
- package/dist/cjs/components/toolbar.js +2 -2
- package/dist/cjs/components/toolbar.js.map +4 -4
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +4 -4
- package/dist/cjs/components/virtual-menu.js +1 -1
- package/dist/cjs/components/virtual-menu.js.map +4 -4
- package/dist/cjs/helpers/index.js +4 -4
- package/dist/cjs/helpers/index.js.map +3 -3
- package/dist/cjs/helpers/map-prop-values.d.ts +1 -4
- package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/cjs/helpers/map-prop-values.js +1 -1
- package/dist/cjs/helpers/map-prop-values.js.map +3 -3
- package/dist/cjs/hooks/use-breakpoint.js.map +1 -1
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/color.prop.d.ts.map +1 -1
- package/dist/cjs/props/color.prop.js.map +2 -2
- package/dist/cjs/props/index.d.ts +0 -1
- package/dist/cjs/props/index.d.ts.map +1 -1
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +4 -4
- package/dist/esm/chunk-23WDP4JG.js +2 -0
- package/dist/esm/chunk-23WDP4JG.js.map +7 -0
- package/dist/esm/{chunk-K7BWSYVP.js → chunk-2IPVLV6B.js} +2 -2
- package/dist/esm/{chunk-SQ4BU4GH.js → chunk-2NNB4ZZ5.js} +2 -2
- package/dist/esm/{chunk-57XCVY6J.js → chunk-2PO6TZ7L.js} +2 -2
- package/dist/esm/{chunk-57XCVY6J.js.map → chunk-2PO6TZ7L.js.map} +1 -1
- package/dist/esm/{chunk-JXVUTFQN.js → chunk-2XSRO44Q.js} +2 -2
- package/dist/esm/{chunk-Z4DTHR2S.js → chunk-34KVYDF6.js} +1 -1
- package/dist/esm/{chunk-Z4DTHR2S.js.map → chunk-34KVYDF6.js.map} +2 -2
- package/dist/esm/{chunk-KXSMY4ZF.js → chunk-35KS5AQE.js} +2 -2
- package/dist/esm/chunk-3OABA7AF.js +2 -0
- package/dist/esm/chunk-3OABA7AF.js.map +7 -0
- package/dist/esm/chunk-3PT3AOD5.js +2 -0
- package/dist/esm/chunk-3PT3AOD5.js.map +7 -0
- package/dist/esm/{chunk-A2XVR7GL.js → chunk-3PTKPDSA.js} +2 -2
- package/dist/esm/chunk-3PTKPDSA.js.map +7 -0
- package/dist/esm/chunk-4D7OU2UA.js +2 -0
- package/dist/esm/chunk-4D7OU2UA.js.map +7 -0
- package/dist/esm/chunk-4FQLRQKJ.js +2 -0
- package/dist/esm/chunk-4FQLRQKJ.js.map +7 -0
- package/dist/esm/chunk-5AHQJB6H.js +2 -0
- package/dist/esm/{chunk-RWN22S44.js.map → chunk-5AHQJB6H.js.map} +2 -2
- package/dist/esm/chunk-5EAMAW2H.js +2 -0
- package/dist/esm/chunk-5EAMAW2H.js.map +7 -0
- package/dist/esm/chunk-5GYIQIPW.js +2 -0
- package/dist/esm/chunk-5GYIQIPW.js.map +7 -0
- package/dist/esm/chunk-5PG5YGIW.js +2 -0
- package/dist/esm/chunk-5PG5YGIW.js.map +7 -0
- package/dist/esm/{chunk-34UMKY2L.js → chunk-5RHODJDJ.js} +2 -2
- package/dist/esm/chunk-5ROQAZ7J.js +2 -0
- package/dist/esm/{chunk-GMHA5CFH.js.map → chunk-5ROQAZ7J.js.map} +2 -2
- package/dist/esm/chunk-5SQL4ZRC.js +2 -0
- package/dist/esm/chunk-5SQL4ZRC.js.map +7 -0
- package/dist/esm/{chunk-YA5DF67M.js → chunk-5YLKKQFK.js} +1 -1
- package/dist/esm/chunk-5YLKKQFK.js.map +7 -0
- package/dist/esm/{chunk-ZQVYY7UT.js → chunk-672FI4OH.js} +2 -2
- package/dist/esm/{chunk-T6Z4JUH6.js → chunk-6ERCPRXX.js} +2 -2
- package/dist/esm/chunk-7BE6N3KY.js +2 -0
- package/dist/esm/chunk-7BE6N3KY.js.map +7 -0
- package/dist/esm/{chunk-PXUQEA77.js → chunk-7CBZFHSQ.js} +2 -2
- package/dist/esm/{chunk-VJXHEDCE.js → chunk-7UW7D77E.js} +2 -2
- package/dist/esm/{chunk-62CJL5G7.js → chunk-A2NG5NRN.js} +2 -2
- package/dist/esm/{chunk-RUPET4E7.js → chunk-A6CDNZMT.js} +2 -2
- package/dist/esm/chunk-ABQHBDM4.js +2 -0
- package/dist/esm/chunk-ABQHBDM4.js.map +7 -0
- package/dist/esm/{chunk-43A5GUSI.js → chunk-AMP7O3DM.js} +2 -2
- package/dist/esm/{chunk-UBOOUDS4.js → chunk-AO32NT75.js} +2 -2
- package/dist/esm/chunk-B72RMGWZ.js +2 -0
- package/dist/esm/chunk-B72RMGWZ.js.map +7 -0
- package/dist/esm/{chunk-HFVD7W6R.js → chunk-BFLO4IVZ.js} +2 -2
- package/dist/esm/{chunk-SQZ5O7QS.js → chunk-BQE543O5.js} +2 -2
- package/dist/esm/chunk-C7JXVNMI.js +2 -0
- package/dist/esm/chunk-C7JXVNMI.js.map +7 -0
- package/dist/esm/chunk-CAUFRKTK.js +2 -0
- package/dist/esm/chunk-CAUFRKTK.js.map +7 -0
- package/dist/esm/chunk-CJ4UZDW5.js +2 -0
- package/dist/esm/chunk-CJ4UZDW5.js.map +7 -0
- package/dist/esm/{chunk-O2WPAUQN.js → chunk-CL6LRPCS.js} +2 -2
- package/dist/esm/chunk-CYXBQRQK.js +2 -0
- package/dist/esm/chunk-CYXBQRQK.js.map +7 -0
- package/dist/esm/chunk-DD5QHU6R.js +2 -0
- package/dist/esm/chunk-DD5QHU6R.js.map +7 -0
- package/dist/esm/chunk-DIGT74P3.js +2 -0
- package/dist/esm/chunk-DIGT74P3.js.map +7 -0
- package/dist/esm/{chunk-3OQM7SLQ.js → chunk-DQTJMIRO.js} +2 -2
- package/dist/esm/{chunk-GLERJXVS.js → chunk-DSB3TEAQ.js} +2 -2
- package/dist/esm/chunk-E5DJILUI.js +2 -0
- package/dist/esm/chunk-E5DJILUI.js.map +7 -0
- package/dist/esm/chunk-EJG2UNTM.js +2 -0
- package/dist/esm/chunk-EJG2UNTM.js.map +7 -0
- package/dist/esm/{chunk-HIBX2EXV.js → chunk-ELZEAEN2.js} +2 -2
- package/dist/esm/{chunk-IV4YJRVR.js → chunk-EVTNB4TB.js} +2 -2
- package/dist/esm/{chunk-CYSDGVKF.js → chunk-F2XQYWBE.js} +2 -2
- package/dist/esm/chunk-F2XQYWBE.js.map +7 -0
- package/dist/esm/chunk-FK6F6ROH.js +2 -0
- package/dist/esm/chunk-FK6F6ROH.js.map +7 -0
- package/dist/esm/chunk-GS2QSZUR.js +2 -0
- package/dist/esm/chunk-GS2QSZUR.js.map +7 -0
- package/dist/esm/{chunk-SGUTNJUO.js → chunk-GVLTTTFL.js} +2 -2
- package/dist/esm/chunk-HI3JY3DJ.js +2 -0
- package/dist/esm/chunk-HI3JY3DJ.js.map +7 -0
- package/dist/esm/{chunk-CIKDGYX3.js → chunk-HVQ3SLQC.js} +2 -2
- package/dist/esm/chunk-I53SGTKV.js +2 -0
- package/dist/esm/chunk-I53SGTKV.js.map +7 -0
- package/dist/esm/chunk-IMYZP5OY.js +2 -0
- package/dist/esm/chunk-IMYZP5OY.js.map +7 -0
- package/dist/esm/{chunk-N6Q3L64W.js → chunk-IYFDCW7Y.js} +2 -2
- package/dist/esm/chunk-IYXR46Q6.js +5 -0
- package/dist/esm/chunk-IYXR46Q6.js.map +7 -0
- package/dist/esm/chunk-JGB6LNTP.js +2 -0
- package/dist/esm/chunk-JGB6LNTP.js.map +7 -0
- package/dist/esm/chunk-JLHJHYVQ.js +2 -0
- package/dist/esm/chunk-JLHJHYVQ.js.map +7 -0
- package/dist/esm/{chunk-7FC7HF76.js → chunk-JLI7WHV6.js} +2 -2
- package/dist/esm/{chunk-OW4KAIWF.js → chunk-JQURG6CB.js} +2 -2
- package/dist/esm/{chunk-GONBMSRL.js → chunk-JZD5FHSU.js} +2 -2
- package/dist/esm/{chunk-EUSMN3K7.js → chunk-K5SC3CZZ.js} +2 -2
- package/dist/esm/{chunk-UBWRIE4C.js → chunk-K7J23OPW.js} +2 -2
- package/dist/esm/{chunk-UTHTSYSL.js → chunk-K7XY7FLD.js} +2 -2
- package/dist/esm/chunk-K7XY7FLD.js.map +7 -0
- package/dist/esm/chunk-KA5XDSKH.js +2 -0
- package/dist/esm/chunk-KA5XDSKH.js.map +7 -0
- package/dist/esm/chunk-L6M2MI7Y.js +2 -0
- package/dist/esm/chunk-L6M2MI7Y.js.map +7 -0
- package/dist/esm/chunk-LRFAOQK6.js +2 -0
- package/dist/esm/chunk-LRFAOQK6.js.map +7 -0
- package/dist/esm/chunk-LXSARUXD.js +2 -0
- package/dist/esm/chunk-LXSARUXD.js.map +7 -0
- package/dist/esm/{chunk-7ZCQAMHZ.js → chunk-MD3QCXRD.js} +2 -2
- package/dist/esm/chunk-MGQ4A2FI.js +2 -0
- package/dist/esm/{chunk-CMEKH4I5.js → chunk-MGSHX5N5.js} +2 -2
- package/dist/esm/chunk-MLJLEOZ5.js +2 -0
- package/dist/esm/chunk-MLJLEOZ5.js.map +7 -0
- package/dist/esm/chunk-MNC2O6QW.js +2 -0
- package/dist/esm/chunk-MNC2O6QW.js.map +7 -0
- package/dist/esm/chunk-MOMYWKIO.js +2 -0
- package/dist/esm/chunk-MOMYWKIO.js.map +7 -0
- package/dist/esm/{chunk-T7Q6DQRD.js → chunk-MQT3YJKY.js} +2 -2
- package/dist/esm/chunk-MQT3YJKY.js.map +7 -0
- package/dist/esm/{chunk-ZE2GWHPY.js → chunk-MVW2SY4F.js} +2 -2
- package/dist/esm/{chunk-KJTEZVOF.js → chunk-O6K6RZXY.js} +2 -2
- package/dist/esm/{chunk-JUY7CBSL.js → chunk-PBFSBHBS.js} +2 -2
- package/dist/esm/{chunk-3HGHPAH4.js → chunk-PDBVZAUJ.js} +2 -2
- package/dist/esm/chunk-PRRJ4WRE.js +2 -0
- package/dist/esm/chunk-PRRJ4WRE.js.map +7 -0
- package/dist/esm/chunk-PSS45RHX.js +2 -0
- package/dist/esm/{chunk-4JNHUPIM.js.map → chunk-PSS45RHX.js.map} +3 -3
- package/dist/esm/chunk-PTEAQFHI.js +2 -0
- package/dist/esm/chunk-PTEAQFHI.js.map +7 -0
- package/dist/esm/chunk-QDW5ZG5E.js +1 -0
- package/dist/esm/chunk-QE2EF7A7.js +2 -0
- package/dist/esm/chunk-QE2EF7A7.js.map +7 -0
- package/dist/esm/{chunk-R2MQMCND.js → chunk-QJFAGWBO.js} +2 -2
- package/dist/esm/chunk-QJSSCW3B.js +2 -0
- package/dist/esm/chunk-QJSSCW3B.js.map +7 -0
- package/dist/esm/chunk-QPNYHS6A.js +2 -0
- package/dist/esm/chunk-QPNYHS6A.js.map +7 -0
- package/dist/esm/chunk-QWFFYUFH.js +2 -0
- package/dist/esm/chunk-QWFFYUFH.js.map +7 -0
- package/dist/esm/{chunk-TCEQ5VVE.js → chunk-R4CN4Q3G.js} +2 -2
- package/dist/esm/chunk-RA4U6VVZ.js +2 -0
- package/dist/esm/chunk-RA4U6VVZ.js.map +7 -0
- package/dist/esm/{chunk-HJLBVNQE.js → chunk-RYURXQLJ.js} +2 -2
- package/dist/esm/{chunk-RUOOCYK4.js → chunk-S53ZQNHK.js} +2 -2
- package/dist/esm/chunk-SHFBYYEP.js +2 -0
- package/dist/esm/chunk-SHFBYYEP.js.map +7 -0
- package/dist/esm/{chunk-5G4WWJ4Z.js → chunk-T5DSQKKF.js} +2 -2
- package/dist/esm/{chunk-3XSB7YIM.js → chunk-TBZO22XK.js} +2 -2
- package/dist/esm/{chunk-C7UXUTUF.js → chunk-TGRRQHLQ.js} +2 -2
- package/dist/esm/{chunk-IVBKTHDM.js → chunk-TPHNDGSV.js} +2 -2
- package/dist/esm/chunk-TY3DIJFF.js +10 -0
- package/dist/esm/chunk-TY3DIJFF.js.map +7 -0
- package/dist/esm/chunk-UA6FP7HS.js +2 -0
- package/dist/esm/{chunk-6FLLFCBU.js → chunk-UBSLEGQZ.js} +2 -2
- package/dist/esm/chunk-UI2EFF6F.js +2 -0
- package/dist/esm/chunk-UI2EFF6F.js.map +7 -0
- package/dist/esm/chunk-ULSNYQOY.js +2 -0
- package/dist/esm/{chunk-XKBLNVOD.js.map → chunk-ULSNYQOY.js.map} +1 -1
- package/dist/esm/chunk-UPCRXJB2.js +2 -0
- package/dist/esm/chunk-UPCRXJB2.js.map +7 -0
- package/dist/esm/chunk-URLG45A4.js +2 -0
- package/dist/esm/chunk-URLG45A4.js.map +7 -0
- package/dist/esm/{chunk-LJXP6K5Y.js → chunk-V2TPYSZ2.js} +2 -2
- package/dist/esm/chunk-V7UP4SLZ.js +2 -0
- package/dist/esm/chunk-V7UP4SLZ.js.map +7 -0
- package/dist/esm/{chunk-FMMKOOS7.js → chunk-VASXAV62.js} +2 -2
- package/dist/esm/chunk-VASXAV62.js.map +7 -0
- package/dist/esm/chunk-VSSJTPBV.js +2 -0
- package/dist/esm/chunk-VSSJTPBV.js.map +7 -0
- package/dist/esm/chunk-W7VAP3WE.js +2 -0
- package/dist/esm/chunk-W7VAP3WE.js.map +7 -0
- package/dist/esm/chunk-WGNIFXUE.js +2 -0
- package/dist/esm/chunk-WGNIFXUE.js.map +7 -0
- package/dist/esm/chunk-WNSG5P3U.js +2 -0
- package/dist/esm/chunk-WNSG5P3U.js.map +7 -0
- package/dist/esm/{chunk-YLLCCUC7.js → chunk-X3UTLDGG.js} +2 -2
- package/dist/esm/chunk-XCDXQLWS.js +2 -0
- package/dist/esm/chunk-XCDXQLWS.js.map +7 -0
- package/dist/esm/{chunk-3UZHKW6I.js → chunk-XHF6RBOE.js} +2 -2
- package/dist/esm/{chunk-IPHKKZYE.js → chunk-XHKL4PG7.js} +2 -2
- package/dist/esm/chunk-XKAWVGBL.js +2 -0
- package/dist/esm/chunk-XKAWVGBL.js.map +7 -0
- package/dist/esm/{chunk-PAEHH3WS.js → chunk-XZ5XZS5O.js} +2 -2
- package/dist/esm/chunk-Y3FVBAN2.js +2 -0
- package/dist/esm/chunk-Y3FVBAN2.js.map +7 -0
- package/dist/esm/chunk-Y4IB7KDZ.js +5 -0
- package/dist/esm/chunk-Y4IB7KDZ.js.map +7 -0
- package/dist/esm/chunk-YKGLZEXX.js +2 -0
- package/dist/esm/{chunk-VBAXORVV.js.map → chunk-YKGLZEXX.js.map} +3 -3
- package/dist/esm/chunk-Z2LGVLUB.js +2 -0
- package/dist/esm/chunk-Z2LGVLUB.js.map +7 -0
- package/dist/esm/chunk-ZMFZYXLB.js +2 -0
- package/dist/esm/chunk-ZMFZYXLB.js.map +7 -0
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.props.d.ts +2 -9
- package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +2 -9
- package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.props.d.ts +0 -28
- package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.d.ts +2 -9
- package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.d.ts +1 -8
- package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -6
- package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-pane.d.ts +2 -3
- package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-pane.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.d.ts +0 -4
- package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/_internal/shell-store.d.ts +4 -4
- package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-store.js +1 -1
- package/dist/esm/components/accordion.d.ts.map +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.props.d.ts +4 -15
- package/dist/esm/components/accordion.props.d.ts.map +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.props.d.ts +0 -5
- package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
- package/dist/esm/components/alert-dialog.props.js +1 -1
- package/dist/esm/components/avatar.d.ts.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.props.d.ts +2 -17
- package/dist/esm/components/avatar.props.d.ts.map +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/badge.d.ts.map +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.props.d.ts +1 -16
- package/dist/esm/components/badge.props.d.ts.map +1 -1
- package/dist/esm/components/badge.props.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.d.ts +1 -1
- package/dist/esm/components/blockquote.props.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/button.d.ts +2 -39
- package/dist/esm/components/button.d.ts.map +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.props.js +1 -1
- package/dist/esm/components/card.d.ts.map +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.props.d.ts +1 -8
- package/dist/esm/components/card.props.d.ts.map +1 -1
- package/dist/esm/components/card.props.js +1 -1
- package/dist/esm/components/chatbar.d.ts +1 -3
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
- package/dist/esm/components/checkbox-cards.js +1 -1
- package/dist/esm/components/checkbox-cards.props.d.ts +2 -10
- package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-cards.props.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.props.d.ts +2 -8
- package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.d.ts.map +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.d.ts +1 -1
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.d.ts +1 -20
- package/dist/esm/components/combobox.props.d.ts.map +1 -1
- package/dist/esm/components/combobox.props.js +1 -1
- package/dist/esm/components/container.js +1 -1
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.props.js +1 -1
- package/dist/esm/components/data-list.js +1 -1
- package/dist/esm/components/data-list.props.js +1 -1
- package/dist/esm/components/dialog.d.ts.map +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.props.d.ts +0 -5
- package/dist/esm/components/dialog.props.d.ts.map +1 -1
- package/dist/esm/components/dialog.props.js +1 -1
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.props.js +1 -1
- package/dist/esm/components/em.js +1 -1
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.props.js +1 -1
- package/dist/esm/components/hover-card.js +1 -1
- package/dist/esm/components/icon-button.d.ts +1 -1
- package/dist/esm/components/icon-button.d.ts.map +1 -1
- package/dist/esm/components/icon-button.js +1 -1
- package/dist/esm/components/icon-button.props.js +1 -1
- package/dist/esm/components/image.d.ts +0 -5
- package/dist/esm/components/image.d.ts.map +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/index.d.ts +0 -3
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/inset.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.props.d.ts +2 -4
- package/dist/esm/components/kbd.props.d.ts.map +1 -1
- package/dist/esm/components/kbd.props.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.d.ts +1 -1
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/popover.d.ts.map +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.props.d.ts +0 -6
- package/dist/esm/components/popover.props.d.ts.map +1 -1
- package/dist/esm/components/popover.props.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.props.js +1 -1
- package/dist/esm/components/quote.js +1 -1
- package/dist/esm/components/radio-cards.d.ts.map +1 -1
- package/dist/esm/components/radio-cards.js +1 -1
- package/dist/esm/components/radio-cards.props.d.ts +2 -10
- package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
- package/dist/esm/components/radio-cards.props.js +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.d.ts +1 -3
- package/dist/esm/components/radio-group.props.d.ts.map +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.d.ts.map +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/schemas/base-button.schema.d.ts +0 -7
- package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/base-button.schema.js +1 -1
- package/dist/esm/components/schemas/button.schema.d.ts +7 -73
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/button.schema.js +1 -1
- package/dist/esm/components/schemas/icon-button.schema.d.ts +0 -7
- package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/icon-button.schema.js +1 -1
- package/dist/esm/components/schemas/index.js +1 -1
- package/dist/esm/components/schemas/shell.schema.d.ts +5 -29
- package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/shell.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.d.ts +7 -73
- package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +0 -7
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/section.js +1 -1
- package/dist/esm/components/segmented-control.d.ts.map +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/segmented-control.props.d.ts +0 -11
- package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
- package/dist/esm/components/segmented-control.props.js +1 -1
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.props.d.ts +1 -14
- package/dist/esm/components/select.props.d.ts.map +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.js +1 -1
- package/dist/esm/components/sheet.d.ts +1 -2
- package/dist/esm/components/sheet.d.ts.map +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.hooks.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.types.d.ts +1 -1
- package/dist/esm/components/shell.types.d.ts.map +1 -1
- package/dist/esm/components/shell.types.js +1 -1
- package/dist/esm/components/sidebar.d.ts +2 -92
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/skeleton.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.props.js +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/strong.js +1 -1
- package/dist/esm/components/switch.d.ts.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.props.d.ts +0 -18
- package/dist/esm/components/switch.props.d.ts.map +1 -1
- package/dist/esm/components/switch.props.js +1 -1
- package/dist/esm/components/tab-nav.d.ts.map +1 -1
- package/dist/esm/components/tab-nav.js +1 -1
- package/dist/esm/components/tab-nav.props.js +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/tabs.d.ts.map +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.props.js +1 -1
- package/dist/esm/components/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.props.d.ts +1 -12
- package/dist/esm/components/text-area.props.d.ts.map +1 -1
- package/dist/esm/components/text-area.props.js +1 -1
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/text-field.props.d.ts +1 -12
- package/dist/esm/components/text-field.props.d.ts.map +1 -1
- package/dist/esm/components/text-field.props.js +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.props.js +1 -1
- package/dist/esm/components/theme-panel.d.ts.map +1 -1
- package/dist/esm/components/theme-panel.js +1 -1
- package/dist/esm/components/theme.d.ts +0 -3
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.props.d.ts +1 -19
- package/dist/esm/components/theme.props.d.ts.map +1 -1
- package/dist/esm/components/theme.props.js +1 -1
- package/dist/esm/components/toggle-button.d.ts.map +1 -1
- package/dist/esm/components/toggle-button.js +1 -1
- package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
- package/dist/esm/components/toggle-icon-button.js +1 -1
- package/dist/esm/components/toolbar.d.ts +1 -1
- package/dist/esm/components/toolbar.d.ts.map +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/helpers/extract-props.js +1 -1
- package/dist/esm/helpers/get-margin-styles.js +1 -1
- package/dist/esm/helpers/get-responsive-styles.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/map-prop-values.d.ts +1 -4
- package/dist/esm/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/esm/helpers/map-prop-values.js +1 -1
- package/dist/esm/hooks/use-breakpoint.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/color.prop.d.ts.map +1 -1
- package/dist/esm/props/color.prop.js +1 -1
- package/dist/esm/props/index.d.ts +0 -1
- package/dist/esm/props/index.d.ts.map +1 -1
- package/dist/esm/props/index.js +1 -1
- package/package.json +1 -2
- package/schemas/base-button.json +2 -17
- package/schemas/button.json +21 -234
- package/schemas/icon-button.json +2 -17
- package/schemas/index.json +58 -548
- package/schemas/shell-root.json +10 -0
- package/schemas/shell-sidebar.json +0 -29
- package/schemas/toggle-button.json +21 -234
- package/schemas/toggle-icon-button.json +2 -17
- package/src/components/_internal/base-button.css +7 -110
- package/src/components/_internal/base-button.props.ts +4 -8
- package/src/components/_internal/base-button.tsx +1 -6
- package/src/components/_internal/base-card.css +12 -54
- package/src/components/_internal/base-checkbox.css +9 -120
- package/src/components/_internal/base-checkbox.props.ts +3 -7
- package/src/components/_internal/base-dialog.css +5 -24
- package/src/components/_internal/base-menu.css +5 -44
- package/src/components/_internal/base-menu.props.ts +0 -20
- package/src/components/_internal/base-menu.utils.tsx +3 -13
- package/src/components/_internal/base-radio.css +8 -115
- package/src/components/_internal/base-radio.props.ts +2 -6
- package/src/components/_internal/base-sidebar-menu.css +0 -35
- package/src/components/_internal/base-sidebar.css +0 -37
- package/src/components/_internal/base-tab-list.css +8 -14
- package/src/components/_internal/base-tab-list.props.ts +3 -6
- package/src/components/_internal/shell-pane.tsx +2 -3
- package/src/components/_internal/shell-sidebar.tsx +5 -31
- package/src/components/_internal/shell-store.tsx +4 -4
- package/src/components/accordion.css +42 -95
- package/src/components/accordion.props.tsx +6 -13
- package/src/components/accordion.tsx +2 -6
- package/src/components/alert-dialog.props.tsx +0 -1
- package/src/components/alert-dialog.tsx +1 -13
- package/src/components/avatar.css +4 -31
- package/src/components/avatar.props.tsx +3 -13
- package/src/components/avatar.tsx +0 -4
- package/src/components/badge.css +1 -38
- package/src/components/badge.props.tsx +2 -12
- package/src/components/badge.tsx +0 -11
- package/src/components/blockquote.props.tsx +1 -1
- package/src/components/button.tsx +5 -85
- package/src/components/card.props.tsx +2 -6
- package/src/components/card.tsx +2 -3
- package/src/components/chatbar.css +6 -24
- package/src/components/chatbar.tsx +16 -31
- package/src/components/checkbox-cards.css +0 -1
- package/src/components/checkbox-cards.props.tsx +5 -9
- package/src/components/checkbox-cards.tsx +2 -6
- package/src/components/checkbox.tsx +0 -2
- package/src/components/code.css +20 -0
- package/src/components/code.props.tsx +1 -1
- package/src/components/combobox.css +14 -13
- package/src/components/combobox.props.tsx +2 -15
- package/src/components/combobox.tsx +7 -23
- package/src/components/context-menu.tsx +9 -18
- package/src/components/dialog.props.tsx +0 -3
- package/src/components/dialog.tsx +1 -13
- package/src/components/dropdown-menu.css +0 -21
- package/src/components/dropdown-menu.tsx +9 -20
- package/src/components/icon-button.tsx +1 -1
- package/src/components/image.css +2 -11
- package/src/components/image.tsx +2 -10
- package/src/components/index.css +0 -5
- package/src/components/index.tsx +0 -3
- package/src/components/kbd.css +37 -13
- package/src/components/kbd.props.tsx +2 -4
- package/src/components/link.props.tsx +1 -1
- package/src/components/popover.css +2 -6
- package/src/components/popover.props.tsx +3 -6
- package/src/components/popover.tsx +2 -6
- package/src/components/progress.css +12 -13
- package/src/components/radio-cards.css +0 -2
- package/src/components/radio-cards.props.tsx +5 -9
- package/src/components/radio-cards.tsx +2 -6
- package/src/components/radio-group.props.tsx +1 -2
- package/src/components/radio.tsx +1 -2
- package/src/components/reset.css +3 -16
- package/src/components/schemas/base-button.schema.ts +3 -23
- package/src/components/schemas/button.schema.ts +15 -94
- package/src/components/schemas/shell.schema.ts +2 -3
- package/src/components/scroll-area.css +0 -11
- package/src/components/segmented-control.css +11 -23
- package/src/components/segmented-control.props.tsx +0 -6
- package/src/components/segmented-control.tsx +1 -8
- package/src/components/select.css +81 -93
- package/src/components/select.props.tsx +2 -9
- package/src/components/select.tsx +2 -7
- package/src/components/sheet.css +0 -71
- package/src/components/sheet.tsx +5 -14
- package/src/components/shell.context.tsx +2 -2
- package/src/components/shell.css +7 -64
- package/src/components/shell.tsx +2 -2
- package/src/components/shell.types.ts +1 -1
- package/src/components/sidebar.css +78 -341
- package/src/components/sidebar.tsx +3 -244
- package/src/components/slider.css +12 -15
- package/src/components/spinner.css +2 -2
- package/src/components/switch.css +3 -55
- package/src/components/switch.props.tsx +0 -6
- package/src/components/switch.tsx +1 -4
- package/src/components/tab-nav.tsx +2 -5
- package/src/components/tabs.css +0 -2
- package/src/components/tabs.tsx +2 -5
- package/src/components/text-area.css +6 -13
- package/src/components/text-area.props.tsx +2 -9
- package/src/components/text-area.tsx +4 -9
- package/src/components/text-field.css +36 -44
- package/src/components/text-field.props.tsx +2 -9
- package/src/components/text-field.tsx +4 -9
- package/src/components/theme-panel.tsx +9 -13
- package/src/components/theme.props.tsx +1 -17
- package/src/components/theme.tsx +1 -26
- package/src/components/toggle-button.tsx +1 -1
- package/src/components/toggle-icon-button.tsx +6 -6
- package/src/components/toolbar.tsx +1 -4
- package/src/components/tooltip.css +1 -21
- package/src/helpers/map-prop-values.ts +1 -7
- package/src/props/color.prop.ts +1 -2
- package/src/props/index.ts +0 -1
- package/src/styles/tokens/base.css +0 -1
- package/src/styles/tokens/color.css +2 -32
- package/src/styles/tokens/constants.css +0 -90
- package/styles.css +963 -3146
- package/tokens/base.css +2 -110
- package/tokens.css +2 -155
- package/dist/cjs/components/app-bar.d.ts +0 -50
- package/dist/cjs/components/app-bar.d.ts.map +0 -1
- package/dist/cjs/components/app-bar.js +0 -2
- package/dist/cjs/components/app-bar.js.map +0 -7
- package/dist/cjs/components/callout.d.ts +0 -23
- package/dist/cjs/components/callout.d.ts.map +0 -1
- package/dist/cjs/components/callout.js +0 -2
- package/dist/cjs/components/callout.js.map +0 -7
- package/dist/cjs/components/callout.props.d.ts +0 -40
- package/dist/cjs/components/callout.props.d.ts.map +0 -1
- package/dist/cjs/components/callout.props.js +0 -2
- package/dist/cjs/components/callout.props.js.map +0 -7
- package/dist/cjs/components/sidebar.props.d.ts +0 -62
- package/dist/cjs/components/sidebar.props.d.ts.map +0 -1
- package/dist/cjs/components/sidebar.props.js +0 -2
- package/dist/cjs/components/sidebar.props.js.map +0 -7
- package/dist/cjs/components/user-card.d.ts +0 -13
- package/dist/cjs/components/user-card.d.ts.map +0 -1
- package/dist/cjs/components/user-card.js +0 -2
- package/dist/cjs/components/user-card.js.map +0 -7
- package/dist/cjs/components/user-card.props.d.ts +0 -60
- package/dist/cjs/components/user-card.props.d.ts.map +0 -1
- package/dist/cjs/components/user-card.props.js +0 -2
- package/dist/cjs/components/user-card.props.js.map +0 -7
- package/dist/cjs/helpers/parse-variant.d.ts +0 -8
- package/dist/cjs/helpers/parse-variant.d.ts.map +0 -1
- package/dist/cjs/helpers/parse-variant.js +0 -2
- package/dist/cjs/helpers/parse-variant.js.map +0 -7
- package/dist/cjs/helpers/use-deprecation-warning.d.ts +0 -10
- package/dist/cjs/helpers/use-deprecation-warning.d.ts.map +0 -1
- package/dist/cjs/helpers/use-deprecation-warning.js +0 -2
- package/dist/cjs/helpers/use-deprecation-warning.js.map +0 -7
- package/dist/esm/chunk-27SCVCQY.js +0 -2
- package/dist/esm/chunk-27SCVCQY.js.map +0 -7
- package/dist/esm/chunk-2C5WLKEZ.js +0 -2
- package/dist/esm/chunk-2C5WLKEZ.js.map +0 -7
- package/dist/esm/chunk-2D5QJ6MX.js +0 -2
- package/dist/esm/chunk-2D5QJ6MX.js.map +0 -7
- package/dist/esm/chunk-2DKLJMUU.js +0 -2
- package/dist/esm/chunk-2DKLJMUU.js.map +0 -7
- package/dist/esm/chunk-2EQWBT2S.js +0 -2
- package/dist/esm/chunk-2T74JEVN.js +0 -2
- package/dist/esm/chunk-2T74JEVN.js.map +0 -7
- package/dist/esm/chunk-3M73GWN5.js +0 -2
- package/dist/esm/chunk-3M73GWN5.js.map +0 -7
- package/dist/esm/chunk-3Q3EOUGJ.js +0 -2
- package/dist/esm/chunk-3Q3EOUGJ.js.map +0 -7
- package/dist/esm/chunk-3TIO3EMN.js +0 -2
- package/dist/esm/chunk-3TIO3EMN.js.map +0 -7
- package/dist/esm/chunk-3WCSLQNH.js +0 -2
- package/dist/esm/chunk-3WCSLQNH.js.map +0 -7
- package/dist/esm/chunk-45AMHIBO.js +0 -2
- package/dist/esm/chunk-45AMHIBO.js.map +0 -7
- package/dist/esm/chunk-47CEZJM2.js +0 -2
- package/dist/esm/chunk-47CEZJM2.js.map +0 -7
- package/dist/esm/chunk-4BPRLR6C.js +0 -2
- package/dist/esm/chunk-4BPRLR6C.js.map +0 -7
- package/dist/esm/chunk-4D5LR4H6.js +0 -2
- package/dist/esm/chunk-4D5LR4H6.js.map +0 -7
- package/dist/esm/chunk-4JNHUPIM.js +0 -2
- package/dist/esm/chunk-4WLDX7WZ.js +0 -2
- package/dist/esm/chunk-4WLDX7WZ.js.map +0 -7
- package/dist/esm/chunk-5JS7ADWX.js +0 -2
- package/dist/esm/chunk-5JS7ADWX.js.map +0 -7
- package/dist/esm/chunk-5T6K7VPP.js +0 -2
- package/dist/esm/chunk-5T6K7VPP.js.map +0 -7
- package/dist/esm/chunk-5TXQLK4G.js +0 -2
- package/dist/esm/chunk-5TXQLK4G.js.map +0 -7
- package/dist/esm/chunk-6JP5PIOO.js +0 -2
- package/dist/esm/chunk-6JP5PIOO.js.map +0 -7
- package/dist/esm/chunk-6SVNBGZ6.js +0 -5
- package/dist/esm/chunk-6SVNBGZ6.js.map +0 -7
- package/dist/esm/chunk-77TGP2LO.js +0 -2
- package/dist/esm/chunk-77TGP2LO.js.map +0 -7
- package/dist/esm/chunk-7YIQV7VO.js +0 -2
- package/dist/esm/chunk-7YIQV7VO.js.map +0 -7
- package/dist/esm/chunk-A2XVR7GL.js.map +0 -7
- package/dist/esm/chunk-ADXZNG4F.js +0 -2
- package/dist/esm/chunk-ADXZNG4F.js.map +0 -7
- package/dist/esm/chunk-AVFGMLL4.js +0 -2
- package/dist/esm/chunk-AVFGMLL4.js.map +0 -7
- package/dist/esm/chunk-BKES3M4Y.js +0 -2
- package/dist/esm/chunk-BKES3M4Y.js.map +0 -7
- package/dist/esm/chunk-C7EVYSWK.js +0 -1
- package/dist/esm/chunk-CL6P54QT.js +0 -5
- package/dist/esm/chunk-CL6P54QT.js.map +0 -7
- package/dist/esm/chunk-CSUEZWN5.js +0 -2
- package/dist/esm/chunk-CSUEZWN5.js.map +0 -7
- package/dist/esm/chunk-CYSDGVKF.js.map +0 -7
- package/dist/esm/chunk-DJA5MCJA.js +0 -2
- package/dist/esm/chunk-DJA5MCJA.js.map +0 -7
- package/dist/esm/chunk-DVSXWSAT.js +0 -2
- package/dist/esm/chunk-DVSXWSAT.js.map +0 -7
- package/dist/esm/chunk-E7LJHM3S.js +0 -2
- package/dist/esm/chunk-E7LJHM3S.js.map +0 -7
- package/dist/esm/chunk-F7TOKXKZ.js +0 -10
- package/dist/esm/chunk-F7TOKXKZ.js.map +0 -7
- package/dist/esm/chunk-FISGGGPC.js +0 -2
- package/dist/esm/chunk-FISGGGPC.js.map +0 -7
- package/dist/esm/chunk-FMMKOOS7.js.map +0 -7
- package/dist/esm/chunk-FNB47XDO.js +0 -2
- package/dist/esm/chunk-FNB47XDO.js.map +0 -7
- package/dist/esm/chunk-GCUGJXI2.js +0 -2
- package/dist/esm/chunk-GCUGJXI2.js.map +0 -7
- package/dist/esm/chunk-GLKN32J3.js +0 -2
- package/dist/esm/chunk-GLKN32J3.js.map +0 -7
- package/dist/esm/chunk-GMHA5CFH.js +0 -2
- package/dist/esm/chunk-GRRV4I2I.js +0 -2
- package/dist/esm/chunk-GRRV4I2I.js.map +0 -7
- package/dist/esm/chunk-H7LHGT44.js +0 -2
- package/dist/esm/chunk-H7LHGT44.js.map +0 -7
- package/dist/esm/chunk-HNO4X33C.js +0 -2
- package/dist/esm/chunk-HNO4X33C.js.map +0 -7
- package/dist/esm/chunk-IHRLGR6J.js +0 -2
- package/dist/esm/chunk-IHRLGR6J.js.map +0 -7
- package/dist/esm/chunk-IY3GKGDZ.js +0 -2
- package/dist/esm/chunk-IY3GKGDZ.js.map +0 -7
- package/dist/esm/chunk-JTN3KTAS.js +0 -2
- package/dist/esm/chunk-JTN3KTAS.js.map +0 -7
- package/dist/esm/chunk-KJC32RWT.js +0 -2
- package/dist/esm/chunk-KJC32RWT.js.map +0 -7
- package/dist/esm/chunk-O2RISF37.js +0 -2
- package/dist/esm/chunk-O2RISF37.js.map +0 -7
- package/dist/esm/chunk-OB3MHLQL.js +0 -2
- package/dist/esm/chunk-OB3MHLQL.js.map +0 -7
- package/dist/esm/chunk-OJSDBLP7.js +0 -2
- package/dist/esm/chunk-OJSDBLP7.js.map +0 -7
- package/dist/esm/chunk-OUSDYZDE.js +0 -2
- package/dist/esm/chunk-OUSDYZDE.js.map +0 -7
- package/dist/esm/chunk-OVGPUFRI.js +0 -2
- package/dist/esm/chunk-OVGPUFRI.js.map +0 -7
- package/dist/esm/chunk-PLTTQFRQ.js +0 -2
- package/dist/esm/chunk-PLTTQFRQ.js.map +0 -7
- package/dist/esm/chunk-RA2XCS3M.js +0 -2
- package/dist/esm/chunk-RA2XCS3M.js.map +0 -7
- package/dist/esm/chunk-ROGC7K5N.js +0 -2
- package/dist/esm/chunk-ROGC7K5N.js.map +0 -7
- package/dist/esm/chunk-RON6FXLO.js +0 -2
- package/dist/esm/chunk-RON6FXLO.js.map +0 -7
- package/dist/esm/chunk-RWN22S44.js +0 -2
- package/dist/esm/chunk-S3GZZXQ7.js +0 -2
- package/dist/esm/chunk-S3GZZXQ7.js.map +0 -7
- package/dist/esm/chunk-SIBSXKFF.js +0 -2
- package/dist/esm/chunk-SIBSXKFF.js.map +0 -7
- package/dist/esm/chunk-SURYYF7I.js +0 -2
- package/dist/esm/chunk-SURYYF7I.js.map +0 -7
- package/dist/esm/chunk-T7Q6DQRD.js.map +0 -7
- package/dist/esm/chunk-UE2OBZIS.js +0 -2
- package/dist/esm/chunk-UE2OBZIS.js.map +0 -7
- package/dist/esm/chunk-UK3BFTI2.js +0 -2
- package/dist/esm/chunk-UK3BFTI2.js.map +0 -7
- package/dist/esm/chunk-UTHTSYSL.js.map +0 -7
- package/dist/esm/chunk-V3QVAXH3.js +0 -2
- package/dist/esm/chunk-V3QVAXH3.js.map +0 -7
- package/dist/esm/chunk-V5ZSDDVZ.js +0 -2
- package/dist/esm/chunk-V5ZSDDVZ.js.map +0 -7
- package/dist/esm/chunk-VBAXORVV.js +0 -2
- package/dist/esm/chunk-VJUFYYKP.js +0 -2
- package/dist/esm/chunk-VJUFYYKP.js.map +0 -7
- package/dist/esm/chunk-VUKTURU4.js +0 -2
- package/dist/esm/chunk-VUKTURU4.js.map +0 -7
- package/dist/esm/chunk-WDNTAQ6G.js +0 -2
- package/dist/esm/chunk-WDNTAQ6G.js.map +0 -7
- package/dist/esm/chunk-WHAKQCNV.js +0 -2
- package/dist/esm/chunk-WHAKQCNV.js.map +0 -7
- package/dist/esm/chunk-WTXQB2EV.js +0 -2
- package/dist/esm/chunk-WTXQB2EV.js.map +0 -7
- package/dist/esm/chunk-XILM2OMC.js +0 -2
- package/dist/esm/chunk-XILM2OMC.js.map +0 -7
- package/dist/esm/chunk-XKBLNVOD.js +0 -2
- package/dist/esm/chunk-YA5DF67M.js.map +0 -7
- package/dist/esm/chunk-YBS2IB7Z.js +0 -2
- package/dist/esm/chunk-YBS2IB7Z.js.map +0 -7
- package/dist/esm/chunk-YL62I5SI.js +0 -2
- package/dist/esm/chunk-ZK55O7TN.js +0 -2
- package/dist/esm/chunk-ZK55O7TN.js.map +0 -7
- package/dist/esm/chunk-ZVIWTYHE.js +0 -2
- package/dist/esm/chunk-ZVIWTYHE.js.map +0 -7
- package/dist/esm/components/app-bar.d.ts +0 -50
- package/dist/esm/components/app-bar.d.ts.map +0 -1
- package/dist/esm/components/app-bar.js +0 -2
- package/dist/esm/components/app-bar.js.map +0 -7
- package/dist/esm/components/callout.d.ts +0 -23
- package/dist/esm/components/callout.d.ts.map +0 -1
- package/dist/esm/components/callout.js +0 -2
- package/dist/esm/components/callout.js.map +0 -7
- package/dist/esm/components/callout.props.d.ts +0 -40
- package/dist/esm/components/callout.props.d.ts.map +0 -1
- package/dist/esm/components/callout.props.js +0 -2
- package/dist/esm/components/callout.props.js.map +0 -7
- package/dist/esm/components/sidebar.props.d.ts +0 -62
- package/dist/esm/components/sidebar.props.d.ts.map +0 -1
- package/dist/esm/components/sidebar.props.js +0 -2
- package/dist/esm/components/sidebar.props.js.map +0 -7
- package/dist/esm/components/user-card.d.ts +0 -13
- package/dist/esm/components/user-card.d.ts.map +0 -1
- package/dist/esm/components/user-card.js +0 -2
- package/dist/esm/components/user-card.js.map +0 -7
- package/dist/esm/components/user-card.props.d.ts +0 -60
- package/dist/esm/components/user-card.props.d.ts.map +0 -1
- package/dist/esm/components/user-card.props.js +0 -2
- package/dist/esm/components/user-card.props.js.map +0 -7
- package/dist/esm/helpers/parse-variant.d.ts +0 -8
- package/dist/esm/helpers/parse-variant.d.ts.map +0 -1
- package/dist/esm/helpers/parse-variant.js +0 -2
- package/dist/esm/helpers/parse-variant.js.map +0 -7
- package/dist/esm/helpers/use-deprecation-warning.d.ts +0 -10
- package/dist/esm/helpers/use-deprecation-warning.d.ts.map +0 -1
- package/dist/esm/helpers/use-deprecation-warning.js +0 -2
- package/dist/esm/helpers/use-deprecation-warning.js.map +0 -7
- package/src/components/animations.css +0 -155
- package/src/components/app-bar.css +0 -204
- package/src/components/app-bar.tsx +0 -261
- package/src/components/callout.css +0 -160
- package/src/components/callout.props.tsx +0 -29
- package/src/components/callout.tsx +0 -120
- package/src/components/sidebar.props.tsx +0 -56
- package/src/components/user-card.css +0 -29
- package/src/components/user-card.props.tsx +0 -46
- package/src/components/user-card.tsx +0 -106
- package/src/helpers/parse-variant.ts +0 -21
- package/src/helpers/use-deprecation-warning.ts +0 -26
- package/src/styles/tokens/transition.css +0 -189
- /package/dist/esm/{chunk-K7BWSYVP.js.map → chunk-2IPVLV6B.js.map} +0 -0
- /package/dist/esm/{chunk-SQ4BU4GH.js.map → chunk-2NNB4ZZ5.js.map} +0 -0
- /package/dist/esm/{chunk-JXVUTFQN.js.map → chunk-2XSRO44Q.js.map} +0 -0
- /package/dist/esm/{chunk-KXSMY4ZF.js.map → chunk-35KS5AQE.js.map} +0 -0
- /package/dist/esm/{chunk-34UMKY2L.js.map → chunk-5RHODJDJ.js.map} +0 -0
- /package/dist/esm/{chunk-ZQVYY7UT.js.map → chunk-672FI4OH.js.map} +0 -0
- /package/dist/esm/{chunk-T6Z4JUH6.js.map → chunk-6ERCPRXX.js.map} +0 -0
- /package/dist/esm/{chunk-PXUQEA77.js.map → chunk-7CBZFHSQ.js.map} +0 -0
- /package/dist/esm/{chunk-VJXHEDCE.js.map → chunk-7UW7D77E.js.map} +0 -0
- /package/dist/esm/{chunk-62CJL5G7.js.map → chunk-A2NG5NRN.js.map} +0 -0
- /package/dist/esm/{chunk-RUPET4E7.js.map → chunk-A6CDNZMT.js.map} +0 -0
- /package/dist/esm/{chunk-43A5GUSI.js.map → chunk-AMP7O3DM.js.map} +0 -0
- /package/dist/esm/{chunk-UBOOUDS4.js.map → chunk-AO32NT75.js.map} +0 -0
- /package/dist/esm/{chunk-HFVD7W6R.js.map → chunk-BFLO4IVZ.js.map} +0 -0
- /package/dist/esm/{chunk-SQZ5O7QS.js.map → chunk-BQE543O5.js.map} +0 -0
- /package/dist/esm/{chunk-O2WPAUQN.js.map → chunk-CL6LRPCS.js.map} +0 -0
- /package/dist/esm/{chunk-3OQM7SLQ.js.map → chunk-DQTJMIRO.js.map} +0 -0
- /package/dist/esm/{chunk-GLERJXVS.js.map → chunk-DSB3TEAQ.js.map} +0 -0
- /package/dist/esm/{chunk-HIBX2EXV.js.map → chunk-ELZEAEN2.js.map} +0 -0
- /package/dist/esm/{chunk-IV4YJRVR.js.map → chunk-EVTNB4TB.js.map} +0 -0
- /package/dist/esm/{chunk-SGUTNJUO.js.map → chunk-GVLTTTFL.js.map} +0 -0
- /package/dist/esm/{chunk-CIKDGYX3.js.map → chunk-HVQ3SLQC.js.map} +0 -0
- /package/dist/esm/{chunk-N6Q3L64W.js.map → chunk-IYFDCW7Y.js.map} +0 -0
- /package/dist/esm/{chunk-7FC7HF76.js.map → chunk-JLI7WHV6.js.map} +0 -0
- /package/dist/esm/{chunk-OW4KAIWF.js.map → chunk-JQURG6CB.js.map} +0 -0
- /package/dist/esm/{chunk-GONBMSRL.js.map → chunk-JZD5FHSU.js.map} +0 -0
- /package/dist/esm/{chunk-EUSMN3K7.js.map → chunk-K5SC3CZZ.js.map} +0 -0
- /package/dist/esm/{chunk-UBWRIE4C.js.map → chunk-K7J23OPW.js.map} +0 -0
- /package/dist/esm/{chunk-7ZCQAMHZ.js.map → chunk-MD3QCXRD.js.map} +0 -0
- /package/dist/esm/{chunk-2EQWBT2S.js.map → chunk-MGQ4A2FI.js.map} +0 -0
- /package/dist/esm/{chunk-CMEKH4I5.js.map → chunk-MGSHX5N5.js.map} +0 -0
- /package/dist/esm/{chunk-ZE2GWHPY.js.map → chunk-MVW2SY4F.js.map} +0 -0
- /package/dist/esm/{chunk-KJTEZVOF.js.map → chunk-O6K6RZXY.js.map} +0 -0
- /package/dist/esm/{chunk-JUY7CBSL.js.map → chunk-PBFSBHBS.js.map} +0 -0
- /package/dist/esm/{chunk-3HGHPAH4.js.map → chunk-PDBVZAUJ.js.map} +0 -0
- /package/dist/esm/{chunk-C7EVYSWK.js.map → chunk-QDW5ZG5E.js.map} +0 -0
- /package/dist/esm/{chunk-R2MQMCND.js.map → chunk-QJFAGWBO.js.map} +0 -0
- /package/dist/esm/{chunk-TCEQ5VVE.js.map → chunk-R4CN4Q3G.js.map} +0 -0
- /package/dist/esm/{chunk-HJLBVNQE.js.map → chunk-RYURXQLJ.js.map} +0 -0
- /package/dist/esm/{chunk-RUOOCYK4.js.map → chunk-S53ZQNHK.js.map} +0 -0
- /package/dist/esm/{chunk-5G4WWJ4Z.js.map → chunk-T5DSQKKF.js.map} +0 -0
- /package/dist/esm/{chunk-3XSB7YIM.js.map → chunk-TBZO22XK.js.map} +0 -0
- /package/dist/esm/{chunk-C7UXUTUF.js.map → chunk-TGRRQHLQ.js.map} +0 -0
- /package/dist/esm/{chunk-IVBKTHDM.js.map → chunk-TPHNDGSV.js.map} +0 -0
- /package/dist/esm/{chunk-YL62I5SI.js.map → chunk-UA6FP7HS.js.map} +0 -0
- /package/dist/esm/{chunk-6FLLFCBU.js.map → chunk-UBSLEGQZ.js.map} +0 -0
- /package/dist/esm/{chunk-LJXP6K5Y.js.map → chunk-V2TPYSZ2.js.map} +0 -0
- /package/dist/esm/{chunk-YLLCCUC7.js.map → chunk-X3UTLDGG.js.map} +0 -0
- /package/dist/esm/{chunk-3UZHKW6I.js.map → chunk-XHF6RBOE.js.map} +0 -0
- /package/dist/esm/{chunk-IPHKKZYE.js.map → chunk-XHKL4PG7.js.map} +0 -0
- /package/dist/esm/{chunk-PAEHH3WS.js.map → chunk-XZ5XZS5O.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/shell.context.tsx", "../../../src/hooks/use-breakpoint.ts", "../../../src/components/shell.types.ts", "../../../src/components/_internal/shell-store.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\n/**\n * Since 0.8.0 the Shell has two contexts: the pane registry (the store) and\n * the inset set. They live in `_internal/shell-store.tsx`. This module keeps\n * the two hooks consumers can reach: `useSidebarMode`, and the deprecated\n * `useShell`.\n */\nimport * as React from 'react';\nimport { useBreakpoint } from '../hooks/use-breakpoint.js';\nimport type { Breakpoint, PaneMode, PaneName, PaneTarget, PresentationValue, SidebarMode } from './shell.types.js';\nimport { setShellPeek, subscribeShellStore, useShellStore, warnOnce, type PaneValue, type ShellStore } from './_internal/shell-store.js';\n\nconst toSidebarMode = (value: PaneValue | undefined): SidebarMode | undefined => (value === undefined ? undefined : value === 'closed' ? 'collapsed' : value === 'thin' ? 'thin' : 'expanded');\n\nconst fromSidebarMode = (mode: SidebarMode): PaneValue => (mode === 'collapsed' ? 'closed' : mode === 'thin' ? 'thin' : 'open');\n\nconst toPaneMode = (value: PaneValue | undefined): PaneMode => (value === undefined || value === 'closed' ? 'collapsed' : 'expanded');\n\nconst paneName = (target: PaneTarget): PaneName => (target === 'left' ? 'rail' : target);\n\n/** Re-renders on every change to the registry. For the deprecated whole-shell reader only. */\nfunction useStoreVersion(store: ShellStore) {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.version,\n () => 0,\n );\n}\n\n/**\n * The Sidebar's mode, and a setter. The setter is a user action: it reports\n * through the Sidebar's `onStateChange` the way a Trigger does.\n */\nexport function useSidebarMode(): { sidebarMode: SidebarMode; setSidebarMode: (mode: SidebarMode) => void } {\n const store = useShellStore('useSidebarMode');\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const value = React.useSyncExternalStore(\n subscribe,\n () => store.entries.get('sidebar')?.value,\n () => undefined,\n );\n const setSidebarMode = React.useCallback(\n (mode: SidebarMode) => {\n store.entries.get('sidebar')?.setValue(fromSidebarMode(mode), 'toggle');\n },\n [store],\n );\n return { sidebarMode: toSidebarMode(value) ?? 'expanded', setSidebarMode };\n}\n\nexport interface ShellContextValue {\n leftMode: PaneMode;\n setLeftMode: (mode: PaneMode) => void;\n /** The Rail's open state, resolved, when it is controlled. */\n leftControlledOpen?: boolean;\n panelMode: PaneMode;\n setPanelMode: (mode: PaneMode) => void;\n sidebarMode: SidebarMode;\n setSidebarMode: (mode: SidebarMode) => void;\n inspectorMode: PaneMode;\n setInspectorMode: (mode: PaneMode) => void;\n bottomMode: PaneMode;\n setBottomMode: (mode: PaneMode) => void;\n peekTarget: PaneTarget | null;\n setPeekTarget: (target: PaneTarget | null) => void;\n peekPane: (target: PaneTarget) => void;\n clearPeek: () => void;\n /** Whether a Rail is mounted. */\n hasLeft: boolean;\n /** No effect since 0.8.0: the registry knows which panes are mounted. */\n setHasLeft: (has: boolean) => void;\n /** Whether a Sidebar is mounted. */\n hasSidebar: boolean;\n /** No effect since 0.8.0: the registry knows which panes are mounted. */\n setHasSidebar: (has: boolean) => void;\n currentBreakpoint: Breakpoint;\n currentBreakpointReady: boolean;\n /** The Rail's presentation at the current breakpoint, when known. */\n leftResolvedPresentation?: PresentationValue;\n togglePane: (target: PaneTarget) => void;\n expandPane: (target: PaneTarget) => void;\n collapsePane: (target: PaneTarget) => void;\n}\n\nconst noop = () => {};\n\n/**\n * @deprecated The whole-shell reader re-renders its consumer on every change\n * to any pane. Use `Shell.Trigger` to drive a pane, `Shell.useSidebarMode`\n * for the Sidebar, and each pane's `open`/`onOpenChange` for its state.\n * Removed in 1.0.\n *\n * Keeps 0.7's shape. The setters act as a user would: they report through\n * the pane's own callback with `reason: 'toggle'`, and a controlled pane\n * changes only when the app passes the new value.\n */\nexport function useShell(): ShellContextValue {\n const store = useShellStore('useShell');\n React.useEffect(() => {\n warnOnce(\"Shell.useShell is deprecated and is removed in 1.0. Use Shell.Trigger, Shell.useSidebarMode, or a pane's own open/onOpenChange.\");\n }, []);\n useStoreVersion(store);\n const { breakpoint, ready } = useBreakpoint();\n const actions = React.useMemo(() => {\n const setMode = (name: PaneName) => (mode: PaneMode) => store.entries.get(name)?.setValue(mode === 'collapsed' ? 'closed' : 'open', 'toggle');\n const setPeekTarget = (target: PaneTarget | null) => setShellPeek(store, target === null ? null : paneName(target));\n return {\n setLeftMode: setMode('rail'),\n setPanelMode: setMode('panel'),\n setInspectorMode: setMode('inspector'),\n setBottomMode: setMode('bottom'),\n setSidebarMode: (mode: SidebarMode) => store.entries.get('sidebar')?.setValue(fromSidebarMode(mode), 'toggle'),\n setPeekTarget,\n peekPane: (target: PaneTarget) => setPeekTarget(target),\n clearPeek: () => setPeekTarget(null),\n setHasLeft: noop,\n setHasSidebar: noop,\n togglePane: (target: PaneTarget) => store.entries.get(paneName(target))?.toggle('toggle'),\n expandPane: (target: PaneTarget) => store.entries.get(paneName(target))?.setValue('open', 'toggle'),\n collapsePane: (target: PaneTarget) => store.entries.get(paneName(target))?.setValue('closed', 'toggle'),\n };\n }, [store]);\n const value = (name: PaneName) => store.entries.get(name)?.value;\n const rail = store.entries.get('rail');\n return {\n leftMode: toPaneMode(value('rail')),\n leftControlledOpen: rail?.value === undefined ? undefined : rail.value !== 'closed',\n panelMode: toPaneMode(value('panel')),\n sidebarMode: toSidebarMode(value('sidebar')) ?? 'expanded',\n inspectorMode: toPaneMode(value('inspector')),\n bottomMode: toPaneMode(value('bottom')),\n peekTarget: store.peek,\n hasLeft: store.entries.has('rail'),\n hasSidebar: store.entries.has('sidebar'),\n currentBreakpoint: breakpoint,\n currentBreakpointReady: ready,\n leftResolvedPresentation: rail?.presentation,\n ...actions,\n };\n}\n", "'use client';\n\nimport * as React from 'react';\nimport { _BREAKPOINTS, type Breakpoint } from '../components/shell.types.js';\n\nconst QUERIES = Object.entries(_BREAKPOINTS) as Array<[Breakpoint, string]>;\n\ntype Listener = () => void;\n\n/**\n * One set of `MediaQueryList`s and one set of listeners for the whole\n * application. Every component that asks for the breakpoint used to create and\n * subscribe to its own copy of all five queries.\n */\nlet mediaQueryLists: Array<[Breakpoint, MediaQueryList]> | null = null;\nconst listeners = new Set<Listener>();\nlet cachedBreakpoint: Breakpoint | null = null;\n\nfunction getMediaQueryLists() {\n mediaQueryLists ??= QUERIES.map(([name, query]) => [name, window.matchMedia(query)] as [Breakpoint, MediaQueryList]);\n return mediaQueryLists;\n}\n\nfunction computeBreakpoint(): Breakpoint {\n // The largest matching query wins; `_BREAKPOINTS` is ordered smallest first.\n let matched: Breakpoint = 'initial';\n for (const [name, mql] of getMediaQueryLists()) {\n if (mql.matches) matched = name;\n }\n return matched;\n}\n\nfunction handleChange() {\n const next = computeBreakpoint();\n if (next === cachedBreakpoint) return;\n cachedBreakpoint = next;\n listeners.forEach((listener) => listener());\n}\n\nfunction subscribe(listener: Listener) {\n if (typeof window === 'undefined') return () => {};\n\n if (listeners.size === 0) {\n cachedBreakpoint = computeBreakpoint();\n for (const [, mql] of getMediaQueryLists()) {\n // Safari below 14 only has the deprecated listener API.\n if (typeof mql.addEventListener === 'function') mql.addEventListener('change', handleChange);\n else mql.addListener?.(handleChange);\n }\n }\n\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n if (listeners.size > 0) return;\n\n for (const [, mql] of getMediaQueryLists()) {\n try {\n if (typeof mql.removeEventListener === 'function') mql.removeEventListener('change', handleChange);\n else mql.removeListener?.(handleChange);\n } catch (error) {\n // Removal can throw in edge cases, e.g. the list was already torn down.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[useBreakpoint] MediaQueryList cleanup warning:', error);\n }\n }\n }\n cachedBreakpoint = null;\n };\n}\n\n/**\n * `getSnapshot` must return a referentially stable value between changes, so it\n * reads the cache that `handleChange` maintains rather than recomputing.\n */\nfunction getSnapshot(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n cachedBreakpoint ??= computeBreakpoint();\n return cachedBreakpoint;\n}\n\nfunction getServerSnapshot(): Breakpoint {\n return 'initial';\n}\n\n/**\n * The breakpoint right now, outside React's render. For an effect that needs\n * the answer at the moment it runs rather than the one its render saw.\n */\nexport function readBreakpoint(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n return computeBreakpoint();\n}\n\nconst getReadySnapshot = () => true;\nconst getReadyServerSnapshot = () => false;\n\nconst noopSubscribe = () => () => {};\nconst getInitialSnapshot = (): Breakpoint => 'initial';\n\n/**\n * The current breakpoint, and whether it has been resolved against a real\n * viewport yet (`false` on the server and during hydration).\n *\n * Reads through `useSyncExternalStore` rather than settling into state from an\n * effect. On a client render the very first pass already has the real\n * breakpoint, instead of rendering the whole shell at `initial` and correcting\n * it after the browser has painted.\n *\n * Pass `enabled = false` to skip the subscription (the breakpoint then reads as\n * `initial`).\n */\nexport function useBreakpoint(enabled = true): { breakpoint: Breakpoint; ready: boolean } {\n // Callers with a non-responsive value pass `enabled = false` so they neither\n // subscribe to the media queries nor re-render when the viewport crosses one.\n const breakpoint = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n enabled ? getSnapshot : getInitialSnapshot,\n getServerSnapshot,\n );\n const ready = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n getReadySnapshot,\n getReadyServerSnapshot,\n );\n\n return React.useMemo(() => ({ breakpoint, ready }), [breakpoint, ready]);\n}\n", "import type * as React from 'react';\n\nexport type PresentationValue = 'fixed' | 'overlay' | 'stacked';\n\nexport type ResponsivePresentation = PresentationValue | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PresentationValue>>;\n\nexport type PaneMode = 'expanded' | 'collapsed';\nexport type SidebarMode = 'collapsed' | 'thin' | 'expanded';\n\nexport type ResponsiveMode = PaneMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PaneMode>>;\n\nexport type ResponsiveSidebarMode = SidebarMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', SidebarMode>>;\n\nexport type Responsive<T> = T | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', T>>;\n\nexport type PaneSizePersistence = {\n load?: () => number | Promise<number | undefined> | undefined;\n save?: (size: number) => void | Promise<void>;\n};\n\n/**\n * Why a pane's open state changed. Since 0.8.0 only a user action is reported:\n * `toggle` for a Trigger, a handle double-click or a drag past\n * `collapseThreshold`, and `dismiss` for Escape or a press on the scrim.\n * `init`, `responsive`, `panel` and `left` are kept in the types for\n * compatibility and are never sent.\n */\nexport type PaneOpenChangeReason = 'toggle' | 'dismiss' | 'init' | 'responsive';\n\nexport interface PaneBaseProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n minSize?: number;\n maxSize?: number;\n resizable?: boolean;\n collapsible?: boolean;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onExpand?: () => void;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onCollapse?: () => void;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n /** @deprecated Removed in 1.0. Snap in your own `onSizeChange` and pass `size`. */\n snapPoints?: number[];\n /** @deprecated Removed in 1.0, with `snapPoints`. */\n snapTolerance?: number;\n /** @deprecated Removed in 1.0. Close the pane from your own `onResizeEnd`. */\n collapseThreshold?: number;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n paneId?: string;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n persistence?: PaneSizePersistence;\n}\n\nexport const _BREAKPOINTS = {\n xs: '(min-width: 520px)',\n sm: '(min-width: 768px)',\n md: '(min-width: 1024px)',\n lg: '(min-width: 1280px)',\n xl: '(min-width: 1640px)',\n} as const;\n\nexport type Breakpoint = 'initial' | keyof typeof _BREAKPOINTS;\n\n/** Every breakpoint, smallest first. The stylesheet's @media blocks follow this order. */\nexport const SHELL_BREAKPOINTS: readonly Breakpoint[] = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'];\n\nexport type PaneTarget = 'left' | 'rail' | 'panel' | 'sidebar' | 'inspector' | 'bottom';\n\n/** The panes a Trigger can drive. `left` is the deprecated name for `rail`. */\nexport type PaneName = Exclude<PaneTarget, 'left'>;\n\n/**\n * CSS custom property key type for type-safe style objects.\n * Allows any string prefixed with '--'.\n */\nexport type CSSCustomProperty = `--${string}`;\n\n/**\n * Style object that supports CSS custom properties.\n */\nexport type CSSPropertiesWithVars = React.CSSProperties & {\n [key: CSSCustomProperty]: string | number | undefined;\n};\n", "'use client';\n\n/**\n * The Shell's state model (0.8.0), ported from kookie-ui-v2's Shell.\n *\n * - State lives on the pane. Each pane holds `auto | open | closed` (the\n * Sidebar adds `thin`). `auto` means untouched: the stylesheet decides what\n * it shows at each breakpoint, so first paint is right with no script, the\n * server and the client render the same markup, and no open-state callback\n * can fire on mount or on a resize.\n * - The one thing that crosses the Shell is a registry keyed by pane name.\n * Each pane registers what it is and how to drive it; a Trigger looks its\n * pane up, and the Root reads the set of live overlays. Nothing scans\n * children and nothing checks `displayName`.\n * - The responsive props are resolved into a table with one value per\n * breakpoint, from the props alone, with no window. The table is written to\n * the DOM as data attributes for the stylesheet, and read again in JS by the\n * mirror that sets `aria-expanded`. One table, two readers, so they agree by\n * construction.\n */\nimport * as React from 'react';\nimport { SHELL_BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\n\n/* \u2500\u2500 Breakpoint tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type Table<T> = Record<Breakpoint, T>;\n\n/** What a pane shows: open, open at its thin width (Sidebar only), or closed. */\nexport type PaneValue = 'open' | 'thin' | 'closed';\n\ntype ResponsiveInput<T> = T | Partial<Record<Breakpoint, T>> | undefined;\n\nfunction isMap<T>(value: ResponsiveInput<T>): value is Partial<Record<Breakpoint, T>> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * A responsive value at every breakpoint. A breakpoint takes the largest key\n * at or below it, the same fallback `useResponsiveValue` used; a breakpoint\n * below every key takes `fallback`.\n */\nexport function tableOf<T>(value: ResponsiveInput<T>, fallback: (bp: Breakpoint) => T): Table<T> {\n const table = {} as Table<T>;\n let carried: { value: T } | null = null;\n for (const bp of SHELL_BREAKPOINTS) {\n if (value !== undefined && !isMap(value)) {\n table[bp] = value;\n continue;\n }\n const entry = isMap(value) ? value[bp] : undefined;\n if (entry !== undefined) carried = { value: entry };\n table[bp] = carried ? carried.value : fallback(bp);\n }\n return table;\n}\n\n/** The table's one value, when it has only one. */\nexport function constantOf<T>(table: Table<T>): T | undefined {\n const first = table.initial;\n return SHELL_BREAKPOINTS.every((bp) => table[bp] === first) ? first : undefined;\n}\n\n/**\n * The table as data attributes: `data-<name>` when it holds one value, one\n * `data-<name>-<bp>` per breakpoint when it holds several. The stylesheet has\n * a rule for each spelling.\n */\nexport function tableAttributes(name: string, table: Table<string>): Record<string, string> {\n const constant = constantOf(table);\n if (constant !== undefined) return { [`data-${name}`]: constant };\n const attributes: Record<string, string> = {};\n for (const bp of SHELL_BREAKPOINTS) attributes[`data-${name}-${bp}`] = table[bp];\n return attributes;\n}\n\n/**\n * A responsive prop object is usually an inline literal, a new identity every\n * render. Keying memoisation on its contents keeps the tables, and so the\n * registry entries, stable across renders that change nothing.\n */\nexport function useStableKey(value: unknown): string {\n return typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value);\n}\n\nexport const FIXED_TABLE: Table<PresentationValue> = tableOf<PresentationValue>('fixed', () => 'fixed');\n\n/* \u2500\u2500 The registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type OpenChangeReason = 'toggle' | 'dismiss';\n\nexport type PaneEntry = {\n name: PaneName;\n id: string;\n el: HTMLElement | null;\n /** What the pane shows now; `undefined` while an untouched pane cannot know (before the breakpoint is known). */\n value: PaneValue | undefined;\n /** How the pane is presented now, when known. */\n presentation: PresentationValue | undefined;\n /** The pane's own presentation at every breakpoint. A Panel with none of its own follows the Rail's. */\n presentationTable: Table<PresentationValue>;\n /** Open and presented as an overlay: what the scrim and Escape close, and what containment exempts. */\n overlayLive: boolean;\n /** The pane's designed open width, for panes that sit beside it when floating. */\n size: number;\n setValue: (value: PaneValue, reason: OpenChangeReason) => void;\n toggle: (reason: OpenChangeReason) => void;\n};\n\nexport type ShellStore = {\n entries: Map<PaneName, PaneEntry>;\n listeners: Set<() => void>;\n /**\n * What a subscriber reads. useSyncExternalStore needs a value that is stable\n * between notifications, and a number is; the Map, or anything derived from\n * it, would be a new identity on every read.\n */\n version: number;\n /** The pane a hovered Trigger is previewing, if any. Layout only. */\n peek: PaneName | null;\n};\n\nexport function createShellStore(): ShellStore {\n return { entries: new Map(), listeners: new Set(), version: 0, peek: null };\n}\n\nexport function notifyShellStore(store: ShellStore) {\n store.version += 1;\n for (const listener of store.listeners) listener();\n}\n\nexport function subscribeShellStore(store: ShellStore, listener: () => void) {\n store.listeners.add(listener);\n return () => {\n store.listeners.delete(listener);\n };\n}\n\nexport function setShellPeek(store: ShellStore, peek: PaneName | null) {\n if (store.peek === peek) return;\n store.peek = peek;\n notifyShellStore(store);\n}\n\nexport const ShellStoreContext = React.createContext<ShellStore | null>(null);\n\nexport function useShellStore(part: string): ShellStore {\n const store = React.useContext(ShellStoreContext);\n if (!store) throw new Error(`${part} must be used within <Shell.Root>`);\n return store;\n}\n\n/** One pane's registry entry. Re-renders only when that entry is replaced. */\nexport function usePaneEntry(store: ShellStore, name: PaneName): PaneEntry | undefined {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const getSnapshot = React.useCallback(() => store.entries.get(name), [store, name]);\n return React.useSyncExternalStore(subscribe, getSnapshot, () => undefined);\n}\n\n/**\n * Whether this pane is the one being previewed. A boolean per pane rather than\n * the peek target itself, so hovering one Trigger re-renders one pane, not all.\n */\nexport function usePeeking(store: ShellStore, name: PaneName): boolean {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.peek === name,\n () => false,\n );\n}\n\n/* \u2500\u2500 Inset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type InsetPaneId = 'rail' | 'panel' | 'sidebar' | 'content' | 'inspector' | 'bottom';\n\nexport const ShellInsetContext = React.createContext<{\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n} | null>(null);\n\n/** Registers a pane's `inset` with the Root, which paints the backdrop while any pane is inset. */\nexport function useInsetRegistration(id: InsetPaneId, inset: boolean | undefined) {\n const ctx = React.useContext(ShellInsetContext);\n if (!ctx) throw new Error('Shell panes must be used within <Shell.Root>');\n const { registerInset, unregisterInset } = ctx;\n React.useLayoutEffect(() => {\n if (!inset) return;\n registerInset(id);\n return () => unregisterInset(id);\n }, [id, inset, registerInset, unregisterInset]);\n}\n\n/* \u2500\u2500 Development warnings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nconst warned = new Set<string>();\n\n/** A deprecation warning, once per message per page load. Development only. */\nexport function warnOnce(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n"],
|
|
5
|
-
"mappings": "ukBAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,cAAAE,GAAA,mBAAAC,IAAA,eAAAC,EAAAJ,IAQA,IAAAK,EAAuB,oBCNvB,IAAAC,EAAuB,oBCqDhB,IAAMC,EAAe,CAC1B,GAAI,qBACJ,GAAI,qBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,qBACN,EAKaC,EAA2C,CAAC,UAAW,KAAM,KAAM,KAAM,KAAM,IAAI,ED7DhG,IAAMC,EAAU,OAAO,QAAQC,CAAY,EASvCC,EAA8D,KAC5DC,EAAY,IAAI,IAClBC,EAAsC,KAE1C,SAASC,GAAqB,CAC5B,OAAAH,MAAoBF,EAAQ,IAAI,CAAC,CAACM,EAAMC,CAAK,IAAM,CAACD,EAAM,OAAO,WAAWC,CAAK,CAAC,CAAiC,GAC5GL,CACT,CAEA,SAASM,GAAgC,CAEvC,IAAIC,EAAsB,UAC1B,OAAW,CAACH,EAAMI,CAAG,IAAKL,EAAmB,EACvCK,EAAI,UAASD,EAAUH,GAE7B,OAAOG,CACT,CAEA,SAASE,GAAe,CACtB,IAAMC,EAAOJ,EAAkB,EAC3BI,IAASR,IACbA,EAAmBQ,EACnBT,EAAU,QAASU,GAAaA,EAAS,CAAC,EAC5C,CAEA,SAASC,EAAUD,EAAoB,CACrC,GAAI,OAAO,OAAW,IAAa,MAAO,IAAM,CAAC,EAEjD,GAAIV,EAAU,OAAS,EAAG,CACxBC,EAAmBI,EAAkB,EACrC,OAAW,CAAC,CAAEE,CAAG,IAAKL,EAAmB,EAEnC,OAAOK,EAAI,kBAAqB,WAAYA,EAAI,iBAAiB,SAAUC,CAAY,EACtFD,EAAI,cAAcC,CAAY,CAEvC,CAEA,OAAAR,EAAU,IAAIU,CAAQ,EAEf,IAAM,CAEX,GADAV,EAAU,OAAOU,CAAQ,EACrB,EAAAV,EAAU,KAAO,GAErB,QAAW,CAAC,CAAEO,CAAG,IAAKL,EAAmB,EACvC,GAAI,CACE,OAAOK,EAAI,qBAAwB,WAAYA,EAAI,oBAAoB,SAAUC,CAAY,EAC5FD,EAAI,iBAAiBC,CAAY,CACxC,MAAgB,CAKhB,CAEFP,EAAmB,KACrB,CACF,CAMA,SAASW,GAA0B,CACjC,OAAI,OAAO,OAAW,IAAoB,WAC1CX,MAAqBI,EAAkB,GAChCJ,EACT,CAEA,SAASY,GAAgC,CACvC,MAAO,SACT,CAWA,IAAMC,EAAmB,IAAM,GACzBC,EAAyB,IAAM,GAE/BC,EAAgB,IAAM,IAAM,CAAC,EAC7BC,EAAqB,IAAkB,UActC,SAASC,EAAcC,EAAU,GAAkD,CAGxF,IAAMC,EAAmB,uBACvBD,EAAUE,EAAYL,EACtBG,EAAUG,EAAcL,EACxBM,CACF,EACMC,EAAc,uBAClBL,EAAUE,EAAYL,EACtBF,EACAC,CACF,EAEA,OAAa,UAAQ,KAAO,CAAE,WAAAK,EAAY,MAAAI,CAAM,GAAI,CAACJ,EAAYI,CAAK,CAAC,CACzE,CE5GA,IAAAC,EAAuB,oBAavB,SAASC,EAASC,EAAoE,CACpF,OAAO,OAAOA,GAAU,UAAYA,IAAU,IAChD,CAOO,SAASC,EAAWD,EAA2BE,EAA2C,CAC/F,IAAMC,EAAQ,CAAC,EACXC,EAA+B,KACnC,QAAWC,KAAMC,EAAmB,CAClC,GAAIN,IAAU,QAAa,CAACD,EAAMC,CAAK,EAAG,CACxCG,EAAME,CAAE,EAAIL,EACZ,QACF,CACA,IAAMO,EAAQR,EAAMC,CAAK,EAAIA,EAAMK,CAAE,EAAI,OACrCE,IAAU,SAAWH,EAAU,CAAE,MAAOG,CAAM,GAClDJ,EAAME,CAAE,EAAID,EAAUA,EAAQ,MAAQF,EAASG,CAAE,CACnD,CACA,OAAOF,CACT,CA8BO,IAAMK,GAAwCC,EAA2B,QAAS,IAAM,OAAO,EAyC/F,SAASC,EAAiBC,EAAmB,CAClDA,EAAM,SAAW,EACjB,QAAWC,KAAYD,EAAM,UAAWC,EAAS,CACnD,CAEO,SAASC,EAAoBF,EAAmBC,EAAsB,CAC3E,OAAAD,EAAM,UAAU,IAAIC,CAAQ,EACrB,IAAM,CACXD,EAAM,UAAU,OAAOC,CAAQ,CACjC,CACF,CAEO,SAASE,EAAaH,EAAmBI,EAAuB,CACjEJ,EAAM,OAASI,IACnBJ,EAAM,KAAOI,EACbL,EAAiBC,CAAK,EACxB,CAEO,IAAMK,EAA0B,gBAAiC,IAAI,EAErE,SAASC,EAAcC,EAA0B,CACtD,IAAMP,EAAc,aAAWK,CAAiB,EAChD,GAAI,CAACL,EAAO,MAAM,IAAI,MAAM,GAAGO,CAAI,mCAAmC,EACtE,OAAOP,CACT,CA0BO,IAAMQ,GAA0B,gBAG7B,IAAI,EHtKd,IAAMC,EAAiBC,GAA2DA,IAAU,OAAY,OAAYA,IAAU,SAAW,
|
|
4
|
+
"sourcesContent": ["'use client';\n\n/**\n * Since 0.8.0 the Shell has two contexts: the pane registry (the store) and\n * the inset set. They live in `_internal/shell-store.tsx`. This module keeps\n * the two hooks consumers can reach: `useSidebarMode`, and the deprecated\n * `useShell`.\n */\nimport * as React from 'react';\nimport { useBreakpoint } from '../hooks/use-breakpoint.js';\nimport type { Breakpoint, PaneMode, PaneName, PaneTarget, PresentationValue, SidebarMode } from './shell.types.js';\nimport { setShellPeek, subscribeShellStore, useShellStore, warnOnce, type PaneValue, type ShellStore } from './_internal/shell-store.js';\n\nconst toSidebarMode = (value: PaneValue | undefined): SidebarMode | undefined => (value === undefined ? undefined : value === 'closed' ? 'collapsed' : 'expanded');\n\nconst fromSidebarMode = (mode: SidebarMode): PaneValue => (mode === 'collapsed' ? 'closed' : 'open');\n\nconst toPaneMode = (value: PaneValue | undefined): PaneMode => (value === undefined || value === 'closed' ? 'collapsed' : 'expanded');\n\nconst paneName = (target: PaneTarget): PaneName => (target === 'left' ? 'rail' : target);\n\n/** Re-renders on every change to the registry. For the deprecated whole-shell reader only. */\nfunction useStoreVersion(store: ShellStore) {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.version,\n () => 0,\n );\n}\n\n/**\n * The Sidebar's mode, and a setter. The setter is a user action: it reports\n * through the Sidebar's `onStateChange` the way a Trigger does.\n */\nexport function useSidebarMode(): { sidebarMode: SidebarMode; setSidebarMode: (mode: SidebarMode) => void } {\n const store = useShellStore('useSidebarMode');\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const value = React.useSyncExternalStore(\n subscribe,\n () => store.entries.get('sidebar')?.value,\n () => undefined,\n );\n const setSidebarMode = React.useCallback(\n (mode: SidebarMode) => {\n store.entries.get('sidebar')?.setValue(fromSidebarMode(mode), 'toggle');\n },\n [store],\n );\n return { sidebarMode: toSidebarMode(value) ?? 'expanded', setSidebarMode };\n}\n\nexport interface ShellContextValue {\n leftMode: PaneMode;\n setLeftMode: (mode: PaneMode) => void;\n /** The Rail's open state, resolved, when it is controlled. */\n leftControlledOpen?: boolean;\n panelMode: PaneMode;\n setPanelMode: (mode: PaneMode) => void;\n sidebarMode: SidebarMode;\n setSidebarMode: (mode: SidebarMode) => void;\n inspectorMode: PaneMode;\n setInspectorMode: (mode: PaneMode) => void;\n bottomMode: PaneMode;\n setBottomMode: (mode: PaneMode) => void;\n peekTarget: PaneTarget | null;\n setPeekTarget: (target: PaneTarget | null) => void;\n peekPane: (target: PaneTarget) => void;\n clearPeek: () => void;\n /** Whether a Rail is mounted. */\n hasLeft: boolean;\n /** No effect since 0.8.0: the registry knows which panes are mounted. */\n setHasLeft: (has: boolean) => void;\n /** Whether a Sidebar is mounted. */\n hasSidebar: boolean;\n /** No effect since 0.8.0: the registry knows which panes are mounted. */\n setHasSidebar: (has: boolean) => void;\n currentBreakpoint: Breakpoint;\n currentBreakpointReady: boolean;\n /** The Rail's presentation at the current breakpoint, when known. */\n leftResolvedPresentation?: PresentationValue;\n togglePane: (target: PaneTarget) => void;\n expandPane: (target: PaneTarget) => void;\n collapsePane: (target: PaneTarget) => void;\n}\n\nconst noop = () => {};\n\n/**\n * @deprecated The whole-shell reader re-renders its consumer on every change\n * to any pane. Use `Shell.Trigger` to drive a pane, `Shell.useSidebarMode`\n * for the Sidebar, and each pane's `open`/`onOpenChange` for its state.\n * Removed in 1.0.\n *\n * Keeps 0.7's shape. The setters act as a user would: they report through\n * the pane's own callback with `reason: 'toggle'`, and a controlled pane\n * changes only when the app passes the new value.\n */\nexport function useShell(): ShellContextValue {\n const store = useShellStore('useShell');\n React.useEffect(() => {\n warnOnce(\"Shell.useShell is deprecated and is removed in 1.0. Use Shell.Trigger, Shell.useSidebarMode, or a pane's own open/onOpenChange.\");\n }, []);\n useStoreVersion(store);\n const { breakpoint, ready } = useBreakpoint();\n const actions = React.useMemo(() => {\n const setMode = (name: PaneName) => (mode: PaneMode) => store.entries.get(name)?.setValue(mode === 'collapsed' ? 'closed' : 'open', 'toggle');\n const setPeekTarget = (target: PaneTarget | null) => setShellPeek(store, target === null ? null : paneName(target));\n return {\n setLeftMode: setMode('rail'),\n setPanelMode: setMode('panel'),\n setInspectorMode: setMode('inspector'),\n setBottomMode: setMode('bottom'),\n setSidebarMode: (mode: SidebarMode) => store.entries.get('sidebar')?.setValue(fromSidebarMode(mode), 'toggle'),\n setPeekTarget,\n peekPane: (target: PaneTarget) => setPeekTarget(target),\n clearPeek: () => setPeekTarget(null),\n setHasLeft: noop,\n setHasSidebar: noop,\n togglePane: (target: PaneTarget) => store.entries.get(paneName(target))?.toggle('toggle'),\n expandPane: (target: PaneTarget) => store.entries.get(paneName(target))?.setValue('open', 'toggle'),\n collapsePane: (target: PaneTarget) => store.entries.get(paneName(target))?.setValue('closed', 'toggle'),\n };\n }, [store]);\n const value = (name: PaneName) => store.entries.get(name)?.value;\n const rail = store.entries.get('rail');\n return {\n leftMode: toPaneMode(value('rail')),\n leftControlledOpen: rail?.value === undefined ? undefined : rail.value !== 'closed',\n panelMode: toPaneMode(value('panel')),\n sidebarMode: toSidebarMode(value('sidebar')) ?? 'expanded',\n inspectorMode: toPaneMode(value('inspector')),\n bottomMode: toPaneMode(value('bottom')),\n peekTarget: store.peek,\n hasLeft: store.entries.has('rail'),\n hasSidebar: store.entries.has('sidebar'),\n currentBreakpoint: breakpoint,\n currentBreakpointReady: ready,\n leftResolvedPresentation: rail?.presentation,\n ...actions,\n };\n}\n", "'use client';\n\nimport * as React from 'react';\nimport { _BREAKPOINTS, type Breakpoint } from '../components/shell.types.js';\n\nconst QUERIES = Object.entries(_BREAKPOINTS) as Array<[Breakpoint, string]>;\n\ntype Listener = () => void;\n\n/**\n * One set of `MediaQueryList`s and one set of listeners for the whole\n * application. Every component that asks for the breakpoint used to create and\n * subscribe to its own copy of all five queries.\n */\nlet mediaQueryLists: Array<[Breakpoint, MediaQueryList]> | null = null;\nconst listeners = new Set<Listener>();\nlet cachedBreakpoint: Breakpoint | null = null;\n\nfunction getMediaQueryLists() {\n mediaQueryLists ??= QUERIES.map(([name, query]) => [name, window.matchMedia(query)] as [Breakpoint, MediaQueryList]);\n return mediaQueryLists;\n}\n\nfunction computeBreakpoint(): Breakpoint {\n // The largest matching query wins; `_BREAKPOINTS` is ordered smallest first.\n let matched: Breakpoint = 'initial';\n for (const [name, mql] of getMediaQueryLists()) {\n if (mql.matches) matched = name;\n }\n return matched;\n}\n\nfunction handleChange() {\n const next = computeBreakpoint();\n if (next === cachedBreakpoint) return;\n cachedBreakpoint = next;\n listeners.forEach((listener) => listener());\n}\n\nfunction subscribe(listener: Listener) {\n if (typeof window === 'undefined') return () => {};\n\n if (listeners.size === 0) {\n cachedBreakpoint = computeBreakpoint();\n for (const [, mql] of getMediaQueryLists()) {\n // Safari below 14 only has the deprecated listener API.\n if (typeof mql.addEventListener === 'function') mql.addEventListener('change', handleChange);\n else mql.addListener?.(handleChange);\n }\n }\n\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n if (listeners.size > 0) return;\n\n for (const [, mql] of getMediaQueryLists()) {\n try {\n if (typeof mql.removeEventListener === 'function') mql.removeEventListener('change', handleChange);\n else mql.removeListener?.(handleChange);\n } catch (error) {\n // Removal can throw in edge cases, e.g. the list was already torn down.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[useBreakpoint] MediaQueryList cleanup warning:', error);\n }\n }\n }\n cachedBreakpoint = null;\n };\n}\n\n/**\n * `getSnapshot` must return a referentially stable value between changes, so it\n * reads the cache that `handleChange` maintains rather than recomputing.\n */\nfunction getSnapshot(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n cachedBreakpoint ??= computeBreakpoint();\n return cachedBreakpoint;\n}\n\nfunction getServerSnapshot(): Breakpoint {\n return 'initial';\n}\n\n/**\n * The breakpoint right now, outside React's render. For an effect that needs\n * the answer at the moment it runs rather than the one its render saw.\n */\nexport function readBreakpoint(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n return computeBreakpoint();\n}\n\nconst getReadySnapshot = () => true;\nconst getReadyServerSnapshot = () => false;\n\nconst noopSubscribe = () => () => {};\nconst getInitialSnapshot = (): Breakpoint => 'initial';\n\n/**\n * The current breakpoint, and whether it has been resolved against a real\n * viewport yet (`false` on the server and during hydration).\n *\n * Reads through `useSyncExternalStore` rather than settling into state from an\n * effect. On a client render the very first pass already has the real\n * breakpoint, instead of rendering the whole shell at `initial` and correcting\n * it after the browser has painted.\n *\n * Pass `enabled = false` to skip the subscription (the breakpoint then reads as\n * `initial`).\n */\nexport function useBreakpoint(enabled = true): { breakpoint: Breakpoint; ready: boolean } {\n // Callers with a non-responsive value pass `enabled = false` so they neither\n // subscribe to the media queries nor re-render when the viewport crosses one.\n const breakpoint = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n enabled ? getSnapshot : getInitialSnapshot,\n getServerSnapshot,\n );\n const ready = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n getReadySnapshot,\n getReadyServerSnapshot,\n );\n\n return React.useMemo(() => ({ breakpoint, ready }), [breakpoint, ready]);\n}\n", "import type * as React from 'react';\n\nexport type PresentationValue = 'fixed' | 'overlay' | 'stacked';\n\nexport type ResponsivePresentation = PresentationValue | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PresentationValue>>;\n\nexport type PaneMode = 'expanded' | 'collapsed';\nexport type SidebarMode = 'collapsed' | 'expanded';\n\nexport type ResponsiveMode = PaneMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PaneMode>>;\n\nexport type ResponsiveSidebarMode = SidebarMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', SidebarMode>>;\n\nexport type Responsive<T> = T | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', T>>;\n\nexport type PaneSizePersistence = {\n load?: () => number | Promise<number | undefined> | undefined;\n save?: (size: number) => void | Promise<void>;\n};\n\n/**\n * Why a pane's open state changed. Since 0.8.0 only a user action is reported:\n * `toggle` for a Trigger, a handle double-click or a drag past\n * `collapseThreshold`, and `dismiss` for Escape or a press on the scrim.\n * `init`, `responsive`, `panel` and `left` are kept in the types for\n * compatibility and are never sent.\n */\nexport type PaneOpenChangeReason = 'toggle' | 'dismiss' | 'init' | 'responsive';\n\nexport interface PaneBaseProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n minSize?: number;\n maxSize?: number;\n resizable?: boolean;\n collapsible?: boolean;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onExpand?: () => void;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onCollapse?: () => void;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n /** @deprecated Removed in 1.0. Snap in your own `onSizeChange` and pass `size`. */\n snapPoints?: number[];\n /** @deprecated Removed in 1.0, with `snapPoints`. */\n snapTolerance?: number;\n /** @deprecated Removed in 1.0. Close the pane from your own `onResizeEnd`. */\n collapseThreshold?: number;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n paneId?: string;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n persistence?: PaneSizePersistence;\n}\n\nexport const _BREAKPOINTS = {\n xs: '(min-width: 520px)',\n sm: '(min-width: 768px)',\n md: '(min-width: 1024px)',\n lg: '(min-width: 1280px)',\n xl: '(min-width: 1640px)',\n} as const;\n\nexport type Breakpoint = 'initial' | keyof typeof _BREAKPOINTS;\n\n/** Every breakpoint, smallest first. The stylesheet's @media blocks follow this order. */\nexport const SHELL_BREAKPOINTS: readonly Breakpoint[] = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'];\n\nexport type PaneTarget = 'left' | 'rail' | 'panel' | 'sidebar' | 'inspector' | 'bottom';\n\n/** The panes a Trigger can drive. `left` is the deprecated name for `rail`. */\nexport type PaneName = Exclude<PaneTarget, 'left'>;\n\n/**\n * CSS custom property key type for type-safe style objects.\n * Allows any string prefixed with '--'.\n */\nexport type CSSCustomProperty = `--${string}`;\n\n/**\n * Style object that supports CSS custom properties.\n */\nexport type CSSPropertiesWithVars = React.CSSProperties & {\n [key: CSSCustomProperty]: string | number | undefined;\n};\n", "'use client';\n\n/**\n * The Shell's state model (0.8.0), ported from kookie-ui-v2's Shell.\n *\n * - State lives on the pane. Each pane holds `auto | open | closed`.\n * `auto` means untouched: the stylesheet decides what\n * it shows at each breakpoint, so first paint is right with no script, the\n * server and the client render the same markup, and no open-state callback\n * can fire on mount or on a resize.\n * - The one thing that crosses the Shell is a registry keyed by pane name.\n * Each pane registers what it is and how to drive it; a Trigger looks its\n * pane up, and the Root reads the set of live overlays. Nothing scans\n * children and nothing checks `displayName`.\n * - The responsive props are resolved into a table with one value per\n * breakpoint, from the props alone, with no window. The table is written to\n * the DOM as data attributes for the stylesheet, and read again in JS by the\n * mirror that sets `aria-expanded`. One table, two readers, so they agree by\n * construction.\n */\nimport * as React from 'react';\nimport { SHELL_BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\n\n/* \u2500\u2500 Breakpoint tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type Table<T> = Record<Breakpoint, T>;\n\n/** What a pane shows: open or closed. */\nexport type PaneValue = 'open' | 'closed';\n\ntype ResponsiveInput<T> = T | Partial<Record<Breakpoint, T>> | undefined;\n\nfunction isMap<T>(value: ResponsiveInput<T>): value is Partial<Record<Breakpoint, T>> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * A responsive value at every breakpoint. A breakpoint takes the largest key\n * at or below it, the same fallback `useResponsiveValue` used; a breakpoint\n * below every key takes `fallback`.\n */\nexport function tableOf<T>(value: ResponsiveInput<T>, fallback: (bp: Breakpoint) => T): Table<T> {\n const table = {} as Table<T>;\n let carried: { value: T } | null = null;\n for (const bp of SHELL_BREAKPOINTS) {\n if (value !== undefined && !isMap(value)) {\n table[bp] = value;\n continue;\n }\n const entry = isMap(value) ? value[bp] : undefined;\n if (entry !== undefined) carried = { value: entry };\n table[bp] = carried ? carried.value : fallback(bp);\n }\n return table;\n}\n\n/** The table's one value, when it has only one. */\nexport function constantOf<T>(table: Table<T>): T | undefined {\n const first = table.initial;\n return SHELL_BREAKPOINTS.every((bp) => table[bp] === first) ? first : undefined;\n}\n\n/**\n * The table as data attributes: `data-<name>` when it holds one value, one\n * `data-<name>-<bp>` per breakpoint when it holds several. The stylesheet has\n * a rule for each spelling.\n */\nexport function tableAttributes(name: string, table: Table<string>): Record<string, string> {\n const constant = constantOf(table);\n if (constant !== undefined) return { [`data-${name}`]: constant };\n const attributes: Record<string, string> = {};\n for (const bp of SHELL_BREAKPOINTS) attributes[`data-${name}-${bp}`] = table[bp];\n return attributes;\n}\n\n/**\n * A responsive prop object is usually an inline literal, a new identity every\n * render. Keying memoisation on its contents keeps the tables, and so the\n * registry entries, stable across renders that change nothing.\n */\nexport function useStableKey(value: unknown): string {\n return typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value);\n}\n\nexport const FIXED_TABLE: Table<PresentationValue> = tableOf<PresentationValue>('fixed', () => 'fixed');\n\n/* \u2500\u2500 The registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type OpenChangeReason = 'toggle' | 'dismiss';\n\nexport type PaneEntry = {\n name: PaneName;\n id: string;\n el: HTMLElement | null;\n /** What the pane shows now; `undefined` while an untouched pane cannot know (before the breakpoint is known). */\n value: PaneValue | undefined;\n /** How the pane is presented now, when known. */\n presentation: PresentationValue | undefined;\n /** The pane's own presentation at every breakpoint. A Panel with none of its own follows the Rail's. */\n presentationTable: Table<PresentationValue>;\n /** Open and presented as an overlay: what the scrim and Escape close, and what containment exempts. */\n overlayLive: boolean;\n /** The pane's designed open width, for panes that sit beside it when floating. */\n size: number;\n setValue: (value: PaneValue, reason: OpenChangeReason) => void;\n toggle: (reason: OpenChangeReason) => void;\n};\n\nexport type ShellStore = {\n entries: Map<PaneName, PaneEntry>;\n listeners: Set<() => void>;\n /**\n * What a subscriber reads. useSyncExternalStore needs a value that is stable\n * between notifications, and a number is; the Map, or anything derived from\n * it, would be a new identity on every read.\n */\n version: number;\n /** The pane a hovered Trigger is previewing, if any. Layout only. */\n peek: PaneName | null;\n};\n\nexport function createShellStore(): ShellStore {\n return { entries: new Map(), listeners: new Set(), version: 0, peek: null };\n}\n\nexport function notifyShellStore(store: ShellStore) {\n store.version += 1;\n for (const listener of store.listeners) listener();\n}\n\nexport function subscribeShellStore(store: ShellStore, listener: () => void) {\n store.listeners.add(listener);\n return () => {\n store.listeners.delete(listener);\n };\n}\n\nexport function setShellPeek(store: ShellStore, peek: PaneName | null) {\n if (store.peek === peek) return;\n store.peek = peek;\n notifyShellStore(store);\n}\n\nexport const ShellStoreContext = React.createContext<ShellStore | null>(null);\n\nexport function useShellStore(part: string): ShellStore {\n const store = React.useContext(ShellStoreContext);\n if (!store) throw new Error(`${part} must be used within <Shell.Root>`);\n return store;\n}\n\n/** One pane's registry entry. Re-renders only when that entry is replaced. */\nexport function usePaneEntry(store: ShellStore, name: PaneName): PaneEntry | undefined {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const getSnapshot = React.useCallback(() => store.entries.get(name), [store, name]);\n return React.useSyncExternalStore(subscribe, getSnapshot, () => undefined);\n}\n\n/**\n * Whether this pane is the one being previewed. A boolean per pane rather than\n * the peek target itself, so hovering one Trigger re-renders one pane, not all.\n */\nexport function usePeeking(store: ShellStore, name: PaneName): boolean {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.peek === name,\n () => false,\n );\n}\n\n/* \u2500\u2500 Inset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type InsetPaneId = 'rail' | 'panel' | 'sidebar' | 'content' | 'inspector' | 'bottom';\n\nexport const ShellInsetContext = React.createContext<{\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n} | null>(null);\n\n/** Registers a pane's `inset` with the Root, which paints the backdrop while any pane is inset. */\nexport function useInsetRegistration(id: InsetPaneId, inset: boolean | undefined) {\n const ctx = React.useContext(ShellInsetContext);\n if (!ctx) throw new Error('Shell panes must be used within <Shell.Root>');\n const { registerInset, unregisterInset } = ctx;\n React.useLayoutEffect(() => {\n if (!inset) return;\n registerInset(id);\n return () => unregisterInset(id);\n }, [id, inset, registerInset, unregisterInset]);\n}\n\n/* \u2500\u2500 Development warnings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nconst warned = new Set<string>();\n\n/** A deprecation warning, once per message per page load. Development only. */\nexport function warnOnce(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n"],
|
|
5
|
+
"mappings": "ukBAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,cAAAE,GAAA,mBAAAC,IAAA,eAAAC,EAAAJ,IAQA,IAAAK,EAAuB,oBCNvB,IAAAC,EAAuB,oBCqDhB,IAAMC,EAAe,CAC1B,GAAI,qBACJ,GAAI,qBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,qBACN,EAKaC,EAA2C,CAAC,UAAW,KAAM,KAAM,KAAM,KAAM,IAAI,ED7DhG,IAAMC,EAAU,OAAO,QAAQC,CAAY,EASvCC,EAA8D,KAC5DC,EAAY,IAAI,IAClBC,EAAsC,KAE1C,SAASC,GAAqB,CAC5B,OAAAH,MAAoBF,EAAQ,IAAI,CAAC,CAACM,EAAMC,CAAK,IAAM,CAACD,EAAM,OAAO,WAAWC,CAAK,CAAC,CAAiC,GAC5GL,CACT,CAEA,SAASM,GAAgC,CAEvC,IAAIC,EAAsB,UAC1B,OAAW,CAACH,EAAMI,CAAG,IAAKL,EAAmB,EACvCK,EAAI,UAASD,EAAUH,GAE7B,OAAOG,CACT,CAEA,SAASE,GAAe,CACtB,IAAMC,EAAOJ,EAAkB,EAC3BI,IAASR,IACbA,EAAmBQ,EACnBT,EAAU,QAASU,GAAaA,EAAS,CAAC,EAC5C,CAEA,SAASC,EAAUD,EAAoB,CACrC,GAAI,OAAO,OAAW,IAAa,MAAO,IAAM,CAAC,EAEjD,GAAIV,EAAU,OAAS,EAAG,CACxBC,EAAmBI,EAAkB,EACrC,OAAW,CAAC,CAAEE,CAAG,IAAKL,EAAmB,EAEnC,OAAOK,EAAI,kBAAqB,WAAYA,EAAI,iBAAiB,SAAUC,CAAY,EACtFD,EAAI,cAAcC,CAAY,CAEvC,CAEA,OAAAR,EAAU,IAAIU,CAAQ,EAEf,IAAM,CAEX,GADAV,EAAU,OAAOU,CAAQ,EACrB,EAAAV,EAAU,KAAO,GAErB,QAAW,CAAC,CAAEO,CAAG,IAAKL,EAAmB,EACvC,GAAI,CACE,OAAOK,EAAI,qBAAwB,WAAYA,EAAI,oBAAoB,SAAUC,CAAY,EAC5FD,EAAI,iBAAiBC,CAAY,CACxC,MAAgB,CAKhB,CAEFP,EAAmB,KACrB,CACF,CAMA,SAASW,GAA0B,CACjC,OAAI,OAAO,OAAW,IAAoB,WAC1CX,MAAqBI,EAAkB,GAChCJ,EACT,CAEA,SAASY,GAAgC,CACvC,MAAO,SACT,CAWA,IAAMC,EAAmB,IAAM,GACzBC,EAAyB,IAAM,GAE/BC,EAAgB,IAAM,IAAM,CAAC,EAC7BC,EAAqB,IAAkB,UActC,SAASC,EAAcC,EAAU,GAAkD,CAGxF,IAAMC,EAAmB,uBACvBD,EAAUE,EAAYL,EACtBG,EAAUG,EAAcL,EACxBM,CACF,EACMC,EAAc,uBAClBL,EAAUE,EAAYL,EACtBF,EACAC,CACF,EAEA,OAAa,UAAQ,KAAO,CAAE,WAAAK,EAAY,MAAAI,CAAM,GAAI,CAACJ,EAAYI,CAAK,CAAC,CACzE,CE5GA,IAAAC,EAAuB,oBAavB,SAASC,EAASC,EAAoE,CACpF,OAAO,OAAOA,GAAU,UAAYA,IAAU,IAChD,CAOO,SAASC,EAAWD,EAA2BE,EAA2C,CAC/F,IAAMC,EAAQ,CAAC,EACXC,EAA+B,KACnC,QAAWC,KAAMC,EAAmB,CAClC,GAAIN,IAAU,QAAa,CAACD,EAAMC,CAAK,EAAG,CACxCG,EAAME,CAAE,EAAIL,EACZ,QACF,CACA,IAAMO,EAAQR,EAAMC,CAAK,EAAIA,EAAMK,CAAE,EAAI,OACrCE,IAAU,SAAWH,EAAU,CAAE,MAAOG,CAAM,GAClDJ,EAAME,CAAE,EAAID,EAAUA,EAAQ,MAAQF,EAASG,CAAE,CACnD,CACA,OAAOF,CACT,CA8BO,IAAMK,GAAwCC,EAA2B,QAAS,IAAM,OAAO,EAyC/F,SAASC,EAAiBC,EAAmB,CAClDA,EAAM,SAAW,EACjB,QAAWC,KAAYD,EAAM,UAAWC,EAAS,CACnD,CAEO,SAASC,EAAoBF,EAAmBC,EAAsB,CAC3E,OAAAD,EAAM,UAAU,IAAIC,CAAQ,EACrB,IAAM,CACXD,EAAM,UAAU,OAAOC,CAAQ,CACjC,CACF,CAEO,SAASE,EAAaH,EAAmBI,EAAuB,CACjEJ,EAAM,OAASI,IACnBJ,EAAM,KAAOI,EACbL,EAAiBC,CAAK,EACxB,CAEO,IAAMK,EAA0B,gBAAiC,IAAI,EAErE,SAASC,EAAcC,EAA0B,CACtD,IAAMP,EAAc,aAAWK,CAAiB,EAChD,GAAI,CAACL,EAAO,MAAM,IAAI,MAAM,GAAGO,CAAI,mCAAmC,EACtE,OAAOP,CACT,CA0BO,IAAMQ,GAA0B,gBAG7B,IAAI,EHtKd,IAAMC,EAAiBC,GAA2DA,IAAU,OAAY,OAAYA,IAAU,SAAW,YAAc,WAEjJC,EAAmBC,GAAkCA,IAAS,YAAc,SAAW,OAEvFC,EAAcH,GAA4CA,IAAU,QAAaA,IAAU,SAAW,YAAc,WAEpHI,EAAYC,GAAkCA,IAAW,OAAS,OAASA,EAGjF,SAASC,EAAgBC,EAAmB,CAC1C,IAAMC,EAAkB,cAAaC,GAAyBC,EAAoBH,EAAOE,CAAQ,EAAG,CAACF,CAAK,CAAC,EAC3G,OAAa,uBACXC,EACA,IAAMD,EAAM,QACZ,IAAM,CACR,CACF,CAMO,SAASI,GAA4F,CAC1G,IAAMJ,EAAQK,EAAc,gBAAgB,EACtCJ,EAAkB,cAAaC,GAAyBC,EAAoBH,EAAOE,CAAQ,EAAG,CAACF,CAAK,CAAC,EACrGP,EAAc,uBAClBQ,EACA,IAAMD,EAAM,QAAQ,IAAI,SAAS,GAAG,MACpC,IAAG,EACL,EACMM,EAAuB,cAC1BX,GAAsB,CACrBK,EAAM,QAAQ,IAAI,SAAS,GAAG,SAASN,EAAgBC,CAAI,EAAG,QAAQ,CACxE,EACA,CAACK,CAAK,CACR,EACA,MAAO,CAAE,YAAaR,EAAcC,CAAK,GAAK,WAAY,eAAAa,CAAe,CAC3E,CAoCA,IAAMC,EAAO,IAAM,CAAC,EAYb,SAASC,IAA8B,CAC5C,IAAMR,EAAQK,EAAc,UAAU,EAChC,YAAU,IAAM,CAEtB,EAAG,CAAC,CAAC,EACLN,EAAgBC,CAAK,EACrB,GAAM,CAAE,WAAAS,EAAY,MAAAC,CAAM,EAAIC,EAAc,EACtCC,EAAgB,UAAQ,IAAM,CAClC,IAAMC,EAAWC,GAAoBnB,GAAmBK,EAAM,QAAQ,IAAIc,CAAI,GAAG,SAASnB,IAAS,YAAc,SAAW,OAAQ,QAAQ,EACtIoB,EAAiBjB,GAA8BkB,EAAahB,EAAOF,IAAW,KAAO,KAAOD,EAASC,CAAM,CAAC,EAClH,MAAO,CACL,YAAae,EAAQ,MAAM,EAC3B,aAAcA,EAAQ,OAAO,EAC7B,iBAAkBA,EAAQ,WAAW,EACrC,cAAeA,EAAQ,QAAQ,EAC/B,eAAiBlB,GAAsBK,EAAM,QAAQ,IAAI,SAAS,GAAG,SAASN,EAAgBC,CAAI,EAAG,QAAQ,EAC7G,cAAAoB,EACA,SAAWjB,GAAuBiB,EAAcjB,CAAM,EACtD,UAAW,IAAMiB,EAAc,IAAI,EACnC,WAAYR,EACZ,cAAeA,EACf,WAAaT,GAAuBE,EAAM,QAAQ,IAAIH,EAASC,CAAM,CAAC,GAAG,OAAO,QAAQ,EACxF,WAAaA,GAAuBE,EAAM,QAAQ,IAAIH,EAASC,CAAM,CAAC,GAAG,SAAS,OAAQ,QAAQ,EAClG,aAAeA,GAAuBE,EAAM,QAAQ,IAAIH,EAASC,CAAM,CAAC,GAAG,SAAS,SAAU,QAAQ,CACxG,CACF,EAAG,CAACE,CAAK,CAAC,EACJP,EAASqB,GAAmBd,EAAM,QAAQ,IAAIc,CAAI,GAAG,MACrDG,EAAOjB,EAAM,QAAQ,IAAI,MAAM,EACrC,MAAO,CACL,SAAUJ,EAAWH,EAAM,MAAM,CAAC,EAClC,mBAAoBwB,GAAM,QAAU,OAAY,OAAYA,EAAK,QAAU,SAC3E,UAAWrB,EAAWH,EAAM,OAAO,CAAC,EACpC,YAAaD,EAAcC,EAAM,SAAS,CAAC,GAAK,WAChD,cAAeG,EAAWH,EAAM,WAAW,CAAC,EAC5C,WAAYG,EAAWH,EAAM,QAAQ,CAAC,EACtC,WAAYO,EAAM,KAClB,QAASA,EAAM,QAAQ,IAAI,MAAM,EACjC,WAAYA,EAAM,QAAQ,IAAI,SAAS,EACvC,kBAAmBS,EACnB,uBAAwBC,EACxB,yBAA0BO,GAAM,aAChC,GAAGL,CACL,CACF",
|
|
6
6
|
"names": ["shell_context_exports", "__export", "useShell", "useSidebarMode", "__toCommonJS", "React", "React", "_BREAKPOINTS", "SHELL_BREAKPOINTS", "QUERIES", "_BREAKPOINTS", "mediaQueryLists", "listeners", "cachedBreakpoint", "getMediaQueryLists", "name", "query", "computeBreakpoint", "matched", "mql", "handleChange", "next", "listener", "subscribe", "getSnapshot", "getServerSnapshot", "getReadySnapshot", "getReadyServerSnapshot", "noopSubscribe", "getInitialSnapshot", "useBreakpoint", "enabled", "breakpoint", "subscribe", "getSnapshot", "getServerSnapshot", "ready", "React", "isMap", "value", "tableOf", "fallback", "table", "carried", "bp", "SHELL_BREAKPOINTS", "entry", "FIXED_TABLE", "tableOf", "notifyShellStore", "store", "listener", "subscribeShellStore", "setShellPeek", "peek", "ShellStoreContext", "useShellStore", "part", "ShellInsetContext", "toSidebarMode", "value", "fromSidebarMode", "mode", "toPaneMode", "paneName", "target", "useStoreVersion", "store", "subscribe", "listener", "subscribeShellStore", "useSidebarMode", "useShellStore", "setSidebarMode", "noop", "useShell", "breakpoint", "ready", "useBreakpoint", "actions", "setMode", "name", "setPeekTarget", "setShellPeek", "rail"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/shell.hooks.ts", "../../../src/hooks/use-breakpoint.ts", "../../../src/components/shell.types.ts", "../../../src/components/_internal/shell-store.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { useBreakpoint } from '../hooks/use-breakpoint.js';\nimport type { PresentationValue, ResponsivePresentation } from './shell.types.js';\nimport { tableOf, warnOnce } from './_internal/shell-store.js';\n\n/**\n * @deprecated Since 0.8.0 the Shell resolves a responsive `presentation` in\n * its stylesheet, so the pane is placed before any script runs. This hook\n * resolves it in JS after mount, which is the behaviour the Shell left\n * behind. It keeps working until 1.0.\n */\nfunction useResponsivePresentation(presentation: ResponsivePresentation): PresentationValue {\n React.useEffect(() => {\n warnOnce('Shell.useResponsivePresentation is deprecated and is removed in 1.0. The Shell resolves presentation in CSS.');\n }, []);\n const { breakpoint } = useBreakpoint(typeof presentation !== 'string');\n return tableOf<PresentationValue>(presentation, () => 'fixed')[breakpoint];\n}\n\nexport { useResponsivePresentation };\n", "'use client';\n\nimport * as React from 'react';\nimport { _BREAKPOINTS, type Breakpoint } from '../components/shell.types.js';\n\nconst QUERIES = Object.entries(_BREAKPOINTS) as Array<[Breakpoint, string]>;\n\ntype Listener = () => void;\n\n/**\n * One set of `MediaQueryList`s and one set of listeners for the whole\n * application. Every component that asks for the breakpoint used to create and\n * subscribe to its own copy of all five queries.\n */\nlet mediaQueryLists: Array<[Breakpoint, MediaQueryList]> | null = null;\nconst listeners = new Set<Listener>();\nlet cachedBreakpoint: Breakpoint | null = null;\n\nfunction getMediaQueryLists() {\n mediaQueryLists ??= QUERIES.map(([name, query]) => [name, window.matchMedia(query)] as [Breakpoint, MediaQueryList]);\n return mediaQueryLists;\n}\n\nfunction computeBreakpoint(): Breakpoint {\n // The largest matching query wins; `_BREAKPOINTS` is ordered smallest first.\n let matched: Breakpoint = 'initial';\n for (const [name, mql] of getMediaQueryLists()) {\n if (mql.matches) matched = name;\n }\n return matched;\n}\n\nfunction handleChange() {\n const next = computeBreakpoint();\n if (next === cachedBreakpoint) return;\n cachedBreakpoint = next;\n listeners.forEach((listener) => listener());\n}\n\nfunction subscribe(listener: Listener) {\n if (typeof window === 'undefined') return () => {};\n\n if (listeners.size === 0) {\n cachedBreakpoint = computeBreakpoint();\n for (const [, mql] of getMediaQueryLists()) {\n // Safari below 14 only has the deprecated listener API.\n if (typeof mql.addEventListener === 'function') mql.addEventListener('change', handleChange);\n else mql.addListener?.(handleChange);\n }\n }\n\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n if (listeners.size > 0) return;\n\n for (const [, mql] of getMediaQueryLists()) {\n try {\n if (typeof mql.removeEventListener === 'function') mql.removeEventListener('change', handleChange);\n else mql.removeListener?.(handleChange);\n } catch (error) {\n // Removal can throw in edge cases, e.g. the list was already torn down.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[useBreakpoint] MediaQueryList cleanup warning:', error);\n }\n }\n }\n cachedBreakpoint = null;\n };\n}\n\n/**\n * `getSnapshot` must return a referentially stable value between changes, so it\n * reads the cache that `handleChange` maintains rather than recomputing.\n */\nfunction getSnapshot(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n cachedBreakpoint ??= computeBreakpoint();\n return cachedBreakpoint;\n}\n\nfunction getServerSnapshot(): Breakpoint {\n return 'initial';\n}\n\n/**\n * The breakpoint right now, outside React's render. For an effect that needs\n * the answer at the moment it runs rather than the one its render saw.\n */\nexport function readBreakpoint(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n return computeBreakpoint();\n}\n\nconst getReadySnapshot = () => true;\nconst getReadyServerSnapshot = () => false;\n\nconst noopSubscribe = () => () => {};\nconst getInitialSnapshot = (): Breakpoint => 'initial';\n\n/**\n * The current breakpoint, and whether it has been resolved against a real\n * viewport yet (`false` on the server and during hydration).\n *\n * Reads through `useSyncExternalStore` rather than settling into state from an\n * effect. On a client render the very first pass already has the real\n * breakpoint, instead of rendering the whole shell at `initial` and correcting\n * it after the browser has painted.\n *\n * Pass `enabled = false` to skip the subscription (the breakpoint then reads as\n * `initial`).\n */\nexport function useBreakpoint(enabled = true): { breakpoint: Breakpoint; ready: boolean } {\n // Callers with a non-responsive value pass `enabled = false` so they neither\n // subscribe to the media queries nor re-render when the viewport crosses one.\n const breakpoint = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n enabled ? getSnapshot : getInitialSnapshot,\n getServerSnapshot,\n );\n const ready = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n getReadySnapshot,\n getReadyServerSnapshot,\n );\n\n return React.useMemo(() => ({ breakpoint, ready }), [breakpoint, ready]);\n}\n", "import type * as React from 'react';\n\nexport type PresentationValue = 'fixed' | 'overlay' | 'stacked';\n\nexport type ResponsivePresentation = PresentationValue | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PresentationValue>>;\n\nexport type PaneMode = 'expanded' | 'collapsed';\nexport type SidebarMode = 'collapsed' | 'thin' | 'expanded';\n\nexport type ResponsiveMode = PaneMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PaneMode>>;\n\nexport type ResponsiveSidebarMode = SidebarMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', SidebarMode>>;\n\nexport type Responsive<T> = T | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', T>>;\n\nexport type PaneSizePersistence = {\n load?: () => number | Promise<number | undefined> | undefined;\n save?: (size: number) => void | Promise<void>;\n};\n\n/**\n * Why a pane's open state changed. Since 0.8.0 only a user action is reported:\n * `toggle` for a Trigger, a handle double-click or a drag past\n * `collapseThreshold`, and `dismiss` for Escape or a press on the scrim.\n * `init`, `responsive`, `panel` and `left` are kept in the types for\n * compatibility and are never sent.\n */\nexport type PaneOpenChangeReason = 'toggle' | 'dismiss' | 'init' | 'responsive';\n\nexport interface PaneBaseProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n minSize?: number;\n maxSize?: number;\n resizable?: boolean;\n collapsible?: boolean;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onExpand?: () => void;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onCollapse?: () => void;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n /** @deprecated Removed in 1.0. Snap in your own `onSizeChange` and pass `size`. */\n snapPoints?: number[];\n /** @deprecated Removed in 1.0, with `snapPoints`. */\n snapTolerance?: number;\n /** @deprecated Removed in 1.0. Close the pane from your own `onResizeEnd`. */\n collapseThreshold?: number;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n paneId?: string;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n persistence?: PaneSizePersistence;\n}\n\nexport const _BREAKPOINTS = {\n xs: '(min-width: 520px)',\n sm: '(min-width: 768px)',\n md: '(min-width: 1024px)',\n lg: '(min-width: 1280px)',\n xl: '(min-width: 1640px)',\n} as const;\n\nexport type Breakpoint = 'initial' | keyof typeof _BREAKPOINTS;\n\n/** Every breakpoint, smallest first. The stylesheet's @media blocks follow this order. */\nexport const SHELL_BREAKPOINTS: readonly Breakpoint[] = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'];\n\nexport type PaneTarget = 'left' | 'rail' | 'panel' | 'sidebar' | 'inspector' | 'bottom';\n\n/** The panes a Trigger can drive. `left` is the deprecated name for `rail`. */\nexport type PaneName = Exclude<PaneTarget, 'left'>;\n\n/**\n * CSS custom property key type for type-safe style objects.\n * Allows any string prefixed with '--'.\n */\nexport type CSSCustomProperty = `--${string}`;\n\n/**\n * Style object that supports CSS custom properties.\n */\nexport type CSSPropertiesWithVars = React.CSSProperties & {\n [key: CSSCustomProperty]: string | number | undefined;\n};\n", "'use client';\n\n/**\n * The Shell's state model (0.8.0), ported from kookie-ui-v2's Shell.\n *\n * - State lives on the pane. Each pane holds `auto | open | closed` (the\n * Sidebar adds `thin`). `auto` means untouched: the stylesheet decides what\n * it shows at each breakpoint, so first paint is right with no script, the\n * server and the client render the same markup, and no open-state callback\n * can fire on mount or on a resize.\n * - The one thing that crosses the Shell is a registry keyed by pane name.\n * Each pane registers what it is and how to drive it; a Trigger looks its\n * pane up, and the Root reads the set of live overlays. Nothing scans\n * children and nothing checks `displayName`.\n * - The responsive props are resolved into a table with one value per\n * breakpoint, from the props alone, with no window. The table is written to\n * the DOM as data attributes for the stylesheet, and read again in JS by the\n * mirror that sets `aria-expanded`. One table, two readers, so they agree by\n * construction.\n */\nimport * as React from 'react';\nimport { SHELL_BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\n\n/* \u2500\u2500 Breakpoint tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type Table<T> = Record<Breakpoint, T>;\n\n/** What a pane shows: open, open at its thin width (Sidebar only), or closed. */\nexport type PaneValue = 'open' | 'thin' | 'closed';\n\ntype ResponsiveInput<T> = T | Partial<Record<Breakpoint, T>> | undefined;\n\nfunction isMap<T>(value: ResponsiveInput<T>): value is Partial<Record<Breakpoint, T>> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * A responsive value at every breakpoint. A breakpoint takes the largest key\n * at or below it, the same fallback `useResponsiveValue` used; a breakpoint\n * below every key takes `fallback`.\n */\nexport function tableOf<T>(value: ResponsiveInput<T>, fallback: (bp: Breakpoint) => T): Table<T> {\n const table = {} as Table<T>;\n let carried: { value: T } | null = null;\n for (const bp of SHELL_BREAKPOINTS) {\n if (value !== undefined && !isMap(value)) {\n table[bp] = value;\n continue;\n }\n const entry = isMap(value) ? value[bp] : undefined;\n if (entry !== undefined) carried = { value: entry };\n table[bp] = carried ? carried.value : fallback(bp);\n }\n return table;\n}\n\n/** The table's one value, when it has only one. */\nexport function constantOf<T>(table: Table<T>): T | undefined {\n const first = table.initial;\n return SHELL_BREAKPOINTS.every((bp) => table[bp] === first) ? first : undefined;\n}\n\n/**\n * The table as data attributes: `data-<name>` when it holds one value, one\n * `data-<name>-<bp>` per breakpoint when it holds several. The stylesheet has\n * a rule for each spelling.\n */\nexport function tableAttributes(name: string, table: Table<string>): Record<string, string> {\n const constant = constantOf(table);\n if (constant !== undefined) return { [`data-${name}`]: constant };\n const attributes: Record<string, string> = {};\n for (const bp of SHELL_BREAKPOINTS) attributes[`data-${name}-${bp}`] = table[bp];\n return attributes;\n}\n\n/**\n * A responsive prop object is usually an inline literal, a new identity every\n * render. Keying memoisation on its contents keeps the tables, and so the\n * registry entries, stable across renders that change nothing.\n */\nexport function useStableKey(value: unknown): string {\n return typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value);\n}\n\nexport const FIXED_TABLE: Table<PresentationValue> = tableOf<PresentationValue>('fixed', () => 'fixed');\n\n/* \u2500\u2500 The registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type OpenChangeReason = 'toggle' | 'dismiss';\n\nexport type PaneEntry = {\n name: PaneName;\n id: string;\n el: HTMLElement | null;\n /** What the pane shows now; `undefined` while an untouched pane cannot know (before the breakpoint is known). */\n value: PaneValue | undefined;\n /** How the pane is presented now, when known. */\n presentation: PresentationValue | undefined;\n /** The pane's own presentation at every breakpoint. A Panel with none of its own follows the Rail's. */\n presentationTable: Table<PresentationValue>;\n /** Open and presented as an overlay: what the scrim and Escape close, and what containment exempts. */\n overlayLive: boolean;\n /** The pane's designed open width, for panes that sit beside it when floating. */\n size: number;\n setValue: (value: PaneValue, reason: OpenChangeReason) => void;\n toggle: (reason: OpenChangeReason) => void;\n};\n\nexport type ShellStore = {\n entries: Map<PaneName, PaneEntry>;\n listeners: Set<() => void>;\n /**\n * What a subscriber reads. useSyncExternalStore needs a value that is stable\n * between notifications, and a number is; the Map, or anything derived from\n * it, would be a new identity on every read.\n */\n version: number;\n /** The pane a hovered Trigger is previewing, if any. Layout only. */\n peek: PaneName | null;\n};\n\nexport function createShellStore(): ShellStore {\n return { entries: new Map(), listeners: new Set(), version: 0, peek: null };\n}\n\nexport function notifyShellStore(store: ShellStore) {\n store.version += 1;\n for (const listener of store.listeners) listener();\n}\n\nexport function subscribeShellStore(store: ShellStore, listener: () => void) {\n store.listeners.add(listener);\n return () => {\n store.listeners.delete(listener);\n };\n}\n\nexport function setShellPeek(store: ShellStore, peek: PaneName | null) {\n if (store.peek === peek) return;\n store.peek = peek;\n notifyShellStore(store);\n}\n\nexport const ShellStoreContext = React.createContext<ShellStore | null>(null);\n\nexport function useShellStore(part: string): ShellStore {\n const store = React.useContext(ShellStoreContext);\n if (!store) throw new Error(`${part} must be used within <Shell.Root>`);\n return store;\n}\n\n/** One pane's registry entry. Re-renders only when that entry is replaced. */\nexport function usePaneEntry(store: ShellStore, name: PaneName): PaneEntry | undefined {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const getSnapshot = React.useCallback(() => store.entries.get(name), [store, name]);\n return React.useSyncExternalStore(subscribe, getSnapshot, () => undefined);\n}\n\n/**\n * Whether this pane is the one being previewed. A boolean per pane rather than\n * the peek target itself, so hovering one Trigger re-renders one pane, not all.\n */\nexport function usePeeking(store: ShellStore, name: PaneName): boolean {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.peek === name,\n () => false,\n );\n}\n\n/* \u2500\u2500 Inset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type InsetPaneId = 'rail' | 'panel' | 'sidebar' | 'content' | 'inspector' | 'bottom';\n\nexport const ShellInsetContext = React.createContext<{\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n} | null>(null);\n\n/** Registers a pane's `inset` with the Root, which paints the backdrop while any pane is inset. */\nexport function useInsetRegistration(id: InsetPaneId, inset: boolean | undefined) {\n const ctx = React.useContext(ShellInsetContext);\n if (!ctx) throw new Error('Shell panes must be used within <Shell.Root>');\n const { registerInset, unregisterInset } = ctx;\n React.useLayoutEffect(() => {\n if (!inset) return;\n registerInset(id);\n return () => unregisterInset(id);\n }, [id, inset, registerInset, unregisterInset]);\n}\n\n/* \u2500\u2500 Development warnings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nconst warned = new Set<string>();\n\n/** A deprecation warning, once per message per page load. Development only. */\nexport function warnOnce(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { useBreakpoint } from '../hooks/use-breakpoint.js';\nimport type { PresentationValue, ResponsivePresentation } from './shell.types.js';\nimport { tableOf, warnOnce } from './_internal/shell-store.js';\n\n/**\n * @deprecated Since 0.8.0 the Shell resolves a responsive `presentation` in\n * its stylesheet, so the pane is placed before any script runs. This hook\n * resolves it in JS after mount, which is the behaviour the Shell left\n * behind. It keeps working until 1.0.\n */\nfunction useResponsivePresentation(presentation: ResponsivePresentation): PresentationValue {\n React.useEffect(() => {\n warnOnce('Shell.useResponsivePresentation is deprecated and is removed in 1.0. The Shell resolves presentation in CSS.');\n }, []);\n const { breakpoint } = useBreakpoint(typeof presentation !== 'string');\n return tableOf<PresentationValue>(presentation, () => 'fixed')[breakpoint];\n}\n\nexport { useResponsivePresentation };\n", "'use client';\n\nimport * as React from 'react';\nimport { _BREAKPOINTS, type Breakpoint } from '../components/shell.types.js';\n\nconst QUERIES = Object.entries(_BREAKPOINTS) as Array<[Breakpoint, string]>;\n\ntype Listener = () => void;\n\n/**\n * One set of `MediaQueryList`s and one set of listeners for the whole\n * application. Every component that asks for the breakpoint used to create and\n * subscribe to its own copy of all five queries.\n */\nlet mediaQueryLists: Array<[Breakpoint, MediaQueryList]> | null = null;\nconst listeners = new Set<Listener>();\nlet cachedBreakpoint: Breakpoint | null = null;\n\nfunction getMediaQueryLists() {\n mediaQueryLists ??= QUERIES.map(([name, query]) => [name, window.matchMedia(query)] as [Breakpoint, MediaQueryList]);\n return mediaQueryLists;\n}\n\nfunction computeBreakpoint(): Breakpoint {\n // The largest matching query wins; `_BREAKPOINTS` is ordered smallest first.\n let matched: Breakpoint = 'initial';\n for (const [name, mql] of getMediaQueryLists()) {\n if (mql.matches) matched = name;\n }\n return matched;\n}\n\nfunction handleChange() {\n const next = computeBreakpoint();\n if (next === cachedBreakpoint) return;\n cachedBreakpoint = next;\n listeners.forEach((listener) => listener());\n}\n\nfunction subscribe(listener: Listener) {\n if (typeof window === 'undefined') return () => {};\n\n if (listeners.size === 0) {\n cachedBreakpoint = computeBreakpoint();\n for (const [, mql] of getMediaQueryLists()) {\n // Safari below 14 only has the deprecated listener API.\n if (typeof mql.addEventListener === 'function') mql.addEventListener('change', handleChange);\n else mql.addListener?.(handleChange);\n }\n }\n\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n if (listeners.size > 0) return;\n\n for (const [, mql] of getMediaQueryLists()) {\n try {\n if (typeof mql.removeEventListener === 'function') mql.removeEventListener('change', handleChange);\n else mql.removeListener?.(handleChange);\n } catch (error) {\n // Removal can throw in edge cases, e.g. the list was already torn down.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[useBreakpoint] MediaQueryList cleanup warning:', error);\n }\n }\n }\n cachedBreakpoint = null;\n };\n}\n\n/**\n * `getSnapshot` must return a referentially stable value between changes, so it\n * reads the cache that `handleChange` maintains rather than recomputing.\n */\nfunction getSnapshot(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n cachedBreakpoint ??= computeBreakpoint();\n return cachedBreakpoint;\n}\n\nfunction getServerSnapshot(): Breakpoint {\n return 'initial';\n}\n\n/**\n * The breakpoint right now, outside React's render. For an effect that needs\n * the answer at the moment it runs rather than the one its render saw.\n */\nexport function readBreakpoint(): Breakpoint {\n if (typeof window === 'undefined') return 'initial';\n return computeBreakpoint();\n}\n\nconst getReadySnapshot = () => true;\nconst getReadyServerSnapshot = () => false;\n\nconst noopSubscribe = () => () => {};\nconst getInitialSnapshot = (): Breakpoint => 'initial';\n\n/**\n * The current breakpoint, and whether it has been resolved against a real\n * viewport yet (`false` on the server and during hydration).\n *\n * Reads through `useSyncExternalStore` rather than settling into state from an\n * effect. On a client render the very first pass already has the real\n * breakpoint, instead of rendering the whole shell at `initial` and correcting\n * it after the browser has painted.\n *\n * Pass `enabled = false` to skip the subscription (the breakpoint then reads as\n * `initial`).\n */\nexport function useBreakpoint(enabled = true): { breakpoint: Breakpoint; ready: boolean } {\n // Callers with a non-responsive value pass `enabled = false` so they neither\n // subscribe to the media queries nor re-render when the viewport crosses one.\n const breakpoint = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n enabled ? getSnapshot : getInitialSnapshot,\n getServerSnapshot,\n );\n const ready = React.useSyncExternalStore(\n enabled ? subscribe : noopSubscribe,\n getReadySnapshot,\n getReadyServerSnapshot,\n );\n\n return React.useMemo(() => ({ breakpoint, ready }), [breakpoint, ready]);\n}\n", "import type * as React from 'react';\n\nexport type PresentationValue = 'fixed' | 'overlay' | 'stacked';\n\nexport type ResponsivePresentation = PresentationValue | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PresentationValue>>;\n\nexport type PaneMode = 'expanded' | 'collapsed';\nexport type SidebarMode = 'collapsed' | 'expanded';\n\nexport type ResponsiveMode = PaneMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', PaneMode>>;\n\nexport type ResponsiveSidebarMode = SidebarMode | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', SidebarMode>>;\n\nexport type Responsive<T> = T | Partial<Record<'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl', T>>;\n\nexport type PaneSizePersistence = {\n load?: () => number | Promise<number | undefined> | undefined;\n save?: (size: number) => void | Promise<void>;\n};\n\n/**\n * Why a pane's open state changed. Since 0.8.0 only a user action is reported:\n * `toggle` for a Trigger, a handle double-click or a drag past\n * `collapseThreshold`, and `dismiss` for Escape or a press on the scrim.\n * `init`, `responsive`, `panel` and `left` are kept in the types for\n * compatibility and are never sent.\n */\nexport type PaneOpenChangeReason = 'toggle' | 'dismiss' | 'init' | 'responsive';\n\nexport interface PaneBaseProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n minSize?: number;\n maxSize?: number;\n resizable?: boolean;\n collapsible?: boolean;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onExpand?: () => void;\n /** @deprecated Use `onOpenChange`. Still called when a user's toggle or a controlled prop changes whether the pane is shown; never on mount or when the window crosses a breakpoint. */\n onCollapse?: () => void;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n /** @deprecated Removed in 1.0. Snap in your own `onSizeChange` and pass `size`. */\n snapPoints?: number[];\n /** @deprecated Removed in 1.0, with `snapPoints`. */\n snapTolerance?: number;\n /** @deprecated Removed in 1.0. Close the pane from your own `onResizeEnd`. */\n collapseThreshold?: number;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n paneId?: string;\n /** @deprecated Removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`. */\n persistence?: PaneSizePersistence;\n}\n\nexport const _BREAKPOINTS = {\n xs: '(min-width: 520px)',\n sm: '(min-width: 768px)',\n md: '(min-width: 1024px)',\n lg: '(min-width: 1280px)',\n xl: '(min-width: 1640px)',\n} as const;\n\nexport type Breakpoint = 'initial' | keyof typeof _BREAKPOINTS;\n\n/** Every breakpoint, smallest first. The stylesheet's @media blocks follow this order. */\nexport const SHELL_BREAKPOINTS: readonly Breakpoint[] = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'];\n\nexport type PaneTarget = 'left' | 'rail' | 'panel' | 'sidebar' | 'inspector' | 'bottom';\n\n/** The panes a Trigger can drive. `left` is the deprecated name for `rail`. */\nexport type PaneName = Exclude<PaneTarget, 'left'>;\n\n/**\n * CSS custom property key type for type-safe style objects.\n * Allows any string prefixed with '--'.\n */\nexport type CSSCustomProperty = `--${string}`;\n\n/**\n * Style object that supports CSS custom properties.\n */\nexport type CSSPropertiesWithVars = React.CSSProperties & {\n [key: CSSCustomProperty]: string | number | undefined;\n};\n", "'use client';\n\n/**\n * The Shell's state model (0.8.0), ported from kookie-ui-v2's Shell.\n *\n * - State lives on the pane. Each pane holds `auto | open | closed`.\n * `auto` means untouched: the stylesheet decides what\n * it shows at each breakpoint, so first paint is right with no script, the\n * server and the client render the same markup, and no open-state callback\n * can fire on mount or on a resize.\n * - The one thing that crosses the Shell is a registry keyed by pane name.\n * Each pane registers what it is and how to drive it; a Trigger looks its\n * pane up, and the Root reads the set of live overlays. Nothing scans\n * children and nothing checks `displayName`.\n * - The responsive props are resolved into a table with one value per\n * breakpoint, from the props alone, with no window. The table is written to\n * the DOM as data attributes for the stylesheet, and read again in JS by the\n * mirror that sets `aria-expanded`. One table, two readers, so they agree by\n * construction.\n */\nimport * as React from 'react';\nimport { SHELL_BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\n\n/* \u2500\u2500 Breakpoint tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type Table<T> = Record<Breakpoint, T>;\n\n/** What a pane shows: open or closed. */\nexport type PaneValue = 'open' | 'closed';\n\ntype ResponsiveInput<T> = T | Partial<Record<Breakpoint, T>> | undefined;\n\nfunction isMap<T>(value: ResponsiveInput<T>): value is Partial<Record<Breakpoint, T>> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * A responsive value at every breakpoint. A breakpoint takes the largest key\n * at or below it, the same fallback `useResponsiveValue` used; a breakpoint\n * below every key takes `fallback`.\n */\nexport function tableOf<T>(value: ResponsiveInput<T>, fallback: (bp: Breakpoint) => T): Table<T> {\n const table = {} as Table<T>;\n let carried: { value: T } | null = null;\n for (const bp of SHELL_BREAKPOINTS) {\n if (value !== undefined && !isMap(value)) {\n table[bp] = value;\n continue;\n }\n const entry = isMap(value) ? value[bp] : undefined;\n if (entry !== undefined) carried = { value: entry };\n table[bp] = carried ? carried.value : fallback(bp);\n }\n return table;\n}\n\n/** The table's one value, when it has only one. */\nexport function constantOf<T>(table: Table<T>): T | undefined {\n const first = table.initial;\n return SHELL_BREAKPOINTS.every((bp) => table[bp] === first) ? first : undefined;\n}\n\n/**\n * The table as data attributes: `data-<name>` when it holds one value, one\n * `data-<name>-<bp>` per breakpoint when it holds several. The stylesheet has\n * a rule for each spelling.\n */\nexport function tableAttributes(name: string, table: Table<string>): Record<string, string> {\n const constant = constantOf(table);\n if (constant !== undefined) return { [`data-${name}`]: constant };\n const attributes: Record<string, string> = {};\n for (const bp of SHELL_BREAKPOINTS) attributes[`data-${name}-${bp}`] = table[bp];\n return attributes;\n}\n\n/**\n * A responsive prop object is usually an inline literal, a new identity every\n * render. Keying memoisation on its contents keeps the tables, and so the\n * registry entries, stable across renders that change nothing.\n */\nexport function useStableKey(value: unknown): string {\n return typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value);\n}\n\nexport const FIXED_TABLE: Table<PresentationValue> = tableOf<PresentationValue>('fixed', () => 'fixed');\n\n/* \u2500\u2500 The registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type OpenChangeReason = 'toggle' | 'dismiss';\n\nexport type PaneEntry = {\n name: PaneName;\n id: string;\n el: HTMLElement | null;\n /** What the pane shows now; `undefined` while an untouched pane cannot know (before the breakpoint is known). */\n value: PaneValue | undefined;\n /** How the pane is presented now, when known. */\n presentation: PresentationValue | undefined;\n /** The pane's own presentation at every breakpoint. A Panel with none of its own follows the Rail's. */\n presentationTable: Table<PresentationValue>;\n /** Open and presented as an overlay: what the scrim and Escape close, and what containment exempts. */\n overlayLive: boolean;\n /** The pane's designed open width, for panes that sit beside it when floating. */\n size: number;\n setValue: (value: PaneValue, reason: OpenChangeReason) => void;\n toggle: (reason: OpenChangeReason) => void;\n};\n\nexport type ShellStore = {\n entries: Map<PaneName, PaneEntry>;\n listeners: Set<() => void>;\n /**\n * What a subscriber reads. useSyncExternalStore needs a value that is stable\n * between notifications, and a number is; the Map, or anything derived from\n * it, would be a new identity on every read.\n */\n version: number;\n /** The pane a hovered Trigger is previewing, if any. Layout only. */\n peek: PaneName | null;\n};\n\nexport function createShellStore(): ShellStore {\n return { entries: new Map(), listeners: new Set(), version: 0, peek: null };\n}\n\nexport function notifyShellStore(store: ShellStore) {\n store.version += 1;\n for (const listener of store.listeners) listener();\n}\n\nexport function subscribeShellStore(store: ShellStore, listener: () => void) {\n store.listeners.add(listener);\n return () => {\n store.listeners.delete(listener);\n };\n}\n\nexport function setShellPeek(store: ShellStore, peek: PaneName | null) {\n if (store.peek === peek) return;\n store.peek = peek;\n notifyShellStore(store);\n}\n\nexport const ShellStoreContext = React.createContext<ShellStore | null>(null);\n\nexport function useShellStore(part: string): ShellStore {\n const store = React.useContext(ShellStoreContext);\n if (!store) throw new Error(`${part} must be used within <Shell.Root>`);\n return store;\n}\n\n/** One pane's registry entry. Re-renders only when that entry is replaced. */\nexport function usePaneEntry(store: ShellStore, name: PaneName): PaneEntry | undefined {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const getSnapshot = React.useCallback(() => store.entries.get(name), [store, name]);\n return React.useSyncExternalStore(subscribe, getSnapshot, () => undefined);\n}\n\n/**\n * Whether this pane is the one being previewed. A boolean per pane rather than\n * the peek target itself, so hovering one Trigger re-renders one pane, not all.\n */\nexport function usePeeking(store: ShellStore, name: PaneName): boolean {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.peek === name,\n () => false,\n );\n}\n\n/* \u2500\u2500 Inset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type InsetPaneId = 'rail' | 'panel' | 'sidebar' | 'content' | 'inspector' | 'bottom';\n\nexport const ShellInsetContext = React.createContext<{\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n} | null>(null);\n\n/** Registers a pane's `inset` with the Root, which paints the backdrop while any pane is inset. */\nexport function useInsetRegistration(id: InsetPaneId, inset: boolean | undefined) {\n const ctx = React.useContext(ShellInsetContext);\n if (!ctx) throw new Error('Shell panes must be used within <Shell.Root>');\n const { registerInset, unregisterInset } = ctx;\n React.useLayoutEffect(() => {\n if (!inset) return;\n registerInset(id);\n return () => unregisterInset(id);\n }, [id, inset, registerInset, unregisterInset]);\n}\n\n/* \u2500\u2500 Development warnings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nconst warned = new Set<string>();\n\n/** A deprecation warning, once per message per page load. Development only. */\nexport function warnOnce(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n"],
|
|
5
5
|
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,oBCEvB,IAAAC,EAAuB,oBCqDhB,IAAMC,EAAe,CAC1B,GAAI,qBACJ,GAAI,qBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,qBACN,EAKaC,EAA2C,CAAC,UAAW,KAAM,KAAM,KAAM,KAAM,IAAI,ED7DhG,IAAMC,EAAU,OAAO,QAAQC,CAAY,EASvCC,EAA8D,KAC5DC,EAAY,IAAI,IAClBC,EAAsC,KAE1C,SAASC,GAAqB,CAC5B,OAAAH,MAAoBF,EAAQ,IAAI,CAAC,CAACM,EAAMC,CAAK,IAAM,CAACD,EAAM,OAAO,WAAWC,CAAK,CAAC,CAAiC,GAC5GL,CACT,CAEA,SAASM,GAAgC,CAEvC,IAAIC,EAAsB,UAC1B,OAAW,CAACH,EAAMI,CAAG,IAAKL,EAAmB,EACvCK,EAAI,UAASD,EAAUH,GAE7B,OAAOG,CACT,CAEA,SAASE,GAAe,CACtB,IAAMC,EAAOJ,EAAkB,EAC3BI,IAASR,IACbA,EAAmBQ,EACnBT,EAAU,QAASU,GAAaA,EAAS,CAAC,EAC5C,CAEA,SAASC,EAAUD,EAAoB,CACrC,GAAI,OAAO,OAAW,IAAa,MAAO,IAAM,CAAC,EAEjD,GAAIV,EAAU,OAAS,EAAG,CACxBC,EAAmBI,EAAkB,EACrC,OAAW,CAAC,CAAEE,CAAG,IAAKL,EAAmB,EAEnC,OAAOK,EAAI,kBAAqB,WAAYA,EAAI,iBAAiB,SAAUC,CAAY,EACtFD,EAAI,cAAcC,CAAY,CAEvC,CAEA,OAAAR,EAAU,IAAIU,CAAQ,EAEf,IAAM,CAEX,GADAV,EAAU,OAAOU,CAAQ,EACrB,EAAAV,EAAU,KAAO,GAErB,QAAW,CAAC,CAAEO,CAAG,IAAKL,EAAmB,EACvC,GAAI,CACE,OAAOK,EAAI,qBAAwB,WAAYA,EAAI,oBAAoB,SAAUC,CAAY,EAC5FD,EAAI,iBAAiBC,CAAY,CACxC,MAAgB,CAKhB,CAEFP,EAAmB,KACrB,CACF,CAMA,SAASW,GAA0B,CACjC,OAAI,OAAO,OAAW,IAAoB,WAC1CX,MAAqBI,EAAkB,GAChCJ,EACT,CAEA,SAASY,GAAgC,CACvC,MAAO,SACT,CAWA,IAAMC,EAAmB,IAAM,GACzBC,EAAyB,IAAM,GAE/BC,EAAgB,IAAM,IAAM,CAAC,EAC7BC,EAAqB,IAAkB,UActC,SAASC,EAAcC,EAAU,GAAkD,CAGxF,IAAMC,EAAmB,uBACvBD,EAAUE,EAAYL,EACtBG,EAAUG,EAAcL,EACxBM,CACF,EACMC,EAAc,uBAClBL,EAAUE,EAAYL,EACtBF,EACAC,CACF,EAEA,OAAa,UAAQ,KAAO,CAAE,WAAAK,EAAY,MAAAI,CAAM,GAAI,CAACJ,EAAYI,CAAK,CAAC,CACzE,CE5GA,IAAAC,EAAuB,oBAavB,SAASC,EAASC,EAAoE,CACpF,OAAO,OAAOA,GAAU,UAAYA,IAAU,IAChD,CAOO,SAASC,EAAWD,EAA2BE,EAA2C,CAC/F,IAAMC,EAAQ,CAAC,EACXC,EAA+B,KACnC,QAAWC,KAAMC,EAAmB,CAClC,GAAIN,IAAU,QAAa,CAACD,EAAMC,CAAK,EAAG,CACxCG,EAAME,CAAE,EAAIL,EACZ,QACF,CACA,IAAMO,EAAQR,EAAMC,CAAK,EAAIA,EAAMK,CAAE,EAAI,OACrCE,IAAU,SAAWH,EAAU,CAAE,MAAOG,CAAM,GAClDJ,EAAME,CAAE,EAAID,EAAUA,EAAQ,MAAQF,EAASG,CAAE,CACnD,CACA,OAAOF,CACT,CA8BO,IAAMK,EAAwCC,EAA2B,QAAS,IAAM,OAAO,EA2D/F,IAAMC,EAA0B,gBAAiC,IAAI,EAgCrE,IAAMC,EAA0B,gBAG7B,IAAI,EHxKd,SAASC,EAA0BC,EAAyD,CACpF,YAAU,IAAM,CAEtB,EAAG,CAAC,CAAC,EACL,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,OAAOF,GAAiB,QAAQ,EACrE,OAAOG,EAA2BH,EAAc,IAAM,OAAO,EAAEC,CAAU,CAC3E",
|
|
6
6
|
"names": ["shell_hooks_exports", "__export", "useResponsivePresentation", "__toCommonJS", "React", "React", "_BREAKPOINTS", "SHELL_BREAKPOINTS", "QUERIES", "_BREAKPOINTS", "mediaQueryLists", "listeners", "cachedBreakpoint", "getMediaQueryLists", "name", "query", "computeBreakpoint", "matched", "mql", "handleChange", "next", "listener", "subscribe", "getSnapshot", "getServerSnapshot", "getReadySnapshot", "getReadyServerSnapshot", "noopSubscribe", "getInitialSnapshot", "useBreakpoint", "enabled", "breakpoint", "subscribe", "getSnapshot", "getServerSnapshot", "ready", "React", "isMap", "value", "tableOf", "fallback", "table", "carried", "bp", "SHELL_BREAKPOINTS", "entry", "FIXED_TABLE", "tableOf", "ShellStoreContext", "ShellInsetContext", "useResponsivePresentation", "presentation", "breakpoint", "useBreakpoint", "tableOf"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";"use client";var Hn=Object.create;var Ue=Object.defineProperty;var An=Object.getOwnPropertyDescriptor;var $n=Object.getOwnPropertyNames;var Fn=Object.getPrototypeOf,Un=Object.prototype.hasOwnProperty;var jn=(e,t)=>{for(var n in t)Ue(e,n,{get:t[n],enumerable:!0})},$t=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of $n(t))!Un.call(e,r)&&r!==n&&Ue(e,r,{get:()=>t[r],enumerable:!(o=An(t,r))||o.enumerable});return e};var _=(e,t,n)=>(n=e!=null?Hn(Fn(e)):{},$t(t||!e||!e.__esModule?Ue(n,"default",{value:e,enumerable:!0}):n,e)),Wn=e=>$t(Ue({},"__esModule",{value:!0}),e);var ho={};jn(ho,{Bottom:()=>dt,Content:()=>Bn,Header:()=>kn,Inspector:()=>ct,Left:()=>Ln,PaneFooter:()=>Vt,PaneHeader:()=>Nt,Panel:()=>Bt,Rail:()=>Dn,Root:()=>Vn,Scroll:()=>kt,Sidebar:()=>lt,Trigger:()=>On,useResponsivePresentation:()=>Mn,useShell:()=>En,useSidebarMode:()=>zn});module.exports=Wn(ho);var u=_(require("react")),Ne=_(require("classnames")),mt=require("radix-ui/internal");var je=_(require("react")),Pe=je.createContext(null);function Ft(){let e=je.useContext(Pe);if(!e)throw new Error("Shell.Handle must be used within a resizable pane");return e}var q=_(require("react")),Ut=_(require("classnames"));var oe=q.forwardRef(({className:e,children:t,...n},o)=>{let{containerRef:r,controls:s,cssVarName:i,minSize:p,maxSize:l,defaultSize:d,orientation:b,edge:x,growth:C,onResize:T,onResizeStart:H,onResizeEnd:V,snapPoints:y,snapTolerance:h,collapseThreshold:z,collapsible:M,target:k,requestCollapse:U,requestToggle:A}=Ft(),$=q.useRef(null),Q=q.useCallback(m=>{$.current=m,typeof o=="function"?o(m):o&&(o.current=m)},[o]),P=q.useRef(null);q.useEffect(()=>()=>{P.current?.(),P.current=null},[]);let v=q.useCallback(()=>{let m=r.current;if(!m)return d;let S=Number.parseFloat(getComputedStyle(m).getPropertyValue(i));return Number.isFinite(S)?S:d},[r,i,d]),w=q.useCallback(()=>{let m=r.current,S=$.current,N=m?.closest(".rt-ShellRoot")?.getBoundingClientRect();if(!m||!N||!S)return l;let R=m.getBoundingClientRect(),F=S.getBoundingClientRect(),a=C(getComputedStyle(m).direction==="rtl"),c;b==="vertical"?c=a>0?N.right-R.left:R.right-N.left:c=a>0?N.bottom-R.top:R.bottom-N.top;let g=b==="vertical"?F.width:F.height;return!(N.width>0&&N.height>0)||!Number.isFinite(c)?l:Math.max(p,Math.min(l,Math.round(c-g)))},[r,C,l,p,b]),L=()=>{$.current?.setAttribute("aria-valuemax",String(w()))};q.useLayoutEffect(()=>{$.current?.setAttribute("aria-valuenow",String(Math.round(v())))},[v]);let D=(m,S)=>{m.style.setProperty(i,`${S}px`),$.current?.setAttribute("aria-valuenow",String(Math.round(S)))},Y=k.charAt(0).toUpperCase()+k.slice(1);return q.createElement("div",{ref:Q,className:(0,Ut.default)("rt-ShellResizer",e),"data-orientation":b,"data-edge":x,role:"separator",tabIndex:0,"aria-label":`Resize ${Y} pane`,"aria-controls":s,"aria-orientation":b,"aria-valuemin":p,"aria-valuemax":l,...n,onPointerDown:m=>{n.onPointerDown?.(m);let S=r.current;if(!S||m.defaultPrevented||m.button!==0)return;m.preventDefault();let N=m.currentTarget,R=m.pointerId;P.current?.();try{N.setPointerCapture(R)}catch{}let F=getComputedStyle(S),a=Number.parseFloat(F.getPropertyValue(i)),c=Number.isFinite(a)?a:d,g=b==="vertical"?m.clientX:m.clientY,f=C(F.direction==="rtl"),j=w();N.setAttribute("aria-valuemax",String(j));let K=J=>Math.min(Math.max(J,p),j);S.setAttribute("data-resizing",""),N.setAttribute("data-dragging","");let W=document.body,ue=W.style.cursor,fe=W.style.userSelect;W.style.cursor=b==="vertical"?"col-resize":"row-resize",W.style.userSelect="none",H?.(c);let ee=c,E=c,O=0,G=null,Ce=()=>{if(O=0,G===null)return;let J=G;G=null,T?.(J)},re=null,Ot=!1,In=(J,Ve)=>{if(J.type===Ve)Ot=!0;else if(Ot)return!1;return!0},pe=J=>{if(!In(J,"pointermove")||J===re)return;re=J;let Ve=b==="vertical"?J.clientX:J.clientY;E=c+(Ve-g)*f,ee=K(E),D(S,ee),G=ee,O||(O=requestAnimationFrame(Ce))},Fe=()=>{O&&cancelAnimationFrame(O),O=0;try{N.releasePointerCapture(R)}catch{}window.removeEventListener("pointermove",pe),document.removeEventListener("pointermove",pe),window.removeEventListener("mousemove",pe),document.removeEventListener("mousemove",pe),N.removeEventListener("pointermove",pe),window.removeEventListener("pointerup",te),document.removeEventListener("pointerup",te),window.removeEventListener("mouseup",te),document.removeEventListener("mouseup",te),window.removeEventListener("pointercancel",te),document.removeEventListener("pointercancel",te),window.removeEventListener("keydown",It),N.removeEventListener("lostpointercapture",te),S.removeAttribute("data-resizing"),N.removeAttribute("data-dragging"),W.style.cursor=ue,W.style.userSelect=fe,P.current=null},ft=!1,te=()=>{if(ft)return;if(ft=!0,O&&cancelAnimationFrame(O),Ce(),M&&typeof z=="number"&&E<=z){D(S,c),T?.(c),Fe(),U?.(),V?.(c);return}let J=ee;if(y&&y.length){let Ve=y.reduce((Ht,At)=>Math.abs(At-ee)<Math.abs(Ht-ee)?At:Ht,y[0]);Math.abs(Ve-ee)<=h&&(J=K(Ve),D(S,J),T?.(J))}V?.(J),Fe()},It=J=>{J.key==="Escape"&&(O&&cancelAnimationFrame(O),O=0,G=null,D(S,c),T?.(c),ft=!0,V?.(c),Fe())};window.addEventListener("pointermove",pe),document.addEventListener("pointermove",pe),window.addEventListener("mousemove",pe),document.addEventListener("mousemove",pe),N.addEventListener("pointermove",pe),window.addEventListener("pointerup",te),document.addEventListener("pointerup",te),window.addEventListener("mouseup",te),document.addEventListener("mouseup",te),window.addEventListener("pointercancel",te),document.addEventListener("pointercancel",te),window.addEventListener("keydown",It),N.addEventListener("lostpointercapture",te),P.current=Fe},onDoubleClick:m=>{n.onDoubleClick?.(m),!m.defaultPrevented&&M&&A?.()},onFocus:m=>{n.onFocus?.(m),L()},onKeyDown:m=>{n.onKeyDown?.(m);let S=r.current;if(!S||m.defaultPrevented)return;let N=v(),R=w(),F=c=>Math.min(Math.max(c,p),R),a;if(m.key==="Home")a=F(p);else if(m.key==="End")a=F(R);else{let c=b==="vertical"?m.key==="ArrowRight"?1:m.key==="ArrowLeft"?-1:0:m.key==="ArrowDown"?1:m.key==="ArrowUp"?-1:0;if(c===0)return;let g=m.shiftKey?32:8;a=F(N+c*g*C(getComputedStyle(S).direction==="rtl"))}m.preventDefault(),H?.(N),D(S,a),T?.(a),V?.(a)}},t)});oe.displayName="Shell.Handle";var We=q.forwardRef((e,t)=>q.createElement(oe,{...e,ref:t}));We.displayName="Shell.Panel.Handle";var _e=q.forwardRef((e,t)=>q.createElement(oe,{...e,ref:t}));_e.displayName="Shell.Sidebar.Handle";var qe=q.forwardRef((e,t)=>q.createElement(oe,{...e,ref:t}));qe.displayName="Shell.Inspector.Handle";var Ke=q.forwardRef((e,t)=>q.createElement(oe,{...e,ref:t}));Ke.displayName="Shell.Bottom.Handle";var ae=_(require("react")),gn=_(require("classnames")),bn=require("radix-ui/internal");var I=_(require("react"));var He=_(require("react"));var jt={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"},Ge=["initial","xs","sm","md","lg","xl"];var _n=Object.entries(jt),Pt=null,Ie=new Set,ze=null;function gt(){return Pt??(Pt=_n.map(([e,t])=>[e,window.matchMedia(t)])),Pt}function Xe(){let e="initial";for(let[t,n]of gt())n.matches&&(e=t);return e}function Qe(){let e=Xe();e!==ze&&(ze=e,Ie.forEach(t=>t()))}function Wt(e){if(typeof window>"u")return()=>{};if(Ie.size===0){ze=Xe();for(let[,t]of gt())typeof t.addEventListener=="function"?t.addEventListener("change",Qe):t.addListener?.(Qe)}return Ie.add(e),()=>{if(Ie.delete(e),!(Ie.size>0)){for(let[,t]of gt())try{typeof t.removeEventListener=="function"?t.removeEventListener("change",Qe):t.removeListener?.(Qe)}catch{}ze=null}}}function qn(){return typeof window>"u"?"initial":(ze??(ze=Xe()),ze)}function Kn(){return"initial"}function se(){return typeof window>"u"?"initial":Xe()}var Gn=()=>!0,Qn=()=>!1,_t=()=>()=>{},Xn=()=>"initial";function ke(e=!0){let t=He.useSyncExternalStore(e?Wt:_t,e?qn:Xn,Kn),n=He.useSyncExternalStore(e?Wt:_t,Gn,Qn);return He.useMemo(()=>({breakpoint:t,ready:n}),[t,n])}var Z=_(require("react"));function qt(e){return typeof e=="object"&&e!==null}function Ee(e,t){let n={},o=null;for(let r of Ge){if(e!==void 0&&!qt(e)){n[r]=e;continue}let s=qt(e)?e[r]:void 0;s!==void 0&&(o={value:s}),n[r]=o?o.value:t(r)}return n}function Le(e){let t=e.initial;return Ge.every(n=>e[n]===t)?t:void 0}function bt(e,t){let n=Le(t);if(n!==void 0)return{[`data-${e}`]:n};let o={};for(let r of Ge)o[`data-${e}-${r}`]=t[r];return o}function ht(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var Rt=Ee("fixed",()=>"fixed");function Kt(){return{entries:new Map,listeners:new Set,version:0,peek:null}}function Ye(e){e.version+=1;for(let t of e.listeners)t()}function Te(e,t){return e.listeners.add(t),()=>{e.listeners.delete(t)}}function De(e,t){e.peek!==t&&(e.peek=t,Ye(e))}var St=Z.createContext(null);function Re(e){let t=Z.useContext(St);if(!t)throw new Error(`${e} must be used within <Shell.Root>`);return t}function vt(e,t){let n=Z.useCallback(r=>Te(e,r),[e]),o=Z.useCallback(()=>e.entries.get(t),[e,t]);return Z.useSyncExternalStore(n,o,()=>{})}function Gt(e,t){let n=Z.useCallback(o=>Te(e,o),[e]);return Z.useSyncExternalStore(n,()=>e.peek===t,()=>!1)}var yt=Z.createContext(null);function me(e,t){let n=Z.useContext(yt);if(!n)throw new Error("Shell panes must be used within <Shell.Root>");let{registerInset:o,unregisterInset:r}=n;Z.useLayoutEffect(()=>{if(t)return o(e),()=>r(e)},[e,t,o,r])}var xt=e=>typeof e=="object"&&e!==null;function Yn(e){for(let t of["initial","xs","sm","md","lg","xl"]){let n=e[t];if(n!==void 0)return n}return"closed"}function ge(e){let{name:t,label:n,propNames:o,presentationTable:r,builtIn:s}=e,i=Re(`Shell.${n}`),p=I.useId(),l=e.id??`shell-${t}${p}`,d=e.controlled!==void 0,b=xt(e.controlled);b&&(`${n}${o.controlled}${o.default}`,void 0);let x=b?e.controlled:void 0,C=x??(xt(e.defaultValue)?e.defaultValue:void 0),T=ht(C),[H,V]=I.useState(()=>typeof e.defaultValue=="string"?e.defaultValue:"auto"),y=I.useMemo(()=>x?Ee(x,()=>Yn(x)):Ee(C,f=>s(r[f])),[T,b,r,s]),h=H;d&&(h=x?"auto":e.controlled);let z=Le(r)===void 0||h==="auto"&&Le(y)===void 0,{breakpoint:M,ready:k}=ke(z),U=f=>{let j=Le(f);return j!==void 0?j:k?f[M]:void 0},A=h==="auto"?U(y):h,$=U(r),Q=$==="overlay",P=A===void 0?void 0:A!=="closed",v=P===!0&&Q,w=e.defaultValue,L=I.useRef({state:h,value:A,autoTable:y,defaultValue:w,controlled:d,onChange:e.onChange,toggleNext:e.toggleNext});I.useLayoutEffect(()=>{L.current={state:h,value:A,autoTable:y,defaultValue:w,controlled:d,onChange:e.onChange,toggleNext:e.toggleNext}});let D=I.useCallback(()=>{let f=L.current;return f.value!==void 0?f.value:f.state==="auto"?f.autoTable[se()]:void 0},[]),Y=I.useCallback(()=>{let f=L.current;return typeof f.defaultValue=="string"?f.defaultValue:xt(f.defaultValue)?f.autoTable[se()]:void 0},[]),m=I.useCallback((f,j)=>{let K=L.current;D()!==f&&(K.onChange?.(f,j),K.controlled||V(f))},[D]),S=I.useCallback(f=>{let j=L.current,K=D()??"closed",W=j.toggleNext?j.toggleNext(K,Y()):K==="closed"?"open":"closed";m(W,f)},[m,D,Y]),N=I.useRef(null),R=I.useCallback(f=>{N.current=f},[]);I.useLayoutEffect(()=>{let f={name:t,id:l,el:N.current,value:A,presentation:$,presentationTable:r,overlayLive:v,size:e.size,setValue:m,toggle:S};return i.entries.set(t,f),Ye(i),()=>{i.entries.get(t)===f&&(i.entries.delete(t),Ye(i))}},[i,t,l,A,$,r,v,e.size,m,S]);let F=I.useRef({onExpand:e.onExpand,onCollapse:e.onCollapse});I.useLayoutEffect(()=>{F.current={onExpand:e.onExpand,onCollapse:e.onCollapse}});let a=I.useRef({state:h,shown:P});I.useEffect(()=>{let f=a.current;f.state!==h&&f.shown!==void 0&&P!==void 0&&f.shown!==P&&(P?F.current.onExpand?.():F.current.onCollapse?.()),a.current={state:h,shown:P}},[h,P]),I.useLayoutEffect(()=>{},[]);let c=I.useRef(d);I.useEffect(()=>{},[d,n,o.controlled]);let g=Gt(i,t)&&P===!1&&!Q;return{store:i,id:l,state:h,value:A,shown:P,presentation:$,overlaying:Q,overlayLive:v,peeking:g,ready:k,breakpoint:M,autoTable:y,setValue:m,toggle:S,defaultHereNow:Y,setElement:R}}function be(e,t){let{state:n,value:o,presentation:r,shown:s}=e;return{...t,"data-state":n==="thin"?"open":n,"data-thin":n==="thin"?"":void 0,...n==="auto"?bt("auto",e.autoTable):{},"data-presentation":r,"data-mode":o===void 0?void 0:o==="closed"?"collapsed":o==="thin"?"thin":"expanded","data-open":r==="stacked"&&s?"":void 0,"data-peek":e.peeking?"":void 0}}function he(e,t){let n=ht(e),o=I.useMemo(()=>Ee(e,()=>t),[n,t]),r=I.useMemo(()=>Le(o)===void 0?bt("presentation",o):{},[o]);return{table:o,attributes:r}}var B=_(require("react"));function Qt(e,t="horizontal"){if(e==null)return;if(typeof e=="number"&&Number.isFinite(e))return e;let n=String(e).trim();if(!n)return;if(n.endsWith("px"))return Number.parseFloat(n);if(n.endsWith("rem")){let r=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(n)*r}if(n.endsWith("%")){let r=Number.parseFloat(n),s=t==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return r/100*s}let o=Number.parseFloat(n);return Number.isFinite(o)?o:void 0}var Ct=(e,t,n)=>Math.max(t??e,Math.min(n??e,e));function Se(e){let{name:t,elementRef:n,cssVarName:o,orientation:r,minSize:s,maxSize:i,resizable:p,size:l,defaultSize:d,paneId:b,persistence:x}=e,C=B.useRef(e);B.useLayoutEffect(()=>{C.current=e});let T=B.useRef(null),H=B.useRef(0);B.useEffect(()=>()=>{T.current&&clearTimeout(T.current)},[]);let V=B.useCallback((P,v)=>{let{onSizeChange:w,sizeUpdate:L,sizeUpdateMs:D}=C.current;if(w){if(L==="debounce"){T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{T.current=null,C.current.onSizeChange?.(P,v)},D);return}if(L==="throttle"){let Y=Date.now();if(Y-H.current<D)return;H.current=Y}w(P,v)}},[]),y=B.useCallback(P=>Qt(P,r==="vertical"?"horizontal":"vertical"),[r]),h=B.useRef(!1),z=B.useCallback((P,v)=>{let w=n.current;if(w){w.style.setProperty(o,`${P}px`);for(let L of w.querySelectorAll(":scope > .rt-ShellResizer"))L.setAttribute("aria-valuenow",String(Math.round(P)));v&&(h.current=!0)}},[n,o]);B.useLayoutEffect(()=>{h.current||z(e.expandedSize,!1)},[e.expandedSize,z]),B.useLayoutEffect(()=>{if(l!==void 0||d===void 0)return;let P=y(d);if(typeof P!="number"||!Number.isFinite(P))return;let v=Ct(P,s,i);z(v,!0),V(v,{reason:"init"})},[]),B.useLayoutEffect(()=>{if(l===void 0||C.current.overlayingNow())return;let P=y(l);if(typeof P!="number"||!Number.isFinite(P))return;let v=Ct(P,s,i);z(v,!0),V(v,{reason:"controlled"})},[l,s,i,e.overlaying,y,z,V]);let M=B.useMemo(()=>{if(!b||x)return x;let P=`kookie-ui:shell:${t}:${b}`;return{load:()=>{if(!(typeof window>"u"))try{let v=window.localStorage.getItem(P);return v?Number(v):void 0}catch{return}},save:v=>{if(!(typeof window>"u"))try{window.localStorage.setItem(P,String(v))}catch{}}}},[t,b,x]);B.useLayoutEffect(()=>{if(!p||!M?.load||C.current.overlayingNow())return;let P=!0,v=L=>{if(!P||typeof L!="number"||!Number.isFinite(L))return;let D=Ct(L,s,i);z(D,!0),C.current.onResize?.(D)},w=M.load();return w instanceof Promise?w.then(v).catch(L=>{}):v(w),()=>{P=!1}},[p,M,e.overlaying,z,s,i,t]);let k=B.useCallback(P=>C.current.onResize?.(P),[]),U=B.useCallback(P=>{h.current=!0,C.current.onResizeStart?.(P)},[]),A=B.useCallback(P=>{C.current.onResizeEnd?.(P),V(P,{reason:"resize"}),M?.save?.(P)},[V,M]),$=B.useCallback(()=>C.current.requestCollapse(),[]),Q=B.useCallback(()=>C.current.requestToggle(),[]);return B.useMemo(()=>({containerRef:n,controls:e.elementId,cssVarName:o,minSize:s,maxSize:i,defaultSize:e.expandedSize,orientation:r,edge:e.edge,growth:e.growth,onResize:k,onResizeStart:U,onResizeEnd:A,target:t,collapsible:e.collapsible,snapPoints:e.snapPoints,snapTolerance:e.snapTolerance??8,collapseThreshold:e.collapseThreshold,requestCollapse:$,requestToggle:Q}),[n,e.elementId,o,s,i,e.expandedSize,r,e.edge,e.growth,k,U,A,t,e.collapsible,e.snapPoints,e.snapTolerance,e.collapseThreshold,$,Q])}function ve(e,t){let n=B.Children.toArray(e),o=n.filter(s=>B.isValidElement(s)&&s.type===t),r=n.filter(s=>!(B.isValidElement(s)&&s.type===t));return{handles:o,content:r}}function ie(e){if(e===void 0)return;if(typeof e=="boolean")return e?"open":"closed";let t={};for(let[n,o]of Object.entries(e))typeof o=="boolean"&&(t[n]=o?"open":"closed");return t}var Je=e=>e==="overlay"?"closed":"open",Oe=()=>"closed",Ze=e=>e?-1:1,Xt=e=>e?1:-1,Yt=()=>-1;function ye(e){if(!("height"in e)&&!("resizer"in e))return e;let{height:t,resizer:n,...o}=e;return o}var X=_(require("react")),st=_(require("classnames"));var ne=_(require("react")),at=_(require("classnames")),xe=require("radix-ui"),cn=require("radix-ui/internal");var Jt={asChild:{type:"boolean"}};var Jn=["none","small","medium","large","full"],Zt={radius:{type:"enum",values:Jn,default:void 0}};var Zn=["1","2","3"],eo=["vertical","horizontal","both"],Me={...Jt,size:{type:"enum",className:"rt-r-size",values:Zn,default:"1",responsive:!0},...Zt,scrollbars:{type:"enum",values:eo,default:"both"},fade:{type:"boolean",default:!1}};var et=_(require("react"));function en(e){let[t,n]=et.useState(null);return et.useEffect(()=>{if(!e||!t)return;let o=0,r=()=>{o=0;let l=Math.max(0,t.scrollTop),d=Math.max(0,t.scrollHeight-t.clientHeight-t.scrollTop);t.style.setProperty("--scroll-overflow-start",`${l}px`),t.style.setProperty("--scroll-overflow-end",`${d}px`)},s=()=>{o||(o=requestAnimationFrame(r))};r(),t.addEventListener("scroll",s,{passive:!0});let i=typeof ResizeObserver>"u"?null:new ResizeObserver(s);i?.observe(t);for(let l of Array.from(t.children))i?.observe(l);let p=typeof MutationObserver>"u"?null:new MutationObserver(s);return p?.observe(t,{childList:!0}),()=>{o&&cancelAnimationFrame(o),t.removeEventListener("scroll",s),i?.disconnect(),p?.disconnect(),t.style.removeProperty("--scroll-overflow-start"),t.style.removeProperty("--scroll-overflow-end")}},[e,t]),n}function tn(e){let{m:t,mx:n,my:o,mt:r,mr:s,mb:i,ml:p,...l}=e;return{m:t,mx:n,my:o,mt:r,mr:s,mb:i,ml:p,rest:l}}var to=["initial","xs","sm","md","lg","xl"],zt=new Set(to);function Et(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var no=new Set(["initial","xs","sm","md","lg","xl"]);function Tt(e){if(typeof e!="object"||e===null)return!1;for(let t in e)if(no.has(t))return!0;return!1}function tt(e,t,n){return t!==void 0?t.has(n):e.includes(n)}function on({className:e,customProperties:t,...n}){let o=nt({allowArbitraryValues:!0,className:e,...n}),r=oo({customProperties:t,...n});return[o,r]}function nt({allowArbitraryValues:e,value:t,className:n,propValues:o,propValueSet:r,parseValue:s=i=>i}){if(t){if(typeof t=="string")return tt(o,r,t)?nn(n,t,s):e?n:void 0;if(Tt(t)){let i=t,p=[];for(let l in i){if(!Et(i,l)||!zt.has(l))continue;let d=i[l];if(d!==void 0){if(tt(o,r,d)){let b=nn(n,d,s),x=l==="initial"?b:`${l}:${b}`;p.push(x)}else if(e){let b=l==="initial"?n:`${l}:${n}`;p.push(b)}}}return p.length>0?p.join(" "):""}if(e)return n}}function nn(e,t,n){let o=e?"-":"",r=n(t),s=r?.startsWith("-"),i=s?"-":"",p=s?r?.substring(1):r;return`${i}${e}${o}${p}`}function oo({customProperties:e,value:t,propValues:n,propValueSet:o,parseValue:r=s=>s}){if(!t||typeof t=="string"&&tt(n,o,t))return;let s;if(typeof t=="string"){let i=r(t);s={};for(let p of e)s[p]=i;return s}if(Tt(t)){let i=t;for(let p in i){if(!Et(i,p)||!zt.has(p))continue;let l=i[p];if(l===void 0||tt(n,o,l))continue;let d=r(l);s??(s={});for(let b of e){let x=p==="initial"?b:`${b}-${p}`;s[x]=d}}}return s??{}}function ot(...e){let t;for(let n of e)n&&(t===void 0&&(t={}),Object.assign(t,n));return t}var we=["0","1","2","3","4","5","6","7","8","9","10","11","12","-1","-2","-3","-4","-5","-6","-7","-8","-9","-10","-11","-12"],rn={m:{type:"enum | string",values:we,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:we,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:we,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}};var sn=rn.m.values,ro=new Set(sn),an=[{key:"m",className:"rt-r-m",customProperties:["--margin"]},{key:"mx",className:"rt-r-mx",customProperties:["--margin-left","--margin-right"]},{key:"my",className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"]},{key:"mt",className:"rt-r-mt",customProperties:["--margin-top"]},{key:"mr",className:"rt-r-mr",customProperties:["--margin-right"]},{key:"mb",className:"rt-r-mb",customProperties:["--margin-bottom"]},{key:"ml",className:"rt-r-ml",customProperties:["--margin-left"]}];function ln(e){let t,n;for(let o=0;o<an.length;o++){let{key:r,className:s,customProperties:i}=an[o],p=e[r];if(p===void 0)continue;let[l,d]=on({className:s,customProperties:i,propValues:sn,propValueSet:ro,value:p});l&&(t??(t=[])).push(l),d&&(n=ot(n,d))}return[t!==void 0?t.join(" "):"",n]}var rt=_(require("react"));function dn(e,t){let{asChild:n,children:o}=e;if(!n)return typeof t=="function"?t(o):t;let r=rt.Children.only(o);return rt.cloneElement(r,{children:typeof t=="function"?t(r.props.children):t})}var Mt=ne.forwardRef((e,t)=>{let{rest:n,...o}=tn(e),[r,s]=ln(o),{asChild:i,children:p,className:l,style:d,type:b,scrollHideDelay:x=b!=="scroll"?0:void 0,dir:C,size:T=Me.size.default,radius:H=Me.radius.default,scrollbars:V=Me.scrollbars.default,fade:y=Me.fade.default,...h}=n,z=en(y),M=(0,cn.useComposedRefs)(t,z);return ne.createElement(xe.ScrollArea.Root,{type:b,scrollHideDelay:x,className:(0,at.default)("rt-ScrollAreaRoot",r,l),"data-fade":y?"":void 0,style:ot(s,d),asChild:i},dn({asChild:i,children:p},k=>ne.createElement(ne.Fragment,null,ne.createElement(xe.ScrollArea.Viewport,{...h,ref:M,className:"rt-ScrollAreaViewport"},k),ne.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),V!=="vertical"?ne.createElement(xe.ScrollArea.Scrollbar,{"data-radius":H,orientation:"horizontal",className:(0,at.default)("rt-ScrollAreaScrollbar",nt({className:"rt-r-size",value:T,propValues:Me.size.values}))},ne.createElement(xe.ScrollArea.Thumb,{className:"rt-ScrollAreaThumb"})):null,V!=="horizontal"?ne.createElement(xe.ScrollArea.Scrollbar,{"data-radius":H,orientation:"vertical",className:(0,at.default)("rt-ScrollAreaScrollbar",nt({className:"rt-r-size",value:T,propValues:Me.size.values}))},ne.createElement(xe.ScrollArea.Thumb,{className:"rt-ScrollAreaThumb"})):null,V==="both"?ne.createElement(xe.ScrollArea.Corner,{className:"rt-ScrollAreaCorner"}):null)))});Mt.displayName="ScrollArea";var un=X.createContext(null);function ao(){return X.useContext(un)}var it=X.createContext("2");function Ae({children:e,presentation:t}){let n=X.useContext(it),o=X.useMemo(()=>({size:n,menuVariant:"soft",presentation:t}),[n,t]);return X.createElement(un.Provider,{value:o},e)}function wt(){let e=ao(),t=e?.size??"2",n=e?.menuVariant??"soft";return["rt-ShellPaneChrome",`rt-r-size-${t}`,`rt-menu-variant-${n}`]}var Nt=X.forwardRef(({className:e,...t},n)=>{let o=wt();return X.createElement("div",{...t,ref:n,className:(0,st.default)("rt-ShellPaneHeader","rt-SidebarHeader","rt-SidebarHeader--container",...o,e)})});Nt.displayName="Shell.PaneHeader";var Vt=X.forwardRef(({className:e,...t},n)=>{let o=wt();return X.createElement("div",{...t,ref:n,className:(0,st.default)("rt-ShellPaneFooter","rt-SidebarFooter","rt-SidebarFooter--container",...o,e)})});Vt.displayName="Shell.PaneFooter";var kt=X.forwardRef(({className:e,children:t,...n},o)=>{let r=wt();return X.createElement(Mt,{type:"hover",className:"rt-ShellScroll"},X.createElement("div",{...n,ref:o,className:(0,st.default)("rt-BaseMenuContent","rt-SidebarContent",...r,e)},X.createElement("div",{className:"rt-BaseMenuViewport"},t)))});kt.displayName="Shell.Scroll";var pn=e=>e==="collapsed"?"closed":e==="thin"?"thin":"open",so=e=>e==="closed"?"collapsed":e==="thin"?"thin":"expanded";function mn(e){if(e===void 0)return;if(typeof e=="string")return pn(e);let t={};for(let[n,o]of Object.entries(e))o!==void 0&&(t[n]=pn(o));return t}var io={controlled:"state",default:"defaultState"},lo={initial:"overlay",sm:"fixed"},fn=e=>e==="closed"?"thin":e==="thin"?"open":"closed",Pn=(e,t)=>{let n=t==="thin"?"thin":"open";return e==="closed"?n:e===n?"closed":n},lt=ae.forwardRef((e,t)=>{let{className:n,presentation:o=lo,expandedSize:r=288,minSize:s=200,maxSize:i=400,resizable:p=!1,collapsible:l=!0,onExpand:d,onCollapse:b,onResize:x,onResizeStart:C,onResizeEnd:T,snapPoints:H,snapTolerance:V,collapseThreshold:y,paneId:h,persistence:z,children:M,style:k,thinSize:U=64,toggleModes:A="both",state:$,defaultState:Q,onStateChange:P,size:v,defaultSize:w,onSizeChange:L,sizeUpdate:D,sizeUpdateMs:Y=50,inset:m,id:S,...N}=e,{table:R,attributes:F}=he(o,"fixed"),a=ge({name:"sidebar",label:"Sidebar",propNames:io,id:S,controlled:mn($),defaultValue:mn(Q),presentationTable:R,builtIn:Je,onChange:(fe,ee)=>P?.(so(fe),{reason:ee}),toggleNext:A==="single"?Pn:fn,onExpand:d,onCollapse:b,size:r});me("sidebar",m),(e.thinSize!==void 0||a.value==="thin")&&void 0,ae.useEffect(()=>{(H!==void 0||y!==void 0||h!==void 0||z!==void 0)&&void 0},[H,y,h,z]);let c=ae.useRef(null),g=(0,bn.useComposedRefs)(t,a.setElement,c),f=Se({name:"sidebar",elementId:a.id,elementRef:c,cssVarName:"--sidebar-size",orientation:"vertical",edge:"end",growth:Ze,expandedSize:r,minSize:s,maxSize:i,resizable:p,collapsible:l,size:v,defaultSize:w,onSizeChange:L,sizeUpdate:D,sizeUpdateMs:Y,onResize:x,onResizeStart:C,onResizeEnd:T,snapPoints:H,snapTolerance:V,collapseThreshold:y,paneId:h,persistence:z,overlaying:a.overlaying,overlayingNow:()=>R[se()]==="overlay",requestCollapse:()=>a.setValue("closed","toggle"),requestToggle:()=>a.toggle("toggle")}),{handles:j,content:K}=ve(M,_e),W=p&&a.value!=="closed"&&a.value!=="thin"&&!a.overlaying?ae.createElement(Pe.Provider,{value:f},j.length>0?j:ae.createElement(oe,null)):null,ue=a.peeking?(A==="single"?Pn:fn)("closed",a.defaultHereNow())==="thin"?`${U}px`:`var(--sidebar-size, ${r}px)`:void 0;return ae.createElement("div",{...ye(N),id:a.id,ref:g,className:(0,gn.default)("rt-ShellPane","rt-ShellSidebar",n),...be(a,F),"data-inset":m||void 0,tabIndex:a.overlaying?-1:N.tabIndex,style:{...k,"--sidebar-expanded-size":`${r}px`,"--sidebar-thin-size":`${U}px`,"--sidebar-min-size":`${s}px`,"--sidebar-max-size":`${i}px`,...ue?{"--peek-sidebar-width":ue}:{}}},ae.createElement("div",{className:"rt-ShellSidebarContent"},ae.createElement(Ae,null,K)),W)});lt.displayName="Shell.Sidebar";lt.Handle=_e;var le=_(require("react")),hn=_(require("classnames")),Rn=require("radix-ui/internal");var co={controlled:"open",default:"defaultOpen"},dt=le.forwardRef((e,t)=>{let{className:n,presentation:o="fixed",defaultOpen:r,open:s,onOpenChange:i,expandedSize:p=200,minSize:l=100,maxSize:d=400,resizable:b=!1,collapsible:x=!0,onExpand:C,onCollapse:T,onResize:H,onResizeStart:V,onResizeEnd:y,snapPoints:h,snapTolerance:z,collapseThreshold:M,paneId:k,persistence:U,children:A,style:$,size:Q,defaultSize:P,onSizeChange:v,sizeUpdate:w,sizeUpdateMs:L=50,inset:D,id:Y,...m}=e,{table:S,attributes:N}=he(o,"fixed"),R=ge({name:"bottom",label:"Bottom",propNames:co,id:Y,controlled:ie(s),defaultValue:ie(r),presentationTable:S,builtIn:Oe,onChange:(K,W)=>i?.(K!=="closed",{reason:W}),onExpand:C,onCollapse:T,size:p});me("bottom",D),le.useEffect(()=>{(h!==void 0||M!==void 0||k!==void 0||U!==void 0)&&void 0},[h,M,k,U]);let F=le.useRef(null),a=(0,Rn.useComposedRefs)(t,R.setElement,F),c=Se({name:"bottom",elementId:R.id,elementRef:F,cssVarName:"--bottom-size",orientation:"horizontal",edge:"start",growth:Yt,expandedSize:p,minSize:l,maxSize:d,resizable:b,collapsible:x,size:Q,defaultSize:P,onSizeChange:v,sizeUpdate:w,sizeUpdateMs:L,onResize:H,onResizeStart:V,onResizeEnd:y,snapPoints:h,snapTolerance:z,collapseThreshold:M,paneId:k,persistence:U,overlaying:R.overlaying,overlayingNow:()=>S[se()]==="overlay",requestCollapse:()=>R.setValue("closed","toggle"),requestToggle:()=>R.toggle("toggle")}),{handles:g,content:f}=ve(A,Ke),j=b&&R.shown!==!1&&!R.overlaying?le.createElement(Pe.Provider,{value:c},g.length>0?g:le.createElement(oe,null)):null;return le.createElement("div",{...ye(m),id:R.id,ref:a,className:(0,hn.default)("rt-ShellPane","rt-ShellBottom",n),...be(R,N),"data-inset":D||void 0,tabIndex:R.overlaying?-1:m.tabIndex,style:{...$,"--bottom-expanded-size":`${p}px`,"--bottom-min-size":`${l}px`,"--bottom-max-size":`${d}px`}},le.createElement("div",{className:"rt-ShellBottomContent"},f),j)});dt.displayName="Shell.Bottom";dt.Handle=Ke;var de=_(require("react")),Sn=_(require("classnames")),vn=require("radix-ui/internal");var uo={controlled:"open",default:"defaultOpen"},po={initial:"overlay",sm:"fixed"},ct=de.forwardRef((e,t)=>{let{className:n,presentation:o=po,defaultOpen:r,open:s,onOpenChange:i,expandedSize:p=320,minSize:l=200,maxSize:d=500,resizable:b=!1,collapsible:x=!0,onExpand:C,onCollapse:T,onResize:H,onResizeStart:V,onResizeEnd:y,snapPoints:h,snapTolerance:z,collapseThreshold:M,paneId:k,persistence:U,children:A,style:$,onSizeChange:Q,sizeUpdate:P,sizeUpdateMs:v=50,size:w,defaultSize:L,inset:D,id:Y,...m}=e,{table:S,attributes:N}=he(o,"fixed"),R=ge({name:"inspector",label:"Inspector",propNames:uo,id:Y,controlled:ie(s),defaultValue:ie(r),presentationTable:S,builtIn:Oe,onChange:(K,W)=>i?.(K!=="closed",{reason:W}),onExpand:C,onCollapse:T,size:p});me("inspector",D),de.useEffect(()=>{(h!==void 0||M!==void 0||k!==void 0||U!==void 0)&&void 0},[h,M,k,U]);let F=de.useRef(null),a=(0,vn.useComposedRefs)(t,R.setElement,F),c=Se({name:"inspector",elementId:R.id,elementRef:F,cssVarName:"--inspector-size",orientation:"vertical",edge:"start",growth:Xt,expandedSize:p,minSize:l,maxSize:d,resizable:b,collapsible:x,size:w,defaultSize:L,onSizeChange:Q,sizeUpdate:P,sizeUpdateMs:v,onResize:H,onResizeStart:V,onResizeEnd:y,snapPoints:h,snapTolerance:z,collapseThreshold:M,paneId:k,persistence:U,overlaying:R.overlaying,overlayingNow:()=>S[se()]==="overlay",requestCollapse:()=>R.setValue("closed","toggle"),requestToggle:()=>R.toggle("toggle")}),{handles:g,content:f}=ve(A,qe),j=b&&R.shown!==!1&&!R.overlaying?de.createElement(Pe.Provider,{value:c},g.length>0?g:de.createElement(oe,null)):null;return de.createElement("div",{...ye(m),id:R.id,ref:a,className:(0,Sn.default)("rt-ShellPane","rt-ShellInspector",n),...be(R,N),"data-inset":D||void 0,tabIndex:R.overlaying?-1:m.tabIndex,style:{...$,"--inspector-expanded-size":`${p}px`,"--inspector-min-size":`${l}px`,"--inspector-max-size":`${d}px`}},de.createElement("div",{className:"rt-ShellInspectorContent"},f),j)});ct.displayName="Shell.Inspector";ct.Handle=qe;var ce=_(require("react"));var xn=e=>e===void 0?void 0:e==="closed"?"collapsed":e==="thin"?"thin":"expanded",Cn=e=>e==="collapsed"?"closed":e==="thin"?"thin":"open",ut=e=>e===void 0||e==="closed"?"collapsed":"expanded",pt=e=>e==="left"?"rail":e;function mo(e){let t=ce.useCallback(n=>Te(e,n),[e]);return ce.useSyncExternalStore(t,()=>e.version,()=>0)}function zn(){let e=Re("useSidebarMode"),t=ce.useCallback(r=>Te(e,r),[e]),n=ce.useSyncExternalStore(t,()=>e.entries.get("sidebar")?.value,()=>{}),o=ce.useCallback(r=>{e.entries.get("sidebar")?.setValue(Cn(r),"toggle")},[e]);return{sidebarMode:xn(n)??"expanded",setSidebarMode:o}}var yn=()=>{};function En(){let e=Re("useShell");ce.useEffect(()=>{},[]),mo(e);let{breakpoint:t,ready:n}=ke(),o=ce.useMemo(()=>{let i=l=>d=>e.entries.get(l)?.setValue(d==="collapsed"?"closed":"open","toggle"),p=l=>De(e,l===null?null:pt(l));return{setLeftMode:i("rail"),setPanelMode:i("panel"),setInspectorMode:i("inspector"),setBottomMode:i("bottom"),setSidebarMode:l=>e.entries.get("sidebar")?.setValue(Cn(l),"toggle"),setPeekTarget:p,peekPane:l=>p(l),clearPeek:()=>p(null),setHasLeft:yn,setHasSidebar:yn,togglePane:l=>e.entries.get(pt(l))?.toggle("toggle"),expandPane:l=>e.entries.get(pt(l))?.setValue("open","toggle"),collapsePane:l=>e.entries.get(pt(l))?.setValue("closed","toggle")}},[e]),r=i=>e.entries.get(i)?.value,s=e.entries.get("rail");return{leftMode:ut(r("rail")),leftControlledOpen:s?.value===void 0?void 0:s.value!=="closed",panelMode:ut(r("panel")),sidebarMode:xn(r("sidebar"))??"expanded",inspectorMode:ut(r("inspector")),bottomMode:ut(r("bottom")),peekTarget:e.peek,hasLeft:e.entries.has("rail"),hasSidebar:e.entries.has("sidebar"),currentBreakpoint:t,currentBreakpointReady:n,leftResolvedPresentation:s?.presentation,...o}}var Tn=_(require("react"));function Mn(e){Tn.useEffect(()=>{},[]);let{breakpoint:t}=ke(typeof e!="string");return Ee(e,()=>"fixed")[t]}var Lt=0;function wn(e){Lt=Math.max(0,Lt+e);let t=document.documentElement;Lt>0?t.setAttribute("data-rt-shell-lock",""):t.removeAttribute("data-rt-shell-lock")}var Dt="data-rt-shell-inert",fo=30;function $e(e,t){return t===null||t===e||t===e.body||t===e.documentElement}function Nn(e,t,n){for(let o of e.querySelectorAll("[data-shell-trigger][aria-controls]"))if(!(o.getAttribute("aria-controls")!==t||o.closest("[inert]"))&&!(n&&!n.some(r=>r.contains(o))))return o;return null}var Vn=u.forwardRef(({className:e,children:t,height:n="full",size:o="2",style:r,onKeyDown:s,onFocus:i,...p},l)=>{let[d]=u.useState(Kt),b=u.useCallback(a=>Te(d,a),[d]);u.useSyncExternalStore(b,()=>d.version,()=>0);let x=u.useRef(null),C=(0,mt.useComposedRefs)(l,x),[T,H]=u.useState(()=>new Set),V=u.useCallback(a=>{H(c=>c.has(a)?c:new Set(c).add(a))},[]),y=u.useCallback(a=>{H(c=>{if(!c.has(a))return c;let g=new Set(c);return g.delete(a),g})},[]),h=u.useMemo(()=>({registerInset:V,unregisterInset:y}),[V,y]),z=u.useCallback(()=>{for(let a of d.entries.values())a.overlayLive&&a.setValue("closed","dismiss")},[d]),M=u.useCallback(()=>[...d.entries.values()].filter(a=>a.overlayLive&&a.el).map(a=>({name:a.name,id:a.id,el:a.el})),[d]),k=[...d.entries.values()].filter(a=>a.overlayLive&&a.el).length,U=n!=="full"&&n!=="auto",A=u.useCallback(()=>{let a=x.current;if(!a)return;let c=M().map(g=>g.el);for(let g of a.children){if(!(g instanceof HTMLElement)||g.classList.contains("rt-ShellScrim"))continue;let f=c.some(j=>g===j||g.contains(j));c.length===0||f?g.hasAttribute(Dt)&&(g.removeAttribute(Dt),g.inert=!1):g.inert||(g.setAttribute(Dt,""),g.inert=!0)}},[M]),$=u.useRef(null),Q=u.useRef([]),P=u.useRef(null),v=u.useRef(!1),w=u.useRef(0),L=u.useCallback(()=>{w.current&&cancelAnimationFrame(w.current),w.current=0},[]),D=u.useCallback((a,c)=>{L();let g=0,f=()=>{if(w.current=0,!!a.isConnected){if(c(a.ownerDocument.activeElement)){a.focus({preventScroll:!0});return}g+=1,g<fo&&(w.current=requestAnimationFrame(f))}};w.current=requestAnimationFrame(f)},[L]);u.useEffect(()=>()=>{L(),v.current&&(v.current=!1,wn(-1))},[L]),u.useEffect(()=>{let a=x.current;if(!a)return;let c=a.ownerDocument,g=M(),f=g.map(E=>E.el),j=!U&&g.length>0;j!==v.current&&(v.current=j,wn(j?1:-1));let K=Q.current;Q.current=g;let W=K.filter(E=>{if(f.includes(E.el))return!1;let O=d.entries.get(E.name);return!E.el.isConnected||!O||O.el!==E.el||O.value==="closed"}),ue=E=>E!==null&&W.some(O=>O.el.contains(E));if(K.length===0&&g.length>0){let E=c.activeElement,O=E instanceof HTMLElement&&!$e(c,E)&&!f.some(G=>G.contains(E))?E:null;if(O&&!a.contains(O)){let G=P.current;G&&G.isConnected&&!f.some(Ce=>Ce.contains(G))&&(O=G)}$.current=O}if(A(),g.length===0){let E=$.current;if($.current=null,W.length===0)return;let G=(re=>re!==null&&re.isConnected&&!re.closest("[inert]")&&!ue(re))(E)?E:null;for(let re of W)G??(G=Nn(c,re.id));if(!G)return;let Ce=re=>$e(c,re)||ue(re);Ce(c.activeElement)?G.focus({preventScroll:!0}):D(G,Ce);return}if(W.length>0){let E=c.activeElement;if($e(c,E)||ue(E)){let O=null;for(let G of W)O??(O=Nn(c,G.id,f));(O??f[f.length-1]).focus({preventScroll:!0})}}let fe=f.filter(E=>!K.some(O=>O.el===E)),ee=c.activeElement;fe.length>0&&!f.some(E=>E.contains(ee))&&(fe[0].focus({preventScroll:!0}),D(fe[0],E=>$e(c,E)||E instanceof Element&&E.closest("[inert]")!==null))}),u.useEffect(()=>{let a=x.current;if(!a||k===0||typeof MutationObserver>"u")return;let c=new MutationObserver(A);return c.observe(a,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["inert"]}),()=>c.disconnect()},[k,A]);let Y=a=>{s?.(a),!(a.key!=="Escape"||a.defaultPrevented||k===0)&&(z(),a.stopPropagation())};u.useEffect(()=>{let a=x.current;if(!a||k===0)return;let c=a.ownerDocument,g=f=>{f.key!=="Escape"||f.defaultPrevented||!$e(c,f.target)||z()};return c.addEventListener("keydown",g),()=>c.removeEventListener("keydown",g)},[k,z]);let m=a=>{i?.(a),a.target instanceof HTMLElement&&x.current?.contains(a.target)&&(P.current=a.target)},S=d.entries.get("rail"),R=S!==void 0&&S.value!==void 0&&S.value!=="closed"?T.has("rail")?`calc(${S.size}px + 2 * var(--shell-inset-gap))`:`${S.size}px`:void 0,F=n==="full"?{}:n==="auto"?{height:"auto"}:typeof n=="number"?{height:`${n}px`}:{height:n};return u.createElement(St.Provider,{value:d},u.createElement(it.Provider,{value:o},u.createElement(yt.Provider,{value:h},u.createElement("div",{...p,ref:C,className:(0,Ne.default)("rt-ShellRoot",e),"data-height":n==="auto"?"auto":void 0,"data-has-inset":T.size>0||void 0,"data-overlay-live":k>0||void 0,onKeyDown:Y,onFocus:m,style:{...F,...R?{"--shell-rail-offset":R}:{},...r}},t,u.createElement("div",{className:"rt-ShellScrim","aria-hidden":!0,onClick:z})))))});Vn.displayName="Shell.Root";var kn=u.forwardRef(({className:e,height:t=64,style:n,...o},r)=>u.createElement("header",{...o,ref:r,className:(0,Ne.default)("rt-ShellHeader",e),style:{...n,"--shell-header-height":`${t}px`}}));kn.displayName="Shell.Header";var Ln=u.forwardRef(({children:e},t)=>(u.useEffect(()=>{},[]),u.createElement(u.Fragment,null,e)));Ln.displayName="Shell.Left";var Po={controlled:"open",default:"defaultOpen"},Dn=u.forwardRef((e,t)=>{let{className:n,presentation:o,expandedSize:r=64,collapsible:s,onExpand:i,onCollapse:p,children:l,style:d,open:b,defaultOpen:x,onOpenChange:C,inset:T,id:H,...V}=e,{table:y,attributes:h}=he(o,"fixed"),z=ge({name:"rail",label:"Rail",propNames:Po,id:H,controlled:ie(b),defaultValue:ie(x),presentationTable:y,builtIn:Je,onChange:(k,U)=>C?.(k!=="closed",{reason:U}),onExpand:i,onCollapse:p,size:r});me("rail",T);let M=(0,mt.useComposedRefs)(t,z.setElement);return u.createElement("div",{...V,id:z.id,ref:M,className:(0,Ne.default)("rt-ShellPane","rt-ShellRail",n),...be(z,h),"data-inset":T||void 0,tabIndex:z.overlaying?-1:V.tabIndex,style:{...d,"--rail-size":`${r}px`}},u.createElement(go,null,l))});Dn.displayName="Shell.Rail";function go({children:e}){let t=u.useContext(it);return u.createElement("div",{className:(0,Ne.default)("rt-ShellRailContent",`rt-r-size-${t}`)},u.createElement(Ae,{presentation:"thin"},e))}var bo={controlled:"open",default:"defaultOpen"},Bt=u.forwardRef((e,t)=>{let{className:n,presentation:o,defaultOpen:r,open:s,onOpenChange:i,size:p,defaultSize:l,expandedSize:d=288,minSize:b=100,maxSize:x=800,resizable:C=!1,collapsible:T=!0,onExpand:H,onCollapse:V,onResize:y,onResizeStart:h,onResizeEnd:z,snapPoints:M,snapTolerance:k,collapseThreshold:U,paneId:A,persistence:$,children:Q,style:P,onSizeChange:v,sizeUpdate:w,sizeUpdateMs:L=50,inset:D,id:Y,...m}=e,S=Re("Shell.Panel"),N=vt(S,"rail"),R=he(o,"fixed"),F=o===void 0,a=F?N?.presentationTable??Rt:R.table,c=F?{"data-presentation-follows":""}:R.attributes,g=ge({name:"panel",label:"Panel",propNames:bo,id:Y,controlled:ie(s),defaultValue:ie(r),presentationTable:a,builtIn:Oe,onChange:(ee,E)=>i?.(ee!=="closed",{reason:E}),onExpand:H,onCollapse:V,size:d});me("panel",D),u.useEffect(()=>{(M!==void 0||U!==void 0||A!==void 0||$!==void 0)&&void 0},[M,U,A,$]);let f=u.useRef(null),j=(0,mt.useComposedRefs)(t,g.setElement,f),K=Se({name:"panel",elementId:g.id,elementRef:f,cssVarName:"--panel-size",orientation:"vertical",edge:"end",growth:Ze,expandedSize:d,minSize:b,maxSize:x,resizable:C,collapsible:T,size:p,defaultSize:l,onSizeChange:v,sizeUpdate:w,sizeUpdateMs:L,onResize:y,onResizeStart:h,onResizeEnd:z,snapPoints:M,snapTolerance:k,collapseThreshold:U,paneId:A,persistence:$,overlaying:g.overlaying,overlayingNow:()=>(F?S.entries.get("rail")?.presentationTable??Rt:R.table)[se()]==="overlay",requestCollapse:()=>g.setValue("closed","toggle"),requestToggle:()=>g.toggle("toggle")}),{handles:W,content:ue}=ve(Q,We),fe=C&&g.shown!==!1&&!g.overlaying?u.createElement(Pe.Provider,{value:K},W.length>0?W:u.createElement(oe,null)):null;return u.createElement("div",{...ye(m),id:g.id,ref:j,className:(0,Ne.default)("rt-ShellPane","rt-ShellPanel",n),...be(g,c),"data-inset":D||void 0,tabIndex:g.overlaying?-1:m.tabIndex,style:{...P,"--panel-expanded-size":`${d}px`}},u.createElement("div",{className:"rt-ShellPanelContent"},u.createElement(Ae,null,ue)),fe)});Bt.displayName="Shell.Panel";Bt.Handle=We;var Bn=u.forwardRef(({className:e,inset:t,...n},o)=>(me("content",t),u.createElement("main",{...n,ref:o,className:(0,Ne.default)("rt-ShellContent",e),"data-inset":t||void 0})));Bn.displayName="Shell.Content";var On=u.forwardRef(({target:e,action:t="toggle",peekOnHover:n,onClick:o,onMouseEnter:r,onMouseLeave:s,children:i,...p},l)=>{let d=Re("Shell.Trigger");u.useEffect(()=>{e==="left"&&void 0,n&&void 0},[e,n]);let b=e==="left"?"rail":e,x=vt(d,b),C=x?.value===void 0?void 0:x.value!=="closed",T=y=>{if(o?.(y),y.defaultPrevented)return;let h=d.entries.get(b);h&&(d.peek===b&&De(d,null),t==="toggle"?h.toggle("toggle"):t==="expand"?h.setValue("open","toggle"):h.setValue("closed","toggle"))},H=y=>{if(r?.(y),!n)return;let h=d.entries.get(b);h&&h.value==="closed"&&h.presentation!=="overlay"&&De(d,b)},V=y=>{s?.(y),n&&d.peek===b&&De(d,null)};return u.createElement("button",{type:"button","aria-controls":x?.id,"aria-expanded":C,...p,ref:l,onClick:T,onMouseEnter:H,onMouseLeave:V,"data-shell-trigger":e,"data-shell-action":t},i)});On.displayName="Shell.Trigger";
|
|
1
|
+
"use strict";"use client";var On=Object.create;var Ue=Object.defineProperty;var In=Object.getOwnPropertyDescriptor;var Hn=Object.getOwnPropertyNames;var An=Object.getPrototypeOf,$n=Object.prototype.hasOwnProperty;var Fn=(e,t)=>{for(var n in t)Ue(e,n,{get:t[n],enumerable:!0})},$t=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Hn(t))!$n.call(e,r)&&r!==n&&Ue(e,r,{get:()=>t[r],enumerable:!(o=In(t,r))||o.enumerable});return e};var _=(e,t,n)=>(n=e!=null?On(An(e)):{},$t(t||!e||!e.__esModule?Ue(n,"default",{value:e,enumerable:!0}):n,e)),Un=e=>$t(Ue({},"__esModule",{value:!0}),e);var go={};Fn(go,{Bottom:()=>dt,Content:()=>Ln,Header:()=>Nn,Inspector:()=>ct,Left:()=>Vn,PaneFooter:()=>Vt,PaneHeader:()=>Nt,Panel:()=>Bt,Rail:()=>kn,Root:()=>wn,Scroll:()=>kt,Sidebar:()=>lt,Trigger:()=>Dn,useResponsivePresentation:()=>zn,useShell:()=>Cn,useSidebarMode:()=>xn});module.exports=Un(go);var c=_(require("react")),Ne=_(require("classnames")),mt=require("radix-ui/internal");var je=_(require("react")),fe=je.createContext(null);function Ft(){let e=je.useContext(fe);if(!e)throw new Error("Shell.Handle must be used within a resizable pane");return e}var q=_(require("react")),Ut=_(require("classnames"));var ne=q.forwardRef(({className:e,children:t,...n},o)=>{let{containerRef:r,controls:s,cssVarName:i,minSize:p,maxSize:l,defaultSize:d,orientation:R,edge:x,growth:C,onResize:T,onResizeStart:A,onResizeEnd:N,snapPoints:y,snapTolerance:S,collapseThreshold:E,collapsible:M,target:k,requestCollapse:U,requestToggle:F}=Ft(),$=q.useRef(null),Q=q.useCallback(m=>{$.current=m,typeof o=="function"?o(m):o&&(o.current=m)},[o]),P=q.useRef(null);q.useEffect(()=>()=>{P.current?.(),P.current=null},[]);let h=q.useCallback(()=>{let m=r.current;if(!m)return d;let v=Number.parseFloat(getComputedStyle(m).getPropertyValue(i));return Number.isFinite(v)?v:d},[r,i,d]),w=q.useCallback(()=>{let m=r.current,v=$.current,V=m?.closest(".rt-ShellRoot")?.getBoundingClientRect();if(!m||!V||!v)return l;let b=m.getBoundingClientRect(),I=v.getBoundingClientRect(),a=C(getComputedStyle(m).direction==="rtl"),u;R==="vertical"?u=a>0?V.right-b.left:b.right-V.left:u=a>0?V.bottom-b.top:b.bottom-V.top;let g=R==="vertical"?I.width:I.height;return!(V.width>0&&V.height>0)||!Number.isFinite(u)?l:Math.max(p,Math.min(l,Math.round(u-g)))},[r,C,l,p,R]),D=()=>{$.current?.setAttribute("aria-valuemax",String(w()))};q.useLayoutEffect(()=>{$.current?.setAttribute("aria-valuenow",String(Math.round(h())))},[h]);let L=(m,v)=>{m.style.setProperty(i,`${v}px`),$.current?.setAttribute("aria-valuenow",String(Math.round(v)))},Y=k.charAt(0).toUpperCase()+k.slice(1);return q.createElement("div",{ref:Q,className:(0,Ut.default)("rt-ShellResizer",e),"data-orientation":R,"data-edge":x,role:"separator",tabIndex:0,"aria-label":`Resize ${Y} pane`,"aria-controls":s,"aria-orientation":R,"aria-valuemin":p,"aria-valuemax":l,...n,onPointerDown:m=>{n.onPointerDown?.(m);let v=r.current;if(!v||m.defaultPrevented||m.button!==0)return;m.preventDefault();let V=m.currentTarget,b=m.pointerId;P.current?.();try{V.setPointerCapture(b)}catch{}let I=getComputedStyle(v),a=Number.parseFloat(I.getPropertyValue(i)),u=Number.isFinite(a)?a:d,g=R==="vertical"?m.clientX:m.clientY,f=C(I.direction==="rtl"),j=w();V.setAttribute("aria-valuemax",String(j));let K=J=>Math.min(Math.max(J,p),j);v.setAttribute("data-resizing",""),V.setAttribute("data-dragging","");let W=document.body,me=W.style.cursor,xe=W.style.userSelect;W.style.cursor=R==="vertical"?"col-resize":"row-resize",W.style.userSelect="none",A?.(u);let oe=u,z=u,O=0,G=null,Ce=()=>{if(O=0,G===null)return;let J=G;G=null,T?.(J)},re=null,Ot=!1,Bn=(J,Ve)=>{if(J.type===Ve)Ot=!0;else if(Ot)return!1;return!0},ue=J=>{if(!Bn(J,"pointermove")||J===re)return;re=J;let Ve=R==="vertical"?J.clientX:J.clientY;z=u+(Ve-g)*f,oe=K(z),L(v,oe),G=oe,O||(O=requestAnimationFrame(Ce))},Fe=()=>{O&&cancelAnimationFrame(O),O=0;try{V.releasePointerCapture(b)}catch{}window.removeEventListener("pointermove",ue),document.removeEventListener("pointermove",ue),window.removeEventListener("mousemove",ue),document.removeEventListener("mousemove",ue),V.removeEventListener("pointermove",ue),window.removeEventListener("pointerup",ee),document.removeEventListener("pointerup",ee),window.removeEventListener("mouseup",ee),document.removeEventListener("mouseup",ee),window.removeEventListener("pointercancel",ee),document.removeEventListener("pointercancel",ee),window.removeEventListener("keydown",It),V.removeEventListener("lostpointercapture",ee),v.removeAttribute("data-resizing"),V.removeAttribute("data-dragging"),W.style.cursor=me,W.style.userSelect=xe,P.current=null},ft=!1,ee=()=>{if(ft)return;if(ft=!0,O&&cancelAnimationFrame(O),Ce(),M&&typeof E=="number"&&z<=E){L(v,u),T?.(u),Fe(),U?.(),N?.(u);return}let J=oe;if(y&&y.length){let Ve=y.reduce((Ht,At)=>Math.abs(At-oe)<Math.abs(Ht-oe)?At:Ht,y[0]);Math.abs(Ve-oe)<=S&&(J=K(Ve),L(v,J),T?.(J))}N?.(J),Fe()},It=J=>{J.key==="Escape"&&(O&&cancelAnimationFrame(O),O=0,G=null,L(v,u),T?.(u),ft=!0,N?.(u),Fe())};window.addEventListener("pointermove",ue),document.addEventListener("pointermove",ue),window.addEventListener("mousemove",ue),document.addEventListener("mousemove",ue),V.addEventListener("pointermove",ue),window.addEventListener("pointerup",ee),document.addEventListener("pointerup",ee),window.addEventListener("mouseup",ee),document.addEventListener("mouseup",ee),window.addEventListener("pointercancel",ee),document.addEventListener("pointercancel",ee),window.addEventListener("keydown",It),V.addEventListener("lostpointercapture",ee),P.current=Fe},onDoubleClick:m=>{n.onDoubleClick?.(m),!m.defaultPrevented&&M&&F?.()},onFocus:m=>{n.onFocus?.(m),D()},onKeyDown:m=>{n.onKeyDown?.(m);let v=r.current;if(!v||m.defaultPrevented)return;let V=h(),b=w(),I=u=>Math.min(Math.max(u,p),b),a;if(m.key==="Home")a=I(p);else if(m.key==="End")a=I(b);else{let u=R==="vertical"?m.key==="ArrowRight"?1:m.key==="ArrowLeft"?-1:0:m.key==="ArrowDown"?1:m.key==="ArrowUp"?-1:0;if(u===0)return;let g=m.shiftKey?32:8;a=I(V+u*g*C(getComputedStyle(v).direction==="rtl"))}m.preventDefault(),A?.(V),L(v,a),T?.(a),N?.(a)}},t)});ne.displayName="Shell.Handle";var We=q.forwardRef((e,t)=>q.createElement(ne,{...e,ref:t}));We.displayName="Shell.Panel.Handle";var _e=q.forwardRef((e,t)=>q.createElement(ne,{...e,ref:t}));_e.displayName="Shell.Sidebar.Handle";var qe=q.forwardRef((e,t)=>q.createElement(ne,{...e,ref:t}));qe.displayName="Shell.Inspector.Handle";var Ke=q.forwardRef((e,t)=>q.createElement(ne,{...e,ref:t}));Ke.displayName="Shell.Bottom.Handle";var ae=_(require("react")),fn=_(require("classnames")),Pn=require("radix-ui/internal");var H=_(require("react"));var He=_(require("react"));var jt={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"},Ge=["initial","xs","sm","md","lg","xl"];var jn=Object.entries(jt),Pt=null,Ie=new Set,Ee=null;function gt(){return Pt??(Pt=jn.map(([e,t])=>[e,window.matchMedia(t)])),Pt}function Xe(){let e="initial";for(let[t,n]of gt())n.matches&&(e=t);return e}function Qe(){let e=Xe();e!==Ee&&(Ee=e,Ie.forEach(t=>t()))}function Wt(e){if(typeof window>"u")return()=>{};if(Ie.size===0){Ee=Xe();for(let[,t]of gt())typeof t.addEventListener=="function"?t.addEventListener("change",Qe):t.addListener?.(Qe)}return Ie.add(e),()=>{if(Ie.delete(e),!(Ie.size>0)){for(let[,t]of gt())try{typeof t.removeEventListener=="function"?t.removeEventListener("change",Qe):t.removeListener?.(Qe)}catch{}Ee=null}}}function Wn(){return typeof window>"u"?"initial":(Ee??(Ee=Xe()),Ee)}function _n(){return"initial"}function se(){return typeof window>"u"?"initial":Xe()}var qn=()=>!0,Kn=()=>!1,_t=()=>()=>{},Gn=()=>"initial";function ke(e=!0){let t=He.useSyncExternalStore(e?Wt:_t,e?Wn:Gn,_n),n=He.useSyncExternalStore(e?Wt:_t,qn,Kn);return He.useMemo(()=>({breakpoint:t,ready:n}),[t,n])}var Z=_(require("react"));function qt(e){return typeof e=="object"&&e!==null}function ze(e,t){let n={},o=null;for(let r of Ge){if(e!==void 0&&!qt(e)){n[r]=e;continue}let s=qt(e)?e[r]:void 0;s!==void 0&&(o={value:s}),n[r]=o?o.value:t(r)}return n}function Le(e){let t=e.initial;return Ge.every(n=>e[n]===t)?t:void 0}function bt(e,t){let n=Le(t);if(n!==void 0)return{[`data-${e}`]:n};let o={};for(let r of Ge)o[`data-${e}-${r}`]=t[r];return o}function Rt(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var St=ze("fixed",()=>"fixed");function Kt(){return{entries:new Map,listeners:new Set,version:0,peek:null}}function Ye(e){e.version+=1;for(let t of e.listeners)t()}function Te(e,t){return e.listeners.add(t),()=>{e.listeners.delete(t)}}function De(e,t){e.peek!==t&&(e.peek=t,Ye(e))}var vt=Z.createContext(null);function Re(e){let t=Z.useContext(vt);if(!t)throw new Error(`${e} must be used within <Shell.Root>`);return t}function ht(e,t){let n=Z.useCallback(r=>Te(e,r),[e]),o=Z.useCallback(()=>e.entries.get(t),[e,t]);return Z.useSyncExternalStore(n,o,()=>{})}function Gt(e,t){let n=Z.useCallback(o=>Te(e,o),[e]);return Z.useSyncExternalStore(n,()=>e.peek===t,()=>!1)}var yt=Z.createContext(null);function pe(e,t){let n=Z.useContext(yt);if(!n)throw new Error("Shell panes must be used within <Shell.Root>");let{registerInset:o,unregisterInset:r}=n;Z.useLayoutEffect(()=>{if(t)return o(e),()=>r(e)},[e,t,o,r])}var xt=e=>typeof e=="object"&&e!==null;function Qn(e){for(let t of["initial","xs","sm","md","lg","xl"]){let n=e[t];if(n!==void 0)return n}return"closed"}function Pe(e){let{name:t,label:n,propNames:o,presentationTable:r,builtIn:s}=e,i=Re(`Shell.${n}`),p=H.useId(),l=e.id??`shell-${t}${p}`,d=e.controlled!==void 0,R=xt(e.controlled);R&&(`${n}${o.controlled}${o.default}`,void 0);let x=R?e.controlled:void 0,C=x??(xt(e.defaultValue)?e.defaultValue:void 0),T=Rt(C),[A,N]=H.useState(()=>typeof e.defaultValue=="string"?e.defaultValue:"auto"),y=H.useMemo(()=>x?ze(x,()=>Qn(x)):ze(C,f=>s(r[f])),[T,R,r,s]),S=A;d&&(S=x?"auto":e.controlled);let E=Le(r)===void 0||S==="auto"&&Le(y)===void 0,{breakpoint:M,ready:k}=ke(E),U=f=>{let j=Le(f);return j!==void 0?j:k?f[M]:void 0},F=S==="auto"?U(y):S,$=U(r),Q=$==="overlay",P=F===void 0?void 0:F!=="closed",h=P===!0&&Q,w=e.defaultValue,D=H.useRef({state:S,value:F,autoTable:y,defaultValue:w,controlled:d,onChange:e.onChange,toggleNext:e.toggleNext});H.useLayoutEffect(()=>{D.current={state:S,value:F,autoTable:y,defaultValue:w,controlled:d,onChange:e.onChange,toggleNext:e.toggleNext}});let L=H.useCallback(()=>{let f=D.current;return f.value!==void 0?f.value:f.state==="auto"?f.autoTable[se()]:void 0},[]),Y=H.useCallback(()=>{let f=D.current;return typeof f.defaultValue=="string"?f.defaultValue:xt(f.defaultValue)?f.autoTable[se()]:void 0},[]),m=H.useCallback((f,j)=>{let K=D.current;L()!==f&&(K.onChange?.(f,j),K.controlled||N(f))},[L]),v=H.useCallback(f=>{let j=D.current,K=L()??"closed",W=j.toggleNext?j.toggleNext(K,Y()):K==="closed"?"open":"closed";m(W,f)},[m,L,Y]),V=H.useRef(null),b=H.useCallback(f=>{V.current=f},[]);H.useLayoutEffect(()=>{let f={name:t,id:l,el:V.current,value:F,presentation:$,presentationTable:r,overlayLive:h,size:e.size,setValue:m,toggle:v};return i.entries.set(t,f),Ye(i),()=>{i.entries.get(t)===f&&(i.entries.delete(t),Ye(i))}},[i,t,l,F,$,r,h,e.size,m,v]);let I=H.useRef({onExpand:e.onExpand,onCollapse:e.onCollapse});H.useLayoutEffect(()=>{I.current={onExpand:e.onExpand,onCollapse:e.onCollapse}});let a=H.useRef({state:S,shown:P});H.useEffect(()=>{let f=a.current;f.state!==S&&f.shown!==void 0&&P!==void 0&&f.shown!==P&&(P?I.current.onExpand?.():I.current.onCollapse?.()),a.current={state:S,shown:P}},[S,P]),H.useLayoutEffect(()=>{},[]);let u=H.useRef(d);H.useEffect(()=>{},[d,n,o.controlled]);let g=Gt(i,t)&&P===!1&&!Q;return{store:i,id:l,state:S,value:F,shown:P,presentation:$,overlaying:Q,overlayLive:h,peeking:g,ready:k,breakpoint:M,autoTable:y,setValue:m,toggle:v,defaultHereNow:Y,setElement:b}}function ge(e,t){let{state:n,value:o,presentation:r,shown:s}=e;return{...t,"data-state":n,...n==="auto"?bt("auto",e.autoTable):{},"data-presentation":r,"data-mode":o===void 0?void 0:o==="closed"?"collapsed":"expanded","data-open":r==="stacked"&&s?"":void 0,"data-peek":e.peeking?"":void 0}}function be(e,t){let n=Rt(e),o=H.useMemo(()=>ze(e,()=>t),[n,t]),r=H.useMemo(()=>Le(o)===void 0?bt("presentation",o):{},[o]);return{table:o,attributes:r}}var B=_(require("react"));function Qt(e,t="horizontal"){if(e==null)return;if(typeof e=="number"&&Number.isFinite(e))return e;let n=String(e).trim();if(!n)return;if(n.endsWith("px"))return Number.parseFloat(n);if(n.endsWith("rem")){let r=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(n)*r}if(n.endsWith("%")){let r=Number.parseFloat(n),s=t==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return r/100*s}let o=Number.parseFloat(n);return Number.isFinite(o)?o:void 0}var Ct=(e,t,n)=>Math.max(t??e,Math.min(n??e,e));function Se(e){let{name:t,elementRef:n,cssVarName:o,orientation:r,minSize:s,maxSize:i,resizable:p,size:l,defaultSize:d,paneId:R,persistence:x}=e,C=B.useRef(e);B.useLayoutEffect(()=>{C.current=e});let T=B.useRef(null),A=B.useRef(0);B.useEffect(()=>()=>{T.current&&clearTimeout(T.current)},[]);let N=B.useCallback((P,h)=>{let{onSizeChange:w,sizeUpdate:D,sizeUpdateMs:L}=C.current;if(w){if(D==="debounce"){T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{T.current=null,C.current.onSizeChange?.(P,h)},L);return}if(D==="throttle"){let Y=Date.now();if(Y-A.current<L)return;A.current=Y}w(P,h)}},[]),y=B.useCallback(P=>Qt(P,r==="vertical"?"horizontal":"vertical"),[r]),S=B.useRef(!1),E=B.useCallback((P,h)=>{let w=n.current;if(w){w.style.setProperty(o,`${P}px`);for(let D of w.querySelectorAll(":scope > .rt-ShellResizer"))D.setAttribute("aria-valuenow",String(Math.round(P)));h&&(S.current=!0)}},[n,o]);B.useLayoutEffect(()=>{S.current||E(e.expandedSize,!1)},[e.expandedSize,E]),B.useLayoutEffect(()=>{if(l!==void 0||d===void 0)return;let P=y(d);if(typeof P!="number"||!Number.isFinite(P))return;let h=Ct(P,s,i);E(h,!0),N(h,{reason:"init"})},[]),B.useLayoutEffect(()=>{if(l===void 0||C.current.overlayingNow())return;let P=y(l);if(typeof P!="number"||!Number.isFinite(P))return;let h=Ct(P,s,i);E(h,!0),N(h,{reason:"controlled"})},[l,s,i,e.overlaying,y,E,N]);let M=B.useMemo(()=>{if(!R||x)return x;let P=`kookie-ui:shell:${t}:${R}`;return{load:()=>{if(!(typeof window>"u"))try{let h=window.localStorage.getItem(P);return h?Number(h):void 0}catch{return}},save:h=>{if(!(typeof window>"u"))try{window.localStorage.setItem(P,String(h))}catch{}}}},[t,R,x]);B.useLayoutEffect(()=>{if(!p||!M?.load||C.current.overlayingNow())return;let P=!0,h=D=>{if(!P||typeof D!="number"||!Number.isFinite(D))return;let L=Ct(D,s,i);E(L,!0),C.current.onResize?.(L)},w=M.load();return w instanceof Promise?w.then(h).catch(D=>{}):h(w),()=>{P=!1}},[p,M,e.overlaying,E,s,i,t]);let k=B.useCallback(P=>C.current.onResize?.(P),[]),U=B.useCallback(P=>{S.current=!0,C.current.onResizeStart?.(P)},[]),F=B.useCallback(P=>{C.current.onResizeEnd?.(P),N(P,{reason:"resize"}),M?.save?.(P)},[N,M]),$=B.useCallback(()=>C.current.requestCollapse(),[]),Q=B.useCallback(()=>C.current.requestToggle(),[]);return B.useMemo(()=>({containerRef:n,controls:e.elementId,cssVarName:o,minSize:s,maxSize:i,defaultSize:e.expandedSize,orientation:r,edge:e.edge,growth:e.growth,onResize:k,onResizeStart:U,onResizeEnd:F,target:t,collapsible:e.collapsible,snapPoints:e.snapPoints,snapTolerance:e.snapTolerance??8,collapseThreshold:e.collapseThreshold,requestCollapse:$,requestToggle:Q}),[n,e.elementId,o,s,i,e.expandedSize,r,e.edge,e.growth,k,U,F,t,e.collapsible,e.snapPoints,e.snapTolerance,e.collapseThreshold,$,Q])}function ve(e,t){let n=B.Children.toArray(e),o=n.filter(s=>B.isValidElement(s)&&s.type===t),r=n.filter(s=>!(B.isValidElement(s)&&s.type===t));return{handles:o,content:r}}function ie(e){if(e===void 0)return;if(typeof e=="boolean")return e?"open":"closed";let t={};for(let[n,o]of Object.entries(e))typeof o=="boolean"&&(t[n]=o?"open":"closed");return t}var Je=e=>e==="overlay"?"closed":"open",Oe=()=>"closed",Ze=e=>e?-1:1,Xt=e=>e?1:-1,Yt=()=>-1;function he(e){if(!("height"in e)&&!("resizer"in e))return e;let{height:t,resizer:n,...o}=e;return o}var X=_(require("react")),st=_(require("classnames"));var te=_(require("react")),at=_(require("classnames")),ye=require("radix-ui"),cn=require("radix-ui/internal");var Jt={asChild:{type:"boolean"}};var Xn=["none","small","medium","large","full"],Zt={radius:{type:"enum",values:Xn,default:void 0}};var Yn=["1","2","3"],Jn=["vertical","horizontal","both"],Me={...Jt,size:{type:"enum",className:"rt-r-size",values:Yn,default:"1",responsive:!0},...Zt,scrollbars:{type:"enum",values:Jn,default:"both"},fade:{type:"boolean",default:!1}};var et=_(require("react"));function en(e){let[t,n]=et.useState(null);return et.useEffect(()=>{if(!e||!t)return;let o=0,r=()=>{o=0;let l=Math.max(0,t.scrollTop),d=Math.max(0,t.scrollHeight-t.clientHeight-t.scrollTop);t.style.setProperty("--scroll-overflow-start",`${l}px`),t.style.setProperty("--scroll-overflow-end",`${d}px`)},s=()=>{o||(o=requestAnimationFrame(r))};r(),t.addEventListener("scroll",s,{passive:!0});let i=typeof ResizeObserver>"u"?null:new ResizeObserver(s);i?.observe(t);for(let l of Array.from(t.children))i?.observe(l);let p=typeof MutationObserver>"u"?null:new MutationObserver(s);return p?.observe(t,{childList:!0}),()=>{o&&cancelAnimationFrame(o),t.removeEventListener("scroll",s),i?.disconnect(),p?.disconnect(),t.style.removeProperty("--scroll-overflow-start"),t.style.removeProperty("--scroll-overflow-end")}},[e,t]),n}function tn(e){let{m:t,mx:n,my:o,mt:r,mr:s,mb:i,ml:p,...l}=e;return{m:t,mx:n,my:o,mt:r,mr:s,mb:i,ml:p,rest:l}}var Zn=["initial","xs","sm","md","lg","xl"],Et=new Set(Zn);function zt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var eo=new Set(["initial","xs","sm","md","lg","xl"]);function Tt(e){if(typeof e!="object"||e===null)return!1;for(let t in e)if(eo.has(t))return!0;return!1}function tt(e,t,n){return t!==void 0?t.has(n):e.includes(n)}function on({className:e,customProperties:t,...n}){let o=nt({allowArbitraryValues:!0,className:e,...n}),r=to({customProperties:t,...n});return[o,r]}function nt({allowArbitraryValues:e,value:t,className:n,propValues:o,propValueSet:r,parseValue:s=i=>i}){if(t){if(typeof t=="string")return tt(o,r,t)?nn(n,t,s):e?n:void 0;if(Tt(t)){let i=t,p=[];for(let l in i){if(!zt(i,l)||!Et.has(l))continue;let d=i[l];if(d!==void 0){if(tt(o,r,d)){let R=nn(n,d,s),x=l==="initial"?R:`${l}:${R}`;p.push(x)}else if(e){let R=l==="initial"?n:`${l}:${n}`;p.push(R)}}}return p.length>0?p.join(" "):""}if(e)return n}}function nn(e,t,n){let o=e?"-":"",r=n(t),s=r?.startsWith("-"),i=s?"-":"",p=s?r?.substring(1):r;return`${i}${e}${o}${p}`}function to({customProperties:e,value:t,propValues:n,propValueSet:o,parseValue:r=s=>s}){if(!t||typeof t=="string"&&tt(n,o,t))return;let s;if(typeof t=="string"){let i=r(t);s={};for(let p of e)s[p]=i;return s}if(Tt(t)){let i=t;for(let p in i){if(!zt(i,p)||!Et.has(p))continue;let l=i[p];if(l===void 0||tt(n,o,l))continue;let d=r(l);s??(s={});for(let R of e){let x=p==="initial"?R:`${R}-${p}`;s[x]=d}}}return s??{}}function ot(...e){let t;for(let n of e)n&&(t===void 0&&(t={}),Object.assign(t,n));return t}var we=["0","1","2","3","4","5","6","7","8","9","10","11","12","-1","-2","-3","-4","-5","-6","-7","-8","-9","-10","-11","-12"],rn={m:{type:"enum | string",values:we,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:we,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:we,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:we,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}};var sn=rn.m.values,no=new Set(sn),an=[{key:"m",className:"rt-r-m",customProperties:["--margin"]},{key:"mx",className:"rt-r-mx",customProperties:["--margin-left","--margin-right"]},{key:"my",className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"]},{key:"mt",className:"rt-r-mt",customProperties:["--margin-top"]},{key:"mr",className:"rt-r-mr",customProperties:["--margin-right"]},{key:"mb",className:"rt-r-mb",customProperties:["--margin-bottom"]},{key:"ml",className:"rt-r-ml",customProperties:["--margin-left"]}];function ln(e){let t,n;for(let o=0;o<an.length;o++){let{key:r,className:s,customProperties:i}=an[o],p=e[r];if(p===void 0)continue;let[l,d]=on({className:s,customProperties:i,propValues:sn,propValueSet:no,value:p});l&&(t??(t=[])).push(l),d&&(n=ot(n,d))}return[t!==void 0?t.join(" "):"",n]}var rt=_(require("react"));function dn(e,t){let{asChild:n,children:o}=e;if(!n)return typeof t=="function"?t(o):t;let r=rt.Children.only(o);return rt.cloneElement(r,{children:typeof t=="function"?t(r.props.children):t})}var Mt=te.forwardRef((e,t)=>{let{rest:n,...o}=tn(e),[r,s]=ln(o),{asChild:i,children:p,className:l,style:d,type:R,scrollHideDelay:x=R!=="scroll"?0:void 0,dir:C,size:T=Me.size.default,radius:A=Me.radius.default,scrollbars:N=Me.scrollbars.default,fade:y=Me.fade.default,...S}=n,E=en(y),M=(0,cn.useComposedRefs)(t,E);return te.createElement(ye.ScrollArea.Root,{type:R,scrollHideDelay:x,className:(0,at.default)("rt-ScrollAreaRoot",r,l),"data-fade":y?"":void 0,style:ot(s,d),asChild:i},dn({asChild:i,children:p},k=>te.createElement(te.Fragment,null,te.createElement(ye.ScrollArea.Viewport,{...S,ref:M,className:"rt-ScrollAreaViewport"},k),te.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),N!=="vertical"?te.createElement(ye.ScrollArea.Scrollbar,{"data-radius":A,orientation:"horizontal",className:(0,at.default)("rt-ScrollAreaScrollbar",nt({className:"rt-r-size",value:T,propValues:Me.size.values}))},te.createElement(ye.ScrollArea.Thumb,{className:"rt-ScrollAreaThumb"})):null,N!=="horizontal"?te.createElement(ye.ScrollArea.Scrollbar,{"data-radius":A,orientation:"vertical",className:(0,at.default)("rt-ScrollAreaScrollbar",nt({className:"rt-r-size",value:T,propValues:Me.size.values}))},te.createElement(ye.ScrollArea.Thumb,{className:"rt-ScrollAreaThumb"})):null,N==="both"?te.createElement(ye.ScrollArea.Corner,{className:"rt-ScrollAreaCorner"}):null)))});Mt.displayName="ScrollArea";var un=X.createContext(null);function oo(){return X.useContext(un)}var it=X.createContext("2");function Ae({children:e,presentation:t}){let n=X.useContext(it),o=X.useMemo(()=>({size:n,menuVariant:"soft",presentation:t}),[n,t]);return X.createElement(un.Provider,{value:o},e)}function wt(){let e=oo(),t=e?.size??"2",n=e?.menuVariant??"soft";return["rt-ShellPaneChrome",`rt-r-size-${t}`,`rt-menu-variant-${n}`]}var Nt=X.forwardRef(({className:e,...t},n)=>{let o=wt();return X.createElement("div",{...t,ref:n,className:(0,st.default)("rt-ShellPaneHeader","rt-SidebarHeader","rt-SidebarHeader--container",...o,e)})});Nt.displayName="Shell.PaneHeader";var Vt=X.forwardRef(({className:e,...t},n)=>{let o=wt();return X.createElement("div",{...t,ref:n,className:(0,st.default)("rt-ShellPaneFooter","rt-SidebarFooter","rt-SidebarFooter--container",...o,e)})});Vt.displayName="Shell.PaneFooter";var kt=X.forwardRef(({className:e,children:t,...n},o)=>{let r=wt();return X.createElement(Mt,{type:"hover",className:"rt-ShellScroll"},X.createElement("div",{...n,ref:o,className:(0,st.default)("rt-BaseMenuContent","rt-SidebarContent",...r,e)},X.createElement("div",{className:"rt-BaseMenuViewport"},t)))});kt.displayName="Shell.Scroll";var pn=e=>e==="collapsed"?"closed":"open",ro=e=>e==="closed"?"collapsed":"expanded";function mn(e){if(e===void 0)return;if(typeof e=="string")return pn(e);let t={};for(let[n,o]of Object.entries(e))o!==void 0&&(t[n]=pn(o));return t}var ao={controlled:"state",default:"defaultState"},so={initial:"overlay",sm:"fixed"},lt=ae.forwardRef((e,t)=>{let{className:n,presentation:o=so,expandedSize:r=288,minSize:s=200,maxSize:i=400,resizable:p=!1,collapsible:l=!0,onExpand:d,onCollapse:R,onResize:x,onResizeStart:C,onResizeEnd:T,snapPoints:A,snapTolerance:N,collapseThreshold:y,paneId:S,persistence:E,children:M,style:k,state:U,defaultState:F,onStateChange:$,size:Q,defaultSize:P,onSizeChange:h,sizeUpdate:w,sizeUpdateMs:D=50,inset:L,id:Y,...m}=e,{table:v,attributes:V}=be(o,"fixed"),b=Pe({name:"sidebar",label:"Sidebar",propNames:ao,id:Y,controlled:mn(U),defaultValue:mn(F),presentationTable:v,builtIn:Je,onChange:(W,me)=>$?.(ro(W),{reason:me}),onExpand:d,onCollapse:R,size:r});pe("sidebar",L),ae.useEffect(()=>{(A!==void 0||y!==void 0||S!==void 0||E!==void 0)&&void 0},[A,y,S,E]);let I=ae.useRef(null),a=(0,Pn.useComposedRefs)(t,b.setElement,I),u=Se({name:"sidebar",elementId:b.id,elementRef:I,cssVarName:"--sidebar-size",orientation:"vertical",edge:"end",growth:Ze,expandedSize:r,minSize:s,maxSize:i,resizable:p,collapsible:l,size:Q,defaultSize:P,onSizeChange:h,sizeUpdate:w,sizeUpdateMs:D,onResize:x,onResizeStart:C,onResizeEnd:T,snapPoints:A,snapTolerance:N,collapseThreshold:y,paneId:S,persistence:E,overlaying:b.overlaying,overlayingNow:()=>v[se()]==="overlay",requestCollapse:()=>b.setValue("closed","toggle"),requestToggle:()=>b.toggle("toggle")}),{handles:g,content:f}=ve(M,_e),j=p&&b.value!=="closed"&&!b.overlaying?ae.createElement(fe.Provider,{value:u},g.length>0?g:ae.createElement(ne,null)):null,K=b.peeking?`var(--sidebar-size, ${r}px)`:void 0;return ae.createElement("div",{...he(m),id:b.id,ref:a,className:(0,fn.default)("rt-ShellPane","rt-ShellSidebar",n),...ge(b,V),"data-inset":L||void 0,tabIndex:b.overlaying?-1:m.tabIndex,style:{...k,"--sidebar-expanded-size":`${r}px`,"--sidebar-min-size":`${s}px`,"--sidebar-max-size":`${i}px`,...K?{"--peek-sidebar-width":K}:{}}},ae.createElement("div",{className:"rt-ShellSidebarContent"},ae.createElement(Ae,null,f)),j)});lt.displayName="Shell.Sidebar";lt.Handle=_e;var le=_(require("react")),gn=_(require("classnames")),bn=require("radix-ui/internal");var io={controlled:"open",default:"defaultOpen"},dt=le.forwardRef((e,t)=>{let{className:n,presentation:o="fixed",defaultOpen:r,open:s,onOpenChange:i,expandedSize:p=200,minSize:l=100,maxSize:d=400,resizable:R=!1,collapsible:x=!0,onExpand:C,onCollapse:T,onResize:A,onResizeStart:N,onResizeEnd:y,snapPoints:S,snapTolerance:E,collapseThreshold:M,paneId:k,persistence:U,children:F,style:$,size:Q,defaultSize:P,onSizeChange:h,sizeUpdate:w,sizeUpdateMs:D=50,inset:L,id:Y,...m}=e,{table:v,attributes:V}=be(o,"fixed"),b=Pe({name:"bottom",label:"Bottom",propNames:io,id:Y,controlled:ie(s),defaultValue:ie(r),presentationTable:v,builtIn:Oe,onChange:(K,W)=>i?.(K!=="closed",{reason:W}),onExpand:C,onCollapse:T,size:p});pe("bottom",L),le.useEffect(()=>{(S!==void 0||M!==void 0||k!==void 0||U!==void 0)&&void 0},[S,M,k,U]);let I=le.useRef(null),a=(0,bn.useComposedRefs)(t,b.setElement,I),u=Se({name:"bottom",elementId:b.id,elementRef:I,cssVarName:"--bottom-size",orientation:"horizontal",edge:"start",growth:Yt,expandedSize:p,minSize:l,maxSize:d,resizable:R,collapsible:x,size:Q,defaultSize:P,onSizeChange:h,sizeUpdate:w,sizeUpdateMs:D,onResize:A,onResizeStart:N,onResizeEnd:y,snapPoints:S,snapTolerance:E,collapseThreshold:M,paneId:k,persistence:U,overlaying:b.overlaying,overlayingNow:()=>v[se()]==="overlay",requestCollapse:()=>b.setValue("closed","toggle"),requestToggle:()=>b.toggle("toggle")}),{handles:g,content:f}=ve(F,Ke),j=R&&b.shown!==!1&&!b.overlaying?le.createElement(fe.Provider,{value:u},g.length>0?g:le.createElement(ne,null)):null;return le.createElement("div",{...he(m),id:b.id,ref:a,className:(0,gn.default)("rt-ShellPane","rt-ShellBottom",n),...ge(b,V),"data-inset":L||void 0,tabIndex:b.overlaying?-1:m.tabIndex,style:{...$,"--bottom-expanded-size":`${p}px`,"--bottom-min-size":`${l}px`,"--bottom-max-size":`${d}px`}},le.createElement("div",{className:"rt-ShellBottomContent"},f),j)});dt.displayName="Shell.Bottom";dt.Handle=Ke;var de=_(require("react")),Rn=_(require("classnames")),Sn=require("radix-ui/internal");var lo={controlled:"open",default:"defaultOpen"},co={initial:"overlay",sm:"fixed"},ct=de.forwardRef((e,t)=>{let{className:n,presentation:o=co,defaultOpen:r,open:s,onOpenChange:i,expandedSize:p=320,minSize:l=200,maxSize:d=500,resizable:R=!1,collapsible:x=!0,onExpand:C,onCollapse:T,onResize:A,onResizeStart:N,onResizeEnd:y,snapPoints:S,snapTolerance:E,collapseThreshold:M,paneId:k,persistence:U,children:F,style:$,onSizeChange:Q,sizeUpdate:P,sizeUpdateMs:h=50,size:w,defaultSize:D,inset:L,id:Y,...m}=e,{table:v,attributes:V}=be(o,"fixed"),b=Pe({name:"inspector",label:"Inspector",propNames:lo,id:Y,controlled:ie(s),defaultValue:ie(r),presentationTable:v,builtIn:Oe,onChange:(K,W)=>i?.(K!=="closed",{reason:W}),onExpand:C,onCollapse:T,size:p});pe("inspector",L),de.useEffect(()=>{(S!==void 0||M!==void 0||k!==void 0||U!==void 0)&&void 0},[S,M,k,U]);let I=de.useRef(null),a=(0,Sn.useComposedRefs)(t,b.setElement,I),u=Se({name:"inspector",elementId:b.id,elementRef:I,cssVarName:"--inspector-size",orientation:"vertical",edge:"start",growth:Xt,expandedSize:p,minSize:l,maxSize:d,resizable:R,collapsible:x,size:w,defaultSize:D,onSizeChange:Q,sizeUpdate:P,sizeUpdateMs:h,onResize:A,onResizeStart:N,onResizeEnd:y,snapPoints:S,snapTolerance:E,collapseThreshold:M,paneId:k,persistence:U,overlaying:b.overlaying,overlayingNow:()=>v[se()]==="overlay",requestCollapse:()=>b.setValue("closed","toggle"),requestToggle:()=>b.toggle("toggle")}),{handles:g,content:f}=ve(F,qe),j=R&&b.shown!==!1&&!b.overlaying?de.createElement(fe.Provider,{value:u},g.length>0?g:de.createElement(ne,null)):null;return de.createElement("div",{...he(m),id:b.id,ref:a,className:(0,Rn.default)("rt-ShellPane","rt-ShellInspector",n),...ge(b,V),"data-inset":L||void 0,tabIndex:b.overlaying?-1:m.tabIndex,style:{...$,"--inspector-expanded-size":`${p}px`,"--inspector-min-size":`${l}px`,"--inspector-max-size":`${d}px`}},de.createElement("div",{className:"rt-ShellInspectorContent"},f),j)});ct.displayName="Shell.Inspector";ct.Handle=qe;var ce=_(require("react"));var hn=e=>e===void 0?void 0:e==="closed"?"collapsed":"expanded",yn=e=>e==="collapsed"?"closed":"open",ut=e=>e===void 0||e==="closed"?"collapsed":"expanded",pt=e=>e==="left"?"rail":e;function uo(e){let t=ce.useCallback(n=>Te(e,n),[e]);return ce.useSyncExternalStore(t,()=>e.version,()=>0)}function xn(){let e=Re("useSidebarMode"),t=ce.useCallback(r=>Te(e,r),[e]),n=ce.useSyncExternalStore(t,()=>e.entries.get("sidebar")?.value,()=>{}),o=ce.useCallback(r=>{e.entries.get("sidebar")?.setValue(yn(r),"toggle")},[e]);return{sidebarMode:hn(n)??"expanded",setSidebarMode:o}}var vn=()=>{};function Cn(){let e=Re("useShell");ce.useEffect(()=>{},[]),uo(e);let{breakpoint:t,ready:n}=ke(),o=ce.useMemo(()=>{let i=l=>d=>e.entries.get(l)?.setValue(d==="collapsed"?"closed":"open","toggle"),p=l=>De(e,l===null?null:pt(l));return{setLeftMode:i("rail"),setPanelMode:i("panel"),setInspectorMode:i("inspector"),setBottomMode:i("bottom"),setSidebarMode:l=>e.entries.get("sidebar")?.setValue(yn(l),"toggle"),setPeekTarget:p,peekPane:l=>p(l),clearPeek:()=>p(null),setHasLeft:vn,setHasSidebar:vn,togglePane:l=>e.entries.get(pt(l))?.toggle("toggle"),expandPane:l=>e.entries.get(pt(l))?.setValue("open","toggle"),collapsePane:l=>e.entries.get(pt(l))?.setValue("closed","toggle")}},[e]),r=i=>e.entries.get(i)?.value,s=e.entries.get("rail");return{leftMode:ut(r("rail")),leftControlledOpen:s?.value===void 0?void 0:s.value!=="closed",panelMode:ut(r("panel")),sidebarMode:hn(r("sidebar"))??"expanded",inspectorMode:ut(r("inspector")),bottomMode:ut(r("bottom")),peekTarget:e.peek,hasLeft:e.entries.has("rail"),hasSidebar:e.entries.has("sidebar"),currentBreakpoint:t,currentBreakpointReady:n,leftResolvedPresentation:s?.presentation,...o}}var En=_(require("react"));function zn(e){En.useEffect(()=>{},[]);let{breakpoint:t}=ke(typeof e!="string");return ze(e,()=>"fixed")[t]}var Lt=0;function Tn(e){Lt=Math.max(0,Lt+e);let t=document.documentElement;Lt>0?t.setAttribute("data-rt-shell-lock",""):t.removeAttribute("data-rt-shell-lock")}var Dt="data-rt-shell-inert",po=30;function $e(e,t){return t===null||t===e||t===e.body||t===e.documentElement}function Mn(e,t,n){for(let o of e.querySelectorAll("[data-shell-trigger][aria-controls]"))if(!(o.getAttribute("aria-controls")!==t||o.closest("[inert]"))&&!(n&&!n.some(r=>r.contains(o))))return o;return null}var wn=c.forwardRef(({className:e,children:t,height:n="full",size:o="2",style:r,onKeyDown:s,onFocus:i,...p},l)=>{let[d]=c.useState(Kt),R=c.useCallback(a=>Te(d,a),[d]);c.useSyncExternalStore(R,()=>d.version,()=>0);let x=c.useRef(null),C=(0,mt.useComposedRefs)(l,x),[T,A]=c.useState(()=>new Set),N=c.useCallback(a=>{A(u=>u.has(a)?u:new Set(u).add(a))},[]),y=c.useCallback(a=>{A(u=>{if(!u.has(a))return u;let g=new Set(u);return g.delete(a),g})},[]),S=c.useMemo(()=>({registerInset:N,unregisterInset:y}),[N,y]),E=c.useCallback(()=>{for(let a of d.entries.values())a.overlayLive&&a.setValue("closed","dismiss")},[d]),M=c.useCallback(()=>[...d.entries.values()].filter(a=>a.overlayLive&&a.el).map(a=>({name:a.name,id:a.id,el:a.el})),[d]),k=[...d.entries.values()].filter(a=>a.overlayLive&&a.el).length,U=n!=="full"&&n!=="auto",F=c.useCallback(()=>{let a=x.current;if(!a)return;let u=M().map(g=>g.el);for(let g of a.children){if(!(g instanceof HTMLElement)||g.classList.contains("rt-ShellScrim"))continue;let f=u.some(j=>g===j||g.contains(j));u.length===0||f?g.hasAttribute(Dt)&&(g.removeAttribute(Dt),g.inert=!1):g.inert||(g.setAttribute(Dt,""),g.inert=!0)}},[M]),$=c.useRef(null),Q=c.useRef([]),P=c.useRef(null),h=c.useRef(!1),w=c.useRef(0),D=c.useCallback(()=>{w.current&&cancelAnimationFrame(w.current),w.current=0},[]),L=c.useCallback((a,u)=>{D();let g=0,f=()=>{if(w.current=0,!!a.isConnected){if(u(a.ownerDocument.activeElement)){a.focus({preventScroll:!0});return}g+=1,g<po&&(w.current=requestAnimationFrame(f))}};w.current=requestAnimationFrame(f)},[D]);c.useEffect(()=>()=>{D(),h.current&&(h.current=!1,Tn(-1))},[D]),c.useEffect(()=>{let a=x.current;if(!a)return;let u=a.ownerDocument,g=M(),f=g.map(z=>z.el),j=!U&&g.length>0;j!==h.current&&(h.current=j,Tn(j?1:-1));let K=Q.current;Q.current=g;let W=K.filter(z=>{if(f.includes(z.el))return!1;let O=d.entries.get(z.name);return!z.el.isConnected||!O||O.el!==z.el||O.value==="closed"}),me=z=>z!==null&&W.some(O=>O.el.contains(z));if(K.length===0&&g.length>0){let z=u.activeElement,O=z instanceof HTMLElement&&!$e(u,z)&&!f.some(G=>G.contains(z))?z:null;if(O&&!a.contains(O)){let G=P.current;G&&G.isConnected&&!f.some(Ce=>Ce.contains(G))&&(O=G)}$.current=O}if(F(),g.length===0){let z=$.current;if($.current=null,W.length===0)return;let G=(re=>re!==null&&re.isConnected&&!re.closest("[inert]")&&!me(re))(z)?z:null;for(let re of W)G??(G=Mn(u,re.id));if(!G)return;let Ce=re=>$e(u,re)||me(re);Ce(u.activeElement)?G.focus({preventScroll:!0}):L(G,Ce);return}if(W.length>0){let z=u.activeElement;if($e(u,z)||me(z)){let O=null;for(let G of W)O??(O=Mn(u,G.id,f));(O??f[f.length-1]).focus({preventScroll:!0})}}let xe=f.filter(z=>!K.some(O=>O.el===z)),oe=u.activeElement;xe.length>0&&!f.some(z=>z.contains(oe))&&(xe[0].focus({preventScroll:!0}),L(xe[0],z=>$e(u,z)||z instanceof Element&&z.closest("[inert]")!==null))}),c.useEffect(()=>{let a=x.current;if(!a||k===0||typeof MutationObserver>"u")return;let u=new MutationObserver(F);return u.observe(a,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["inert"]}),()=>u.disconnect()},[k,F]);let Y=a=>{s?.(a),!(a.key!=="Escape"||a.defaultPrevented||k===0)&&(E(),a.stopPropagation())};c.useEffect(()=>{let a=x.current;if(!a||k===0)return;let u=a.ownerDocument,g=f=>{f.key!=="Escape"||f.defaultPrevented||!$e(u,f.target)||E()};return u.addEventListener("keydown",g),()=>u.removeEventListener("keydown",g)},[k,E]);let m=a=>{i?.(a),a.target instanceof HTMLElement&&x.current?.contains(a.target)&&(P.current=a.target)},v=d.entries.get("rail"),b=v!==void 0&&v.value!==void 0&&v.value!=="closed"?T.has("rail")?`calc(${v.size}px + 2 * var(--shell-inset-gap))`:`${v.size}px`:void 0,I=n==="full"?{}:n==="auto"?{height:"auto"}:typeof n=="number"?{height:`${n}px`}:{height:n};return c.createElement(vt.Provider,{value:d},c.createElement(it.Provider,{value:o},c.createElement(yt.Provider,{value:S},c.createElement("div",{...p,ref:C,className:(0,Ne.default)("rt-ShellRoot",e),"data-height":n==="auto"?"auto":void 0,"data-has-inset":T.size>0||void 0,"data-overlay-live":k>0||void 0,onKeyDown:Y,onFocus:m,style:{...I,...b?{"--shell-rail-offset":b}:{},...r}},t,c.createElement("div",{className:"rt-ShellScrim","aria-hidden":!0,onClick:E})))))});wn.displayName="Shell.Root";var Nn=c.forwardRef(({className:e,height:t=64,style:n,...o},r)=>c.createElement("header",{...o,ref:r,className:(0,Ne.default)("rt-ShellHeader",e),style:{...n,"--shell-header-height":`${t}px`}}));Nn.displayName="Shell.Header";var Vn=c.forwardRef(({children:e},t)=>(c.useEffect(()=>{},[]),c.createElement(c.Fragment,null,e)));Vn.displayName="Shell.Left";var mo={controlled:"open",default:"defaultOpen"},kn=c.forwardRef((e,t)=>{let{className:n,presentation:o,expandedSize:r=64,collapsible:s,onExpand:i,onCollapse:p,children:l,style:d,open:R,defaultOpen:x,onOpenChange:C,inset:T,id:A,...N}=e,{table:y,attributes:S}=be(o,"fixed"),E=Pe({name:"rail",label:"Rail",propNames:mo,id:A,controlled:ie(R),defaultValue:ie(x),presentationTable:y,builtIn:Je,onChange:(k,U)=>C?.(k!=="closed",{reason:U}),onExpand:i,onCollapse:p,size:r});pe("rail",T);let M=(0,mt.useComposedRefs)(t,E.setElement);return c.createElement("div",{...N,id:E.id,ref:M,className:(0,Ne.default)("rt-ShellPane","rt-ShellRail",n),...ge(E,S),"data-inset":T||void 0,tabIndex:E.overlaying?-1:N.tabIndex,style:{...d,"--rail-size":`${r}px`}},c.createElement(fo,null,l))});kn.displayName="Shell.Rail";function fo({children:e}){let t=c.useContext(it);return c.createElement("div",{className:(0,Ne.default)("rt-ShellRailContent",`rt-r-size-${t}`)},c.createElement(Ae,{presentation:"thin"},e))}var Po={controlled:"open",default:"defaultOpen"},Bt=c.forwardRef((e,t)=>{let{className:n,presentation:o,defaultOpen:r,open:s,onOpenChange:i,size:p,defaultSize:l,expandedSize:d=288,minSize:R=100,maxSize:x=800,resizable:C=!1,collapsible:T=!0,onExpand:A,onCollapse:N,onResize:y,onResizeStart:S,onResizeEnd:E,snapPoints:M,snapTolerance:k,collapseThreshold:U,paneId:F,persistence:$,children:Q,style:P,onSizeChange:h,sizeUpdate:w,sizeUpdateMs:D=50,inset:L,id:Y,...m}=e,v=Re("Shell.Panel"),V=ht(v,"rail"),b=be(o,"fixed"),I=o===void 0,a=I?V?.presentationTable??St:b.table,u=I?{"data-presentation-follows":""}:b.attributes,g=Pe({name:"panel",label:"Panel",propNames:Po,id:Y,controlled:ie(s),defaultValue:ie(r),presentationTable:a,builtIn:Oe,onChange:(oe,z)=>i?.(oe!=="closed",{reason:z}),onExpand:A,onCollapse:N,size:d});pe("panel",L),c.useEffect(()=>{(M!==void 0||U!==void 0||F!==void 0||$!==void 0)&&void 0},[M,U,F,$]);let f=c.useRef(null),j=(0,mt.useComposedRefs)(t,g.setElement,f),K=Se({name:"panel",elementId:g.id,elementRef:f,cssVarName:"--panel-size",orientation:"vertical",edge:"end",growth:Ze,expandedSize:d,minSize:R,maxSize:x,resizable:C,collapsible:T,size:p,defaultSize:l,onSizeChange:h,sizeUpdate:w,sizeUpdateMs:D,onResize:y,onResizeStart:S,onResizeEnd:E,snapPoints:M,snapTolerance:k,collapseThreshold:U,paneId:F,persistence:$,overlaying:g.overlaying,overlayingNow:()=>(I?v.entries.get("rail")?.presentationTable??St:b.table)[se()]==="overlay",requestCollapse:()=>g.setValue("closed","toggle"),requestToggle:()=>g.toggle("toggle")}),{handles:W,content:me}=ve(Q,We),xe=C&&g.shown!==!1&&!g.overlaying?c.createElement(fe.Provider,{value:K},W.length>0?W:c.createElement(ne,null)):null;return c.createElement("div",{...he(m),id:g.id,ref:j,className:(0,Ne.default)("rt-ShellPane","rt-ShellPanel",n),...ge(g,u),"data-inset":L||void 0,tabIndex:g.overlaying?-1:m.tabIndex,style:{...P,"--panel-expanded-size":`${d}px`}},c.createElement("div",{className:"rt-ShellPanelContent"},c.createElement(Ae,null,me)),xe)});Bt.displayName="Shell.Panel";Bt.Handle=We;var Ln=c.forwardRef(({className:e,inset:t,...n},o)=>(pe("content",t),c.createElement("main",{...n,ref:o,className:(0,Ne.default)("rt-ShellContent",e),"data-inset":t||void 0})));Ln.displayName="Shell.Content";var Dn=c.forwardRef(({target:e,action:t="toggle",peekOnHover:n,onClick:o,onMouseEnter:r,onMouseLeave:s,children:i,...p},l)=>{let d=Re("Shell.Trigger");c.useEffect(()=>{e==="left"&&void 0,n&&void 0},[e,n]);let R=e==="left"?"rail":e,x=ht(d,R),C=x?.value===void 0?void 0:x.value!=="closed",T=y=>{if(o?.(y),y.defaultPrevented)return;let S=d.entries.get(R);S&&(d.peek===R&&De(d,null),t==="toggle"?S.toggle("toggle"):t==="expand"?S.setValue("open","toggle"):S.setValue("closed","toggle"))},A=y=>{if(r?.(y),!n)return;let S=d.entries.get(R);S&&S.value==="closed"&&S.presentation!=="overlay"&&De(d,R)},N=y=>{s?.(y),n&&d.peek===R&&De(d,null)};return c.createElement("button",{type:"button","aria-controls":x?.id,"aria-expanded":C,...p,ref:l,onClick:T,onMouseEnter:A,onMouseLeave:N,"data-shell-trigger":e,"data-shell-action":t},i)});Dn.displayName="Shell.Trigger";
|
|
2
2
|
//# sourceMappingURL=shell.js.map
|