@womp/kookie-ui 0.3.22
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 +321 -0
- package/components.css +23090 -0
- package/dist/cjs/components/_internal/base-button.d.ts +51 -0
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-button.js +2 -0
- package/dist/cjs/components/_internal/base-button.js.map +7 -0
- package/dist/cjs/components/_internal/base-button.props.d.ts +115 -0
- package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-button.props.js +2 -0
- package/dist/cjs/components/_internal/base-button.props.js.map +7 -0
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +32 -0
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-checkbox.props.js +2 -0
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +7 -0
- package/dist/cjs/components/_internal/base-menu.props.d.ts +121 -0
- package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-menu.props.js +2 -0
- package/dist/cjs/components/_internal/base-menu.props.js.map +7 -0
- package/dist/cjs/components/_internal/base-radio.props.d.ts +32 -0
- package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-radio.props.js +2 -0
- package/dist/cjs/components/_internal/base-radio.props.js.map +7 -0
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts +38 -0
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-tab-list.props.js +2 -0
- package/dist/cjs/components/_internal/base-tab-list.props.js.map +7 -0
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +81 -0
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -0
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +2 -0
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +7 -0
- package/dist/cjs/components/_internal/menu-context.d.ts +27 -0
- package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -0
- package/dist/cjs/components/_internal/menu-context.js +2 -0
- package/dist/cjs/components/_internal/menu-context.js.map +7 -0
- package/dist/cjs/components/_internal/shell-bottom.d.ts +40 -0
- package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-bottom.js +2 -0
- package/dist/cjs/components/_internal/shell-bottom.js.map +7 -0
- package/dist/cjs/components/_internal/shell-handles.d.ts +7 -0
- package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-handles.js +2 -0
- package/dist/cjs/components/_internal/shell-handles.js.map +7 -0
- package/dist/cjs/components/_internal/shell-inspector.d.ts +40 -0
- package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-inspector.js +2 -0
- package/dist/cjs/components/_internal/shell-inspector.js.map +7 -0
- package/dist/cjs/components/_internal/shell-prop-helpers.d.ts +7 -0
- package/dist/cjs/components/_internal/shell-prop-helpers.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-prop-helpers.js +2 -0
- package/dist/cjs/components/_internal/shell-prop-helpers.js.map +7 -0
- package/dist/cjs/components/_internal/shell-resize.d.ts +24 -0
- package/dist/cjs/components/_internal/shell-resize.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-resize.js +2 -0
- package/dist/cjs/components/_internal/shell-resize.js.map +7 -0
- package/dist/cjs/components/_internal/shell-sidebar.d.ts +40 -0
- package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -0
- package/dist/cjs/components/_internal/shell-sidebar.js +2 -0
- package/dist/cjs/components/_internal/shell-sidebar.js.map +7 -0
- package/dist/cjs/components/accessible-icon.d.ts +4 -0
- package/dist/cjs/components/accessible-icon.d.ts.map +1 -0
- package/dist/cjs/components/accessible-icon.js +2 -0
- package/dist/cjs/components/accessible-icon.js.map +7 -0
- package/dist/cjs/components/accordion.d.ts +22 -0
- package/dist/cjs/components/accordion.d.ts.map +1 -0
- package/dist/cjs/components/accordion.js +2 -0
- package/dist/cjs/components/accordion.js.map +7 -0
- package/dist/cjs/components/accordion.props.d.ts +97 -0
- package/dist/cjs/components/accordion.props.d.ts.map +1 -0
- package/dist/cjs/components/accordion.props.js +2 -0
- package/dist/cjs/components/accordion.props.js.map +7 -0
- package/dist/cjs/components/alert-dialog.d.ts +29 -0
- package/dist/cjs/components/alert-dialog.d.ts.map +1 -0
- package/dist/cjs/components/alert-dialog.js +2 -0
- package/dist/cjs/components/alert-dialog.js.map +7 -0
- package/dist/cjs/components/alert-dialog.props.d.ts +70 -0
- package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -0
- package/dist/cjs/components/alert-dialog.props.js +2 -0
- package/dist/cjs/components/alert-dialog.props.js.map +7 -0
- package/dist/cjs/components/aspect-ratio.d.ts +4 -0
- package/dist/cjs/components/aspect-ratio.d.ts.map +1 -0
- package/dist/cjs/components/aspect-ratio.js +2 -0
- package/dist/cjs/components/aspect-ratio.js.map +7 -0
- package/dist/cjs/components/avatar.d.ts +16 -0
- package/dist/cjs/components/avatar.d.ts.map +1 -0
- package/dist/cjs/components/avatar.js +2 -0
- package/dist/cjs/components/avatar.js.map +7 -0
- package/dist/cjs/components/avatar.props.d.ts +82 -0
- package/dist/cjs/components/avatar.props.d.ts.map +1 -0
- package/dist/cjs/components/avatar.props.js +2 -0
- package/dist/cjs/components/avatar.props.js.map +7 -0
- package/dist/cjs/components/badge.d.ts +19 -0
- package/dist/cjs/components/badge.d.ts.map +1 -0
- package/dist/cjs/components/badge.js +2 -0
- package/dist/cjs/components/badge.js.map +7 -0
- package/dist/cjs/components/badge.props.d.ts +48 -0
- package/dist/cjs/components/badge.props.d.ts.map +1 -0
- package/dist/cjs/components/badge.props.js +2 -0
- package/dist/cjs/components/badge.props.js.map +7 -0
- package/dist/cjs/components/blockquote.d.ts +12 -0
- package/dist/cjs/components/blockquote.d.ts.map +1 -0
- package/dist/cjs/components/blockquote.js +2 -0
- package/dist/cjs/components/blockquote.js.map +7 -0
- package/dist/cjs/components/blockquote.props.d.ts +39 -0
- package/dist/cjs/components/blockquote.props.d.ts.map +1 -0
- package/dist/cjs/components/blockquote.props.js +2 -0
- package/dist/cjs/components/blockquote.props.js.map +7 -0
- package/dist/cjs/components/box.d.ts +18 -0
- package/dist/cjs/components/box.d.ts.map +1 -0
- package/dist/cjs/components/box.js +2 -0
- package/dist/cjs/components/box.js.map +7 -0
- package/dist/cjs/components/box.props.d.ts +40 -0
- package/dist/cjs/components/box.props.d.ts.map +1 -0
- package/dist/cjs/components/box.props.js +2 -0
- package/dist/cjs/components/box.props.js.map +7 -0
- package/dist/cjs/components/button.d.ts +107 -0
- package/dist/cjs/components/button.d.ts.map +1 -0
- package/dist/cjs/components/button.js +2 -0
- package/dist/cjs/components/button.js.map +7 -0
- package/dist/cjs/components/button.props.d.ts +19 -0
- package/dist/cjs/components/button.props.d.ts.map +1 -0
- package/dist/cjs/components/button.props.js +2 -0
- package/dist/cjs/components/button.props.js.map +7 -0
- package/dist/cjs/components/callout.d.ts +22 -0
- package/dist/cjs/components/callout.d.ts.map +1 -0
- package/dist/cjs/components/callout.js +2 -0
- package/dist/cjs/components/callout.js.map +7 -0
- package/dist/cjs/components/callout.props.d.ts +43 -0
- package/dist/cjs/components/callout.props.d.ts.map +1 -0
- package/dist/cjs/components/callout.props.js +2 -0
- package/dist/cjs/components/callout.props.js.map +7 -0
- package/dist/cjs/components/card.d.ts +12 -0
- package/dist/cjs/components/card.d.ts.map +1 -0
- package/dist/cjs/components/card.js +2 -0
- package/dist/cjs/components/card.js.map +7 -0
- package/dist/cjs/components/card.props.d.ts +38 -0
- package/dist/cjs/components/card.props.d.ts.map +1 -0
- package/dist/cjs/components/card.props.js +2 -0
- package/dist/cjs/components/card.props.js.map +7 -0
- package/dist/cjs/components/chatbar.d.ts +233 -0
- package/dist/cjs/components/chatbar.d.ts.map +1 -0
- package/dist/cjs/components/chatbar.js +5 -0
- package/dist/cjs/components/chatbar.js.map +7 -0
- package/dist/cjs/components/checkbox-cards.d.ts +19 -0
- package/dist/cjs/components/checkbox-cards.d.ts.map +1 -0
- package/dist/cjs/components/checkbox-cards.js +2 -0
- package/dist/cjs/components/checkbox-cards.js.map +7 -0
- package/dist/cjs/components/checkbox-cards.props.d.ts +52 -0
- package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -0
- package/dist/cjs/components/checkbox-cards.props.js +2 -0
- package/dist/cjs/components/checkbox-cards.props.js.map +7 -0
- package/dist/cjs/components/checkbox-group.d.ts +16 -0
- package/dist/cjs/components/checkbox-group.d.ts.map +1 -0
- package/dist/cjs/components/checkbox-group.js +2 -0
- package/dist/cjs/components/checkbox-group.js.map +7 -0
- package/dist/cjs/components/checkbox-group.primitive.d.ts +41 -0
- package/dist/cjs/components/checkbox-group.primitive.d.ts.map +1 -0
- package/dist/cjs/components/checkbox-group.primitive.js +2 -0
- package/dist/cjs/components/checkbox-group.primitive.js.map +7 -0
- package/dist/cjs/components/checkbox-group.props.d.ts +35 -0
- package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -0
- package/dist/cjs/components/checkbox-group.props.js +2 -0
- package/dist/cjs/components/checkbox-group.props.js.map +7 -0
- package/dist/cjs/components/checkbox.d.ts +13 -0
- package/dist/cjs/components/checkbox.d.ts.map +1 -0
- package/dist/cjs/components/checkbox.js +2 -0
- package/dist/cjs/components/checkbox.js.map +7 -0
- package/dist/cjs/components/checkbox.props.d.ts +2 -0
- package/dist/cjs/components/checkbox.props.d.ts.map +1 -0
- package/dist/cjs/components/checkbox.props.js +2 -0
- package/dist/cjs/components/checkbox.props.js.map +7 -0
- package/dist/cjs/components/code.d.ts +12 -0
- package/dist/cjs/components/code.d.ts.map +1 -0
- package/dist/cjs/components/code.js +2 -0
- package/dist/cjs/components/code.js.map +7 -0
- package/dist/cjs/components/code.props.d.ts +45 -0
- package/dist/cjs/components/code.props.d.ts.map +1 -0
- package/dist/cjs/components/code.props.js +2 -0
- package/dist/cjs/components/code.props.js.map +7 -0
- package/dist/cjs/components/combobox.d.ts +101 -0
- package/dist/cjs/components/combobox.d.ts.map +1 -0
- package/dist/cjs/components/combobox.js +2 -0
- package/dist/cjs/components/combobox.js.map +7 -0
- package/dist/cjs/components/combobox.props.d.ts +98 -0
- package/dist/cjs/components/combobox.props.d.ts.map +1 -0
- package/dist/cjs/components/combobox.props.js +2 -0
- package/dist/cjs/components/combobox.props.js.map +7 -0
- package/dist/cjs/components/container.d.ts +11 -0
- package/dist/cjs/components/container.d.ts.map +1 -0
- package/dist/cjs/components/container.js +2 -0
- package/dist/cjs/components/container.js.map +7 -0
- package/dist/cjs/components/container.props.d.ts +68 -0
- package/dist/cjs/components/container.props.d.ts.map +1 -0
- package/dist/cjs/components/container.props.js +2 -0
- package/dist/cjs/components/container.props.js.map +7 -0
- package/dist/cjs/components/context-menu.d.ts +54 -0
- package/dist/cjs/components/context-menu.d.ts.map +1 -0
- package/dist/cjs/components/context-menu.js +2 -0
- package/dist/cjs/components/context-menu.js.map +7 -0
- package/dist/cjs/components/context-menu.props.d.ts +2 -0
- package/dist/cjs/components/context-menu.props.d.ts.map +1 -0
- package/dist/cjs/components/context-menu.props.js +2 -0
- package/dist/cjs/components/context-menu.props.js.map +7 -0
- package/dist/cjs/components/data-list.d.ts +23 -0
- package/dist/cjs/components/data-list.d.ts.map +1 -0
- package/dist/cjs/components/data-list.js +2 -0
- package/dist/cjs/components/data-list.js.map +7 -0
- package/dist/cjs/components/data-list.props.d.ts +62 -0
- package/dist/cjs/components/data-list.props.d.ts.map +1 -0
- package/dist/cjs/components/data-list.props.js +2 -0
- package/dist/cjs/components/data-list.props.js.map +7 -0
- package/dist/cjs/components/dialog.d.ts +26 -0
- package/dist/cjs/components/dialog.d.ts.map +1 -0
- package/dist/cjs/components/dialog.js +2 -0
- package/dist/cjs/components/dialog.js.map +7 -0
- package/dist/cjs/components/dialog.props.d.ts +72 -0
- package/dist/cjs/components/dialog.props.d.ts.map +1 -0
- package/dist/cjs/components/dialog.props.js +2 -0
- package/dist/cjs/components/dialog.props.js.map +7 -0
- package/dist/cjs/components/dropdown-menu.d.ts +89 -0
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -0
- package/dist/cjs/components/dropdown-menu.js +2 -0
- package/dist/cjs/components/dropdown-menu.js.map +7 -0
- package/dist/cjs/components/dropdown-menu.props.d.ts +2 -0
- package/dist/cjs/components/dropdown-menu.props.d.ts.map +1 -0
- package/dist/cjs/components/dropdown-menu.props.js +2 -0
- package/dist/cjs/components/dropdown-menu.props.js.map +7 -0
- package/dist/cjs/components/em.d.ts +11 -0
- package/dist/cjs/components/em.d.ts.map +1 -0
- package/dist/cjs/components/em.js +2 -0
- package/dist/cjs/components/em.js.map +7 -0
- package/dist/cjs/components/em.props.d.ts +17 -0
- package/dist/cjs/components/em.props.d.ts.map +1 -0
- package/dist/cjs/components/em.props.js +2 -0
- package/dist/cjs/components/em.props.js.map +7 -0
- package/dist/cjs/components/flex.d.ts +18 -0
- package/dist/cjs/components/flex.d.ts.map +1 -0
- package/dist/cjs/components/flex.js +2 -0
- package/dist/cjs/components/flex.js.map +7 -0
- package/dist/cjs/components/flex.props.d.ts +132 -0
- package/dist/cjs/components/flex.props.d.ts.map +1 -0
- package/dist/cjs/components/flex.props.js +2 -0
- package/dist/cjs/components/flex.props.js.map +7 -0
- package/dist/cjs/components/grid.d.ts +18 -0
- package/dist/cjs/components/grid.d.ts.map +1 -0
- package/dist/cjs/components/grid.js +2 -0
- package/dist/cjs/components/grid.js.map +7 -0
- package/dist/cjs/components/grid.props.d.ts +211 -0
- package/dist/cjs/components/grid.props.d.ts.map +1 -0
- package/dist/cjs/components/grid.props.js +2 -0
- package/dist/cjs/components/grid.props.js.map +7 -0
- package/dist/cjs/components/heading.d.ts +31 -0
- package/dist/cjs/components/heading.d.ts.map +1 -0
- package/dist/cjs/components/heading.js +2 -0
- package/dist/cjs/components/heading.js.map +7 -0
- package/dist/cjs/components/heading.props.d.ts +62 -0
- package/dist/cjs/components/heading.props.d.ts.map +1 -0
- package/dist/cjs/components/heading.props.js +2 -0
- package/dist/cjs/components/heading.props.js.map +7 -0
- package/dist/cjs/components/hover-card.d.ts +17 -0
- package/dist/cjs/components/hover-card.d.ts.map +1 -0
- package/dist/cjs/components/hover-card.js +2 -0
- package/dist/cjs/components/hover-card.js.map +7 -0
- package/dist/cjs/components/hover-card.props.d.ts +57 -0
- package/dist/cjs/components/hover-card.props.d.ts.map +1 -0
- package/dist/cjs/components/hover-card.props.js +2 -0
- package/dist/cjs/components/hover-card.props.js.map +7 -0
- package/dist/cjs/components/icon-button.d.ts +106 -0
- package/dist/cjs/components/icon-button.d.ts.map +1 -0
- package/dist/cjs/components/icon-button.js +5 -0
- package/dist/cjs/components/icon-button.js.map +7 -0
- package/dist/cjs/components/icon-button.props.d.ts +2 -0
- package/dist/cjs/components/icon-button.props.d.ts.map +1 -0
- package/dist/cjs/components/icon-button.props.js +2 -0
- package/dist/cjs/components/icon-button.props.js.map +7 -0
- package/dist/cjs/components/icons.d.ts +18 -0
- package/dist/cjs/components/icons.d.ts.map +1 -0
- package/dist/cjs/components/icons.js +2 -0
- package/dist/cjs/components/icons.js.map +7 -0
- package/dist/cjs/components/image.d.ts +101 -0
- package/dist/cjs/components/image.d.ts.map +1 -0
- package/dist/cjs/components/image.js +2 -0
- package/dist/cjs/components/image.js.map +7 -0
- package/dist/cjs/components/image.props.d.ts +147 -0
- package/dist/cjs/components/image.props.d.ts.map +1 -0
- package/dist/cjs/components/image.props.js +2 -0
- package/dist/cjs/components/image.props.js.map +7 -0
- package/dist/cjs/components/index.d.ts +72 -0
- package/dist/cjs/components/index.d.ts.map +1 -0
- package/dist/cjs/components/index.js +24 -0
- package/dist/cjs/components/index.js.map +7 -0
- package/dist/cjs/components/inset.d.ts +12 -0
- package/dist/cjs/components/inset.d.ts.map +1 -0
- package/dist/cjs/components/inset.js +2 -0
- package/dist/cjs/components/inset.js.map +7 -0
- package/dist/cjs/components/inset.props.d.ts +71 -0
- package/dist/cjs/components/inset.props.d.ts.map +1 -0
- package/dist/cjs/components/inset.props.js +2 -0
- package/dist/cjs/components/inset.props.js.map +7 -0
- package/dist/cjs/components/kbd.d.ts +12 -0
- package/dist/cjs/components/kbd.d.ts.map +1 -0
- package/dist/cjs/components/kbd.js +2 -0
- package/dist/cjs/components/kbd.js.map +7 -0
- package/dist/cjs/components/kbd.props.d.ts +19 -0
- package/dist/cjs/components/kbd.props.d.ts.map +1 -0
- package/dist/cjs/components/kbd.props.js +2 -0
- package/dist/cjs/components/kbd.props.js.map +7 -0
- package/dist/cjs/components/link.d.ts +12 -0
- package/dist/cjs/components/link.d.ts.map +1 -0
- package/dist/cjs/components/link.js +2 -0
- package/dist/cjs/components/link.js.map +7 -0
- package/dist/cjs/components/link.props.d.ts +51 -0
- package/dist/cjs/components/link.props.d.ts.map +1 -0
- package/dist/cjs/components/link.props.js +2 -0
- package/dist/cjs/components/link.props.js.map +7 -0
- package/dist/cjs/components/navbar.d.ts +24 -0
- package/dist/cjs/components/navbar.d.ts.map +1 -0
- package/dist/cjs/components/navbar.js +2 -0
- package/dist/cjs/components/navbar.js.map +7 -0
- package/dist/cjs/components/navbar.props.d.ts +14 -0
- package/dist/cjs/components/navbar.props.d.ts.map +1 -0
- package/dist/cjs/components/navbar.props.js +2 -0
- package/dist/cjs/components/navbar.props.js.map +7 -0
- package/dist/cjs/components/popover.d.ts +35 -0
- package/dist/cjs/components/popover.d.ts.map +1 -0
- package/dist/cjs/components/popover.js +2 -0
- package/dist/cjs/components/popover.js.map +7 -0
- package/dist/cjs/components/popover.props.d.ts +62 -0
- package/dist/cjs/components/popover.props.d.ts.map +1 -0
- package/dist/cjs/components/popover.props.js +2 -0
- package/dist/cjs/components/popover.props.js.map +7 -0
- package/dist/cjs/components/portal.d.ts +5 -0
- package/dist/cjs/components/portal.d.ts.map +1 -0
- package/dist/cjs/components/portal.js +2 -0
- package/dist/cjs/components/portal.js.map +7 -0
- package/dist/cjs/components/progress.d.ts +14 -0
- package/dist/cjs/components/progress.d.ts.map +1 -0
- package/dist/cjs/components/progress.js +2 -0
- package/dist/cjs/components/progress.js.map +7 -0
- package/dist/cjs/components/progress.props.d.ts +35 -0
- package/dist/cjs/components/progress.props.d.ts.map +1 -0
- package/dist/cjs/components/progress.props.js +2 -0
- package/dist/cjs/components/progress.props.js.map +7 -0
- package/dist/cjs/components/quote.d.ts +11 -0
- package/dist/cjs/components/quote.d.ts.map +1 -0
- package/dist/cjs/components/quote.js +2 -0
- package/dist/cjs/components/quote.js.map +7 -0
- package/dist/cjs/components/quote.props.d.ts +17 -0
- package/dist/cjs/components/quote.props.d.ts.map +1 -0
- package/dist/cjs/components/quote.props.js +2 -0
- package/dist/cjs/components/quote.props.js.map +7 -0
- package/dist/cjs/components/radio-cards.d.ts +16 -0
- package/dist/cjs/components/radio-cards.d.ts.map +1 -0
- package/dist/cjs/components/radio-cards.js +2 -0
- package/dist/cjs/components/radio-cards.js.map +7 -0
- package/dist/cjs/components/radio-cards.props.d.ts +52 -0
- package/dist/cjs/components/radio-cards.props.d.ts.map +1 -0
- package/dist/cjs/components/radio-cards.props.js +2 -0
- package/dist/cjs/components/radio-cards.props.js.map +7 -0
- package/dist/cjs/components/radio-group.d.ts +22 -0
- package/dist/cjs/components/radio-group.d.ts.map +1 -0
- package/dist/cjs/components/radio-group.js +2 -0
- package/dist/cjs/components/radio-group.js.map +7 -0
- package/dist/cjs/components/radio-group.props.d.ts +30 -0
- package/dist/cjs/components/radio-group.props.d.ts.map +1 -0
- package/dist/cjs/components/radio-group.props.js +2 -0
- package/dist/cjs/components/radio-group.props.js.map +7 -0
- package/dist/cjs/components/radio.d.ts +17 -0
- package/dist/cjs/components/radio.d.ts.map +1 -0
- package/dist/cjs/components/radio.js +2 -0
- package/dist/cjs/components/radio.js.map +7 -0
- package/dist/cjs/components/radio.props.d.ts +2 -0
- package/dist/cjs/components/radio.props.d.ts.map +1 -0
- package/dist/cjs/components/radio.props.js +2 -0
- package/dist/cjs/components/radio.props.js.map +7 -0
- package/dist/cjs/components/reset.d.ts +9 -0
- package/dist/cjs/components/reset.d.ts.map +1 -0
- package/dist/cjs/components/reset.js +2 -0
- package/dist/cjs/components/reset.js.map +7 -0
- package/dist/cjs/components/schemas/base-button.schema.d.ts +319 -0
- package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/base-button.schema.js +2 -0
- package/dist/cjs/components/schemas/base-button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/button.schema.d.ts +686 -0
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/button.schema.js +2 -0
- package/dist/cjs/components/schemas/button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/icon-button.schema.d.ts +329 -0
- package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/icon-button.schema.js +2 -0
- package/dist/cjs/components/schemas/icon-button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/index.d.ts +54 -0
- package/dist/cjs/components/schemas/index.d.ts.map +1 -0
- package/dist/cjs/components/schemas/index.js +2 -0
- package/dist/cjs/components/schemas/index.js.map +7 -0
- package/dist/cjs/components/schemas/shell.schema.d.ts +1025 -0
- package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/shell.schema.js +2 -0
- package/dist/cjs/components/schemas/shell.schema.js.map +7 -0
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts +1172 -0
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/toggle-button.schema.js +2 -0
- package/dist/cjs/components/schemas/toggle-button.schema.js.map +7 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +563 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js +2 -0
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +7 -0
- package/dist/cjs/components/scroll-area.d.ts +13 -0
- package/dist/cjs/components/scroll-area.d.ts.map +1 -0
- package/dist/cjs/components/scroll-area.js +2 -0
- package/dist/cjs/components/scroll-area.js.map +7 -0
- package/dist/cjs/components/scroll-area.props.d.ts +24 -0
- package/dist/cjs/components/scroll-area.props.d.ts.map +1 -0
- package/dist/cjs/components/scroll-area.props.js +2 -0
- package/dist/cjs/components/scroll-area.props.js.map +7 -0
- package/dist/cjs/components/section.d.ts +11 -0
- package/dist/cjs/components/section.d.ts.map +1 -0
- package/dist/cjs/components/section.js +2 -0
- package/dist/cjs/components/section.js.map +7 -0
- package/dist/cjs/components/section.props.d.ts +52 -0
- package/dist/cjs/components/section.props.d.ts.map +1 -0
- package/dist/cjs/components/section.props.js +2 -0
- package/dist/cjs/components/section.props.js.map +7 -0
- package/dist/cjs/components/segmented-control.d.ts +24 -0
- package/dist/cjs/components/segmented-control.d.ts.map +1 -0
- package/dist/cjs/components/segmented-control.js +2 -0
- package/dist/cjs/components/segmented-control.js.map +7 -0
- package/dist/cjs/components/segmented-control.props.d.ts +39 -0
- package/dist/cjs/components/segmented-control.props.d.ts.map +1 -0
- package/dist/cjs/components/segmented-control.props.js +2 -0
- package/dist/cjs/components/segmented-control.props.js.map +7 -0
- package/dist/cjs/components/select.d.ts +35 -0
- package/dist/cjs/components/select.d.ts.map +1 -0
- package/dist/cjs/components/select.js +2 -0
- package/dist/cjs/components/select.js.map +7 -0
- package/dist/cjs/components/select.props.d.ts +67 -0
- package/dist/cjs/components/select.props.d.ts.map +1 -0
- package/dist/cjs/components/select.props.js +2 -0
- package/dist/cjs/components/select.props.js.map +7 -0
- package/dist/cjs/components/separator.d.ts +12 -0
- package/dist/cjs/components/separator.d.ts.map +1 -0
- package/dist/cjs/components/separator.js +2 -0
- package/dist/cjs/components/separator.js.map +7 -0
- package/dist/cjs/components/separator.props.d.ts +32 -0
- package/dist/cjs/components/separator.props.d.ts.map +1 -0
- package/dist/cjs/components/separator.props.js +2 -0
- package/dist/cjs/components/separator.props.js.map +7 -0
- package/dist/cjs/components/sheet.d.ts +82 -0
- package/dist/cjs/components/sheet.d.ts.map +1 -0
- package/dist/cjs/components/sheet.js +2 -0
- package/dist/cjs/components/sheet.js.map +7 -0
- package/dist/cjs/components/shell.context.d.ts +143 -0
- package/dist/cjs/components/shell.context.d.ts.map +1 -0
- package/dist/cjs/components/shell.context.js +2 -0
- package/dist/cjs/components/shell.context.js.map +7 -0
- package/dist/cjs/components/shell.d.ts +107 -0
- package/dist/cjs/components/shell.d.ts.map +1 -0
- package/dist/cjs/components/shell.hooks.d.ts +26 -0
- package/dist/cjs/components/shell.hooks.d.ts.map +1 -0
- package/dist/cjs/components/shell.hooks.js +2 -0
- package/dist/cjs/components/shell.hooks.js.map +7 -0
- package/dist/cjs/components/shell.js +2 -0
- package/dist/cjs/components/shell.js.map +7 -0
- package/dist/cjs/components/shell.types.d.ts +53 -0
- package/dist/cjs/components/shell.types.d.ts.map +1 -0
- package/dist/cjs/components/shell.types.js +2 -0
- package/dist/cjs/components/shell.types.js.map +7 -0
- package/dist/cjs/components/sidebar.d.ts +146 -0
- package/dist/cjs/components/sidebar.d.ts.map +1 -0
- package/dist/cjs/components/sidebar.js +2 -0
- package/dist/cjs/components/sidebar.js.map +7 -0
- package/dist/cjs/components/sidebar.props.d.ts +66 -0
- package/dist/cjs/components/sidebar.props.d.ts.map +1 -0
- package/dist/cjs/components/sidebar.props.js +2 -0
- package/dist/cjs/components/sidebar.props.js.map +7 -0
- package/dist/cjs/components/skeleton.d.ts +12 -0
- package/dist/cjs/components/skeleton.d.ts.map +1 -0
- package/dist/cjs/components/skeleton.js +2 -0
- package/dist/cjs/components/skeleton.js.map +7 -0
- package/dist/cjs/components/skeleton.props.d.ts +44 -0
- package/dist/cjs/components/skeleton.props.d.ts.map +1 -0
- package/dist/cjs/components/skeleton.props.js +2 -0
- package/dist/cjs/components/skeleton.props.js.map +7 -0
- package/dist/cjs/components/slider.d.ts +18 -0
- package/dist/cjs/components/slider.d.ts.map +1 -0
- package/dist/cjs/components/slider.js +2 -0
- package/dist/cjs/components/slider.js.map +7 -0
- package/dist/cjs/components/slider.props.d.ts +40 -0
- package/dist/cjs/components/slider.props.d.ts.map +1 -0
- package/dist/cjs/components/slider.props.js +2 -0
- package/dist/cjs/components/slider.props.js.map +7 -0
- package/dist/cjs/components/slot.d.ts +5 -0
- package/dist/cjs/components/slot.d.ts.map +1 -0
- package/dist/cjs/components/slot.js +2 -0
- package/dist/cjs/components/slot.js.map +7 -0
- package/dist/cjs/components/spinner.d.ts +12 -0
- package/dist/cjs/components/spinner.d.ts.map +1 -0
- package/dist/cjs/components/spinner.js +2 -0
- package/dist/cjs/components/spinner.js.map +7 -0
- package/dist/cjs/components/spinner.props.d.ts +15 -0
- package/dist/cjs/components/spinner.props.d.ts.map +1 -0
- package/dist/cjs/components/spinner.props.js +2 -0
- package/dist/cjs/components/spinner.props.js.map +7 -0
- package/dist/cjs/components/strong.d.ts +11 -0
- package/dist/cjs/components/strong.d.ts.map +1 -0
- package/dist/cjs/components/strong.js +2 -0
- package/dist/cjs/components/strong.js.map +7 -0
- package/dist/cjs/components/strong.props.d.ts +17 -0
- package/dist/cjs/components/strong.props.d.ts.map +1 -0
- package/dist/cjs/components/strong.props.js +2 -0
- package/dist/cjs/components/strong.props.js.map +7 -0
- package/dist/cjs/components/switch.d.ts +13 -0
- package/dist/cjs/components/switch.d.ts.map +1 -0
- package/dist/cjs/components/switch.js +2 -0
- package/dist/cjs/components/switch.js.map +7 -0
- package/dist/cjs/components/switch.props.d.ts +45 -0
- package/dist/cjs/components/switch.props.d.ts.map +1 -0
- package/dist/cjs/components/switch.props.js +2 -0
- package/dist/cjs/components/switch.props.js.map +7 -0
- package/dist/cjs/components/tab-nav.d.ts +19 -0
- package/dist/cjs/components/tab-nav.d.ts.map +1 -0
- package/dist/cjs/components/tab-nav.js +2 -0
- package/dist/cjs/components/tab-nav.js.map +7 -0
- package/dist/cjs/components/tab-nav.props.d.ts +12 -0
- package/dist/cjs/components/tab-nav.props.d.ts.map +1 -0
- package/dist/cjs/components/tab-nav.props.js +2 -0
- package/dist/cjs/components/tab-nav.props.js.map +7 -0
- package/dist/cjs/components/table.d.ts +32 -0
- package/dist/cjs/components/table.d.ts.map +1 -0
- package/dist/cjs/components/table.js +2 -0
- package/dist/cjs/components/table.js.map +7 -0
- package/dist/cjs/components/table.props.d.ts +110 -0
- package/dist/cjs/components/table.props.d.ts.map +1 -0
- package/dist/cjs/components/table.props.js +2 -0
- package/dist/cjs/components/table.props.js.map +7 -0
- package/dist/cjs/components/tabs.d.ts +25 -0
- package/dist/cjs/components/tabs.d.ts.map +1 -0
- package/dist/cjs/components/tabs.js +2 -0
- package/dist/cjs/components/tabs.js.map +7 -0
- package/dist/cjs/components/tabs.props.d.ts +13 -0
- package/dist/cjs/components/tabs.props.d.ts.map +1 -0
- package/dist/cjs/components/tabs.props.js +2 -0
- package/dist/cjs/components/tabs.props.js.map +7 -0
- package/dist/cjs/components/text-area.d.ts +15 -0
- package/dist/cjs/components/text-area.d.ts.map +1 -0
- package/dist/cjs/components/text-area.js +2 -0
- package/dist/cjs/components/text-area.js.map +7 -0
- package/dist/cjs/components/text-area.props.d.ts +67 -0
- package/dist/cjs/components/text-area.props.d.ts.map +1 -0
- package/dist/cjs/components/text-area.props.js +2 -0
- package/dist/cjs/components/text-area.props.js.map +7 -0
- package/dist/cjs/components/text-field.d.ts +22 -0
- package/dist/cjs/components/text-field.d.ts.map +1 -0
- package/dist/cjs/components/text-field.js +5 -0
- package/dist/cjs/components/text-field.js.map +7 -0
- package/dist/cjs/components/text-field.props.d.ts +126 -0
- package/dist/cjs/components/text-field.props.d.ts.map +1 -0
- package/dist/cjs/components/text-field.props.js +2 -0
- package/dist/cjs/components/text-field.props.js.map +7 -0
- package/dist/cjs/components/text.d.ts +25 -0
- package/dist/cjs/components/text.d.ts.map +1 -0
- package/dist/cjs/components/text.js +2 -0
- package/dist/cjs/components/text.js.map +7 -0
- package/dist/cjs/components/text.props.d.ts +61 -0
- package/dist/cjs/components/text.props.d.ts.map +1 -0
- package/dist/cjs/components/text.props.js +2 -0
- package/dist/cjs/components/text.props.js.map +7 -0
- package/dist/cjs/components/theme-panel.d.ts +25 -0
- package/dist/cjs/components/theme-panel.d.ts.map +1 -0
- package/dist/cjs/components/theme-panel.js +13 -0
- package/dist/cjs/components/theme-panel.js.map +7 -0
- package/dist/cjs/components/theme.d.ts +43 -0
- package/dist/cjs/components/theme.d.ts.map +1 -0
- package/dist/cjs/components/theme.js +2 -0
- package/dist/cjs/components/theme.js.map +7 -0
- package/dist/cjs/components/theme.props.d.ts +112 -0
- package/dist/cjs/components/theme.props.d.ts.map +1 -0
- package/dist/cjs/components/theme.props.js +2 -0
- package/dist/cjs/components/theme.props.js.map +7 -0
- package/dist/cjs/components/toggle-button.d.ts +63 -0
- package/dist/cjs/components/toggle-button.d.ts.map +1 -0
- package/dist/cjs/components/toggle-button.js +10 -0
- package/dist/cjs/components/toggle-button.js.map +7 -0
- package/dist/cjs/components/toggle-icon-button.d.ts +107 -0
- package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -0
- package/dist/cjs/components/toggle-icon-button.js +13 -0
- package/dist/cjs/components/toggle-icon-button.js.map +7 -0
- package/dist/cjs/components/toolbar.d.ts +40 -0
- package/dist/cjs/components/toolbar.d.ts.map +1 -0
- package/dist/cjs/components/toolbar.js +2 -0
- package/dist/cjs/components/toolbar.js.map +7 -0
- package/dist/cjs/components/tooltip.d.ts +14 -0
- package/dist/cjs/components/tooltip.d.ts.map +1 -0
- package/dist/cjs/components/tooltip.js +2 -0
- package/dist/cjs/components/tooltip.js.map +7 -0
- package/dist/cjs/components/tooltip.props.d.ts +31 -0
- package/dist/cjs/components/tooltip.props.d.ts.map +1 -0
- package/dist/cjs/components/tooltip.props.js +2 -0
- package/dist/cjs/components/tooltip.props.js.map +7 -0
- package/dist/cjs/components/user-card.d.ts +12 -0
- package/dist/cjs/components/user-card.d.ts.map +1 -0
- package/dist/cjs/components/user-card.js +2 -0
- package/dist/cjs/components/user-card.js.map +7 -0
- package/dist/cjs/components/user-card.props.d.ts +63 -0
- package/dist/cjs/components/user-card.props.d.ts.map +1 -0
- package/dist/cjs/components/user-card.props.js +2 -0
- package/dist/cjs/components/user-card.props.js.map +7 -0
- package/dist/cjs/components/virtual-menu.d.ts +116 -0
- package/dist/cjs/components/virtual-menu.d.ts.map +1 -0
- package/dist/cjs/components/virtual-menu.js +2 -0
- package/dist/cjs/components/virtual-menu.js.map +7 -0
- package/dist/cjs/components/visually-hidden.d.ts +5 -0
- package/dist/cjs/components/visually-hidden.d.ts.map +1 -0
- package/dist/cjs/components/visually-hidden.js +2 -0
- package/dist/cjs/components/visually-hidden.js.map +7 -0
- package/dist/cjs/helpers/component-props.d.ts +8 -0
- package/dist/cjs/helpers/component-props.d.ts.map +1 -0
- package/dist/cjs/helpers/component-props.js +2 -0
- package/dist/cjs/helpers/component-props.js.map +7 -0
- package/dist/cjs/helpers/extract-margin-props.d.ts +12 -0
- package/dist/cjs/helpers/extract-margin-props.d.ts.map +1 -0
- package/dist/cjs/helpers/extract-margin-props.js +2 -0
- package/dist/cjs/helpers/extract-margin-props.js.map +7 -0
- package/dist/cjs/helpers/extract-props.d.ts +23 -0
- package/dist/cjs/helpers/extract-props.d.ts.map +1 -0
- package/dist/cjs/helpers/extract-props.js +2 -0
- package/dist/cjs/helpers/extract-props.js.map +7 -0
- package/dist/cjs/helpers/font-config.d.ts +106 -0
- package/dist/cjs/helpers/font-config.d.ts.map +1 -0
- package/dist/cjs/helpers/font-config.js +3 -0
- package/dist/cjs/helpers/font-config.js.map +7 -0
- package/dist/cjs/helpers/get-margin-styles.d.ts +3 -0
- package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -0
- package/dist/cjs/helpers/get-margin-styles.js +2 -0
- package/dist/cjs/helpers/get-margin-styles.js.map +7 -0
- package/dist/cjs/helpers/get-matching-gray-color.d.ts +5 -0
- package/dist/cjs/helpers/get-matching-gray-color.d.ts.map +1 -0
- package/dist/cjs/helpers/get-matching-gray-color.js +2 -0
- package/dist/cjs/helpers/get-matching-gray-color.js.map +7 -0
- package/dist/cjs/helpers/get-responsive-styles.d.ts +26 -0
- package/dist/cjs/helpers/get-responsive-styles.d.ts.map +1 -0
- package/dist/cjs/helpers/get-responsive-styles.js +2 -0
- package/dist/cjs/helpers/get-responsive-styles.js.map +7 -0
- package/dist/cjs/helpers/get-subtree.d.ts +13 -0
- package/dist/cjs/helpers/get-subtree.d.ts.map +1 -0
- package/dist/cjs/helpers/get-subtree.js +2 -0
- package/dist/cjs/helpers/get-subtree.js.map +7 -0
- package/dist/cjs/helpers/has-own-property.d.ts +4 -0
- package/dist/cjs/helpers/has-own-property.d.ts.map +1 -0
- package/dist/cjs/helpers/has-own-property.js +2 -0
- package/dist/cjs/helpers/has-own-property.js.map +7 -0
- package/dist/cjs/helpers/index.d.ts +16 -0
- package/dist/cjs/helpers/index.d.ts.map +1 -0
- package/dist/cjs/helpers/index.js +3 -0
- package/dist/cjs/helpers/index.js.map +7 -0
- package/dist/cjs/helpers/inert.d.ts +3 -0
- package/dist/cjs/helpers/inert.d.ts.map +1 -0
- package/dist/cjs/helpers/inert.js +2 -0
- package/dist/cjs/helpers/inert.js.map +7 -0
- package/dist/cjs/helpers/input-attributes.d.ts +7 -0
- package/dist/cjs/helpers/input-attributes.d.ts.map +1 -0
- package/dist/cjs/helpers/input-attributes.js +2 -0
- package/dist/cjs/helpers/input-attributes.js.map +7 -0
- package/dist/cjs/helpers/is-responsive-object.d.ts +3 -0
- package/dist/cjs/helpers/is-responsive-object.d.ts.map +1 -0
- package/dist/cjs/helpers/is-responsive-object.js +2 -0
- package/dist/cjs/helpers/is-responsive-object.js.map +7 -0
- package/dist/cjs/helpers/map-prop-values.d.ts +10 -0
- package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -0
- package/dist/cjs/helpers/map-prop-values.js +2 -0
- package/dist/cjs/helpers/map-prop-values.js.map +7 -0
- package/dist/cjs/helpers/merge-styles.d.ts +4 -0
- package/dist/cjs/helpers/merge-styles.d.ts.map +1 -0
- package/dist/cjs/helpers/merge-styles.js +2 -0
- package/dist/cjs/helpers/merge-styles.js.map +7 -0
- package/dist/cjs/helpers/normalize-to-px.d.ts +10 -0
- package/dist/cjs/helpers/normalize-to-px.d.ts.map +1 -0
- package/dist/cjs/helpers/normalize-to-px.js +2 -0
- package/dist/cjs/helpers/normalize-to-px.js.map +7 -0
- package/dist/cjs/helpers/require-react-element.d.ts +4 -0
- package/dist/cjs/helpers/require-react-element.d.ts.map +1 -0
- package/dist/cjs/helpers/require-react-element.js +2 -0
- package/dist/cjs/helpers/require-react-element.js.map +7 -0
- package/dist/cjs/hooks/index.d.ts +5 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -0
- package/dist/cjs/hooks/index.js +10 -0
- package/dist/cjs/hooks/index.js.map +7 -0
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts +9 -0
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -0
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +2 -0
- package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +7 -0
- package/dist/cjs/hooks/use-breakpoint.d.ts +11 -0
- package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -0
- package/dist/cjs/hooks/use-breakpoint.js +2 -0
- package/dist/cjs/hooks/use-breakpoint.js.map +7 -0
- package/dist/cjs/hooks/use-live-announcer.d.ts +6 -0
- package/dist/cjs/hooks/use-live-announcer.d.ts.map +1 -0
- package/dist/cjs/hooks/use-live-announcer.js +10 -0
- package/dist/cjs/hooks/use-live-announcer.js.map +7 -0
- package/dist/cjs/hooks/use-toggle-state.d.ts +37 -0
- package/dist/cjs/hooks/use-toggle-state.d.ts.map +1 -0
- package/dist/cjs/hooks/use-toggle-state.js +10 -0
- package/dist/cjs/hooks/use-toggle-state.js.map +7 -0
- package/dist/cjs/hooks/use-tooltip-wrapper.d.ts +29 -0
- package/dist/cjs/hooks/use-tooltip-wrapper.d.ts.map +1 -0
- package/dist/cjs/hooks/use-tooltip-wrapper.js +2 -0
- package/dist/cjs/hooks/use-tooltip-wrapper.js.map +7 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/props/as-child.prop.d.ts +11 -0
- package/dist/cjs/props/as-child.prop.d.ts.map +1 -0
- package/dist/cjs/props/as-child.prop.js +2 -0
- package/dist/cjs/props/as-child.prop.js.map +7 -0
- package/dist/cjs/props/color.prop.d.ts +18 -0
- package/dist/cjs/props/color.prop.d.ts.map +1 -0
- package/dist/cjs/props/color.prop.js +2 -0
- package/dist/cjs/props/color.prop.js.map +7 -0
- package/dist/cjs/props/font-family.prop.d.ts +9 -0
- package/dist/cjs/props/font-family.prop.d.ts.map +1 -0
- package/dist/cjs/props/font-family.prop.js +2 -0
- package/dist/cjs/props/font-family.prop.js.map +7 -0
- package/dist/cjs/props/gap.props.d.ts +61 -0
- package/dist/cjs/props/gap.props.d.ts.map +1 -0
- package/dist/cjs/props/gap.props.js +2 -0
- package/dist/cjs/props/gap.props.js.map +7 -0
- package/dist/cjs/props/height.props.d.ts +58 -0
- package/dist/cjs/props/height.props.d.ts.map +1 -0
- package/dist/cjs/props/height.props.js +2 -0
- package/dist/cjs/props/height.props.js.map +7 -0
- package/dist/cjs/props/high-contrast.prop.d.ts +9 -0
- package/dist/cjs/props/high-contrast.prop.d.ts.map +1 -0
- package/dist/cjs/props/high-contrast.prop.js +2 -0
- package/dist/cjs/props/high-contrast.prop.js.map +7 -0
- package/dist/cjs/props/index.d.ts +69 -0
- package/dist/cjs/props/index.d.ts.map +1 -0
- package/dist/cjs/props/index.js +2 -0
- package/dist/cjs/props/index.js.map +7 -0
- package/dist/cjs/props/layout.props.d.ts +472 -0
- package/dist/cjs/props/layout.props.d.ts.map +1 -0
- package/dist/cjs/props/layout.props.js +2 -0
- package/dist/cjs/props/layout.props.js.map +7 -0
- package/dist/cjs/props/leading-trim.prop.d.ts +10 -0
- package/dist/cjs/props/leading-trim.prop.d.ts.map +1 -0
- package/dist/cjs/props/leading-trim.prop.js +2 -0
- package/dist/cjs/props/leading-trim.prop.js.map +7 -0
- package/dist/cjs/props/margin.props.d.ts +142 -0
- package/dist/cjs/props/margin.props.d.ts.map +1 -0
- package/dist/cjs/props/margin.props.js +2 -0
- package/dist/cjs/props/margin.props.js.map +7 -0
- package/dist/cjs/props/padding.props.d.ts +142 -0
- package/dist/cjs/props/padding.props.d.ts.map +1 -0
- package/dist/cjs/props/padding.props.js +2 -0
- package/dist/cjs/props/padding.props.js.map +7 -0
- package/dist/cjs/props/prop-def.d.ts +60 -0
- package/dist/cjs/props/prop-def.d.ts.map +1 -0
- package/dist/cjs/props/prop-def.js +2 -0
- package/dist/cjs/props/prop-def.js.map +7 -0
- package/dist/cjs/props/radius.prop.d.ts +10 -0
- package/dist/cjs/props/radius.prop.d.ts.map +1 -0
- package/dist/cjs/props/radius.prop.js +2 -0
- package/dist/cjs/props/radius.prop.js.map +7 -0
- package/dist/cjs/props/shadow.props.d.ts +24 -0
- package/dist/cjs/props/shadow.props.d.ts.map +1 -0
- package/dist/cjs/props/shadow.props.js +2 -0
- package/dist/cjs/props/shadow.props.js.map +7 -0
- package/dist/cjs/props/text-align.prop.d.ts +10 -0
- package/dist/cjs/props/text-align.prop.d.ts.map +1 -0
- package/dist/cjs/props/text-align.prop.js +2 -0
- package/dist/cjs/props/text-align.prop.js.map +7 -0
- package/dist/cjs/props/text-wrap.prop.d.ts +10 -0
- package/dist/cjs/props/text-wrap.prop.d.ts.map +1 -0
- package/dist/cjs/props/text-wrap.prop.js +2 -0
- package/dist/cjs/props/text-wrap.prop.js.map +7 -0
- package/dist/cjs/props/truncate.prop.d.ts +8 -0
- package/dist/cjs/props/truncate.prop.d.ts.map +1 -0
- package/dist/cjs/props/truncate.prop.js +2 -0
- package/dist/cjs/props/truncate.prop.js.map +7 -0
- package/dist/cjs/props/weight.prop.d.ts +10 -0
- package/dist/cjs/props/weight.prop.d.ts.map +1 -0
- package/dist/cjs/props/weight.prop.js +2 -0
- package/dist/cjs/props/weight.prop.js.map +7 -0
- package/dist/cjs/props/width.props.d.ts +58 -0
- package/dist/cjs/props/width.props.d.ts.map +1 -0
- package/dist/cjs/props/width.props.js +2 -0
- package/dist/cjs/props/width.props.js.map +7 -0
- package/dist/esm/chunk-25U7DENY.js +2 -0
- package/dist/esm/chunk-25U7DENY.js.map +7 -0
- package/dist/esm/chunk-2AEELIG6.js +2 -0
- package/dist/esm/chunk-2AEELIG6.js.map +7 -0
- package/dist/esm/chunk-2LYX5S7H.js +2 -0
- package/dist/esm/chunk-2LYX5S7H.js.map +7 -0
- package/dist/esm/chunk-2N2AQNJH.js +2 -0
- package/dist/esm/chunk-2N2AQNJH.js.map +7 -0
- package/dist/esm/chunk-2SS3FA3N.js +2 -0
- package/dist/esm/chunk-2SS3FA3N.js.map +7 -0
- package/dist/esm/chunk-3DC63EZP.js +2 -0
- package/dist/esm/chunk-3DC63EZP.js.map +7 -0
- package/dist/esm/chunk-3F6I7YOR.js +2 -0
- package/dist/esm/chunk-3F6I7YOR.js.map +7 -0
- package/dist/esm/chunk-3KB2XWBE.js +2 -0
- package/dist/esm/chunk-3KB2XWBE.js.map +7 -0
- package/dist/esm/chunk-3XT5P2HO.js +2 -0
- package/dist/esm/chunk-3XT5P2HO.js.map +7 -0
- package/dist/esm/chunk-42HFGCHX.js +2 -0
- package/dist/esm/chunk-42HFGCHX.js.map +7 -0
- package/dist/esm/chunk-4532RT2B.js +2 -0
- package/dist/esm/chunk-4532RT2B.js.map +7 -0
- package/dist/esm/chunk-4JQZUQY7.js +2 -0
- package/dist/esm/chunk-4JQZUQY7.js.map +7 -0
- package/dist/esm/chunk-4N5JU7XQ.js +2 -0
- package/dist/esm/chunk-4N5JU7XQ.js.map +7 -0
- package/dist/esm/chunk-4OBMRJHC.js +2 -0
- package/dist/esm/chunk-4OBMRJHC.js.map +7 -0
- package/dist/esm/chunk-4TCXI3L3.js +2 -0
- package/dist/esm/chunk-4TCXI3L3.js.map +7 -0
- package/dist/esm/chunk-4Z33XHOK.js +2 -0
- package/dist/esm/chunk-4Z33XHOK.js.map +7 -0
- package/dist/esm/chunk-5GXFBLBJ.js +2 -0
- package/dist/esm/chunk-5GXFBLBJ.js.map +7 -0
- package/dist/esm/chunk-5KICSAT7.js +2 -0
- package/dist/esm/chunk-5KICSAT7.js.map +7 -0
- package/dist/esm/chunk-5LXFJMFB.js +2 -0
- package/dist/esm/chunk-5LXFJMFB.js.map +7 -0
- package/dist/esm/chunk-5T6K7VPP.js +2 -0
- package/dist/esm/chunk-5T6K7VPP.js.map +7 -0
- package/dist/esm/chunk-5U2Q23K3.js +2 -0
- package/dist/esm/chunk-5U2Q23K3.js.map +7 -0
- package/dist/esm/chunk-66ZLZAAJ.js +2 -0
- package/dist/esm/chunk-66ZLZAAJ.js.map +7 -0
- package/dist/esm/chunk-6DWDNKLS.js +1 -0
- package/dist/esm/chunk-6DWDNKLS.js.map +7 -0
- package/dist/esm/chunk-6ELPYR73.js +2 -0
- package/dist/esm/chunk-6ELPYR73.js.map +7 -0
- package/dist/esm/chunk-6FAICIYS.js +2 -0
- package/dist/esm/chunk-6FAICIYS.js.map +7 -0
- package/dist/esm/chunk-6HEAF5IT.js +2 -0
- package/dist/esm/chunk-6HEAF5IT.js.map +7 -0
- package/dist/esm/chunk-6VGPTAHM.js +2 -0
- package/dist/esm/chunk-6VGPTAHM.js.map +7 -0
- package/dist/esm/chunk-72AHPGPN.js +2 -0
- package/dist/esm/chunk-72AHPGPN.js.map +7 -0
- package/dist/esm/chunk-7CBAHIVG.js +2 -0
- package/dist/esm/chunk-7CBAHIVG.js.map +7 -0
- package/dist/esm/chunk-7CXVHFMQ.js +2 -0
- package/dist/esm/chunk-7CXVHFMQ.js.map +7 -0
- package/dist/esm/chunk-7MURQ6CR.js +2 -0
- package/dist/esm/chunk-7MURQ6CR.js.map +7 -0
- package/dist/esm/chunk-A24PYRVV.js +2 -0
- package/dist/esm/chunk-A24PYRVV.js.map +7 -0
- package/dist/esm/chunk-A3NH376A.js +2 -0
- package/dist/esm/chunk-A3NH376A.js.map +7 -0
- package/dist/esm/chunk-ADYTQCZX.js +2 -0
- package/dist/esm/chunk-ADYTQCZX.js.map +7 -0
- package/dist/esm/chunk-AGAQC4HH.js +2 -0
- package/dist/esm/chunk-AGAQC4HH.js.map +7 -0
- package/dist/esm/chunk-APRBRAOT.js +2 -0
- package/dist/esm/chunk-APRBRAOT.js.map +7 -0
- package/dist/esm/chunk-ARIV4AT5.js +2 -0
- package/dist/esm/chunk-ARIV4AT5.js.map +7 -0
- package/dist/esm/chunk-AUV6B4AH.js +2 -0
- package/dist/esm/chunk-AUV6B4AH.js.map +7 -0
- package/dist/esm/chunk-AXUDFYLY.js +2 -0
- package/dist/esm/chunk-AXUDFYLY.js.map +7 -0
- package/dist/esm/chunk-BALS3AVM.js +2 -0
- package/dist/esm/chunk-BALS3AVM.js.map +7 -0
- package/dist/esm/chunk-BI7W34WW.js +2 -0
- package/dist/esm/chunk-BI7W34WW.js.map +7 -0
- package/dist/esm/chunk-BJTJUIYJ.js +2 -0
- package/dist/esm/chunk-BJTJUIYJ.js.map +7 -0
- package/dist/esm/chunk-BPVVFHYD.js +2 -0
- package/dist/esm/chunk-BPVVFHYD.js.map +7 -0
- package/dist/esm/chunk-CBR3VIRS.js +2 -0
- package/dist/esm/chunk-CBR3VIRS.js.map +7 -0
- package/dist/esm/chunk-CECQNGUL.js +2 -0
- package/dist/esm/chunk-CECQNGUL.js.map +7 -0
- package/dist/esm/chunk-D2AZAGGP.js +2 -0
- package/dist/esm/chunk-D2AZAGGP.js.map +7 -0
- package/dist/esm/chunk-DJBPM5QK.js +2 -0
- package/dist/esm/chunk-DJBPM5QK.js.map +7 -0
- package/dist/esm/chunk-DK5MHD6I.js +2 -0
- package/dist/esm/chunk-DK5MHD6I.js.map +7 -0
- package/dist/esm/chunk-DNI4QRXQ.js +2 -0
- package/dist/esm/chunk-DNI4QRXQ.js.map +7 -0
- package/dist/esm/chunk-DUHJVT64.js +2 -0
- package/dist/esm/chunk-DUHJVT64.js.map +7 -0
- package/dist/esm/chunk-DXI5P5O4.js +2 -0
- package/dist/esm/chunk-DXI5P5O4.js.map +7 -0
- package/dist/esm/chunk-DZ4H2KTP.js +2 -0
- package/dist/esm/chunk-DZ4H2KTP.js.map +7 -0
- package/dist/esm/chunk-E23RKOQJ.js +2 -0
- package/dist/esm/chunk-E23RKOQJ.js.map +7 -0
- package/dist/esm/chunk-E2Z5IA2P.js +2 -0
- package/dist/esm/chunk-E2Z5IA2P.js.map +7 -0
- package/dist/esm/chunk-E6IWYD3U.js +2 -0
- package/dist/esm/chunk-E6IWYD3U.js.map +7 -0
- package/dist/esm/chunk-EE54S7YV.js +10 -0
- package/dist/esm/chunk-EE54S7YV.js.map +7 -0
- package/dist/esm/chunk-EJWAAFCI.js +10 -0
- package/dist/esm/chunk-EJWAAFCI.js.map +7 -0
- package/dist/esm/chunk-EL7YGOTY.js +1 -0
- package/dist/esm/chunk-EL7YGOTY.js.map +7 -0
- package/dist/esm/chunk-ERGJN7FJ.js +2 -0
- package/dist/esm/chunk-ERGJN7FJ.js.map +7 -0
- package/dist/esm/chunk-ERNM3KVF.js +2 -0
- package/dist/esm/chunk-ERNM3KVF.js.map +7 -0
- package/dist/esm/chunk-ES7MK2MM.js +2 -0
- package/dist/esm/chunk-ES7MK2MM.js.map +7 -0
- package/dist/esm/chunk-F22ZRNWL.js +2 -0
- package/dist/esm/chunk-F22ZRNWL.js.map +7 -0
- package/dist/esm/chunk-F7IUK2I2.js +2 -0
- package/dist/esm/chunk-F7IUK2I2.js.map +7 -0
- package/dist/esm/chunk-FC2DBBJ3.js +2 -0
- package/dist/esm/chunk-FC2DBBJ3.js.map +7 -0
- package/dist/esm/chunk-FD2TR343.js +2 -0
- package/dist/esm/chunk-FD2TR343.js.map +7 -0
- package/dist/esm/chunk-FGORMEAO.js +2 -0
- package/dist/esm/chunk-FGORMEAO.js.map +7 -0
- package/dist/esm/chunk-FHEHX7CE.js +2 -0
- package/dist/esm/chunk-FHEHX7CE.js.map +7 -0
- package/dist/esm/chunk-FLBLS7M4.js +2 -0
- package/dist/esm/chunk-FLBLS7M4.js.map +7 -0
- package/dist/esm/chunk-FVCWNSRU.js +2 -0
- package/dist/esm/chunk-FVCWNSRU.js.map +7 -0
- package/dist/esm/chunk-FWB47YCH.js +2 -0
- package/dist/esm/chunk-FWB47YCH.js.map +7 -0
- package/dist/esm/chunk-G2CKYO2I.js +2 -0
- package/dist/esm/chunk-G2CKYO2I.js.map +7 -0
- package/dist/esm/chunk-GCUGJXI2.js +2 -0
- package/dist/esm/chunk-GCUGJXI2.js.map +7 -0
- package/dist/esm/chunk-GFOSP3PZ.js +2 -0
- package/dist/esm/chunk-GFOSP3PZ.js.map +7 -0
- package/dist/esm/chunk-GLC4QJBF.js +5 -0
- package/dist/esm/chunk-GLC4QJBF.js.map +7 -0
- package/dist/esm/chunk-GSIE6SUD.js +2 -0
- package/dist/esm/chunk-GSIE6SUD.js.map +7 -0
- package/dist/esm/chunk-GSTOGDAJ.js +2 -0
- package/dist/esm/chunk-GSTOGDAJ.js.map +7 -0
- package/dist/esm/chunk-GWYFT3EI.js +2 -0
- package/dist/esm/chunk-GWYFT3EI.js.map +7 -0
- package/dist/esm/chunk-H2G446JG.js +2 -0
- package/dist/esm/chunk-H2G446JG.js.map +7 -0
- package/dist/esm/chunk-H4MMVAGQ.js +2 -0
- package/dist/esm/chunk-H4MMVAGQ.js.map +7 -0
- package/dist/esm/chunk-HACQF6F4.js +2 -0
- package/dist/esm/chunk-HACQF6F4.js.map +7 -0
- package/dist/esm/chunk-HAGKI7NA.js +2 -0
- package/dist/esm/chunk-HAGKI7NA.js.map +7 -0
- package/dist/esm/chunk-HOHUDTTL.js +2 -0
- package/dist/esm/chunk-HOHUDTTL.js.map +7 -0
- package/dist/esm/chunk-HQ35PM4O.js +2 -0
- package/dist/esm/chunk-HQ35PM4O.js.map +7 -0
- package/dist/esm/chunk-HUKPWYG2.js +2 -0
- package/dist/esm/chunk-HUKPWYG2.js.map +7 -0
- package/dist/esm/chunk-HVWEPVBH.js +2 -0
- package/dist/esm/chunk-HVWEPVBH.js.map +7 -0
- package/dist/esm/chunk-IBF5U4QW.js +2 -0
- package/dist/esm/chunk-IBF5U4QW.js.map +7 -0
- package/dist/esm/chunk-IDYHZIS6.js +2 -0
- package/dist/esm/chunk-IDYHZIS6.js.map +7 -0
- package/dist/esm/chunk-IGQRZCAI.js +2 -0
- package/dist/esm/chunk-IGQRZCAI.js.map +7 -0
- package/dist/esm/chunk-ILRJA7FU.js +2 -0
- package/dist/esm/chunk-ILRJA7FU.js.map +7 -0
- package/dist/esm/chunk-IPJUHVM6.js +2 -0
- package/dist/esm/chunk-IPJUHVM6.js.map +7 -0
- package/dist/esm/chunk-ITRVKLYU.js +2 -0
- package/dist/esm/chunk-ITRVKLYU.js.map +7 -0
- package/dist/esm/chunk-IX5HIHVI.js +2 -0
- package/dist/esm/chunk-IX5HIHVI.js.map +7 -0
- package/dist/esm/chunk-JAMLW534.js +2 -0
- package/dist/esm/chunk-JAMLW534.js.map +7 -0
- package/dist/esm/chunk-JCYI4NTV.js +2 -0
- package/dist/esm/chunk-JCYI4NTV.js.map +7 -0
- package/dist/esm/chunk-JQOFJNCV.js +2 -0
- package/dist/esm/chunk-JQOFJNCV.js.map +7 -0
- package/dist/esm/chunk-K3R4AH3E.js +2 -0
- package/dist/esm/chunk-K3R4AH3E.js.map +7 -0
- package/dist/esm/chunk-K53W3ELO.js +2 -0
- package/dist/esm/chunk-K53W3ELO.js.map +7 -0
- package/dist/esm/chunk-KCAFSCOV.js +2 -0
- package/dist/esm/chunk-KCAFSCOV.js.map +7 -0
- package/dist/esm/chunk-KFA53SVQ.js +2 -0
- package/dist/esm/chunk-KFA53SVQ.js.map +7 -0
- package/dist/esm/chunk-KMPBTEZH.js +2 -0
- package/dist/esm/chunk-KMPBTEZH.js.map +7 -0
- package/dist/esm/chunk-KNQBAOMV.js +2 -0
- package/dist/esm/chunk-KNQBAOMV.js.map +7 -0
- package/dist/esm/chunk-KPBG7CIL.js +2 -0
- package/dist/esm/chunk-KPBG7CIL.js.map +7 -0
- package/dist/esm/chunk-KRJTW535.js +2 -0
- package/dist/esm/chunk-KRJTW535.js.map +7 -0
- package/dist/esm/chunk-KTAFIHJY.js +2 -0
- package/dist/esm/chunk-KTAFIHJY.js.map +7 -0
- package/dist/esm/chunk-L6UXAITB.js +2 -0
- package/dist/esm/chunk-L6UXAITB.js.map +7 -0
- package/dist/esm/chunk-LN5SP46K.js +2 -0
- package/dist/esm/chunk-LN5SP46K.js.map +7 -0
- package/dist/esm/chunk-M3ZYJANH.js +2 -0
- package/dist/esm/chunk-M3ZYJANH.js.map +7 -0
- package/dist/esm/chunk-MCQAJV4K.js +2 -0
- package/dist/esm/chunk-MCQAJV4K.js.map +7 -0
- package/dist/esm/chunk-MCQCG6AS.js +2 -0
- package/dist/esm/chunk-MCQCG6AS.js.map +7 -0
- package/dist/esm/chunk-MHPPVJDB.js +2 -0
- package/dist/esm/chunk-MHPPVJDB.js.map +7 -0
- package/dist/esm/chunk-MJ47O7KH.js +2 -0
- package/dist/esm/chunk-MJ47O7KH.js.map +7 -0
- package/dist/esm/chunk-MJJ7XDIP.js +2 -0
- package/dist/esm/chunk-MJJ7XDIP.js.map +7 -0
- package/dist/esm/chunk-MQWH2IFO.js +2 -0
- package/dist/esm/chunk-MQWH2IFO.js.map +7 -0
- package/dist/esm/chunk-N2B7TWIP.js +2 -0
- package/dist/esm/chunk-N2B7TWIP.js.map +7 -0
- package/dist/esm/chunk-NIX6Z3JG.js +2 -0
- package/dist/esm/chunk-NIX6Z3JG.js.map +7 -0
- package/dist/esm/chunk-NNO7M466.js +2 -0
- package/dist/esm/chunk-NNO7M466.js.map +7 -0
- package/dist/esm/chunk-NZJGC6ZW.js +2 -0
- package/dist/esm/chunk-NZJGC6ZW.js.map +7 -0
- package/dist/esm/chunk-OA7C34MJ.js +1 -0
- package/dist/esm/chunk-OA7C34MJ.js.map +7 -0
- package/dist/esm/chunk-ODWCNOWX.js +1 -0
- package/dist/esm/chunk-ODWCNOWX.js.map +7 -0
- package/dist/esm/chunk-OGOOZLUD.js +2 -0
- package/dist/esm/chunk-OGOOZLUD.js.map +7 -0
- package/dist/esm/chunk-OHJVFZMH.js +2 -0
- package/dist/esm/chunk-OHJVFZMH.js.map +7 -0
- package/dist/esm/chunk-OKJNS7Z7.js +2 -0
- package/dist/esm/chunk-OKJNS7Z7.js.map +7 -0
- package/dist/esm/chunk-OO652UQW.js +2 -0
- package/dist/esm/chunk-OO652UQW.js.map +7 -0
- package/dist/esm/chunk-PPNWGWN3.js +2 -0
- package/dist/esm/chunk-PPNWGWN3.js.map +7 -0
- package/dist/esm/chunk-PS6NEG5A.js +2 -0
- package/dist/esm/chunk-PS6NEG5A.js.map +7 -0
- package/dist/esm/chunk-Q73Y5O5P.js +2 -0
- package/dist/esm/chunk-Q73Y5O5P.js.map +7 -0
- package/dist/esm/chunk-Q7P6BTVU.js +3 -0
- package/dist/esm/chunk-Q7P6BTVU.js.map +7 -0
- package/dist/esm/chunk-QCNUTT4R.js +2 -0
- package/dist/esm/chunk-QCNUTT4R.js.map +7 -0
- package/dist/esm/chunk-QDW5ZG5E.js +1 -0
- package/dist/esm/chunk-QDW5ZG5E.js.map +7 -0
- package/dist/esm/chunk-QLIELX4I.js +2 -0
- package/dist/esm/chunk-QLIELX4I.js.map +7 -0
- package/dist/esm/chunk-QLZ5XAW6.js +2 -0
- package/dist/esm/chunk-QLZ5XAW6.js.map +7 -0
- package/dist/esm/chunk-QM3RCK5P.js +2 -0
- package/dist/esm/chunk-QM3RCK5P.js.map +7 -0
- package/dist/esm/chunk-QOWA5LK5.js +2 -0
- package/dist/esm/chunk-QOWA5LK5.js.map +7 -0
- package/dist/esm/chunk-RDP4UQ42.js +2 -0
- package/dist/esm/chunk-RDP4UQ42.js.map +7 -0
- package/dist/esm/chunk-RJNCH62T.js +1 -0
- package/dist/esm/chunk-RJNCH62T.js.map +7 -0
- package/dist/esm/chunk-RMBS6CAO.js +2 -0
- package/dist/esm/chunk-RMBS6CAO.js.map +7 -0
- package/dist/esm/chunk-RQ2ZPMHJ.js +2 -0
- package/dist/esm/chunk-RQ2ZPMHJ.js.map +7 -0
- package/dist/esm/chunk-RZCX6IBE.js +2 -0
- package/dist/esm/chunk-RZCX6IBE.js.map +7 -0
- package/dist/esm/chunk-SESAEJ6W.js +2 -0
- package/dist/esm/chunk-SESAEJ6W.js.map +7 -0
- package/dist/esm/chunk-SGU4HUHF.js +5 -0
- package/dist/esm/chunk-SGU4HUHF.js.map +7 -0
- package/dist/esm/chunk-SMGDH54W.js +2 -0
- package/dist/esm/chunk-SMGDH54W.js.map +7 -0
- package/dist/esm/chunk-SNHEJU2S.js +2 -0
- package/dist/esm/chunk-SNHEJU2S.js.map +7 -0
- package/dist/esm/chunk-SNR5VFWG.js +2 -0
- package/dist/esm/chunk-SNR5VFWG.js.map +7 -0
- package/dist/esm/chunk-STPMPY3X.js +1 -0
- package/dist/esm/chunk-STPMPY3X.js.map +7 -0
- package/dist/esm/chunk-SVLY6B5F.js +2 -0
- package/dist/esm/chunk-SVLY6B5F.js.map +7 -0
- package/dist/esm/chunk-T27QHMW7.js +2 -0
- package/dist/esm/chunk-T27QHMW7.js.map +7 -0
- package/dist/esm/chunk-TBJ6L4NL.js +2 -0
- package/dist/esm/chunk-TBJ6L4NL.js.map +7 -0
- package/dist/esm/chunk-TEULZKBM.js +2 -0
- package/dist/esm/chunk-TEULZKBM.js.map +7 -0
- package/dist/esm/chunk-TGN5ZJU5.js +2 -0
- package/dist/esm/chunk-TGN5ZJU5.js.map +7 -0
- package/dist/esm/chunk-TTFUM47A.js +2 -0
- package/dist/esm/chunk-TTFUM47A.js.map +7 -0
- package/dist/esm/chunk-TZTUPQYK.js +2 -0
- package/dist/esm/chunk-TZTUPQYK.js.map +7 -0
- package/dist/esm/chunk-U7AASKZI.js +2 -0
- package/dist/esm/chunk-U7AASKZI.js.map +7 -0
- package/dist/esm/chunk-UICSVJ3B.js +1 -0
- package/dist/esm/chunk-UICSVJ3B.js.map +7 -0
- package/dist/esm/chunk-UIEUZLZZ.js +2 -0
- package/dist/esm/chunk-UIEUZLZZ.js.map +7 -0
- package/dist/esm/chunk-UMX5MGLG.js +2 -0
- package/dist/esm/chunk-UMX5MGLG.js.map +7 -0
- package/dist/esm/chunk-USGTBZ43.js +2 -0
- package/dist/esm/chunk-USGTBZ43.js.map +7 -0
- package/dist/esm/chunk-UUX42HBM.js +2 -0
- package/dist/esm/chunk-UUX42HBM.js.map +7 -0
- package/dist/esm/chunk-UWT6TE5D.js +2 -0
- package/dist/esm/chunk-UWT6TE5D.js.map +7 -0
- package/dist/esm/chunk-UYNYUR7O.js +2 -0
- package/dist/esm/chunk-UYNYUR7O.js.map +7 -0
- package/dist/esm/chunk-V32EP3S7.js +2 -0
- package/dist/esm/chunk-V32EP3S7.js.map +7 -0
- package/dist/esm/chunk-VF5TRT3H.js +2 -0
- package/dist/esm/chunk-VF5TRT3H.js.map +7 -0
- package/dist/esm/chunk-VJSZG35J.js +2 -0
- package/dist/esm/chunk-VJSZG35J.js.map +7 -0
- package/dist/esm/chunk-VK7RNXUO.js +2 -0
- package/dist/esm/chunk-VK7RNXUO.js.map +7 -0
- package/dist/esm/chunk-VX44UTQ5.js +2 -0
- package/dist/esm/chunk-VX44UTQ5.js.map +7 -0
- package/dist/esm/chunk-WNSPLWRV.js +2 -0
- package/dist/esm/chunk-WNSPLWRV.js.map +7 -0
- package/dist/esm/chunk-WOR3JCLX.js +1 -0
- package/dist/esm/chunk-WOR3JCLX.js.map +7 -0
- package/dist/esm/chunk-WR7YLY46.js +2 -0
- package/dist/esm/chunk-WR7YLY46.js.map +7 -0
- package/dist/esm/chunk-WRWNN2NW.js +2 -0
- package/dist/esm/chunk-WRWNN2NW.js.map +7 -0
- package/dist/esm/chunk-WXP6MMUB.js +2 -0
- package/dist/esm/chunk-WXP6MMUB.js.map +7 -0
- package/dist/esm/chunk-WYA4IRU6.js +2 -0
- package/dist/esm/chunk-WYA4IRU6.js.map +7 -0
- package/dist/esm/chunk-WYADYDPN.js +2 -0
- package/dist/esm/chunk-WYADYDPN.js.map +7 -0
- package/dist/esm/chunk-WZCZHCVE.js +2 -0
- package/dist/esm/chunk-WZCZHCVE.js.map +7 -0
- package/dist/esm/chunk-WZETC7WV.js +2 -0
- package/dist/esm/chunk-WZETC7WV.js.map +7 -0
- package/dist/esm/chunk-X7BD5FLE.js +2 -0
- package/dist/esm/chunk-X7BD5FLE.js.map +7 -0
- package/dist/esm/chunk-XEZXKPLE.js +2 -0
- package/dist/esm/chunk-XEZXKPLE.js.map +7 -0
- package/dist/esm/chunk-XGGLYV5D.js +2 -0
- package/dist/esm/chunk-XGGLYV5D.js.map +7 -0
- package/dist/esm/chunk-XHQGMOXV.js +2 -0
- package/dist/esm/chunk-XHQGMOXV.js.map +7 -0
- package/dist/esm/chunk-XI5YXUCK.js +2 -0
- package/dist/esm/chunk-XI5YXUCK.js.map +7 -0
- package/dist/esm/chunk-XKASPWCJ.js +2 -0
- package/dist/esm/chunk-XKASPWCJ.js.map +7 -0
- package/dist/esm/chunk-XKBLNVOD.js +2 -0
- package/dist/esm/chunk-XKBLNVOD.js.map +7 -0
- package/dist/esm/chunk-XLOHPURR.js +2 -0
- package/dist/esm/chunk-XLOHPURR.js.map +7 -0
- package/dist/esm/chunk-Y3A6ZU24.js +2 -0
- package/dist/esm/chunk-Y3A6ZU24.js.map +7 -0
- package/dist/esm/chunk-Y7LT3F6R.js +2 -0
- package/dist/esm/chunk-Y7LT3F6R.js.map +7 -0
- package/dist/esm/chunk-YEA646GM.js +2 -0
- package/dist/esm/chunk-YEA646GM.js.map +7 -0
- package/dist/esm/chunk-YKPMLM7M.js +1 -0
- package/dist/esm/chunk-YKPMLM7M.js.map +7 -0
- package/dist/esm/chunk-YUZPSUJE.js +2 -0
- package/dist/esm/chunk-YUZPSUJE.js.map +7 -0
- package/dist/esm/chunk-YVBCDTTD.js +2 -0
- package/dist/esm/chunk-YVBCDTTD.js.map +7 -0
- package/dist/esm/chunk-Z5DQ6FSA.js +2 -0
- package/dist/esm/chunk-Z5DQ6FSA.js.map +7 -0
- package/dist/esm/chunk-ZE2KAVXW.js +2 -0
- package/dist/esm/chunk-ZE2KAVXW.js.map +7 -0
- package/dist/esm/chunk-ZHYOJNWV.js +2 -0
- package/dist/esm/chunk-ZHYOJNWV.js.map +7 -0
- package/dist/esm/chunk-ZMEXIPWM.js +2 -0
- package/dist/esm/chunk-ZMEXIPWM.js.map +7 -0
- package/dist/esm/chunk-ZRKE3NVU.js +2 -0
- package/dist/esm/chunk-ZRKE3NVU.js.map +7 -0
- package/dist/esm/chunk-ZSEFZM5H.js +2 -0
- package/dist/esm/chunk-ZSEFZM5H.js.map +7 -0
- package/dist/esm/components/_internal/base-button.d.ts +51 -0
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-button.js +2 -0
- package/dist/esm/components/_internal/base-button.js.map +7 -0
- package/dist/esm/components/_internal/base-button.props.d.ts +115 -0
- package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-button.props.js +2 -0
- package/dist/esm/components/_internal/base-button.props.js.map +7 -0
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +32 -0
- package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-checkbox.props.js +2 -0
- package/dist/esm/components/_internal/base-checkbox.props.js.map +7 -0
- package/dist/esm/components/_internal/base-menu.props.d.ts +121 -0
- package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-menu.props.js +2 -0
- package/dist/esm/components/_internal/base-menu.props.js.map +7 -0
- package/dist/esm/components/_internal/base-radio.props.d.ts +32 -0
- package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-radio.props.js +2 -0
- package/dist/esm/components/_internal/base-radio.props.js.map +7 -0
- package/dist/esm/components/_internal/base-tab-list.props.d.ts +38 -0
- package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-tab-list.props.js +2 -0
- package/dist/esm/components/_internal/base-tab-list.props.js.map +7 -0
- package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +81 -0
- package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -0
- package/dist/esm/components/_internal/dropdown-menu-drill-down.js +2 -0
- package/dist/esm/components/_internal/dropdown-menu-drill-down.js.map +7 -0
- package/dist/esm/components/_internal/menu-context.d.ts +27 -0
- package/dist/esm/components/_internal/menu-context.d.ts.map +1 -0
- package/dist/esm/components/_internal/menu-context.js +2 -0
- package/dist/esm/components/_internal/menu-context.js.map +7 -0
- package/dist/esm/components/_internal/shell-bottom.d.ts +40 -0
- package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-bottom.js +2 -0
- package/dist/esm/components/_internal/shell-bottom.js.map +7 -0
- package/dist/esm/components/_internal/shell-handles.d.ts +7 -0
- package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-handles.js +2 -0
- package/dist/esm/components/_internal/shell-handles.js.map +7 -0
- package/dist/esm/components/_internal/shell-inspector.d.ts +40 -0
- package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-inspector.js +2 -0
- package/dist/esm/components/_internal/shell-inspector.js.map +7 -0
- package/dist/esm/components/_internal/shell-prop-helpers.d.ts +7 -0
- package/dist/esm/components/_internal/shell-prop-helpers.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-prop-helpers.js +2 -0
- package/dist/esm/components/_internal/shell-prop-helpers.js.map +7 -0
- package/dist/esm/components/_internal/shell-resize.d.ts +24 -0
- package/dist/esm/components/_internal/shell-resize.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-resize.js +2 -0
- package/dist/esm/components/_internal/shell-resize.js.map +7 -0
- package/dist/esm/components/_internal/shell-sidebar.d.ts +40 -0
- package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -0
- package/dist/esm/components/_internal/shell-sidebar.js +2 -0
- package/dist/esm/components/_internal/shell-sidebar.js.map +7 -0
- package/dist/esm/components/accessible-icon.d.ts +4 -0
- package/dist/esm/components/accessible-icon.d.ts.map +1 -0
- package/dist/esm/components/accessible-icon.js +2 -0
- package/dist/esm/components/accessible-icon.js.map +7 -0
- package/dist/esm/components/accordion.d.ts +22 -0
- package/dist/esm/components/accordion.d.ts.map +1 -0
- package/dist/esm/components/accordion.js +2 -0
- package/dist/esm/components/accordion.js.map +7 -0
- package/dist/esm/components/accordion.props.d.ts +97 -0
- package/dist/esm/components/accordion.props.d.ts.map +1 -0
- package/dist/esm/components/accordion.props.js +2 -0
- package/dist/esm/components/accordion.props.js.map +7 -0
- package/dist/esm/components/alert-dialog.d.ts +29 -0
- package/dist/esm/components/alert-dialog.d.ts.map +1 -0
- package/dist/esm/components/alert-dialog.js +2 -0
- package/dist/esm/components/alert-dialog.js.map +7 -0
- package/dist/esm/components/alert-dialog.props.d.ts +70 -0
- package/dist/esm/components/alert-dialog.props.d.ts.map +1 -0
- package/dist/esm/components/alert-dialog.props.js +2 -0
- package/dist/esm/components/alert-dialog.props.js.map +7 -0
- package/dist/esm/components/aspect-ratio.d.ts +4 -0
- package/dist/esm/components/aspect-ratio.d.ts.map +1 -0
- package/dist/esm/components/aspect-ratio.js +2 -0
- package/dist/esm/components/aspect-ratio.js.map +7 -0
- package/dist/esm/components/avatar.d.ts +16 -0
- package/dist/esm/components/avatar.d.ts.map +1 -0
- package/dist/esm/components/avatar.js +2 -0
- package/dist/esm/components/avatar.js.map +7 -0
- package/dist/esm/components/avatar.props.d.ts +82 -0
- package/dist/esm/components/avatar.props.d.ts.map +1 -0
- package/dist/esm/components/avatar.props.js +2 -0
- package/dist/esm/components/avatar.props.js.map +7 -0
- package/dist/esm/components/badge.d.ts +19 -0
- package/dist/esm/components/badge.d.ts.map +1 -0
- package/dist/esm/components/badge.js +2 -0
- package/dist/esm/components/badge.js.map +7 -0
- package/dist/esm/components/badge.props.d.ts +48 -0
- package/dist/esm/components/badge.props.d.ts.map +1 -0
- package/dist/esm/components/badge.props.js +2 -0
- package/dist/esm/components/badge.props.js.map +7 -0
- package/dist/esm/components/blockquote.d.ts +12 -0
- package/dist/esm/components/blockquote.d.ts.map +1 -0
- package/dist/esm/components/blockquote.js +2 -0
- package/dist/esm/components/blockquote.js.map +7 -0
- package/dist/esm/components/blockquote.props.d.ts +39 -0
- package/dist/esm/components/blockquote.props.d.ts.map +1 -0
- package/dist/esm/components/blockquote.props.js +2 -0
- package/dist/esm/components/blockquote.props.js.map +7 -0
- package/dist/esm/components/box.d.ts +18 -0
- package/dist/esm/components/box.d.ts.map +1 -0
- package/dist/esm/components/box.js +2 -0
- package/dist/esm/components/box.js.map +7 -0
- package/dist/esm/components/box.props.d.ts +40 -0
- package/dist/esm/components/box.props.d.ts.map +1 -0
- package/dist/esm/components/box.props.js +2 -0
- package/dist/esm/components/box.props.js.map +7 -0
- package/dist/esm/components/button.d.ts +107 -0
- package/dist/esm/components/button.d.ts.map +1 -0
- package/dist/esm/components/button.js +2 -0
- package/dist/esm/components/button.js.map +7 -0
- package/dist/esm/components/button.props.d.ts +19 -0
- package/dist/esm/components/button.props.d.ts.map +1 -0
- package/dist/esm/components/button.props.js +2 -0
- package/dist/esm/components/button.props.js.map +7 -0
- package/dist/esm/components/callout.d.ts +22 -0
- package/dist/esm/components/callout.d.ts.map +1 -0
- package/dist/esm/components/callout.js +2 -0
- package/dist/esm/components/callout.js.map +7 -0
- package/dist/esm/components/callout.props.d.ts +43 -0
- package/dist/esm/components/callout.props.d.ts.map +1 -0
- package/dist/esm/components/callout.props.js +2 -0
- package/dist/esm/components/callout.props.js.map +7 -0
- package/dist/esm/components/card.d.ts +12 -0
- package/dist/esm/components/card.d.ts.map +1 -0
- package/dist/esm/components/card.js +2 -0
- package/dist/esm/components/card.js.map +7 -0
- package/dist/esm/components/card.props.d.ts +38 -0
- package/dist/esm/components/card.props.d.ts.map +1 -0
- package/dist/esm/components/card.props.js +2 -0
- package/dist/esm/components/card.props.js.map +7 -0
- package/dist/esm/components/chatbar.d.ts +233 -0
- package/dist/esm/components/chatbar.d.ts.map +1 -0
- package/dist/esm/components/chatbar.js +2 -0
- package/dist/esm/components/chatbar.js.map +7 -0
- package/dist/esm/components/checkbox-cards.d.ts +19 -0
- package/dist/esm/components/checkbox-cards.d.ts.map +1 -0
- package/dist/esm/components/checkbox-cards.js +2 -0
- package/dist/esm/components/checkbox-cards.js.map +7 -0
- package/dist/esm/components/checkbox-cards.props.d.ts +52 -0
- package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -0
- package/dist/esm/components/checkbox-cards.props.js +2 -0
- package/dist/esm/components/checkbox-cards.props.js.map +7 -0
- package/dist/esm/components/checkbox-group.d.ts +16 -0
- package/dist/esm/components/checkbox-group.d.ts.map +1 -0
- package/dist/esm/components/checkbox-group.js +2 -0
- package/dist/esm/components/checkbox-group.js.map +7 -0
- package/dist/esm/components/checkbox-group.primitive.d.ts +41 -0
- package/dist/esm/components/checkbox-group.primitive.d.ts.map +1 -0
- package/dist/esm/components/checkbox-group.primitive.js +2 -0
- package/dist/esm/components/checkbox-group.primitive.js.map +7 -0
- package/dist/esm/components/checkbox-group.props.d.ts +35 -0
- package/dist/esm/components/checkbox-group.props.d.ts.map +1 -0
- package/dist/esm/components/checkbox-group.props.js +2 -0
- package/dist/esm/components/checkbox-group.props.js.map +7 -0
- package/dist/esm/components/checkbox.d.ts +13 -0
- package/dist/esm/components/checkbox.d.ts.map +1 -0
- package/dist/esm/components/checkbox.js +2 -0
- package/dist/esm/components/checkbox.js.map +7 -0
- package/dist/esm/components/checkbox.props.d.ts +2 -0
- package/dist/esm/components/checkbox.props.d.ts.map +1 -0
- package/dist/esm/components/checkbox.props.js +2 -0
- package/dist/esm/components/checkbox.props.js.map +7 -0
- package/dist/esm/components/code.d.ts +12 -0
- package/dist/esm/components/code.d.ts.map +1 -0
- package/dist/esm/components/code.js +2 -0
- package/dist/esm/components/code.js.map +7 -0
- package/dist/esm/components/code.props.d.ts +45 -0
- package/dist/esm/components/code.props.d.ts.map +1 -0
- package/dist/esm/components/code.props.js +2 -0
- package/dist/esm/components/code.props.js.map +7 -0
- package/dist/esm/components/combobox.d.ts +101 -0
- package/dist/esm/components/combobox.d.ts.map +1 -0
- package/dist/esm/components/combobox.js +2 -0
- package/dist/esm/components/combobox.js.map +7 -0
- package/dist/esm/components/combobox.props.d.ts +98 -0
- package/dist/esm/components/combobox.props.d.ts.map +1 -0
- package/dist/esm/components/combobox.props.js +2 -0
- package/dist/esm/components/combobox.props.js.map +7 -0
- package/dist/esm/components/container.d.ts +11 -0
- package/dist/esm/components/container.d.ts.map +1 -0
- package/dist/esm/components/container.js +2 -0
- package/dist/esm/components/container.js.map +7 -0
- package/dist/esm/components/container.props.d.ts +68 -0
- package/dist/esm/components/container.props.d.ts.map +1 -0
- package/dist/esm/components/container.props.js +2 -0
- package/dist/esm/components/container.props.js.map +7 -0
- package/dist/esm/components/context-menu.d.ts +54 -0
- package/dist/esm/components/context-menu.d.ts.map +1 -0
- package/dist/esm/components/context-menu.js +2 -0
- package/dist/esm/components/context-menu.js.map +7 -0
- package/dist/esm/components/context-menu.props.d.ts +2 -0
- package/dist/esm/components/context-menu.props.d.ts.map +1 -0
- package/dist/esm/components/context-menu.props.js +2 -0
- package/dist/esm/components/context-menu.props.js.map +7 -0
- package/dist/esm/components/data-list.d.ts +23 -0
- package/dist/esm/components/data-list.d.ts.map +1 -0
- package/dist/esm/components/data-list.js +2 -0
- package/dist/esm/components/data-list.js.map +7 -0
- package/dist/esm/components/data-list.props.d.ts +62 -0
- package/dist/esm/components/data-list.props.d.ts.map +1 -0
- package/dist/esm/components/data-list.props.js +2 -0
- package/dist/esm/components/data-list.props.js.map +7 -0
- package/dist/esm/components/dialog.d.ts +26 -0
- package/dist/esm/components/dialog.d.ts.map +1 -0
- package/dist/esm/components/dialog.js +2 -0
- package/dist/esm/components/dialog.js.map +7 -0
- package/dist/esm/components/dialog.props.d.ts +72 -0
- package/dist/esm/components/dialog.props.d.ts.map +1 -0
- package/dist/esm/components/dialog.props.js +2 -0
- package/dist/esm/components/dialog.props.js.map +7 -0
- package/dist/esm/components/dropdown-menu.d.ts +89 -0
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -0
- package/dist/esm/components/dropdown-menu.js +2 -0
- package/dist/esm/components/dropdown-menu.js.map +7 -0
- package/dist/esm/components/dropdown-menu.props.d.ts +2 -0
- package/dist/esm/components/dropdown-menu.props.d.ts.map +1 -0
- package/dist/esm/components/dropdown-menu.props.js +2 -0
- package/dist/esm/components/dropdown-menu.props.js.map +7 -0
- package/dist/esm/components/em.d.ts +11 -0
- package/dist/esm/components/em.d.ts.map +1 -0
- package/dist/esm/components/em.js +2 -0
- package/dist/esm/components/em.js.map +7 -0
- package/dist/esm/components/em.props.d.ts +17 -0
- package/dist/esm/components/em.props.d.ts.map +1 -0
- package/dist/esm/components/em.props.js +2 -0
- package/dist/esm/components/em.props.js.map +7 -0
- package/dist/esm/components/flex.d.ts +18 -0
- package/dist/esm/components/flex.d.ts.map +1 -0
- package/dist/esm/components/flex.js +2 -0
- package/dist/esm/components/flex.js.map +7 -0
- package/dist/esm/components/flex.props.d.ts +132 -0
- package/dist/esm/components/flex.props.d.ts.map +1 -0
- package/dist/esm/components/flex.props.js +2 -0
- package/dist/esm/components/flex.props.js.map +7 -0
- package/dist/esm/components/grid.d.ts +18 -0
- package/dist/esm/components/grid.d.ts.map +1 -0
- package/dist/esm/components/grid.js +2 -0
- package/dist/esm/components/grid.js.map +7 -0
- package/dist/esm/components/grid.props.d.ts +211 -0
- package/dist/esm/components/grid.props.d.ts.map +1 -0
- package/dist/esm/components/grid.props.js +2 -0
- package/dist/esm/components/grid.props.js.map +7 -0
- package/dist/esm/components/heading.d.ts +31 -0
- package/dist/esm/components/heading.d.ts.map +1 -0
- package/dist/esm/components/heading.js +2 -0
- package/dist/esm/components/heading.js.map +7 -0
- package/dist/esm/components/heading.props.d.ts +62 -0
- package/dist/esm/components/heading.props.d.ts.map +1 -0
- package/dist/esm/components/heading.props.js +2 -0
- package/dist/esm/components/heading.props.js.map +7 -0
- package/dist/esm/components/hover-card.d.ts +17 -0
- package/dist/esm/components/hover-card.d.ts.map +1 -0
- package/dist/esm/components/hover-card.js +2 -0
- package/dist/esm/components/hover-card.js.map +7 -0
- package/dist/esm/components/hover-card.props.d.ts +57 -0
- package/dist/esm/components/hover-card.props.d.ts.map +1 -0
- package/dist/esm/components/hover-card.props.js +2 -0
- package/dist/esm/components/hover-card.props.js.map +7 -0
- package/dist/esm/components/icon-button.d.ts +106 -0
- package/dist/esm/components/icon-button.d.ts.map +1 -0
- package/dist/esm/components/icon-button.js +2 -0
- package/dist/esm/components/icon-button.js.map +7 -0
- package/dist/esm/components/icon-button.props.d.ts +2 -0
- package/dist/esm/components/icon-button.props.d.ts.map +1 -0
- package/dist/esm/components/icon-button.props.js +2 -0
- package/dist/esm/components/icon-button.props.js.map +7 -0
- package/dist/esm/components/icons.d.ts +18 -0
- package/dist/esm/components/icons.d.ts.map +1 -0
- package/dist/esm/components/icons.js +2 -0
- package/dist/esm/components/icons.js.map +7 -0
- package/dist/esm/components/image.d.ts +101 -0
- package/dist/esm/components/image.d.ts.map +1 -0
- package/dist/esm/components/image.js +2 -0
- package/dist/esm/components/image.js.map +7 -0
- package/dist/esm/components/image.props.d.ts +147 -0
- package/dist/esm/components/image.props.d.ts.map +1 -0
- package/dist/esm/components/image.props.js +2 -0
- package/dist/esm/components/image.props.js.map +7 -0
- package/dist/esm/components/index.d.ts +72 -0
- package/dist/esm/components/index.d.ts.map +1 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +7 -0
- package/dist/esm/components/inset.d.ts +12 -0
- package/dist/esm/components/inset.d.ts.map +1 -0
- package/dist/esm/components/inset.js +2 -0
- package/dist/esm/components/inset.js.map +7 -0
- package/dist/esm/components/inset.props.d.ts +71 -0
- package/dist/esm/components/inset.props.d.ts.map +1 -0
- package/dist/esm/components/inset.props.js +2 -0
- package/dist/esm/components/inset.props.js.map +7 -0
- package/dist/esm/components/kbd.d.ts +12 -0
- package/dist/esm/components/kbd.d.ts.map +1 -0
- package/dist/esm/components/kbd.js +2 -0
- package/dist/esm/components/kbd.js.map +7 -0
- package/dist/esm/components/kbd.props.d.ts +19 -0
- package/dist/esm/components/kbd.props.d.ts.map +1 -0
- package/dist/esm/components/kbd.props.js +2 -0
- package/dist/esm/components/kbd.props.js.map +7 -0
- package/dist/esm/components/link.d.ts +12 -0
- package/dist/esm/components/link.d.ts.map +1 -0
- package/dist/esm/components/link.js +2 -0
- package/dist/esm/components/link.js.map +7 -0
- package/dist/esm/components/link.props.d.ts +51 -0
- package/dist/esm/components/link.props.d.ts.map +1 -0
- package/dist/esm/components/link.props.js +2 -0
- package/dist/esm/components/link.props.js.map +7 -0
- package/dist/esm/components/navbar.d.ts +24 -0
- package/dist/esm/components/navbar.d.ts.map +1 -0
- package/dist/esm/components/navbar.js +2 -0
- package/dist/esm/components/navbar.js.map +7 -0
- package/dist/esm/components/navbar.props.d.ts +14 -0
- package/dist/esm/components/navbar.props.d.ts.map +1 -0
- package/dist/esm/components/navbar.props.js +2 -0
- package/dist/esm/components/navbar.props.js.map +7 -0
- package/dist/esm/components/popover.d.ts +35 -0
- package/dist/esm/components/popover.d.ts.map +1 -0
- package/dist/esm/components/popover.js +2 -0
- package/dist/esm/components/popover.js.map +7 -0
- package/dist/esm/components/popover.props.d.ts +62 -0
- package/dist/esm/components/popover.props.d.ts.map +1 -0
- package/dist/esm/components/popover.props.js +2 -0
- package/dist/esm/components/popover.props.js.map +7 -0
- package/dist/esm/components/portal.d.ts +5 -0
- package/dist/esm/components/portal.d.ts.map +1 -0
- package/dist/esm/components/portal.js +2 -0
- package/dist/esm/components/portal.js.map +7 -0
- package/dist/esm/components/progress.d.ts +14 -0
- package/dist/esm/components/progress.d.ts.map +1 -0
- package/dist/esm/components/progress.js +2 -0
- package/dist/esm/components/progress.js.map +7 -0
- package/dist/esm/components/progress.props.d.ts +35 -0
- package/dist/esm/components/progress.props.d.ts.map +1 -0
- package/dist/esm/components/progress.props.js +2 -0
- package/dist/esm/components/progress.props.js.map +7 -0
- package/dist/esm/components/quote.d.ts +11 -0
- package/dist/esm/components/quote.d.ts.map +1 -0
- package/dist/esm/components/quote.js +2 -0
- package/dist/esm/components/quote.js.map +7 -0
- package/dist/esm/components/quote.props.d.ts +17 -0
- package/dist/esm/components/quote.props.d.ts.map +1 -0
- package/dist/esm/components/quote.props.js +2 -0
- package/dist/esm/components/quote.props.js.map +7 -0
- package/dist/esm/components/radio-cards.d.ts +16 -0
- package/dist/esm/components/radio-cards.d.ts.map +1 -0
- package/dist/esm/components/radio-cards.js +2 -0
- package/dist/esm/components/radio-cards.js.map +7 -0
- package/dist/esm/components/radio-cards.props.d.ts +52 -0
- package/dist/esm/components/radio-cards.props.d.ts.map +1 -0
- package/dist/esm/components/radio-cards.props.js +2 -0
- package/dist/esm/components/radio-cards.props.js.map +7 -0
- package/dist/esm/components/radio-group.d.ts +22 -0
- package/dist/esm/components/radio-group.d.ts.map +1 -0
- package/dist/esm/components/radio-group.js +2 -0
- package/dist/esm/components/radio-group.js.map +7 -0
- package/dist/esm/components/radio-group.props.d.ts +30 -0
- package/dist/esm/components/radio-group.props.d.ts.map +1 -0
- package/dist/esm/components/radio-group.props.js +2 -0
- package/dist/esm/components/radio-group.props.js.map +7 -0
- package/dist/esm/components/radio.d.ts +17 -0
- package/dist/esm/components/radio.d.ts.map +1 -0
- package/dist/esm/components/radio.js +2 -0
- package/dist/esm/components/radio.js.map +7 -0
- package/dist/esm/components/radio.props.d.ts +2 -0
- package/dist/esm/components/radio.props.d.ts.map +1 -0
- package/dist/esm/components/radio.props.js +2 -0
- package/dist/esm/components/radio.props.js.map +7 -0
- package/dist/esm/components/reset.d.ts +9 -0
- package/dist/esm/components/reset.d.ts.map +1 -0
- package/dist/esm/components/reset.js +2 -0
- package/dist/esm/components/reset.js.map +7 -0
- package/dist/esm/components/schemas/base-button.schema.d.ts +319 -0
- package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/base-button.schema.js +2 -0
- package/dist/esm/components/schemas/base-button.schema.js.map +7 -0
- package/dist/esm/components/schemas/button.schema.d.ts +686 -0
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/button.schema.js +2 -0
- package/dist/esm/components/schemas/button.schema.js.map +7 -0
- package/dist/esm/components/schemas/icon-button.schema.d.ts +329 -0
- package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/icon-button.schema.js +2 -0
- package/dist/esm/components/schemas/icon-button.schema.js.map +7 -0
- package/dist/esm/components/schemas/index.d.ts +54 -0
- package/dist/esm/components/schemas/index.d.ts.map +1 -0
- package/dist/esm/components/schemas/index.js +2 -0
- package/dist/esm/components/schemas/index.js.map +7 -0
- package/dist/esm/components/schemas/shell.schema.d.ts +1025 -0
- package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/shell.schema.js +2 -0
- package/dist/esm/components/schemas/shell.schema.js.map +7 -0
- package/dist/esm/components/schemas/toggle-button.schema.d.ts +1172 -0
- package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/toggle-button.schema.js +2 -0
- package/dist/esm/components/schemas/toggle-button.schema.js.map +7 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +563 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.js +2 -0
- package/dist/esm/components/schemas/toggle-icon-button.schema.js.map +7 -0
- package/dist/esm/components/scroll-area.d.ts +13 -0
- package/dist/esm/components/scroll-area.d.ts.map +1 -0
- package/dist/esm/components/scroll-area.js +2 -0
- package/dist/esm/components/scroll-area.js.map +7 -0
- package/dist/esm/components/scroll-area.props.d.ts +24 -0
- package/dist/esm/components/scroll-area.props.d.ts.map +1 -0
- package/dist/esm/components/scroll-area.props.js +2 -0
- package/dist/esm/components/scroll-area.props.js.map +7 -0
- package/dist/esm/components/section.d.ts +11 -0
- package/dist/esm/components/section.d.ts.map +1 -0
- package/dist/esm/components/section.js +2 -0
- package/dist/esm/components/section.js.map +7 -0
- package/dist/esm/components/section.props.d.ts +52 -0
- package/dist/esm/components/section.props.d.ts.map +1 -0
- package/dist/esm/components/section.props.js +2 -0
- package/dist/esm/components/section.props.js.map +7 -0
- package/dist/esm/components/segmented-control.d.ts +24 -0
- package/dist/esm/components/segmented-control.d.ts.map +1 -0
- package/dist/esm/components/segmented-control.js +2 -0
- package/dist/esm/components/segmented-control.js.map +7 -0
- package/dist/esm/components/segmented-control.props.d.ts +39 -0
- package/dist/esm/components/segmented-control.props.d.ts.map +1 -0
- package/dist/esm/components/segmented-control.props.js +2 -0
- package/dist/esm/components/segmented-control.props.js.map +7 -0
- package/dist/esm/components/select.d.ts +35 -0
- package/dist/esm/components/select.d.ts.map +1 -0
- package/dist/esm/components/select.js +2 -0
- package/dist/esm/components/select.js.map +7 -0
- package/dist/esm/components/select.props.d.ts +67 -0
- package/dist/esm/components/select.props.d.ts.map +1 -0
- package/dist/esm/components/select.props.js +2 -0
- package/dist/esm/components/select.props.js.map +7 -0
- package/dist/esm/components/separator.d.ts +12 -0
- package/dist/esm/components/separator.d.ts.map +1 -0
- package/dist/esm/components/separator.js +2 -0
- package/dist/esm/components/separator.js.map +7 -0
- package/dist/esm/components/separator.props.d.ts +32 -0
- package/dist/esm/components/separator.props.d.ts.map +1 -0
- package/dist/esm/components/separator.props.js +2 -0
- package/dist/esm/components/separator.props.js.map +7 -0
- package/dist/esm/components/sheet.d.ts +82 -0
- package/dist/esm/components/sheet.d.ts.map +1 -0
- package/dist/esm/components/sheet.js +2 -0
- package/dist/esm/components/sheet.js.map +7 -0
- package/dist/esm/components/shell.context.d.ts +143 -0
- package/dist/esm/components/shell.context.d.ts.map +1 -0
- package/dist/esm/components/shell.context.js +2 -0
- package/dist/esm/components/shell.context.js.map +7 -0
- package/dist/esm/components/shell.d.ts +107 -0
- package/dist/esm/components/shell.d.ts.map +1 -0
- package/dist/esm/components/shell.hooks.d.ts +26 -0
- package/dist/esm/components/shell.hooks.d.ts.map +1 -0
- package/dist/esm/components/shell.hooks.js +2 -0
- package/dist/esm/components/shell.hooks.js.map +7 -0
- package/dist/esm/components/shell.js +2 -0
- package/dist/esm/components/shell.js.map +7 -0
- package/dist/esm/components/shell.types.d.ts +53 -0
- package/dist/esm/components/shell.types.d.ts.map +1 -0
- package/dist/esm/components/shell.types.js +2 -0
- package/dist/esm/components/shell.types.js.map +7 -0
- package/dist/esm/components/sidebar.d.ts +146 -0
- package/dist/esm/components/sidebar.d.ts.map +1 -0
- package/dist/esm/components/sidebar.js +2 -0
- package/dist/esm/components/sidebar.js.map +7 -0
- package/dist/esm/components/sidebar.props.d.ts +66 -0
- package/dist/esm/components/sidebar.props.d.ts.map +1 -0
- package/dist/esm/components/sidebar.props.js +2 -0
- package/dist/esm/components/sidebar.props.js.map +7 -0
- package/dist/esm/components/skeleton.d.ts +12 -0
- package/dist/esm/components/skeleton.d.ts.map +1 -0
- package/dist/esm/components/skeleton.js +2 -0
- package/dist/esm/components/skeleton.js.map +7 -0
- package/dist/esm/components/skeleton.props.d.ts +44 -0
- package/dist/esm/components/skeleton.props.d.ts.map +1 -0
- package/dist/esm/components/skeleton.props.js +2 -0
- package/dist/esm/components/skeleton.props.js.map +7 -0
- package/dist/esm/components/slider.d.ts +18 -0
- package/dist/esm/components/slider.d.ts.map +1 -0
- package/dist/esm/components/slider.js +2 -0
- package/dist/esm/components/slider.js.map +7 -0
- package/dist/esm/components/slider.props.d.ts +40 -0
- package/dist/esm/components/slider.props.d.ts.map +1 -0
- package/dist/esm/components/slider.props.js +2 -0
- package/dist/esm/components/slider.props.js.map +7 -0
- package/dist/esm/components/slot.d.ts +5 -0
- package/dist/esm/components/slot.d.ts.map +1 -0
- package/dist/esm/components/slot.js +2 -0
- package/dist/esm/components/slot.js.map +7 -0
- package/dist/esm/components/spinner.d.ts +12 -0
- package/dist/esm/components/spinner.d.ts.map +1 -0
- package/dist/esm/components/spinner.js +2 -0
- package/dist/esm/components/spinner.js.map +7 -0
- package/dist/esm/components/spinner.props.d.ts +15 -0
- package/dist/esm/components/spinner.props.d.ts.map +1 -0
- package/dist/esm/components/spinner.props.js +2 -0
- package/dist/esm/components/spinner.props.js.map +7 -0
- package/dist/esm/components/strong.d.ts +11 -0
- package/dist/esm/components/strong.d.ts.map +1 -0
- package/dist/esm/components/strong.js +2 -0
- package/dist/esm/components/strong.js.map +7 -0
- package/dist/esm/components/strong.props.d.ts +17 -0
- package/dist/esm/components/strong.props.d.ts.map +1 -0
- package/dist/esm/components/strong.props.js +2 -0
- package/dist/esm/components/strong.props.js.map +7 -0
- package/dist/esm/components/switch.d.ts +13 -0
- package/dist/esm/components/switch.d.ts.map +1 -0
- package/dist/esm/components/switch.js +2 -0
- package/dist/esm/components/switch.js.map +7 -0
- package/dist/esm/components/switch.props.d.ts +45 -0
- package/dist/esm/components/switch.props.d.ts.map +1 -0
- package/dist/esm/components/switch.props.js +2 -0
- package/dist/esm/components/switch.props.js.map +7 -0
- package/dist/esm/components/tab-nav.d.ts +19 -0
- package/dist/esm/components/tab-nav.d.ts.map +1 -0
- package/dist/esm/components/tab-nav.js +2 -0
- package/dist/esm/components/tab-nav.js.map +7 -0
- package/dist/esm/components/tab-nav.props.d.ts +12 -0
- package/dist/esm/components/tab-nav.props.d.ts.map +1 -0
- package/dist/esm/components/tab-nav.props.js +2 -0
- package/dist/esm/components/tab-nav.props.js.map +7 -0
- package/dist/esm/components/table.d.ts +32 -0
- package/dist/esm/components/table.d.ts.map +1 -0
- package/dist/esm/components/table.js +2 -0
- package/dist/esm/components/table.js.map +7 -0
- package/dist/esm/components/table.props.d.ts +110 -0
- package/dist/esm/components/table.props.d.ts.map +1 -0
- package/dist/esm/components/table.props.js +2 -0
- package/dist/esm/components/table.props.js.map +7 -0
- package/dist/esm/components/tabs.d.ts +25 -0
- package/dist/esm/components/tabs.d.ts.map +1 -0
- package/dist/esm/components/tabs.js +2 -0
- package/dist/esm/components/tabs.js.map +7 -0
- package/dist/esm/components/tabs.props.d.ts +13 -0
- package/dist/esm/components/tabs.props.d.ts.map +1 -0
- package/dist/esm/components/tabs.props.js +2 -0
- package/dist/esm/components/tabs.props.js.map +7 -0
- package/dist/esm/components/text-area.d.ts +15 -0
- package/dist/esm/components/text-area.d.ts.map +1 -0
- package/dist/esm/components/text-area.js +2 -0
- package/dist/esm/components/text-area.js.map +7 -0
- package/dist/esm/components/text-area.props.d.ts +67 -0
- package/dist/esm/components/text-area.props.d.ts.map +1 -0
- package/dist/esm/components/text-area.props.js +2 -0
- package/dist/esm/components/text-area.props.js.map +7 -0
- package/dist/esm/components/text-field.d.ts +22 -0
- package/dist/esm/components/text-field.d.ts.map +1 -0
- package/dist/esm/components/text-field.js +2 -0
- package/dist/esm/components/text-field.js.map +7 -0
- package/dist/esm/components/text-field.props.d.ts +126 -0
- package/dist/esm/components/text-field.props.d.ts.map +1 -0
- package/dist/esm/components/text-field.props.js +2 -0
- package/dist/esm/components/text-field.props.js.map +7 -0
- package/dist/esm/components/text.d.ts +25 -0
- package/dist/esm/components/text.d.ts.map +1 -0
- package/dist/esm/components/text.js +2 -0
- package/dist/esm/components/text.js.map +7 -0
- package/dist/esm/components/text.props.d.ts +61 -0
- package/dist/esm/components/text.props.d.ts.map +1 -0
- package/dist/esm/components/text.props.js +2 -0
- package/dist/esm/components/text.props.js.map +7 -0
- package/dist/esm/components/theme-panel.d.ts +25 -0
- package/dist/esm/components/theme-panel.d.ts.map +1 -0
- package/dist/esm/components/theme-panel.js +2 -0
- package/dist/esm/components/theme-panel.js.map +7 -0
- package/dist/esm/components/theme.d.ts +43 -0
- package/dist/esm/components/theme.d.ts.map +1 -0
- package/dist/esm/components/theme.js +2 -0
- package/dist/esm/components/theme.js.map +7 -0
- package/dist/esm/components/theme.props.d.ts +112 -0
- package/dist/esm/components/theme.props.d.ts.map +1 -0
- package/dist/esm/components/theme.props.js +2 -0
- package/dist/esm/components/theme.props.js.map +7 -0
- package/dist/esm/components/toggle-button.d.ts +63 -0
- package/dist/esm/components/toggle-button.d.ts.map +1 -0
- package/dist/esm/components/toggle-button.js +2 -0
- package/dist/esm/components/toggle-button.js.map +7 -0
- package/dist/esm/components/toggle-icon-button.d.ts +107 -0
- package/dist/esm/components/toggle-icon-button.d.ts.map +1 -0
- package/dist/esm/components/toggle-icon-button.js +2 -0
- package/dist/esm/components/toggle-icon-button.js.map +7 -0
- package/dist/esm/components/toolbar.d.ts +40 -0
- package/dist/esm/components/toolbar.d.ts.map +1 -0
- package/dist/esm/components/toolbar.js +2 -0
- package/dist/esm/components/toolbar.js.map +7 -0
- package/dist/esm/components/tooltip.d.ts +14 -0
- package/dist/esm/components/tooltip.d.ts.map +1 -0
- package/dist/esm/components/tooltip.js +2 -0
- package/dist/esm/components/tooltip.js.map +7 -0
- package/dist/esm/components/tooltip.props.d.ts +31 -0
- package/dist/esm/components/tooltip.props.d.ts.map +1 -0
- package/dist/esm/components/tooltip.props.js +2 -0
- package/dist/esm/components/tooltip.props.js.map +7 -0
- package/dist/esm/components/user-card.d.ts +12 -0
- package/dist/esm/components/user-card.d.ts.map +1 -0
- package/dist/esm/components/user-card.js +2 -0
- package/dist/esm/components/user-card.js.map +7 -0
- package/dist/esm/components/user-card.props.d.ts +63 -0
- package/dist/esm/components/user-card.props.d.ts.map +1 -0
- package/dist/esm/components/user-card.props.js +2 -0
- package/dist/esm/components/user-card.props.js.map +7 -0
- package/dist/esm/components/virtual-menu.d.ts +116 -0
- package/dist/esm/components/virtual-menu.d.ts.map +1 -0
- package/dist/esm/components/virtual-menu.js +2 -0
- package/dist/esm/components/virtual-menu.js.map +7 -0
- package/dist/esm/components/visually-hidden.d.ts +5 -0
- package/dist/esm/components/visually-hidden.d.ts.map +1 -0
- package/dist/esm/components/visually-hidden.js +2 -0
- package/dist/esm/components/visually-hidden.js.map +7 -0
- package/dist/esm/helpers/component-props.d.ts +8 -0
- package/dist/esm/helpers/component-props.d.ts.map +1 -0
- package/dist/esm/helpers/component-props.js +2 -0
- package/dist/esm/helpers/component-props.js.map +7 -0
- package/dist/esm/helpers/extract-margin-props.d.ts +12 -0
- package/dist/esm/helpers/extract-margin-props.d.ts.map +1 -0
- package/dist/esm/helpers/extract-margin-props.js +2 -0
- package/dist/esm/helpers/extract-margin-props.js.map +7 -0
- package/dist/esm/helpers/extract-props.d.ts +23 -0
- package/dist/esm/helpers/extract-props.d.ts.map +1 -0
- package/dist/esm/helpers/extract-props.js +2 -0
- package/dist/esm/helpers/extract-props.js.map +7 -0
- package/dist/esm/helpers/font-config.d.ts +106 -0
- package/dist/esm/helpers/font-config.d.ts.map +1 -0
- package/dist/esm/helpers/font-config.js +2 -0
- package/dist/esm/helpers/font-config.js.map +7 -0
- package/dist/esm/helpers/get-margin-styles.d.ts +3 -0
- package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -0
- package/dist/esm/helpers/get-margin-styles.js +2 -0
- package/dist/esm/helpers/get-margin-styles.js.map +7 -0
- package/dist/esm/helpers/get-matching-gray-color.d.ts +5 -0
- package/dist/esm/helpers/get-matching-gray-color.d.ts.map +1 -0
- package/dist/esm/helpers/get-matching-gray-color.js +2 -0
- package/dist/esm/helpers/get-matching-gray-color.js.map +7 -0
- package/dist/esm/helpers/get-responsive-styles.d.ts +26 -0
- package/dist/esm/helpers/get-responsive-styles.d.ts.map +1 -0
- package/dist/esm/helpers/get-responsive-styles.js +2 -0
- package/dist/esm/helpers/get-responsive-styles.js.map +7 -0
- package/dist/esm/helpers/get-subtree.d.ts +13 -0
- package/dist/esm/helpers/get-subtree.d.ts.map +1 -0
- package/dist/esm/helpers/get-subtree.js +2 -0
- package/dist/esm/helpers/get-subtree.js.map +7 -0
- package/dist/esm/helpers/has-own-property.d.ts +4 -0
- package/dist/esm/helpers/has-own-property.d.ts.map +1 -0
- package/dist/esm/helpers/has-own-property.js +2 -0
- package/dist/esm/helpers/has-own-property.js.map +7 -0
- package/dist/esm/helpers/index.d.ts +16 -0
- package/dist/esm/helpers/index.d.ts.map +1 -0
- package/dist/esm/helpers/index.js +2 -0
- package/dist/esm/helpers/index.js.map +7 -0
- package/dist/esm/helpers/inert.d.ts +3 -0
- package/dist/esm/helpers/inert.d.ts.map +1 -0
- package/dist/esm/helpers/inert.js +2 -0
- package/dist/esm/helpers/inert.js.map +7 -0
- package/dist/esm/helpers/input-attributes.d.ts +7 -0
- package/dist/esm/helpers/input-attributes.d.ts.map +1 -0
- package/dist/esm/helpers/input-attributes.js +2 -0
- package/dist/esm/helpers/input-attributes.js.map +7 -0
- package/dist/esm/helpers/is-responsive-object.d.ts +3 -0
- package/dist/esm/helpers/is-responsive-object.d.ts.map +1 -0
- package/dist/esm/helpers/is-responsive-object.js +2 -0
- package/dist/esm/helpers/is-responsive-object.js.map +7 -0
- package/dist/esm/helpers/map-prop-values.d.ts +10 -0
- package/dist/esm/helpers/map-prop-values.d.ts.map +1 -0
- package/dist/esm/helpers/map-prop-values.js +2 -0
- package/dist/esm/helpers/map-prop-values.js.map +7 -0
- package/dist/esm/helpers/merge-styles.d.ts +4 -0
- package/dist/esm/helpers/merge-styles.d.ts.map +1 -0
- package/dist/esm/helpers/merge-styles.js +2 -0
- package/dist/esm/helpers/merge-styles.js.map +7 -0
- package/dist/esm/helpers/normalize-to-px.d.ts +10 -0
- package/dist/esm/helpers/normalize-to-px.d.ts.map +1 -0
- package/dist/esm/helpers/normalize-to-px.js +2 -0
- package/dist/esm/helpers/normalize-to-px.js.map +7 -0
- package/dist/esm/helpers/require-react-element.d.ts +4 -0
- package/dist/esm/helpers/require-react-element.d.ts.map +1 -0
- package/dist/esm/helpers/require-react-element.js +2 -0
- package/dist/esm/helpers/require-react-element.js.map +7 -0
- package/dist/esm/hooks/index.d.ts +5 -0
- package/dist/esm/hooks/index.d.ts.map +1 -0
- package/dist/esm/hooks/index.js +2 -0
- package/dist/esm/hooks/index.js.map +7 -0
- package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts +9 -0
- package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -0
- package/dist/esm/hooks/use-body-pointer-events-cleanup.js +2 -0
- package/dist/esm/hooks/use-body-pointer-events-cleanup.js.map +7 -0
- package/dist/esm/hooks/use-breakpoint.d.ts +11 -0
- package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -0
- package/dist/esm/hooks/use-breakpoint.js +2 -0
- package/dist/esm/hooks/use-breakpoint.js.map +7 -0
- package/dist/esm/hooks/use-live-announcer.d.ts +6 -0
- package/dist/esm/hooks/use-live-announcer.d.ts.map +1 -0
- package/dist/esm/hooks/use-live-announcer.js +2 -0
- package/dist/esm/hooks/use-live-announcer.js.map +7 -0
- package/dist/esm/hooks/use-toggle-state.d.ts +37 -0
- package/dist/esm/hooks/use-toggle-state.d.ts.map +1 -0
- package/dist/esm/hooks/use-toggle-state.js +2 -0
- package/dist/esm/hooks/use-toggle-state.js.map +7 -0
- package/dist/esm/hooks/use-tooltip-wrapper.d.ts +29 -0
- package/dist/esm/hooks/use-tooltip-wrapper.d.ts.map +1 -0
- package/dist/esm/hooks/use-tooltip-wrapper.js +2 -0
- package/dist/esm/hooks/use-tooltip-wrapper.js.map +7 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/package.json +6 -0
- package/dist/esm/props/as-child.prop.d.ts +11 -0
- package/dist/esm/props/as-child.prop.d.ts.map +1 -0
- package/dist/esm/props/as-child.prop.js +2 -0
- package/dist/esm/props/as-child.prop.js.map +7 -0
- package/dist/esm/props/color.prop.d.ts +18 -0
- package/dist/esm/props/color.prop.d.ts.map +1 -0
- package/dist/esm/props/color.prop.js +2 -0
- package/dist/esm/props/color.prop.js.map +7 -0
- package/dist/esm/props/font-family.prop.d.ts +9 -0
- package/dist/esm/props/font-family.prop.d.ts.map +1 -0
- package/dist/esm/props/font-family.prop.js +2 -0
- package/dist/esm/props/font-family.prop.js.map +7 -0
- package/dist/esm/props/gap.props.d.ts +61 -0
- package/dist/esm/props/gap.props.d.ts.map +1 -0
- package/dist/esm/props/gap.props.js +2 -0
- package/dist/esm/props/gap.props.js.map +7 -0
- package/dist/esm/props/height.props.d.ts +58 -0
- package/dist/esm/props/height.props.d.ts.map +1 -0
- package/dist/esm/props/height.props.js +2 -0
- package/dist/esm/props/height.props.js.map +7 -0
- package/dist/esm/props/high-contrast.prop.d.ts +9 -0
- package/dist/esm/props/high-contrast.prop.d.ts.map +1 -0
- package/dist/esm/props/high-contrast.prop.js +2 -0
- package/dist/esm/props/high-contrast.prop.js.map +7 -0
- package/dist/esm/props/index.d.ts +69 -0
- package/dist/esm/props/index.d.ts.map +1 -0
- package/dist/esm/props/index.js +2 -0
- package/dist/esm/props/index.js.map +7 -0
- package/dist/esm/props/layout.props.d.ts +472 -0
- package/dist/esm/props/layout.props.d.ts.map +1 -0
- package/dist/esm/props/layout.props.js +2 -0
- package/dist/esm/props/layout.props.js.map +7 -0
- package/dist/esm/props/leading-trim.prop.d.ts +10 -0
- package/dist/esm/props/leading-trim.prop.d.ts.map +1 -0
- package/dist/esm/props/leading-trim.prop.js +2 -0
- package/dist/esm/props/leading-trim.prop.js.map +7 -0
- package/dist/esm/props/margin.props.d.ts +142 -0
- package/dist/esm/props/margin.props.d.ts.map +1 -0
- package/dist/esm/props/margin.props.js +2 -0
- package/dist/esm/props/margin.props.js.map +7 -0
- package/dist/esm/props/padding.props.d.ts +142 -0
- package/dist/esm/props/padding.props.d.ts.map +1 -0
- package/dist/esm/props/padding.props.js +2 -0
- package/dist/esm/props/padding.props.js.map +7 -0
- package/dist/esm/props/prop-def.d.ts +60 -0
- package/dist/esm/props/prop-def.d.ts.map +1 -0
- package/dist/esm/props/prop-def.js +2 -0
- package/dist/esm/props/prop-def.js.map +7 -0
- package/dist/esm/props/radius.prop.d.ts +10 -0
- package/dist/esm/props/radius.prop.d.ts.map +1 -0
- package/dist/esm/props/radius.prop.js +2 -0
- package/dist/esm/props/radius.prop.js.map +7 -0
- package/dist/esm/props/shadow.props.d.ts +24 -0
- package/dist/esm/props/shadow.props.d.ts.map +1 -0
- package/dist/esm/props/shadow.props.js +2 -0
- package/dist/esm/props/shadow.props.js.map +7 -0
- package/dist/esm/props/text-align.prop.d.ts +10 -0
- package/dist/esm/props/text-align.prop.d.ts.map +1 -0
- package/dist/esm/props/text-align.prop.js +2 -0
- package/dist/esm/props/text-align.prop.js.map +7 -0
- package/dist/esm/props/text-wrap.prop.d.ts +10 -0
- package/dist/esm/props/text-wrap.prop.d.ts.map +1 -0
- package/dist/esm/props/text-wrap.prop.js +2 -0
- package/dist/esm/props/text-wrap.prop.js.map +7 -0
- package/dist/esm/props/truncate.prop.d.ts +8 -0
- package/dist/esm/props/truncate.prop.d.ts.map +1 -0
- package/dist/esm/props/truncate.prop.js +2 -0
- package/dist/esm/props/truncate.prop.js.map +7 -0
- package/dist/esm/props/weight.prop.d.ts +10 -0
- package/dist/esm/props/weight.prop.d.ts.map +1 -0
- package/dist/esm/props/weight.prop.js +2 -0
- package/dist/esm/props/weight.prop.js.map +7 -0
- package/dist/esm/props/width.props.d.ts +58 -0
- package/dist/esm/props/width.props.d.ts.map +1 -0
- package/dist/esm/props/width.props.js +2 -0
- package/dist/esm/props/width.props.js.map +7 -0
- package/layout/components.css +251 -0
- package/layout/tokens.css +29 -0
- package/layout/utilities.css +13158 -0
- package/layout.css +13436 -0
- package/package.json +210 -0
- package/postcss-breakpoints.cjs +110 -0
- package/postcss-whitespace.cjs +27 -0
- package/schemas/base-button.d.ts +2 -0
- package/schemas/base-button.json +284 -0
- package/schemas/button.d.ts +2 -0
- package/schemas/button.json +535 -0
- package/schemas/icon-button.d.ts +2 -0
- package/schemas/icon-button.json +318 -0
- package/schemas/index.d.ts +2 -0
- package/schemas/index.json +2016 -0
- package/schemas/schemas.d.ts +29 -0
- package/schemas/shell-bottom.json +168 -0
- package/schemas/shell-content.json +34 -0
- package/schemas/shell-handle.json +34 -0
- package/schemas/shell-header.json +42 -0
- package/schemas/shell-inspector.json +171 -0
- package/schemas/shell-panel.json +167 -0
- package/schemas/shell-rail.json +132 -0
- package/schemas/shell-root.json +54 -0
- package/schemas/shell-sidebar.json +182 -0
- package/schemas/shell-trigger.json +76 -0
- package/schemas/toggle-button.d.ts +2 -0
- package/schemas/toggle-button.json +543 -0
- package/schemas/toggle-icon-button.d.ts +2 -0
- package/schemas/toggle-icon-button.json +326 -0
- package/schemas-json.d.ts +12 -0
- package/src/components/_internal/base-button.css +694 -0
- package/src/components/_internal/base-button.props.ts +119 -0
- package/src/components/_internal/base-button.tsx +237 -0
- package/src/components/_internal/base-card.css +640 -0
- package/src/components/_internal/base-checkbox.css +436 -0
- package/src/components/_internal/base-checkbox.props.ts +22 -0
- package/src/components/_internal/base-dialog.css +151 -0
- package/src/components/_internal/base-menu.css +504 -0
- package/src/components/_internal/base-menu.props.ts +102 -0
- package/src/components/_internal/base-radio.css +396 -0
- package/src/components/_internal/base-radio.props.ts +22 -0
- package/src/components/_internal/base-sidebar-menu.css +240 -0
- package/src/components/_internal/base-sidebar.css +116 -0
- package/src/components/_internal/base-tab-list.css +240 -0
- package/src/components/_internal/base-tab-list.props.ts +35 -0
- package/src/components/_internal/dropdown-menu-drill-down.tsx +249 -0
- package/src/components/_internal/menu-context.tsx +53 -0
- package/src/components/_internal/shell-bottom.tsx +424 -0
- package/src/components/_internal/shell-handles.tsx +223 -0
- package/src/components/_internal/shell-inspector.tsx +424 -0
- package/src/components/_internal/shell-prop-helpers.ts +54 -0
- package/src/components/_internal/shell-resize.tsx +30 -0
- package/src/components/_internal/shell-sidebar.tsx +505 -0
- package/src/components/accessible-icon.tsx +3 -0
- package/src/components/accordion.css +648 -0
- package/src/components/accordion.props.tsx +90 -0
- package/src/components/accordion.tsx +209 -0
- package/src/components/alert-dialog.css +1 -0
- package/src/components/alert-dialog.props.tsx +22 -0
- package/src/components/alert-dialog.tsx +249 -0
- package/src/components/animations.css +155 -0
- package/src/components/aspect-ratio.tsx +3 -0
- package/src/components/avatar.css +642 -0
- package/src/components/avatar.props.tsx +54 -0
- package/src/components/avatar.tsx +129 -0
- package/src/components/badge.css +246 -0
- package/src/components/badge.props.tsx +32 -0
- package/src/components/badge.tsx +102 -0
- package/src/components/blockquote.css +5 -0
- package/src/components/blockquote.props.tsx +29 -0
- package/src/components/blockquote.tsx +35 -0
- package/src/components/box.css +4 -0
- package/src/components/box.props.tsx +44 -0
- package/src/components/box.tsx +34 -0
- package/src/components/button.css +211 -0
- package/src/components/button.props.tsx +18 -0
- package/src/components/button.tsx +179 -0
- package/src/components/callout.css +196 -0
- package/src/components/callout.props.tsx +30 -0
- package/src/components/callout.tsx +115 -0
- package/src/components/card.css +25 -0
- package/src/components/card.props.tsx +27 -0
- package/src/components/card.tsx +39 -0
- package/src/components/chatbar.css +529 -0
- package/src/components/chatbar.tsx +1274 -0
- package/src/components/checkbox-cards.css +139 -0
- package/src/components/checkbox-cards.props.tsx +29 -0
- package/src/components/checkbox-cards.tsx +143 -0
- package/src/components/checkbox-group.css +35 -0
- package/src/components/checkbox-group.primitive.tsx +208 -0
- package/src/components/checkbox-group.props.tsx +9 -0
- package/src/components/checkbox-group.tsx +164 -0
- package/src/components/checkbox.css +18 -0
- package/src/components/checkbox.props.tsx +1 -0
- package/src/components/checkbox.tsx +67 -0
- package/src/components/code.css +185 -0
- package/src/components/code.props.tsx +32 -0
- package/src/components/code.tsx +40 -0
- package/src/components/combobox.css +202 -0
- package/src/components/combobox.props.tsx +69 -0
- package/src/components/combobox.tsx +631 -0
- package/src/components/container.css +43 -0
- package/src/components/container.props.tsx +84 -0
- package/src/components/container.tsx +59 -0
- package/src/components/context-menu.css +6 -0
- package/src/components/context-menu.props.tsx +6 -0
- package/src/components/context-menu.tsx +445 -0
- package/src/components/data-list.css +249 -0
- package/src/components/data-list.props.tsx +54 -0
- package/src/components/data-list.tsx +100 -0
- package/src/components/dialog.css +13 -0
- package/src/components/dialog.props.tsx +49 -0
- package/src/components/dialog.tsx +234 -0
- package/src/components/dropdown-menu.css +207 -0
- package/src/components/dropdown-menu.props.tsx +8 -0
- package/src/components/dropdown-menu.tsx +701 -0
- package/src/components/em.css +16 -0
- package/src/components/em.props.tsx +11 -0
- package/src/components/em.tsx +22 -0
- package/src/components/flex.css +7 -0
- package/src/components/flex.props.tsx +129 -0
- package/src/components/flex.tsx +34 -0
- package/src/components/grid.css +10 -0
- package/src/components/grid.props.tsx +239 -0
- package/src/components/grid.tsx +34 -0
- package/src/components/heading.css +101 -0
- package/src/components/heading.props.tsx +39 -0
- package/src/components/heading.tsx +68 -0
- package/src/components/hover-card.css +39 -0
- package/src/components/hover-card.props.tsx +37 -0
- package/src/components/hover-card.tsx +72 -0
- package/src/components/icon-button.css +157 -0
- package/src/components/icon-button.props.tsx +1 -0
- package/src/components/icon-button.tsx +153 -0
- package/src/components/icons.tsx +149 -0
- package/src/components/image.css +230 -0
- package/src/components/image.props.ts +163 -0
- package/src/components/image.tsx +316 -0
- package/src/components/index.css +76 -0
- package/src/components/index.tsx +82 -0
- package/src/components/inset.css +111 -0
- package/src/components/inset.props.tsx +90 -0
- package/src/components/inset.tsx +28 -0
- package/src/components/kbd.css +207 -0
- package/src/components/kbd.props.tsx +27 -0
- package/src/components/kbd.tsx +30 -0
- package/src/components/layout.css +5 -0
- package/src/components/link.css +94 -0
- package/src/components/link.props.tsx +34 -0
- package/src/components/link.tsx +37 -0
- package/src/components/navbar.css +70 -0
- package/src/components/navbar.props.tsx +22 -0
- package/src/components/navbar.tsx +169 -0
- package/src/components/popover.css +109 -0
- package/src/components/popover.props.tsx +40 -0
- package/src/components/popover.tsx +282 -0
- package/src/components/portal.tsx +4 -0
- package/src/components/progress.css +232 -0
- package/src/components/progress.props.tsx +23 -0
- package/src/components/progress.tsx +53 -0
- package/src/components/quote.css +16 -0
- package/src/components/quote.props.tsx +11 -0
- package/src/components/quote.tsx +22 -0
- package/src/components/radio-cards.css +123 -0
- package/src/components/radio-cards.props.tsx +29 -0
- package/src/components/radio-cards.tsx +93 -0
- package/src/components/radio-group.css +18 -0
- package/src/components/radio-group.props.tsx +21 -0
- package/src/components/radio-group.tsx +142 -0
- package/src/components/radio.css +1 -0
- package/src/components/radio.props.tsx +1 -0
- package/src/components/radio.tsx +50 -0
- package/src/components/reset.css +246 -0
- package/src/components/reset.tsx +22 -0
- package/src/components/schemas/base-button.schema.ts +339 -0
- package/src/components/schemas/button.schema.ts +198 -0
- package/src/components/schemas/icon-button.schema.ts +142 -0
- package/src/components/schemas/index.ts +114 -0
- package/src/components/schemas/shell.schema.ts +380 -0
- package/src/components/schemas/toggle-button.schema.ts +122 -0
- package/src/components/schemas/toggle-icon-button.schema.ts +195 -0
- package/src/components/scroll-area.css +147 -0
- package/src/components/scroll-area.props.tsx +19 -0
- package/src/components/scroll-area.tsx +106 -0
- package/src/components/section.css +25 -0
- package/src/components/section.props.tsx +63 -0
- package/src/components/section.tsx +36 -0
- package/src/components/segmented-control.css +623 -0
- package/src/components/segmented-control.props.tsx +34 -0
- package/src/components/segmented-control.tsx +108 -0
- package/src/components/select.css +1048 -0
- package/src/components/select.props.tsx +53 -0
- package/src/components/select.tsx +281 -0
- package/src/components/separator.css +50 -0
- package/src/components/separator.props.tsx +28 -0
- package/src/components/separator.tsx +22 -0
- package/src/components/sheet.css +142 -0
- package/src/components/sheet.tsx +309 -0
- package/src/components/shell.context.tsx +154 -0
- package/src/components/shell.css +643 -0
- package/src/components/shell.hooks.ts +178 -0
- package/src/components/shell.tsx +1621 -0
- package/src/components/shell.types.ts +65 -0
- package/src/components/sidebar.css +1394 -0
- package/src/components/sidebar.props.tsx +57 -0
- package/src/components/sidebar.tsx +880 -0
- package/src/components/skeleton.css +55 -0
- package/src/components/skeleton.props.tsx +14 -0
- package/src/components/skeleton.tsx +48 -0
- package/src/components/slider.css +403 -0
- package/src/components/slider.props.tsx +25 -0
- package/src/components/slider.tsx +246 -0
- package/src/components/slot.tsx +4 -0
- package/src/components/spinner.css +100 -0
- package/src/components/spinner.props.tsx +13 -0
- package/src/components/spinner.tsx +64 -0
- package/src/components/strong.css +13 -0
- package/src/components/strong.props.tsx +11 -0
- package/src/components/strong.tsx +24 -0
- package/src/components/switch.css +241 -0
- package/src/components/switch.props.tsx +33 -0
- package/src/components/switch.tsx +48 -0
- package/src/components/tab-nav.css +5 -0
- package/src/components/tab-nav.props.tsx +13 -0
- package/src/components/tab-nav.tsx +81 -0
- package/src/components/table.css +158 -0
- package/src/components/table.props.tsx +83 -0
- package/src/components/table.tsx +137 -0
- package/src/components/tabs.css +12 -0
- package/src/components/tabs.props.tsx +12 -0
- package/src/components/tabs.tsx +108 -0
- package/src/components/text-area.css +655 -0
- package/src/components/text-area.props.tsx +43 -0
- package/src/components/text-area.tsx +93 -0
- package/src/components/text-field.css +901 -0
- package/src/components/text-field.props.tsx +86 -0
- package/src/components/text-field.tsx +416 -0
- package/src/components/text.css +110 -0
- package/src/components/text.props.tsx +38 -0
- package/src/components/text.tsx +65 -0
- package/src/components/theme-panel.css +67 -0
- package/src/components/theme-panel.tsx +770 -0
- package/src/components/theme.props.tsx +96 -0
- package/src/components/theme.tsx +305 -0
- package/src/components/toggle-button.tsx +100 -0
- package/src/components/toggle-icon-button.tsx +167 -0
- package/src/components/toolbar.css +203 -0
- package/src/components/toolbar.tsx +242 -0
- package/src/components/tooltip.css +39 -0
- package/src/components/tooltip.props.tsx +20 -0
- package/src/components/tooltip.tsx +63 -0
- package/src/components/user-card.css +29 -0
- package/src/components/user-card.props.tsx +45 -0
- package/src/components/user-card.tsx +102 -0
- package/src/components/virtual-menu.css +49 -0
- package/src/components/virtual-menu.tsx +482 -0
- package/src/components/visually-hidden.tsx +4 -0
- package/src/helpers/component-props.ts +19 -0
- package/src/helpers/extract-margin-props.ts +6 -0
- package/src/helpers/extract-props.ts +124 -0
- package/src/helpers/font-config.ts +194 -0
- package/src/helpers/get-margin-styles.ts +81 -0
- package/src/helpers/get-matching-gray-color.ts +40 -0
- package/src/helpers/get-responsive-styles.ts +152 -0
- package/src/helpers/get-subtree.ts +22 -0
- package/src/helpers/has-own-property.ts +9 -0
- package/src/helpers/index.ts +15 -0
- package/src/helpers/inert.ts +5 -0
- package/src/helpers/input-attributes.ts +82 -0
- package/src/helpers/is-responsive-object.ts +19 -0
- package/src/helpers/map-prop-values.ts +40 -0
- package/src/helpers/merge-styles.ts +22 -0
- package/src/helpers/normalize-to-px.ts +42 -0
- package/src/helpers/require-react-element.ts +20 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/use-body-pointer-events-cleanup.ts +112 -0
- package/src/hooks/use-breakpoint.ts +63 -0
- package/src/hooks/use-live-announcer.ts +79 -0
- package/src/hooks/use-toggle-state.ts +72 -0
- package/src/hooks/use-tooltip-wrapper.ts +28 -0
- package/src/index.ts +2 -0
- package/src/props/as-child.prop.ts +15 -0
- package/src/props/color.prop.ts +36 -0
- package/src/props/font-family.prop.ts +15 -0
- package/src/props/gap.props.ts +69 -0
- package/src/props/height.props.ts +64 -0
- package/src/props/high-contrast.prop.ts +13 -0
- package/src/props/index.ts +73 -0
- package/src/props/layout.props.ts +427 -0
- package/src/props/leading-trim.prop.ts +16 -0
- package/src/props/margin.props.ts +155 -0
- package/src/props/padding.props.ts +154 -0
- package/src/props/prop-def.ts +93 -0
- package/src/props/radius.prop.ts +15 -0
- package/src/props/shadow.props.ts +30 -0
- package/src/props/text-align.prop.ts +16 -0
- package/src/props/text-wrap.prop.ts +16 -0
- package/src/props/truncate.prop.ts +12 -0
- package/src/props/weight.prop.ts +16 -0
- package/src/props/width.props.ts +64 -0
- package/src/styles/breakpoints.css +5 -0
- package/src/styles/fonts.css +35 -0
- package/src/styles/index.css +6 -0
- package/src/styles/layout.css +3 -0
- package/src/styles/scrollbar.css +31 -0
- package/src/styles/tokens/base.css +9 -0
- package/src/styles/tokens/blur.css +35 -0
- package/src/styles/tokens/color.css +1196 -0
- package/src/styles/tokens/colors/amber.css +36 -0
- package/src/styles/tokens/colors/blue.css +33 -0
- package/src/styles/tokens/colors/bronze.css +33 -0
- package/src/styles/tokens/colors/brown.css +33 -0
- package/src/styles/tokens/colors/crimson.css +33 -0
- package/src/styles/tokens/colors/cyan.css +33 -0
- package/src/styles/tokens/colors/gold.css +33 -0
- package/src/styles/tokens/colors/grass.css +33 -0
- package/src/styles/tokens/colors/gray.css +33 -0
- package/src/styles/tokens/colors/green.css +33 -0
- package/src/styles/tokens/colors/indigo.css +33 -0
- package/src/styles/tokens/colors/iris.css +33 -0
- package/src/styles/tokens/colors/jade.css +33 -0
- package/src/styles/tokens/colors/lime.css +36 -0
- package/src/styles/tokens/colors/mauve.css +33 -0
- package/src/styles/tokens/colors/mint.css +36 -0
- package/src/styles/tokens/colors/olive.css +33 -0
- package/src/styles/tokens/colors/orange.css +33 -0
- package/src/styles/tokens/colors/pink.css +33 -0
- package/src/styles/tokens/colors/plum.css +33 -0
- package/src/styles/tokens/colors/purple.css +33 -0
- package/src/styles/tokens/colors/red.css +33 -0
- package/src/styles/tokens/colors/ruby.css +33 -0
- package/src/styles/tokens/colors/sage.css +33 -0
- package/src/styles/tokens/colors/sand.css +33 -0
- package/src/styles/tokens/colors/sky.css +36 -0
- package/src/styles/tokens/colors/slate.css +33 -0
- package/src/styles/tokens/colors/teal.css +33 -0
- package/src/styles/tokens/colors/tomato.css +33 -0
- package/src/styles/tokens/colors/violet.css +33 -0
- package/src/styles/tokens/colors/yellow.css +36 -0
- package/src/styles/tokens/constants.css +195 -0
- package/src/styles/tokens/cursor.css +11 -0
- package/src/styles/tokens/index.css +38 -0
- package/src/styles/tokens/layout.css +2 -0
- package/src/styles/tokens/opacity.css +32 -0
- package/src/styles/tokens/radius.css +45 -0
- package/src/styles/tokens/scaling.css +17 -0
- package/src/styles/tokens/shadow.css +130 -0
- package/src/styles/tokens/space.css +20 -0
- package/src/styles/tokens/transition.css +189 -0
- package/src/styles/tokens/typography.css +351 -0
- package/src/styles/utilities/align-content.css +33 -0
- package/src/styles/utilities/align-items.css +21 -0
- package/src/styles/utilities/align-self.css +21 -0
- package/src/styles/utilities/display.css +37 -0
- package/src/styles/utilities/flex-basis.css +28 -0
- package/src/styles/utilities/flex-direction.css +17 -0
- package/src/styles/utilities/flex-grow.css +40 -0
- package/src/styles/utilities/flex-shrink.css +40 -0
- package/src/styles/utilities/flex-wrap.css +13 -0
- package/src/styles/utilities/font-weight.css +33 -0
- package/src/styles/utilities/gap.css +193 -0
- package/src/styles/utilities/grid-area.css +33 -0
- package/src/styles/utilities/grid-auto-flow.css +21 -0
- package/src/styles/utilities/grid-column-end.css +61 -0
- package/src/styles/utilities/grid-column-start.css +61 -0
- package/src/styles/utilities/grid-column.css +61 -0
- package/src/styles/utilities/grid-row-end.css +61 -0
- package/src/styles/utilities/grid-row-start.css +61 -0
- package/src/styles/utilities/grid-row.css +61 -0
- package/src/styles/utilities/grid-template-areas.css +28 -0
- package/src/styles/utilities/grid-template-columns.css +61 -0
- package/src/styles/utilities/grid-template-rows.css +61 -0
- package/src/styles/utilities/height.css +28 -0
- package/src/styles/utilities/index.css +10 -0
- package/src/styles/utilities/inset.css +354 -0
- package/src/styles/utilities/justify-content.css +17 -0
- package/src/styles/utilities/justify-items.css +21 -0
- package/src/styles/utilities/justify-self.css +21 -0
- package/src/styles/utilities/layout.css +37 -0
- package/src/styles/utilities/leading-trim.css +32 -0
- package/src/styles/utilities/margin.css +1161 -0
- package/src/styles/utilities/max-height.css +28 -0
- package/src/styles/utilities/max-width.css +28 -0
- package/src/styles/utilities/min-height.css +28 -0
- package/src/styles/utilities/min-width.css +28 -0
- package/src/styles/utilities/overflow.css +49 -0
- package/src/styles/utilities/padding.css +623 -0
- package/src/styles/utilities/position.css +21 -0
- package/src/styles/utilities/resize.css +14 -0
- package/src/styles/utilities/table-layout.css +8 -0
- package/src/styles/utilities/text-align.css +13 -0
- package/src/styles/utilities/text-wrap.css +19 -0
- package/src/styles/utilities/truncate.css +5 -0
- package/src/styles/utilities/vertical-align.css +17 -0
- package/src/styles/utilities/width.css +28 -0
- package/styles.css +41954 -0
- package/tokens/base.css +1628 -0
- package/tokens/colors/amber.css +129 -0
- package/tokens/colors/blue.css +123 -0
- package/tokens/colors/bronze.css +123 -0
- package/tokens/colors/brown.css +123 -0
- package/tokens/colors/crimson.css +123 -0
- package/tokens/colors/cyan.css +123 -0
- package/tokens/colors/gold.css +123 -0
- package/tokens/colors/grass.css +123 -0
- package/tokens/colors/gray.css +123 -0
- package/tokens/colors/green.css +123 -0
- package/tokens/colors/indigo.css +123 -0
- package/tokens/colors/iris.css +123 -0
- package/tokens/colors/jade.css +123 -0
- package/tokens/colors/lime.css +129 -0
- package/tokens/colors/mauve.css +123 -0
- package/tokens/colors/mint.css +129 -0
- package/tokens/colors/olive.css +123 -0
- package/tokens/colors/orange.css +123 -0
- package/tokens/colors/pink.css +123 -0
- package/tokens/colors/plum.css +123 -0
- package/tokens/colors/purple.css +123 -0
- package/tokens/colors/red.css +123 -0
- package/tokens/colors/ruby.css +123 -0
- package/tokens/colors/sage.css +123 -0
- package/tokens/colors/sand.css +123 -0
- package/tokens/colors/sky.css +129 -0
- package/tokens/colors/slate.css +123 -0
- package/tokens/colors/teal.css +123 -0
- package/tokens/colors/tomato.css +123 -0
- package/tokens/colors/violet.css +123 -0
- package/tokens/colors/yellow.css +129 -0
- package/tokens.css +5010 -0
- package/utilities.css +13821 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/shell.tsx", "../../../src/components/sheet.tsx", "../../../src/props/as-child.prop.ts", "../../../src/props/width.props.ts", "../../../src/props/height.props.ts", "../../../src/components/dialog.props.tsx", "../../../src/components/theme.tsx", "../../../src/helpers/get-matching-gray-color.ts", "../../../src/props/color.prop.ts", "../../../src/props/radius.prop.ts", "../../../src/components/theme.props.tsx", "../../../src/components/heading.tsx", "../../../src/props/high-contrast.prop.ts", "../../../src/props/leading-trim.prop.ts", "../../../src/props/text-align.prop.ts", "../../../src/props/text-wrap.prop.ts", "../../../src/props/truncate.prop.ts", "../../../src/props/font-family.prop.ts", "../../../src/props/weight.prop.ts", "../../../src/components/heading.props.tsx", "../../../src/helpers/extract-props.ts", "../../../src/props/prop-def.ts", "../../../src/helpers/has-own-property.ts", "../../../src/helpers/is-responsive-object.ts", "../../../src/helpers/get-responsive-styles.ts", "../../../src/helpers/merge-styles.ts", "../../../src/props/margin.props.ts", "../../../src/components/text.tsx", "../../../src/components/text.props.tsx", "../../../src/helpers/require-react-element.ts", "../../../src/hooks/use-body-pointer-events-cleanup.ts", "../../../src/components/visually-hidden.tsx", "../../../src/components/shell.hooks.ts", "../../../src/components/shell.types.ts", "../../../src/components/shell.context.tsx", "../../../src/components/_internal/shell-resize.tsx", "../../../src/components/_internal/shell-handles.tsx", "../../../src/components/_internal/shell-prop-helpers.ts", "../../../src/components/_internal/shell-sidebar.tsx", "../../../src/helpers/normalize-to-px.ts", "../../../src/components/_internal/shell-bottom.tsx", "../../../src/components/_internal/shell-inspector.tsx", "../../../src/hooks/use-breakpoint.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Shell Component - Layout Engine + Chrome\n *\n * Philosophy:\n * - Shell = layout engine + chrome\n * - Manages layout state: expanded/collapsed, fixed/overlay, sizes\n * - Does not manage content/navigation state\n * - Provides unstyled primitives (slots, triggers)\n * - Enforces composition rules (Rail \u2194 Panel dependency, Sidebar exclusivity)\n *\n * Core Slots:\n * - Header: global top bar\n * - Rail: slim nav strip\n * - Panel: sidebar next to rail\n * - Sidebar: alternative to Rail+Panel (exclusive)\n * - Content: main work area\n * - Inspector: right-side panel\n * - Bottom: bottom panel\n *\n * Composition Rules:\n * - Rail + Panel: valid together (Rail collapse \u2192 Panel collapse)\n * - Sidebar: cannot coexist with Rail or Panel\n * - Content: always required\n * - Inspector/Bottom: optional, independent\n */\n'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport * as Sheet from './sheet.js';\nimport { VisuallyHidden } from './visually-hidden.js';\nimport { useResponsivePresentation, useResponsiveInitialState } from './shell.hooks.js';\nimport { PaneResizeContext } from './_internal/shell-resize.js';\nimport { PaneHandle, PanelHandle } from './_internal/shell-handles.js';\nimport { omitPaneProps, extractPaneDomProps, mapResponsiveBooleanToPaneMode } from './_internal/shell-prop-helpers.js';\nimport { Sidebar } from './_internal/shell-sidebar.js';\nimport { Bottom } from './_internal/shell-bottom.js';\nimport { Inspector } from './_internal/shell-inspector.js';\nimport type { PresentationValue, ResponsivePresentation, PaneMode, SidebarMode, PaneSizePersistence, Breakpoint, PaneTarget, Responsive, PaneBaseProps, CSSPropertiesWithVars } from './shell.types.js';\nimport { normalizeToPx } from '../helpers/normalize-to-px.js';\nimport { useBreakpoint } from '../hooks/use-breakpoint.js';\nimport {\n ShellProvider,\n useShell,\n LeftModeContext,\n useLeftMode,\n PanelModeContext,\n usePanelMode,\n SidebarModeContext,\n useSidebarMode,\n InspectorModeContext,\n useInspectorMode,\n BottomModeContext,\n useBottomMode,\n PresentationContext,\n PeekContext,\n usePeek,\n ActionsContext,\n useShellActions,\n CompositionContext,\n InsetContext,\n useInset,\n type InsetPaneId,\n} from './shell.context.js';\n\n// Shell context is provided via ShellProvider (see shell.context.tsx)\n\n// Pane resize context moved to ./_internal/shell-resize\n\n// Local PaneHandle moved to ./_internal/shell-handles\n// Removed local PaneHandle implementation; using internal PaneHandle\n\n// Composed Handle wrappers per pane\n// Handles moved to ./_internal/shell-handles\n\n// Hook to resolve responsive presentation\n// useResponsivePresentation moved to shell.hooks.ts\n\n// Hook to resolve responsive mode defaults\n// Removed: defaultMode responsiveness\n\n// useBreakpoint hook moved to ../hooks/use-breakpoint.ts\n\n// Reducer-based pane state management to simplify cascading rules\ntype PaneState = {\n leftMode: PaneMode;\n panelMode: PaneMode;\n sidebarMode: SidebarMode;\n inspectorMode: PaneMode;\n bottomMode: PaneMode;\n};\n\ntype PaneAction =\n | { type: 'SET_LEFT_MODE'; mode: PaneMode }\n | { type: 'SET_PANEL_MODE'; mode: PaneMode }\n | { type: 'SET_SIDEBAR_MODE'; mode: SidebarMode }\n | { type: 'SET_INSPECTOR_MODE'; mode: PaneMode }\n | { type: 'SET_BOTTOM_MODE'; mode: PaneMode }\n | { type: 'TOGGLE_PANE'; target: PaneTarget }\n | { type: 'EXPAND_PANE'; target: PaneTarget }\n | { type: 'COLLAPSE_PANE'; target: PaneTarget };\n\nconst SHELL_SLOT = Symbol('rtShellSlot');\n\nfunction assignShellSlot<T extends React.ComponentType<any>>(component: T, slot: string): T {\n (component as any)[SHELL_SLOT] = slot;\n return component;\n}\n\n/**\n * Check if an element matches a component by type or displayName.\n * Uses displayName comparison to handle minification scenarios.\n */\nconst isShellComponentType = (el: React.ReactElement, comp: React.ComponentType & { displayName?: string }): boolean =>\n React.isValidElement(el) && (el.type === comp || (el as any).type?.displayName === comp.displayName);\n\n// Tag imported slot components so isType remains stable after minification\nassignShellSlot(Sidebar as any, 'Shell.Sidebar');\nassignShellSlot(Inspector as any, 'Shell.Inspector');\nassignShellSlot(Bottom as any, 'Shell.Bottom');\n\nfunction paneReducer(state: PaneState, action: PaneAction): PaneState {\n switch (action.type) {\n case 'SET_LEFT_MODE': {\n if (action.mode === 'collapsed') {\n if (state.leftMode === 'collapsed' && state.panelMode === 'collapsed') return state;\n return { ...state, leftMode: 'collapsed', panelMode: 'collapsed' };\n }\n if (state.leftMode === action.mode) return state;\n return { ...state, leftMode: action.mode };\n }\n case 'SET_PANEL_MODE': {\n if (action.mode === 'expanded' && state.leftMode !== 'expanded') {\n return { ...state, leftMode: 'expanded', panelMode: 'expanded' };\n }\n if (state.panelMode === action.mode) return state;\n return { ...state, panelMode: action.mode };\n }\n case 'SET_SIDEBAR_MODE':\n if (state.sidebarMode === action.mode) return state;\n return { ...state, sidebarMode: action.mode };\n case 'SET_INSPECTOR_MODE':\n if (state.inspectorMode === action.mode) return state;\n return { ...state, inspectorMode: action.mode };\n case 'SET_BOTTOM_MODE':\n if (state.bottomMode === action.mode) return state;\n return { ...state, bottomMode: action.mode };\n case 'TOGGLE_PANE': {\n switch (action.target) {\n case 'left':\n case 'rail':\n return { ...state, leftMode: state.leftMode === 'expanded' ? 'collapsed' : 'expanded', panelMode: state.leftMode === 'expanded' ? 'collapsed' : state.panelMode };\n case 'panel': {\n if (state.leftMode === 'collapsed') {\n return { ...state, leftMode: 'expanded', panelMode: 'expanded' };\n }\n return { ...state, panelMode: state.panelMode === 'expanded' ? 'collapsed' : 'expanded' };\n }\n case 'sidebar': {\n const next: SidebarMode = state.sidebarMode === 'collapsed' ? 'expanded' : state.sidebarMode === 'expanded' ? 'collapsed' : 'expanded';\n return { ...state, sidebarMode: next };\n }\n case 'inspector':\n return { ...state, inspectorMode: state.inspectorMode === 'expanded' ? 'collapsed' : 'expanded' };\n case 'bottom':\n return { ...state, bottomMode: state.bottomMode === 'expanded' ? 'collapsed' : 'expanded' };\n default:\n return state;\n }\n }\n case 'EXPAND_PANE': {\n switch (action.target) {\n case 'left':\n case 'rail':\n if (state.leftMode === 'expanded') return state;\n return { ...state, leftMode: 'expanded' };\n case 'panel':\n if (state.leftMode === 'expanded' && state.panelMode === 'expanded') return state;\n return { ...state, leftMode: 'expanded', panelMode: 'expanded' };\n case 'sidebar':\n if (state.sidebarMode === 'expanded') return state;\n return { ...state, sidebarMode: 'expanded' };\n case 'inspector':\n if (state.inspectorMode === 'expanded') return state;\n return { ...state, inspectorMode: 'expanded' };\n case 'bottom':\n if (state.bottomMode === 'expanded') return state;\n return { ...state, bottomMode: 'expanded' };\n default:\n return state;\n }\n }\n case 'COLLAPSE_PANE': {\n switch (action.target) {\n case 'left':\n case 'rail':\n if (state.leftMode === 'collapsed' && state.panelMode === 'collapsed') return state;\n return { ...state, leftMode: 'collapsed', panelMode: 'collapsed' };\n case 'panel':\n if (state.panelMode === 'collapsed') return state;\n return { ...state, panelMode: 'collapsed' };\n case 'sidebar':\n if (state.sidebarMode === 'collapsed') return state;\n return { ...state, sidebarMode: 'collapsed' };\n case 'inspector':\n if (state.inspectorMode === 'collapsed') return state;\n return { ...state, inspectorMode: 'collapsed' };\n case 'bottom':\n if (state.bottomMode === 'collapsed') return state;\n return { ...state, bottomMode: 'collapsed' };\n default:\n return state;\n }\n }\n }\n return state;\n}\n\n// Root Component\ninterface ShellRootProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n height?: 'full' | 'auto' | string | number;\n}\n\nconst Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, children, height = 'full', ...props }, ref) => {\n const { breakpoint: currentBreakpoint, ready: currentBreakpointReady } = useBreakpoint();\n\n // Store hasPanelDefaultOpen for use in passthrough props (computed once during lazy init)\n const hasPanelDefaultOpenRef = React.useRef<boolean>(false);\n\n // Pane state management via reducer with lazy initialization\n // This computation only runs once on mount, not on every render\n const [paneState, dispatchPane] = React.useReducer(paneReducer, children, (initialChildren) => {\n const childArray = React.Children.toArray(initialChildren) as React.ReactElement[];\n\n // Compute initial defaults from immediate children (one-time, uncontrolled defaults)\n const hasPanelDefaultOpen = childArray.some(\n (el) => React.isValidElement(el) && (el as any).type?.displayName === 'Shell.Panel' && Boolean((el as any).props?.defaultOpen),\n );\n // Store for use in passthrough props\n hasPanelDefaultOpenRef.current = hasPanelDefaultOpen;\n\n // Rail defaults to open (true) unless explicitly set to false\n // Supports responsive objects: { initial: false, md: true }\n const railEl = childArray.find((el) => React.isValidElement(el) && (el as any).type?.displayName === 'Shell.Rail');\n const railDefaultOpen = railEl ? (railEl as any).props?.defaultOpen : undefined;\n const hasRailDefaultOpen = (() => {\n if (!railEl) return false;\n if (railDefaultOpen === undefined) return true; // Default to open\n if (typeof railDefaultOpen === 'boolean') return railDefaultOpen;\n // Responsive object - use 'initial' value, or first defined value, or default true\n if (typeof railDefaultOpen === 'object') {\n return railDefaultOpen.initial ?? Object.values(railDefaultOpen)[0] ?? true;\n }\n return true;\n })();\n\n const hasInspectorDefaultOpen = childArray.some(\n (el) => React.isValidElement(el) && (el as any).type?.displayName === 'Shell.Inspector' && Boolean((el as any).props?.defaultOpen),\n );\n const hasInspectorOpenControlled = childArray.some(\n (el) =>\n React.isValidElement(el) &&\n (el as any).type?.displayName === 'Shell.Inspector' &&\n typeof (el as any).props?.open !== 'undefined' &&\n Boolean((el as any).props?.open),\n );\n\n // Detect Panel controlled open state for initial reducer state\n const hasPanelOpenControlled = childArray.some((el) => {\n if (!React.isValidElement(el) || (el as any).type?.displayName !== 'Shell.Panel') return false;\n const openProp = (el as any).props?.open;\n if (typeof openProp === 'undefined') return false;\n if (typeof openProp === 'boolean') return openProp;\n // Responsive object - check 'initial' or first truthy value\n if (typeof openProp === 'object' && openProp !== null) {\n return openProp.initial ?? Object.values(openProp)[0] ?? false;\n }\n return false;\n });\n\n // Detect Sidebar initial state from props\n const getSidebarInitialState = (): SidebarMode => {\n const sidebarEl = childArray.find((el) => React.isValidElement(el) && (el as any).type?.displayName === 'Shell.Sidebar');\n if (!sidebarEl) return 'expanded';\n const sidebarProps = (sidebarEl as any).props;\n // Check controlled state first\n if (typeof sidebarProps?.state !== 'undefined') {\n if (typeof sidebarProps.state === 'string') return sidebarProps.state as SidebarMode;\n // Responsive object - use 'initial' breakpoint or first defined value\n if (typeof sidebarProps.state === 'object') {\n return (sidebarProps.state.initial ?? Object.values(sidebarProps.state)[0] ?? 'expanded') as SidebarMode;\n }\n }\n // Check defaultState\n if (typeof sidebarProps?.defaultState !== 'undefined') {\n if (typeof sidebarProps.defaultState === 'string') return sidebarProps.defaultState as SidebarMode;\n if (typeof sidebarProps.defaultState === 'object') {\n return (sidebarProps.defaultState.initial ?? Object.values(sidebarProps.defaultState)[0] ?? 'expanded') as SidebarMode;\n }\n }\n return 'expanded';\n };\n\n // Detect Bottom initial state from props\n const getBottomInitialState = (): PaneMode => {\n const bottomEl = childArray.find((el) => React.isValidElement(el) && (el as any).type?.displayName === 'Shell.Bottom');\n if (!bottomEl) return 'collapsed';\n const bottomProps = (bottomEl as any).props;\n // Check controlled open first\n if (typeof bottomProps?.open !== 'undefined') {\n if (typeof bottomProps.open === 'boolean') return bottomProps.open ? 'expanded' : 'collapsed';\n // Responsive object - use 'initial' breakpoint or first defined value\n if (typeof bottomProps.open === 'object') {\n const val = bottomProps.open.initial ?? Object.values(bottomProps.open)[0];\n return val ? 'expanded' : 'collapsed';\n }\n }\n // Check defaultOpen\n if (typeof bottomProps?.defaultOpen !== 'undefined') {\n return bottomProps.defaultOpen ? 'expanded' : 'collapsed';\n }\n return 'collapsed';\n };\n\n return {\n leftMode: hasPanelDefaultOpen || hasPanelOpenControlled || hasRailDefaultOpen ? 'expanded' : ('collapsed' as PaneMode),\n panelMode: hasPanelDefaultOpen || hasPanelOpenControlled ? 'expanded' : ('collapsed' as PaneMode),\n sidebarMode: getSidebarInitialState(),\n inspectorMode: hasInspectorDefaultOpen || hasInspectorOpenControlled ? 'expanded' : ('collapsed' as PaneMode),\n bottomMode: getBottomInitialState(),\n };\n });\n const setLeftMode = React.useCallback((mode: PaneMode) => dispatchPane({ type: 'SET_LEFT_MODE', mode }), []);\n const setPanelMode = React.useCallback((mode: PaneMode) => dispatchPane({ type: 'SET_PANEL_MODE', mode }), []);\n const setSidebarMode = React.useCallback((mode: SidebarMode) => dispatchPane({ type: 'SET_SIDEBAR_MODE', mode }), []);\n const setInspectorMode = React.useCallback((mode: PaneMode) => dispatchPane({ type: 'SET_INSPECTOR_MODE', mode }), []);\n const setBottomMode = React.useCallback((mode: PaneMode) => dispatchPane({ type: 'SET_BOTTOM_MODE', mode }), []);\n\n // Removed: defaultMode responsiveness and manual change tracking\n\n // Composition detection\n const [hasLeft, setHasLeft] = React.useState(false);\n const [hasSidebar, setHasSidebar] = React.useState(false);\n\n // Customizable sidebar toggle sequencing\n const sidebarToggleComputerRef = React.useRef<(current: SidebarMode) => SidebarMode>((current) => (current === 'collapsed' ? 'thin' : current === 'thin' ? 'expanded' : 'collapsed'));\n const setSidebarToggleComputer = React.useCallback((fn: (current: SidebarMode) => SidebarMode) => {\n sidebarToggleComputerRef.current = fn;\n }, []);\n\n // Reducer handles left\u2192panel cascade; no effect needed\n\n // Composition validation\n React.useLayoutEffect(() => {\n if (hasSidebar && hasLeft) {\n console.warn('Shell: Sidebar cannot coexist with Rail or Panel. Use either Rail+Panel OR Sidebar.');\n }\n }, [hasSidebar, hasLeft]);\n\n // Left presentation + defaults from children\n const [devLeftPres, setDevLeftPres] = React.useState<PresentationValue | undefined>(undefined);\n const onLeftPres = React.useCallback((p: PresentationValue) => setDevLeftPres(p), []);\n const railDefaultSizeRef = React.useRef<number>(64);\n const panelDefaultSizeRef = React.useRef<number>(288);\n const onRailDefaults = React.useCallback((size: number) => {\n railDefaultSizeRef.current = size;\n }, []);\n const onPanelDefaults = React.useCallback((size: number) => {\n panelDefaultSizeRef.current = size;\n }, []);\n\n // Determine children presence for left composition\n const hasLeftChildren = React.useMemo(() => {\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n return childArray.some((el) => isShellComponentType(el, Rail) || isShellComponentType(el, Panel));\n }, [children]);\n\n const hasSidebarChildren = React.useMemo(() => {\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n return childArray.some((el) => isShellComponentType(el, Sidebar));\n }, [children]);\n\n // Keep a ref to sidebar mode so togglePane doesn't depend on it,\n // preventing ActionsContext churn on every sidebar mode change\n const sidebarModeRef = React.useRef(paneState.sidebarMode);\n sidebarModeRef.current = paneState.sidebarMode;\n\n const togglePane = React.useCallback(\n (target: PaneTarget) => {\n if (target === 'sidebar') {\n const next = sidebarToggleComputerRef.current(sidebarModeRef.current as SidebarMode);\n setSidebarMode(next);\n return;\n }\n dispatchPane({ type: 'TOGGLE_PANE', target });\n },\n [setSidebarMode],\n );\n\n const expandPane = React.useCallback(\n (target: PaneTarget) => {\n if (target === 'sidebar') return setSidebarMode('expanded');\n dispatchPane({ type: 'EXPAND_PANE', target });\n },\n [setSidebarMode],\n );\n\n const collapsePane = React.useCallback(\n (target: PaneTarget) => {\n if (target === 'sidebar') return setSidebarMode('collapsed');\n dispatchPane({ type: 'COLLAPSE_PANE', target });\n },\n [setSidebarMode],\n );\n\n const baseContextValue = React.useMemo(\n () => ({\n leftMode: paneState.leftMode,\n setLeftMode,\n panelMode: paneState.panelMode,\n setPanelMode,\n sidebarMode: paneState.sidebarMode,\n setSidebarMode,\n inspectorMode: paneState.inspectorMode,\n setInspectorMode,\n bottomMode: paneState.bottomMode,\n setBottomMode,\n hasLeft,\n setHasLeft,\n hasSidebar,\n setHasSidebar,\n currentBreakpoint,\n currentBreakpointReady,\n leftResolvedPresentation: devLeftPres,\n togglePane,\n expandPane,\n collapsePane,\n setSidebarToggleComputer,\n onLeftPres,\n onRailDefaults,\n onPanelDefaults,\n }),\n [\n paneState.leftMode,\n setLeftMode,\n paneState.panelMode,\n setPanelMode,\n paneState.sidebarMode,\n setSidebarMode,\n paneState.inspectorMode,\n setInspectorMode,\n paneState.bottomMode,\n setBottomMode,\n hasLeft,\n hasSidebar,\n currentBreakpoint,\n currentBreakpointReady,\n devLeftPres,\n togglePane,\n expandPane,\n collapsePane,\n setSidebarToggleComputer,\n onLeftPres,\n onRailDefaults,\n onPanelDefaults,\n ],\n );\n\n // Organize children by type \u2014 single pass instead of 7 filter calls\n const { headerEls, railEls, panelEls, sidebarEls, contentEls, inspectorEls, bottomEls } = React.useMemo(() => {\n const result = {\n headerEls: [] as React.ReactElement[],\n railEls: [] as React.ReactElement[],\n panelEls: [] as React.ReactElement[],\n sidebarEls: [] as React.ReactElement[],\n contentEls: [] as React.ReactElement[],\n inspectorEls: [] as React.ReactElement[],\n bottomEls: [] as React.ReactElement[],\n };\n for (const el of React.Children.toArray(children) as React.ReactElement[]) {\n if (isShellComponentType(el, Header)) result.headerEls.push(el);\n else if (isShellComponentType(el, Rail)) result.railEls.push(el);\n else if (isShellComponentType(el, Panel)) result.panelEls.push(el);\n else if (isShellComponentType(el, Sidebar)) result.sidebarEls.push(el);\n else if (isShellComponentType(el, Content)) result.contentEls.push(el);\n else if (isShellComponentType(el, Inspector)) result.inspectorEls.push(el);\n else if (isShellComponentType(el, Bottom)) result.bottomEls.push(el);\n }\n return result;\n }, [children]);\n\n // Controlled sync in Root: mirror first Rail/Panel open if provided\n const firstRailOpen = (railEls[0] as any)?.props?.open;\n const resolvedFirstRailOpen = React.useMemo(() => {\n if (typeof firstRailOpen === 'undefined') return undefined;\n if (typeof firstRailOpen === 'boolean') return firstRailOpen;\n if (typeof firstRailOpen !== 'object' || firstRailOpen === null) return Boolean(firstRailOpen);\n\n const responsive = firstRailOpen as Partial<Record<Breakpoint, boolean>>;\n if (responsive[currentBreakpoint] !== undefined) return responsive[currentBreakpoint];\n\n const fallbackOrder: Breakpoint[] = ['xl', 'lg', 'md', 'sm', 'xs', 'initial'];\n const startIdx = fallbackOrder.indexOf(currentBreakpoint);\n for (let i = startIdx + 1; i < fallbackOrder.length; i++) {\n const bp = fallbackOrder[i];\n if (responsive[bp] !== undefined) return responsive[bp];\n }\n return undefined;\n }, [firstRailOpen, currentBreakpoint]);\n\n const firstPanelOpen = (panelEls[0] as any)?.props?.open;\n const resolvedFirstPanelOpen = React.useMemo(() => {\n if (typeof firstPanelOpen === 'undefined') return undefined;\n if (typeof firstPanelOpen === 'boolean') return firstPanelOpen;\n if (typeof firstPanelOpen !== 'object' || firstPanelOpen === null) return Boolean(firstPanelOpen);\n\n const responsive = firstPanelOpen as Partial<Record<Breakpoint, boolean>>;\n if (responsive[currentBreakpoint] !== undefined) return responsive[currentBreakpoint];\n\n const fallbackOrder: Breakpoint[] = ['xl', 'lg', 'md', 'sm', 'xs', 'initial'];\n const startIdx = fallbackOrder.indexOf(currentBreakpoint);\n for (let i = startIdx + 1; i < fallbackOrder.length; i++) {\n const bp = fallbackOrder[i];\n if (responsive[bp] !== undefined) return responsive[bp];\n }\n return undefined;\n }, [firstPanelOpen, currentBreakpoint]);\n\n const controlSeqRef = React.useRef(0);\n const lastRailChangeRef = React.useRef(0);\n const lastPanelChangeRef = React.useRef(0);\n const lastRailOpenRef = React.useRef<boolean | undefined>(resolvedFirstRailOpen);\n const lastPanelOpenRef = React.useRef<boolean | undefined>(resolvedFirstPanelOpen);\n\n React.useLayoutEffect(() => {\n if (resolvedFirstRailOpen === undefined) {\n lastRailOpenRef.current = undefined;\n return;\n }\n if (lastRailOpenRef.current === resolvedFirstRailOpen) return;\n lastRailOpenRef.current = resolvedFirstRailOpen;\n lastRailChangeRef.current = ++controlSeqRef.current;\n }, [resolvedFirstRailOpen]);\n\n React.useLayoutEffect(() => {\n if (resolvedFirstPanelOpen === undefined) {\n lastPanelOpenRef.current = undefined;\n return;\n }\n if (lastPanelOpenRef.current === resolvedFirstPanelOpen) return;\n lastPanelOpenRef.current = resolvedFirstPanelOpen;\n lastPanelChangeRef.current = ++controlSeqRef.current;\n }, [resolvedFirstPanelOpen]);\n\n React.useLayoutEffect(() => {\n if (typeof resolvedFirstRailOpen === 'undefined') return;\n setLeftMode(resolvedFirstRailOpen ? 'expanded' : 'collapsed');\n }, [resolvedFirstRailOpen, setLeftMode]);\n\n const railOnOpenChange = (railEls[0] as any)?.props?.onOpenChange as\n | ((open: boolean, meta: { reason: 'init' | 'toggle' | 'responsive' | 'panel' }) => void)\n | undefined;\n const panelOnOpenChange = (panelEls[0] as any)?.props?.onOpenChange as\n | ((open: boolean, meta: { reason: 'toggle' | 'left' | 'init' | 'responsive' }) => void)\n | undefined;\n const lastConflictRef = React.useRef<{ railSeq: number; panelSeq: number; action: 'open-rail' | 'close-panel' } | null>(null);\n\n React.useLayoutEffect(() => {\n if (resolvedFirstRailOpen !== false || resolvedFirstPanelOpen !== true) {\n lastConflictRef.current = null;\n return;\n }\n\n const panelWins = lastPanelChangeRef.current > lastRailChangeRef.current;\n const action: 'open-rail' | 'close-panel' = panelWins ? 'open-rail' : 'close-panel';\n const lastConflict = lastConflictRef.current;\n if (lastConflict && lastConflict.railSeq === lastRailChangeRef.current && lastConflict.panelSeq === lastPanelChangeRef.current && lastConflict.action === action) {\n return;\n }\n lastConflictRef.current = { railSeq: lastRailChangeRef.current, panelSeq: lastPanelChangeRef.current, action };\n\n if (panelWins) {\n railOnOpenChange?.(true, { reason: 'panel' });\n } else {\n panelOnOpenChange?.(false, { reason: 'left' });\n }\n }, [resolvedFirstRailOpen, resolvedFirstPanelOpen, railOnOpenChange, panelOnOpenChange]);\n\n const leftControlledOpen = resolvedFirstRailOpen;\n\n const heightStyle = React.useMemo(() => {\n if (height === 'full') return { height: '100vh' };\n if (height === 'auto') return { height: 'auto' };\n if (typeof height === 'string') return { height };\n if (typeof height === 'number') return { height: `${height}px` };\n return {};\n }, [height]);\n\n // Peek state (layout-only overlay without mode changes)\n const [peekTarget, setPeekTarget] = React.useState<PaneTarget | null>(null);\n const peekPane = React.useCallback((target: PaneTarget) => setPeekTarget(target), []);\n const clearPeek = React.useCallback(() => setPeekTarget(null), []);\n\n // Memoized slice context values to avoid notifying unrelated consumers\n const presentationCtxValue = React.useMemo(() => ({ currentBreakpoint, currentBreakpointReady, leftResolvedPresentation: devLeftPres }), [currentBreakpoint, currentBreakpointReady, devLeftPres]);\n const leftModeCtxValue = React.useMemo(() => ({ leftMode: paneState.leftMode, setLeftMode }), [paneState.leftMode, setLeftMode]);\n const panelModeCtxValue = React.useMemo(() => ({ panelMode: paneState.panelMode, setPanelMode }), [paneState.panelMode, setPanelMode]);\n const sidebarModeCtxValue = React.useMemo(() => ({ sidebarMode: paneState.sidebarMode, setSidebarMode }), [paneState.sidebarMode, setSidebarMode]);\n const inspectorModeCtxValue = React.useMemo(() => ({ inspectorMode: paneState.inspectorMode, setInspectorMode }), [paneState.inspectorMode, setInspectorMode]);\n const bottomModeCtxValue = React.useMemo(() => ({ bottomMode: paneState.bottomMode, setBottomMode }), [paneState.bottomMode, setBottomMode]);\n const compositionCtxValue = React.useMemo(() => ({ hasLeft, setHasLeft, hasSidebar, setHasSidebar }), [hasLeft, setHasLeft, hasSidebar, setHasSidebar]);\n\n // Inset state management\n const [insetPanes, setInsetPanes] = React.useState<Set<InsetPaneId>>(new Set());\n const registerInset = React.useCallback((id: InsetPaneId) => {\n setInsetPanes((prev) => {\n if (prev.has(id)) return prev;\n const next = new Set(prev);\n next.add(id);\n return next;\n });\n }, []);\n const unregisterInset = React.useCallback((id: InsetPaneId) => {\n setInsetPanes((prev) => {\n if (!prev.has(id)) return prev;\n const next = new Set(prev);\n next.delete(id);\n return next;\n });\n }, []);\n const hasAnyInset = insetPanes.size > 0;\n const insetCtxValue = React.useMemo(\n () => ({ insetPanes, registerInset, unregisterInset, hasAnyInset }),\n [insetPanes, registerInset, unregisterInset, hasAnyInset],\n );\n const peekCtxValue = React.useMemo(() => ({ peekTarget, setPeekTarget, peekPane, clearPeek }), [peekTarget, setPeekTarget, peekPane, clearPeek]);\n const actionsCtxValue = React.useMemo(() => ({ togglePane, expandPane, collapsePane, setSidebarToggleComputer }), [togglePane, expandPane, collapsePane, setSidebarToggleComputer]);\n\n // Memoized full context value for ShellProvider to prevent unnecessary effect re-runs\n const shellContextValue = React.useMemo(\n () => ({\n ...baseContextValue,\n leftControlledOpen,\n peekTarget,\n setPeekTarget,\n peekPane,\n clearPeek,\n }),\n [baseContextValue, leftControlledOpen, peekTarget, setPeekTarget, peekPane, clearPeek],\n );\n\n // Memoize the Left content to avoid recreating the IIFE on every render\n const leftContent = React.useMemo(() => {\n if (!hasLeftChildren || hasSidebarChildren) return null;\n const firstRail = railEls[0] as any;\n const firstPanel = panelEls[0] as any;\n const leftInset = Boolean(firstRail?.props?.inset) || Boolean(firstPanel?.props?.inset);\n const passthroughProps = firstRail\n ? {\n // Notification passthrough used by Left; not spread to DOM in Left\n onOpenChange: firstRail.props?.onOpenChange,\n open: firstRail.props?.open,\n defaultOpen: firstRail.props?.defaultOpen,\n presentation: firstRail.props?.presentation,\n collapsible: firstRail.props?.collapsible,\n onExpand: firstRail.props?.onExpand,\n onCollapse: firstRail.props?.onCollapse,\n inset: leftInset,\n }\n : { defaultOpen: hasPanelDefaultOpenRef.current ? true : undefined, inset: leftInset };\n return (\n <Left {...(passthroughProps as any)}>\n {railEls}\n {panelEls}\n </Left>\n );\n }, [hasLeftChildren, hasSidebarChildren, railEls, panelEls]);\n\n return (\n <div {...props} ref={ref} className={classNames('rt-ShellRoot', className)} style={{ ...heightStyle, ...props.style }}>\n <ShellProvider value={shellContextValue}>\n <PresentationContext.Provider value={presentationCtxValue}>\n <LeftModeContext.Provider value={leftModeCtxValue}>\n <PanelModeContext.Provider value={panelModeCtxValue}>\n <SidebarModeContext.Provider value={sidebarModeCtxValue}>\n <InspectorModeContext.Provider value={inspectorModeCtxValue}>\n <BottomModeContext.Provider value={bottomModeCtxValue}>\n <CompositionContext.Provider value={compositionCtxValue}>\n <PeekContext.Provider value={peekCtxValue}>\n <ActionsContext.Provider value={actionsCtxValue}>\n <InsetContext.Provider value={insetCtxValue}>\n {headerEls}\n <div\n className=\"rt-ShellBody\"\n data-peek-target={peekTarget ?? undefined}\n data-has-inset={hasAnyInset || undefined}\n style={\n peekTarget === 'rail' || peekTarget === 'panel'\n ? ({\n '--peek-rail-width': `${railDefaultSizeRef.current}px`,\n } as CSSPropertiesWithVars)\n : undefined\n }\n >\n {leftContent ?? sidebarEls}\n {contentEls}\n {inspectorEls}\n </div>\n {bottomEls}\n </InsetContext.Provider>\n </ActionsContext.Provider>\n </PeekContext.Provider>\n </CompositionContext.Provider>\n </BottomModeContext.Provider>\n </InspectorModeContext.Provider>\n </SidebarModeContext.Provider>\n </PanelModeContext.Provider>\n </LeftModeContext.Provider>\n </PresentationContext.Provider>\n </ShellProvider>\n </div>\n );\n}) as PanelComponent;\nRoot.displayName = 'Shell.Root';\n\n// Header\ninterface ShellHeaderProps extends React.ComponentPropsWithoutRef<'header'> {\n height?: number;\n}\n\nconst Header = React.forwardRef<HTMLElement, ShellHeaderProps>(({ className, height = 64, style, ...props }, ref) => (\n <header\n {...props}\n ref={ref}\n className={classNames('rt-ShellHeader', className)}\n style={{\n ...style,\n '--shell-header-height': `${height}px`,\n } as CSSPropertiesWithVars}\n />\n));\nHeader.displayName = 'Shell.Header';\n\n// Pane Props Interface (shared by Panel, Sidebar, Inspector, Bottom)\ntype PaneProps = PaneBaseProps;\n\n// Left container (auto-created for Rail+Panel)\ninterface LeftProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n // New: passthrough from Rail\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean, meta: { reason: 'init' | 'toggle' | 'panel' | 'responsive' }) => void;\n collapsible?: boolean;\n onExpand?: () => void;\n onCollapse?: () => void;\n mode?: never;\n defaultMode?: never;\n onModeChange?: never;\n /** When true, adds margin and triggers gray backdrop on Shell. */\n inset?: boolean;\n}\n\n// Rail (special case)\ntype LeftOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' | 'panel' };\n\ntype RailControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: LeftOpenChangeMeta) => void; defaultOpen?: never };\ntype RailUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: LeftOpenChangeMeta) => void; open?: never };\n\ntype RailProps = React.ComponentPropsWithoutRef<'div'> & {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n collapsible?: boolean;\n onExpand?: () => void;\n onCollapse?: () => void;\n /** When true, adds margin to Rail+Panel and triggers gray backdrop on Shell. */\n inset?: boolean;\n} & (RailControlledProps | RailUncontrolledProps);\n\n// Left container - behaves like Inspector but contains Rail+Panel\nconst LEFT_DOM_OMIT_PROPS = ['open', 'defaultOpen', 'onOpenChange', 'mode', 'defaultMode', 'onModeChange'] as const;\n\nconst Left = React.forwardRef<HTMLDivElement, LeftProps>((initialProps, ref) => {\n const { className, presentation = { initial: 'fixed', sm: 'fixed' }, collapsible: _collapsible = true, onExpand, onCollapse, children, style, inset, ...restProps } = initialProps;\n const { registerInset, unregisterInset } = useInset();\n\n // Register/unregister inset\n React.useEffect(() => {\n if (inset) {\n registerInset('left');\n return () => unregisterInset('left');\n }\n }, [inset, registerInset, unregisterInset]);\n const propsOpen = restProps.open;\n const propsDefaultOpen = restProps.defaultOpen;\n const propsOnOpenChange = restProps.onOpenChange;\n const domProps = omitPaneProps(restProps, LEFT_DOM_OMIT_PROPS);\n const shell = useShell();\n const { setHasLeft } = shell;\n const resolvedPresentation = useResponsivePresentation(presentation);\n const isOverlay = resolvedPresentation === 'overlay';\n const isStacked = resolvedPresentation === 'stacked';\n const localRef = React.useRef<HTMLDivElement | null>(null);\n // Publish resolved presentation so Root can gate peeking in overlay\n React.useEffect(() => {\n shell.onLeftPres?.(resolvedPresentation);\n }, [shell, resolvedPresentation]);\n const setRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n localRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n\n // Register with shell\n React.useEffect(() => {\n setHasLeft(true);\n return () => setHasLeft(false);\n }, [setHasLeft]);\n\n const lastLeftModeRef = React.useRef<PaneMode | null>(null);\n const lastResolvedLeftControlledRef = React.useRef<PaneMode | undefined>(undefined);\n const normalizedLeftControlled = React.useMemo(() => {\n if (typeof propsOpen === 'undefined') return undefined;\n return propsOpen ? 'expanded' : 'collapsed';\n }, [propsOpen]);\n const normalizedLeftDefault = React.useMemo(() => mapResponsiveBooleanToPaneMode(propsDefaultOpen), [propsDefaultOpen]);\n\n // Stable refs for notification callbacks to avoid effect dep churn\n const propsOnOpenChangeRef = React.useRef(propsOnOpenChange);\n const propsOpenRef = React.useRef(propsOpen);\n React.useLayoutEffect(() => {\n propsOnOpenChangeRef.current = propsOnOpenChange;\n propsOpenRef.current = propsOpen;\n });\n\n const { resolvedControlled: resolvedLeftControlled } = useResponsiveInitialState<PaneMode>({\n controlledValue: normalizedLeftControlled,\n defaultValue: normalizedLeftDefault,\n currentValue: shell.leftMode,\n setValue: shell.setLeftMode,\n breakpointReady: shell.currentBreakpointReady,\n onInit: (initial) => propsOnOpenChangeRef.current?.(initial === 'expanded', { reason: 'init' }),\n });\n\n // Emit mode changes for user/internal transitions.\n // In controlled mode, skip when the mode matches the controlled prop (prop-driven sync).\n const prevPanelModeRef = React.useRef<PaneMode | null>(null);\n React.useEffect(() => {\n const prevLeftMode = lastLeftModeRef.current;\n const prevPanelMode = prevPanelModeRef.current;\n\n const prevResolvedControlled = lastResolvedLeftControlledRef.current;\n const controlledChanged = prevResolvedControlled !== resolvedLeftControlled;\n\n if (prevLeftMode !== null && prevLeftMode !== shell.leftMode) {\n const isControlled = typeof propsOpenRef.current !== 'undefined';\n const controlledTarget = resolvedLeftControlled === undefined ? undefined : resolvedLeftControlled === 'expanded';\n const nextOpen = shell.leftMode === 'expanded';\n\n // In controlled mode, only notify when internal mode diverges from the\n // controlled prop \u2014 that means a trigger/cascade changed it, not a prop sync.\n if (!isControlled || (!controlledChanged && nextOpen !== controlledTarget)) {\n let reason: LeftOpenChangeMeta['reason'] = 'toggle';\n const panelDrivenOpen = prevPanelMode !== null && prevPanelMode !== shell.panelMode && prevLeftMode === 'collapsed' && shell.leftMode === 'expanded' && shell.panelMode === 'expanded';\n if (panelDrivenOpen) {\n reason = 'panel';\n }\n propsOnOpenChangeRef.current?.(nextOpen, { reason });\n }\n }\n\n lastLeftModeRef.current = shell.leftMode;\n prevPanelModeRef.current = shell.panelMode;\n lastResolvedLeftControlledRef.current = resolvedLeftControlled;\n }, [shell.leftMode, shell.panelMode, resolvedLeftControlled]);\n\n // Emit expand/collapse events.\n // Use callback refs to avoid re-running effect when inline callbacks change,\n // matching the pattern used by Inspector and Bottom.\n const onExpandRef = React.useRef(onExpand);\n const onCollapseRef = React.useRef(onCollapse);\n React.useLayoutEffect(() => {\n onExpandRef.current = onExpand;\n onCollapseRef.current = onCollapse;\n });\n\n const prevLeftModeForCallbackRef = React.useRef<PaneMode | null>(null);\n const hasLeftInitializedRef = React.useRef(false);\n React.useEffect(() => {\n const currentMode = shell.leftMode;\n\n if (!shell.currentBreakpointReady) {\n prevLeftModeForCallbackRef.current = currentMode;\n return;\n }\n\n if (!hasLeftInitializedRef.current) {\n hasLeftInitializedRef.current = true;\n prevLeftModeForCallbackRef.current = currentMode;\n return;\n }\n\n const prevMode = prevLeftModeForCallbackRef.current;\n\n if (prevMode !== null && prevMode !== currentMode) {\n if (currentMode === 'expanded') {\n onExpandRef.current?.();\n } else if (currentMode === 'collapsed') {\n onCollapseRef.current?.();\n }\n prevLeftModeForCallbackRef.current = currentMode;\n }\n }, [shell.leftMode, shell.currentBreakpointReady]);\n\n const _isExpanded = shell.leftMode === 'expanded';\n\n // Left is not resizable; width derives from Rail/Panel.\n\n if (isOverlay) {\n const open = shell.leftMode === 'expanded';\n // Compute overlay width from child Rail/Panel expanded sizes\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n const railEl = childArray.find((el) => isShellComponentType(el, Rail));\n const panelEl = childArray.find((el) => isShellComponentType(el, Panel));\n const railSize = typeof (railEl as any)?.props?.expandedSize === 'number' ? (railEl as any).props.expandedSize : 64;\n const panelSize = typeof (panelEl as any)?.props?.expandedSize === 'number' ? (panelEl as any).props.expandedSize : 288;\n const hasRail = Boolean(railEl);\n const hasPanel = Boolean(panelEl);\n const overlayPx = (hasRail ? railSize : 0) + (shell.panelMode === 'expanded' && hasPanel ? panelSize : 0);\n return (\n <Sheet.Root open={open} onOpenChange={(o) => shell.setLeftMode(o ? 'expanded' : 'collapsed')}>\n <Sheet.Content\n side=\"start\"\n style={{ padding: 0 }}\n aria-label=\"Navigation\"\n aria-describedby={undefined}\n width={{\n initial: `${overlayPx}px`,\n }}\n >\n <VisuallyHidden>\n <Sheet.Title>Navigation</Sheet.Title>\n </VisuallyHidden>\n <div className=\"rt-ShellLeft\">{children}</div>\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n\n if (isStacked) {\n const open = shell.leftMode === 'expanded';\n // Compute floating width from child Rail/Panel expanded sizes (like overlay)\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n const railEl = childArray.find((el) => isShellComponentType(el, Rail));\n const panelEl = childArray.find((el) => isShellComponentType(el, Panel));\n const _railSize = typeof (railEl as any)?.props?.expandedSize === 'number' ? (railEl as any).props.expandedSize : 64;\n const _panelSize = typeof (panelEl as any)?.props?.expandedSize === 'number' ? (panelEl as any).props.expandedSize : 288;\n const _hasRail = Boolean(railEl);\n const _hasPanel = Boolean(panelEl);\n const _includePanel = _hasPanel && (shell.panelMode === 'expanded' || shell.peekTarget === 'panel');\n\n // Strip control props from DOM spread\n return (\n <div\n {...domProps}\n ref={setRef}\n className={classNames('rt-ShellLeft', className)}\n data-mode={shell.leftMode}\n data-peek={shell.peekTarget === 'left' || shell.peekTarget === 'rail' || shell.peekTarget === 'panel' || undefined}\n data-presentation={resolvedPresentation}\n data-inset={inset || undefined}\n style={{\n ...style,\n }}\n data-open={open || undefined}\n >\n {children}\n </div>\n );\n }\n\n // Strip control/legacy props from DOM spread\n return (\n <div\n {...domProps}\n ref={setRef}\n className={classNames('rt-ShellLeft', className)}\n data-mode={shell.leftMode}\n data-peek={shell.peekTarget === 'left' || shell.peekTarget === 'rail' || shell.peekTarget === 'panel' || undefined}\n data-presentation={resolvedPresentation}\n data-inset={inset || undefined}\n style={{\n ...style,\n }}\n >\n {children}\n </div>\n );\n});\nLeft.displayName = 'Shell.Left';\nassignShellSlot(Left as any, 'Shell.Left');\n\nconst Rail = React.forwardRef<HTMLDivElement, RailProps>((initialProps, ref) => {\n const { className, presentation, expandedSize = 64, collapsible, onExpand, onCollapse, children, style, open, defaultOpen, onOpenChange, inset: _inset, ...domProps } = initialProps;\n const shell = useShell();\n\n // Dev guards\n const wasControlledRef = React.useRef<boolean | null>(null);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof open !== 'undefined' && typeof defaultOpen !== 'undefined') {\n console.error('Shell.Rail: Do not pass both `open` and `defaultOpen`. Choose one.');\n }\n }\n\n // Warn on controlled/uncontrolled mode switch\n React.useEffect(() => {\n const isControlled = typeof open !== 'undefined';\n if (wasControlledRef.current === null) {\n wasControlledRef.current = isControlled;\n return;\n }\n if (wasControlledRef.current !== isControlled) {\n console.warn('Shell.Rail: Switching between controlled and uncontrolled `open` is not supported.');\n wasControlledRef.current = isControlled;\n }\n }, [open]);\n\n // Register expanded size with Left container\n React.useEffect(() => {\n shell.onRailDefaults?.(expandedSize);\n }, [shell, expandedSize]);\n\n const isExpanded = shell.leftMode === 'expanded';\n\n // Strip unknown open/defaultOpen props from DOM by not spreading them\n return (\n <div\n {...domProps}\n ref={ref}\n className={classNames('rt-ShellRail', className)}\n data-mode={shell.leftMode}\n data-peek={(shell.currentBreakpointReady && shell.leftResolvedPresentation !== 'overlay' && shell.peekTarget === 'rail') || undefined}\n style={{\n ...style,\n '--rail-size': `${expandedSize}px`,\n } as CSSPropertiesWithVars}\n >\n <div className=\"rt-ShellRailContent\" data-visible={(shell.currentBreakpointReady && (isExpanded || (shell.leftResolvedPresentation !== 'overlay' && shell.peekTarget === 'rail'))) || undefined}>\n {children}\n </div>\n </div>\n );\n});\nRail.displayName = 'Shell.Rail';\nassignShellSlot(Rail as any, 'Shell.Rail');\n\n// Panel\ntype HandleComponent = React.ForwardRefExoticComponent<React.ComponentPropsWithoutRef<'div'> & React.RefAttributes<HTMLDivElement>>;\n\ntype PanelOpenChangeMeta = { reason: 'toggle' | 'left' | 'init' | 'responsive' };\ntype PanelControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: PanelOpenChangeMeta) => void; defaultOpen?: never };\ntype PanelUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: PanelOpenChangeMeta) => void; open?: never };\n\ntype PanelSizeControlledProps = { size: number | string; defaultSize?: never };\ntype PanelSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\n\ntype PanelSizeChangeMeta = { reason: 'init' | 'resize' | 'controlled' };\ntype PanelPublicProps = Omit<PaneProps, 'presentation' | 'defaultMode'> &\n (PanelControlledProps | PanelUncontrolledProps) &\n (PanelSizeControlledProps | PanelSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: PanelSizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin to Rail+Panel and triggers gray backdrop on Shell. */\n inset?: boolean;\n };\ntype PanelComponent = React.ForwardRefExoticComponent<PanelPublicProps & React.RefAttributes<HTMLDivElement>> & {\n Handle: HandleComponent;\n};\n\ntype _SidebarComponent = React.ForwardRefExoticComponent<\n (Omit<PaneProps, 'mode' | 'defaultMode' | 'onModeChange'> & {\n state?: Responsive<SidebarMode>;\n defaultState?: SidebarMode;\n onStateChange?: (mode: SidebarMode) => void;\n thinSize?: number;\n toggleModes?: 'both' | 'single';\n }) &\n React.RefAttributes<HTMLDivElement>\n> & { Handle: HandleComponent };\n\ntype _InspectorComponent = React.ForwardRefExoticComponent<PaneProps & React.RefAttributes<HTMLDivElement>> & { Handle: HandleComponent };\n\ntype _BottomComponent = React.ForwardRefExoticComponent<PaneProps & React.RefAttributes<HTMLDivElement>> & { Handle: HandleComponent };\n\nconst PANEL_DOM_PROP_KEYS = [\n 'className',\n 'children',\n 'defaultOpen',\n 'open',\n 'onOpenChange',\n 'size',\n 'defaultSize',\n 'onSizeChange',\n 'sizeUpdate',\n 'sizeUpdateMs',\n 'style',\n] as const satisfies readonly (keyof PanelPublicProps)[];\n\nconst Panel = assignShellSlot(\n React.forwardRef<HTMLDivElement, PanelPublicProps>((initialProps, ref) => {\n const {\n className,\n defaultOpen,\n open,\n onOpenChange,\n size,\n defaultSize,\n expandedSize = 288,\n minSize,\n maxSize,\n resizable,\n collapsible = true,\n onExpand: _onExpand,\n onCollapse: _onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n } = initialProps;\n const panelDomProps = extractPaneDomProps(initialProps, PANEL_DOM_PROP_KEYS);\n // Ref for debounce cleanup\n const debounceTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n // Cleanup debounce timeout on unmount or when dependencies change\n React.useLayoutEffect(() => {\n return () => {\n if (debounceTimeoutRef.current) {\n clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = null;\n }\n };\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n // Throttled/debounced emitter for onSizeChange\n const emitSizeChange = React.useMemo(() => {\n if (!onSizeChange) return () => {};\n if (sizeUpdate === 'debounce') {\n const fn = (s: number, meta: PanelSizeChangeMeta) => {\n if (debounceTimeoutRef.current) clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = setTimeout(() => {\n onSizeChange?.(s, meta);\n debounceTimeoutRef.current = null;\n }, sizeUpdateMs);\n };\n return fn;\n }\n if (sizeUpdate === 'throttle') {\n let last = 0;\n return (s: number, meta: PanelSizeChangeMeta) => {\n const now = Date.now();\n if (now - last >= sizeUpdateMs) {\n last = now;\n onSizeChange?.(s, meta);\n }\n };\n }\n return (s: number, meta: PanelSizeChangeMeta) => onSizeChange?.(s, meta);\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n const shell = useShell();\n const prevPanelModeRef = React.useRef<PaneMode | null>(null);\n const prevLeftModeRef = React.useRef<PaneMode | null>(null);\n const lastResolvedPanelControlledRef = React.useRef<PaneMode | undefined>(undefined);\n // Dev-only runtime guard\n if (process.env.NODE_ENV !== 'production') {\n if (typeof open !== 'undefined' && typeof defaultOpen !== 'undefined') {\n console.error('Shell.Panel: Do not pass both `open` and `defaultOpen`. Choose one.');\n }\n if (typeof size !== 'undefined' && typeof defaultSize !== 'undefined') {\n console.error('Shell.Panel: Do not pass both `size` and `defaultSize`. Choose one.');\n }\n }\n\n // Normalize responsive open/defaultOpen to PaneMode\n const normalizedControlledOpen = React.useMemo(() => mapResponsiveBooleanToPaneMode(open), [open]);\n const normalizedDefaultOpen = React.useMemo(() => mapResponsiveBooleanToPaneMode(defaultOpen), [defaultOpen]);\n const openIsResponsive = typeof open === 'object' && open !== null;\n\n // Stable ref for onOpenChange to avoid effect dep churn\n const onOpenChangeRef = React.useRef(onOpenChange);\n React.useLayoutEffect(() => {\n onOpenChangeRef.current = onOpenChange;\n });\n\n // Use responsive initial state hook for proper breakpoint handling\n const { resolvedControlled: resolvedPanelControlled } = useResponsiveInitialState<PaneMode>({\n controlledValue: normalizedControlledOpen,\n defaultValue: normalizedDefaultOpen,\n currentValue: shell.panelMode,\n setValue: (mode) => {\n // Ensure Left is expanded when Panel is expanded unless Rail is controlled closed\n if (mode === 'expanded' && shell.leftMode !== 'expanded' && shell.leftControlledOpen !== false) {\n shell.setLeftMode('expanded');\n }\n shell.setPanelMode(mode);\n },\n breakpointReady: shell.currentBreakpointReady,\n controlledIsResponsive: openIsResponsive,\n onResponsiveChange: (next) => onOpenChangeRef.current?.(next === 'expanded', { reason: 'responsive' }),\n onInit: (initial) => {\n if (typeof open === 'undefined') {\n onOpenChangeRef.current?.(initial === 'expanded', { reason: 'init' });\n }\n },\n });\n\n // Dev-only warning if switching controlled/uncontrolled between renders\n const wasControlledRef = React.useRef<boolean | null>(null);\n React.useEffect(() => {\n const isControlled = typeof open !== 'undefined';\n if (wasControlledRef.current === null) {\n wasControlledRef.current = isControlled;\n return;\n }\n if (wasControlledRef.current !== isControlled) {\n console.warn('Shell.Panel: Switching between controlled and uncontrolled `open` is not supported.');\n wasControlledRef.current = isControlled;\n }\n }, [open]);\n\n React.useEffect(() => {\n shell.onPanelDefaults?.(expandedSize);\n }, [shell, expandedSize]);\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const setRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n localRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n const handleChildren = childArray.filter((el: React.ReactElement) => React.isValidElement(el) && el.type === PanelHandle);\n const contentChildren = childArray.filter((el: React.ReactElement) => !(React.isValidElement(el) && el.type === PanelHandle));\n\n const isOverlay = shell.leftResolvedPresentation === 'overlay';\n\n // Normalize CSS lengths to px helper\n const normalizeSizeToPx = React.useCallback((value: number | string | undefined) => normalizeToPx(value, 'horizontal'), []);\n\n // Derive a default persistence adapter from paneId if none provided\n const persistenceAdapter = React.useMemo(() => {\n if (!paneId || persistence) return persistence;\n const key = `kookie-ui:shell:panel:${paneId}`;\n const adapter: PaneSizePersistence = {\n load: () => {\n if (typeof window === 'undefined') return undefined;\n try {\n const v = window.localStorage.getItem(key);\n return v ? Number(v) : undefined;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Panel: failed to load persisted size', err);\n }\n return undefined;\n }\n },\n save: (size: number) => {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(key, String(size));\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Panel: failed to save persisted size', err);\n }\n }\n },\n };\n return adapter;\n }, [paneId, persistence]);\n\n // Load persisted size if configured (only in fixed presentation)\n React.useEffect(() => {\n let mounted = true;\n (async () => {\n if (!resizable || !persistenceAdapter?.load || isOverlay) return;\n const loaded = await persistenceAdapter.load();\n if (mounted && typeof loaded === 'number' && localRef.current) {\n localRef.current.style.setProperty('--panel-size', `${loaded}px`);\n onResize?.(loaded);\n }\n })();\n return () => {\n mounted = false;\n };\n }, [resizable, persistenceAdapter, onResize, isOverlay]);\n\n // In overlay, ensure panel uses the fixed expandedSize, ignoring any persisted size\n React.useEffect(() => {\n if (!localRef.current) return;\n if (isOverlay) {\n localRef.current.style.setProperty('--panel-size', `${expandedSize}px`);\n }\n }, [isOverlay, expandedSize]);\n\n // Apply defaultSize on mount when uncontrolled\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof size === 'undefined' && typeof defaultSize !== 'undefined') {\n const px = normalizeSizeToPx(defaultSize);\n if (typeof px === 'number' && Number.isFinite(px)) {\n // Clamp to min/max if provided\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--panel-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'init' });\n }\n }\n // Intentionally run only on mount - defaultSize is an uncontrolled initial value\n // that should not trigger re-application when props change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Controlled size sync\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof size === 'undefined') return;\n const px = normalizeSizeToPx(size);\n if (typeof px === 'number' && Number.isFinite(px)) {\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--panel-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'controlled' });\n }\n }, [size, minSize, maxSize, normalizeSizeToPx, emitSizeChange]);\n\n // Ensure Left container width is auto whenever Panel is expanded in fixed presentation\n React.useEffect(() => {\n if (!localRef.current) return;\n if (shell.leftResolvedPresentation !== 'overlay' && shell.leftMode === 'expanded' && shell.panelMode === 'expanded') {\n const leftEl = (localRef.current.parentElement as HTMLElement) || null;\n try {\n leftEl?.style.removeProperty('width');\n } catch (e) {\n // Style manipulation can fail in edge cases (e.g., detached elements)\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Shell.Panel] Style cleanup warning:', e);\n }\n }\n }\n }, [shell.leftResolvedPresentation, shell.leftMode, shell.panelMode]);\n\n const isExpanded = shell.leftMode === 'expanded' && shell.panelMode === 'expanded';\n\n // Notify on internal toggles and left cascade.\n // In controlled mode, skip when the mode matches the controlled prop (prop-driven sync).\n React.useEffect(() => {\n const prevPanel = prevPanelModeRef.current;\n const prevLeft = prevLeftModeRef.current;\n const prevResolvedControlled = lastResolvedPanelControlledRef.current;\n const controlledChanged = prevResolvedControlled !== resolvedPanelControlled;\n if (prevPanel !== null && prevPanel !== shell.panelMode) {\n const nextOpen = shell.panelMode === 'expanded';\n const isControlled = typeof open !== 'undefined';\n const controlledTarget = resolvedPanelControlled === undefined ? undefined : resolvedPanelControlled === 'expanded';\n\n if (!isControlled || (!controlledChanged && nextOpen !== controlledTarget)) {\n let reason: PanelOpenChangeMeta['reason'] = 'toggle';\n if (prevLeft !== shell.leftMode && shell.leftMode === 'collapsed' && !nextOpen) {\n reason = 'left';\n }\n onOpenChangeRef.current?.(nextOpen, { reason });\n }\n }\n prevPanelModeRef.current = shell.panelMode;\n prevLeftModeRef.current = shell.leftMode;\n lastResolvedPanelControlledRef.current = resolvedPanelControlled;\n }, [shell.panelMode, shell.leftMode, open, resolvedPanelControlled]);\n\n // Provide resizer handle when fixed (not overlay)\n const handleEl =\n resizable && shell.leftResolvedPresentation !== 'overlay' && isExpanded ? (\n <PaneResizeContext.Provider\n value={{\n containerRef: localRef,\n cssVarName: '--panel-size',\n minSize: typeof minSize === 'number' ? minSize : 100,\n maxSize: typeof maxSize === 'number' ? maxSize : 800,\n defaultSize: expandedSize,\n orientation: 'vertical',\n edge: 'end',\n computeNext: (client, startClient, startSize) => {\n const isRtl = getComputedStyle(localRef.current!).direction === 'rtl';\n const delta = client - startClient;\n return startSize + (isRtl ? -delta : delta);\n },\n onResize,\n onResizeStart: (size) => {\n // Ensure Left container is not stuck with a fixed width in stacked\n const panelEl = localRef.current as HTMLElement | null;\n const leftEl = panelEl?.parentElement as HTMLElement | null;\n try {\n leftEl?.style.removeProperty('width');\n } catch (e) {\n // Style manipulation can fail in edge cases\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Shell.Panel] Resize start style cleanup warning:', e);\n }\n }\n onResizeStart?.(size);\n },\n onResizeEnd: (size) => {\n onResizeEnd?.(size);\n emitSizeChange(size, { reason: 'resize' });\n persistenceAdapter?.save?.(size);\n },\n target: 'panel',\n collapsible: Boolean(collapsible),\n snapPoints,\n snapTolerance: snapTolerance ?? 8,\n collapseThreshold,\n requestCollapse: () => shell.setPanelMode('collapsed'),\n requestToggle: () => shell.togglePane('panel'),\n }}\n >\n {handleChildren.length > 0 ? handleChildren.map((el, i) => React.cloneElement(el, { key: el.key ?? i })) : <PaneHandle />}\n </PaneResizeContext.Provider>\n ) : null;\n\n return (\n <div\n {...panelDomProps}\n ref={setRef}\n className={classNames('rt-ShellPanel', className)}\n data-mode={shell.panelMode}\n data-visible={(shell.currentBreakpointReady && (isExpanded || (shell.leftResolvedPresentation !== 'overlay' && shell.peekTarget === 'panel'))) || undefined}\n data-peek={(shell.currentBreakpointReady && shell.leftResolvedPresentation !== 'overlay' && shell.peekTarget === 'panel') || undefined}\n style={{\n ...style,\n '--panel-size': `${expandedSize}px`,\n } as CSSPropertiesWithVars}\n >\n <div className=\"rt-ShellPanelContent\" data-visible={isExpanded || undefined}>\n {contentChildren}\n </div>\n {handleEl}\n </div>\n );\n }),\n 'Shell.Panel',\n) as PanelComponent;\nPanel.displayName = 'Shell.Panel';\nPanel.Handle = PanelHandle;\n\n// Sidebar moved to ./_internal/shell-sidebar\n\n// Content (always required)\ninterface ShellContentProps extends React.ComponentPropsWithoutRef<'main'> {\n /** When true, adds margin and triggers gray backdrop on Shell. */\n inset?: boolean;\n}\n\nconst Content = React.forwardRef<HTMLElement, ShellContentProps>(({ className, inset, ...props }, ref) => {\n const { registerInset, unregisterInset } = useInset();\n\n // Register/unregister inset\n React.useEffect(() => {\n if (inset) {\n registerInset('content');\n return () => unregisterInset('content');\n }\n }, [inset, registerInset, unregisterInset]);\n\n return <main {...props} ref={ref} className={classNames('rt-ShellContent', className)} data-inset={inset || undefined} />;\n});\nContent.displayName = 'Shell.Content';\nassignShellSlot(Content as any, 'Shell.Content');\n\n// Inspector moved to ./_internal/shell-inspector\n\n// Bottom\n// Bottom moved to ./_internal/shell-bottom\n// (Bottom implementation extracted)\n\n// Trigger\n// PaneTarget type moved to shell.types.ts\ntype TriggerAction = 'toggle' | 'expand' | 'collapse';\n\ninterface TriggerProps extends React.ComponentPropsWithoutRef<'button'> {\n target: PaneTarget;\n action?: TriggerAction;\n /**\n * Whether to show peek preview on hover when the target pane is collapsed.\n * Defaults to false.\n */\n peekOnHover?: boolean;\n}\n\nconst Trigger = React.forwardRef<HTMLButtonElement, TriggerProps>(({ target, action = 'toggle', peekOnHover, onClick, onMouseEnter, onMouseLeave, children, ...props }, ref) => {\n // Slice hooks \u2014 Trigger only re-renders when its target pane's slice changes,\n // not on every unrelated shell state update (peek, composition, presentation, etc.)\n const { leftMode } = useLeftMode();\n const { panelMode } = usePanelMode();\n const { sidebarMode } = useSidebarMode();\n const { inspectorMode } = useInspectorMode();\n const { bottomMode } = useBottomMode();\n const { peekTarget, clearPeek, peekPane } = usePeek();\n const { togglePane, expandPane, collapsePane } = useShellActions();\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n\n // Clear any active peek on this target before toggling to avoid sticky peek state\n if (peekTarget === target) {\n clearPeek();\n }\n\n switch (action) {\n case 'toggle':\n togglePane(target);\n break;\n case 'expand':\n expandPane(target);\n break;\n case 'collapse':\n collapsePane(target);\n break;\n }\n },\n [peekTarget, clearPeek, togglePane, expandPane, collapsePane, target, action, onClick],\n );\n\n const isCollapsed = (() => {\n switch (target) {\n case 'left':\n case 'rail':\n return leftMode === 'collapsed';\n case 'panel':\n return leftMode === 'collapsed' || panelMode === 'collapsed';\n case 'sidebar':\n return sidebarMode === 'collapsed';\n case 'inspector':\n return inspectorMode === 'collapsed';\n case 'bottom':\n return bottomMode === 'collapsed';\n }\n })();\n\n const handleMouseEnter = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onMouseEnter?.(event);\n if (!peekOnHover || !isCollapsed) return;\n peekPane(target);\n },\n [onMouseEnter, peekOnHover, isCollapsed, peekPane, target],\n );\n\n const handleMouseLeave = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onMouseLeave?.(event);\n if (!peekOnHover) return;\n if (peekTarget === target) {\n clearPeek();\n }\n },\n [onMouseLeave, peekOnHover, peekTarget, clearPeek, target],\n );\n\n return (\n <button\n {...props}\n ref={ref}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n data-shell-trigger={target}\n data-shell-action={action}\n aria-expanded={!isCollapsed}\n >\n {children}\n </button>\n );\n});\nTrigger.displayName = 'Shell.Trigger';\n\n// Exports\nexport {\n Root,\n Header,\n Left,\n Rail,\n Panel,\n Sidebar,\n Content,\n Inspector,\n Bottom,\n Trigger,\n useShell,\n useSidebarMode,\n useResponsivePresentation,\n type PaneMode,\n type SidebarMode,\n type ResponsivePresentation,\n type PaneTarget,\n type TriggerAction,\n};\n", "'use client';\n\n/**\n * Sheet\n *\n * A side-placed overlay built on top of Radix Dialog. It inherits accessibility,\n * focus management, overlay behavior, and sizing scales from the base dialog, and\n * adds side placement and slide motion suited for navigation panels and drawers.\n *\n * Structure mirrors Dialog:\n * - Root, Trigger, Content, Title, Description, Close\n *\n * Notes\n * - Side: set with `side` on `Sheet.Content`. Aliases: `left` \u2192 `start`, `right` \u2192 `end`.\n * - Sizing: reuses Dialog content prop defs (width/min/max/height/size). Default Dialog\n * maxWidth clamping is removed for Sheets.\n * - Material: use `material` (solid | translucent). Deprecated `panelBackground` falls back\n * in dev with a warning.\n * - A11y: provide an accessible name via `Sheet.Title` or `aria-label` on `Sheet.Content`.\n *\n * Example\n * <Sheet.Root>\n * <Sheet.Trigger>\n * <Button>Open</Button>\n * </Sheet.Trigger>\n * <Sheet.Content side=\"end\" width={{ initial: '280px', md: '360px' }}>\n * <Sheet.Title>Details</Sheet.Title>\n * ...\n * <Sheet.Close>\n * <Button>Close</Button>\n * </Sheet.Close>\n * </Sheet.Content>\n * </Sheet.Root>\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { dialogContentPropDefs } from './dialog.props.js';\nimport type { DialogContentOwnProps } from './dialog.props.js';\nimport { Theme } from './theme.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { HeadingProps } from './heading.js';\n\n/**\n * Supported sides for the Sheet.\n * Aliases are normalized RTL-aware: `left` \u2192 `start`, `right` \u2192 `end`.\n */\ntype SheetSide = 'start' | 'end' | 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Sheet is a side-placed overlay built on the Dialog primitive.\n * It reuses Dialog's accessibility, focus, overlay, and size scales, while adding side placement and slide motion.\n */\n\n// Root\n/**\n * Props for `Sheet.Root` (Radix Dialog root with `modal` forced on).\n */\ninterface SheetRootProps extends ComponentPropsWithout<typeof DialogPrimitive.Root, 'modal'> {}\nconst Root: React.FC<SheetRootProps> = (props) => <DialogPrimitive.Root {...props} modal />;\nRoot.displayName = 'Sheet.Root';\n\n// Trigger\n/** Element type for `Sheet.Trigger`. */\ntype SheetTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\n/** Props for `Sheet.Trigger` (expects a single element child). */\ninterface SheetTriggerProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Trigger, RemovedProps> {}\nconst Trigger = React.forwardRef<SheetTriggerElement, SheetTriggerProps>(\n ({ children, ...props }, ref) => (\n <DialogPrimitive.Trigger {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Trigger>\n ),\n);\nTrigger.displayName = 'Sheet.Trigger';\n\n// Content\n/** Element type for `Sheet.Content`. */\ntype SheetContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ninterface SheetContentProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,\n DialogContentOwnProps {\n /** Side where the Sheet should appear. `left`/`right` alias to `start`/`end`. */\n side?: SheetSide;\n /** Optional DOM container to portal into. Defaults to `document.body`. */\n container?: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>['container'];\n}\n\n/**\n * Renders the Sheet panel. Normalizes left/right to logical start/end and\n * forwards dialog sizing props. Provide an accessible name via `Sheet.Title`\n * or `aria-label`.\n */\nconst Content = React.forwardRef<SheetContentElement, SheetContentProps>(\n (allProps, forwardedRef) => {\n const {\n side = 'start',\n forceMount,\n container,\n className,\n panelBackground: panelBackgroundProp,\n material: materialProp,\n ...restProps\n } = allProps;\n const normalizedSideMap: Record<SheetSide, 'start' | 'end' | 'top' | 'bottom'> = {\n left: 'start',\n right: 'end',\n start: 'start',\n end: 'end',\n top: 'top',\n bottom: 'bottom',\n };\n const normalizedSide = normalizedSideMap[side];\n // Reuse dialog content prop defs for size/width/height tokens, but handle\n // material/panelBackground explicitly to avoid forwarding unknown DOM props.\n const {\n align: _alignPropDef,\n panelBackground: panelBackgroundPropDef,\n material: materialPropDef,\n ...propDefs\n } = dialogContentPropDefs;\n\n // Extract panelBackground and material together (remove from DOM props)\n const { panelBackground: resolvedPanelBackground, material: resolvedMaterial } = extractProps(\n { panelBackground: panelBackgroundProp, material: materialProp },\n { panelBackground: panelBackgroundPropDef, material: materialPropDef },\n );\n\n const materialValue = React.useMemo(() => {\n if (resolvedPanelBackground !== undefined) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use the `material` prop instead.',\n );\n }\n }\n return resolvedMaterial ?? resolvedPanelBackground;\n }, [resolvedMaterial, resolvedPanelBackground]);\n\n // Now extract remaining props using dialog defs so size/width/height classnames are applied\n // Override dialog's default maxWidth (600px) to avoid clamping Sheet by default\n // Match dialog.tsx: extract once and avoid leaking panel/material\n const { default: _mwDefault, ...maxWidthWithoutDefault } = propDefs.maxWidth;\n const sheetPropDefs = {\n ...propDefs,\n maxWidth: maxWidthWithoutDefault,\n } as typeof propDefs;\n const { className: extractedClassName, ...contentProps } = extractProps(\n restProps,\n sheetPropDefs,\n );\n\n // Dev-only a11y guard: ensure label is provided via Title or aria-label\n if (process.env.NODE_ENV !== 'production') {\n const children = (contentProps as any).children as React.ReactNode;\n const hasAriaLabel = typeof (contentProps as any)['aria-label'] === 'string';\n let hasTitle = false;\n if (children) {\n for (const child of React.Children.toArray(children)) {\n if (React.isValidElement(child) && child.type === Title) {\n hasTitle = true;\n break;\n }\n }\n }\n if (!hasTitle && !hasAriaLabel) {\n console.warn(\n 'Sheet.Content: Missing accessible name. Include Sheet.Title as a child or provide aria-label.',\n );\n }\n }\n\n // Focus management and stuck pointer-events cleanup like Dialog\n const contentRef = React.useRef<HTMLDivElement>(null);\n const combinedRef = React.useMemo(\n () => (node: HTMLDivElement | null) => {\n contentRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [forwardedRef],\n );\n\n useBodyPointerEventsCleanup();\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n const content = contentRef.current;\n if (!content) return;\n\n const focusableElements = content.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab') {\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n content.addEventListener('keydown', handleKeyDown);\n firstElement.focus();\n\n return () => {\n content.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n\n return (\n <DialogPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DialogPrimitive.Overlay className=\"rt-BaseDialogOverlay rt-DialogOverlay rt-SheetOverlay\">\n <DialogPrimitive.Content\n {...contentProps}\n ref={combinedRef}\n className={classNames(\n 'rt-BaseDialogContent',\n 'rt-SheetContent',\n className,\n extractedClassName,\n )}\n data-side={normalizedSide}\n data-material={materialValue}\n data-panel-background={materialValue}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n />\n </DialogPrimitive.Overlay>\n </Theme>\n </DialogPrimitive.Portal>\n );\n },\n);\nContent.displayName = 'Sheet.Content';\n\n// Title - renders as Heading with sensible defaults\ntype SheetTitleElement = React.ElementRef<typeof Heading>;\ntype SheetTitleProps = HeadingProps;\n/** Accessible title for the Sheet. Renders as Heading with sensible defaults. */\nconst Title = React.forwardRef<SheetTitleElement, SheetTitleProps>(\n ({ size = '4', weight = 'medium', ...props }, ref) => (\n <DialogPrimitive.Title asChild>\n <Heading ref={ref} size={size} weight={weight} {...props} />\n </DialogPrimitive.Title>\n ),\n);\nTitle.displayName = 'Sheet.Title';\n\n// Description - renders as Text with sensible defaults\ntype SheetDescriptionElement = React.ElementRef<typeof Text>;\ntype SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof Text>;\n/** Supplementary description text for Sheet content. Renders as Text with sensible defaults. */\nconst Description = React.forwardRef<SheetDescriptionElement, SheetDescriptionProps>(\n ({ size = '2', color = 'gray', ...rest }, ref) => (\n <DialogPrimitive.Description asChild>\n <Text ref={ref} size={size} color={color} {...rest} />\n </DialogPrimitive.Description>\n ),\n);\nDescription.displayName = 'Sheet.Description';\n\ntype SheetCloseElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface SheetCloseProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Close, RemovedProps> {}\n/** Close button for the Sheet. Expects a single element child rendered via `asChild`. */\nconst Close = React.forwardRef<SheetCloseElement, SheetCloseProps>(\n ({ children, ...props }, ref) => (\n <DialogPrimitive.Close {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Close>\n ),\n);\nClose.displayName = 'Sheet.Close';\n\nexport { Root, Trigger, Content, Title, Description, Close };\nexport type {\n SheetRootProps as RootProps,\n SheetTriggerProps as TriggerProps,\n SheetContentProps as ContentProps,\n SheetTitleProps as TitleProps,\n SheetDescriptionProps as DescriptionProps,\n SheetCloseProps as CloseProps,\n};\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import type { GetPropDefTypes, PropDef } from './prop-def.js';\n\nconst widthPropDefs = {\n /**\n * Sets the CSS **width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * width=\"100px\"\n * width={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/width\n */\n width: {\n type: 'string',\n className: 'rt-r-w',\n customProperties: ['--width'],\n responsive: true,\n },\n /**\n * Sets the CSS **min-width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * minWidth=\"100px\"\n * minWidth={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/min-width\n */\n minWidth: {\n type: 'string',\n className: 'rt-r-min-w',\n customProperties: ['--min-width'],\n responsive: true,\n },\n /**\n * Sets the CSS **max-width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * maxWidth=\"100px\"\n * maxWidth={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/max-width\n */\n maxWidth: {\n type: 'string',\n className: 'rt-r-max-w',\n customProperties: ['--max-width'],\n responsive: true,\n },\n} satisfies {\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n};\n\ntype WidthProps = GetPropDefTypes<typeof widthPropDefs>;\n\nexport { widthPropDefs };\nexport type { WidthProps };\n", "import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\nconst heightPropDefs = {\n /**\n * Sets the CSS **height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * height=\"100px\"\n * height={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/height\n */\n height: {\n type: 'string',\n className: 'rt-r-h',\n customProperties: ['--height'],\n responsive: true,\n },\n /**\n * Sets the CSS **min-height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * minHeight=\"100px\"\n * minHeight={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/min-height\n */\n minHeight: {\n type: 'string',\n className: 'rt-r-min-h',\n customProperties: ['--min-height'],\n responsive: true,\n },\n /**\n * Sets the CSS **max-height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * maxHeight=\"100px\"\n * maxHeight={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/max-height\n */\n maxHeight: {\n type: 'string',\n className: 'rt-r-max-h',\n customProperties: ['--max-height'],\n responsive: true,\n },\n} satisfies {\n height: PropDef<string>;\n minHeight: PropDef<string>;\n maxHeight: PropDef<string>;\n};\n\ntype HeightProps = GetPropDefTypes<typeof heightPropDefs>;\n\nexport { heightPropDefs };\nexport type { HeightProps };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { widthPropDefs } from '../props/width.props.js';\nimport { heightPropDefs } from '../props/height.props.js';\n\nimport type { PropDef, GetPropDefTypes } from '../props/prop-def.js';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst alignValues = ['start', 'center'] as const;\nconst contentSizes = ['1', '2', '3', '4'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst dialogContentPropDefs = {\n ...asChildPropDef,\n align: {\n type: 'enum',\n className: 'rt-r-align',\n values: ['start', 'center'],\n default: 'center',\n },\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: contentSizes,\n default: '3',\n responsive: true,\n },\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n material: { type: 'enum', values: materials, default: undefined },\n width: widthPropDefs.width,\n minWidth: widthPropDefs.minWidth,\n maxWidth: { ...widthPropDefs.maxWidth, default: '600px' },\n ...heightPropDefs,\n} satisfies {\n align: PropDef<(typeof alignValues)[number]>;\n size: PropDef<(typeof contentSizes)[number]>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n material: PropDef<(typeof materials)[number] | undefined>;\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n};\n\ntype DialogContentOwnProps = GetPropDefTypes<\n typeof dialogContentPropDefs & typeof asChildPropDef & typeof widthPropDefs\n>;\n\nexport { dialogContentPropDefs };\nexport type { DialogContentOwnProps };\n", "'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot, Tooltip as TooltipPrimitive } from 'radix-ui';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeMaterial = (typeof themePropDefs.material.values)[number];\ntype ThemePanelBackground = (typeof themePropDefs.panelBackground.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeScaling = (typeof themePropDefs.scaling.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onMaterialChange: (material: ThemeMaterial) => void;\n onPanelBackgroundChange: (panelBackground: ThemePanelBackground) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onScalingChange: (scaling: ThemeScaling) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n material: ThemeMaterial;\n panelBackground: ThemePanelBackground;\n radius: ThemeRadius;\n scaling: ThemeScaling;\n fontFamily: ThemeFontFamily;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n material: themePropDefs.material.default,\n panelBackground: themePropDefs.panelBackground.default,\n radius: themePropDefs.radius.default,\n scaling: themePropDefs.scaling.default,\n fontFamily: themePropDefs.fontFamily.default,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onMaterialChange: noop,\n onPanelBackgroundChange: noop,\n onRadiusChange: noop,\n onScalingChange: noop,\n onFontFamilyChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <TooltipPrimitive.Provider delayDuration={200}>\n <Direction.Provider dir=\"ltr\">\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n </TooltipPrimitive.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>(\n (props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n material: materialProp = themePropDefs.material.default,\n panelBackground: panelBackgroundProp = themePropDefs.panelBackground.default,\n radius: radiusProp = themePropDefs.radius.default,\n scaling: scalingProp = themePropDefs.scaling.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n // Show deprecation warning for panelBackground when used\n React.useEffect(() => {\n if (props.panelBackground !== undefined) {\n console.warn(\n 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.',\n );\n }\n }, [props.panelBackground]);\n\n const [appearance, setAppearance] = React.useState(appearanceProp);\n React.useEffect(() => setAppearance(appearanceProp), [appearanceProp]);\n\n const [accentColor, setAccentColor] = React.useState(accentColorProp);\n React.useEffect(() => setAccentColor(accentColorProp), [accentColorProp]);\n\n const [grayColor, setGrayColor] = React.useState(grayColorProp);\n React.useEffect(() => setGrayColor(grayColorProp), [grayColorProp]);\n\n // Material takes precedence over panelBackground\n const effectiveMaterial =\n materialProp !== themePropDefs.material.default ? materialProp : panelBackgroundProp;\n const [material, setMaterial] = React.useState(effectiveMaterial);\n React.useEffect(() => setMaterial(effectiveMaterial), [effectiveMaterial]);\n\n // Keep panelBackground in sync with material for backward compatibility\n const [panelBackground, setPanelBackground] = React.useState(panelBackgroundProp);\n React.useEffect(() => setPanelBackground(material), [material]);\n\n const [radius, setRadius] = React.useState(radiusProp);\n React.useEffect(() => setRadius(radiusProp), [radiusProp]);\n\n const [scaling, setScaling] = React.useState(scalingProp);\n React.useEffect(() => setScaling(scalingProp), [scalingProp]);\n\n const [fontFamily, setFontFamily] = React.useState(fontFamilyProp);\n React.useEffect(() => setFontFamily(fontFamilyProp), [fontFamilyProp]);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n material={material}\n panelBackground={panelBackground}\n radius={radius}\n scaling={scaling}\n fontFamily={fontFamily}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onMaterialChange={setMaterial}\n onPanelBackgroundChange={setPanelBackground}\n onRadiusChange={setRadius}\n onScalingChange={setScaling}\n onFontFamilyChange={setFontFamily}\n />\n );\n },\n);\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nfunction getClientOS(): 'windows' | 'macos' | 'linux' | undefined {\n if (typeof navigator === 'undefined') return undefined;\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'windows';\n if (ua.includes('Mac')) return 'macos';\n if (ua.includes('Linux')) return 'linux';\n return undefined;\n}\n\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n material = props.material ?? context?.material ?? themePropDefs.material.default,\n panelBackground = props.panelBackground ??\n context?.panelBackground ??\n themePropDefs.panelBackground.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n scaling = props.scaling ?? context?.scaling ?? themePropDefs.scaling.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n //\n onAppearanceChange = noop,\n onAccentColorChange = noop,\n onGrayColorChange = noop,\n onMaterialChange = noop,\n onPanelBackgroundChange = noop,\n onRadiusChange = noop,\n onScalingChange = noop,\n onFontFamilyChange = noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground =\n hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n const [clientOS, setClientOS] = React.useState<ReturnType<typeof getClientOS>>(undefined);\n React.useEffect(() => {\n if (isRoot) setClientOS(getClientOS());\n }, [isRoot]);\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n ],\n )}\n >\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-material={material}\n data-panel-background={panelBackground}\n data-radius={radius}\n data-scaling={scaling}\n data-font-family={fontFamily}\n data-os={isRoot ? clientOS : undefined}\n ref={forwardedRef}\n {...themeProps}\n className={classNames(\n 'radix-themes',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n", "import type { accentColors } from '../props/color.prop.js';\n\ntype ThemeAccentColor = (typeof accentColors)[number];\n\nexport function getMatchingGrayColor(accentColor: ThemeAccentColor) {\n switch (accentColor) {\n case 'tomato':\n case 'red':\n case 'ruby':\n case 'crimson':\n case 'pink':\n case 'plum':\n case 'purple':\n case 'violet':\n return 'mauve';\n case 'iris':\n case 'indigo':\n case 'blue':\n case 'sky':\n case 'cyan':\n return 'slate';\n case 'teal':\n case 'jade':\n case 'mint':\n case 'green':\n return 'sage';\n case 'grass':\n case 'lime':\n return 'olive';\n case 'yellow':\n case 'amber':\n case 'orange':\n case 'brown':\n case 'gold':\n case 'bronze':\n return 'sand';\n case 'gray':\n return 'gray';\n }\n}\n", "import type { PropDef } from './prop-def.js';\n\n// prettier-ignore\nconst accentColors = ['gray', 'gold', 'bronze', 'brown', 'yellow', 'amber', 'orange', 'tomato', 'red', 'ruby', 'crimson', 'pink', 'plum', 'purple', 'violet', 'iris', 'indigo', 'blue', 'cyan', 'teal', 'jade', 'green', 'grass', 'lime', 'mint', 'sky'] as const;\n\nconst grayColors = ['auto', 'gray', 'mauve', 'slate', 'sage', 'olive', 'sand'] as const;\n\nconst colorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: undefined as (typeof accentColors)[number] | undefined,\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// 1. When used on components that compose Text, sets the color of the text to the current accent.\n// 2. Defines accent color for descendant text components\u00A0with `highContrast={true}`.\nconst accentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: '' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\nexport {\n accentColorPropDef,\n colorPropDef,\n //\n accentColors,\n grayColors,\n};\n", "import type { PropDef } from './prop-def.js';\n\nconst radii = ['none', 'small', 'medium', 'large', 'full'] as const;\n\nconst radiusPropDef = {\n radius: {\n type: 'enum',\n values: radii,\n default: undefined,\n },\n} satisfies {\n radius: PropDef<(typeof radii)[number]>;\n};\n\nexport { radiusPropDef, radii };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColors, grayColors } from '../props/color.prop.js';\nimport { radii } from '../props/radius.prop.js';\n\nimport type { GetPropDefTypes, PropDef } from '../props/prop-def.js';\n\nconst appearances = ['inherit', 'light', 'dark'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\nconst scalings = ['90%', '95%', '100%', '105%', '110%'] as const;\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\n\nconst themePropDefs = {\n ...asChildPropDef,\n /**\n * Whether to apply background color to the Theme element.\n *\n * Defaults to true for the root Theme and for Theme elements that\n * have an explicit light or dark appearance prop.\n */\n hasBackground: { type: 'boolean', default: true },\n /**\n * Sets the color scheme of the theme, typcially referred to as light and dark mode.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/dark-mode\n */\n appearance: { type: 'enum', values: appearances, default: 'inherit' },\n /**\n * Selects one of the accent color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n accentColor: { type: 'enum', values: accentColors, default: 'blue' },\n /**\n * Selects one of the gray color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n grayColor: { type: 'enum', values: grayColors, default: 'slate' },\n /**\n * Controls whether to use a solid or translucent background color on panelled\n * elements such as Card or Table is solid or translucent.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n material: { type: 'enum', values: materials, default: 'translucent' },\n /**\n * Controls whether to use a solid or translucent background color on panelled\n * elements such as Card or Table is solid or translucent.\n *\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: 'translucent' },\n /**\n * Sets the default radius of the components.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n radius: { type: 'enum', values: radii, default: 'medium' },\n /**\n * Sets a scaling multiplier for values like spacing, font sizes, line heights, etc. are scaled.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/layout\n */\n scaling: { type: 'enum', values: scalings, default: '100%' },\n /**\n * Sets the font family for the theme.\n *\n * @default 'sans'\n */\n fontFamily: { type: 'enum', values: fontFamilies, default: 'sans' },\n} satisfies {\n hasBackground: PropDef<boolean>;\n appearance: PropDef<(typeof appearances)[number]>;\n accentColor: PropDef<(typeof accentColors)[number]>;\n grayColor: PropDef<(typeof grayColors)[number]>;\n material: PropDef<(typeof materials)[number]>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number]>;\n radius: PropDef<(typeof radii)[number]>;\n scaling: PropDef<(typeof scalings)[number]>;\n fontFamily: PropDef<(typeof fontFamilies)[number]>;\n};\n\ntype ThemeOwnProps = GetPropDefTypes<typeof themePropDefs & typeof asChildPropDef>;\n\nexport { themePropDefs };\nexport type { ThemeOwnProps };\n", "import * as React from 'react';\nimport { Slot } from 'radix-ui';\n\nimport { headingPropDefs } from './heading.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype HeadingElement = React.ElementRef<'h1'>;\ntype HeadingOwnProps = GetPropDefTypes<typeof headingPropDefs>;\ninterface CommonHeadingProps extends MarginProps, HeadingOwnProps {}\ntype HeadingH1Props = { as?: 'h1' } & ComponentPropsWithout<'h1', RemovedProps>;\ntype HeadingH2Props = { as: 'h2' } & ComponentPropsWithout<'h2', RemovedProps>;\ntype HeadingH3Props = { as: 'h3' } & ComponentPropsWithout<'h3', RemovedProps>;\ntype HeadingH4Props = { as: 'h4' } & ComponentPropsWithout<'h4', RemovedProps>;\ntype HeadingH5Props = { as: 'h5' } & ComponentPropsWithout<'h5', RemovedProps>;\ntype HeadingH6Props = { as: 'h6' } & ComponentPropsWithout<'h6', RemovedProps>;\ntype HeadingProps = CommonHeadingProps &\n (HeadingH1Props | HeadingH2Props | HeadingH3Props | HeadingH4Props | HeadingH5Props | HeadingH6Props);\n\n// Pre-merge prop definitions at module level to avoid per-render allocation\nconst mergedPropDefs = { ...headingPropDefs, ...marginPropDefs };\n\nconst Heading = React.memo(\n React.forwardRef<HeadingElement, HeadingProps>((props, forwardedRef) => {\n const {\n children,\n className,\n asChild,\n as: Tag = 'h1',\n color,\n ...headingProps\n } = extractProps(props, mergedPropDefs);\n\n const combinedClassName = className ? `rt-Heading ${className}` : 'rt-Heading';\n\n if (asChild) {\n return (\n <Slot.Root\n data-accent-color={color}\n {...headingProps}\n ref={forwardedRef}\n className={combinedClassName}\n >\n {children}\n </Slot.Root>\n );\n }\n\n return (\n <Tag\n data-accent-color={color}\n {...(headingProps as React.HTMLAttributes<HTMLHeadingElement>)}\n ref={forwardedRef as any}\n className={combinedClassName}\n >\n {children}\n </Tag>\n );\n })\n);\nHeading.displayName = 'Heading';\n\nexport { Heading };\nexport type { HeadingProps };\n", "import type { PropDef } from './prop-def.js';\n\nconst highContrastPropDef = {\n highContrast: {\n type: 'boolean',\n className: 'rt-high-contrast',\n default: undefined,\n },\n} satisfies {\n highContrast: PropDef<boolean>;\n};\n\nexport { highContrastPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst leadingTrimValues = ['normal', 'start', 'end', 'both'] as const;\n\nconst leadingTrimPropDef = {\n trim: {\n type: 'enum',\n className: 'rt-r-lt',\n values: leadingTrimValues,\n responsive: true,\n },\n} satisfies {\n trim: PropDef<(typeof leadingTrimValues)[number]>;\n};\n\nexport { leadingTrimPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst textAlignValues = ['left', 'center', 'right'] as const;\n\nconst textAlignPropDef = {\n align: {\n type: 'enum',\n className: 'rt-r-ta',\n values: textAlignValues,\n responsive: true,\n },\n} satisfies {\n align: PropDef<(typeof textAlignValues)[number]>;\n};\n\nexport { textAlignPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst textWrapValues = ['wrap', 'nowrap', 'pretty', 'balance'] as const;\n\nconst textWrapPropDef = {\n wrap: {\n type: 'enum',\n className: 'rt-r-tw',\n values: textWrapValues,\n responsive: true,\n },\n} satisfies {\n wrap: PropDef<(typeof textWrapValues)[number]>;\n};\n\nexport { textWrapPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst truncatePropDef = {\n truncate: {\n type: 'boolean',\n className: 'rt-truncate',\n },\n} satisfies {\n truncate: PropDef<boolean>;\n};\n\nexport { truncatePropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\n\nconst fontFamilyPropDef = {\n font: {\n type: 'enum',\n className: 'rt-r-ff',\n values: fontFamilies,\n },\n} satisfies {\n font: PropDef<(typeof fontFamilies)[number]>;\n};\n\nexport { fontFamilyPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst weights = ['thin', 'extralight', 'light', 'regular', 'medium', 'semibold', 'bold', 'extrabold'] as const;\n\nconst weightPropDef = {\n weight: {\n type: 'enum',\n className: 'rt-r-weight',\n values: weights,\n responsive: true,\n },\n} satisfies {\n weight: PropDef<(typeof weights)[number]>;\n};\n\nexport { weightPropDef };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textAlignPropDef } from '../props/text-align.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { fontFamilyPropDef } from '../props/font-family.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst as = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const;\nconst sizes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst headingPropDefs = {\n as: { type: 'enum', values: as, default: 'h1' },\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n default: '6',\n responsive: true,\n },\n ...fontFamilyPropDef,\n ...weightPropDef,\n ...textAlignPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n ...colorPropDef,\n ...highContrastPropDef,\n} satisfies {\n as: PropDef<(typeof as)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { headingPropDefs };\n", "import classNames from 'classnames';\n\nimport { getResponsiveClassNames, getResponsiveStyles } from './get-responsive-styles.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\nimport { mergeStyles } from './merge-styles.js';\n\nimport type * as React from 'react';\nimport type { PropDef } from '../props/prop-def.js';\n\ntype PropDefsWithClassName<T> = T extends Record<string, PropDef>\n ? { [K in keyof T]: T[K] extends { className: string } ? K : never }[keyof T]\n : never;\n\nfunction mergePropDefs<T extends Record<string, PropDef>[]>(...args: T): Record<string, PropDef> {\n return Object.assign({}, ...args);\n}\n\n/**\n * Takes props, checks them against prop defs that have a `className` on them,\n * adds necessary CSS classes and inline styles, and returns the props without\n * the corresponding prop defs that were used to formulate the new `className`\n * and `style` values. Also applies prop def defaults to every prop.\n */\nfunction extractProps<\n P extends { className?: string; style?: React.CSSProperties; [key: string]: any },\n T extends Record<string, PropDef>[]\n>(\n props: P,\n ...propDefs: T\n): Omit<P & { className?: string; style?: React.CSSProperties }, PropDefsWithClassName<T[number]>> {\n let className: string | undefined;\n let style: ReturnType<typeof mergeStyles>;\n const extractedProps = { ...props };\n const allPropDefs = mergePropDefs(...propDefs);\n\n for (const key in allPropDefs) {\n let value = extractedProps[key];\n const propDef = allPropDefs[key];\n\n // Apply prop def defaults\n if (propDef.default !== undefined && value === undefined) {\n value = propDef.default;\n }\n\n // Apply the default value if the value is not a valid enum value\n if (propDef.type === 'enum') {\n const values = [propDef.default, ...propDef.values];\n\n if (!values.includes(value) && !isResponsiveObject(value)) {\n value = propDef.default;\n }\n }\n\n // Apply the value with defaults\n (extractedProps as Record<string, any>)[key] = value;\n\n if ('className' in propDef && propDef.className) {\n delete extractedProps[key];\n\n const isResponsivePropDef = 'responsive' in propDef;\n // Make sure we are not threading through responsive values for non-responsive prop defs\n if (!value || (isResponsiveObject(value) && !isResponsivePropDef)) {\n continue;\n }\n\n if (isResponsiveObject(value)) {\n // Apply prop def defaults to the `initial` breakpoint\n if (propDef.default !== undefined && value.initial === undefined) {\n value.initial = propDef.default;\n }\n\n // Apply the default value to the `initial` breakpoint when it is not a valid enum value\n if (propDef.type === 'enum') {\n const values = [propDef.default, ...propDef.values];\n\n if (!values.includes(value.initial)) {\n value.initial = propDef.default;\n }\n }\n }\n\n if (propDef.type === 'enum') {\n const propClassName = getResponsiveClassNames({\n allowArbitraryValues: false,\n value,\n className: propDef.className,\n propValues: propDef.values,\n parseValue: propDef.parseValue,\n });\n\n className = classNames(className, propClassName);\n continue;\n }\n\n if (propDef.type === 'string' || propDef.type === 'enum | string') {\n const propDefValues = propDef.type === 'string' ? [] : propDef.values;\n\n const [propClassNames, propCustomProperties] = getResponsiveStyles({\n className: propDef.className,\n customProperties: propDef.customProperties,\n propValues: propDefValues,\n parseValue: propDef.parseValue,\n value,\n });\n\n style = mergeStyles(style, propCustomProperties);\n className = classNames(className, propClassNames);\n continue;\n }\n\n if (propDef.type === 'boolean' && value) {\n // TODO handle responsive boolean props\n className = classNames(className, propDef.className);\n continue;\n }\n }\n }\n\n extractedProps.className = classNames(className, props.className);\n extractedProps.style = mergeStyles(style, props.style);\n return extractedProps;\n}\n\nexport { extractProps };\n", "import type React from 'react';\n\n// Creates a union type of string literals with strings, but retains intellisense for the literals.\n// Union<string, 'foo' | 'bar'> => string | Omit<string, 'foo' | 'bar'>\ntype Union<S = string, T extends string | number = string> = T | Omit<S, T>;\n\nconst breakpoints = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'] as const;\nconst breakpointSet: Set<string> = new Set(breakpoints);\ntype Breakpoint = (typeof breakpoints)[number];\ntype Responsive<T> = T | Partial<Record<Breakpoint, T>>;\n\ntype BooleanPropDef = {\n type: 'boolean';\n default?: boolean;\n required?: boolean;\n className?: string;\n};\ntype StringPropDef = {\n type: 'string';\n default?: string;\n required?: boolean;\n};\ntype ReactNodePropDef = {\n type: 'ReactNode';\n default?: React.ReactNode;\n required?: boolean;\n};\ntype EnumPropDef<T> = {\n type: 'enum';\n values: readonly T[];\n default?: T;\n required?: boolean;\n};\ntype EnumOrStringPropDef<T> = {\n type: 'enum | string';\n values: readonly T[];\n default?: T | string;\n required?: boolean;\n};\n\ntype NonStylingPropDef = {\n className?: never;\n customProperties?: never;\n parseValue?: never;\n};\n\ntype StylingPropDef = {\n className: string;\n parseValue?: (value: string) => string | undefined;\n};\n\ntype ArbitraryStylingPropDef = {\n className: string;\n customProperties: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n};\n\ntype RegularPropDef<T> =\n | ReactNodePropDef\n | BooleanPropDef\n | (StringPropDef & ArbitraryStylingPropDef)\n | (StringPropDef & NonStylingPropDef)\n | (EnumPropDef<T> & StylingPropDef)\n | (EnumPropDef<T> & NonStylingPropDef)\n | (EnumOrStringPropDef<T> & ArbitraryStylingPropDef)\n | (EnumOrStringPropDef<T> & NonStylingPropDef);\ntype ResponsivePropDef<T = any> = RegularPropDef<T> & { responsive: true };\ntype PropDef<T = any> = RegularPropDef<T> | ResponsivePropDef<T>;\n\n// prettier-ignore\ntype GetPropDefType<Def> =\n Def extends BooleanPropDef ? (Def extends ResponsivePropDef ? Responsive<boolean> : boolean)\n : Def extends StringPropDef ? (Def extends ResponsivePropDef ? Responsive<string> : string)\n : Def extends ReactNodePropDef ? (Def extends ResponsivePropDef ? Responsive<React.ReactNode> : React.ReactNode)\n : Def extends EnumOrStringPropDef<infer Type> ?\n Def extends ResponsivePropDef<infer Type extends string> ? Responsive<Union<string, Type>> : Type\n : Def extends EnumPropDef<infer Type> ? (Def extends ResponsivePropDef<infer Type> ? Responsive<Type> : Type)\n : never;\n\ntype GetPropDefTypes<P> = {\n [K in keyof P]?: GetPropDefType<P[K]>;\n};\n\nexport { breakpoints, breakpointSet };\nexport type {\n PropDef,\n GetPropDefTypes,\n ResponsivePropDef,\n //\n Breakpoint,\n Responsive,\n Union,\n};\n", "/** A util to check whether the object has a key, while inferring the correct key type */\nfunction hasOwnProperty<K extends string | number | symbol>(\n obj: Record<K, unknown>,\n key: string | number | symbol\n): key is K {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport { hasOwnProperty };\n", "import type { Responsive, Breakpoint } from '../props/prop-def.js';\n\n// Use a Set for O(1) lookup instead of array.includes() which is O(n)\nconst breakpointSet = new Set<string>(['initial', 'xs', 'sm', 'md', 'lg', 'xl']);\n\nexport function isResponsiveObject<Value extends string>(\n obj: Responsive<Value | Omit<string, Value>> | undefined\n): obj is Record<Breakpoint, string> {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n // Use for...in to avoid Object.keys() array allocation\n for (const key in obj) {\n if (breakpointSet.has(key)) {\n return true;\n }\n }\n return false;\n}\n", "import { breakpointSet } from '../props/prop-def.js';\nimport { hasOwnProperty } from './has-own-property.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\n\nimport type { Responsive, Union } from '../props/prop-def.js';\n\ninterface GetResponsiveStylesOptions {\n className: string;\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveStyles({ className, customProperties, ...args }: GetResponsiveStylesOptions) {\n const responsiveClassNames = getResponsiveClassNames({\n allowArbitraryValues: true,\n className,\n ...args,\n });\n\n const responsiveCustomProperties = getResponsiveCustomProperties({ customProperties, ...args });\n return [responsiveClassNames, responsiveCustomProperties] as const;\n}\n\ninterface GetResponsiveClassNamesOptions {\n allowArbitraryValues?: boolean;\n className: string;\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveClassNames({\n allowArbitraryValues,\n value,\n className,\n propValues,\n parseValue = (value) => value,\n}: GetResponsiveClassNamesOptions): string | undefined {\n const classNames: string[] = [];\n\n if (!value) {\n return undefined;\n }\n\n if (typeof value === 'string' && propValues.includes(value)) {\n return getBaseClassName(className, value, parseValue);\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n if (value !== undefined) {\n if (propValues.includes(value)) {\n const baseClassName = getBaseClassName(className, value, parseValue);\n const bpClassName = bp === 'initial' ? baseClassName : `${bp}:${baseClassName}`;\n classNames.push(bpClassName);\n } else if (allowArbitraryValues) {\n const bpClassName = bp === 'initial' ? className : `${bp}:${className}`;\n classNames.push(bpClassName);\n }\n }\n }\n\n return classNames.join(' ');\n }\n\n if (allowArbitraryValues) {\n return className;\n }\n}\n\nfunction getBaseClassName(\n className: string,\n value: string,\n parseValue: (value: string) => string | undefined\n): string {\n const delimiter = className ? '-' : '';\n const matchedValue = parseValue(value);\n const isNegative = matchedValue?.startsWith('-');\n const minus = isNegative ? '-' : '';\n const absoluteValue = isNegative ? matchedValue?.substring(1) : matchedValue;\n return `${minus}${className}${delimiter}${absoluteValue}`;\n}\n\ninterface GetResponsiveCustomPropertiesOptions {\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveCustomProperties({\n customProperties,\n value,\n propValues,\n parseValue = (value) => value,\n}: GetResponsiveCustomPropertiesOptions) {\n let styles: Record<string, string | undefined> = {};\n\n // Don't generate custom properties if the value is not arbitrary\n if (!value || (typeof value === 'string' && propValues.includes(value))) {\n return undefined;\n }\n\n if (typeof value === 'string') {\n styles = Object.fromEntries(customProperties.map((prop) => [prop, value]));\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n // Don't generate a custom property if the value is not arbitrary\n if (propValues.includes(value)) {\n continue;\n }\n\n for (const customProperty of customProperties) {\n const bpProperty = bp === 'initial' ? customProperty : `${customProperty}-${bp}`;\n styles[bpProperty] = value;\n }\n }\n }\n\n for (const key in styles) {\n const value = styles[key];\n if (value !== undefined) {\n styles[key] = parseValue(value);\n }\n }\n\n return styles;\n}\n\nexport { getResponsiveStyles, getResponsiveCustomProperties, getResponsiveClassNames };\n", "type InlineStyle =\n | React.CSSProperties\n | Record<string, string | number | null | undefined>\n | undefined;\n\n// Merges CSS styles like `classNames` merges CSS classes\n// Optimized to avoid object spread in loop - uses Object.assign for in-place mutation\nexport function mergeStyles(...styles: Array<InlineStyle>): InlineStyle {\n let result: Record<string, string | number | null | undefined> | undefined;\n\n for (const style of styles) {\n if (style) {\n if (result === undefined) {\n // First non-empty style - create result object\n result = {};\n }\n Object.assign(result, style);\n }\n }\n\n return result;\n}\n", "import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\n// prettier-ignore\nconst marginValues = ['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'] as const;\n\nconst marginPropDefs = {\n /**\n * Sets the CSS **margin** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * m=\"4\"\n * m=\"100px\"\n * m={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin\n */\n m: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-m',\n customProperties: ['--m'],\n },\n /**\n * Sets the CSS **margin-left** and **margin-right** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mx=\"4\"\n * mx=\"100px\"\n * mx={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\n */\n mx: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mx',\n customProperties: ['--ml', '--mr'],\n },\n /**\n * Sets the CSS **margin-top** and **margin-bottom** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * my=\"4\"\n * my=\"100px\"\n * my={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\n */\n my: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-my',\n customProperties: ['--mt', '--mb'],\n },\n /**\n * Sets the CSS **margin-top** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mt=\"4\"\n * mt=\"100px\"\n * mt={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\n */\n mt: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mt',\n customProperties: ['--mt'],\n },\n /**\n * Sets the CSS **margin-right** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mr=\"4\"\n * mr=\"100px\"\n * mr={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\n */\n mr: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mr',\n customProperties: ['--mr'],\n },\n /**\n * Sets the CSS **margin-bottom** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mb=\"4\"\n * mb=\"100px\"\n * mb={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\n */\n mb: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mb',\n customProperties: ['--mb'],\n },\n /**\n * Sets the CSS **margin-left** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * ml=\"4\"\n * ml=\"100px\"\n * ml={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\n */\n ml: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-ml',\n customProperties: ['--ml'],\n },\n} satisfies {\n m: PropDef<(typeof marginValues)[number]>;\n mx: PropDef<(typeof marginValues)[number]>;\n my: PropDef<(typeof marginValues)[number]>;\n mt: PropDef<(typeof marginValues)[number]>;\n mr: PropDef<(typeof marginValues)[number]>;\n mb: PropDef<(typeof marginValues)[number]>;\n ml: PropDef<(typeof marginValues)[number]>;\n};\n\ntype MarginProps = GetPropDefTypes<typeof marginPropDefs>;\n\nexport { marginPropDefs };\nexport type { MarginProps };\n", "import * as React from 'react';\nimport { Slot } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { textPropDefs } from './text.props.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\ntype TextElement = React.ElementRef<'span'>;\ntype TextOwnProps = GetPropDefTypes<typeof textPropDefs>;\ninterface CommonTextProps extends MarginProps, TextOwnProps {}\ntype TextSpanProps = { as?: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\ntype TextDivProps = { as: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\ntype TextLabelProps = { as: 'label' } & ComponentPropsWithout<'label', RemovedProps>;\ntype TextPProps = { as: 'p' } & ComponentPropsWithout<'p', RemovedProps>;\ntype TextProps = CommonTextProps & (TextSpanProps | TextDivProps | TextLabelProps | TextPProps);\n\n// Pre-merge prop definitions at module level to avoid per-render allocation\nconst mergedPropDefs = { ...textPropDefs, ...marginPropDefs };\n\nconst Text = React.memo(\n React.forwardRef<TextElement, TextProps>((props, forwardedRef) => {\n const {\n children,\n className,\n asChild,\n as: Tag = 'span',\n color,\n ...textProps\n } = extractProps(props, mergedPropDefs);\n\n const combinedClassName = className ? `rt-Text ${className}` : 'rt-Text';\n\n if (asChild) {\n return (\n <Slot.Root\n data-accent-color={color}\n {...textProps}\n ref={forwardedRef}\n className={combinedClassName}\n >\n {children}\n </Slot.Root>\n );\n }\n\n return (\n <Tag\n data-accent-color={color}\n {...(textProps as React.HTMLAttributes<HTMLElement>)}\n ref={forwardedRef as any}\n className={combinedClassName}\n >\n {children}\n </Tag>\n );\n })\n);\nText.displayName = 'Text';\n\nexport { Text };\nexport type { TextProps };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textAlignPropDef } from '../props/text-align.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { fontFamilyPropDef } from '../props/font-family.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst as = ['span', 'div', 'label', 'p'] as const;\nconst sizes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst textPropDefs = {\n as: { type: 'enum', values: as, default: 'span' },\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n ...fontFamilyPropDef,\n ...weightPropDef,\n ...textAlignPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n ...colorPropDef,\n ...highContrastPropDef,\n} satisfies {\n as: PropDef<(typeof as)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { textPropDefs };\n", "import * as React from 'react';\n\n/** A function that throws an error when a value isn't a valid React Element, otherwise returns the value */\nexport const requireReactElement = <T extends React.ReactNode>(children: T): T => {\n const isReactElement = React.isValidElement(children);\n\n if (!isReactElement) {\n throw Error(\n `Expected a single React Element child, but got: ${React.Children.toArray(children)\n .map((child) =>\n typeof child === 'object' && 'type' in child && typeof child.type === 'string'\n ? child.type\n : typeof child\n )\n .join(', ')}`\n );\n }\n\n return children;\n};\n", "import * as React from 'react';\n\nlet cleanupInstalled = false;\n\n/**\n * Hook to cleanup stuck pointer-events: none on document.body\n *\n * This addresses an issue where react-remove-scroll (used by Radix UI Dialog)\n * sometimes fails to restore body pointer-events after dialog closes,\n * leaving the page unclickable.\n */\nexport function useBodyPointerEventsCleanup() {\n React.useEffect(() => {\n if (typeof document === 'undefined') return;\n if (cleanupInstalled) return;\n\n cleanupInstalled = true;\n\n const hasOpenModal = (): boolean => {\n // Check for open dialogs/alertdialogs\n const hasDialogs = Boolean(\n document.querySelector(\n '[role=\"dialog\"][aria-modal=\"true\"], [role=\"alertdialog\"][aria-modal=\"true\"]',\n ),\n );\n\n // Also check for any Radix overlays that are still mounted\n const hasRadixOverlays = Boolean(\n document.querySelector('[data-radix-popper-content-wrapper], [data-state=\"open\"]'),\n );\n\n return hasDialogs || hasRadixOverlays;\n };\n\n const forceCleanup = () => {\n // Aggressive cleanup - remove pointer-events regardless\n if (document.body.style.pointerEvents === 'none') {\n console.log('[KookieUI] Force cleaning stuck pointer-events: none from body');\n document.body.style.pointerEvents = '';\n\n // Also remove any scroll-lock related attributes\n document.body.removeAttribute('data-scroll-locked');\n document.body.removeAttribute('data-remove-scroll');\n\n // Remove any classes that might be causing issues\n document.body.classList.remove('ReactModal__Body--open');\n }\n };\n\n const safeCleanup = () => {\n if (document.body.style.pointerEvents === 'none' && !hasOpenModal()) {\n console.log('[KookieUI] Safe cleaning stuck pointer-events: none from body');\n document.body.style.pointerEvents = '';\n }\n };\n\n // Force cleanup on any click outside modal content\n const onDocumentClick = (event: Event) => {\n const target = event.target as Element;\n if (\n target &&\n !target.closest(\n '[role=\"dialog\"], [role=\"alertdialog\"], [data-radix-popper-content-wrapper]',\n )\n ) {\n // Clicked outside any modal - force cleanup after a short delay\n setTimeout(forceCleanup, 100);\n }\n };\n\n // Force cleanup on ESC key\n const onEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setTimeout(forceCleanup, 200);\n }\n };\n\n // Safe cleanup on other interactions\n const onInteraction = () => {\n setTimeout(safeCleanup, 50);\n };\n\n // Install global listeners\n document.addEventListener('click', onDocumentClick, true);\n document.addEventListener('keydown', onEscapeKey, true);\n document.addEventListener('pointerup', onInteraction, true);\n document.addEventListener('transitionend', onInteraction, true);\n document.addEventListener('animationend', onInteraction, true);\n\n // Watch for DOM changes that might indicate overlay removal\n const observer = new MutationObserver(() => {\n setTimeout(safeCleanup, 0);\n });\n observer.observe(document.body, { childList: true, subtree: true, attributes: true });\n\n // Fallback periodic cleanup\n const intervalId = setInterval(() => {\n if (document.body.style.pointerEvents === 'none' && !hasOpenModal()) {\n console.log('[KookieUI] Periodic cleanup of stuck pointer-events');\n document.body.style.pointerEvents = '';\n }\n }, 1000);\n\n // Initial cleanup\n setTimeout(safeCleanup, 100);\n\n // Cleanup function (keep listeners for app lifetime)\n return () => {\n clearInterval(intervalId);\n };\n }, []);\n}\n", "import { VisuallyHidden as VisuallyHiddenPrimitive } from 'radix-ui';\nexport const VisuallyHidden = VisuallyHiddenPrimitive.Root;\nexport const Root = VisuallyHiddenPrimitive.Root;\nexport type VisuallyHiddenProps = VisuallyHiddenPrimitive.VisuallyHiddenProps;\n", "import * as React from 'react';\nimport type { Breakpoint, PresentationValue, ResponsivePresentation } from './shell.types.js';\nimport { _BREAKPOINTS } from './shell.types.js';\nimport { useShell } from './shell.context.js';\n\nfunction useResponsivePresentation(presentation: ResponsivePresentation): PresentationValue {\n const { currentBreakpoint } = useShell();\n\n return React.useMemo(() => {\n if (typeof presentation === 'string') {\n return presentation;\n }\n\n if (presentation[currentBreakpoint]) {\n return presentation[currentBreakpoint]!;\n }\n\n const bpKeys = Object.keys(_BREAKPOINTS) as Array<keyof typeof _BREAKPOINTS>;\n const order: Breakpoint[] = ([...bpKeys].reverse() as Breakpoint[]).concat('initial' as Breakpoint);\n const startIdx = order.indexOf(currentBreakpoint as Breakpoint);\n\n for (let i = startIdx + 1; i < order.length; i++) {\n const bp = order[i];\n if (presentation[bp]) {\n return presentation[bp]!;\n }\n }\n\n return 'fixed';\n }, [presentation, currentBreakpoint]);\n}\n\n/**\n * Resolve a responsive value (T or responsive map keyed by breakpoints) against the current Shell breakpoint.\n * If no value is defined for the current breakpoint, search smaller breakpoints down to 'initial'.\n * Returns undefined when passed a responsive map with no matching key across the chain.\n */\nfunction useResponsiveValue<T>(value: T | Partial<Record<Breakpoint, T>> | undefined): T | undefined {\n const { currentBreakpoint } = useShell();\n\n return React.useMemo(() => {\n if (value == null) return undefined;\n // Primitive value\n if (typeof value !== 'object') {\n return value as T;\n }\n\n const map = value as Partial<Record<Breakpoint, T>>;\n if (map[currentBreakpoint as Breakpoint] !== undefined) {\n return map[currentBreakpoint as Breakpoint] as T;\n }\n\n const bpKeys = Object.keys(_BREAKPOINTS) as Array<keyof typeof _BREAKPOINTS>;\n const order: Breakpoint[] = ([...bpKeys].reverse() as Breakpoint[]).concat('initial' as Breakpoint);\n const startIdx = order.indexOf(currentBreakpoint as Breakpoint);\n\n for (let i = startIdx + 1; i < order.length; i++) {\n const bp = order[i];\n if (map[bp] !== undefined) {\n return map[bp] as T;\n }\n }\n\n return undefined;\n }, [value, currentBreakpoint]);\n}\n\ntype ResponsiveStateValue<T> = T | Partial<Record<Breakpoint, T>>;\n\ninterface UseResponsiveInitialStateOptions<T> {\n controlledValue?: ResponsiveStateValue<T>;\n defaultValue?: ResponsiveStateValue<T>;\n currentValue: T;\n setValue: (value: T) => void;\n breakpointReady: boolean;\n onInit?: (value: T) => void;\n onResponsiveChange?: (value: T) => void;\n controlledIsResponsive?: boolean;\n}\n\ninterface UseResponsiveInitialStateResult<T> {\n resolvedControlled?: T;\n resolvedDefault?: T;\n}\n\nfunction useResponsiveInitialState<T>({\n controlledValue,\n defaultValue,\n currentValue,\n setValue,\n breakpointReady,\n onInit,\n onResponsiveChange,\n controlledIsResponsive = false,\n}: UseResponsiveInitialStateOptions<T>): UseResponsiveInitialStateResult<T> {\n const resolvedControlled = useResponsiveValue(controlledValue);\n const resolvedDefault = useResponsiveValue(defaultValue);\n\n const lastControlledRef = React.useRef<T | undefined>(undefined);\n const pendingSyncRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const latestControlledRef = React.useRef<T | undefined>(resolvedControlled);\n const latestValueRef = React.useRef(currentValue);\n const setValueRef = React.useRef(setValue);\n\n React.useLayoutEffect(() => {\n latestControlledRef.current = resolvedControlled;\n latestValueRef.current = currentValue;\n setValueRef.current = setValue;\n });\n\n React.useEffect(() => {\n if (resolvedControlled === undefined) return;\n\n const prevControlled = lastControlledRef.current;\n const controlledChanged = prevControlled !== resolvedControlled;\n lastControlledRef.current = resolvedControlled;\n\n if (currentValue === resolvedControlled) {\n if (pendingSyncRef.current) {\n clearTimeout(pendingSyncRef.current);\n pendingSyncRef.current = null;\n }\n if (controlledIsResponsive) {\n onResponsiveChange?.(resolvedControlled);\n }\n return;\n }\n\n if (controlledChanged) {\n if (pendingSyncRef.current) {\n clearTimeout(pendingSyncRef.current);\n pendingSyncRef.current = null;\n }\n setValue(resolvedControlled);\n if (controlledIsResponsive) {\n onResponsiveChange?.(resolvedControlled);\n }\n return;\n }\n\n if (!pendingSyncRef.current) {\n pendingSyncRef.current = setTimeout(() => {\n pendingSyncRef.current = null;\n const latestControlled = latestControlledRef.current;\n const latestValue = latestValueRef.current;\n if (latestControlled === undefined) return;\n if (latestValue === latestControlled) return;\n setValueRef.current(latestControlled);\n }, 0);\n }\n }, [resolvedControlled, currentValue, setValue, onResponsiveChange, controlledIsResponsive]);\n\n React.useEffect(() => {\n return () => {\n if (pendingSyncRef.current) {\n clearTimeout(pendingSyncRef.current);\n pendingSyncRef.current = null;\n }\n };\n }, []);\n\n const didInitRef = React.useRef(false);\n React.useEffect(() => {\n if (didInitRef.current) return;\n if (!breakpointReady) return;\n if (typeof controlledValue !== 'undefined') return;\n if (resolvedDefault === undefined) return;\n didInitRef.current = true;\n if (currentValue !== resolvedDefault) {\n setValue(resolvedDefault);\n }\n onInit?.(resolvedDefault);\n }, [breakpointReady, controlledValue, resolvedDefault, currentValue, setValue, onInit]);\n\n return { resolvedControlled, resolvedDefault };\n}\n\nexport { useResponsivePresentation, useResponsiveValue, useResponsiveInitialState };\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\nexport interface PaneBaseProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n minSize?: number;\n maxSize?: number;\n height?: string | number;\n resizable?: boolean;\n collapsible?: boolean;\n onExpand?: () => void;\n onCollapse?: () => void;\n onResize?: (size: number) => void;\n resizer?: React.ReactNode;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n snapPoints?: number[];\n snapTolerance?: number;\n collapseThreshold?: number;\n paneId?: string;\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\nexport type PaneTarget = 'left' | 'rail' | 'panel' | 'sidebar' | 'inspector' | 'bottom';\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", "import * as React from 'react';\nimport type { Breakpoint, PresentationValue, SidebarMode, PaneMode, PaneTarget } from './shell.types.js';\n\nexport interface ShellContextValue {\n // Pane states\n leftMode: PaneMode;\n setLeftMode: (mode: PaneMode) => void;\n /** When Rail is controlled, this reflects the resolved open state for the current breakpoint. */\n leftControlledOpen?: boolean;\n panelMode: PaneMode; // Panel state within left container\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\n // Peek state (layout-only, ephemeral)\n peekTarget: PaneTarget | null;\n setPeekTarget: (target: PaneTarget | null) => void;\n peekPane: (target: PaneTarget) => void;\n clearPeek: () => void;\n\n // Composition detection\n hasLeft: boolean;\n setHasLeft: (has: boolean) => void;\n hasSidebar: boolean;\n setHasSidebar: (has: boolean) => void;\n\n // Presentation resolution\n currentBreakpoint: Breakpoint;\n currentBreakpointReady: boolean;\n leftResolvedPresentation?: PresentationValue;\n\n // Actions\n togglePane: (target: PaneTarget) => void;\n expandPane: (target: PaneTarget) => void;\n collapsePane: (target: PaneTarget) => void;\n // Toggle customization\n setSidebarToggleComputer?: (fn: (current: SidebarMode) => SidebarMode) => void;\n // Dev-only hooks for presentation warnings\n onLeftPres?: (p: PresentationValue) => void;\n // Sizing info for overlay grouping\n onLeftDefaults?: (size: number) => void;\n onRailDefaults?: (size: number) => void;\n onPanelDefaults?: (size: number) => void;\n}\n\nconst ShellContext = React.createContext<ShellContextValue | null>(null);\n\n/** @internal Shell root context. Prefer slice hooks (useSidebarMode, useShellActions, etc.). */\nexport function useShell() {\n const ctx = React.useContext(ShellContext);\n if (!ctx) throw new Error('Shell components must be used within <Shell.Root>');\n return ctx;\n}\n\nexport function ShellProvider({ value, children }: { value: ShellContextValue; children: React.ReactNode }) {\n return <ShellContext.Provider value={value}>{children}</ShellContext.Provider>;\n}\n\n// Phase 7: Split contexts for render isolation\n\n// Pane mode slice contexts\ntype ModeSetter<T> = (mode: T) => void;\n\nexport const LeftModeContext = React.createContext<{ leftMode: PaneMode; setLeftMode: ModeSetter<PaneMode> } | null>(null);\nexport function useLeftMode() {\n const ctx = React.useContext(LeftModeContext);\n if (!ctx) throw new Error('useLeftMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const PanelModeContext = React.createContext<{ panelMode: PaneMode; setPanelMode: ModeSetter<PaneMode> } | null>(null);\nexport function usePanelMode() {\n const ctx = React.useContext(PanelModeContext);\n if (!ctx) throw new Error('usePanelMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const SidebarModeContext = React.createContext<{ sidebarMode: SidebarMode; setSidebarMode: ModeSetter<SidebarMode> } | null>(null);\nexport function useSidebarMode() {\n const ctx = React.useContext(SidebarModeContext);\n if (!ctx) throw new Error('useSidebarMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const InspectorModeContext = React.createContext<{ inspectorMode: PaneMode; setInspectorMode: ModeSetter<PaneMode> } | null>(null);\nexport function useInspectorMode() {\n const ctx = React.useContext(InspectorModeContext);\n if (!ctx) throw new Error('useInspectorMode must be used within Shell.Root');\n return ctx;\n}\n\nexport const BottomModeContext = React.createContext<{ bottomMode: PaneMode; setBottomMode: ModeSetter<PaneMode> } | null>(null);\nexport function useBottomMode() {\n const ctx = React.useContext(BottomModeContext);\n if (!ctx) throw new Error('useBottomMode must be used within Shell.Root');\n return ctx;\n}\n\n// Presentation slice\nexport const PresentationContext = React.createContext<{ currentBreakpoint: Breakpoint; currentBreakpointReady: boolean; leftResolvedPresentation?: PresentationValue } | null>(null);\nexport function usePresentation() {\n const ctx = React.useContext(PresentationContext);\n if (!ctx) throw new Error('usePresentation must be used within Shell.Root');\n return ctx;\n}\n\n// Peek slice\nexport const PeekContext = React.createContext<{ peekTarget: PaneTarget | null; setPeekTarget: (t: PaneTarget | null) => void; peekPane: (t: PaneTarget) => void; clearPeek: () => void } | null>(\n null,\n);\nexport function usePeek() {\n const ctx = React.useContext(PeekContext);\n if (!ctx) throw new Error('usePeek must be used within Shell.Root');\n return ctx;\n}\n\n// Actions slice (stable callbacks)\nexport const ActionsContext = React.createContext<{\n togglePane: (t: PaneTarget) => void;\n expandPane: (t: PaneTarget) => void;\n collapsePane: (t: PaneTarget) => void;\n setSidebarToggleComputer?: (fn: (current: SidebarMode) => SidebarMode) => void;\n} | null>(null);\nexport function useShellActions() {\n const ctx = React.useContext(ActionsContext);\n if (!ctx) throw new Error('useShellActions must be used within Shell.Root');\n return ctx;\n}\n\n// Composition slice\nexport const CompositionContext = React.createContext<{ hasLeft: boolean; setHasLeft: (v: boolean) => void; hasSidebar: boolean; setHasSidebar: (v: boolean) => void } | null>(null);\nexport function useComposition() {\n const ctx = React.useContext(CompositionContext);\n if (!ctx) throw new Error('useComposition must be used within Shell.Root');\n return ctx;\n}\n\n// Inset slice - tracks which panes have inset for gray backdrop\nexport type InsetPaneId = 'left' | 'sidebar' | 'content' | 'inspector' | 'bottom';\nexport const InsetContext = React.createContext<{\n insetPanes: Set<InsetPaneId>;\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n hasAnyInset: boolean;\n} | null>(null);\nexport function useInset() {\n const ctx = React.useContext(InsetContext);\n if (!ctx) throw new Error('useInset must be used within Shell.Root');\n return ctx;\n}\n", "import * as React from 'react';\n\nexport interface PaneResizeContextValue {\n containerRef: React.RefObject<HTMLDivElement | null>;\n cssVarName: string;\n minSize: number;\n maxSize: number;\n defaultSize: number;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n computeNext: (clientPos: number, startClientPos: number, startSize: number) => number;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n target: 'left' | 'rail' | 'panel' | 'sidebar' | 'inspector' | 'bottom';\n collapsible: boolean;\n snapPoints?: number[];\n snapTolerance: number;\n collapseThreshold?: number;\n requestCollapse?: () => void;\n requestToggle?: () => void;\n}\n\nexport const PaneResizeContext = React.createContext<PaneResizeContextValue | null>(null);\n\nexport function usePaneResize() {\n const ctx = React.useContext(PaneResizeContext);\n if (!ctx) throw new Error('Shell.Handle must be used within a resizable pane');\n return ctx;\n}\n", "import * as React from 'react';\nimport classNames from 'classnames';\nimport { usePaneResize } from './shell-resize.js';\n\nexport const PaneHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(({ className, children, ...props }, ref) => {\n const {\n containerRef,\n cssVarName,\n minSize,\n maxSize,\n defaultSize,\n orientation,\n edge,\n computeNext,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n collapsible,\n target,\n requestCollapse,\n requestToggle,\n } = usePaneResize();\n\n const activeCleanupRef = React.useRef<(() => void) | null>(null);\n React.useEffect(\n () => () => {\n try {\n activeCleanupRef.current?.();\n } catch {}\n activeCleanupRef.current = null;\n },\n [],\n );\n\n const ariaOrientation = orientation;\n\n // Generate accessible label from target\n const targetLabel = target.charAt(0).toUpperCase() + target.slice(1);\n const ariaLabel = `Resize ${targetLabel} pane`;\n\n return (\n <div\n {...props}\n ref={ref}\n className={classNames('rt-ShellResizer', className)}\n data-orientation={orientation}\n data-edge={edge}\n role=\"slider\"\n aria-label={ariaLabel}\n aria-orientation={ariaOrientation}\n aria-valuemin={minSize}\n aria-valuemax={maxSize}\n aria-valuenow={defaultSize}\n tabIndex={0}\n onPointerDown={(e) => {\n if (!containerRef.current) return;\n e.preventDefault();\n const container = containerRef.current;\n const handleEl = e.currentTarget as HTMLElement;\n const pointerId = e.pointerId;\n try {\n activeCleanupRef.current?.();\n } catch {}\n container.setAttribute('data-resizing', '');\n try {\n handleEl.setPointerCapture(pointerId);\n } catch {}\n const startClient = orientation === 'vertical' ? e.clientX : e.clientY;\n const startSize = parseFloat(getComputedStyle(container).getPropertyValue(cssVarName) || `${defaultSize}`);\n const clamp = (v: number) => Math.min(Math.max(v, minSize), maxSize);\n const body = document.body;\n const prevCursor = body.style.cursor;\n const prevUserSelect = body.style.userSelect;\n body.style.cursor = orientation === 'vertical' ? 'col-resize' : 'row-resize';\n body.style.userSelect = 'none';\n onResizeStart?.(startSize);\n const handleMove = (ev: PointerEvent) => {\n const client = orientation === 'vertical' ? ev.clientX : ev.clientY;\n const next = clamp(computeNext(client, startClient, startSize));\n container.style.setProperty(cssVarName, `${next}px`);\n handleEl.setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n };\n const cleanup = () => {\n try {\n handleEl.releasePointerCapture(pointerId);\n } catch {}\n window.removeEventListener('pointermove', handleMove as EventListener);\n document.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('mousemove', handleMove as EventListener);\n document.removeEventListener('mousemove', handleMove as EventListener);\n handleEl.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('pointerup', handleUp as EventListener);\n document.removeEventListener('pointerup', handleUp as EventListener);\n window.removeEventListener('mouseup', handleUp as EventListener);\n document.removeEventListener('mouseup', handleUp as EventListener);\n window.removeEventListener('pointercancel', handleUp as EventListener);\n document.removeEventListener('pointercancel', handleUp as EventListener);\n window.removeEventListener('keydown', handleKey as EventListener);\n handleEl.removeEventListener('lostpointercapture', handleUp as EventListener);\n container.removeAttribute('data-resizing');\n body.style.cursor = prevCursor;\n body.style.userSelect = prevUserSelect;\n activeCleanupRef.current = null;\n };\n const handleUp = () => {\n const finalSize = parseFloat(getComputedStyle(container).getPropertyValue(cssVarName) || `${defaultSize}`);\n let snapped = finalSize;\n if (snapPoints && snapPoints.length) {\n const nearest = snapPoints.reduce((acc, p) => (Math.abs(p - finalSize) < Math.abs(acc - finalSize) ? p : acc), snapPoints[0]);\n if (Math.abs(nearest - finalSize) <= (snapTolerance ?? 8)) {\n snapped = nearest;\n container.style.setProperty(cssVarName, `${snapped}px`);\n handleEl.setAttribute('aria-valuenow', String(snapped));\n onResize?.(snapped);\n }\n }\n if (collapsible && typeof collapseThreshold === 'number' && finalSize <= collapseThreshold) {\n requestCollapse?.();\n }\n onResizeEnd?.(snapped);\n cleanup();\n };\n const handleKey = (kev: KeyboardEvent) => {\n if (kev.key === 'Escape') {\n container.style.setProperty(cssVarName, `${startSize}px`);\n handleEl.setAttribute('aria-valuenow', String(startSize));\n onResizeEnd?.(startSize);\n cleanup();\n }\n };\n window.addEventListener('pointermove', handleMove as EventListener);\n document.addEventListener('pointermove', handleMove as EventListener);\n // Fallbacks for environments that don't fully support PointerEvent on window\n window.addEventListener('mousemove', handleMove as EventListener);\n document.addEventListener('mousemove', handleMove as EventListener);\n handleEl.addEventListener('pointermove', handleMove as EventListener);\n window.addEventListener('pointerup', handleUp as EventListener);\n document.addEventListener('pointerup', handleUp as EventListener);\n window.addEventListener('mouseup', handleUp as EventListener);\n document.addEventListener('mouseup', handleUp as EventListener);\n window.addEventListener('pointercancel', handleUp as EventListener);\n document.addEventListener('pointercancel', handleUp as EventListener);\n window.addEventListener('keydown', handleKey as EventListener);\n handleEl.addEventListener('lostpointercapture', handleUp as EventListener);\n activeCleanupRef.current = cleanup;\n }}\n onDoubleClick={() => {\n if (collapsible) requestToggle?.();\n }}\n onKeyDown={(e) => {\n if (!containerRef.current) return;\n const container = containerRef.current;\n const rawCurrent = getComputedStyle(container).getPropertyValue(cssVarName);\n const parsedCurrent = Number.parseFloat(rawCurrent.trim());\n const current = Number.isFinite(parsedCurrent) ? parsedCurrent : defaultSize;\n const clamp = (v: number) => Math.min(Math.max(v, minSize), maxSize);\n const step = e.shiftKey ? 32 : 8;\n let delta = 0;\n if (orientation === 'vertical') {\n const docDir = typeof document !== 'undefined' ? document.dir : undefined;\n const cssDir = getComputedStyle(container).direction;\n const hasRtlAncestor = !!(container.closest && container.closest('[dir=\"rtl\"]'));\n const isRtl = docDir === 'rtl' || cssDir === 'rtl' || hasRtlAncestor;\n if (e.key === 'ArrowRight')\n delta = isRtl ? -step : step; // inline-end\n else if (e.key === 'ArrowLeft') delta = isRtl ? step : -step; // inline-start\n } else {\n if (e.key === 'ArrowDown') delta = step;\n else if (e.key === 'ArrowUp') delta = -step;\n }\n if (e.key === 'Home') {\n e.preventDefault();\n onResizeStart?.(current);\n const next = clamp(minSize);\n container.style.setProperty(cssVarName, `${next}px`);\n (e.currentTarget as HTMLElement).setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n onResizeEnd?.(next);\n return;\n }\n if (e.key === 'End') {\n e.preventDefault();\n onResizeStart?.(current);\n const next = clamp(maxSize);\n container.style.setProperty(cssVarName, `${next}px`);\n (e.currentTarget as HTMLElement).setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n onResizeEnd?.(next);\n return;\n }\n if (delta !== 0) {\n e.preventDefault();\n onResizeStart?.(current);\n const signedDelta = orientation === 'vertical' ? (edge === 'start' ? -delta : delta) : delta;\n const next = clamp(current + signedDelta);\n container.style.setProperty(cssVarName, `${next}px`);\n (e.currentTarget as HTMLElement).setAttribute('aria-valuenow', String(next));\n onResize?.(next);\n onResizeEnd?.(next);\n }\n }}\n >\n {children}\n </div>\n );\n});\nPaneHandle.displayName = 'Shell.Handle';\n\nexport const PanelHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nPanelHandle.displayName = 'Shell.Panel.Handle';\n\nexport const SidebarHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nSidebarHandle.displayName = 'Shell.Sidebar.Handle';\n\nexport const InspectorHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nInspectorHandle.displayName = 'Shell.Inspector.Handle';\n\nexport const BottomHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nBottomHandle.displayName = 'Shell.Bottom.Handle';\n", "import type { Breakpoint, PaneMode } from '../shell.types.js';\n\ntype KeyList<T> = readonly (keyof T)[];\n\nexport function omitPaneProps<T extends object, K extends KeyList<T>>(source: T, keys: K) {\n const omitSet = new Set<keyof T>(keys as readonly (keyof T)[]);\n const result: Partial<T> = {};\n (Object.keys(source) as Array<keyof T>).forEach((key) => {\n if (!omitSet.has(key)) {\n result[key] = source[key];\n }\n });\n return result as Omit<T, K[number]>;\n}\n\nconst PANE_BASE_INTERNAL_PROPS = [\n 'presentation',\n 'expandedSize',\n 'minSize',\n 'maxSize',\n 'resizable',\n 'collapsible',\n 'onExpand',\n 'onCollapse',\n 'onResize',\n 'resizer',\n 'onResizeStart',\n 'onResizeEnd',\n 'snapPoints',\n 'snapTolerance',\n 'collapseThreshold',\n 'paneId',\n 'persistence',\n 'inset',\n] as const;\n\nexport function extractPaneDomProps<T extends object, Extra extends KeyList<T> | undefined = undefined>(source: T, extraKeys?: Extra) {\n const omitKeys = extraKeys ? [...PANE_BASE_INTERNAL_PROPS, ...extraKeys] : [...PANE_BASE_INTERNAL_PROPS];\n return omitPaneProps(source, omitKeys as ReadonlyArray<keyof T>);\n}\n\nexport function mapResponsiveBooleanToPaneMode(value?: boolean | Partial<Record<Breakpoint, boolean>>): PaneMode | Partial<Record<Breakpoint, PaneMode>> | undefined {\n if (value == null) return undefined;\n if (typeof value === 'object') {\n const mapped: Partial<Record<Breakpoint, PaneMode>> = {};\n (Object.entries(value) as Array<[string, boolean]>).forEach(([bp, val]) => {\n if (typeof val === 'boolean') {\n mapped[bp as Breakpoint] = val ? 'expanded' : 'collapsed';\n }\n });\n return mapped;\n }\n return value ? 'expanded' : 'collapsed';\n}\n", "import * as React from 'react';\nimport classNames from 'classnames';\nimport * as Sheet from '../sheet.js';\nimport { VisuallyHidden } from '../visually-hidden.js';\nimport { useSidebarMode, usePresentation, usePeek, useShellActions, useComposition, useInset } from '../shell.context.js';\nimport { useResponsivePresentation, useResponsiveInitialState } from '../shell.hooks.js';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { extractPaneDomProps } from './shell-prop-helpers.js';\nimport { SidebarHandle, PaneHandle } from './shell-handles.js';\nimport type { Breakpoint, PaneMode, PaneSizePersistence, SidebarMode, Responsive, PaneBaseProps, CSSPropertiesWithVars } from '../shell.types.js';\nimport { _BREAKPOINTS } from '../shell.types.js';\nimport { normalizeToPx } from '../../helpers/normalize-to-px.js';\n\ntype SidebarPaneProps = PaneBaseProps & {\n mode?: PaneMode;\n defaultMode?: any;\n onModeChange?: (mode: PaneMode | SidebarMode) => void;\n};\n\ntype SidebarStateChangeMeta = { reason: 'init' | 'toggle' | 'responsive' };\ntype SidebarControlledProps = { state: Responsive<SidebarMode>; onStateChange?: (state: SidebarMode, meta: SidebarStateChangeMeta) => void; defaultState?: never };\ntype SidebarUncontrolledProps = { defaultState?: SidebarMode | Partial<Record<Breakpoint, SidebarMode>>; onStateChange?: (state: SidebarMode, meta: SidebarStateChangeMeta) => void; state?: never };\ntype SidebarPublicProps = Omit<SidebarPaneProps, 'mode' | 'defaultMode' | 'onModeChange'> & {\n // removed legacy mode props\n thinSize?: number;\n toggleModes?: 'both' | 'single';\n // size API (width when expanded)\n size?: number | string;\n defaultSize?: number | string;\n onSizeChange?: (size: number, meta: { reason: 'init' | 'resize' | 'controlled' }) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers gray backdrop on Shell. */\n inset?: boolean;\n} & (SidebarControlledProps | SidebarUncontrolledProps);\n\ntype SidebarComponent = React.ForwardRefExoticComponent<SidebarPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof SidebarHandle };\n\nconst SIDEBAR_DOM_PROP_KEYS = [\n 'className',\n 'children',\n 'state',\n 'defaultState',\n 'onStateChange',\n 'thinSize',\n 'toggleModes',\n 'size',\n 'defaultSize',\n 'onSizeChange',\n 'sizeUpdate',\n 'sizeUpdateMs',\n 'style',\n 'inset',\n] as const satisfies readonly (keyof SidebarPublicProps)[];\n\nexport const Sidebar = React.forwardRef<HTMLDivElement, SidebarPublicProps>((initialProps, ref) => {\n const {\n className,\n presentation = { initial: 'overlay', md: 'fixed' },\n expandedSize = 288,\n minSize = 200,\n maxSize = 400,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n thinSize = 64,\n toggleModes,\n state,\n defaultState,\n onStateChange,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n inset,\n } = initialProps;\n const sidebarDomProps = extractPaneDomProps(initialProps, SIDEBAR_DOM_PROP_KEYS);\n const { sidebarMode, setSidebarMode } = useSidebarMode();\n const { currentBreakpointReady } = usePresentation();\n const { peekTarget } = usePeek();\n const { togglePane, setSidebarToggleComputer } = useShellActions();\n const { setHasSidebar } = useComposition();\n const { registerInset, unregisterInset } = useInset();\n\n // Register/unregister inset\n React.useLayoutEffect(() => {\n if (inset) {\n registerInset('sidebar');\n return () => unregisterInset('sidebar');\n }\n }, [inset, registerInset, unregisterInset]);\n const resolvedPresentation = useResponsivePresentation(presentation);\n const isOverlay = resolvedPresentation === 'overlay';\n const isStacked = resolvedPresentation === 'stacked';\n // Phase sequencing is now CSS-driven; no JS-managed phase\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const setRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n localRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n const handleChildren = childArray.filter((el: React.ReactElement) => React.isValidElement(el) && el.type === SidebarHandle);\n const contentChildren = childArray.filter((el: React.ReactElement) => !(React.isValidElement(el) && el.type === SidebarHandle));\n\n // Ref for debounce cleanup\n const debounceTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n // Cleanup debounce timeout on unmount or when dependencies change\n React.useEffect(() => {\n return () => {\n if (debounceTimeoutRef.current) {\n clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = null;\n }\n };\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n // Throttled/debounced emitter for onSizeChange\n const emitSizeChange = React.useMemo(() => {\n const cb = onSizeChange as undefined | ((s: number, meta: { reason: 'init' | 'resize' | 'controlled' }) => void);\n const strategy = sizeUpdate as undefined | 'throttle' | 'debounce';\n const ms = sizeUpdateMs ?? 50;\n if (!cb) return () => {};\n if (strategy === 'debounce') {\n return (s: number, meta: { reason: 'init' | 'resize' | 'controlled' }) => {\n if (debounceTimeoutRef.current) clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = setTimeout(() => {\n cb(s, meta);\n debounceTimeoutRef.current = null;\n }, ms);\n };\n }\n if (strategy === 'throttle') {\n let last = 0;\n return (s: number, meta: { reason: 'init' | 'resize' | 'controlled' }) => {\n const now = Date.now();\n if (now - last >= ms) {\n last = now;\n cb(s, meta);\n }\n };\n }\n return (s: number, meta: { reason: 'init' | 'resize' | 'controlled' }) => cb(s, meta);\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n\n // Register with shell\n const sidebarId = React.useId();\n React.useEffect(() => {\n setHasSidebar(true);\n return () => {\n setHasSidebar(false);\n };\n }, [setHasSidebar, sidebarId]);\n\n // Dev guards\n const wasControlledRef = React.useRef<boolean | null>(null);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof state !== 'undefined' && typeof defaultState !== 'undefined') {\n console.error('Shell.Sidebar: Do not pass both `state` and `defaultState`. Choose one.');\n }\n if (typeof size !== 'undefined' && typeof defaultSize !== 'undefined') {\n console.error('Shell.Sidebar: Do not pass both `size` and `defaultSize`. Choose one.');\n }\n }\n\n // Warn on mode switch between controlled/uncontrolled\n React.useEffect(() => {\n const isControlled = typeof state !== 'undefined';\n if (wasControlledRef.current === null) {\n wasControlledRef.current = isControlled;\n return;\n }\n if (wasControlledRef.current !== isControlled) {\n console.warn('Shell.Sidebar: Switching between controlled and uncontrolled `state` is not supported.');\n wasControlledRef.current = isControlled;\n }\n }, [state]);\n\n // Stable ref for onStateChange to avoid effect dep churn\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n React.useLayoutEffect(() => {\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n\n // Resolve responsive controlled state at top level\n const stateIsResponsive = typeof state === 'object' && state !== null;\n const { resolvedControlled: resolvedSidebarControlled, resolvedDefault: resolvedSidebarDefault } = useResponsiveInitialState<SidebarMode>({\n controlledValue: state,\n defaultValue: defaultState,\n currentValue: sidebarMode as SidebarMode,\n setValue: setSidebarMode,\n breakpointReady: currentBreakpointReady,\n controlledIsResponsive: stateIsResponsive,\n onResponsiveChange: (next) => onStateChangeRef.current?.(next, { reason: 'responsive' }),\n onInit: (initial) => onStateChangeRef.current?.(initial, { reason: 'init' }),\n });\n\n // Emit mode changes. In controlled mode, skip when mode matches the controlled prop.\n const lastNotifyModeRef = React.useRef<SidebarMode | null>(null);\n const lastResolvedSidebarControlledRef = React.useRef<SidebarMode | undefined>(undefined);\n React.useEffect(() => {\n const current = sidebarMode as SidebarMode;\n const prevMode = lastNotifyModeRef.current;\n const prevResolvedControlled = lastResolvedSidebarControlledRef.current;\n const controlledChanged = prevResolvedControlled !== resolvedSidebarControlled;\n\n if (prevMode !== null && prevMode !== current) {\n const isControlled = typeof stateRef.current !== 'undefined';\n\n if (!isControlled || (!controlledChanged && current !== resolvedSidebarControlled)) {\n onStateChangeRef.current?.(current, { reason: 'toggle' });\n }\n }\n\n lastNotifyModeRef.current = current;\n lastResolvedSidebarControlledRef.current = resolvedSidebarControlled;\n }, [sidebarMode, resolvedSidebarControlled]);\n\n // Track previous mode to only fire callbacks on actual user-initiated state transitions.\n // We wait for breakpointReady to ensure the initial state sync from useResponsiveInitialState\n // is complete before enabling callbacks. This avoids spurious callbacks during initialization.\n // Use callback refs to avoid re-running effect when inline callbacks change.\n const onExpandRef = React.useRef(onExpand);\n const onCollapseRef = React.useRef(onCollapse);\n React.useLayoutEffect(() => {\n onExpandRef.current = onExpand;\n onCollapseRef.current = onCollapse;\n });\n\n const prevSidebarModeRef = React.useRef<SidebarMode | null>(null);\n const hasInitializedRef = React.useRef(false);\n React.useEffect(() => {\n const currentMode = sidebarMode as SidebarMode;\n\n // Wait for breakpoint to be ready before enabling callbacks\n if (!currentBreakpointReady) {\n prevSidebarModeRef.current = currentMode;\n return;\n }\n\n // Skip the first run after breakpoint is ready - this captures the post-sync state\n if (!hasInitializedRef.current) {\n hasInitializedRef.current = true;\n prevSidebarModeRef.current = currentMode;\n return;\n }\n\n const prevMode = prevSidebarModeRef.current;\n\n // Only fire on actual state transitions\n if (prevMode !== null && prevMode !== currentMode) {\n // onExpand: when becoming visible (collapsed \u2192 thin/expanded)\n if (prevMode === 'collapsed' && currentMode !== 'collapsed') {\n onExpandRef.current?.();\n }\n // onCollapse: when becoming hidden (any \u2192 collapsed)\n else if (currentMode === 'collapsed') {\n onCollapseRef.current?.();\n }\n prevSidebarModeRef.current = currentMode;\n }\n }, [sidebarMode, currentBreakpointReady]);\n\n // Option A: thin is width-only; content remains visible whenever not collapsed\n const isContentVisible = sidebarMode !== 'collapsed';\n\n // Default persistence if paneId provided and none supplied (fixed only)\n const persistenceAdapter = React.useMemo(() => {\n if (!paneId || persistence) return persistence;\n const key = `kookie-ui:shell:sidebar:${paneId}`;\n const adapter: PaneSizePersistence = {\n load: () => {\n if (typeof window === 'undefined') return undefined;\n try {\n const v = window.localStorage.getItem(key);\n return v ? Number(v) : undefined;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Sidebar: failed to load persisted size', err);\n }\n return undefined;\n }\n },\n save: (size: number) => {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(key, String(size));\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Sidebar: failed to save persisted size', err);\n }\n }\n },\n };\n return adapter;\n }, [paneId, persistence]);\n\n React.useEffect(() => {\n let mounted = true;\n (async () => {\n if (!resizable || !persistenceAdapter?.load || isOverlay) return;\n const loaded = await persistenceAdapter.load();\n if (mounted && typeof loaded === 'number' && localRef.current) {\n localRef.current.style.setProperty('--sidebar-size', `${loaded}px`);\n onResize?.(loaded);\n }\n })();\n return () => {\n mounted = false;\n };\n }, [resizable, persistenceAdapter, onResize, isOverlay]);\n\n // Register custom toggle behavior based on toggleModes (both|single)\n const resolveDefaultSidebarMode = React.useCallback((): SidebarMode => {\n const resolved = resolvedSidebarDefault ?? (typeof defaultState === 'string' ? defaultState : undefined) ?? 'expanded';\n return resolved === 'thin' || resolved === 'expanded' ? resolved : 'expanded';\n }, [resolvedSidebarDefault, defaultState]);\n\n React.useEffect(() => {\n if (!setSidebarToggleComputer) return;\n const strategy: 'both' | 'single' = toggleModes ?? 'both';\n const compute = (current: SidebarMode): SidebarMode => {\n if (strategy === 'both') {\n if (current === 'collapsed') return 'thin';\n if (current === 'thin') return 'expanded';\n return 'collapsed';\n }\n const target = resolveDefaultSidebarMode();\n if (current === 'collapsed') return target;\n if (current === target) return 'collapsed';\n return target;\n };\n setSidebarToggleComputer(compute);\n return () => {\n setSidebarToggleComputer?.((cur) => (cur === 'collapsed' ? 'thin' : cur === 'thin' ? 'expanded' : 'collapsed'));\n };\n }, [setSidebarToggleComputer, toggleModes, resolveDefaultSidebarMode]);\n\n const lastOverlayWidthRef = React.useRef<number>(expandedSize);\n const lastOverlayModeRef = React.useRef<SidebarMode>('expanded');\n React.useEffect(() => {\n if (sidebarMode !== 'collapsed') {\n lastOverlayModeRef.current = sidebarMode as SidebarMode;\n lastOverlayWidthRef.current = sidebarMode === 'thin' ? thinSize : expandedSize;\n }\n }, [sidebarMode, thinSize, expandedSize]);\n\n // Remove responsive default mode behavior entirely\n\n const handleEl =\n resizable && !isOverlay && sidebarMode === 'expanded' ? (\n <PaneResizeContext.Provider\n value={{\n containerRef: localRef,\n cssVarName: '--sidebar-size',\n minSize,\n maxSize,\n defaultSize: expandedSize,\n orientation: 'vertical',\n edge: 'end',\n computeNext: (client, startClient, startSize) => {\n const isRtl = getComputedStyle(localRef.current!).direction === 'rtl';\n const delta = client - startClient;\n return startSize + (isRtl ? -delta : delta);\n },\n onResize,\n onResizeStart,\n onResizeEnd: (size) => {\n onResizeEnd?.(size);\n emitSizeChange(size, { reason: 'resize' });\n persistenceAdapter?.save?.(size);\n },\n target: 'sidebar',\n collapsible,\n snapPoints,\n snapTolerance: snapTolerance ?? 8,\n collapseThreshold,\n requestCollapse: () => setSidebarMode('collapsed'),\n requestToggle: () => togglePane('sidebar'),\n }}\n >\n {handleChildren.length > 0 ? handleChildren.map((el, i) => React.cloneElement(el, { key: el.key ?? i })) : <PaneHandle />}\n </PaneResizeContext.Provider>\n ) : null;\n\n // Normalize CSS lengths to px helper\n const normalizeSizeToPx = React.useCallback((value: number | string | undefined) => normalizeToPx(value, 'horizontal'), []);\n\n // Apply defaultSize on mount when uncontrolled\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof size === 'undefined' && typeof defaultSize !== 'undefined') {\n const px = normalizeSizeToPx(defaultSize);\n if (typeof px === 'number' && Number.isFinite(px)) {\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--sidebar-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'init' });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Controlled size sync\n const controlledSize = size;\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof controlledSize === 'undefined') return;\n const px = normalizeSizeToPx(controlledSize);\n if (typeof px === 'number' && Number.isFinite(px)) {\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--sidebar-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'controlled' });\n }\n }, [controlledSize, minSize, maxSize, normalizeSizeToPx, emitSizeChange]);\n\n // Memoize peek styles to avoid IIFE recreation on every render\n const peekStyles = React.useMemo((): CSSPropertiesWithVars | undefined => {\n if (!(peekTarget === 'sidebar' && sidebarMode === 'collapsed' && !isOverlay)) {\n return undefined;\n }\n const strategy: 'both' | 'single' = toggleModes ?? 'both';\n const current = sidebarMode as SidebarMode;\n let next: SidebarMode;\n if (strategy === 'both') {\n next = current === 'collapsed' ? 'thin' : current === 'thin' ? 'expanded' : 'collapsed';\n } else {\n const target = resolveDefaultSidebarMode();\n next = current === 'collapsed' ? target : 'collapsed';\n }\n if (next === 'thin') {\n return { '--peek-sidebar-width': `${thinSize}px` } as CSSPropertiesWithVars;\n }\n return { '--peek-sidebar-width': `var(--sidebar-size, ${expandedSize}px)` } as CSSPropertiesWithVars;\n }, [peekTarget, sidebarMode, isOverlay, toggleModes, resolveDefaultSidebarMode, thinSize, expandedSize]);\n\n if (isOverlay) {\n const open = sidebarMode !== 'collapsed';\n return (\n <Sheet.Root open={open} onOpenChange={(o) => setSidebarMode(o ? 'expanded' : 'collapsed')}>\n <Sheet.Content\n side=\"start\"\n style={{ padding: 0 }}\n aria-label=\"Navigation\"\n aria-describedby={undefined}\n width={{\n initial: `${open ? (sidebarMode === 'thin' ? thinSize : expandedSize) : lastOverlayWidthRef.current}px`,\n }}\n >\n <VisuallyHidden>\n <Sheet.Title>Navigation</Sheet.Title>\n </VisuallyHidden>\n {contentChildren}\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n return (\n <div\n {...sidebarDomProps}\n ref={setRef}\n className={classNames('rt-ShellSidebar', className)}\n data-mode={sidebarMode}\n data-peek={peekTarget === 'sidebar' || undefined}\n data-presentation={currentBreakpointReady ? resolvedPresentation : undefined}\n data-open={(currentBreakpointReady && isStacked && isContentVisible) || undefined}\n data-inset={inset || undefined}\n style={{\n ...style,\n '--sidebar-size': `${expandedSize}px`,\n '--sidebar-thin-size': `${thinSize}px`,\n '--sidebar-min-size': `${minSize}px`,\n '--sidebar-max-size': `${maxSize}px`,\n ...peekStyles,\n } as CSSPropertiesWithVars}\n >\n <div className=\"rt-ShellSidebarContent\" data-visible={isContentVisible || undefined}>\n {contentChildren}\n </div>\n {handleEl}\n </div>\n );\n}) as SidebarComponent;\n\nSidebar.displayName = 'Shell.Sidebar';\nSidebar.Handle = SidebarHandle;\n", "/**\n * Normalize CSS length values to pixels.\n * Supports: px, rem, %, and bare numbers.\n *\n * @param value - The value to normalize (number, string, or undefined)\n * @param orientation - 'horizontal' for width-based % or 'vertical' for height-based %\n * @returns The value in pixels, or undefined if invalid\n */\nexport function normalizeToPx(\n value: number | string | undefined,\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n): number | undefined {\n if (value == null) return undefined;\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n\n const str = String(value).trim();\n if (!str) return undefined;\n\n // px: direct parse\n if (str.endsWith('px')) return Number.parseFloat(str);\n\n // rem: multiply by root font size\n if (str.endsWith('rem')) {\n const rem = Number.parseFloat(getComputedStyle(document.documentElement).fontSize || '16') || 16;\n return Number.parseFloat(str) * rem;\n }\n\n // %: calculate based on viewport dimension\n if (str.endsWith('%')) {\n const pct = Number.parseFloat(str);\n const base =\n orientation === 'horizontal'\n ? document.documentElement.clientWidth || window.innerWidth || 0\n : document.documentElement.clientHeight || window.innerHeight || 0;\n return (pct / 100) * base;\n }\n\n // Bare number-like string\n const n = Number.parseFloat(str);\n return Number.isFinite(n) ? n : undefined;\n}\n\n", "import * as React from 'react';\nimport classNames from 'classnames';\nimport * as Sheet from '../sheet.js';\nimport { VisuallyHidden } from '../visually-hidden.js';\nimport { useBottomMode, usePresentation, usePeek, useShellActions, useInset } from '../shell.context.js';\nimport { useResponsivePresentation, useResponsiveInitialState } from '../shell.hooks.js';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { BottomHandle, PaneHandle } from './shell-handles.js';\nimport { _BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneMode, PaneSizePersistence, PaneBaseProps, CSSPropertiesWithVars } from '../shell.types.js';\nimport { extractPaneDomProps, mapResponsiveBooleanToPaneMode } from './shell-prop-helpers.js';\nimport { normalizeToPx } from '../../helpers/normalize-to-px.js';\n\ntype BottomOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' };\ntype BottomControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: BottomOpenChangeMeta) => void; defaultOpen?: never };\ntype BottomUncontrolledProps = { defaultOpen?: boolean; onOpenChange?: (open: boolean, meta: BottomOpenChangeMeta) => void; open?: never };\ntype BottomSizeControlledProps = { size: number | string; defaultSize?: never };\ntype BottomSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\ntype BottomSizeChangeMeta = { reason: 'init' | 'resize' | 'controlled' };\ntype BottomPublicProps = PaneBaseProps &\n (BottomControlledProps | BottomUncontrolledProps) &\n (BottomSizeControlledProps | BottomSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: BottomSizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers gray backdrop on Shell. */\n inset?: boolean;\n };\n\ntype BottomComponent = React.ForwardRefExoticComponent<BottomPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof BottomHandle };\n\nconst BOTTOM_DOM_PROP_KEYS = [\n 'className',\n 'children',\n 'defaultOpen',\n 'open',\n 'onOpenChange',\n 'size',\n 'defaultSize',\n 'onSizeChange',\n 'sizeUpdate',\n 'sizeUpdateMs',\n 'style',\n 'inset',\n] as const satisfies readonly (keyof BottomPublicProps)[];\n\nexport const Bottom = React.forwardRef<HTMLDivElement, BottomPublicProps>((initialProps, ref) => {\n const {\n className,\n presentation = 'fixed',\n defaultOpen,\n open,\n onOpenChange,\n expandedSize = 200,\n minSize = 100,\n maxSize = 400,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n inset,\n } = initialProps;\n const bottomDomProps = extractPaneDomProps(initialProps, BOTTOM_DOM_PROP_KEYS);\n const { bottomMode, setBottomMode } = useBottomMode();\n const { currentBreakpointReady } = usePresentation();\n const { peekTarget } = usePeek();\n const { togglePane } = useShellActions();\n const { registerInset, unregisterInset } = useInset();\n\n // Register/unregister inset\n React.useLayoutEffect(() => {\n if (inset) {\n registerInset('bottom');\n return () => unregisterInset('bottom');\n }\n }, [inset, registerInset, unregisterInset]);\n const resolvedPresentation = useResponsivePresentation(presentation);\n const isOverlay = resolvedPresentation === 'overlay';\n const isStacked = resolvedPresentation === 'stacked';\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const setRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n localRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n const handleChildren = childArray.filter((el: React.ReactElement) => React.isValidElement(el) && el.type === BottomHandle);\n const contentChildren = childArray.filter((el: React.ReactElement) => !(React.isValidElement(el) && el.type === BottomHandle));\n\n // Stable ref for onOpenChange to avoid effect dep churn\n const onOpenChangeRef = React.useRef(onOpenChange);\n const openRef = React.useRef(open);\n React.useLayoutEffect(() => {\n onOpenChangeRef.current = onOpenChange;\n openRef.current = open;\n });\n\n const normalizedControlledOpen = React.useMemo(() => mapResponsiveBooleanToPaneMode(open), [open]);\n const normalizedDefaultOpen = React.useMemo(() => mapResponsiveBooleanToPaneMode(defaultOpen), [defaultOpen]);\n const openIsResponsive = typeof open === 'object' && open !== null;\n const { resolvedControlled: resolvedBottomControlled } = useResponsiveInitialState<PaneMode>({\n controlledValue: normalizedControlledOpen,\n defaultValue: normalizedDefaultOpen,\n currentValue: bottomMode,\n setValue: setBottomMode,\n breakpointReady: currentBreakpointReady,\n controlledIsResponsive: openIsResponsive,\n onResponsiveChange: (next) => onOpenChangeRef.current?.(next === 'expanded', { reason: 'responsive' }),\n onInit: (initial) => {\n if (typeof openRef.current === 'undefined') {\n onOpenChangeRef.current?.(initial === 'expanded', { reason: 'init' });\n }\n },\n });\n\n // Ref for debounce cleanup\n const debounceTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n // Cleanup debounce timeout on unmount or when dependencies change\n React.useEffect(() => {\n return () => {\n if (debounceTimeoutRef.current) {\n clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = null;\n }\n };\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n // Throttled/debounced emitter for onSizeChange\n const emitSizeChange = React.useMemo(() => {\n const cb = onSizeChange as undefined | ((s: number, meta: BottomSizeChangeMeta) => void);\n const strategy = sizeUpdate as undefined | 'throttle' | 'debounce';\n const ms = sizeUpdateMs ?? 50;\n if (!cb) return () => {};\n if (strategy === 'debounce') {\n return (s: number, meta: BottomSizeChangeMeta) => {\n if (debounceTimeoutRef.current) clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = setTimeout(() => {\n cb(s, meta);\n debounceTimeoutRef.current = null;\n }, ms);\n };\n }\n if (strategy === 'throttle') {\n let last = 0;\n return (s: number, meta: BottomSizeChangeMeta) => {\n const now = Date.now();\n if (now - last >= ms) {\n last = now;\n cb(s, meta);\n }\n };\n }\n return (s: number, meta: BottomSizeChangeMeta) => cb(s, meta);\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n\n // Dev guards\n const wasControlledRef = React.useRef<boolean | null>(null);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof open !== 'undefined' && typeof defaultOpen !== 'undefined') {\n console.error('Shell.Bottom: Do not pass both `open` and `defaultOpen`. Choose one.');\n }\n if (typeof size !== 'undefined' && typeof defaultSize !== 'undefined') {\n console.error('Shell.Bottom: Do not pass both `size` and `defaultSize`. Choose one.');\n }\n }\n\n React.useEffect(() => {\n const isControlled = typeof open !== 'undefined';\n if (wasControlledRef.current === null) {\n wasControlledRef.current = isControlled;\n return;\n }\n if (wasControlledRef.current !== isControlled) {\n console.warn('Shell.Bottom: Switching between controlled and uncontrolled `open` is not supported.');\n wasControlledRef.current = isControlled;\n }\n }, [open]);\n\n // Emit mode changes. In controlled mode, skip when mode matches the controlled prop.\n const lastBottomModeRef = React.useRef<PaneMode | null>(null);\n const lastResolvedBottomControlledRef = React.useRef<PaneMode | undefined>(undefined);\n React.useEffect(() => {\n const prevMode = lastBottomModeRef.current;\n const prevResolvedControlled = lastResolvedBottomControlledRef.current;\n const controlledChanged = prevResolvedControlled !== resolvedBottomControlled;\n\n if (prevMode !== null && prevMode !== bottomMode) {\n const nextOpen = bottomMode === 'expanded';\n const isControlled = typeof openRef.current !== 'undefined';\n const controlledTarget = resolvedBottomControlled === undefined ? undefined : resolvedBottomControlled === 'expanded';\n\n if (!isControlled || (!controlledChanged && nextOpen !== controlledTarget)) {\n onOpenChangeRef.current?.(nextOpen, { reason: 'toggle' });\n }\n }\n\n lastBottomModeRef.current = bottomMode;\n lastResolvedBottomControlledRef.current = resolvedBottomControlled;\n }, [bottomMode, resolvedBottomControlled]);\n\n // Track previous mode to only fire callbacks on actual user-initiated state transitions.\n // We wait for breakpointReady to ensure the initial state sync from useResponsiveInitialState\n // is complete before enabling callbacks. This avoids spurious callbacks during initialization.\n // Use callback refs to avoid re-running effect when inline callbacks change.\n const onExpandRef = React.useRef(onExpand);\n const onCollapseRef = React.useRef(onCollapse);\n React.useLayoutEffect(() => {\n onExpandRef.current = onExpand;\n onCollapseRef.current = onCollapse;\n });\n\n const prevBottomModeRef = React.useRef<PaneMode | null>(null);\n const hasInitializedRef = React.useRef(false);\n React.useEffect(() => {\n const currentMode = bottomMode;\n\n // Wait for breakpoint to be ready before enabling callbacks\n if (!currentBreakpointReady) {\n prevBottomModeRef.current = currentMode;\n return;\n }\n\n // Skip the first run after breakpoint is ready - this captures the post-sync state\n if (!hasInitializedRef.current) {\n hasInitializedRef.current = true;\n prevBottomModeRef.current = currentMode;\n return;\n }\n\n const prevMode = prevBottomModeRef.current;\n\n // Only fire on actual state transitions\n if (prevMode !== null && prevMode !== currentMode) {\n if (currentMode === 'expanded') {\n onExpandRef.current?.();\n } else if (currentMode === 'collapsed') {\n onCollapseRef.current?.();\n }\n prevBottomModeRef.current = currentMode;\n }\n }, [bottomMode, currentBreakpointReady]);\n\n const isExpanded = bottomMode === 'expanded';\n\n const persistenceAdapter = React.useMemo(() => {\n if (!paneId || persistence) return persistence;\n const key = `kookie-ui:shell:bottom:${paneId}`;\n const adapter: PaneSizePersistence = {\n load: () => {\n if (typeof window === 'undefined') return undefined;\n try {\n const v = window.localStorage.getItem(key);\n return v ? Number(v) : undefined;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Bottom: failed to load persisted size', err);\n }\n return undefined;\n }\n },\n save: (size: number) => {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(key, String(size));\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Bottom: failed to save persisted size', err);\n }\n }\n },\n };\n return adapter;\n }, [paneId, persistence]);\n\n React.useEffect(() => {\n let mounted = true;\n if (!resizable || !persistenceAdapter?.load || isOverlay) return undefined;\n const loaded = persistenceAdapter.load();\n const applyLoaded = (value?: number) => {\n if (!mounted || typeof value !== 'number' || !localRef.current) return;\n localRef.current.style.setProperty('--bottom-size', `${value}px`);\n onResize?.(value);\n };\n if (loaded instanceof Promise) {\n loaded.then(applyLoaded).catch((err) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Bottom: failed to load persisted size', err);\n }\n });\n } else {\n applyLoaded(loaded);\n }\n return () => {\n mounted = false;\n };\n }, [resizable, persistenceAdapter, onResize, isOverlay]);\n\n const handleEl =\n resizable && !isOverlay && isExpanded ? (\n <PaneResizeContext.Provider\n value={{\n containerRef: localRef,\n cssVarName: '--bottom-size',\n minSize,\n maxSize,\n defaultSize: expandedSize,\n orientation: 'horizontal',\n edge: 'start',\n computeNext: (client, startClient, startSize) => {\n const delta = client - startClient;\n return startSize - delta;\n },\n onResize,\n onResizeStart,\n onResizeEnd: (size) => {\n onResizeEnd?.(size);\n emitSizeChange(size, { reason: 'resize' });\n persistenceAdapter?.save?.(size);\n },\n target: 'bottom',\n collapsible,\n snapPoints,\n snapTolerance: snapTolerance ?? 8,\n collapseThreshold,\n requestCollapse: () => setBottomMode('collapsed'),\n requestToggle: () => togglePane('bottom'),\n }}\n >\n {handleChildren.length > 0 ? handleChildren.map((el, i) => React.cloneElement(el, { key: el.key ?? i })) : <PaneHandle />}\n </PaneResizeContext.Provider>\n ) : null;\n\n // Strip control/size props from DOM spread (moved above overlay return to keep hook order consistent)\n // Normalize CSS lengths to px helper\n const normalizeSizeToPx = React.useCallback((value: number | string | undefined) => normalizeToPx(value, 'vertical'), []);\n\n // Apply defaultSize on mount when uncontrolled (moved above overlay return)\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof size === 'undefined' && typeof defaultSize !== 'undefined') {\n const px = normalizeSizeToPx(defaultSize);\n if (typeof px === 'number' && Number.isFinite(px)) {\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--bottom-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'init' });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Controlled size sync (moved above overlay return)\n const controlledSize = size;\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof controlledSize === 'undefined') return;\n const px = normalizeSizeToPx(controlledSize);\n if (typeof px === 'number' && Number.isFinite(px)) {\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--bottom-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'controlled' });\n }\n }, [controlledSize, minSize, maxSize, normalizeSizeToPx, emitSizeChange]);\n\n if (isOverlay) {\n const open = bottomMode === 'expanded';\n return (\n <Sheet.Root open={open} onOpenChange={(o) => setBottomMode(o ? 'expanded' : 'collapsed')}>\n <Sheet.Content side=\"bottom\" style={{ padding: 0 }} aria-label=\"Bottom panel\" aria-describedby={undefined} height={{ initial: `${expandedSize}px` }}>\n <VisuallyHidden>\n <Sheet.Title>Bottom panel</Sheet.Title>\n </VisuallyHidden>\n {contentChildren}\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n\n return (\n <div\n {...bottomDomProps}\n ref={setRef}\n className={classNames('rt-ShellBottom', className)}\n data-mode={bottomMode}\n data-peek={peekTarget === 'bottom' || undefined}\n data-presentation={currentBreakpointReady ? resolvedPresentation : undefined}\n data-open={(currentBreakpointReady && isStacked && isExpanded) || undefined}\n data-inset={inset || undefined}\n style={{\n ...style,\n '--bottom-size': `${expandedSize}px`,\n '--bottom-min-size': `${minSize}px`,\n '--bottom-max-size': `${maxSize}px`,\n } as CSSPropertiesWithVars}\n >\n <div className=\"rt-ShellBottomContent\" data-visible={isExpanded || undefined}>\n {contentChildren}\n </div>\n {handleEl}\n </div>\n );\n}) as BottomComponent;\nBottom.displayName = 'Shell.Bottom';\nBottom.Handle = BottomHandle;\n", "import * as React from 'react';\nimport classNames from 'classnames';\nimport * as Sheet from '../sheet.js';\nimport { VisuallyHidden } from '../visually-hidden.js';\nimport { useInspectorMode, usePresentation, usePeek, useShellActions, useInset } from '../shell.context.js';\nimport { useResponsivePresentation, useResponsiveInitialState } from '../shell.hooks.js';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { InspectorHandle, PaneHandle } from './shell-handles.js';\nimport { _BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneMode, PaneSizePersistence, PaneBaseProps, CSSPropertiesWithVars } from '../shell.types.js';\nimport { extractPaneDomProps, mapResponsiveBooleanToPaneMode } from './shell-prop-helpers.js';\nimport { normalizeToPx } from '../../helpers/normalize-to-px.js';\n\ntype InspectorOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' };\ntype InspectorControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; defaultOpen?: never };\ntype InspectorUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; open?: never };\ntype InspectorSizeChangeMeta = { reason: 'init' | 'resize' | 'controlled' };\ntype InspectorSizeControlledProps = { size: number | string; defaultSize?: never };\ntype InspectorSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\ntype InspectorPublicProps = PaneBaseProps &\n (InspectorControlledProps | InspectorUncontrolledProps) &\n (InspectorSizeControlledProps | InspectorSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: InspectorSizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers gray backdrop on Shell. */\n inset?: boolean;\n };\n\ntype InspectorComponent = React.ForwardRefExoticComponent<InspectorPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof InspectorHandle };\n\nconst INSPECTOR_DOM_PROP_KEYS = [\n 'className',\n 'children',\n 'defaultOpen',\n 'open',\n 'onOpenChange',\n 'size',\n 'defaultSize',\n 'onSizeChange',\n 'sizeUpdate',\n 'sizeUpdateMs',\n 'style',\n 'inset',\n] as const satisfies readonly (keyof InspectorPublicProps)[];\n\nexport const Inspector = React.forwardRef<HTMLDivElement, InspectorPublicProps>((initialProps, ref) => {\n const {\n className,\n presentation = { initial: 'overlay', lg: 'fixed' },\n defaultOpen,\n open,\n onOpenChange,\n expandedSize = 320,\n minSize = 200,\n maxSize = 500,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n size,\n defaultSize,\n inset,\n } = initialProps;\n const inspectorDomProps = extractPaneDomProps(initialProps, INSPECTOR_DOM_PROP_KEYS);\n const { inspectorMode, setInspectorMode } = useInspectorMode();\n const { currentBreakpointReady } = usePresentation();\n const { peekTarget } = usePeek();\n const { togglePane } = useShellActions();\n const { registerInset, unregisterInset } = useInset();\n\n // Register/unregister inset\n React.useLayoutEffect(() => {\n if (inset) {\n registerInset('inspector');\n return () => unregisterInset('inspector');\n }\n }, [inset, registerInset, unregisterInset]);\n const resolvedPresentation = useResponsivePresentation(presentation);\n const isOverlay = resolvedPresentation === 'overlay';\n const isStacked = resolvedPresentation === 'stacked';\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const setRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n localRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n const childArray = React.Children.toArray(children) as React.ReactElement[];\n const handleChildren = childArray.filter((el: React.ReactElement) => React.isValidElement(el) && el.type === InspectorHandle);\n const contentChildren = childArray.filter((el: React.ReactElement) => !(React.isValidElement(el) && el.type === InspectorHandle));\n\n // Stable ref for onOpenChange to avoid effect dep churn\n const onOpenChangeRef = React.useRef(onOpenChange);\n const openRef = React.useRef(open);\n React.useLayoutEffect(() => {\n onOpenChangeRef.current = onOpenChange;\n openRef.current = open;\n });\n\n const normalizedControlledOpen = React.useMemo(() => mapResponsiveBooleanToPaneMode(open), [open]);\n const normalizedDefaultOpen = React.useMemo(() => mapResponsiveBooleanToPaneMode(defaultOpen), [defaultOpen]);\n const openIsResponsive = typeof open === 'object' && open !== null;\n const { resolvedControlled: resolvedInspectorControlled } = useResponsiveInitialState<PaneMode>({\n controlledValue: normalizedControlledOpen,\n defaultValue: normalizedDefaultOpen,\n currentValue: inspectorMode,\n setValue: setInspectorMode,\n breakpointReady: currentBreakpointReady,\n controlledIsResponsive: openIsResponsive,\n onResponsiveChange: (next) => onOpenChangeRef.current?.(next === 'expanded', { reason: 'responsive' }),\n onInit: (initial) => {\n if (typeof openRef.current === 'undefined') {\n onOpenChangeRef.current?.(initial === 'expanded', { reason: 'init' });\n }\n },\n });\n\n // Ref for debounce cleanup\n const debounceTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n // Cleanup debounce timeout on unmount or when dependencies change\n React.useEffect(() => {\n return () => {\n if (debounceTimeoutRef.current) {\n clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = null;\n }\n };\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n // Throttled/debounced emitter for onSizeChange\n const emitSizeChange = React.useMemo(() => {\n const cb = onSizeChange as undefined | ((s: number, meta: InspectorSizeChangeMeta) => void);\n const strategy = sizeUpdate as undefined | 'throttle' | 'debounce';\n const ms = sizeUpdateMs ?? 50;\n if (!cb) return () => {};\n if (strategy === 'debounce') {\n return (s: number, meta: InspectorSizeChangeMeta) => {\n if (debounceTimeoutRef.current) clearTimeout(debounceTimeoutRef.current);\n debounceTimeoutRef.current = setTimeout(() => {\n cb(s, meta);\n debounceTimeoutRef.current = null;\n }, ms);\n };\n }\n if (strategy === 'throttle') {\n let last = 0;\n return (s: number, meta: InspectorSizeChangeMeta) => {\n const now = Date.now();\n if (now - last >= ms) {\n last = now;\n cb(s, meta);\n }\n };\n }\n return (s: number, meta: InspectorSizeChangeMeta) => cb(s, meta);\n }, [onSizeChange, sizeUpdate, sizeUpdateMs]);\n\n // Dev guards\n const wasControlledRef = React.useRef<boolean | null>(null);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof open !== 'undefined' && typeof defaultOpen !== 'undefined') {\n console.error('Shell.Inspector: Do not pass both `open` and `defaultOpen`. Choose one.');\n }\n }\n\n // Warn on controlled/uncontrolled mode switch\n React.useEffect(() => {\n const isControlled = typeof open !== 'undefined';\n if (wasControlledRef.current === null) {\n wasControlledRef.current = isControlled;\n return;\n }\n if (wasControlledRef.current !== isControlled) {\n console.warn('Shell.Inspector: Switching between controlled and uncontrolled `open` is not supported.');\n wasControlledRef.current = isControlled;\n }\n }, [open]);\n\n // Emit mode changes. In controlled mode, skip when mode matches the controlled prop.\n const lastInspectorModeRef = React.useRef<PaneMode | null>(null);\n const lastResolvedInspectorControlledRef = React.useRef<PaneMode | undefined>(undefined);\n React.useEffect(() => {\n const prevInspectorMode = lastInspectorModeRef.current;\n const prevResolvedControlled = lastResolvedInspectorControlledRef.current;\n const controlledChanged = prevResolvedControlled !== resolvedInspectorControlled;\n\n if (prevInspectorMode !== null && prevInspectorMode !== inspectorMode) {\n const nextOpen = inspectorMode === 'expanded';\n const isControlled = typeof openRef.current !== 'undefined';\n const controlledTarget = resolvedInspectorControlled === undefined ? undefined : resolvedInspectorControlled === 'expanded';\n\n if (!isControlled || (!controlledChanged && nextOpen !== controlledTarget)) {\n onOpenChangeRef.current?.(nextOpen, { reason: 'toggle' });\n }\n }\n\n lastInspectorModeRef.current = inspectorMode;\n lastResolvedInspectorControlledRef.current = resolvedInspectorControlled;\n }, [inspectorMode, resolvedInspectorControlled]);\n\n // Track previous mode to only fire callbacks on actual user-initiated state transitions.\n // We wait for breakpointReady to ensure the initial state sync from useResponsiveInitialState\n // is complete before enabling callbacks. This avoids spurious callbacks during initialization.\n // Use callback refs to avoid re-running effect when inline callbacks change.\n const onExpandRef = React.useRef(onExpand);\n const onCollapseRef = React.useRef(onCollapse);\n React.useLayoutEffect(() => {\n onExpandRef.current = onExpand;\n onCollapseRef.current = onCollapse;\n });\n\n const prevInspectorModeRef = React.useRef<PaneMode | null>(null);\n const hasInitializedRef = React.useRef(false);\n React.useEffect(() => {\n const currentMode = inspectorMode;\n\n // Wait for breakpoint to be ready before enabling callbacks\n if (!currentBreakpointReady) {\n prevInspectorModeRef.current = currentMode;\n return;\n }\n\n // Skip the first run after breakpoint is ready - this captures the post-sync state\n if (!hasInitializedRef.current) {\n hasInitializedRef.current = true;\n prevInspectorModeRef.current = currentMode;\n return;\n }\n\n const prevMode = prevInspectorModeRef.current;\n\n // Only fire on actual state transitions\n if (prevMode !== null && prevMode !== currentMode) {\n if (currentMode === 'expanded') {\n onExpandRef.current?.();\n } else if (currentMode === 'collapsed') {\n onCollapseRef.current?.();\n }\n prevInspectorModeRef.current = currentMode;\n }\n }, [inspectorMode, currentBreakpointReady]);\n\n const isExpanded = inspectorMode === 'expanded';\n\n const persistenceAdapter = React.useMemo(() => {\n if (!paneId || persistence) return persistence;\n const key = `kookie-ui:shell:inspector:${paneId}`;\n const adapter: PaneSizePersistence = {\n load: () => {\n if (typeof window === 'undefined') return undefined;\n try {\n const v = window.localStorage.getItem(key);\n return v ? Number(v) : undefined;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Inspector: failed to load persisted size', err);\n }\n return undefined;\n }\n },\n save: (size: number) => {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(key, String(size));\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Inspector: failed to save persisted size', err);\n }\n }\n },\n };\n return adapter;\n }, [paneId, persistence]);\n\n React.useEffect(() => {\n let mounted = true;\n if (!resizable || !persistenceAdapter?.load || isOverlay) return undefined;\n const loaded = persistenceAdapter.load();\n const applyLoaded = (value?: number) => {\n if (!mounted || typeof value !== 'number' || !localRef.current) return;\n localRef.current.style.setProperty('--inspector-size', `${value}px`);\n onResize?.(value);\n };\n if (loaded instanceof Promise) {\n loaded.then(applyLoaded).catch((err) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Shell.Inspector: failed to load persisted size', err);\n }\n });\n } else {\n applyLoaded(loaded);\n }\n return () => {\n mounted = false;\n };\n }, [resizable, persistenceAdapter, onResize, isOverlay]);\n\n const handleEl =\n resizable && !isOverlay && isExpanded ? (\n <PaneResizeContext.Provider\n value={{\n containerRef: localRef,\n cssVarName: '--inspector-size',\n minSize,\n maxSize,\n defaultSize: expandedSize,\n orientation: 'vertical',\n edge: 'start',\n computeNext: (client, startClient, startSize) => {\n const isRtl = getComputedStyle(localRef.current!).direction === 'rtl';\n const delta = client - startClient;\n return startSize + (isRtl ? delta : -delta);\n },\n onResize,\n onResizeStart,\n onResizeEnd: (size) => {\n onResizeEnd?.(size);\n emitSizeChange(size, { reason: 'resize' });\n persistenceAdapter?.save?.(size);\n },\n target: 'inspector',\n collapsible,\n snapPoints,\n snapTolerance: snapTolerance ?? 8,\n collapseThreshold,\n requestCollapse: () => setInspectorMode('collapsed'),\n requestToggle: () => togglePane('inspector'),\n }}\n >\n {handleChildren.length > 0 ? handleChildren.map((el, i) => React.cloneElement(el, { key: el.key ?? i })) : <PaneHandle />}\n </PaneResizeContext.Provider>\n ) : null;\n\n // Normalize CSS lengths to px helper\n const normalizeSizeToPx = React.useCallback((value: number | string | undefined) => normalizeToPx(value, 'horizontal'), []);\n\n // Apply defaultSize on mount when uncontrolled\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof size === 'undefined' && typeof defaultSize !== 'undefined') {\n const px = normalizeSizeToPx(defaultSize);\n if (typeof px === 'number' && Number.isFinite(px)) {\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--inspector-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'init' });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Controlled size sync\n const controlledSize = size;\n React.useEffect(() => {\n if (!localRef.current) return;\n if (typeof controlledSize === 'undefined') return;\n const px = normalizeSizeToPx(controlledSize);\n if (typeof px === 'number' && Number.isFinite(px)) {\n const minPx = typeof minSize === 'number' ? minSize : undefined;\n const maxPx = typeof maxSize === 'number' ? maxSize : undefined;\n const clamped = Math.min(maxPx ?? px, Math.max(minPx ?? px, px));\n localRef.current.style.setProperty('--inspector-size', `${clamped}px`);\n emitSizeChange(clamped, { reason: 'controlled' });\n }\n }, [controlledSize, minSize, maxSize, normalizeSizeToPx, emitSizeChange]);\n\n if (isOverlay) {\n const open = inspectorMode === 'expanded';\n return (\n <Sheet.Root open={open} onOpenChange={(o) => setInspectorMode(o ? 'expanded' : 'collapsed')}>\n <Sheet.Content side=\"end\" style={{ padding: 0 }} aria-label=\"Inspector\" aria-describedby={undefined} width={{ initial: `${expandedSize}px` }}>\n <VisuallyHidden>\n <Sheet.Title>Inspector</Sheet.Title>\n </VisuallyHidden>\n {contentChildren}\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n\n // Strip control/size props from DOM spread\n return (\n <div\n {...inspectorDomProps}\n ref={setRef}\n className={classNames('rt-ShellInspector', className)}\n data-mode={inspectorMode}\n data-peek={peekTarget === 'inspector' || undefined}\n data-presentation={currentBreakpointReady ? resolvedPresentation : undefined}\n data-open={(currentBreakpointReady && isStacked && isExpanded) || undefined}\n data-inset={inset || undefined}\n style={{\n ...style,\n '--inspector-size': `${expandedSize}px`,\n '--inspector-min-size': `${minSize}px`,\n '--inspector-max-size': `${maxSize}px`,\n } as CSSPropertiesWithVars}\n >\n <div className=\"rt-ShellInspectorContent\" data-visible={isExpanded || undefined}>\n {contentChildren}\n </div>\n {handleEl}\n </div>\n );\n}) as InspectorComponent;\n\nInspector.displayName = 'Shell.Inspector';\nInspector.Handle = InspectorHandle;\n", "'use client';\n\nimport * as React from 'react';\nimport { _BREAKPOINTS, type Breakpoint } from '../components/shell.types.js';\n\n/**\n * Hook to get the current breakpoint based on window width.\n * Returns 'initial' on the server and during initial hydration.\n * Uses shared breakpoint values from shell.types.js.\n */\nexport function useBreakpoint(): { breakpoint: Breakpoint; ready: boolean } {\n const [currentBp, setCurrentBp] = React.useState<Breakpoint>('initial');\n const [ready, setReady] = React.useState(false);\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const queries = Object.entries(_BREAKPOINTS) as [keyof typeof _BREAKPOINTS, string][];\n const mqls = queries.map(([k, q]) => [k, window.matchMedia(q)] as const);\n\n // Accept optional event param to satisfy MediaQueryList listener signature\n const compute = (_e?: MediaQueryListEvent) => {\n // Highest matched wins\n const matched = mqls.filter(([, m]) => m.matches).map(([k]) => k);\n const next = (matched[matched.length - 1] as Breakpoint | undefined) ?? 'initial';\n setCurrentBp(next);\n setReady(true);\n };\n\n compute();\n const cleanups: Array<() => void> = [];\n mqls.forEach(([, m]) => {\n const mm = m as MediaQueryList & {\n addEventListener?: (type: 'change', listener: (e: MediaQueryListEvent) => void) => void;\n removeEventListener?: (type: 'change', listener: (e: MediaQueryListEvent) => void) => void;\n addListener?: (listener: (e: MediaQueryListEvent) => void) => void;\n removeListener?: (listener: (e: MediaQueryListEvent) => void) => void;\n };\n if (typeof mm.addEventListener === 'function' && typeof mm.removeEventListener === 'function') {\n mm.addEventListener('change', compute);\n cleanups.push(() => mm.removeEventListener?.('change', compute));\n } else if (typeof mm.addListener === 'function' && typeof mm.removeListener === 'function') {\n mm.addListener(compute);\n cleanups.push(() => mm.removeListener?.(compute));\n }\n });\n\n return () => {\n cleanups.forEach((fn) => {\n try {\n fn();\n } catch (e) {\n // MediaQueryList cleanup can fail in edge cases (e.g., already removed)\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[useBreakpoint] MediaQueryList cleanup warning:', e);\n }\n }\n });\n };\n }, []);\n\n return { breakpoint: currentBp, ready };\n}\n"],
|
|
5
|
+
"mappings": "4lBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,YAAAE,GAAA,YAAAC,GAAA,WAAAC,GAAA,cAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,SAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,8BAAAC,GAAA,aAAAC,GAAA,mBAAAC,KAAA,eAAAC,GAAAf,IA2BA,IAAAgB,EAAuB,qBACvBC,GAAuB,0BCOvB,IAAAC,GAAuB,qBACvBC,GAAuB,0BACvBC,GAA0C,oBCnC1C,IAAMC,GAAiB,CAKrB,QAAS,CACP,KAAM,SACR,CACF,ECRA,IAAMC,GAAgB,CAYpB,MAAO,CACL,KAAM,SACN,UAAW,SACX,iBAAkB,CAAC,SAAS,EAC5B,WAAY,EACd,EAYA,SAAU,CACR,KAAM,SACN,UAAW,aACX,iBAAkB,CAAC,aAAa,EAChC,WAAY,EACd,EAYA,SAAU,CACR,KAAM,SACN,UAAW,aACX,iBAAkB,CAAC,aAAa,EAChC,WAAY,EACd,CACF,ECpDA,IAAMC,GAAiB,CAYrB,OAAQ,CACN,KAAM,SACN,UAAW,SACX,iBAAkB,CAAC,UAAU,EAC7B,WAAY,EACd,EAYA,UAAW,CACT,KAAM,SACN,UAAW,aACX,iBAAkB,CAAC,cAAc,EACjC,WAAY,EACd,EAYA,UAAW,CACT,KAAM,SACN,UAAW,aACX,iBAAkB,CAAC,cAAc,EACjC,WAAY,EACd,CACF,EC9CA,IAAMC,GAAe,CAAC,IAAK,IAAK,IAAK,GAAG,EAClCC,GAAmB,CAAC,QAAS,aAAa,EAC1CC,GAAY,CAAC,QAAS,aAAa,EAEnCC,GAAwB,CAC5B,GAAGC,GACH,MAAO,CACL,KAAM,OACN,UAAW,aACX,OAAQ,CAAC,QAAS,QAAQ,EAC1B,QAAS,QACX,EACA,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQJ,GACR,QAAS,IACT,WAAY,EACd,EACA,gBAAiB,CAAE,KAAM,OAAQ,OAAQC,GAAkB,QAAS,MAAU,EAC9E,SAAU,CAAE,KAAM,OAAQ,OAAQC,GAAW,QAAS,MAAU,EAChE,MAAOG,GAAc,MACrB,SAAUA,GAAc,SACxB,SAAU,CAAE,GAAGA,GAAc,SAAU,QAAS,OAAQ,EACxD,GAAGC,EACL,EC/BA,IAAAC,EAAuB,qBACvBC,GAAuB,0BACvBC,GAA6D,oBCAtD,SAASC,GAAqBC,EAA+B,CAClE,OAAQA,EAAa,CACnB,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACH,MAAO,QACT,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,OACH,MAAO,QACT,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACH,MAAO,OACT,IAAK,QACL,IAAK,OACH,MAAO,QACT,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,SACH,MAAO,OACT,IAAK,OACH,MAAO,MACX,CACF,CCpCA,IAAMC,GAAe,CAAC,OAAQ,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAAQ,SAAU,SAAU,OAAQ,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,KAAK,EAEjPC,GAAa,CAAC,OAAQ,OAAQ,QAAS,QAAS,OAAQ,QAAS,MAAM,EAEvEC,GAAe,CACnB,MAAO,CACL,KAAM,OACN,OAAQF,GACR,QAAS,MACX,CACF,ECXA,IAAMG,GAAQ,CAAC,OAAQ,QAAS,SAAU,QAAS,MAAM,ECIzD,IAAMC,GAAc,CAAC,UAAW,QAAS,MAAM,EACzCC,GAAmB,CAAC,QAAS,aAAa,EAC1CC,GAAY,CAAC,QAAS,aAAa,EACnCC,GAAW,CAAC,MAAO,MAAO,OAAQ,OAAQ,MAAM,EAChDC,GAAe,CAAC,OAAQ,OAAQ,OAAO,EAEvCC,GAAgB,CACpB,GAAGC,GAOH,cAAe,CAAE,KAAM,UAAW,QAAS,EAAK,EAOhD,WAAY,CAAE,KAAM,OAAQ,OAAQN,GAAa,QAAS,SAAU,EAOpE,YAAa,CAAE,KAAM,OAAQ,OAAQO,GAAc,QAAS,MAAO,EAOnE,UAAW,CAAE,KAAM,OAAQ,OAAQC,GAAY,QAAS,OAAQ,EAQhE,SAAU,CAAE,KAAM,OAAQ,OAAQN,GAAW,QAAS,aAAc,EAUpE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,GAAkB,QAAS,aAAc,EAOlF,OAAQ,CAAE,KAAM,OAAQ,OAAQQ,GAAO,QAAS,QAAS,EAOzD,QAAS,CAAE,KAAM,OAAQ,OAAQN,GAAU,QAAS,MAAO,EAM3D,WAAY,CAAE,KAAM,OAAQ,OAAQC,GAAc,QAAS,MAAO,CACpE,EJpEA,IAAMM,GAAO,IAAM,CAAC,EAkCdC,GAAyC,CAC7C,WAAYC,GAAc,WAAW,QACrC,YAAaA,GAAc,YAAY,QACvC,UAAWA,GAAc,UAAU,QACnC,kBAAmBA,GAAc,UAAU,QAC3C,SAAUA,GAAc,SAAS,QACjC,gBAAiBA,GAAc,gBAAgB,QAC/C,OAAQA,GAAc,OAAO,QAC7B,QAASA,GAAc,QAAQ,QAC/B,WAAYA,GAAc,WAAW,QACrC,mBAAoBF,GACpB,oBAAqBA,GACrB,kBAAmBA,GACnB,iBAAkBA,GAClB,wBAAyBA,GACzB,eAAgBA,GAChB,gBAAiBA,GACjB,mBAAoBA,EACtB,EAEMG,GAAqB,gBAA6C,MAAS,EASjF,IAAMC,GAAc,aAAyC,CAACC,EAAOC,IAC7C,aAAWC,EAAY,IAClB,OAGvB,gBAAC,GAAAC,QAAiB,SAAjB,CAA0B,cAAe,KACxC,gBAAC,aAAU,SAAV,CAAmB,IAAI,OACtB,gBAACC,GAAA,CAAW,GAAGJ,EAAO,IAAKC,EAAc,CAC3C,CACF,EAGG,gBAACI,GAAA,CAAW,GAAGL,EAAO,IAAKC,EAAc,CACjD,EACDF,GAAM,YAAc,QAEpB,IAAMK,GAAkB,aACtB,CAACJ,EAAOC,IAAiB,CACvB,GAAM,CACJ,WAAYK,EAAiBC,GAAc,WAAW,QACtD,YAAaC,EAAkBD,GAAc,YAAY,QACzD,UAAWE,EAAgBF,GAAc,UAAU,QACnD,SAAUG,EAAeH,GAAc,SAAS,QAChD,gBAAiBI,EAAsBJ,GAAc,gBAAgB,QACrE,OAAQK,EAAaL,GAAc,OAAO,QAC1C,QAASM,EAAcN,GAAc,QAAQ,QAC7C,WAAYO,EAAiBP,GAAc,WAAW,QACtD,cAAAQ,EAAgBR,GAAc,cAAc,QAC5C,GAAGS,CACL,EAAIhB,EAGE,YAAU,IAAM,CAChBA,EAAM,kBAAoB,QAC5B,QAAQ,KACN,yHACF,CAEJ,EAAG,CAACA,EAAM,eAAe,CAAC,EAE1B,GAAM,CAACiB,EAAYC,CAAa,EAAU,WAASZ,CAAc,EAC3D,YAAU,IAAMY,EAAcZ,CAAc,EAAG,CAACA,CAAc,CAAC,EAErE,GAAM,CAACa,EAAaC,CAAc,EAAU,WAASZ,CAAe,EAC9D,YAAU,IAAMY,EAAeZ,CAAe,EAAG,CAACA,CAAe,CAAC,EAExE,GAAM,CAACa,EAAWC,CAAY,EAAU,WAASb,CAAa,EACxD,YAAU,IAAMa,EAAab,CAAa,EAAG,CAACA,CAAa,CAAC,EAGlE,IAAMc,EACJb,IAAiBH,GAAc,SAAS,QAAUG,EAAeC,EAC7D,CAACa,EAAUC,EAAW,EAAU,WAASF,CAAiB,EAC1D,YAAU,IAAME,GAAYF,CAAiB,EAAG,CAACA,CAAiB,CAAC,EAGzE,GAAM,CAACG,EAAiBC,CAAkB,EAAU,WAAShB,CAAmB,EAC1E,YAAU,IAAMgB,EAAmBH,CAAQ,EAAG,CAACA,CAAQ,CAAC,EAE9D,GAAM,CAACI,GAAQC,CAAS,EAAU,WAASjB,CAAU,EAC/C,YAAU,IAAMiB,EAAUjB,CAAU,EAAG,CAACA,CAAU,CAAC,EAEzD,GAAM,CAACkB,EAASC,CAAU,EAAU,WAASlB,CAAW,EAClD,YAAU,IAAMkB,EAAWlB,CAAW,EAAG,CAACA,CAAW,CAAC,EAE5D,GAAM,CAACmB,EAAYC,CAAa,EAAU,WAASnB,CAAc,EACjE,OAAM,YAAU,IAAMmB,EAAcnB,CAAc,EAAG,CAACA,CAAc,CAAC,EAGnE,gBAACT,GAAA,CACE,GAAGW,EACJ,IAAKf,EACL,OAAM,GACN,cAAec,EAEf,WAAYE,EACZ,YAAaE,EACb,UAAWE,EACX,SAAUG,EACV,gBAAiBE,EACjB,OAAQE,GACR,QAASE,EACT,WAAYE,EAEZ,mBAAoBd,EACpB,oBAAqBE,EACrB,kBAAmBE,EACnB,iBAAkBG,GAClB,wBAAyBE,EACzB,eAAgBE,EAChB,gBAAiBE,EACjB,mBAAoBE,EACtB,CAEJ,CACF,EACA7B,GAAU,YAAc,YAUxB,SAAS8B,IAAyD,CAChE,GAAI,OAAO,UAAc,IAAa,OACtC,IAAMC,EAAK,UAAU,UACrB,GAAIA,EAAG,SAAS,KAAK,EAAG,MAAO,UAC/B,GAAIA,EAAG,SAAS,KAAK,EAAG,MAAO,QAC/B,GAAIA,EAAG,SAAS,OAAO,EAAG,MAAO,OAEnC,CAEA,IAAM9B,GAAkB,aAA6C,CAACL,EAAOC,IAAiB,CAC5F,IAAMmC,EAAgB,aAAWlC,EAAY,EACvC,CACJ,QAAAmC,EACA,OAAAC,EACA,cAAeC,EAEf,WAAAtB,EAAajB,EAAM,YAAcoC,GAAS,YAAc7B,GAAc,WAAW,QACjF,YAAAY,EAAcnB,EAAM,aAAeoC,GAAS,aAAe7B,GAAc,YAAY,QACrF,UAAAc,EAAYrB,EAAM,WAAaoC,GAAS,mBAAqB7B,GAAc,UAAU,QACrF,SAAAiB,EAAWxB,EAAM,UAAYoC,GAAS,UAAY7B,GAAc,SAAS,QACzE,gBAAAmB,EAAkB1B,EAAM,iBACtBoC,GAAS,iBACT7B,GAAc,gBAAgB,QAChC,OAAAqB,EAAS5B,EAAM,QAAUoC,GAAS,QAAU7B,GAAc,OAAO,QACjE,QAAAuB,EAAU9B,EAAM,SAAWoC,GAAS,SAAW7B,GAAc,QAAQ,QACrE,WAAAyB,EAAahC,EAAM,YAAcoC,GAAS,YAAc7B,GAAc,WAAW,QAEjF,mBAAAiC,EAAqBC,GACrB,oBAAAC,EAAsBD,GACtB,kBAAAE,EAAoBF,GACpB,iBAAAG,EAAmBH,GACnB,wBAAAI,EAA0BJ,GAC1B,eAAAK,EAAiBL,GACjB,gBAAAM,GAAkBN,GAClB,mBAAAO,EAAqBP,GAErB,GAAGQ,CACL,EAAIjD,EACEkD,GAAOb,EAAU,QAAK,KAAO,MAC7Bc,EAAoB9B,IAAc,OAAS+B,GAAqBjC,CAAW,EAAIE,EAC/EgC,EAAuBrD,EAAM,aAAe,SAAWA,EAAM,aAAe,OAC5Ee,EACJwB,IAAsB,OAAYD,GAAUe,EAAuBd,EAE/D,CAACe,EAAUC,CAAW,EAAU,WAAyC,MAAS,EACxF,OAAM,YAAU,IAAM,CAChBjB,GAAQiB,EAAYrB,GAAY,CAAC,CACvC,EAAG,CAACI,CAAM,CAAC,EAGT,gBAACpC,GAAa,SAAb,CACC,MAAa,UACX,KAAO,CACL,WAAAe,EACA,YAAAE,EACA,UAAAE,EACA,kBAAA8B,EACA,SAAA3B,EACA,gBAAAE,EACA,OAAAE,EACA,QAAAE,EACA,WAAAE,EAEA,mBAAAQ,EACA,oBAAAE,EACA,kBAAAC,EACA,iBAAAC,EACA,wBAAAC,EACA,eAAAC,EACA,gBAAAC,GACA,mBAAAC,CACF,GACA,CACE/B,EACAE,EACAE,EACA8B,EACA3B,EACAE,EACAE,EACAE,EACAE,EAEAQ,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,CACF,CACF,GAEA,gBAACE,GAAA,CACC,qBAAoBZ,EAAS,OAAS,QACtC,oBAAmBnB,EACnB,kBAAiBgC,EAEjB,sBAAqBpC,EAAgB,OAAS,QAC9C,gBAAeS,EACf,wBAAuBE,EACvB,cAAaE,EACb,eAAcE,EACd,mBAAkBE,EAClB,UAASM,EAASgB,EAAW,OAC7B,IAAKrD,EACJ,GAAGgD,EACJ,aAAW,GAAAO,SACT,eACA,CACE,MAAOvC,IAAe,QACtB,KAAMA,IAAe,MACvB,EACAgC,EAAW,SACb,EACF,CACF,CAEJ,CAAC,EACD5C,GAAU,YAAc,YK7SxB,IAAAoD,GAAuB,qBACvBC,GAAqB,oBCCrB,IAAMC,GAAsB,CAC1B,aAAc,CACZ,KAAM,UACN,UAAW,mBACX,QAAS,MACX,CACF,ECNA,IAAMC,GAAoB,CAAC,SAAU,QAAS,MAAO,MAAM,EAErDC,GAAqB,CACzB,KAAM,CACJ,KAAM,OACN,UAAW,UACX,OAAQD,GACR,WAAY,EACd,CACF,ECTA,IAAME,GAAkB,CAAC,OAAQ,SAAU,OAAO,EAE5CC,GAAmB,CACvB,MAAO,CACL,KAAM,OACN,UAAW,UACX,OAAQD,GACR,WAAY,EACd,CACF,ECTA,IAAME,GAAiB,CAAC,OAAQ,SAAU,SAAU,SAAS,EAEvDC,GAAkB,CACtB,KAAM,CACJ,KAAM,OACN,UAAW,UACX,OAAQD,GACR,WAAY,EACd,CACF,ECTA,IAAME,GAAkB,CACtB,SAAU,CACR,KAAM,UACN,UAAW,aACb,CACF,ECLA,IAAMC,GAAe,CAAC,OAAQ,OAAQ,OAAO,EAEvCC,GAAoB,CACxB,KAAM,CACJ,KAAM,OACN,UAAW,UACX,OAAQD,EACV,CACF,ECRA,IAAME,GAAU,CAAC,OAAQ,aAAc,QAAS,UAAW,SAAU,WAAY,OAAQ,WAAW,EAE9FC,GAAgB,CACpB,OAAQ,CACN,KAAM,OACN,UAAW,cACX,OAAQD,GACR,WAAY,EACd,CACF,ECCA,IAAME,GAAK,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EACxCC,GAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EAE3EC,GAAkB,CACtB,GAAI,CAAE,KAAM,OAAQ,OAAQF,GAAI,QAAS,IAAK,EAC9C,GAAGG,GACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,GACR,QAAS,IACT,WAAY,EACd,EACA,GAAGG,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,EACL,ECjCA,IAAAC,GAAuB,0BCMvB,IAAMC,GAAc,CAAC,UAAW,KAAM,KAAM,KAAM,KAAM,IAAI,EACtDC,GAA6B,IAAI,IAAID,EAAW,ECNtD,SAASE,GACPC,EACAC,EACU,CACV,OAAO,OAAO,UAAU,eAAe,KAAKD,EAAKC,CAAG,CACtD,CCHA,IAAMC,GAAgB,IAAI,IAAY,CAAC,UAAW,KAAM,KAAM,KAAM,KAAM,IAAI,CAAC,EAExE,SAASC,GACdC,EACmC,CACnC,GAAI,OAAOA,GAAQ,UAAYA,IAAQ,KACrC,MAAO,GAGT,QAAWC,KAAOD,EAChB,GAAIF,GAAc,IAAIG,CAAG,EACvB,MAAO,GAGX,MAAO,EACT,CCJA,SAASC,GAAoB,CAAE,UAAAC,EAAW,iBAAAC,EAAkB,GAAGC,CAAK,EAA+B,CACjG,IAAMC,EAAuBC,GAAwB,CACnD,qBAAsB,GACtB,UAAAJ,EACA,GAAGE,CACL,CAAC,EAEKG,EAA6BC,GAA8B,CAAE,iBAAAL,EAAkB,GAAGC,CAAK,CAAC,EAC9F,MAAO,CAACC,EAAsBE,CAA0B,CAC1D,CAUA,SAASD,GAAwB,CAC/B,qBAAAG,EACA,MAAAC,EACA,UAAAR,EACA,WAAAS,EACA,WAAAC,EAAcF,GAAUA,CAC1B,EAAuD,CACrD,IAAMG,EAAuB,CAAC,EAE9B,GAAKH,EAIL,IAAI,OAAOA,GAAU,UAAYC,EAAW,SAASD,CAAK,EACxD,OAAOI,GAAiBZ,EAAWQ,EAAOE,CAAU,EAGtD,GAAIG,GAAmBL,CAAK,EAAG,CAC7B,IAAMM,EAASN,EAEf,QAAWO,KAAMD,EAAQ,CAEvB,GAAI,CAACE,GAAeF,EAAQC,CAAE,GAAK,CAACE,GAAc,IAAIF,CAAE,EACtD,SAGF,IAAMP,EAAQM,EAAOC,CAAE,EAEvB,GAAIP,IAAU,QACZ,GAAIC,EAAW,SAASD,CAAK,EAAG,CAC9B,IAAMU,EAAgBN,GAAiBZ,EAAWQ,EAAOE,CAAU,EAC7DS,EAAcJ,IAAO,UAAYG,EAAgB,GAAGH,CAAE,IAAIG,CAAa,GAC7EP,EAAW,KAAKQ,CAAW,CAC7B,SAAWZ,EAAsB,CAC/B,IAAMY,EAAcJ,IAAO,UAAYf,EAAY,GAAGe,CAAE,IAAIf,CAAS,GACrEW,EAAW,KAAKQ,CAAW,CAC7B,EAEJ,CAEA,OAAOR,EAAW,KAAK,GAAG,CAC5B,CAEA,GAAIJ,EACF,OAAOP,EAEX,CAEA,SAASY,GACPZ,EACAQ,EACAE,EACQ,CACR,IAAMU,EAAYpB,EAAY,IAAM,GAC9BqB,EAAeX,EAAWF,CAAK,EAC/Bc,EAAaD,GAAc,WAAW,GAAG,EACzCE,EAAQD,EAAa,IAAM,GAC3BE,EAAgBF,EAAaD,GAAc,UAAU,CAAC,EAAIA,EAChE,MAAO,GAAGE,CAAK,GAAGvB,CAAS,GAAGoB,CAAS,GAAGI,CAAa,EACzD,CASA,SAASlB,GAA8B,CACrC,iBAAAL,EACA,MAAAO,EACA,WAAAC,EACA,WAAAC,EAAcF,GAAUA,CAC1B,EAAyC,CACvC,IAAIiB,EAA6C,CAAC,EAGlD,GAAI,GAACjB,GAAU,OAAOA,GAAU,UAAYC,EAAW,SAASD,CAAK,GAQrE,IAJI,OAAOA,GAAU,WACnBiB,EAAS,OAAO,YAAYxB,EAAiB,IAAKyB,GAAS,CAACA,EAAMlB,CAAK,CAAC,CAAC,GAGvEK,GAAmBL,CAAK,EAAG,CAC7B,IAAMM,EAASN,EAEf,QAAWO,KAAMD,EAAQ,CAEvB,GAAI,CAACE,GAAeF,EAAQC,CAAE,GAAK,CAACE,GAAc,IAAIF,CAAE,EACtD,SAGF,IAAMP,EAAQM,EAAOC,CAAE,EAGvB,GAAI,CAAAN,EAAW,SAASD,CAAK,EAI7B,QAAWmB,KAAkB1B,EAAkB,CAC7C,IAAM2B,EAAab,IAAO,UAAYY,EAAiB,GAAGA,CAAc,IAAIZ,CAAE,GAC9EU,EAAOG,CAAU,EAAIpB,CACvB,CACF,CACF,CAEA,QAAWqB,KAAOJ,EAAQ,CACxB,IAAMjB,EAAQiB,EAAOI,CAAG,EACpBrB,IAAU,SACZiB,EAAOI,CAAG,EAAInB,EAAWF,CAAK,EAElC,CAEA,OAAOiB,EACT,CC9IO,SAASK,MAAeC,EAAyC,CACtE,IAAIC,EAEJ,QAAWC,KAASF,EACdE,IACED,IAAW,SAEbA,EAAS,CAAC,GAEZ,OAAO,OAAOA,EAAQC,CAAK,GAI/B,OAAOD,CACT,CLRA,SAASE,MAAsDC,EAAkC,CAC/F,OAAO,OAAO,OAAO,CAAC,EAAG,GAAGA,CAAI,CAClC,CAQA,SAASC,GAIPC,KACGC,EAC8F,CACjG,IAAIC,EACAC,EACEC,EAAiB,CAAE,GAAGJ,CAAM,EAC5BK,EAAcR,GAAc,GAAGI,CAAQ,EAE7C,QAAWK,KAAOD,EAAa,CAC7B,IAAIE,EAAQH,EAAeE,CAAG,EACxBE,EAAUH,EAAYC,CAAG,EAmB/B,GAhBIE,EAAQ,UAAY,QAAaD,IAAU,SAC7CA,EAAQC,EAAQ,SAIdA,EAAQ,OAAS,QAGf,CAFW,CAACA,EAAQ,QAAS,GAAGA,EAAQ,MAAM,EAEtC,SAASD,CAAK,GAAK,CAACE,GAAmBF,CAAK,IACtDA,EAAQC,EAAQ,SAKnBJ,EAAuCE,CAAG,EAAIC,EAE3C,cAAeC,GAAWA,EAAQ,UAAW,CAC/C,OAAOJ,EAAeE,CAAG,EAEzB,IAAMI,EAAsB,eAAgBF,EAE5C,GAAI,CAACD,GAAUE,GAAmBF,CAAK,GAAK,CAACG,EAC3C,SAmBF,GAhBID,GAAmBF,CAAK,IAEtBC,EAAQ,UAAY,QAAaD,EAAM,UAAY,SACrDA,EAAM,QAAUC,EAAQ,SAItBA,EAAQ,OAAS,SACJ,CAACA,EAAQ,QAAS,GAAGA,EAAQ,MAAM,EAEtC,SAASD,EAAM,OAAO,IAChCA,EAAM,QAAUC,EAAQ,WAK1BA,EAAQ,OAAS,OAAQ,CAC3B,IAAMG,EAAgBC,GAAwB,CAC5C,qBAAsB,GACtB,MAAAL,EACA,UAAWC,EAAQ,UACnB,WAAYA,EAAQ,OACpB,WAAYA,EAAQ,UACtB,CAAC,EAEDN,KAAY,GAAAW,SAAWX,EAAWS,CAAa,EAC/C,QACF,CAEA,GAAIH,EAAQ,OAAS,UAAYA,EAAQ,OAAS,gBAAiB,CACjE,IAAMM,EAAgBN,EAAQ,OAAS,SAAW,CAAC,EAAIA,EAAQ,OAEzD,CAACO,EAAgBC,CAAoB,EAAIC,GAAoB,CACjE,UAAWT,EAAQ,UACnB,iBAAkBA,EAAQ,iBAC1B,WAAYM,EACZ,WAAYN,EAAQ,WACpB,MAAAD,CACF,CAAC,EAEDJ,EAAQe,GAAYf,EAAOa,CAAoB,EAC/Cd,KAAY,GAAAW,SAAWX,EAAWa,CAAc,EAChD,QACF,CAEA,GAAIP,EAAQ,OAAS,WAAaD,EAAO,CAEvCL,KAAY,GAAAW,SAAWX,EAAWM,EAAQ,SAAS,EACnD,QACF,CACF,CACF,CAEA,OAAAJ,EAAe,aAAY,GAAAS,SAAWX,EAAWF,EAAM,SAAS,EAChEI,EAAe,MAAQc,GAAYf,EAAOH,EAAM,KAAK,EAC9CI,CACT,CMtHA,IAAMe,GAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,KAAK,EAE7JC,GAAiB,CAarB,EAAG,CACD,KAAM,gBACN,OAAQD,GACR,WAAY,GACZ,UAAW,SACX,iBAAkB,CAAC,KAAK,CAC1B,EAcA,GAAI,CACF,KAAM,gBACN,OAAQA,GACR,WAAY,GACZ,UAAW,UACX,iBAAkB,CAAC,OAAQ,MAAM,CACnC,EAcA,GAAI,CACF,KAAM,gBACN,OAAQA,GACR,WAAY,GACZ,UAAW,UACX,iBAAkB,CAAC,OAAQ,MAAM,CACnC,EAaA,GAAI,CACF,KAAM,gBACN,OAAQA,GACR,WAAY,GACZ,UAAW,UACX,iBAAkB,CAAC,MAAM,CAC3B,EAaA,GAAI,CACF,KAAM,gBACN,OAAQA,GACR,WAAY,GACZ,UAAW,UACX,iBAAkB,CAAC,MAAM,CAC3B,EAaA,GAAI,CACF,KAAM,gBACN,OAAQA,GACR,WAAY,GACZ,UAAW,UACX,iBAAkB,CAAC,MAAM,CAC3B,EAaA,GAAI,CACF,KAAM,gBACN,OAAQA,GACR,WAAY,GACZ,UAAW,UACX,iBAAkB,CAAC,MAAM,CAC3B,CACF,EfrHA,IAAME,GAAiB,CAAE,GAAGC,GAAiB,GAAGC,EAAe,EAEzDC,GAAgB,QACd,cAAyC,CAACC,EAAOC,IAAiB,CACtE,GAAM,CACJ,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,GAAIC,EAAM,KACV,MAAAC,EACA,GAAGC,CACL,EAAIC,GAAaR,EAAOJ,EAAc,EAEhCa,EAAoBN,EAAY,cAAcA,CAAS,GAAK,aAElE,OAAIC,EAEA,iBAAC,QAAK,KAAL,CACC,oBAAmBE,EAClB,GAAGC,EACJ,IAAKN,EACL,UAAWQ,GAEVP,CACH,EAKF,iBAACG,EAAA,CACC,oBAAmBC,EAClB,GAAIC,EACL,IAAKN,EACL,UAAWQ,GAEVP,CACH,CAEJ,CAAC,CACH,EACAH,GAAQ,YAAc,UgBhEtB,IAAAW,GAAuB,qBACvBC,GAAqB,oBCWrB,IAAMC,GAAK,CAAC,OAAQ,MAAO,QAAS,GAAG,EACjCC,GAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EAE3EC,GAAe,CACnB,GAAI,CAAE,KAAM,OAAQ,OAAQF,GAAI,QAAS,MAAO,EAChD,GAAGG,GACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,GACR,WAAY,EACd,EACA,GAAGG,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,EACL,EDXA,IAAMC,GAAiB,CAAE,GAAGC,GAAc,GAAGC,EAAe,EAEtDC,GAAa,QACX,cAAmC,CAACC,EAAOC,IAAiB,CAChE,GAAM,CACJ,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,GAAIC,EAAM,OACV,MAAAC,EACA,GAAGC,CACL,EAAIC,GAAaR,EAAOJ,EAAc,EAEhCa,EAAoBN,EAAY,WAAWA,CAAS,GAAK,UAE/D,OAAIC,EAEA,iBAAC,QAAK,KAAL,CACC,oBAAmBE,EAClB,GAAGC,EACJ,IAAKN,EACL,UAAWQ,GAEVP,CACH,EAKF,iBAACG,EAAA,CACC,oBAAmBC,EAClB,GAAIC,EACL,IAAKN,EACL,UAAWQ,GAEVP,CACH,CAEJ,CAAC,CACH,EACAH,GAAK,YAAc,OE7DnB,IAAAW,GAAuB,qBAGVC,GAAkDC,GAAmB,CAGhF,GAAI,CAFyB,kBAAeA,CAAQ,EAGlD,MAAM,MACJ,mDAAyD,YAAS,QAAQA,CAAQ,EAC/E,IAAKC,GACJ,OAAOA,GAAU,UAAY,SAAUA,GAAS,OAAOA,EAAM,MAAS,SAClEA,EAAM,KACN,OAAOA,CACb,EACC,KAAK,IAAI,CAAC,EACf,EAGF,OAAOD,CACT,ECnBA,IAAAE,GAAuB,qBAEnBC,GAAmB,GAShB,SAASC,IAA8B,CACtC,aAAU,IAAM,CAEpB,GADI,OAAO,SAAa,KACpBD,GAAkB,OAEtBA,GAAmB,GAEnB,IAAME,EAAe,IAAe,CAElC,IAAMC,EAAa,EACjB,SAAS,cACP,6EACF,EAIIC,EAAmB,EACvB,SAAS,cAAc,0DAA0D,EAGnF,OAAOD,GAAcC,CACvB,EAEMC,EAAe,IAAM,CAErB,SAAS,KAAK,MAAM,gBAAkB,SACxC,QAAQ,IAAI,gEAAgE,EAC5E,SAAS,KAAK,MAAM,cAAgB,GAGpC,SAAS,KAAK,gBAAgB,oBAAoB,EAClD,SAAS,KAAK,gBAAgB,oBAAoB,EAGlD,SAAS,KAAK,UAAU,OAAO,wBAAwB,EAE3D,EAEMC,EAAc,IAAM,CACpB,SAAS,KAAK,MAAM,gBAAkB,QAAU,CAACJ,EAAa,IAChE,QAAQ,IAAI,+DAA+D,EAC3E,SAAS,KAAK,MAAM,cAAgB,GAExC,EAGMK,EAAmBC,GAAiB,CACxC,IAAMC,EAASD,EAAM,OAEnBC,GACA,CAACA,EAAO,QACN,4EACF,GAGA,WAAWJ,EAAc,GAAG,CAEhC,EAGMK,EAAeF,GAAyB,CACxCA,EAAM,MAAQ,UAChB,WAAWH,EAAc,GAAG,CAEhC,EAGMM,EAAgB,IAAM,CAC1B,WAAWL,EAAa,EAAE,CAC5B,EAGA,SAAS,iBAAiB,QAASC,EAAiB,EAAI,EACxD,SAAS,iBAAiB,UAAWG,EAAa,EAAI,EACtD,SAAS,iBAAiB,YAAaC,EAAe,EAAI,EAC1D,SAAS,iBAAiB,gBAAiBA,EAAe,EAAI,EAC9D,SAAS,iBAAiB,eAAgBA,EAAe,EAAI,EAG5C,IAAI,iBAAiB,IAAM,CAC1C,WAAWL,EAAa,CAAC,CAC3B,CAAC,EACQ,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,QAAS,GAAM,WAAY,EAAK,CAAC,EAGpF,IAAMM,EAAa,YAAY,IAAM,CAC/B,SAAS,KAAK,MAAM,gBAAkB,QAAU,CAACV,EAAa,IAChE,QAAQ,IAAI,qDAAqD,EACjE,SAAS,KAAK,MAAM,cAAgB,GAExC,EAAG,GAAI,EAGP,kBAAWI,EAAa,GAAG,EAGpB,IAAM,CACX,cAAcM,CAAU,CAC1B,CACF,EAAG,CAAC,CAAC,CACP,C7B5CA,IAAMC,GAAkCC,GAAU,iBAAC,GAAAC,OAAgB,KAAhB,CAAsB,GAAGD,EAAO,MAAK,GAAC,EACzFD,GAAK,YAAc,aAQnB,IAAMG,GAAgB,cACpB,CAAC,CAAE,SAAAC,EAAU,GAAGH,CAAM,EAAGI,IACvB,iBAAC,GAAAH,OAAgB,QAAhB,CAAyB,GAAGD,EAAO,IAAKI,EAAK,QAAO,IAClDC,GAAoBF,CAAQ,CAC/B,CAEJ,EACAD,GAAQ,YAAc,gBAmBtB,IAAMI,GAAgB,cACpB,CAACC,EAAUC,IAAiB,CAC1B,GAAM,CACJ,KAAAC,EAAO,QACP,WAAAC,EACA,UAAAC,EACA,UAAAC,EACA,gBAAiBC,EACjB,SAAUC,EACV,GAAGC,CACL,EAAIR,EASES,EAR2E,CAC/E,KAAM,QACN,MAAO,MACP,MAAO,QACP,IAAK,MACL,IAAK,MACL,OAAQ,QACV,EACyCP,CAAI,EAGvC,CACJ,MAAOQ,EACP,gBAAiBC,EACjB,SAAUC,EACV,GAAGC,CACL,EAAIC,GAGE,CAAE,gBAAiBC,EAAyB,SAAUC,CAAiB,EAAIC,GAC/E,CAAE,gBAAiBX,EAAqB,SAAUC,CAAa,EAC/D,CAAE,gBAAiBI,EAAwB,SAAUC,CAAgB,CACvE,EAEMM,EAAsB,WAAQ,IAQ3BF,GAAoBD,EAC1B,CAACC,EAAkBD,CAAuB,CAAC,EAKxC,CAAE,QAASI,EAAY,GAAGC,CAAuB,EAAIP,EAAS,SAC9DQ,GAAgB,CACpB,GAAGR,EACH,SAAUO,CACZ,EACM,CAAE,UAAWE,EAAoB,GAAGC,CAAa,EAAIN,GACzDT,EACAa,EACF,EAuBMG,GAAmB,UAAuB,IAAI,EAC9CC,EAAoB,WACxB,IAAOC,GAAgC,CACrCF,GAAW,QAAUE,EACjB,OAAOzB,GAAiB,WAC1BA,EAAayB,CAAI,EACRzB,IACRA,EAA+D,QAAUyB,EAE9E,EACA,CAACzB,CAAY,CACf,EAEA,OAAA0B,GAA4B,EAEtB,aAAU,IAAM,CACpB,GAAI,OAAO,OAAW,IAAa,OACnC,IAAMC,EAAUJ,GAAW,QAC3B,GAAI,CAACI,EAAS,OAEd,IAAMC,EAAoBD,EAAQ,iBAChC,0EACF,EAEA,GAAIC,EAAkB,SAAW,EAAG,OAEpC,IAAMC,EAAeD,EAAkB,CAAC,EAClCE,EAAcF,EAAkBA,EAAkB,OAAS,CAAC,EAE5DG,EAAiBC,GAAyB,CAC1CA,EAAM,MAAQ,QACZA,EAAM,SACJ,SAAS,gBAAkBH,IAC7BG,EAAM,eAAe,EACrBF,EAAY,MAAM,GAEX,SAAS,gBAAkBA,IACpCE,EAAM,eAAe,EACrBH,EAAa,MAAM,GAGzB,EAEA,OAAAF,EAAQ,iBAAiB,UAAWI,CAAa,EACjDF,EAAa,MAAM,EAEZ,IAAM,CACXF,EAAQ,oBAAoB,UAAWI,CAAa,CACtD,CACF,EAAG,CAAC,CAAC,EAGH,iBAAC,GAAAtC,OAAgB,OAAhB,CAAuB,UAAWU,EAAW,WAAYD,GACxD,iBAAC+B,GAAA,CAAM,QAAO,IACZ,iBAAC,GAAAxC,OAAgB,QAAhB,CAAwB,UAAU,yDACjC,iBAAC,GAAAA,OAAgB,QAAhB,CACE,GAAG6B,EACJ,IAAKE,EACL,aAAW,GAAAU,SACT,uBACA,kBACA9B,EACAiB,CACF,EACA,YAAWb,EACX,gBAAeS,EACf,wBAAuBA,EACvB,SAAU,GACV,KAAK,SACL,aAAW,OACb,CACF,CACF,CACF,CAEJ,CACF,EACAnB,GAAQ,YAAc,gBAMtB,IAAMqC,GAAc,cAClB,CAAC,CAAE,KAAAC,EAAO,IAAK,OAAAC,EAAS,SAAU,GAAG7C,CAAM,EAAGI,IAC5C,iBAAC,GAAAH,OAAgB,MAAhB,CAAsB,QAAO,IAC5B,iBAAC6C,GAAA,CAAQ,IAAK1C,EAAK,KAAMwC,EAAM,OAAQC,EAAS,GAAG7C,EAAO,CAC5D,CAEJ,EACA2C,GAAM,YAAc,cAMpB,IAAMI,GAAoB,cACxB,CAAC,CAAE,KAAAH,EAAO,IAAK,MAAAI,EAAQ,OAAQ,GAAGC,CAAK,EAAG7C,IACxC,iBAAC,GAAAH,OAAgB,YAAhB,CAA4B,QAAO,IAClC,iBAACiD,GAAA,CAAK,IAAK9C,EAAK,KAAMwC,EAAM,MAAOI,EAAQ,GAAGC,EAAM,CACtD,CAEJ,EACAF,GAAY,YAAc,oBAM1B,IAAMI,GAAc,cAClB,CAAC,CAAE,SAAAhD,EAAU,GAAGH,CAAM,EAAGI,IACvB,iBAAC,GAAAH,OAAgB,MAAhB,CAAuB,GAAGD,EAAO,IAAKI,EAAK,QAAO,IAChDC,GAAoBF,CAAQ,CAC/B,CAEJ,EACAgD,GAAM,YAAc,c8B1SpB,IAAAC,GAA0D,oBAC7CC,GAAiB,GAAAC,eAAwB,KACzCC,GAAO,GAAAD,eAAwB,KCF5C,IAAAE,GAAuB,qBCyChB,IAAMC,GAAe,CAC1B,GAAI,qBACJ,GAAI,qBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,qBACN,EC/CA,IAAAC,GAAuB,qBAiDjBC,GAAqB,iBAAwC,IAAI,EAGhE,SAASC,IAAW,CACzB,IAAMC,EAAY,cAAWF,EAAY,EACzC,GAAI,CAACE,EAAK,MAAM,IAAI,MAAM,mDAAmD,EAC7E,OAAOA,CACT,CAEO,SAASC,GAAc,CAAE,MAAAC,EAAO,SAAAC,CAAS,EAA4D,CAC1G,OAAO,iBAACL,GAAa,SAAb,CAAsB,MAAOI,GAAQC,CAAS,CACxD,CAOO,IAAMC,GAAwB,iBAAgF,IAAI,EAClH,SAASC,IAAc,CAC5B,IAAML,EAAY,cAAWI,EAAe,EAC5C,GAAI,CAACJ,EAAK,MAAM,IAAI,MAAM,4CAA4C,EACtE,OAAOA,CACT,CAEO,IAAMM,GAAyB,iBAAkF,IAAI,EACrH,SAASC,IAAe,CAC7B,IAAMP,EAAY,cAAWM,EAAgB,EAC7C,GAAI,CAACN,EAAK,MAAM,IAAI,MAAM,6CAA6C,EACvE,OAAOA,CACT,CAEO,IAAMQ,GAA2B,iBAA4F,IAAI,EACjI,SAASC,IAAiB,CAC/B,IAAMT,EAAY,cAAWQ,EAAkB,EAC/C,GAAI,CAACR,EAAK,MAAM,IAAI,MAAM,+CAA+C,EACzE,OAAOA,CACT,CAEO,IAAMU,GAA6B,iBAA0F,IAAI,EACjI,SAASC,IAAmB,CACjC,IAAMX,EAAY,cAAWU,EAAoB,EACjD,GAAI,CAACV,EAAK,MAAM,IAAI,MAAM,iDAAiD,EAC3E,OAAOA,CACT,CAEO,IAAMY,GAA0B,iBAAoF,IAAI,EACxH,SAASC,IAAgB,CAC9B,IAAMb,EAAY,cAAWY,EAAiB,EAC9C,GAAI,CAACZ,EAAK,MAAM,IAAI,MAAM,8CAA8C,EACxE,OAAOA,CACT,CAGO,IAAMc,GAA4B,iBAAuI,IAAI,EAC7K,SAASC,IAAkB,CAChC,IAAMf,EAAY,cAAWc,EAAmB,EAChD,GAAI,CAACd,EAAK,MAAM,IAAI,MAAM,gDAAgD,EAC1E,OAAOA,CACT,CAGO,IAAMgB,GAAoB,iBAC/B,IACF,EACO,SAASC,IAAU,CACxB,IAAMjB,EAAY,cAAWgB,EAAW,EACxC,GAAI,CAAChB,EAAK,MAAM,IAAI,MAAM,wCAAwC,EAClE,OAAOA,CACT,CAGO,IAAMkB,GAAuB,iBAK1B,IAAI,EACP,SAASC,IAAkB,CAChC,IAAMnB,EAAY,cAAWkB,EAAc,EAC3C,GAAI,CAAClB,EAAK,MAAM,IAAI,MAAM,gDAAgD,EAC1E,OAAOA,CACT,CAGO,IAAMoB,GAA2B,iBAAuI,IAAI,EAC5K,SAASC,IAAiB,CAC/B,IAAMrB,EAAY,cAAWoB,EAAkB,EAC/C,GAAI,CAACpB,EAAK,MAAM,IAAI,MAAM,+CAA+C,EACzE,OAAOA,CACT,CAIO,IAAMsB,GAAqB,iBAKxB,IAAI,EACP,SAASC,IAAW,CACzB,IAAMvB,EAAY,cAAWsB,EAAY,EACzC,GAAI,CAACtB,EAAK,MAAM,IAAI,MAAM,yCAAyC,EACnE,OAAOA,CACT,CFpJA,SAASwB,GAA0BC,EAAyD,CAC1F,GAAM,CAAE,kBAAAC,CAAkB,EAAIC,GAAS,EAEvC,OAAa,WAAQ,IAAM,CACzB,GAAI,OAAOF,GAAiB,SAC1B,OAAOA,EAGT,GAAIA,EAAaC,CAAiB,EAChC,OAAOD,EAAaC,CAAiB,EAIvC,IAAME,EAAuB,CAAC,GADf,OAAO,KAAKC,EAAY,CACA,EAAE,QAAQ,EAAmB,OAAO,SAAuB,EAC5FC,EAAWF,EAAM,QAAQF,CAA+B,EAE9D,QAASK,EAAID,EAAW,EAAGC,EAAIH,EAAM,OAAQG,IAAK,CAChD,IAAMC,EAAKJ,EAAMG,CAAC,EAClB,GAAIN,EAAaO,CAAE,EACjB,OAAOP,EAAaO,CAAE,CAE1B,CAEA,MAAO,OACT,EAAG,CAACP,EAAcC,CAAiB,CAAC,CACtC,CAOA,SAASO,GAAsBC,EAAsE,CACnG,GAAM,CAAE,kBAAAR,CAAkB,EAAIC,GAAS,EAEvC,OAAa,WAAQ,IAAM,CACzB,GAAIO,GAAS,KAAM,OAEnB,GAAI,OAAOA,GAAU,SACnB,OAAOA,EAGT,IAAMC,EAAMD,EACZ,GAAIC,EAAIT,CAA+B,IAAM,OAC3C,OAAOS,EAAIT,CAA+B,EAI5C,IAAME,EAAuB,CAAC,GADf,OAAO,KAAKC,EAAY,CACA,EAAE,QAAQ,EAAmB,OAAO,SAAuB,EAC5FC,EAAWF,EAAM,QAAQF,CAA+B,EAE9D,QAASK,EAAID,EAAW,EAAGC,EAAIH,EAAM,OAAQG,IAAK,CAChD,IAAMC,EAAKJ,EAAMG,CAAC,EAClB,GAAII,EAAIH,CAAE,IAAM,OACd,OAAOG,EAAIH,CAAE,CAEjB,CAGF,EAAG,CAACE,EAAOR,CAAiB,CAAC,CAC/B,CAoBA,SAASU,GAA6B,CACpC,gBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,OAAAC,EACA,mBAAAC,EACA,uBAAAC,EAAyB,EAC3B,EAA4E,CAC1E,IAAMC,EAAqBZ,GAAmBI,CAAe,EACvDS,EAAkBb,GAAmBK,CAAY,EAEjDS,EAA0B,UAAsB,MAAS,EACzDC,EAAuB,UAA6C,IAAI,EACxEC,EAA4B,UAAsBJ,CAAkB,EACpEK,EAAuB,UAAOX,CAAY,EAC1CY,EAAoB,UAAOX,CAAQ,EAEnC,mBAAgB,IAAM,CAC1BS,EAAoB,QAAUJ,EAC9BK,EAAe,QAAUX,EACzBY,EAAY,QAAUX,CACxB,CAAC,EAEK,aAAU,IAAM,CACpB,GAAIK,IAAuB,OAAW,OAGtC,IAAMO,EADiBL,EAAkB,UACIF,EAG7C,GAFAE,EAAkB,QAAUF,EAExBN,IAAiBM,EAAoB,CACnCG,EAAe,UACjB,aAAaA,EAAe,OAAO,EACnCA,EAAe,QAAU,MAEvBJ,GACFD,IAAqBE,CAAkB,EAEzC,MACF,CAEA,GAAIO,EAAmB,CACjBJ,EAAe,UACjB,aAAaA,EAAe,OAAO,EACnCA,EAAe,QAAU,MAE3BR,EAASK,CAAkB,EACvBD,GACFD,IAAqBE,CAAkB,EAEzC,MACF,CAEKG,EAAe,UAClBA,EAAe,QAAU,WAAW,IAAM,CACxCA,EAAe,QAAU,KACzB,IAAMK,EAAmBJ,EAAoB,QACvCK,EAAcJ,EAAe,QAC/BG,IAAqB,QACrBC,IAAgBD,GACpBF,EAAY,QAAQE,CAAgB,CACtC,EAAG,CAAC,EAER,EAAG,CAACR,EAAoBN,EAAcC,EAAUG,EAAoBC,CAAsB,CAAC,EAErF,aAAU,IACP,IAAM,CACPI,EAAe,UACjB,aAAaA,EAAe,OAAO,EACnCA,EAAe,QAAU,KAE7B,EACC,CAAC,CAAC,EAEL,IAAMO,EAAmB,UAAO,EAAK,EACrC,OAAM,aAAU,IAAM,CAChBA,EAAW,SACVd,IACD,OAAOJ,EAAoB,KAC3BS,IAAoB,SACxBS,EAAW,QAAU,GACjBhB,IAAiBO,GACnBN,EAASM,CAAe,EAE1BJ,IAASI,CAAe,GAC1B,EAAG,CAACL,EAAiBJ,EAAiBS,EAAiBP,EAAcC,EAAUE,CAAM,CAAC,EAE/E,CAAE,mBAAAG,EAAoB,gBAAAC,CAAgB,CAC/C,CG/KA,IAAAU,GAAuB,qBAuBVC,GAA0B,iBAA6C,IAAI,EAEjF,SAASC,IAAgB,CAC9B,IAAMC,EAAY,cAAWF,EAAiB,EAC9C,GAAI,CAACE,EAAK,MAAM,IAAI,MAAM,mDAAmD,EAC7E,OAAOA,CACT,CC7BA,IAAAC,GAAuB,qBACvBC,GAAuB,0BAGhB,IAAMC,GAAmB,cAAkE,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAM,EAAGC,IAAQ,CAC5I,GAAM,CACJ,aAAAC,EACA,WAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,KAAAC,EACA,YAAAC,EACA,SAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,YAAAC,EACA,OAAAC,EACA,gBAAAC,GACA,cAAAC,CACF,EAAIC,GAAc,EAEZC,EAAyB,UAA4B,IAAI,EACzD,aACJ,IAAM,IAAM,CACV,GAAI,CACFA,EAAiB,UAAU,CAC7B,MAAQ,CAAC,CACTA,EAAiB,QAAU,IAC7B,EACA,CAAC,CACH,EAEA,IAAMC,GAAkBf,EAIlBgB,EAAY,UADEN,EAAO,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAO,MAAM,CAAC,CAC5B,QAEvC,OACE,iBAAC,OACE,GAAGjB,EACJ,IAAKC,EACL,aAAW,GAAAuB,SAAW,kBAAmB1B,CAAS,EAClD,mBAAkBS,EAClB,YAAWC,EACX,KAAK,SACL,aAAYe,EACZ,mBAAkBD,GAClB,gBAAelB,EACf,gBAAeC,EACf,gBAAeC,EACf,SAAU,EACV,cAAgBmB,GAAM,CACpB,GAAI,CAACvB,EAAa,QAAS,OAC3BuB,EAAE,eAAe,EACjB,IAAMC,EAAYxB,EAAa,QACzByB,EAAWF,EAAE,cACbG,EAAYH,EAAE,UACpB,GAAI,CACFJ,EAAiB,UAAU,CAC7B,MAAQ,CAAC,CACTK,EAAU,aAAa,gBAAiB,EAAE,EAC1C,GAAI,CACFC,EAAS,kBAAkBC,CAAS,CACtC,MAAQ,CAAC,CACT,IAAMC,EAActB,IAAgB,WAAakB,EAAE,QAAUA,EAAE,QACzDK,EAAY,WAAW,iBAAiBJ,CAAS,EAAE,iBAAiBvB,CAAU,GAAK,GAAGG,CAAW,EAAE,EACnGyB,GAASC,GAAc,KAAK,IAAI,KAAK,IAAIA,EAAG5B,CAAO,EAAGC,CAAO,EAC7D4B,EAAO,SAAS,KAChBC,EAAaD,EAAK,MAAM,OACxBE,GAAiBF,EAAK,MAAM,WAClCA,EAAK,MAAM,OAAS1B,IAAgB,WAAa,aAAe,aAChE0B,EAAK,MAAM,WAAa,OACxBtB,IAAgBmB,CAAS,EACzB,IAAMM,GAAcC,GAAqB,CACvC,IAAMC,EAAS/B,IAAgB,WAAa8B,EAAG,QAAUA,EAAG,QACtDE,GAAOR,GAAMtB,EAAY6B,EAAQT,EAAaC,CAAS,CAAC,EAC9DJ,EAAU,MAAM,YAAYvB,EAAY,GAAGoC,EAAI,IAAI,EACnDZ,EAAS,aAAa,gBAAiB,OAAOY,EAAI,CAAC,EACnD7B,IAAW6B,EAAI,CACjB,EACMC,EAAU,IAAM,CACpB,GAAI,CACFb,EAAS,sBAAsBC,CAAS,CAC1C,MAAQ,CAAC,CACT,OAAO,oBAAoB,cAAeQ,EAA2B,EACrE,SAAS,oBAAoB,cAAeA,EAA2B,EACvE,OAAO,oBAAoB,YAAaA,EAA2B,EACnE,SAAS,oBAAoB,YAAaA,EAA2B,EACrET,EAAS,oBAAoB,cAAeS,EAA2B,EACvE,OAAO,oBAAoB,YAAaK,CAAyB,EACjE,SAAS,oBAAoB,YAAaA,CAAyB,EACnE,OAAO,oBAAoB,UAAWA,CAAyB,EAC/D,SAAS,oBAAoB,UAAWA,CAAyB,EACjE,OAAO,oBAAoB,gBAAiBA,CAAyB,EACrE,SAAS,oBAAoB,gBAAiBA,CAAyB,EACvE,OAAO,oBAAoB,UAAWC,CAA0B,EAChEf,EAAS,oBAAoB,qBAAsBc,CAAyB,EAC5Ef,EAAU,gBAAgB,eAAe,EACzCO,EAAK,MAAM,OAASC,EACpBD,EAAK,MAAM,WAAaE,GACxBd,EAAiB,QAAU,IAC7B,EACMoB,EAAW,IAAM,CACrB,IAAME,EAAY,WAAW,iBAAiBjB,CAAS,EAAE,iBAAiBvB,CAAU,GAAK,GAAGG,CAAW,EAAE,EACrGsC,EAAUD,EACd,GAAI9B,GAAcA,EAAW,OAAQ,CACnC,IAAMgC,GAAUhC,EAAW,OAAO,CAACiC,EAAKC,KAAO,KAAK,IAAIA,GAAIJ,CAAS,EAAI,KAAK,IAAIG,EAAMH,CAAS,EAAII,GAAID,EAAMjC,EAAW,CAAC,CAAC,EACxH,KAAK,IAAIgC,GAAUF,CAAS,IAAM7B,GAAiB,KACrD8B,EAAUC,GACVnB,EAAU,MAAM,YAAYvB,EAAY,GAAGyC,CAAO,IAAI,EACtDjB,EAAS,aAAa,gBAAiB,OAAOiB,CAAO,CAAC,EACtDlC,IAAWkC,CAAO,EAEtB,CACI5B,GAAe,OAAOD,GAAsB,UAAY4B,GAAa5B,GACvEG,KAAkB,EAEpBN,IAAcgC,CAAO,EACrBJ,EAAQ,CACV,EACME,EAAaM,GAAuB,CACpCA,EAAI,MAAQ,WACdtB,EAAU,MAAM,YAAYvB,EAAY,GAAG2B,CAAS,IAAI,EACxDH,EAAS,aAAa,gBAAiB,OAAOG,CAAS,CAAC,EACxDlB,IAAckB,CAAS,EACvBU,EAAQ,EAEZ,EACA,OAAO,iBAAiB,cAAeJ,EAA2B,EAClE,SAAS,iBAAiB,cAAeA,EAA2B,EAEpE,OAAO,iBAAiB,YAAaA,EAA2B,EAChE,SAAS,iBAAiB,YAAaA,EAA2B,EAClET,EAAS,iBAAiB,cAAeS,EAA2B,EACpE,OAAO,iBAAiB,YAAaK,CAAyB,EAC9D,SAAS,iBAAiB,YAAaA,CAAyB,EAChE,OAAO,iBAAiB,UAAWA,CAAyB,EAC5D,SAAS,iBAAiB,UAAWA,CAAyB,EAC9D,OAAO,iBAAiB,gBAAiBA,CAAyB,EAClE,SAAS,iBAAiB,gBAAiBA,CAAyB,EACpE,OAAO,iBAAiB,UAAWC,CAA0B,EAC7Df,EAAS,iBAAiB,qBAAsBc,CAAyB,EACzEpB,EAAiB,QAAUmB,CAC7B,EACA,cAAe,IAAM,CACfxB,GAAaG,IAAgB,CACnC,EACA,UAAYM,GAAM,CAChB,GAAI,CAACvB,EAAa,QAAS,OAC3B,IAAMwB,EAAYxB,EAAa,QACzB+C,EAAa,iBAAiBvB,CAAS,EAAE,iBAAiBvB,CAAU,EACpE+C,EAAgB,OAAO,WAAWD,EAAW,KAAK,CAAC,EACnDE,EAAU,OAAO,SAASD,CAAa,EAAIA,EAAgB5C,EAC3DyB,EAASC,GAAc,KAAK,IAAI,KAAK,IAAIA,EAAG5B,CAAO,EAAGC,CAAO,EAC7D+C,GAAO3B,EAAE,SAAW,GAAK,EAC3B4B,EAAQ,EACZ,GAAI9C,IAAgB,WAAY,CAC9B,IAAM+C,EAAS,OAAO,SAAa,IAAc,SAAS,IAAM,OAC1DC,GAAS,iBAAiB7B,CAAS,EAAE,UACrC8B,GAAiB,CAAC,EAAE9B,EAAU,SAAWA,EAAU,QAAQ,aAAa,GACxE+B,EAAQH,IAAW,OAASC,KAAW,OAASC,GAClD/B,EAAE,MAAQ,aACZ4B,EAAQI,EAAQ,CAACL,GAAOA,GACjB3B,EAAE,MAAQ,cAAa4B,EAAQI,EAAQL,GAAO,CAACA,GAC1D,MACM3B,EAAE,MAAQ,YAAa4B,EAAQD,GAC1B3B,EAAE,MAAQ,YAAW4B,EAAQ,CAACD,IAEzC,GAAI3B,EAAE,MAAQ,OAAQ,CACpBA,EAAE,eAAe,EACjBd,IAAgBwC,CAAO,EACvB,IAAMZ,EAAOR,EAAM3B,CAAO,EAC1BsB,EAAU,MAAM,YAAYvB,EAAY,GAAGoC,CAAI,IAAI,EAClDd,EAAE,cAA8B,aAAa,gBAAiB,OAAOc,CAAI,CAAC,EAC3E7B,IAAW6B,CAAI,EACf3B,IAAc2B,CAAI,EAClB,MACF,CACA,GAAId,EAAE,MAAQ,MAAO,CACnBA,EAAE,eAAe,EACjBd,IAAgBwC,CAAO,EACvB,IAAMZ,EAAOR,EAAM1B,CAAO,EAC1BqB,EAAU,MAAM,YAAYvB,EAAY,GAAGoC,CAAI,IAAI,EAClDd,EAAE,cAA8B,aAAa,gBAAiB,OAAOc,CAAI,CAAC,EAC3E7B,IAAW6B,CAAI,EACf3B,IAAc2B,CAAI,EAClB,MACF,CACA,GAAIc,IAAU,EAAG,CACf5B,EAAE,eAAe,EACjBd,IAAgBwC,CAAO,EACvB,IAAMO,EAAcnD,IAAgB,YAAcC,IAAS,QAAU,CAAC6C,EAAiBA,EACjFd,GAAOR,EAAMoB,EAAUO,CAAW,EACxChC,EAAU,MAAM,YAAYvB,EAAY,GAAGoC,EAAI,IAAI,EAClDd,EAAE,cAA8B,aAAa,gBAAiB,OAAOc,EAAI,CAAC,EAC3E7B,IAAW6B,EAAI,EACf3B,IAAc2B,EAAI,CACpB,CACF,GAECxC,CACH,CAEJ,CAAC,EACDF,GAAW,YAAc,eAElB,IAAM8D,GAAoB,cAAkE,CAAC3D,EAAOC,IAAQ,iBAACJ,GAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EACtJ0D,GAAY,YAAc,qBAEnB,IAAMC,GAAsB,cAAkE,CAAC5D,EAAOC,IAAQ,iBAACJ,GAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EACxJ2D,GAAc,YAAc,uBAErB,IAAMC,GAAwB,cAAkE,CAAC7D,EAAOC,IAAQ,iBAACJ,GAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EAC1J4D,GAAgB,YAAc,yBAEvB,IAAMC,GAAqB,cAAkE,CAAC9D,EAAOC,IAAQ,iBAACJ,GAAA,CAAY,GAAGG,EAAO,IAAKC,EAAK,CAAE,EACvJ6D,GAAa,YAAc,sBC1NpB,SAASC,GAAsDC,EAAWC,EAAS,CACxF,IAAMC,EAAU,IAAI,IAAaD,CAA4B,EACvDE,EAAqB,CAAC,EAC5B,OAAC,OAAO,KAAKH,CAAM,EAAqB,QAASI,GAAQ,CAClDF,EAAQ,IAAIE,CAAG,IAClBD,EAAOC,CAAG,EAAIJ,EAAOI,CAAG,EAE5B,CAAC,EACMD,CACT,CAEA,IAAME,GAA2B,CAC/B,eACA,eACA,UACA,UACA,YACA,cACA,WACA,aACA,WACA,UACA,gBACA,cACA,aACA,gBACA,oBACA,SACA,cACA,OACF,EAEO,SAASC,GAAwFN,EAAWO,EAAmB,CACpI,IAAMC,EAAWD,EAAY,CAAC,GAAGF,GAA0B,GAAGE,CAAS,EAAI,CAAC,GAAGF,EAAwB,EACvG,OAAON,GAAcC,EAAQQ,CAAkC,CACjE,CAEO,SAASC,GAA+BC,EAAsH,CACnK,GAAIA,GAAS,KACb,IAAI,OAAOA,GAAU,SAAU,CAC7B,IAAMC,EAAgD,CAAC,EACvD,OAAC,OAAO,QAAQD,CAAK,EAA+B,QAAQ,CAAC,CAACE,EAAIC,CAAG,IAAM,CACrE,OAAOA,GAAQ,YACjBF,EAAOC,CAAgB,EAAIC,EAAM,WAAa,YAElD,CAAC,EACMF,CACT,CACA,OAAOD,EAAQ,WAAa,YAC9B,CCrDA,IAAAI,EAAuB,qBACvBC,GAAuB,0BCOhB,SAASC,GACdC,EACAC,EAAyC,aACrB,CACpB,GAAID,GAAS,KAAM,OACnB,GAAI,OAAOA,GAAU,UAAY,OAAO,SAASA,CAAK,EAAG,OAAOA,EAEhE,IAAME,EAAM,OAAOF,CAAK,EAAE,KAAK,EAC/B,GAAI,CAACE,EAAK,OAGV,GAAIA,EAAI,SAAS,IAAI,EAAG,OAAO,OAAO,WAAWA,CAAG,EAGpD,GAAIA,EAAI,SAAS,KAAK,EAAG,CACvB,IAAMC,EAAM,OAAO,WAAW,iBAAiB,SAAS,eAAe,EAAE,UAAY,IAAI,GAAK,GAC9F,OAAO,OAAO,WAAWD,CAAG,EAAIC,CAClC,CAGA,GAAID,EAAI,SAAS,GAAG,EAAG,CACrB,IAAME,EAAM,OAAO,WAAWF,CAAG,EAC3BG,EACJJ,IAAgB,aACZ,SAAS,gBAAgB,aAAe,OAAO,YAAc,EAC7D,SAAS,gBAAgB,cAAgB,OAAO,aAAe,EACrE,OAAQG,EAAM,IAAOC,CACvB,CAGA,IAAMC,EAAI,OAAO,WAAWJ,CAAG,EAC/B,OAAO,OAAO,SAASI,CAAC,EAAIA,EAAI,MAClC,CDFA,IAAMC,GAAwB,CAC5B,YACA,WACA,QACA,eACA,gBACA,WACA,cACA,OACA,cACA,eACA,aACA,eACA,QACA,OACF,EAEaC,GAAgB,aAA+C,CAACC,EAAcC,IAAQ,CACjG,GAAM,CACJ,UAAAC,EACA,aAAAC,EAAe,CAAE,QAAS,UAAW,GAAI,OAAQ,EACjD,aAAAC,EAAe,IACf,QAAAC,EAAU,IACV,QAAAC,EAAU,IACV,UAAAC,EAAY,GACZ,YAAAC,EAAc,GACd,SAAAC,EACA,WAAAC,EACA,SAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,OAAAC,EACA,YAAAC,EACA,SAAAC,EACA,MAAAC,GACA,SAAAC,EAAW,GACX,YAAAC,EACA,MAAAC,GACA,aAAAC,EACA,cAAAC,EACA,KAAAC,EACA,YAAAC,EACA,aAAAC,EACA,WAAAC,EACA,aAAAC,EAAe,GACf,MAAAC,CACF,EAAI/B,EACEgC,GAAkBC,GAAoBjC,EAAcF,EAAqB,EACzE,CAAE,YAAAoC,EAAa,eAAAC,CAAe,EAAIC,GAAe,EACjD,CAAE,uBAAAC,EAAuB,EAAIC,GAAgB,EAC7C,CAAE,WAAAC,EAAW,EAAIC,GAAQ,EACzB,CAAE,WAAAC,EAAY,yBAAAC,CAAyB,EAAIC,GAAgB,EAC3D,CAAE,cAAAC,CAAc,EAAIC,GAAe,EACnC,CAAE,cAAAC,EAAe,gBAAAC,CAAgB,EAAIC,GAAS,EAG9C,kBAAgB,IAAM,CAC1B,GAAIjB,EACF,OAAAe,EAAc,SAAS,EAChB,IAAMC,EAAgB,SAAS,CAE1C,EAAG,CAAChB,EAAOe,EAAeC,CAAe,CAAC,EAC1C,IAAME,GAAuBC,GAA0B/C,CAAY,EAC7DgD,EAAYF,KAAyB,UACrCG,GAAYH,KAAyB,UAErCI,GAAiB,SAA8B,IAAI,EACnDC,GAAe,cAClBC,GAAgC,CAC/BF,GAAS,QAAUE,EACf,OAAOtD,GAAQ,WAAYA,EAAIsD,CAAI,EAC9BtD,IAAMA,EAAsD,QAAUsD,EACjF,EACA,CAACtD,CAAG,CACN,EACMuD,GAAmB,WAAS,QAAQrC,CAAQ,EAC5CsC,GAAiBD,GAAW,OAAQE,GAAiC,iBAAeA,CAAE,GAAKA,EAAG,OAASC,EAAa,EACpHC,GAAkBJ,GAAW,OAAQE,GAA2B,EAAQ,iBAAeA,CAAE,GAAKA,EAAG,OAASC,GAAc,EAGxHE,GAA2B,SAA6C,IAAI,EAE5E,YAAU,IACP,IAAM,CACPA,GAAmB,UACrB,aAAaA,GAAmB,OAAO,EACvCA,GAAmB,QAAU,KAEjC,EACC,CAACjC,EAAcC,EAAYC,CAAY,CAAC,EAE3C,IAAMgC,EAAuB,UAAQ,IAAM,CACzC,IAAMC,EAAKnC,EACLoC,GAAWnC,EACXoC,GAAKnC,GAAgB,GAC3B,GAAI,CAACiC,EAAI,MAAO,IAAM,CAAC,EACvB,GAAIC,KAAa,WACf,MAAO,CAACE,EAAWC,IAAuD,CACpEN,GAAmB,SAAS,aAAaA,GAAmB,OAAO,EACvEA,GAAmB,QAAU,WAAW,IAAM,CAC5CE,EAAGG,EAAGC,CAAI,EACVN,GAAmB,QAAU,IAC/B,EAAGI,EAAE,CACP,EAEF,GAAID,KAAa,WAAY,CAC3B,IAAII,EAAO,EACX,MAAO,CAACF,EAAWC,KAAuD,CACxE,IAAME,GAAM,KAAK,IAAI,EACjBA,GAAMD,GAAQH,KAChBG,EAAOC,GACPN,EAAGG,EAAGC,EAAI,EAEd,CACF,CACA,MAAO,CAACD,EAAWC,IAAuDJ,EAAGG,EAAGC,CAAI,CACtF,EAAG,CAACvC,EAAcC,EAAYC,CAAY,CAAC,EAGrCwC,EAAkB,QAAM,EACxB,YAAU,KACd1B,EAAc,EAAI,EACX,IAAM,CACXA,EAAc,EAAK,CACrB,GACC,CAACA,EAAe0B,CAAS,CAAC,EAG7B,IAAMC,EAAyB,SAAuB,IAAI,EAWpD,YAAU,IAAM,CACpB,IAAMC,EAAe,OAAOjD,GAAU,IACtC,GAAIgD,EAAiB,UAAY,KAAM,CACrCA,EAAiB,QAAUC,EAC3B,MACF,CACID,EAAiB,UAAYC,IAC/B,QAAQ,KAAK,wFAAwF,EACrGD,EAAiB,QAAUC,EAE/B,EAAG,CAACjD,EAAK,CAAC,EAGV,IAAMkD,EAAyB,SAAOhD,CAAa,EAC7CiD,GAAiB,SAAOnD,EAAK,EAC7B,kBAAgB,IAAM,CAC1BkD,EAAiB,QAAUhD,EAC3BiD,GAAS,QAAUnD,EACrB,CAAC,EAGD,IAAMoD,GAAoB,OAAOpD,IAAU,UAAYA,KAAU,KAC3D,CAAE,mBAAoBqD,GAA2B,gBAAiBC,EAAuB,EAAIC,GAAuC,CACxI,gBAAiBvD,GACjB,aAAcC,EACd,aAAcU,EACd,SAAUC,EACV,gBAAiBE,GACjB,uBAAwBsC,GACxB,mBAAqBI,GAASN,EAAiB,UAAUM,EAAM,CAAE,OAAQ,YAAa,CAAC,EACvF,OAASC,GAAYP,EAAiB,UAAUO,EAAS,CAAE,OAAQ,MAAO,CAAC,CAC7E,CAAC,EAGKC,GAA0B,SAA2B,IAAI,EACzDC,GAAyC,SAAgC,MAAS,EAClF,YAAU,IAAM,CACpB,IAAMC,EAAUjD,EACVkD,GAAWH,GAAkB,QAE7BI,EADyBH,GAAiC,UACXN,GAEjDQ,KAAa,MAAQA,KAAaD,IAGhC,EAFiB,OAAOT,GAAS,QAAY,MAE3B,CAACW,GAAqBF,IAAYP,KACtDH,EAAiB,UAAUU,EAAS,CAAE,OAAQ,QAAS,CAAC,EAI5DF,GAAkB,QAAUE,EAC5BD,GAAiC,QAAUN,EAC7C,EAAG,CAAC1C,EAAa0C,EAAyB,CAAC,EAM3C,IAAMU,GAAoB,SAAO7E,CAAQ,EACnC8E,GAAsB,SAAO7E,CAAU,EACvC,kBAAgB,IAAM,CAC1B4E,GAAY,QAAU7E,EACtB8E,GAAc,QAAU7E,CAC1B,CAAC,EAED,IAAM8E,GAA2B,SAA2B,IAAI,EAC1DC,GAA0B,SAAO,EAAK,EACtC,YAAU,IAAM,CACpB,IAAMC,EAAcxD,EAGpB,GAAI,CAACG,GAAwB,CAC3BmD,GAAmB,QAAUE,EAC7B,MACF,CAGA,GAAI,CAACD,GAAkB,QAAS,CAC9BA,GAAkB,QAAU,GAC5BD,GAAmB,QAAUE,EAC7B,MACF,CAEA,IAAMN,GAAWI,GAAmB,QAGhCJ,KAAa,MAAQA,KAAaM,IAEhCN,KAAa,aAAeM,IAAgB,YAC9CJ,GAAY,UAAU,EAGfI,IAAgB,aACvBH,GAAc,UAAU,EAE1BC,GAAmB,QAAUE,EAEjC,EAAG,CAACxD,EAAaG,EAAsB,CAAC,EAGxC,IAAMsD,GAAmBzD,IAAgB,YAGnC0D,EAA2B,UAAQ,IAAM,CAC7C,GAAI,CAAC3E,GAAUC,EAAa,OAAOA,EACnC,IAAM2E,EAAM,2BAA2B5E,CAAM,GAyB7C,MAxBqC,CACnC,KAAM,IAAM,CACV,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,IAAM6E,GAAI,OAAO,aAAa,QAAQD,CAAG,EACzC,OAAOC,GAAI,OAAOA,EAAC,EAAI,MACzB,MAAc,CAIZ,MACF,CACF,EACA,KAAOpE,IAAiB,CACtB,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,OAAO,aAAa,QAAQmE,EAAK,OAAOnE,EAAI,CAAC,CAC/C,MAAc,CAId,CACF,CACF,CAEF,EAAG,CAACT,EAAQC,CAAW,CAAC,EAElB,YAAU,IAAM,CACpB,IAAI6E,EAAU,GACd,OAAC,SAAY,CACX,GAAI,CAACxF,GAAa,CAACqF,GAAoB,MAAQzC,EAAW,OAC1D,IAAM6C,GAAS,MAAMJ,EAAmB,KAAK,EACzCG,GAAW,OAAOC,IAAW,UAAY3C,GAAS,UACpDA,GAAS,QAAQ,MAAM,YAAY,iBAAkB,GAAG2C,EAAM,IAAI,EAClErF,IAAWqF,EAAM,EAErB,GAAG,EACI,IAAM,CACXD,EAAU,EACZ,CACF,EAAG,CAACxF,EAAWqF,EAAoBjF,EAAUwC,CAAS,CAAC,EAGvD,IAAM8C,EAAkC,cAAY,IAAmB,CACrE,IAAMC,EAAWrB,KAA2B,OAAOrD,GAAiB,SAAWA,EAAe,SAAc,WAC5G,OAAO0E,IAAa,QAAUA,IAAa,WAAaA,EAAW,UACrE,EAAG,CAACrB,GAAwBrD,CAAY,CAAC,EAEnC,YAAU,IAAM,CACpB,GAAI,CAACkB,EAA0B,OAC/B,IAAMsB,EAA8B1C,GAAe,OAYnD,OAAAoB,EAXiByC,IAAsC,CACrD,GAAInB,IAAa,OACf,OAAImB,KAAY,YAAoB,OAChCA,KAAY,OAAe,WACxB,YAET,IAAMgB,EAASF,EAA0B,EACzC,OAAId,KAAY,YAAoBgB,EAChChB,KAAYgB,EAAe,YACxBA,CACT,CACgC,EACzB,IAAM,CACXzD,IAA4B0D,IAASA,KAAQ,YAAc,OAASA,KAAQ,OAAS,WAAa,WAAY,CAChH,CACF,EAAG,CAAC1D,EAA0BpB,EAAa2E,CAAyB,CAAC,EAErE,IAAMI,EAA4B,SAAejG,CAAY,EACvDkG,EAA2B,SAAoB,UAAU,EACzD,YAAU,IAAM,CAChBpE,IAAgB,cAClBoE,EAAmB,QAAUpE,EAC7BmE,EAAoB,QAAUnE,IAAgB,OAASb,EAAWjB,EAEtE,EAAG,CAAC8B,EAAab,EAAUjB,CAAY,CAAC,EAIxC,IAAMmG,GACJhG,GAAa,CAAC4C,GAAajB,IAAgB,WACzC,gBAACsE,GAAkB,SAAlB,CACC,MAAO,CACL,aAAcnD,GACd,WAAY,iBACZ,QAAAhD,EACA,QAAAC,EACA,YAAaF,EACb,YAAa,WACb,KAAM,MACN,YAAa,CAACqG,EAAQC,GAAaC,KAAc,CAC/C,IAAMC,EAAQ,iBAAiBvD,GAAS,OAAQ,EAAE,YAAc,MAC1DwD,EAAQJ,EAASC,GACvB,OAAOC,IAAaC,EAAQ,CAACC,EAAQA,EACvC,EACA,SAAAlG,EACA,cAAAC,EACA,YAAcc,GAAS,CACrBb,IAAca,CAAI,EAClBoC,EAAepC,EAAM,CAAE,OAAQ,QAAS,CAAC,EACzCkE,GAAoB,OAAOlE,CAAI,CACjC,EACA,OAAQ,UACR,YAAAlB,EACA,WAAAM,EACA,cAAeC,GAAiB,EAChC,kBAAAC,EACA,gBAAiB,IAAMmB,EAAe,WAAW,EACjD,cAAe,IAAMM,EAAW,SAAS,CAC3C,GAECgB,GAAe,OAAS,EAAIA,GAAe,IAAI,CAACC,EAAIoD,KAAY,eAAapD,EAAI,CAAE,IAAKA,EAAG,KAAOoD,EAAE,CAAC,CAAC,EAAI,gBAACC,GAAA,IAAW,CACzH,EACE,KAGAC,GAA0B,cAAaC,GAAuCC,GAAcD,EAAO,YAAY,EAAG,CAAC,CAAC,EAGpH,YAAU,IAAM,CACpB,GAAK5D,GAAS,SACV,OAAO3B,EAAS,KAAe,OAAOC,EAAgB,IAAa,CACrE,IAAMwF,EAAKH,GAAkBrF,CAAW,EACxC,GAAI,OAAOwF,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAGjD,IAAMC,EAAU,KAAK,KADP,OAAO9G,GAAY,SAAWA,EAAU,SACpB6G,EAAI,KAAK,KAF7B,OAAO9G,GAAY,SAAWA,EAAU,SAEE8G,EAAIA,CAAE,CAAC,EAC/D9D,GAAS,QAAQ,MAAM,YAAY,iBAAkB,GAAG+D,CAAO,IAAI,EACnEtD,EAAesD,EAAS,CAAE,OAAQ,MAAO,CAAC,CAC5C,CACF,CAEF,EAAG,CAAC,CAAC,EAGL,IAAMC,GAAiB3F,EACjB,YAAU,IAAM,CAEpB,GADI,CAAC2B,GAAS,SACV,OAAOgE,GAAmB,IAAa,OAC3C,IAAMF,EAAKH,GAAkBK,EAAc,EAC3C,GAAI,OAAOF,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAGjD,IAAMC,EAAU,KAAK,KADP,OAAO9G,GAAY,SAAWA,EAAU,SACpB6G,EAAI,KAAK,KAF7B,OAAO9G,GAAY,SAAWA,EAAU,SAEE8G,EAAIA,CAAE,CAAC,EAC/D9D,GAAS,QAAQ,MAAM,YAAY,iBAAkB,GAAG+D,CAAO,IAAI,EACnEtD,EAAesD,EAAS,CAAE,OAAQ,YAAa,CAAC,CAClD,CACF,EAAG,CAACC,GAAgBhH,EAASC,EAAS0G,GAAmBlD,CAAc,CAAC,EAGxE,IAAMwD,GAAmB,UAAQ,IAAyC,CACxE,GAAI,EAAE/E,KAAe,WAAaL,IAAgB,aAAe,CAACiB,GAChE,OAEF,IAAMa,EAA8B1C,GAAe,OAC7C6D,GAAUjD,EACZ6C,GACJ,GAAIf,IAAa,OACfe,GAAOI,KAAY,YAAc,OAASA,KAAY,OAAS,WAAa,gBACvE,CACL,IAAMgB,EAASF,EAA0B,EACzClB,GAAOI,KAAY,YAAcgB,EAAS,WAC5C,CACA,OAAIpB,KAAS,OACJ,CAAE,uBAAwB,GAAG1D,CAAQ,IAAK,EAE5C,CAAE,uBAAwB,uBAAuBjB,CAAY,KAAM,CAC5E,EAAG,CAACmC,GAAYL,EAAaiB,EAAW7B,EAAa2E,EAA2B5E,EAAUjB,CAAY,CAAC,EAEvG,GAAI+C,EAAW,CACb,IAAMoE,EAAOrF,IAAgB,YAC7B,OACE,gBAAOsF,GAAN,CAAW,KAAMD,EAAM,aAAeE,IAAMtF,EAAesF,GAAI,WAAa,WAAW,GACtF,gBAAOC,GAAN,CACC,KAAK,QACL,MAAO,CAAE,QAAS,CAAE,EACpB,aAAW,aACX,mBAAkB,OAClB,MAAO,CACL,QAAS,GAAGH,EAAQrF,IAAgB,OAASb,EAAWjB,EAAgBiG,EAAoB,OAAO,IACrG,GAEA,gBAACsB,GAAA,KACC,gBAAOC,GAAN,KAAY,YAAU,CACzB,EACChE,EACH,CACF,CAEJ,CACA,OACE,gBAAC,OACE,GAAG5B,GACJ,IAAKsB,GACL,aAAW,GAAAuE,SAAW,kBAAmB3H,CAAS,EAClD,YAAWgC,EACX,YAAWK,KAAe,WAAa,OACvC,oBAAmBF,GAAyBY,GAAuB,OACnE,YAAYZ,IAA0Be,IAAauC,IAAqB,OACxE,aAAY5D,GAAS,OACrB,MAAO,CACL,GAAGX,GACH,iBAAkB,GAAGhB,CAAY,KACjC,sBAAuB,GAAGiB,CAAQ,KAClC,qBAAsB,GAAGhB,CAAO,KAChC,qBAAsB,GAAGC,CAAO,KAChC,GAAGgH,EACL,GAEA,gBAAC,OAAI,UAAU,yBAAyB,eAAc3B,IAAoB,QACvE/B,EACH,EACC2C,EACH,CAEJ,CAAC,EAEDxG,GAAQ,YAAc,gBACtBA,GAAQ,OAAS4D,GExfjB,IAAAmE,EAAuB,qBACvBC,GAAuB,0BA8BvB,IAAMC,GAAuB,CAC3B,YACA,WACA,cACA,OACA,eACA,OACA,cACA,eACA,aACA,eACA,QACA,OACF,EAEaC,GAAe,aAA8C,CAACC,EAAcC,IAAQ,CAC/F,GAAM,CACJ,UAAAC,EACA,aAAAC,EAAe,QACf,YAAAC,EACA,KAAAC,EACA,aAAAC,EACA,aAAAC,EAAe,IACf,QAAAC,EAAU,IACV,QAAAC,EAAU,IACV,UAAAC,EAAY,GACZ,YAAAC,EAAc,GACd,SAAAC,EACA,WAAAC,EACA,SAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,OAAAC,GACA,YAAAC,EACA,SAAAC,EACA,MAAAC,GACA,KAAAC,EACA,YAAAC,EACA,aAAAC,EACA,WAAAC,EACA,aAAAC,EAAe,GACf,MAAAC,CACF,EAAI7B,EACE8B,EAAiBC,GAAoB/B,EAAcF,EAAoB,EACvE,CAAE,WAAAkC,EAAY,cAAAC,EAAc,EAAIC,GAAc,EAC9C,CAAE,uBAAAC,CAAuB,EAAIC,GAAgB,EAC7C,CAAE,WAAAC,CAAW,EAAIC,GAAQ,EACzB,CAAE,WAAAC,EAAW,EAAIC,GAAgB,EACjC,CAAE,cAAAC,GAAe,gBAAAC,CAAgB,EAAIC,GAAS,EAG9C,kBAAgB,IAAM,CAC1B,GAAId,EACF,OAAAY,GAAc,QAAQ,EACf,IAAMC,EAAgB,QAAQ,CAEzC,EAAG,CAACb,EAAOY,GAAeC,CAAe,CAAC,EAC1C,IAAME,EAAuBC,GAA0B1C,CAAY,EAC7D2C,EAAYF,IAAyB,UACrCG,EAAYH,IAAyB,UACrCI,EAAiB,SAA8B,IAAI,EACnDC,GAAe,cAClBC,GAAgC,CAC/BF,EAAS,QAAUE,EACf,OAAOjD,GAAQ,WAAYA,EAAIiD,CAAI,EAC9BjD,IAAMA,EAAsD,QAAUiD,EACjF,EACA,CAACjD,CAAG,CACN,EACMkD,EAAmB,WAAS,QAAQ7B,CAAQ,EAC5C8B,GAAiBD,EAAW,OAAQE,GAAiC,iBAAeA,CAAE,GAAKA,EAAG,OAASC,EAAY,EACnHC,GAAkBJ,EAAW,OAAQE,GAA2B,EAAQ,iBAAeA,CAAE,GAAKA,EAAG,OAASC,GAAa,EAGvHE,GAAwB,SAAOlD,CAAY,EAC3CmD,GAAgB,SAAOpD,CAAI,EAC3B,kBAAgB,IAAM,CAC1BmD,GAAgB,QAAUlD,EAC1BmD,GAAQ,QAAUpD,CACpB,CAAC,EAED,IAAMqD,GAAiC,UAAQ,IAAMC,GAA+BtD,CAAI,EAAG,CAACA,CAAI,CAAC,EAC3FuD,GAA8B,UAAQ,IAAMD,GAA+BvD,CAAW,EAAG,CAACA,CAAW,CAAC,EACtGyD,GAAmB,OAAOxD,GAAS,UAAYA,IAAS,KACxD,CAAE,mBAAoByD,CAAyB,EAAIC,GAAoC,CAC3F,gBAAiBL,GACjB,aAAcE,GACd,aAAc5B,EACd,SAAUC,GACV,gBAAiBE,EACjB,uBAAwB0B,GACxB,mBAAqBG,GAASR,GAAgB,UAAUQ,IAAS,WAAY,CAAE,OAAQ,YAAa,CAAC,EACrG,OAASC,GAAY,CACf,OAAOR,GAAQ,QAAY,KAC7BD,GAAgB,UAAUS,IAAY,WAAY,CAAE,OAAQ,MAAO,CAAC,CAExE,CACF,CAAC,EAGKC,EAA2B,SAA6C,IAAI,EAE5E,YAAU,IACP,IAAM,CACPA,EAAmB,UACrB,aAAaA,EAAmB,OAAO,EACvCA,EAAmB,QAAU,KAEjC,EACC,CAACxC,EAAcC,EAAYC,CAAY,CAAC,EAE3C,IAAMuC,EAAuB,UAAQ,IAAM,CACzC,IAAMC,EAAK1C,EACL2C,EAAW1C,EACX2C,EAAK1C,GAAgB,GAC3B,GAAI,CAACwC,EAAI,MAAO,IAAM,CAAC,EACvB,GAAIC,IAAa,WACf,MAAO,CAACE,EAAWC,KAA+B,CAC5CN,EAAmB,SAAS,aAAaA,EAAmB,OAAO,EACvEA,EAAmB,QAAU,WAAW,IAAM,CAC5CE,EAAGG,EAAGC,EAAI,EACVN,EAAmB,QAAU,IAC/B,EAAGI,CAAE,CACP,EAEF,GAAID,IAAa,WAAY,CAC3B,IAAII,EAAO,EACX,MAAO,CAACF,GAAWC,KAA+B,CAChD,IAAME,GAAM,KAAK,IAAI,EACjBA,GAAMD,GAAQH,IAChBG,EAAOC,GACPN,EAAGG,GAAGC,EAAI,EAEd,CACF,CACA,MAAO,CAACD,EAAWC,KAA+BJ,EAAGG,EAAGC,EAAI,CAC9D,EAAG,CAAC9C,EAAcC,EAAYC,CAAY,CAAC,EAGrC+C,EAAyB,SAAuB,IAAI,EAUpD,YAAU,IAAM,CACpB,IAAMC,EAAe,OAAOvE,EAAS,IACrC,GAAIsE,EAAiB,UAAY,KAAM,CACrCA,EAAiB,QAAUC,EAC3B,MACF,CACID,EAAiB,UAAYC,IAC/B,QAAQ,KAAK,sFAAsF,EACnGD,EAAiB,QAAUC,EAE/B,EAAG,CAACvE,CAAI,CAAC,EAGT,IAAMwE,GAA0B,SAAwB,IAAI,EACtDC,GAAwC,SAA6B,MAAS,EAC9E,YAAU,IAAM,CACpB,IAAMC,EAAWF,GAAkB,QAE7BG,EADyBF,GAAgC,UACVhB,EAErD,GAAIiB,IAAa,MAAQA,IAAa/C,EAAY,CAChD,IAAMiD,EAAWjD,IAAe,YAI5B,EAHiB,OAAOyB,GAAQ,QAAY,MAG1B,CAACuB,GAAqBC,KAFnBnB,IAA6B,OAAY,OAAYA,IAA6B,cAGzGN,GAAgB,UAAUyB,EAAU,CAAE,OAAQ,QAAS,CAAC,CAE5D,CAEAJ,GAAkB,QAAU7C,EAC5B8C,GAAgC,QAAUhB,CAC5C,EAAG,CAAC9B,EAAY8B,CAAwB,CAAC,EAMzC,IAAMoB,GAAoB,SAAOtE,CAAQ,EACnCuE,GAAsB,SAAOtE,CAAU,EACvC,kBAAgB,IAAM,CAC1BqE,GAAY,QAAUtE,EACtBuE,GAAc,QAAUtE,CAC1B,CAAC,EAED,IAAMuE,GAA0B,SAAwB,IAAI,EACtDC,GAA0B,SAAO,EAAK,EACtC,YAAU,IAAM,CACpB,IAAMC,EAActD,EAGpB,GAAI,CAACG,EAAwB,CAC3BiD,GAAkB,QAAUE,EAC5B,MACF,CAGA,GAAI,CAACD,GAAkB,QAAS,CAC9BA,GAAkB,QAAU,GAC5BD,GAAkB,QAAUE,EAC5B,MACF,CAEA,IAAMP,EAAWK,GAAkB,QAG/BL,IAAa,MAAQA,IAAaO,IAChCA,IAAgB,WAClBJ,GAAY,UAAU,EACbI,IAAgB,aACzBH,GAAc,UAAU,EAE1BC,GAAkB,QAAUE,EAEhC,EAAG,CAACtD,EAAYG,CAAsB,CAAC,EAEvC,IAAMoD,GAAavD,IAAe,WAE5BwD,GAA2B,UAAQ,IAAM,CAC7C,GAAI,CAACpE,IAAUC,EAAa,OAAOA,EACnC,IAAMoE,EAAM,0BAA0BrE,EAAM,GAyB5C,MAxBqC,CACnC,KAAM,IAAM,CACV,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,IAAMsE,EAAI,OAAO,aAAa,QAAQD,CAAG,EACzC,OAAOC,EAAI,OAAOA,CAAC,EAAI,MACzB,MAAc,CAIZ,MACF,CACF,EACA,KAAOlE,GAAiB,CACtB,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,OAAO,aAAa,QAAQiE,EAAK,OAAOjE,CAAI,CAAC,CAC/C,MAAc,CAId,CACF,CACF,CAEF,EAAG,CAACJ,GAAQC,CAAW,CAAC,EAElB,YAAU,IAAM,CACpB,IAAIsE,EAAU,GACd,GAAI,CAACjF,GAAa,CAAC8E,IAAoB,MAAQ1C,EAAW,OAC1D,IAAM8C,EAASJ,GAAmB,KAAK,EACjCK,EAAeC,GAAmB,CAClC,CAACH,GAAW,OAAOG,GAAU,UAAY,CAAC9C,EAAS,UACvDA,EAAS,QAAQ,MAAM,YAAY,gBAAiB,GAAG8C,CAAK,IAAI,EAChEhF,IAAWgF,CAAK,EAClB,EACA,OAAIF,aAAkB,QACpBA,EAAO,KAAKC,CAAW,EAAE,MAAOE,GAAQ,CAIxC,CAAC,EAEDF,EAAYD,CAAM,EAEb,IAAM,CACXD,EAAU,EACZ,CACF,EAAG,CAACjF,EAAW8E,GAAoB1E,EAAUgC,CAAS,CAAC,EAEvD,IAAMkD,GACJtF,GAAa,CAACoC,GAAayC,GACzB,gBAACU,GAAkB,SAAlB,CACC,MAAO,CACL,aAAcjD,EACd,WAAY,gBACZ,QAAAxC,EACA,QAAAC,EACA,YAAaF,EACb,YAAa,aACb,KAAM,QACN,YAAa,CAAC2F,EAAQC,EAAaC,IAAc,CAC/C,IAAMC,EAAQH,EAASC,EACvB,OAAOC,EAAYC,CACrB,EACA,SAAAvF,EACA,cAAAC,EACA,YAAcS,GAAS,CACrBR,IAAcQ,CAAI,EAClB2C,EAAe3C,EAAM,CAAE,OAAQ,QAAS,CAAC,EACzCgE,IAAoB,OAAOhE,CAAI,CACjC,EACA,OAAQ,SACR,YAAAb,EACA,WAAAM,EACA,cAAeC,GAAiB,EAChC,kBAAAC,EACA,gBAAiB,IAAMc,GAAc,WAAW,EAChD,cAAe,IAAMM,GAAW,QAAQ,CAC1C,GAECa,GAAe,OAAS,EAAIA,GAAe,IAAI,CAACC,EAAIiD,IAAY,eAAajD,EAAI,CAAE,IAAKA,EAAG,KAAOiD,CAAE,CAAC,CAAC,EAAI,gBAACC,GAAA,IAAW,CACzH,EACE,KAIAC,GAA0B,cAAaV,GAAuCW,GAAcX,EAAO,UAAU,EAAG,CAAC,CAAC,EAGlH,YAAU,IAAM,CACpB,GAAK9C,EAAS,SACV,OAAOxB,EAAS,KAAe,OAAOC,EAAgB,IAAa,CACrE,IAAMiF,EAAKF,GAAkB/E,CAAW,EACxC,GAAI,OAAOiF,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAGjD,IAAMC,EAAU,KAAK,KADP,OAAOlG,GAAY,SAAWA,EAAU,SACpBiG,EAAI,KAAK,KAF7B,OAAOlG,GAAY,SAAWA,EAAU,SAEEkG,EAAIA,CAAE,CAAC,EAC/D1D,EAAS,QAAQ,MAAM,YAAY,gBAAiB,GAAG2D,CAAO,IAAI,EAClExC,EAAewC,EAAS,CAAE,OAAQ,MAAO,CAAC,CAC5C,CACF,CAEF,EAAG,CAAC,CAAC,EAGL,IAAMC,GAAiBpF,EAcvB,OAbM,YAAU,IAAM,CAEpB,GADI,CAACwB,EAAS,SACV,OAAO4D,GAAmB,IAAa,OAC3C,IAAMF,EAAKF,GAAkBI,EAAc,EAC3C,GAAI,OAAOF,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAGjD,IAAMC,EAAU,KAAK,KADP,OAAOlG,GAAY,SAAWA,EAAU,SACpBiG,EAAI,KAAK,KAF7B,OAAOlG,GAAY,SAAWA,EAAU,SAEEkG,EAAIA,CAAE,CAAC,EAC/D1D,EAAS,QAAQ,MAAM,YAAY,gBAAiB,GAAG2D,CAAO,IAAI,EAClExC,EAAewC,EAAS,CAAE,OAAQ,YAAa,CAAC,CAClD,CACF,EAAG,CAACC,GAAgBpG,EAASC,EAAS+F,GAAmBrC,CAAc,CAAC,EAEpErB,EAGA,gBAAO+D,GAAN,CAAW,KAFD7E,IAAe,WAEF,aAAe8E,GAAM7E,GAAc6E,EAAI,WAAa,WAAW,GACrF,gBAAOC,GAAN,CAAc,KAAK,SAAS,MAAO,CAAE,QAAS,CAAE,EAAG,aAAW,eAAe,mBAAkB,OAAW,OAAQ,CAAE,QAAS,GAAGxG,CAAY,IAAK,GAChJ,gBAACyG,GAAA,KACC,gBAAOC,GAAN,KAAY,cAAY,CAC3B,EACC1D,EACH,CACF,EAKF,gBAAC,OACE,GAAGzB,EACJ,IAAKmB,GACL,aAAW,GAAAiE,SAAW,iBAAkBhH,CAAS,EACjD,YAAW8B,EACX,YAAWK,IAAe,UAAY,OACtC,oBAAmBF,EAAyBS,EAAuB,OACnE,YAAYT,GAA0BY,GAAawC,IAAe,OAClE,aAAY1D,GAAS,OACrB,MAAO,CACL,GAAGN,GACH,gBAAiB,GAAGhB,CAAY,KAChC,oBAAqB,GAAGC,CAAO,KAC/B,oBAAqB,GAAGC,CAAO,IACjC,GAEA,gBAAC,OAAI,UAAU,wBAAwB,eAAc8E,IAAc,QAChEhC,EACH,EACCyC,EACH,CAEJ,CAAC,EACDjG,GAAO,YAAc,eACrBA,GAAO,OAASuD,GCvahB,IAAA6D,EAAuB,qBACvBC,GAAuB,0BA8BvB,IAAMC,GAA0B,CAC9B,YACA,WACA,cACA,OACA,eACA,OACA,cACA,eACA,aACA,eACA,QACA,OACF,EAEaC,GAAkB,aAAiD,CAACC,EAAcC,IAAQ,CACrG,GAAM,CACJ,UAAAC,EACA,aAAAC,EAAe,CAAE,QAAS,UAAW,GAAI,OAAQ,EACjD,YAAAC,EACA,KAAAC,EACA,aAAAC,EACA,aAAAC,EAAe,IACf,QAAAC,EAAU,IACV,QAAAC,EAAU,IACV,UAAAC,EAAY,GACZ,YAAAC,EAAc,GACd,SAAAC,EACA,WAAAC,EACA,SAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,OAAAC,GACA,YAAAC,EACA,SAAAC,EACA,MAAAC,GACA,aAAAC,EACA,WAAAC,EACA,aAAAC,EAAe,GACf,KAAAC,EACA,YAAAC,EACA,MAAAC,CACF,EAAI7B,EACE8B,EAAoBC,GAAoB/B,EAAcF,EAAuB,EAC7E,CAAE,cAAAkC,EAAe,iBAAAC,EAAiB,EAAIC,GAAiB,EACvD,CAAE,uBAAAC,CAAuB,EAAIC,GAAgB,EAC7C,CAAE,WAAAC,CAAW,EAAIC,GAAQ,EACzB,CAAE,WAAAC,EAAW,EAAIC,GAAgB,EACjC,CAAE,cAAAC,GAAe,gBAAAC,CAAgB,EAAIC,GAAS,EAG9C,kBAAgB,IAAM,CAC1B,GAAId,EACF,OAAAY,GAAc,WAAW,EAClB,IAAMC,EAAgB,WAAW,CAE5C,EAAG,CAACb,EAAOY,GAAeC,CAAe,CAAC,EAC1C,IAAME,EAAuBC,GAA0B1C,CAAY,EAC7D2C,EAAYF,IAAyB,UACrCG,EAAYH,IAAyB,UACrCI,EAAiB,SAA8B,IAAI,EACnDC,GAAe,cAClBC,GAAgC,CAC/BF,EAAS,QAAUE,EACf,OAAOjD,GAAQ,WAAYA,EAAIiD,CAAI,EAC9BjD,IAAMA,EAAsD,QAAUiD,EACjF,EACA,CAACjD,CAAG,CACN,EACMkD,EAAmB,WAAS,QAAQ7B,CAAQ,EAC5C8B,GAAiBD,EAAW,OAAQE,GAAiC,iBAAeA,CAAE,GAAKA,EAAG,OAASC,EAAe,EACtHC,GAAkBJ,EAAW,OAAQE,GAA2B,EAAQ,iBAAeA,CAAE,GAAKA,EAAG,OAASC,GAAgB,EAG1HE,GAAwB,SAAOlD,CAAY,EAC3CmD,GAAgB,SAAOpD,CAAI,EAC3B,kBAAgB,IAAM,CAC1BmD,GAAgB,QAAUlD,EAC1BmD,GAAQ,QAAUpD,CACpB,CAAC,EAED,IAAMqD,GAAiC,UAAQ,IAAMC,GAA+BtD,CAAI,EAAG,CAACA,CAAI,CAAC,EAC3FuD,GAA8B,UAAQ,IAAMD,GAA+BvD,CAAW,EAAG,CAACA,CAAW,CAAC,EACtGyD,GAAmB,OAAOxD,GAAS,UAAYA,IAAS,KACxD,CAAE,mBAAoByD,CAA4B,EAAIC,GAAoC,CAC9F,gBAAiBL,GACjB,aAAcE,GACd,aAAc5B,EACd,SAAUC,GACV,gBAAiBE,EACjB,uBAAwB0B,GACxB,mBAAqBG,GAASR,GAAgB,UAAUQ,IAAS,WAAY,CAAE,OAAQ,YAAa,CAAC,EACrG,OAASC,GAAY,CACf,OAAOR,GAAQ,QAAY,KAC7BD,GAAgB,UAAUS,IAAY,WAAY,CAAE,OAAQ,MAAO,CAAC,CAExE,CACF,CAAC,EAGKC,EAA2B,SAA6C,IAAI,EAE5E,YAAU,IACP,IAAM,CACPA,EAAmB,UACrB,aAAaA,EAAmB,OAAO,EACvCA,EAAmB,QAAU,KAEjC,EACC,CAAC1C,EAAcC,EAAYC,CAAY,CAAC,EAE3C,IAAMyC,EAAuB,UAAQ,IAAM,CACzC,IAAMC,EAAK5C,EACL6C,EAAW5C,EACX6C,EAAK5C,GAAgB,GAC3B,GAAI,CAAC0C,EAAI,MAAO,IAAM,CAAC,EACvB,GAAIC,IAAa,WACf,MAAO,CAACE,EAAWC,KAAkC,CAC/CN,EAAmB,SAAS,aAAaA,EAAmB,OAAO,EACvEA,EAAmB,QAAU,WAAW,IAAM,CAC5CE,EAAGG,EAAGC,EAAI,EACVN,EAAmB,QAAU,IAC/B,EAAGI,CAAE,CACP,EAEF,GAAID,IAAa,WAAY,CAC3B,IAAII,EAAO,EACX,MAAO,CAACF,GAAWC,KAAkC,CACnD,IAAME,GAAM,KAAK,IAAI,EACjBA,GAAMD,GAAQH,IAChBG,EAAOC,GACPN,EAAGG,GAAGC,EAAI,EAEd,CACF,CACA,MAAO,CAACD,EAAWC,KAAkCJ,EAAGG,EAAGC,EAAI,CACjE,EAAG,CAAChD,EAAcC,EAAYC,CAAY,CAAC,EAGrCiD,EAAyB,SAAuB,IAAI,EAQpD,YAAU,IAAM,CACpB,IAAMC,EAAe,OAAOvE,EAAS,IACrC,GAAIsE,EAAiB,UAAY,KAAM,CACrCA,EAAiB,QAAUC,EAC3B,MACF,CACID,EAAiB,UAAYC,IAC/B,QAAQ,KAAK,yFAAyF,EACtGD,EAAiB,QAAUC,EAE/B,EAAG,CAACvE,CAAI,CAAC,EAGT,IAAMwE,GAA6B,SAAwB,IAAI,EACzDC,GAA2C,SAA6B,MAAS,EACjF,YAAU,IAAM,CACpB,IAAMC,EAAoBF,GAAqB,QAEzCG,EADyBF,GAAmC,UACbhB,EAErD,GAAIiB,IAAsB,MAAQA,IAAsB/C,EAAe,CACrE,IAAMiD,EAAWjD,IAAkB,YAI/B,EAHiB,OAAOyB,GAAQ,QAAY,MAG1B,CAACuB,GAAqBC,KAFnBnB,IAAgC,OAAY,OAAYA,IAAgC,cAG/GN,GAAgB,UAAUyB,EAAU,CAAE,OAAQ,QAAS,CAAC,CAE5D,CAEAJ,GAAqB,QAAU7C,EAC/B8C,GAAmC,QAAUhB,CAC/C,EAAG,CAAC9B,EAAe8B,CAA2B,CAAC,EAM/C,IAAMoB,GAAoB,SAAOtE,CAAQ,EACnCuE,GAAsB,SAAOtE,CAAU,EACvC,kBAAgB,IAAM,CAC1BqE,GAAY,QAAUtE,EACtBuE,GAAc,QAAUtE,CAC1B,CAAC,EAED,IAAMuE,GAA6B,SAAwB,IAAI,EACzDC,GAA0B,SAAO,EAAK,EACtC,YAAU,IAAM,CACpB,IAAMC,EAActD,EAGpB,GAAI,CAACG,EAAwB,CAC3BiD,GAAqB,QAAUE,EAC/B,MACF,CAGA,GAAI,CAACD,GAAkB,QAAS,CAC9BA,GAAkB,QAAU,GAC5BD,GAAqB,QAAUE,EAC/B,MACF,CAEA,IAAMC,EAAWH,GAAqB,QAGlCG,IAAa,MAAQA,IAAaD,IAChCA,IAAgB,WAClBJ,GAAY,UAAU,EACbI,IAAgB,aACzBH,GAAc,UAAU,EAE1BC,GAAqB,QAAUE,EAEnC,EAAG,CAACtD,EAAeG,CAAsB,CAAC,EAE1C,IAAMqD,GAAaxD,IAAkB,WAE/ByD,GAA2B,UAAQ,IAAM,CAC7C,GAAI,CAACrE,IAAUC,EAAa,OAAOA,EACnC,IAAMqE,EAAM,6BAA6BtE,EAAM,GAyB/C,MAxBqC,CACnC,KAAM,IAAM,CACV,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,IAAMuE,EAAI,OAAO,aAAa,QAAQD,CAAG,EACzC,OAAOC,EAAI,OAAOA,CAAC,EAAI,MACzB,MAAc,CAIZ,MACF,CACF,EACA,KAAOhE,GAAiB,CACtB,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,OAAO,aAAa,QAAQ+D,EAAK,OAAO/D,CAAI,CAAC,CAC/C,MAAc,CAId,CACF,CACF,CAEF,EAAG,CAACP,GAAQC,CAAW,CAAC,EAElB,YAAU,IAAM,CACpB,IAAIuE,EAAU,GACd,GAAI,CAAClF,GAAa,CAAC+E,IAAoB,MAAQ3C,EAAW,OAC1D,IAAM+C,EAASJ,GAAmB,KAAK,EACjCK,EAAeC,GAAmB,CAClC,CAACH,GAAW,OAAOG,GAAU,UAAY,CAAC/C,EAAS,UACvDA,EAAS,QAAQ,MAAM,YAAY,mBAAoB,GAAG+C,CAAK,IAAI,EACnEjF,IAAWiF,CAAK,EAClB,EACA,OAAIF,aAAkB,QACpBA,EAAO,KAAKC,CAAW,EAAE,MAAOE,GAAQ,CAIxC,CAAC,EAEDF,EAAYD,CAAM,EAEb,IAAM,CACXD,EAAU,EACZ,CACF,EAAG,CAAClF,EAAW+E,GAAoB3E,EAAUgC,CAAS,CAAC,EAEvD,IAAMmD,GACJvF,GAAa,CAACoC,GAAa0C,GACzB,gBAACU,GAAkB,SAAlB,CACC,MAAO,CACL,aAAclD,EACd,WAAY,mBACZ,QAAAxC,EACA,QAAAC,EACA,YAAaF,EACb,YAAa,WACb,KAAM,QACN,YAAa,CAAC4F,EAAQC,EAAaC,IAAc,CAC/C,IAAMC,EAAQ,iBAAiBtD,EAAS,OAAQ,EAAE,YAAc,MAC1DuD,GAAQJ,EAASC,EACvB,OAAOC,GAAaC,EAAQC,GAAQ,CAACA,GACvC,EACA,SAAAzF,EACA,cAAAC,EACA,YAAcY,GAAS,CACrBX,IAAcW,CAAI,EAClBwC,EAAexC,EAAM,CAAE,OAAQ,QAAS,CAAC,EACzC8D,IAAoB,OAAO9D,CAAI,CACjC,EACA,OAAQ,YACR,YAAAhB,EACA,WAAAM,EACA,cAAeC,GAAiB,EAChC,kBAAAC,EACA,gBAAiB,IAAMc,GAAiB,WAAW,EACnD,cAAe,IAAMM,GAAW,WAAW,CAC7C,GAECa,GAAe,OAAS,EAAIA,GAAe,IAAI,CAACC,EAAImD,IAAY,eAAanD,EAAI,CAAE,IAAKA,EAAG,KAAOmD,CAAE,CAAC,CAAC,EAAI,gBAACC,GAAA,IAAW,CACzH,EACE,KAGAC,GAA0B,cAAaX,GAAuCY,GAAcZ,EAAO,YAAY,EAAG,CAAC,CAAC,EAGpH,YAAU,IAAM,CACpB,GAAK/C,EAAS,SACV,OAAOrB,EAAS,KAAe,OAAOC,EAAgB,IAAa,CACrE,IAAMgF,EAAKF,GAAkB9E,CAAW,EACxC,GAAI,OAAOgF,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAGjD,IAAMC,EAAU,KAAK,KADP,OAAOpG,GAAY,SAAWA,EAAU,SACpBmG,EAAI,KAAK,KAF7B,OAAOpG,GAAY,SAAWA,EAAU,SAEEoG,EAAIA,CAAE,CAAC,EAC/D5D,EAAS,QAAQ,MAAM,YAAY,mBAAoB,GAAG6D,CAAO,IAAI,EACrE1C,EAAe0C,EAAS,CAAE,OAAQ,MAAO,CAAC,CAC5C,CACF,CAEF,EAAG,CAAC,CAAC,EAGL,IAAMC,GAAiBnF,EAcvB,OAbM,YAAU,IAAM,CAEpB,GADI,CAACqB,EAAS,SACV,OAAO8D,GAAmB,IAAa,OAC3C,IAAMF,EAAKF,GAAkBI,EAAc,EAC3C,GAAI,OAAOF,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAGjD,IAAMC,EAAU,KAAK,KADP,OAAOpG,GAAY,SAAWA,EAAU,SACpBmG,EAAI,KAAK,KAF7B,OAAOpG,GAAY,SAAWA,EAAU,SAEEoG,EAAIA,CAAE,CAAC,EAC/D5D,EAAS,QAAQ,MAAM,YAAY,mBAAoB,GAAG6D,CAAO,IAAI,EACrE1C,EAAe0C,EAAS,CAAE,OAAQ,YAAa,CAAC,CAClD,CACF,EAAG,CAACC,GAAgBtG,EAASC,EAASiG,GAAmBvC,CAAc,CAAC,EAEpErB,EAGA,gBAAOiE,GAAN,CAAW,KAFD/E,IAAkB,WAEL,aAAegF,GAAM/E,GAAiB+E,EAAI,WAAa,WAAW,GACxF,gBAAOC,GAAN,CAAc,KAAK,MAAM,MAAO,CAAE,QAAS,CAAE,EAAG,aAAW,YAAY,mBAAkB,OAAW,MAAO,CAAE,QAAS,GAAG1G,CAAY,IAAK,GACzI,gBAAC2G,GAAA,KACC,gBAAOC,GAAN,KAAY,WAAS,CACxB,EACC5D,EACH,CACF,EAMF,gBAAC,OACE,GAAGzB,EACJ,IAAKmB,GACL,aAAW,GAAAmE,SAAW,oBAAqBlH,CAAS,EACpD,YAAW8B,EACX,YAAWK,IAAe,aAAe,OACzC,oBAAmBF,EAAyBS,EAAuB,OACnE,YAAYT,GAA0BY,GAAayC,IAAe,OAClE,aAAY3D,GAAS,OACrB,MAAO,CACL,GAAGN,GACH,mBAAoB,GAAGhB,CAAY,KACnC,uBAAwB,GAAGC,CAAO,KAClC,uBAAwB,GAAGC,CAAO,IACpC,GAEA,gBAAC,OAAI,UAAU,2BAA2B,eAAc+E,IAAc,QACnEjC,EACH,EACC0C,EACH,CAEJ,CAAC,EAEDlG,GAAU,YAAc,kBACxBA,GAAU,OAASuD,GCranB,IAAA+D,GAAuB,qBAQhB,SAASC,IAA4D,CAC1E,GAAM,CAACC,EAAWC,CAAY,EAAU,YAAqB,SAAS,EAChE,CAACC,EAAOC,CAAQ,EAAU,YAAS,EAAK,EAE9C,OAAM,aAAU,IAAM,CACpB,GAAI,OAAO,OAAW,IAAa,OAGnC,IAAMC,EADU,OAAO,QAAQC,EAAY,EACtB,IAAI,CAAC,CAACC,EAAGC,CAAC,IAAM,CAACD,EAAG,OAAO,WAAWC,CAAC,CAAC,CAAU,EAGjEC,EAAWC,GAA6B,CAE5C,IAAMC,EAAUN,EAAK,OAAO,CAAC,CAAC,CAAEO,CAAC,IAAMA,EAAE,OAAO,EAAE,IAAI,CAAC,CAACL,CAAC,IAAMA,CAAC,EAC1DM,EAAQF,EAAQA,EAAQ,OAAS,CAAC,GAAgC,UACxET,EAAaW,CAAI,EACjBT,EAAS,EAAI,CACf,EAEAK,EAAQ,EACR,IAAMK,EAA8B,CAAC,EACrC,OAAAT,EAAK,QAAQ,CAAC,CAAC,CAAEO,CAAC,IAAM,CACtB,IAAMG,EAAKH,EAMP,OAAOG,EAAG,kBAAqB,YAAc,OAAOA,EAAG,qBAAwB,YACjFA,EAAG,iBAAiB,SAAUN,CAAO,EACrCK,EAAS,KAAK,IAAMC,EAAG,sBAAsB,SAAUN,CAAO,CAAC,GACtD,OAAOM,EAAG,aAAgB,YAAc,OAAOA,EAAG,gBAAmB,aAC9EA,EAAG,YAAYN,CAAO,EACtBK,EAAS,KAAK,IAAMC,EAAG,iBAAiBN,CAAO,CAAC,EAEpD,CAAC,EAEM,IAAM,CACXK,EAAS,QAASE,GAAO,CACvB,GAAI,CACFA,EAAG,CACL,MAAY,CAKZ,CACF,CAAC,CACH,CACF,EAAG,CAAC,CAAC,EAEE,CAAE,WAAYf,EAAW,MAAAE,CAAM,CACxC,C1CwCA,IAAMc,GAAa,OAAO,aAAa,EAEvC,SAASC,GAAoDC,EAAcC,EAAiB,CAC1F,OAACD,EAAkBF,EAAU,EAAIG,EAC1BD,CACT,CAMA,IAAME,GAAuB,CAACC,EAAwBC,IAC9C,iBAAeD,CAAE,IAAMA,EAAG,OAASC,GAASD,EAAW,MAAM,cAAgBC,EAAK,aAG1FL,GAAgBM,GAAgB,eAAe,EAC/CN,GAAgBO,GAAkB,iBAAiB,EACnDP,GAAgBQ,GAAe,cAAc,EAE7C,SAASC,GAAYC,EAAkBC,EAA+B,CACpE,OAAQA,EAAO,KAAM,CACnB,IAAK,gBACH,OAAIA,EAAO,OAAS,YACdD,EAAM,WAAa,aAAeA,EAAM,YAAc,YAAoBA,EACvE,CAAE,GAAGA,EAAO,SAAU,YAAa,UAAW,WAAY,EAE/DA,EAAM,WAAaC,EAAO,KAAaD,EACpC,CAAE,GAAGA,EAAO,SAAUC,EAAO,IAAK,EAE3C,IAAK,iBACH,OAAIA,EAAO,OAAS,YAAcD,EAAM,WAAa,WAC5C,CAAE,GAAGA,EAAO,SAAU,WAAY,UAAW,UAAW,EAE7DA,EAAM,YAAcC,EAAO,KAAaD,EACrC,CAAE,GAAGA,EAAO,UAAWC,EAAO,IAAK,EAE5C,IAAK,mBACH,OAAID,EAAM,cAAgBC,EAAO,KAAaD,EACvC,CAAE,GAAGA,EAAO,YAAaC,EAAO,IAAK,EAC9C,IAAK,qBACH,OAAID,EAAM,gBAAkBC,EAAO,KAAaD,EACzC,CAAE,GAAGA,EAAO,cAAeC,EAAO,IAAK,EAChD,IAAK,kBACH,OAAID,EAAM,aAAeC,EAAO,KAAaD,EACtC,CAAE,GAAGA,EAAO,WAAYC,EAAO,IAAK,EAC7C,IAAK,cACH,OAAQA,EAAO,OAAQ,CACrB,IAAK,OACL,IAAK,OACH,MAAO,CAAE,GAAGD,EAAO,SAAUA,EAAM,WAAa,WAAa,YAAc,WAAY,UAAWA,EAAM,WAAa,WAAa,YAAcA,EAAM,SAAU,EAClK,IAAK,QACH,OAAIA,EAAM,WAAa,YACd,CAAE,GAAGA,EAAO,SAAU,WAAY,UAAW,UAAW,EAE1D,CAAE,GAAGA,EAAO,UAAWA,EAAM,YAAc,WAAa,YAAc,UAAW,EAE1F,IAAK,UAAW,CACd,IAAME,EAAoBF,EAAM,cAAgB,YAAc,WAAaA,EAAM,cAAgB,WAAa,YAAc,WAC5H,MAAO,CAAE,GAAGA,EAAO,YAAaE,CAAK,CACvC,CACA,IAAK,YACH,MAAO,CAAE,GAAGF,EAAO,cAAeA,EAAM,gBAAkB,WAAa,YAAc,UAAW,EAClG,IAAK,SACH,MAAO,CAAE,GAAGA,EAAO,WAAYA,EAAM,aAAe,WAAa,YAAc,UAAW,EAC5F,QACE,OAAOA,CACX,CAEF,IAAK,cACH,OAAQC,EAAO,OAAQ,CACrB,IAAK,OACL,IAAK,OACH,OAAID,EAAM,WAAa,WAAmBA,EACnC,CAAE,GAAGA,EAAO,SAAU,UAAW,EAC1C,IAAK,QACH,OAAIA,EAAM,WAAa,YAAcA,EAAM,YAAc,WAAmBA,EACrE,CAAE,GAAGA,EAAO,SAAU,WAAY,UAAW,UAAW,EACjE,IAAK,UACH,OAAIA,EAAM,cAAgB,WAAmBA,EACtC,CAAE,GAAGA,EAAO,YAAa,UAAW,EAC7C,IAAK,YACH,OAAIA,EAAM,gBAAkB,WAAmBA,EACxC,CAAE,GAAGA,EAAO,cAAe,UAAW,EAC/C,IAAK,SACH,OAAIA,EAAM,aAAe,WAAmBA,EACrC,CAAE,GAAGA,EAAO,WAAY,UAAW,EAC5C,QACE,OAAOA,CACX,CAEF,IAAK,gBACH,OAAQC,EAAO,OAAQ,CACrB,IAAK,OACL,IAAK,OACH,OAAID,EAAM,WAAa,aAAeA,EAAM,YAAc,YAAoBA,EACvE,CAAE,GAAGA,EAAO,SAAU,YAAa,UAAW,WAAY,EACnE,IAAK,QACH,OAAIA,EAAM,YAAc,YAAoBA,EACrC,CAAE,GAAGA,EAAO,UAAW,WAAY,EAC5C,IAAK,UACH,OAAIA,EAAM,cAAgB,YAAoBA,EACvC,CAAE,GAAGA,EAAO,YAAa,WAAY,EAC9C,IAAK,YACH,OAAIA,EAAM,gBAAkB,YAAoBA,EACzC,CAAE,GAAGA,EAAO,cAAe,WAAY,EAChD,IAAK,SACH,OAAIA,EAAM,aAAe,YAAoBA,EACtC,CAAE,GAAGA,EAAO,WAAY,WAAY,EAC7C,QACE,OAAOA,CACX,CAEJ,CACA,OAAOA,CACT,CAQA,IAAMG,GAAa,aAA2C,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,OAAAC,EAAS,OAAQ,GAAGC,CAAM,EAAGC,IAAQ,CACzH,GAAM,CAAE,WAAYC,EAAmB,MAAOC,CAAuB,EAAIC,GAAc,EAGjFC,EAA+B,SAAgB,EAAK,EAIpD,CAACC,EAAWC,CAAY,EAAU,aAAWf,GAAaM,EAAWU,GAAoB,CAC7F,IAAMC,EAAmB,WAAS,QAAQD,CAAe,EAGnDE,GAAsBD,EAAW,KACpCtB,IAAa,iBAAeA,EAAE,GAAMA,GAAW,MAAM,cAAgB,eAAiB,EAASA,GAAW,OAAO,WACpH,EAEAkB,EAAuB,QAAUK,GAIjC,IAAMC,GAASF,EAAW,KAAMtB,IAAa,iBAAeA,EAAE,GAAMA,GAAW,MAAM,cAAgB,YAAY,EAC3GyB,GAAkBD,GAAUA,GAAe,OAAO,YAAc,OAChEE,GACCF,GACDC,KAAoB,OAAkB,GACtC,OAAOA,IAAoB,UAAkBA,GAE7C,OAAOA,IAAoB,SACtBA,GAAgB,SAAW,OAAO,OAAOA,EAAe,EAAE,CAAC,GAAK,GAElE,GAPa,GAUhBE,GAA0BL,EAAW,KACxCtB,IAAa,iBAAeA,EAAE,GAAMA,GAAW,MAAM,cAAgB,mBAAqB,EAASA,GAAW,OAAO,WACxH,EACM4B,GAA6BN,EAAW,KAC3CtB,IACO,iBAAeA,EAAE,GACtBA,GAAW,MAAM,cAAgB,mBAClC,OAAQA,GAAW,OAAO,KAAS,KACnC,EAASA,GAAW,OAAO,IAC/B,EAGM6B,GAAyBP,EAAW,KAAMtB,IAAO,CACrD,GAAI,CAAO,iBAAeA,EAAE,GAAMA,GAAW,MAAM,cAAgB,cAAe,MAAO,GACzF,IAAM8B,GAAY9B,GAAW,OAAO,KACpC,OAAI,OAAO8B,GAAa,IAAoB,GACxC,OAAOA,IAAa,UAAkBA,GAEtC,OAAOA,IAAa,UAAYA,KAAa,KACxCA,GAAS,SAAW,OAAO,OAAOA,EAAQ,EAAE,CAAC,GAAK,GAEpD,EACT,CAAC,EAGKC,GAAyB,IAAmB,CAChD,IAAMC,GAAYV,EAAW,KAAMtB,IAAa,iBAAeA,EAAE,GAAMA,GAAW,MAAM,cAAgB,eAAe,EACvH,GAAI,CAACgC,GAAW,MAAO,WACvB,IAAMC,GAAgBD,GAAkB,MAExC,GAAI,OAAOC,IAAc,MAAU,IAAa,CAC9C,GAAI,OAAOA,GAAa,OAAU,SAAU,OAAOA,GAAa,MAEhE,GAAI,OAAOA,GAAa,OAAU,SAChC,OAAQA,GAAa,MAAM,SAAW,OAAO,OAAOA,GAAa,KAAK,EAAE,CAAC,GAAK,UAElF,CAEA,GAAI,OAAOA,IAAc,aAAiB,IAAa,CACrD,GAAI,OAAOA,GAAa,cAAiB,SAAU,OAAOA,GAAa,aACvE,GAAI,OAAOA,GAAa,cAAiB,SACvC,OAAQA,GAAa,aAAa,SAAW,OAAO,OAAOA,GAAa,YAAY,EAAE,CAAC,GAAK,UAEhG,CACA,MAAO,UACT,EAGMC,GAAwB,IAAgB,CAC5C,IAAMC,GAAWb,EAAW,KAAMtB,IAAa,iBAAeA,EAAE,GAAMA,GAAW,MAAM,cAAgB,cAAc,EACrH,GAAI,CAACmC,GAAU,MAAO,YACtB,IAAMC,GAAeD,GAAiB,MAEtC,GAAI,OAAOC,IAAa,KAAS,IAAa,CAC5C,GAAI,OAAOA,GAAY,MAAS,UAAW,OAAOA,GAAY,KAAO,WAAa,YAElF,GAAI,OAAOA,GAAY,MAAS,SAE9B,OADYA,GAAY,KAAK,SAAW,OAAO,OAAOA,GAAY,IAAI,EAAE,CAAC,EAC5D,WAAa,WAE9B,CAEA,OAAI,OAAOA,IAAa,YAAgB,KAC/BA,GAAY,YAAc,WAE5B,WACT,EAEA,MAAO,CACL,SAAUb,IAAuBM,IAA0BH,GAAqB,WAAc,YAC9F,UAAWH,IAAuBM,GAAyB,WAAc,YACzE,YAAaE,GAAuB,EACpC,cAAeJ,IAA2BC,GAA6B,WAAc,YACrF,WAAYM,GAAsB,CACpC,CACF,CAAC,EACKG,EAAoB,cAAaC,GAAmBlB,EAAa,CAAE,KAAM,gBAAiB,KAAAkB,CAAK,CAAC,EAAG,CAAC,CAAC,EACrGC,EAAqB,cAAaD,GAAmBlB,EAAa,CAAE,KAAM,iBAAkB,KAAAkB,CAAK,CAAC,EAAG,CAAC,CAAC,EACvGE,EAAuB,cAAaF,GAAsBlB,EAAa,CAAE,KAAM,mBAAoB,KAAAkB,CAAK,CAAC,EAAG,CAAC,CAAC,EAC9GG,EAAyB,cAAaH,GAAmBlB,EAAa,CAAE,KAAM,qBAAsB,KAAAkB,CAAK,CAAC,EAAG,CAAC,CAAC,EAC/GI,EAAsB,cAAaJ,GAAmBlB,EAAa,CAAE,KAAM,kBAAmB,KAAAkB,CAAK,CAAC,EAAG,CAAC,CAAC,EAKzG,CAACK,EAASC,CAAU,EAAU,WAAS,EAAK,EAC5C,CAACC,EAAYC,CAAa,EAAU,WAAS,EAAK,EAGlDC,EAAiC,SAA+CC,GAAaA,IAAY,YAAc,OAASA,IAAY,OAAS,WAAa,WAAY,EAC9KC,GAAiC,cAAaC,GAA8C,CAChGH,EAAyB,QAAUG,CACrC,EAAG,CAAC,CAAC,EAKC,kBAAgB,IAAM,CACtBL,GAAcF,GAChB,QAAQ,KAAK,qFAAqF,CAEtG,EAAG,CAACE,EAAYF,CAAO,CAAC,EAGxB,GAAM,CAACQ,EAAaC,CAAc,EAAU,WAAwC,MAAS,EACvFC,GAAmB,cAAaC,GAAyBF,EAAeE,CAAC,EAAG,CAAC,CAAC,EAC9EC,EAA2B,SAAe,EAAE,EAC5CC,EAA4B,SAAe,GAAG,EAC9CC,EAAuB,cAAaC,GAAiB,CACzDH,EAAmB,QAAUG,CAC/B,EAAG,CAAC,CAAC,EACCC,EAAwB,cAAaD,GAAiB,CAC1DF,EAAoB,QAAUE,CAChC,EAAG,CAAC,CAAC,EAGCE,EAAwB,UAAQ,IACX,WAAS,QAAQjD,CAAQ,EAChC,KAAMX,GAAOD,GAAqBC,EAAI6D,EAAI,GAAK9D,GAAqBC,EAAI8D,EAAK,CAAC,EAC/F,CAACnD,CAAQ,CAAC,EAEPoD,EAA2B,UAAQ,IACd,WAAS,QAAQpD,CAAQ,EAChC,KAAMX,GAAOD,GAAqBC,EAAIE,EAAO,CAAC,EAC/D,CAACS,CAAQ,CAAC,EAIPqD,EAAuB,SAAO7C,EAAU,WAAW,EACzD6C,EAAe,QAAU7C,EAAU,YAEnC,IAAM8C,EAAmB,cACtBC,GAAuB,CACtB,GAAIA,IAAW,UAAW,CACxB,IAAM1D,EAAOuC,EAAyB,QAAQiB,EAAe,OAAsB,EACnFxB,EAAehC,CAAI,EACnB,MACF,CACAY,EAAa,CAAE,KAAM,cAAe,OAAA8C,CAAO,CAAC,CAC9C,EACA,CAAC1B,CAAc,CACjB,EAEM2B,GAAmB,cACtBD,GAAuB,CACtB,GAAIA,IAAW,UAAW,OAAO1B,EAAe,UAAU,EAC1DpB,EAAa,CAAE,KAAM,cAAe,OAAA8C,CAAO,CAAC,CAC9C,EACA,CAAC1B,CAAc,CACjB,EAEM4B,EAAqB,cACxBF,GAAuB,CACtB,GAAIA,IAAW,UAAW,OAAO1B,EAAe,WAAW,EAC3DpB,EAAa,CAAE,KAAM,gBAAiB,OAAA8C,CAAO,CAAC,CAChD,EACA,CAAC1B,CAAc,CACjB,EAEM6B,EAAyB,UAC7B,KAAO,CACL,SAAUlD,EAAU,SACpB,YAAAkB,EACA,UAAWlB,EAAU,UACrB,aAAAoB,EACA,YAAapB,EAAU,YACvB,eAAAqB,EACA,cAAerB,EAAU,cACzB,iBAAAsB,EACA,WAAYtB,EAAU,WACtB,cAAAuB,EACA,QAAAC,EACA,WAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAA/B,EACA,uBAAAC,EACA,yBAA0BmC,EAC1B,WAAAc,EACA,WAAAE,GACA,aAAAC,EACA,yBAAAnB,GACA,WAAAI,GACA,eAAAI,EACA,gBAAAE,CACF,GACA,CACExC,EAAU,SACVkB,EACAlB,EAAU,UACVoB,EACApB,EAAU,YACVqB,EACArB,EAAU,cACVsB,EACAtB,EAAU,WACVuB,EACAC,EACAE,EACA9B,EACAC,EACAmC,EACAc,EACAE,GACAC,EACAnB,GACAI,GACAI,EACAE,CACF,CACF,EAGM,CAAE,UAAAW,GAAW,QAAAC,GAAS,SAAAC,EAAU,WAAAC,EAAY,WAAAC,EAAY,aAAAC,EAAc,UAAAC,CAAU,EAAU,UAAQ,IAAM,CAC5G,IAAMC,EAAS,CACb,UAAW,CAAC,EACZ,QAAS,CAAC,EACV,SAAU,CAAC,EACX,WAAY,CAAC,EACb,WAAY,CAAC,EACb,aAAc,CAAC,EACf,UAAW,CAAC,CACd,EACA,QAAW7E,KAAY,WAAS,QAAQW,CAAQ,EAC1CZ,GAAqBC,EAAI8E,EAAM,EAAGD,EAAO,UAAU,KAAK7E,CAAE,EACrDD,GAAqBC,EAAI6D,EAAI,EAAGgB,EAAO,QAAQ,KAAK7E,CAAE,EACtDD,GAAqBC,EAAI8D,EAAK,EAAGe,EAAO,SAAS,KAAK7E,CAAE,EACxDD,GAAqBC,EAAIE,EAAO,EAAG2E,EAAO,WAAW,KAAK7E,CAAE,EAC5DD,GAAqBC,EAAI+E,EAAO,EAAGF,EAAO,WAAW,KAAK7E,CAAE,EAC5DD,GAAqBC,EAAIG,EAAS,EAAG0E,EAAO,aAAa,KAAK7E,CAAE,EAChED,GAAqBC,EAAII,EAAM,GAAGyE,EAAO,UAAU,KAAK7E,CAAE,EAErE,OAAO6E,CACT,EAAG,CAAClE,CAAQ,CAAC,EAGPqE,GAAiBT,GAAQ,CAAC,GAAW,OAAO,KAC5CU,EAA8B,UAAQ,IAAM,CAChD,GAAI,OAAOD,GAAkB,IAAa,OAC1C,GAAI,OAAOA,IAAkB,UAAW,OAAOA,GAC/C,GAAI,OAAOA,IAAkB,UAAYA,KAAkB,KAAM,MAAO,EAAQA,GAEhF,IAAME,EAAaF,GACnB,GAAIE,EAAWnE,CAAiB,IAAM,OAAW,OAAOmE,EAAWnE,CAAiB,EAEpF,IAAMoE,EAA8B,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,SAAS,EACtEC,GAAWD,EAAc,QAAQpE,CAAiB,EACxD,QAASsE,GAAID,GAAW,EAAGC,GAAIF,EAAc,OAAQE,KAAK,CACxD,IAAMC,GAAKH,EAAcE,EAAC,EAC1B,GAAIH,EAAWI,EAAE,IAAM,OAAW,OAAOJ,EAAWI,EAAE,CACxD,CAEF,EAAG,CAACN,GAAejE,CAAiB,CAAC,EAE/BwE,GAAkBf,EAAS,CAAC,GAAW,OAAO,KAC9CgB,GAA+B,UAAQ,IAAM,CACjD,GAAI,OAAOD,GAAmB,IAAa,OAC3C,GAAI,OAAOA,IAAmB,UAAW,OAAOA,GAChD,GAAI,OAAOA,IAAmB,UAAYA,KAAmB,KAAM,MAAO,EAAQA,GAElF,IAAML,EAAaK,GACnB,GAAIL,EAAWnE,CAAiB,IAAM,OAAW,OAAOmE,EAAWnE,CAAiB,EAEpF,IAAMoE,EAA8B,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,SAAS,EACtEC,GAAWD,EAAc,QAAQpE,CAAiB,EACxD,QAASsE,GAAID,GAAW,EAAGC,GAAIF,EAAc,OAAQE,KAAK,CACxD,IAAMC,GAAKH,EAAcE,EAAC,EAC1B,GAAIH,EAAWI,EAAE,IAAM,OAAW,OAAOJ,EAAWI,EAAE,CACxD,CAEF,EAAG,CAACC,GAAgBxE,CAAiB,CAAC,EAEhC0E,GAAsB,SAAO,CAAC,EAC9BC,GAA0B,SAAO,CAAC,EAClCC,GAA2B,SAAO,CAAC,EACnCC,GAAwB,SAA4BX,CAAqB,EACzEY,GAAyB,SAA4BL,EAAsB,EAE3E,kBAAgB,IAAM,CAC1B,GAAIP,IAA0B,OAAW,CACvCW,GAAgB,QAAU,OAC1B,MACF,CACIA,GAAgB,UAAYX,IAChCW,GAAgB,QAAUX,EAC1BS,GAAkB,QAAU,EAAED,GAAc,QAC9C,EAAG,CAACR,CAAqB,CAAC,EAEpB,kBAAgB,IAAM,CAC1B,GAAIO,KAA2B,OAAW,CACxCK,GAAiB,QAAU,OAC3B,MACF,CACIA,GAAiB,UAAYL,KACjCK,GAAiB,QAAUL,GAC3BG,GAAmB,QAAU,EAAEF,GAAc,QAC/C,EAAG,CAACD,EAAsB,CAAC,EAErB,kBAAgB,IAAM,CACtB,OAAOP,EAA0B,KACrC5C,EAAY4C,EAAwB,WAAa,WAAW,CAC9D,EAAG,CAACA,EAAuB5C,CAAW,CAAC,EAEvC,IAAMyD,EAAoBvB,GAAQ,CAAC,GAAW,OAAO,aAG/CwB,EAAqBvB,EAAS,CAAC,GAAW,OAAO,aAGjDwB,EAAwB,SAA0F,IAAI,EAEtH,kBAAgB,IAAM,CAC1B,GAAIf,IAA0B,IAASO,KAA2B,GAAM,CACtEQ,EAAgB,QAAU,KAC1B,MACF,CAEA,IAAMC,EAAYN,GAAmB,QAAUD,GAAkB,QAC3DnF,EAAsC0F,EAAY,YAAc,cAChEC,GAAeF,EAAgB,QACjCE,IAAgBA,GAAa,UAAYR,GAAkB,SAAWQ,GAAa,WAAaP,GAAmB,SAAWO,GAAa,SAAW3F,IAG1JyF,EAAgB,QAAU,CAAE,QAASN,GAAkB,QAAS,SAAUC,GAAmB,QAAS,OAAApF,CAAO,EAEzG0F,EACFH,IAAmB,GAAM,CAAE,OAAQ,OAAQ,CAAC,EAE5CC,IAAoB,GAAO,CAAE,OAAQ,MAAO,CAAC,EAEjD,EAAG,CAACd,EAAuBO,GAAwBM,EAAkBC,CAAiB,CAAC,EAEvF,IAAMI,EAAqBlB,EAErBmB,GAAoB,UAAQ,IAC5BxF,IAAW,OAAe,CAAE,OAAQ,OAAQ,EAC5CA,IAAW,OAAe,CAAE,OAAQ,MAAO,EAC3C,OAAOA,GAAW,SAAiB,CAAE,OAAAA,CAAO,EAC5C,OAAOA,GAAW,SAAiB,CAAE,OAAQ,GAAGA,CAAM,IAAK,EACxD,CAAC,EACP,CAACA,CAAM,CAAC,EAGL,CAACyF,GAAYC,EAAa,EAAU,WAA4B,IAAI,EACpEC,GAAiB,cAAarC,GAAuBoC,GAAcpC,CAAM,EAAG,CAAC,CAAC,EAC9EsC,GAAkB,cAAY,IAAMF,GAAc,IAAI,EAAG,CAAC,CAAC,EAG3DG,GAA6B,UAAQ,KAAO,CAAE,kBAAA1F,EAAmB,uBAAAC,EAAwB,yBAA0BmC,CAAY,GAAI,CAACpC,EAAmBC,EAAwBmC,CAAW,CAAC,EAC3LuD,GAAyB,UAAQ,KAAO,CAAE,SAAUvF,EAAU,SAAU,YAAAkB,CAAY,GAAI,CAAClB,EAAU,SAAUkB,CAAW,CAAC,EACzHsE,GAA0B,UAAQ,KAAO,CAAE,UAAWxF,EAAU,UAAW,aAAAoB,CAAa,GAAI,CAACpB,EAAU,UAAWoB,CAAY,CAAC,EAC/HqE,GAA4B,UAAQ,KAAO,CAAE,YAAazF,EAAU,YAAa,eAAAqB,CAAe,GAAI,CAACrB,EAAU,YAAaqB,CAAc,CAAC,EAC3IqE,GAA8B,UAAQ,KAAO,CAAE,cAAe1F,EAAU,cAAe,iBAAAsB,CAAiB,GAAI,CAACtB,EAAU,cAAesB,CAAgB,CAAC,EACvJqE,GAA2B,UAAQ,KAAO,CAAE,WAAY3F,EAAU,WAAY,cAAAuB,CAAc,GAAI,CAACvB,EAAU,WAAYuB,CAAa,CAAC,EACrIqE,EAA4B,UAAQ,KAAO,CAAE,QAAApE,EAAS,WAAAC,EAAY,WAAAC,EAAY,cAAAC,CAAc,GAAI,CAACH,EAASC,EAAYC,EAAYC,CAAa,CAAC,EAGhJ,CAACkE,EAAYC,CAAa,EAAU,WAA2B,IAAI,GAAK,EACxEC,EAAsB,cAAaC,GAAoB,CAC3DF,EAAeG,GAAS,CACtB,GAAIA,EAAK,IAAID,CAAE,EAAG,OAAOC,EACzB,IAAM5G,GAAO,IAAI,IAAI4G,CAAI,EACzB,OAAA5G,GAAK,IAAI2G,CAAE,EACJ3G,EACT,CAAC,CACH,EAAG,CAAC,CAAC,EACC6G,GAAwB,cAAaF,GAAoB,CAC7DF,EAAeG,GAAS,CACtB,GAAI,CAACA,EAAK,IAAID,CAAE,EAAG,OAAOC,EAC1B,IAAM5G,GAAO,IAAI,IAAI4G,CAAI,EACzB,OAAA5G,GAAK,OAAO2G,CAAE,EACP3G,EACT,CAAC,CACH,EAAG,CAAC,CAAC,EACC8G,GAAcN,EAAW,KAAO,EAChCO,GAAsB,UAC1B,KAAO,CAAE,WAAAP,EAAY,cAAAE,EAAe,gBAAAG,GAAiB,YAAAC,EAAY,GACjE,CAACN,EAAYE,EAAeG,GAAiBC,EAAW,CAC1D,EACME,GAAqB,UAAQ,KAAO,CAAE,WAAAnB,GAAY,cAAAC,GAAe,SAAAC,GAAU,UAAAC,EAAU,GAAI,CAACH,GAAYC,GAAeC,GAAUC,EAAS,CAAC,EACzIiB,EAAwB,UAAQ,KAAO,CAAE,WAAAxD,EAAY,WAAAE,GAAY,aAAAC,EAAc,yBAAAnB,EAAyB,GAAI,CAACgB,EAAYE,GAAYC,EAAcnB,EAAwB,CAAC,EAG5KyE,GAA0B,UAC9B,KAAO,CACL,GAAGrD,EACH,mBAAA8B,EACA,WAAAE,GACA,cAAAC,GACA,SAAAC,GACA,UAAAC,EACF,GACA,CAACnC,EAAkB8B,EAAoBE,GAAYC,GAAeC,GAAUC,EAAS,CACvF,EAGMmB,GAAoB,UAAQ,IAAM,CACtC,GAAI,CAAC/D,GAAmBG,EAAoB,OAAO,KACnD,IAAM6D,EAAYrD,GAAQ,CAAC,EACrBsD,EAAarD,EAAS,CAAC,EACvBsD,GAAY,EAAQF,GAAW,OAAO,OAAU,EAAQC,GAAY,OAAO,MAC3EE,GAAmBH,EACrB,CAEE,aAAcA,EAAU,OAAO,aAC/B,KAAMA,EAAU,OAAO,KACvB,YAAaA,EAAU,OAAO,YAC9B,aAAcA,EAAU,OAAO,aAC/B,YAAaA,EAAU,OAAO,YAC9B,SAAUA,EAAU,OAAO,SAC3B,WAAYA,EAAU,OAAO,WAC7B,MAAOE,EACT,EACA,CAAE,YAAa5G,EAAuB,QAAU,GAAO,OAAW,MAAO4G,EAAU,EACvF,OACE,gBAACE,GAAA,CAAM,GAAID,IACRxD,GACAC,CACH,CAEJ,EAAG,CAACZ,EAAiBG,EAAoBQ,GAASC,CAAQ,CAAC,EAE3D,OACE,gBAAC,OAAK,GAAG3D,EAAO,IAAKC,EAAK,aAAW,GAAAmH,SAAW,eAAgBvH,CAAS,EAAG,MAAO,CAAE,GAAG0F,GAAa,GAAGvF,EAAM,KAAM,GAClH,gBAACqH,GAAA,CAAc,MAAOR,IACpB,gBAACS,GAAoB,SAApB,CAA6B,MAAO1B,IACnC,gBAAC2B,GAAgB,SAAhB,CAAyB,MAAO1B,IAC/B,gBAAC2B,GAAiB,SAAjB,CAA0B,MAAO1B,IAChC,gBAAC2B,GAAmB,SAAnB,CAA4B,MAAO1B,IAClC,gBAAC2B,GAAqB,SAArB,CAA8B,MAAO1B,IACpC,gBAAC2B,GAAkB,SAAlB,CAA2B,MAAO1B,IACjC,gBAAC2B,GAAmB,SAAnB,CAA4B,MAAO1B,GAClC,gBAAC2B,GAAY,SAAZ,CAAqB,MAAOlB,IAC3B,gBAACmB,GAAe,SAAf,CAAwB,MAAOlB,GAC9B,gBAACmB,GAAa,SAAb,CAAsB,MAAOrB,IAC3BjD,GACD,gBAAC,OACC,UAAU,eACV,mBAAkB+B,IAAc,OAChC,iBAAgBiB,IAAe,OAC/B,MACEjB,KAAe,QAAUA,KAAe,QACnC,CACC,oBAAqB,GAAG9C,EAAmB,OAAO,IACpD,EACA,QAGLoE,IAAelD,EACfC,EACAC,CACH,EACCC,CACH,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAEJ,CAAC,EACDnE,GAAK,YAAc,aAOnB,IAAMqE,GAAe,aAA0C,CAAC,CAAE,UAAApE,EAAW,OAAAE,EAAS,GAAI,MAAAiI,EAAO,GAAGhI,CAAM,EAAGC,IAC3G,gBAAC,UACE,GAAGD,EACJ,IAAKC,EACL,aAAW,GAAAmH,SAAW,iBAAkBvH,CAAS,EACjD,MAAO,CACL,GAAGmI,EACH,wBAAyB,GAAGjI,CAAM,IACpC,EACF,CACD,EACDkE,GAAO,YAAc,eAuCrB,IAAMgE,GAAsB,CAAC,OAAQ,cAAe,eAAgB,OAAQ,cAAe,cAAc,EAEnGd,GAAa,aAAsC,CAACe,EAAcjI,IAAQ,CAC9E,GAAM,CAAE,UAAAJ,EAAW,aAAAsI,EAAe,CAAE,QAAS,QAAS,GAAI,OAAQ,EAAG,YAAaC,EAAe,GAAM,SAAAC,EAAU,WAAAC,EAAY,SAAAxI,EAAU,MAAAkI,EAAO,MAAAO,EAAO,GAAGC,CAAU,EAAIN,EAChK,CAAE,cAAA7B,EAAe,gBAAAG,CAAgB,EAAIiC,GAAS,EAG9C,YAAU,IAAM,CACpB,GAAIF,EACF,OAAAlC,EAAc,MAAM,EACb,IAAMG,EAAgB,MAAM,CAEvC,EAAG,CAAC+B,EAAOlC,EAAeG,CAAe,CAAC,EAC1C,IAAMkC,EAAYF,EAAU,KACtBG,EAAmBH,EAAU,YAC7BI,EAAoBJ,EAAU,aAC9BK,EAAWC,GAAcN,EAAWP,EAAmB,EACvDc,EAAQC,GAAS,EACjB,CAAE,WAAAjH,CAAW,EAAIgH,EACjBE,EAAuBC,GAA0Bf,CAAY,EAC7DgB,GAAYF,IAAyB,UACrCG,EAAYH,IAAyB,UACrCI,EAAiB,SAA8B,IAAI,EAEnD,YAAU,IAAM,CACpBN,EAAM,aAAaE,CAAoB,CACzC,EAAG,CAACF,EAAOE,CAAoB,CAAC,EAChC,IAAMK,GAAe,cAClBC,GAAgC,CAC/BF,EAAS,QAAUE,EACf,OAAOtJ,GAAQ,WAAYA,EAAIsJ,CAAI,EAC9BtJ,IAAMA,EAAsD,QAAUsJ,EACjF,EACA,CAACtJ,CAAG,CACN,EAGM,YAAU,KACd8B,EAAW,EAAI,EACR,IAAMA,EAAW,EAAK,GAC5B,CAACA,CAAU,CAAC,EAEf,IAAMyH,EAAwB,SAAwB,IAAI,EACpDC,EAAsC,SAA6B,MAAS,EAC5EC,EAAiC,UAAQ,IAAM,CACnD,GAAI,SAAOhB,EAAc,KACzB,OAAOA,EAAY,WAAa,WAClC,EAAG,CAACA,CAAS,CAAC,EACRiB,EAA8B,UAAQ,IAAMC,GAA+BjB,CAAgB,EAAG,CAACA,CAAgB,CAAC,EAGhHkB,EAA6B,SAAOjB,CAAiB,EACrDkB,EAAqB,SAAOpB,CAAS,EACrC,kBAAgB,IAAM,CAC1BmB,EAAqB,QAAUjB,EAC/BkB,EAAa,QAAUpB,CACzB,CAAC,EAED,GAAM,CAAE,mBAAoBqB,CAAuB,EAAIC,GAAoC,CACzF,gBAAiBN,EACjB,aAAcC,EACd,aAAcZ,EAAM,SACpB,SAAUA,EAAM,YAChB,gBAAiBA,EAAM,uBACvB,OAASkB,GAAYJ,EAAqB,UAAUI,IAAY,WAAY,CAAE,OAAQ,MAAO,CAAC,CAChG,CAAC,EAIKC,EAAyB,SAAwB,IAAI,EACrD,YAAU,IAAM,CACpB,IAAMC,EAAeX,EAAgB,QAC/BY,EAAgBF,EAAiB,QAGjCG,EADyBZ,EAA8B,UACRM,EAErD,GAAII,IAAiB,MAAQA,IAAiBpB,EAAM,SAAU,CAC5D,IAAMuB,EAAe,OAAOR,EAAa,QAAY,IAC/CS,GAAmBR,IAA2B,OAAY,OAAYA,IAA2B,WACjGS,EAAWzB,EAAM,WAAa,WAIpC,GAAI,CAACuB,GAAiB,CAACD,GAAqBG,IAAaD,GAAmB,CAC1E,IAAIE,GAAuC,SACnBL,IAAkB,MAAQA,IAAkBrB,EAAM,WAAaoB,IAAiB,aAAepB,EAAM,WAAa,YAAcA,EAAM,YAAc,aAE1K0B,GAAS,SAEXZ,EAAqB,UAAUW,EAAU,CAAE,OAAAC,EAAO,CAAC,CACrD,CACF,CAEAjB,EAAgB,QAAUT,EAAM,SAChCmB,EAAiB,QAAUnB,EAAM,UACjCU,EAA8B,QAAUM,CAC1C,EAAG,CAAChB,EAAM,SAAUA,EAAM,UAAWgB,CAAsB,CAAC,EAK5D,IAAMW,GAAoB,SAAOrC,CAAQ,EACnCsC,EAAsB,SAAOrC,CAAU,EACvC,kBAAgB,IAAM,CAC1BoC,GAAY,QAAUrC,EACtBsC,EAAc,QAAUrC,CAC1B,CAAC,EAED,IAAMsC,EAAmC,SAAwB,IAAI,EAC/DC,GAA8B,SAAO,EAAK,EAC1C,YAAU,IAAM,CACpB,IAAMC,EAAc/B,EAAM,SAE1B,GAAI,CAACA,EAAM,uBAAwB,CACjC6B,EAA2B,QAAUE,EACrC,MACF,CAEA,GAAI,CAACD,GAAsB,QAAS,CAClCA,GAAsB,QAAU,GAChCD,EAA2B,QAAUE,EACrC,MACF,CAEA,IAAMC,EAAWH,EAA2B,QAExCG,IAAa,MAAQA,IAAaD,IAChCA,IAAgB,WAClBJ,GAAY,UAAU,EACbI,IAAgB,aACzBH,EAAc,UAAU,EAE1BC,EAA2B,QAAUE,EAEzC,EAAG,CAAC/B,EAAM,SAAUA,EAAM,sBAAsB,CAAC,EAEjD,IAAMiC,GAAcjC,EAAM,WAAa,WAIvC,GAAII,GAAW,CACb,IAAM8B,EAAOlC,EAAM,WAAa,WAE1BtI,EAAmB,WAAS,QAAQX,CAAQ,EAC5Ca,EAASF,EAAW,KAAMtB,IAAOD,GAAqBC,GAAI6D,EAAI,CAAC,EAC/DkI,EAAUzK,EAAW,KAAMtB,IAAOD,GAAqBC,GAAI8D,EAAK,CAAC,EACjEkI,EAAW,OAAQxK,GAAgB,OAAO,cAAiB,SAAYA,EAAe,MAAM,aAAe,GAC3GyK,GAAY,OAAQF,GAAiB,OAAO,cAAiB,SAAYA,EAAgB,MAAM,aAAe,IAC9GG,EAAU,EAAQ1K,EAClB2K,GAAW,EAAQJ,EACnBK,IAAaF,EAAUF,EAAW,IAAMpC,EAAM,YAAc,YAAcuC,GAAWF,GAAY,GACvG,OACE,gBAAOxL,GAAN,CAAW,KAAMqL,EAAM,aAAeO,IAAMzC,EAAM,YAAYyC,GAAI,WAAa,WAAW,GACzF,gBAAOtH,GAAN,CACC,KAAK,QACL,MAAO,CAAE,QAAS,CAAE,EACpB,aAAW,aACX,mBAAkB,OAClB,MAAO,CACL,QAAS,GAAGqH,EAAS,IACvB,GAEA,gBAACE,GAAA,KACC,gBAAOC,GAAN,KAAY,YAAU,CACzB,EACA,gBAAC,OAAI,UAAU,gBAAgB5L,CAAS,CAC1C,CACF,CAEJ,CAEA,GAAIsJ,EAAW,CACb,IAAM6B,EAAOlC,EAAM,WAAa,WAE1BtI,EAAmB,WAAS,QAAQX,CAAQ,EAC5Ca,EAASF,EAAW,KAAMtB,IAAOD,GAAqBC,GAAI6D,EAAI,CAAC,EAC/DkI,EAAUzK,EAAW,KAAMtB,IAAOD,GAAqBC,GAAI8D,EAAK,CAAC,EACjE0I,EAAY,OAAQhL,GAAgB,OAAO,cAAiB,SAAYA,EAAe,MAAM,aAAe,GAC5GiL,GAAa,OAAQV,GAAiB,OAAO,cAAiB,SAAYA,EAAgB,MAAM,aAAe,IAC/GW,EAAW,EAAQlL,EAEnBmL,GADY,EAAQZ,IACUnC,EAAM,YAAc,YAAcA,EAAM,aAAe,SAG3F,OACE,gBAAC,OACE,GAAGF,EACJ,IAAKS,GACL,aAAW,GAAAlC,SAAW,eAAgBvH,CAAS,EAC/C,YAAWkJ,EAAM,SACjB,YAAWA,EAAM,aAAe,QAAUA,EAAM,aAAe,QAAUA,EAAM,aAAe,SAAW,OACzG,oBAAmBE,EACnB,aAAYV,GAAS,OACrB,MAAO,CACL,GAAGP,CACL,EACA,YAAWiD,GAAQ,QAElBnL,CACH,CAEJ,CAGA,OACE,gBAAC,OACE,GAAG+I,EACJ,IAAKS,GACL,aAAW,GAAAlC,SAAW,eAAgBvH,CAAS,EAC/C,YAAWkJ,EAAM,SACjB,YAAWA,EAAM,aAAe,QAAUA,EAAM,aAAe,QAAUA,EAAM,aAAe,SAAW,OACzG,oBAAmBE,EACnB,aAAYV,GAAS,OACrB,MAAO,CACL,GAAGP,CACL,GAEClI,CACH,CAEJ,CAAC,EACDqH,GAAK,YAAc,aACnBpI,GAAgBoI,GAAa,YAAY,EAEzC,IAAMnE,GAAa,aAAsC,CAACkF,EAAcjI,IAAQ,CAC9E,GAAM,CAAE,UAAAJ,EAAW,aAAAsI,EAAc,aAAA4D,EAAe,GAAI,YAAAC,EAAa,SAAA3D,EAAU,WAAAC,EAAY,SAAAxI,EAAU,MAAAkI,EAAO,KAAAiD,EAAM,YAAAgB,EAAa,aAAAC,EAAc,MAAOC,EAAQ,GAAGtD,CAAS,EAAIX,EAClKa,EAAQC,GAAS,EAGjBoD,EAAyB,SAAuB,IAAI,EAQpD,YAAU,IAAM,CACpB,IAAM9B,EAAe,OAAOW,EAAS,IACrC,GAAImB,EAAiB,UAAY,KAAM,CACrCA,EAAiB,QAAU9B,EAC3B,MACF,CACI8B,EAAiB,UAAY9B,IAC/B,QAAQ,KAAK,oFAAoF,EACjG8B,EAAiB,QAAU9B,EAE/B,EAAG,CAACW,CAAI,CAAC,EAGH,YAAU,IAAM,CACpBlC,EAAM,iBAAiBgD,CAAY,CACrC,EAAG,CAAChD,EAAOgD,CAAY,CAAC,EAExB,IAAMM,EAAatD,EAAM,WAAa,WAGtC,OACE,gBAAC,OACE,GAAGF,EACJ,IAAK5I,EACL,aAAW,GAAAmH,SAAW,eAAgBvH,CAAS,EAC/C,YAAWkJ,EAAM,SACjB,YAAYA,EAAM,wBAA0BA,EAAM,2BAA6B,WAAaA,EAAM,aAAe,QAAW,OAC5H,MAAO,CACL,GAAGf,EACH,cAAe,GAAG+D,CAAY,IAChC,GAEA,gBAAC,OAAI,UAAU,sBAAsB,eAAehD,EAAM,yBAA2BsD,GAAetD,EAAM,2BAA6B,WAAaA,EAAM,aAAe,SAAa,QACnLjJ,CACH,CACF,CAEJ,CAAC,EACDkD,GAAK,YAAc,aACnBjE,GAAgBiE,GAAa,YAAY,EAyCzC,IAAMsJ,GAAsB,CAC1B,YACA,WACA,cACA,OACA,eACA,OACA,cACA,eACA,aACA,eACA,OACF,EAEMrJ,GAAQlE,GACN,aAA6C,CAACmJ,EAAcjI,IAAQ,CACxE,GAAM,CACJ,UAAAJ,EACA,YAAAoM,EACA,KAAAhB,EACA,aAAAiB,EACA,KAAArJ,EACA,YAAA0J,EACA,aAAAR,EAAe,IACf,QAAAS,EACA,QAAAC,EACA,UAAAC,EACA,YAAAV,EAAc,GACd,SAAUW,EACV,WAAYC,EACZ,SAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAAC,GACA,OAAAC,EACA,YAAAC,EACA,SAAAtN,GACA,MAAAkI,EACA,aAAAqF,EACA,WAAAC,EACA,aAAAC,EAAe,EACjB,EAAIrF,EACEsF,EAAgBC,GAAoBvF,EAAcoE,EAAmB,EAErEoB,EAA2B,SAA6C,IAAI,EAE5E,kBAAgB,IACb,IAAM,CACPA,EAAmB,UACrB,aAAaA,EAAmB,OAAO,EACvCA,EAAmB,QAAU,KAEjC,EACC,CAACL,EAAcC,EAAYC,CAAY,CAAC,EAE3C,IAAMI,EAAuB,UAAQ,IAAM,CACzC,GAAI,CAACN,EAAc,MAAO,IAAM,CAAC,EACjC,GAAIC,IAAe,WAQjB,MAPW,CAACM,EAAWC,IAA8B,CAC/CH,EAAmB,SAAS,aAAaA,EAAmB,OAAO,EACvEA,EAAmB,QAAU,WAAW,IAAM,CAC5CL,IAAeO,EAAGC,CAAI,EACtBH,EAAmB,QAAU,IAC/B,EAAGH,CAAY,CACjB,EAGF,GAAID,IAAe,WAAY,CAC7B,IAAIQ,EAAO,EACX,MAAO,CAACF,EAAWC,IAA8B,CAC/C,IAAME,EAAM,KAAK,IAAI,EACjBA,EAAMD,GAAQP,IAChBO,EAAOC,EACPV,IAAeO,EAAGC,CAAI,EAE1B,CACF,CACA,MAAO,CAACD,EAAWC,IAA8BR,IAAeO,EAAGC,CAAI,CACzE,EAAG,CAACR,EAAcC,EAAYC,CAAY,CAAC,EACrCxE,EAAQC,GAAS,EACjBkB,GAAyB,SAAwB,IAAI,EACrD8D,EAAwB,SAAwB,IAAI,EACpDC,EAAuC,SAA6B,MAAS,EAY7EC,GAAiC,UAAQ,IAAMtE,GAA+BqB,CAAI,EAAG,CAACA,CAAI,CAAC,EAC3FkD,GAA8B,UAAQ,IAAMvE,GAA+BqC,CAAW,EAAG,CAACA,CAAW,CAAC,EACtGmC,EAAmB,OAAOnD,GAAS,UAAYA,IAAS,KAGxDoD,EAAwB,SAAOnC,CAAY,EAC3C,kBAAgB,IAAM,CAC1BmC,EAAgB,QAAUnC,CAC5B,CAAC,EAGD,GAAM,CAAE,mBAAoBoC,CAAwB,EAAItE,GAAoC,CAC1F,gBAAiBkE,GACjB,aAAcC,GACd,aAAcpF,EAAM,UACpB,SAAWtH,GAAS,CAEdA,IAAS,YAAcsH,EAAM,WAAa,YAAcA,EAAM,qBAAuB,IACvFA,EAAM,YAAY,UAAU,EAE9BA,EAAM,aAAatH,CAAI,CACzB,EACA,gBAAiBsH,EAAM,uBACvB,uBAAwBqF,EACxB,mBAAqBzO,GAAS0O,EAAgB,UAAU1O,IAAS,WAAY,CAAE,OAAQ,YAAa,CAAC,EACrG,OAASsK,GAAY,CACf,OAAOgB,EAAS,KAClBoD,EAAgB,UAAUpE,IAAY,WAAY,CAAE,OAAQ,MAAO,CAAC,CAExE,CACF,CAAC,EAGKmC,EAAyB,SAAuB,IAAI,EACpD,YAAU,IAAM,CACpB,IAAM9B,EAAe,OAAOW,EAAS,IACrC,GAAImB,EAAiB,UAAY,KAAM,CACrCA,EAAiB,QAAU9B,EAC3B,MACF,CACI8B,EAAiB,UAAY9B,IAC/B,QAAQ,KAAK,qFAAqF,EAClG8B,EAAiB,QAAU9B,EAE/B,EAAG,CAACW,CAAI,CAAC,EAEH,YAAU,IAAM,CACpBlC,EAAM,kBAAkBgD,CAAY,CACtC,EAAG,CAAChD,EAAOgD,CAAY,CAAC,EACxB,IAAM1C,EAAiB,SAA8B,IAAI,EACnDC,GAAe,cAClBC,GAAgC,CAC/BF,EAAS,QAAUE,EACf,OAAOtJ,GAAQ,WAAYA,EAAIsJ,CAAI,EAC9BtJ,IAAMA,EAAsD,QAAUsJ,EACjF,EACA,CAACtJ,CAAG,CACN,EACMQ,EAAmB,WAAS,QAAQX,EAAQ,EAC5CyO,GAAiB9N,EAAW,OAAQtB,GAAiC,iBAAeA,CAAE,GAAKA,EAAG,OAASqP,EAAW,EAClHC,GAAkBhO,EAAW,OAAQtB,GAA2B,EAAQ,iBAAeA,CAAE,GAAKA,EAAG,OAASqP,GAAY,EAEtHrF,GAAYJ,EAAM,2BAA6B,UAG/C2F,GAA0B,cAAaC,GAAuCC,GAAcD,EAAO,YAAY,EAAG,CAAC,CAAC,EAGpHE,GAA2B,UAAQ,IAAM,CAC7C,GAAI,CAAC1B,GAAUC,EAAa,OAAOA,EACnC,IAAM0B,EAAM,yBAAyB3B,CAAM,GAyB3C,MAxBqC,CACnC,KAAM,IAAM,CACV,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,IAAM4B,EAAI,OAAO,aAAa,QAAQD,CAAG,EACzC,OAAOC,EAAI,OAAOA,CAAC,EAAI,MACzB,MAAc,CAIZ,MACF,CACF,EACA,KAAOlM,GAAiB,CACtB,GAAI,SAAO,OAAW,KACtB,GAAI,CACF,OAAO,aAAa,QAAQiM,EAAK,OAAOjM,CAAI,CAAC,CAC/C,MAAc,CAId,CACF,CACF,CAEF,EAAG,CAACsK,EAAQC,CAAW,CAAC,EAGlB,YAAU,IAAM,CACpB,IAAI4B,EAAU,GACd,OAAC,SAAY,CACX,GAAI,CAACtC,GAAa,CAACmC,IAAoB,MAAQ1F,GAAW,OAC1D,IAAM8F,EAAS,MAAMJ,GAAmB,KAAK,EACzCG,GAAW,OAAOC,GAAW,UAAY5F,EAAS,UACpDA,EAAS,QAAQ,MAAM,YAAY,eAAgB,GAAG4F,CAAM,IAAI,EAChEpC,IAAWoC,CAAM,EAErB,GAAG,EACI,IAAM,CACXD,EAAU,EACZ,CACF,EAAG,CAACtC,EAAWmC,GAAoBhC,EAAU1D,EAAS,CAAC,EAGjD,YAAU,IAAM,CACfE,EAAS,SACVF,IACFE,EAAS,QAAQ,MAAM,YAAY,eAAgB,GAAG0C,CAAY,IAAI,CAE1E,EAAG,CAAC5C,GAAW4C,CAAY,CAAC,EAGtB,YAAU,IAAM,CACpB,GAAK1C,EAAS,SACV,OAAOxG,EAAS,KAAe,OAAO0J,EAAgB,IAAa,CACrE,IAAM2C,EAAKR,GAAkBnC,CAAW,EACxC,GAAI,OAAO2C,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAIjD,IAAMC,EAAU,KAAK,KADP,OAAO1C,GAAY,SAAWA,EAAU,SACpByC,EAAI,KAAK,KAF7B,OAAO1C,GAAY,SAAWA,EAAU,SAEE0C,EAAIA,CAAE,CAAC,EAC/D7F,EAAS,QAAQ,MAAM,YAAY,eAAgB,GAAG8F,CAAO,IAAI,EACjExB,EAAewB,EAAS,CAAE,OAAQ,MAAO,CAAC,CAC5C,CACF,CAIF,EAAG,CAAC,CAAC,EAGC,YAAU,IAAM,CAEpB,GADI,CAAC9F,EAAS,SACV,OAAOxG,EAAS,IAAa,OACjC,IAAMqM,EAAKR,GAAkB7L,CAAI,EACjC,GAAI,OAAOqM,GAAO,UAAY,OAAO,SAASA,CAAE,EAAG,CAGjD,IAAMC,EAAU,KAAK,KADP,OAAO1C,GAAY,SAAWA,EAAU,SACpByC,EAAI,KAAK,KAF7B,OAAO1C,GAAY,SAAWA,EAAU,SAEE0C,EAAIA,CAAE,CAAC,EAC/D7F,EAAS,QAAQ,MAAM,YAAY,eAAgB,GAAG8F,CAAO,IAAI,EACjExB,EAAewB,EAAS,CAAE,OAAQ,YAAa,CAAC,CAClD,CACF,EAAG,CAACtM,EAAM2J,EAASC,EAASiC,GAAmBf,CAAc,CAAC,EAGxD,YAAU,IAAM,CACpB,GAAKtE,EAAS,SACVN,EAAM,2BAA6B,WAAaA,EAAM,WAAa,YAAcA,EAAM,YAAc,WAAY,CACnH,IAAMqG,EAAU/F,EAAS,QAAQ,eAAiC,KAClE,GAAI,CACF+F,GAAQ,MAAM,eAAe,OAAO,CACtC,MAAY,CAKZ,CACF,CACF,EAAG,CAACrG,EAAM,yBAA0BA,EAAM,SAAUA,EAAM,SAAS,CAAC,EAEpE,IAAMsD,GAAatD,EAAM,WAAa,YAAcA,EAAM,YAAc,WAIlE,YAAU,IAAM,CACpB,IAAMsG,EAAYnF,GAAiB,QAC7BoF,EAAWtB,EAAgB,QAE3B3D,EADyB4D,EAA+B,UACTK,EACrD,GAAIe,IAAc,MAAQA,IAActG,EAAM,UAAW,CACvD,IAAMyB,GAAWzB,EAAM,YAAc,WAIrC,GAAI,EAHiB,OAAOkC,EAAS,MAGf,CAACZ,GAAqBG,MAFnB8D,IAA4B,OAAY,OAAYA,IAA4B,YAE7B,CAC1E,IAAI7D,GAAwC,SACxC6E,IAAavG,EAAM,UAAYA,EAAM,WAAa,aAAe,CAACyB,KACpEC,GAAS,QAEX4D,EAAgB,UAAU7D,GAAU,CAAE,OAAAC,EAAO,CAAC,CAChD,CACF,CACAP,GAAiB,QAAUnB,EAAM,UACjCiF,EAAgB,QAAUjF,EAAM,SAChCkF,EAA+B,QAAUK,CAC3C,EAAG,CAACvF,EAAM,UAAWA,EAAM,SAAUkC,EAAMqD,CAAuB,CAAC,EAGnE,IAAMiB,GACJ7C,GAAa3D,EAAM,2BAA6B,WAAasD,GAC3D,gBAACmD,GAAkB,SAAlB,CACC,MAAO,CACL,aAAcnG,EACd,WAAY,eACZ,QAAS,OAAOmD,GAAY,SAAWA,EAAU,IACjD,QAAS,OAAOC,GAAY,SAAWA,EAAU,IACjD,YAAaV,EACb,YAAa,WACb,KAAM,MACN,YAAa,CAAC0D,EAAQC,EAAaC,IAAc,CAC/C,IAAMC,EAAQ,iBAAiBvG,EAAS,OAAQ,EAAE,YAAc,MAC1DwG,GAAQJ,EAASC,EACvB,OAAOC,GAAaC,EAAQ,CAACC,GAAQA,GACvC,EACA,SAAAhD,EACA,cAAgBhK,GAAS,CAGvB,IAAMuM,EADU/F,EAAS,SACD,cACxB,GAAI,CACF+F,GAAQ,MAAM,eAAe,OAAO,CACtC,MAAY,CAKZ,CACAtC,IAAgBjK,CAAI,CACtB,EACA,YAAcA,GAAS,CACrBkK,IAAclK,CAAI,EAClB8K,EAAe9K,EAAM,CAAE,OAAQ,QAAS,CAAC,EACzCgM,IAAoB,OAAOhM,CAAI,CACjC,EACA,OAAQ,QACR,YAAa,EAAQmJ,EACrB,WAAAgB,EACA,cAAeC,GAAiB,EAChC,kBAAAC,GACA,gBAAiB,IAAMnE,EAAM,aAAa,WAAW,EACrD,cAAe,IAAMA,EAAM,WAAW,OAAO,CAC/C,GAECwF,GAAe,OAAS,EAAIA,GAAe,IAAI,CAACpP,EAAIqF,IAAY,eAAarF,EAAI,CAAE,IAAKA,EAAG,KAAOqF,CAAE,CAAC,CAAC,EAAI,gBAACsL,GAAA,IAAW,CACzH,EACE,KAEN,OACE,gBAAC,OACE,GAAGtC,EACJ,IAAKlE,GACL,aAAW,GAAAlC,SAAW,gBAAiBvH,CAAS,EAChD,YAAWkJ,EAAM,UACjB,eAAeA,EAAM,yBAA2BsD,IAAetD,EAAM,2BAA6B,WAAaA,EAAM,aAAe,UAAc,OAClJ,YAAYA,EAAM,wBAA0BA,EAAM,2BAA6B,WAAaA,EAAM,aAAe,SAAY,OAC7H,MAAO,CACL,GAAGf,EACH,eAAgB,GAAG+D,CAAY,IACjC,GAEA,gBAAC,OAAI,UAAU,uBAAuB,eAAcM,IAAc,QAC/DoC,EACH,EACCc,EACH,CAEJ,CAAC,EACD,aACF,EACAtM,GAAM,YAAc,cACpBA,GAAM,OAASuL,GAUf,IAAMtK,GAAgB,aAA2C,CAAC,CAAE,UAAArE,EAAW,MAAA0I,EAAO,GAAGvI,CAAM,EAAGC,IAAQ,CACxG,GAAM,CAAE,cAAAoG,EAAe,gBAAAG,CAAgB,EAAIiC,GAAS,EAGpD,OAAM,YAAU,IAAM,CACpB,GAAIF,EACF,OAAAlC,EAAc,SAAS,EAChB,IAAMG,EAAgB,SAAS,CAE1C,EAAG,CAAC+B,EAAOlC,EAAeG,CAAe,CAAC,EAEnC,gBAAC,QAAM,GAAGxG,EAAO,IAAKC,EAAK,aAAW,GAAAmH,SAAW,kBAAmBvH,CAAS,EAAG,aAAY0I,GAAS,OAAW,CACzH,CAAC,EACDrE,GAAQ,YAAc,gBACtBnF,GAAgBmF,GAAgB,eAAe,EAsB/C,IAAM6L,GAAgB,aAA4C,CAAC,CAAE,OAAA1M,EAAQ,OAAA3D,EAAS,SAAU,YAAAsQ,EAAa,QAAAC,EAAS,aAAAC,EAAc,aAAAC,EAAc,SAAArQ,EAAU,GAAGE,CAAM,EAAGC,IAAQ,CAG9K,GAAM,CAAE,SAAAmQ,CAAS,EAAIC,GAAY,EAC3B,CAAE,UAAAC,CAAU,EAAIC,GAAa,EAC7B,CAAE,YAAAC,CAAY,EAAIC,GAAe,EACjC,CAAE,cAAAC,CAAc,EAAIC,GAAiB,EACrC,CAAE,WAAAC,CAAW,EAAIC,GAAc,EAC/B,CAAE,WAAArL,EAAY,UAAAG,EAAW,SAAAD,CAAS,EAAIoL,GAAQ,EAC9C,CAAE,WAAA1N,EAAY,WAAAE,EAAY,aAAAC,CAAa,EAAIwN,GAAgB,EAE3DC,GAAoB,cACvBC,GAA+C,CAQ9C,OAPAhB,IAAUgB,CAAK,EAGXzL,IAAenC,GACjBsC,EAAU,EAGJjG,EAAQ,CACd,IAAK,SACH0D,EAAWC,CAAM,EACjB,MACF,IAAK,SACHC,EAAWD,CAAM,EACjB,MACF,IAAK,WACHE,EAAaF,CAAM,EACnB,KACJ,CACF,EACA,CAACmC,EAAYG,EAAWvC,EAAYE,EAAYC,EAAcF,EAAQ3D,EAAQuQ,CAAO,CACvF,EAEMiB,GAAe,IAAM,CACzB,OAAQ7N,EAAQ,CACd,IAAK,OACL,IAAK,OACH,OAAO+M,IAAa,YACtB,IAAK,QACH,OAAOA,IAAa,aAAeE,IAAc,YACnD,IAAK,UACH,OAAOE,IAAgB,YACzB,IAAK,YACH,OAAOE,IAAkB,YAC3B,IAAK,SACH,OAAOE,IAAe,WAC1B,CACF,GAAG,EAEGO,EAAyB,cAC5BF,GAA+C,CAC9Cf,IAAee,CAAK,EAChB,GAACjB,GAAe,CAACkB,IACrBxL,EAASrC,CAAM,CACjB,EACA,CAAC6M,EAAcF,EAAakB,EAAaxL,EAAUrC,CAAM,CAC3D,EAEM+N,GAAyB,cAC5BH,GAA+C,CAC9Cd,IAAec,CAAK,EACfjB,GACDxK,IAAenC,GACjBsC,EAAU,CAEd,EACA,CAACwK,EAAcH,EAAaxK,EAAYG,EAAWtC,CAAM,CAC3D,EAEA,OACE,gBAAC,UACE,GAAGrD,EACJ,IAAKC,EACL,QAAS+Q,GACT,aAAcG,EACd,aAAcC,GACd,qBAAoB/N,EACpB,oBAAmB3D,EACnB,gBAAe,CAACwR,GAEfpR,CACH,CAEJ,CAAC,EACDiQ,GAAQ,YAAc",
|
|
6
|
+
"names": ["shell_exports", "__export", "Bottom", "Content", "Header", "Inspector", "Left", "Panel", "Rail", "Root", "Sidebar", "Trigger", "useResponsivePresentation", "useShell", "useSidebarMode", "__toCommonJS", "React", "import_classnames", "React", "import_classnames", "import_radix_ui", "asChildPropDef", "widthPropDefs", "heightPropDefs", "contentSizes", "panelBackgrounds", "materials", "dialogContentPropDefs", "asChildPropDef", "widthPropDefs", "heightPropDefs", "React", "import_classnames", "import_radix_ui", "getMatchingGrayColor", "accentColor", "accentColors", "grayColors", "colorPropDef", "radii", "appearances", "panelBackgrounds", "materials", "scalings", "fontFamilies", "themePropDefs", "asChildPropDef", "accentColors", "grayColors", "radii", "noop", "defaultThemeContext", "themePropDefs", "ThemeContext", "Theme", "props", "forwardedRef", "ThemeContext", "TooltipPrimitive", "ThemeRoot", "ThemeImpl", "appearanceProp", "themePropDefs", "accentColorProp", "grayColorProp", "materialProp", "panelBackgroundProp", "radiusProp", "scalingProp", "fontFamilyProp", "hasBackground", "rootProps", "appearance", "setAppearance", "accentColor", "setAccentColor", "grayColor", "setGrayColor", "effectiveMaterial", "material", "setMaterial", "panelBackground", "setPanelBackground", "radius", "setRadius", "scaling", "setScaling", "fontFamily", "setFontFamily", "getClientOS", "ua", "context", "asChild", "isRoot", "hasBackgroundProp", "onAppearanceChange", "noop", "onAccentColorChange", "onGrayColorChange", "onMaterialChange", "onPanelBackgroundChange", "onRadiusChange", "onScalingChange", "onFontFamilyChange", "themeProps", "Comp", "resolvedGrayColor", "getMatchingGrayColor", "isExplicitAppearance", "clientOS", "setClientOS", "classNames", "React", "import_radix_ui", "highContrastPropDef", "leadingTrimValues", "leadingTrimPropDef", "textAlignValues", "textAlignPropDef", "textWrapValues", "textWrapPropDef", "truncatePropDef", "fontFamilies", "fontFamilyPropDef", "weights", "weightPropDef", "as", "sizes", "headingPropDefs", "asChildPropDef", "fontFamilyPropDef", "weightPropDef", "textAlignPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "colorPropDef", "highContrastPropDef", "import_classnames", "breakpoints", "breakpointSet", "hasOwnProperty", "obj", "key", "breakpointSet", "isResponsiveObject", "obj", "key", "getResponsiveStyles", "className", "customProperties", "args", "responsiveClassNames", "getResponsiveClassNames", "responsiveCustomProperties", "getResponsiveCustomProperties", "allowArbitraryValues", "value", "propValues", "parseValue", "classNames", "getBaseClassName", "isResponsiveObject", "object", "bp", "hasOwnProperty", "breakpointSet", "baseClassName", "bpClassName", "delimiter", "matchedValue", "isNegative", "minus", "absoluteValue", "styles", "prop", "customProperty", "bpProperty", "key", "mergeStyles", "styles", "result", "style", "mergePropDefs", "args", "extractProps", "props", "propDefs", "className", "style", "extractedProps", "allPropDefs", "key", "value", "propDef", "isResponsiveObject", "isResponsivePropDef", "propClassName", "getResponsiveClassNames", "classNames", "propDefValues", "propClassNames", "propCustomProperties", "getResponsiveStyles", "mergeStyles", "marginValues", "marginPropDefs", "mergedPropDefs", "headingPropDefs", "marginPropDefs", "Heading", "props", "forwardedRef", "children", "className", "asChild", "Tag", "color", "headingProps", "extractProps", "combinedClassName", "React", "import_radix_ui", "as", "sizes", "textPropDefs", "asChildPropDef", "fontFamilyPropDef", "weightPropDef", "textAlignPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "colorPropDef", "highContrastPropDef", "mergedPropDefs", "textPropDefs", "marginPropDefs", "Text", "props", "forwardedRef", "children", "className", "asChild", "Tag", "color", "textProps", "extractProps", "combinedClassName", "React", "requireReactElement", "children", "child", "React", "cleanupInstalled", "useBodyPointerEventsCleanup", "hasOpenModal", "hasDialogs", "hasRadixOverlays", "forceCleanup", "safeCleanup", "onDocumentClick", "event", "target", "onEscapeKey", "onInteraction", "intervalId", "Root", "props", "DialogPrimitive", "Trigger", "children", "ref", "requireReactElement", "Content", "allProps", "forwardedRef", "side", "forceMount", "container", "className", "panelBackgroundProp", "materialProp", "restProps", "normalizedSide", "_alignPropDef", "panelBackgroundPropDef", "materialPropDef", "propDefs", "dialogContentPropDefs", "resolvedPanelBackground", "resolvedMaterial", "extractProps", "materialValue", "_mwDefault", "maxWidthWithoutDefault", "sheetPropDefs", "extractedClassName", "contentProps", "contentRef", "combinedRef", "node", "useBodyPointerEventsCleanup", "content", "focusableElements", "firstElement", "lastElement", "handleKeyDown", "event", "Theme", "classNames", "Title", "size", "weight", "Heading", "Description", "color", "rest", "Text", "Close", "import_radix_ui", "VisuallyHidden", "VisuallyHiddenPrimitive", "Root", "React", "_BREAKPOINTS", "React", "ShellContext", "useShell", "ctx", "ShellProvider", "value", "children", "LeftModeContext", "useLeftMode", "PanelModeContext", "usePanelMode", "SidebarModeContext", "useSidebarMode", "InspectorModeContext", "useInspectorMode", "BottomModeContext", "useBottomMode", "PresentationContext", "usePresentation", "PeekContext", "usePeek", "ActionsContext", "useShellActions", "CompositionContext", "useComposition", "InsetContext", "useInset", "useResponsivePresentation", "presentation", "currentBreakpoint", "useShell", "order", "_BREAKPOINTS", "startIdx", "i", "bp", "useResponsiveValue", "value", "map", "useResponsiveInitialState", "controlledValue", "defaultValue", "currentValue", "setValue", "breakpointReady", "onInit", "onResponsiveChange", "controlledIsResponsive", "resolvedControlled", "resolvedDefault", "lastControlledRef", "pendingSyncRef", "latestControlledRef", "latestValueRef", "setValueRef", "controlledChanged", "latestControlled", "latestValue", "didInitRef", "React", "PaneResizeContext", "usePaneResize", "ctx", "React", "import_classnames", "PaneHandle", "className", "children", "props", "ref", "containerRef", "cssVarName", "minSize", "maxSize", "defaultSize", "orientation", "edge", "computeNext", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "collapsible", "target", "requestCollapse", "requestToggle", "usePaneResize", "activeCleanupRef", "ariaOrientation", "ariaLabel", "classNames", "e", "container", "handleEl", "pointerId", "startClient", "startSize", "clamp", "v", "body", "prevCursor", "prevUserSelect", "handleMove", "ev", "client", "next", "cleanup", "handleUp", "handleKey", "finalSize", "snapped", "nearest", "acc", "p", "kev", "rawCurrent", "parsedCurrent", "current", "step", "delta", "docDir", "cssDir", "hasRtlAncestor", "isRtl", "signedDelta", "PanelHandle", "SidebarHandle", "InspectorHandle", "BottomHandle", "omitPaneProps", "source", "keys", "omitSet", "result", "key", "PANE_BASE_INTERNAL_PROPS", "extractPaneDomProps", "extraKeys", "omitKeys", "mapResponsiveBooleanToPaneMode", "value", "mapped", "bp", "val", "React", "import_classnames", "normalizeToPx", "value", "orientation", "str", "rem", "pct", "base", "n", "SIDEBAR_DOM_PROP_KEYS", "Sidebar", "initialProps", "ref", "className", "presentation", "expandedSize", "minSize", "maxSize", "resizable", "collapsible", "onExpand", "onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "children", "style", "thinSize", "toggleModes", "state", "defaultState", "onStateChange", "size", "defaultSize", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "inset", "sidebarDomProps", "extractPaneDomProps", "sidebarMode", "setSidebarMode", "useSidebarMode", "currentBreakpointReady", "usePresentation", "peekTarget", "usePeek", "togglePane", "setSidebarToggleComputer", "useShellActions", "setHasSidebar", "useComposition", "registerInset", "unregisterInset", "useInset", "resolvedPresentation", "useResponsivePresentation", "isOverlay", "isStacked", "localRef", "setRef", "node", "childArray", "handleChildren", "el", "SidebarHandle", "contentChildren", "debounceTimeoutRef", "emitSizeChange", "cb", "strategy", "ms", "s", "meta", "last", "now", "sidebarId", "wasControlledRef", "isControlled", "onStateChangeRef", "stateRef", "stateIsResponsive", "resolvedSidebarControlled", "resolvedSidebarDefault", "useResponsiveInitialState", "next", "initial", "lastNotifyModeRef", "lastResolvedSidebarControlledRef", "current", "prevMode", "controlledChanged", "onExpandRef", "onCollapseRef", "prevSidebarModeRef", "hasInitializedRef", "currentMode", "isContentVisible", "persistenceAdapter", "key", "v", "mounted", "loaded", "resolveDefaultSidebarMode", "resolved", "target", "cur", "lastOverlayWidthRef", "lastOverlayModeRef", "handleEl", "PaneResizeContext", "client", "startClient", "startSize", "isRtl", "delta", "i", "PaneHandle", "normalizeSizeToPx", "value", "normalizeToPx", "px", "clamped", "controlledSize", "peekStyles", "open", "Root", "o", "Content", "VisuallyHidden", "Title", "classNames", "React", "import_classnames", "BOTTOM_DOM_PROP_KEYS", "Bottom", "initialProps", "ref", "className", "presentation", "defaultOpen", "open", "onOpenChange", "expandedSize", "minSize", "maxSize", "resizable", "collapsible", "onExpand", "onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "children", "style", "size", "defaultSize", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "inset", "bottomDomProps", "extractPaneDomProps", "bottomMode", "setBottomMode", "useBottomMode", "currentBreakpointReady", "usePresentation", "peekTarget", "usePeek", "togglePane", "useShellActions", "registerInset", "unregisterInset", "useInset", "resolvedPresentation", "useResponsivePresentation", "isOverlay", "isStacked", "localRef", "setRef", "node", "childArray", "handleChildren", "el", "BottomHandle", "contentChildren", "onOpenChangeRef", "openRef", "normalizedControlledOpen", "mapResponsiveBooleanToPaneMode", "normalizedDefaultOpen", "openIsResponsive", "resolvedBottomControlled", "useResponsiveInitialState", "next", "initial", "debounceTimeoutRef", "emitSizeChange", "cb", "strategy", "ms", "s", "meta", "last", "now", "wasControlledRef", "isControlled", "lastBottomModeRef", "lastResolvedBottomControlledRef", "prevMode", "controlledChanged", "nextOpen", "onExpandRef", "onCollapseRef", "prevBottomModeRef", "hasInitializedRef", "currentMode", "isExpanded", "persistenceAdapter", "key", "v", "mounted", "loaded", "applyLoaded", "value", "err", "handleEl", "PaneResizeContext", "client", "startClient", "startSize", "delta", "i", "PaneHandle", "normalizeSizeToPx", "normalizeToPx", "px", "clamped", "controlledSize", "Root", "o", "Content", "VisuallyHidden", "Title", "classNames", "React", "import_classnames", "INSPECTOR_DOM_PROP_KEYS", "Inspector", "initialProps", "ref", "className", "presentation", "defaultOpen", "open", "onOpenChange", "expandedSize", "minSize", "maxSize", "resizable", "collapsible", "onExpand", "onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "children", "style", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "size", "defaultSize", "inset", "inspectorDomProps", "extractPaneDomProps", "inspectorMode", "setInspectorMode", "useInspectorMode", "currentBreakpointReady", "usePresentation", "peekTarget", "usePeek", "togglePane", "useShellActions", "registerInset", "unregisterInset", "useInset", "resolvedPresentation", "useResponsivePresentation", "isOverlay", "isStacked", "localRef", "setRef", "node", "childArray", "handleChildren", "el", "InspectorHandle", "contentChildren", "onOpenChangeRef", "openRef", "normalizedControlledOpen", "mapResponsiveBooleanToPaneMode", "normalizedDefaultOpen", "openIsResponsive", "resolvedInspectorControlled", "useResponsiveInitialState", "next", "initial", "debounceTimeoutRef", "emitSizeChange", "cb", "strategy", "ms", "s", "meta", "last", "now", "wasControlledRef", "isControlled", "lastInspectorModeRef", "lastResolvedInspectorControlledRef", "prevInspectorMode", "controlledChanged", "nextOpen", "onExpandRef", "onCollapseRef", "prevInspectorModeRef", "hasInitializedRef", "currentMode", "prevMode", "isExpanded", "persistenceAdapter", "key", "v", "mounted", "loaded", "applyLoaded", "value", "err", "handleEl", "PaneResizeContext", "client", "startClient", "startSize", "isRtl", "delta", "i", "PaneHandle", "normalizeSizeToPx", "normalizeToPx", "px", "clamped", "controlledSize", "Root", "o", "Content", "VisuallyHidden", "Title", "classNames", "React", "useBreakpoint", "currentBp", "setCurrentBp", "ready", "setReady", "mqls", "_BREAKPOINTS", "k", "q", "compute", "_e", "matched", "m", "next", "cleanups", "mm", "fn", "SHELL_SLOT", "assignShellSlot", "component", "slot", "isShellComponentType", "el", "comp", "Sidebar", "Inspector", "Bottom", "paneReducer", "state", "action", "next", "Root", "className", "children", "height", "props", "ref", "currentBreakpoint", "currentBreakpointReady", "useBreakpoint", "hasPanelDefaultOpenRef", "paneState", "dispatchPane", "initialChildren", "childArray", "hasPanelDefaultOpen", "railEl", "railDefaultOpen", "hasRailDefaultOpen", "hasInspectorDefaultOpen", "hasInspectorOpenControlled", "hasPanelOpenControlled", "openProp", "getSidebarInitialState", "sidebarEl", "sidebarProps", "getBottomInitialState", "bottomEl", "bottomProps", "setLeftMode", "mode", "setPanelMode", "setSidebarMode", "setInspectorMode", "setBottomMode", "hasLeft", "setHasLeft", "hasSidebar", "setHasSidebar", "sidebarToggleComputerRef", "current", "setSidebarToggleComputer", "fn", "devLeftPres", "setDevLeftPres", "onLeftPres", "p", "railDefaultSizeRef", "panelDefaultSizeRef", "onRailDefaults", "size", "onPanelDefaults", "hasLeftChildren", "Rail", "Panel", "hasSidebarChildren", "sidebarModeRef", "togglePane", "target", "expandPane", "collapsePane", "baseContextValue", "headerEls", "railEls", "panelEls", "sidebarEls", "contentEls", "inspectorEls", "bottomEls", "result", "Header", "Content", "firstRailOpen", "resolvedFirstRailOpen", "responsive", "fallbackOrder", "startIdx", "i", "bp", "firstPanelOpen", "resolvedFirstPanelOpen", "controlSeqRef", "lastRailChangeRef", "lastPanelChangeRef", "lastRailOpenRef", "lastPanelOpenRef", "railOnOpenChange", "panelOnOpenChange", "lastConflictRef", "panelWins", "lastConflict", "leftControlledOpen", "heightStyle", "peekTarget", "setPeekTarget", "peekPane", "clearPeek", "presentationCtxValue", "leftModeCtxValue", "panelModeCtxValue", "sidebarModeCtxValue", "inspectorModeCtxValue", "bottomModeCtxValue", "compositionCtxValue", "insetPanes", "setInsetPanes", "registerInset", "id", "prev", "unregisterInset", "hasAnyInset", "insetCtxValue", "peekCtxValue", "actionsCtxValue", "shellContextValue", "leftContent", "firstRail", "firstPanel", "leftInset", "passthroughProps", "Left", "classNames", "ShellProvider", "PresentationContext", "LeftModeContext", "PanelModeContext", "SidebarModeContext", "InspectorModeContext", "BottomModeContext", "CompositionContext", "PeekContext", "ActionsContext", "InsetContext", "style", "LEFT_DOM_OMIT_PROPS", "initialProps", "presentation", "_collapsible", "onExpand", "onCollapse", "inset", "restProps", "useInset", "propsOpen", "propsDefaultOpen", "propsOnOpenChange", "domProps", "omitPaneProps", "shell", "useShell", "resolvedPresentation", "useResponsivePresentation", "isOverlay", "isStacked", "localRef", "setRef", "node", "lastLeftModeRef", "lastResolvedLeftControlledRef", "normalizedLeftControlled", "normalizedLeftDefault", "mapResponsiveBooleanToPaneMode", "propsOnOpenChangeRef", "propsOpenRef", "resolvedLeftControlled", "useResponsiveInitialState", "initial", "prevPanelModeRef", "prevLeftMode", "prevPanelMode", "controlledChanged", "isControlled", "controlledTarget", "nextOpen", "reason", "onExpandRef", "onCollapseRef", "prevLeftModeForCallbackRef", "hasLeftInitializedRef", "currentMode", "prevMode", "_isExpanded", "open", "panelEl", "railSize", "panelSize", "hasRail", "hasPanel", "overlayPx", "o", "VisuallyHidden", "Title", "_railSize", "_panelSize", "_hasRail", "_includePanel", "expandedSize", "collapsible", "defaultOpen", "onOpenChange", "_inset", "wasControlledRef", "isExpanded", "PANEL_DOM_PROP_KEYS", "defaultSize", "minSize", "maxSize", "resizable", "_onExpand", "_onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "panelDomProps", "extractPaneDomProps", "debounceTimeoutRef", "emitSizeChange", "s", "meta", "last", "now", "prevLeftModeRef", "lastResolvedPanelControlledRef", "normalizedControlledOpen", "normalizedDefaultOpen", "openIsResponsive", "onOpenChangeRef", "resolvedPanelControlled", "handleChildren", "PanelHandle", "contentChildren", "normalizeSizeToPx", "value", "normalizeToPx", "persistenceAdapter", "key", "v", "mounted", "loaded", "px", "clamped", "leftEl", "prevPanel", "prevLeft", "handleEl", "PaneResizeContext", "client", "startClient", "startSize", "isRtl", "delta", "PaneHandle", "Trigger", "peekOnHover", "onClick", "onMouseEnter", "onMouseLeave", "leftMode", "useLeftMode", "panelMode", "usePanelMode", "sidebarMode", "useSidebarMode", "inspectorMode", "useInspectorMode", "bottomMode", "useBottomMode", "usePeek", "useShellActions", "handleClick", "event", "isCollapsed", "handleMouseEnter", "handleMouseLeave"]
|
|
7
|
+
}
|