@womp/kookie-ui 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.css +486 -1070
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +4 -4
- package/dist/cjs/components/_internal/base-button.props.d.ts +2 -7
- package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.props.js +1 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +0 -5
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -10
- package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-menu.utils.d.ts +48 -0
- package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -0
- package/dist/cjs/components/_internal/base-menu.utils.js +2 -0
- package/dist/cjs/components/_internal/base-menu.utils.js.map +7 -0
- package/dist/cjs/components/_internal/base-radio.props.d.ts +0 -5
- package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -5
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js.map +4 -4
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
- package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +4 -4
- package/dist/cjs/components/_internal/menu-context.d.ts +7 -3
- package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
- package/dist/cjs/components/_internal/menu-context.js +1 -1
- package/dist/cjs/components/_internal/menu-context.js.map +4 -4
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +4 -4
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +4 -4
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +4 -4
- package/dist/cjs/components/accordion.props.d.ts +0 -6
- package/dist/cjs/components/accordion.props.d.ts.map +1 -1
- package/dist/cjs/components/accordion.props.js +1 -1
- package/dist/cjs/components/accordion.props.js.map +4 -4
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +4 -4
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +4 -4
- package/dist/cjs/components/avatar.props.d.ts +0 -5
- package/dist/cjs/components/avatar.props.d.ts.map +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +4 -4
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +4 -4
- package/dist/cjs/components/badge.props.d.ts +0 -5
- package/dist/cjs/components/badge.props.d.ts.map +1 -1
- package/dist/cjs/components/badge.props.js +1 -1
- package/dist/cjs/components/badge.props.js.map +4 -4
- package/dist/cjs/components/blockquote.js +1 -1
- package/dist/cjs/components/blockquote.js.map +4 -4
- package/dist/cjs/components/blockquote.props.d.ts +3 -2
- package/dist/cjs/components/blockquote.props.d.ts.map +1 -1
- package/dist/cjs/components/blockquote.props.js +1 -1
- package/dist/cjs/components/blockquote.props.js.map +4 -4
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +4 -4
- package/dist/cjs/components/button.props.js +1 -1
- package/dist/cjs/components/button.props.js.map +4 -4
- package/dist/cjs/components/callout.js +1 -1
- package/dist/cjs/components/callout.js.map +4 -4
- package/dist/cjs/components/callout.props.d.ts +0 -5
- package/dist/cjs/components/callout.props.d.ts.map +1 -1
- package/dist/cjs/components/callout.props.js +1 -1
- package/dist/cjs/components/callout.props.js.map +4 -4
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +2 -2
- package/dist/cjs/components/chatbar.d.ts +46 -44
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js +2 -2
- package/dist/cjs/components/chatbar.js.map +4 -4
- package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-cards.js +1 -1
- package/dist/cjs/components/checkbox-cards.js.map +4 -4
- package/dist/cjs/components/checkbox-cards.props.d.ts +0 -5
- package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-cards.props.js +1 -1
- package/dist/cjs/components/checkbox-cards.props.js.map +4 -4
- package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +4 -4
- package/dist/cjs/components/checkbox-group.props.d.ts +0 -5
- package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.props.js +1 -1
- package/dist/cjs/components/checkbox-group.props.js.map +4 -4
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +4 -4
- package/dist/cjs/components/checkbox.props.js +1 -1
- package/dist/cjs/components/checkbox.props.js.map +4 -4
- package/dist/cjs/components/code.js +1 -1
- package/dist/cjs/components/code.js.map +4 -4
- package/dist/cjs/components/code.props.d.ts +3 -2
- package/dist/cjs/components/code.props.d.ts.map +1 -1
- package/dist/cjs/components/code.props.js +1 -1
- package/dist/cjs/components/code.props.js.map +4 -4
- package/dist/cjs/components/combobox.d.ts +28 -15
- package/dist/cjs/components/combobox.d.ts.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +4 -4
- package/dist/cjs/components/combobox.props.d.ts +46 -8
- package/dist/cjs/components/combobox.props.d.ts.map +1 -1
- package/dist/cjs/components/combobox.props.js +1 -1
- package/dist/cjs/components/combobox.props.js.map +4 -4
- package/dist/cjs/components/context-menu.d.ts +18 -5
- package/dist/cjs/components/context-menu.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +4 -4
- package/dist/cjs/components/context-menu.props.d.ts +1 -1
- package/dist/cjs/components/context-menu.props.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.props.js +1 -1
- package/dist/cjs/components/context-menu.props.js.map +4 -4
- package/dist/cjs/components/data-list.js +1 -1
- package/dist/cjs/components/data-list.js.map +4 -4
- package/dist/cjs/components/data-list.props.d.ts +4 -3
- package/dist/cjs/components/data-list.props.d.ts.map +1 -1
- package/dist/cjs/components/data-list.props.js +1 -1
- package/dist/cjs/components/data-list.props.js.map +4 -4
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.d.ts +11 -18
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.props.js +1 -1
- package/dist/cjs/components/dropdown-menu.props.js.map +4 -4
- package/dist/cjs/components/heading.js +1 -1
- package/dist/cjs/components/heading.js.map +4 -4
- package/dist/cjs/components/heading.props.d.ts +3 -2
- package/dist/cjs/components/heading.props.d.ts.map +1 -1
- package/dist/cjs/components/heading.props.js +1 -1
- package/dist/cjs/components/heading.props.js.map +4 -4
- package/dist/cjs/components/hover-card.js +1 -1
- package/dist/cjs/components/hover-card.js.map +2 -2
- package/dist/cjs/components/icon-button.js +2 -2
- package/dist/cjs/components/icon-button.js.map +4 -4
- package/dist/cjs/components/icon-button.props.js +1 -1
- package/dist/cjs/components/icon-button.props.js.map +4 -4
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/link.js +1 -1
- package/dist/cjs/components/link.js.map +4 -4
- package/dist/cjs/components/link.props.d.ts +0 -5
- package/dist/cjs/components/link.props.d.ts.map +1 -1
- package/dist/cjs/components/link.props.js +1 -1
- package/dist/cjs/components/link.props.js.map +4 -4
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +2 -2
- package/dist/cjs/components/progress.js +1 -1
- package/dist/cjs/components/progress.js.map +4 -4
- package/dist/cjs/components/progress.props.d.ts +0 -5
- package/dist/cjs/components/progress.props.d.ts.map +1 -1
- package/dist/cjs/components/progress.props.js +1 -1
- package/dist/cjs/components/progress.props.js.map +4 -4
- package/dist/cjs/components/radio-cards.js +1 -1
- package/dist/cjs/components/radio-cards.js.map +4 -4
- package/dist/cjs/components/radio-cards.props.d.ts +0 -5
- package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-cards.props.js +1 -1
- package/dist/cjs/components/radio-cards.props.js.map +4 -4
- package/dist/cjs/components/radio-group.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.js.map +4 -4
- package/dist/cjs/components/radio-group.props.d.ts +0 -5
- package/dist/cjs/components/radio-group.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.props.js +1 -1
- package/dist/cjs/components/radio-group.props.js.map +4 -4
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +4 -4
- package/dist/cjs/components/radio.props.js +1 -1
- package/dist/cjs/components/radio.props.js.map +4 -4
- package/dist/cjs/components/schemas/base-button.schema.d.ts +111 -257
- package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/button.schema.d.ts +136 -558
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/button.schema.js +1 -1
- package/dist/cjs/components/schemas/button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/icon-button.schema.d.ts +123 -241
- package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
- package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/index.js +1 -1
- package/dist/cjs/components/schemas/index.js.map +2 -2
- package/dist/cjs/components/schemas/shell.schema.d.ts +592 -851
- package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/shell.schema.js +1 -1
- package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts +138 -1027
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +124 -466
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
- package/dist/cjs/components/scroll-area.js +1 -1
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +4 -4
- package/dist/cjs/components/select.props.d.ts +0 -5
- package/dist/cjs/components/select.props.d.ts.map +1 -1
- package/dist/cjs/components/select.props.js +1 -1
- package/dist/cjs/components/select.props.js.map +4 -4
- package/dist/cjs/components/separator.js.map +1 -1
- package/dist/cjs/components/separator.props.js.map +1 -1
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +4 -4
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +4 -4
- package/dist/cjs/components/sidebar.d.ts +0 -1
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/sidebar.props.d.ts +0 -5
- package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.props.js +1 -1
- package/dist/cjs/components/sidebar.props.js.map +4 -4
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +4 -4
- package/dist/cjs/components/slider.props.d.ts +0 -5
- package/dist/cjs/components/slider.props.d.ts.map +1 -1
- package/dist/cjs/components/slider.props.js +1 -1
- package/dist/cjs/components/slider.props.js.map +4 -4
- package/dist/cjs/components/slot.d.ts +6 -2
- package/dist/cjs/components/slot.d.ts.map +1 -1
- package/dist/cjs/components/switch.d.ts.map +1 -1
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +4 -4
- package/dist/cjs/components/switch.props.d.ts +0 -5
- package/dist/cjs/components/switch.props.d.ts.map +1 -1
- package/dist/cjs/components/switch.props.js +1 -1
- package/dist/cjs/components/switch.props.js.map +4 -4
- package/dist/cjs/components/tab-nav.js +1 -1
- package/dist/cjs/components/tab-nav.js.map +4 -4
- package/dist/cjs/components/tab-nav.props.js +1 -1
- package/dist/cjs/components/tab-nav.props.js.map +4 -4
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +4 -4
- package/dist/cjs/components/tabs.props.js +1 -1
- package/dist/cjs/components/tabs.props.js.map +4 -4
- package/dist/cjs/components/text-area.js.map +1 -1
- package/dist/cjs/components/text-area.props.js.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +1 -1
- package/dist/cjs/components/text-field.props.js.map +1 -1
- package/dist/cjs/components/text.js +1 -1
- package/dist/cjs/components/text.js.map +4 -4
- package/dist/cjs/components/text.props.d.ts +3 -2
- package/dist/cjs/components/text.props.d.ts.map +1 -1
- package/dist/cjs/components/text.props.js +1 -1
- package/dist/cjs/components/text.props.js.map +4 -4
- package/dist/cjs/components/theme-panel.js +3 -3
- package/dist/cjs/components/theme-panel.js.map +4 -4
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +2 -2
- package/dist/cjs/components/theme.props.d.ts +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +2 -2
- package/dist/cjs/components/toggle-button.js +2 -2
- package/dist/cjs/components/toggle-button.js.map +4 -4
- package/dist/cjs/components/toggle-icon-button.js +3 -3
- package/dist/cjs/components/toggle-icon-button.js.map +4 -4
- package/dist/cjs/components/toolbar.js +1 -1
- package/dist/cjs/components/toolbar.js.map +4 -4
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +4 -4
- package/dist/cjs/components/user-card.d.ts.map +1 -1
- package/dist/cjs/components/user-card.js +1 -1
- package/dist/cjs/components/user-card.js.map +4 -4
- package/dist/cjs/components/user-card.props.d.ts +0 -5
- package/dist/cjs/components/user-card.props.d.ts.map +1 -1
- package/dist/cjs/components/user-card.props.js +1 -1
- package/dist/cjs/components/user-card.props.js.map +4 -4
- package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
- package/dist/cjs/components/virtual-menu.js +1 -1
- package/dist/cjs/components/virtual-menu.js.map +4 -4
- package/dist/cjs/helpers/extract-props.js +1 -1
- package/dist/cjs/helpers/extract-props.js.map +2 -2
- package/dist/cjs/helpers/get-margin-styles.js +1 -1
- package/dist/cjs/helpers/get-margin-styles.js.map +2 -2
- package/dist/cjs/hooks/use-breakpoint.d.ts +4 -1
- package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
- package/dist/cjs/hooks/use-breakpoint.js +1 -1
- package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/color.prop.js.map +1 -1
- package/dist/cjs/props/emphasis.prop.d.ts +11 -0
- package/dist/cjs/props/emphasis.prop.d.ts.map +1 -0
- package/dist/cjs/props/emphasis.prop.js +2 -0
- package/dist/cjs/props/emphasis.prop.js.map +7 -0
- package/dist/cjs/props/index.d.ts +1 -1
- package/dist/cjs/props/index.d.ts.map +1 -1
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +4 -4
- package/dist/esm/chunk-2264DHUW.js +2 -0
- package/dist/esm/{chunk-AU3D6F42.js.map → chunk-2264DHUW.js.map} +2 -2
- package/dist/esm/chunk-2CMM7MEL.js +2 -0
- package/dist/esm/chunk-2CMM7MEL.js.map +7 -0
- package/dist/esm/chunk-2I7QRVJ5.js +2 -0
- package/dist/esm/chunk-2I7QRVJ5.js.map +7 -0
- package/dist/esm/{chunk-2FYJTSOP.js → chunk-2SZZ75RJ.js} +2 -2
- package/dist/esm/chunk-3KSGRY6I.js +2 -0
- package/dist/esm/chunk-3KSGRY6I.js.map +7 -0
- package/dist/esm/chunk-4NTGF22C.js +2 -0
- package/dist/esm/chunk-4NTGF22C.js.map +7 -0
- package/dist/esm/chunk-4WVNMGI5.js +2 -0
- package/dist/esm/chunk-4WVNMGI5.js.map +7 -0
- package/dist/esm/chunk-4XKK32M4.js +2 -0
- package/dist/esm/chunk-4XKK32M4.js.map +7 -0
- package/dist/esm/chunk-5SNHUVDA.js +2 -0
- package/dist/esm/{chunk-H7ST535H.js → chunk-5WRCK4R7.js} +2 -2
- package/dist/esm/chunk-5XV4QEP5.js +2 -0
- package/dist/esm/chunk-5XV4QEP5.js.map +7 -0
- package/dist/esm/chunk-667BKCUG.js +2 -0
- package/dist/esm/chunk-667BKCUG.js.map +7 -0
- package/dist/esm/{chunk-MHPPVJDB.js → chunk-67MKPTZJ.js} +2 -2
- package/dist/esm/chunk-7EWFBWBS.js +2 -0
- package/dist/esm/chunk-7EWFBWBS.js.map +7 -0
- package/dist/esm/{chunk-CRWYCLTE.js → chunk-ABSKRHVM.js} +2 -2
- package/dist/esm/chunk-AF6XKU3W.js +2 -0
- package/dist/esm/chunk-AF6XKU3W.js.map +7 -0
- package/dist/esm/chunk-AGSSWWFI.js +2 -0
- package/dist/esm/chunk-AGSSWWFI.js.map +7 -0
- package/dist/esm/{chunk-PTLFMWCN.js → chunk-ALWNS44Q.js} +2 -2
- package/dist/esm/{chunk-3MWWP4MW.js → chunk-BBJUB52V.js} +2 -2
- package/dist/esm/{chunk-GYBLXQ4R.js → chunk-CDG5WH4U.js} +2 -2
- package/dist/esm/{chunk-CVWCKOHO.js → chunk-CEIK5U6C.js} +2 -2
- package/dist/esm/{chunk-374ZYJUP.js → chunk-CESYMTJQ.js} +2 -2
- package/dist/esm/chunk-CFNESRYI.js +2 -0
- package/dist/esm/chunk-CFNESRYI.js.map +7 -0
- package/dist/esm/{chunk-P7IAHW4V.js → chunk-CIYF56YS.js} +2 -2
- package/dist/esm/chunk-CJ27XP5Z.js +2 -0
- package/dist/esm/chunk-CJ27XP5Z.js.map +7 -0
- package/dist/esm/{chunk-LKAK5GXF.js → chunk-CKMMUHKE.js} +2 -2
- package/dist/esm/{chunk-SESAEJ6W.js → chunk-CLMOWP5T.js} +2 -2
- package/dist/esm/{chunk-DUHJVT64.js → chunk-CRSHBENJ.js} +2 -2
- package/dist/esm/{chunk-GJSGKE7B.js → chunk-CTA5ODAO.js} +2 -2
- package/dist/esm/{chunk-CWRNW44F.js → chunk-DSJY5RI3.js} +2 -2
- package/dist/esm/chunk-EBQZ3Z22.js +2 -0
- package/dist/esm/chunk-EBQZ3Z22.js.map +7 -0
- package/dist/esm/chunk-ECXGQQJB.js +2 -0
- package/dist/esm/chunk-ECXGQQJB.js.map +7 -0
- package/dist/esm/chunk-EDKQURDU.js +2 -0
- package/dist/esm/chunk-EDKQURDU.js.map +7 -0
- package/dist/esm/{chunk-M24UXMOQ.js → chunk-EE2IH2GL.js} +2 -2
- package/dist/esm/{chunk-NMKPFUNP.js → chunk-EPTYNVCU.js} +2 -2
- package/dist/esm/chunk-F6V7GBNQ.js +2 -0
- package/dist/esm/chunk-F6V7GBNQ.js.map +7 -0
- package/dist/esm/{chunk-XMRIRFM7.js → chunk-FG7XM7KJ.js} +2 -2
- package/dist/esm/chunk-FMBECDL4.js +2 -0
- package/dist/esm/{chunk-4XJY6FIK.js.map → chunk-FMBECDL4.js.map} +3 -3
- package/dist/esm/{chunk-6IGTK4JE.js → chunk-GAV3NHYL.js} +2 -2
- package/dist/esm/{chunk-TOOSHJOA.js → chunk-GO7OHBHW.js} +2 -2
- package/dist/esm/{chunk-MBCBP73P.js → chunk-HJU4I34X.js} +2 -2
- package/dist/esm/{chunk-VX6ARMWP.js → chunk-HSAG7C53.js} +2 -2
- package/dist/esm/{chunk-K6QZMNCD.js → chunk-IFM4EMZB.js} +2 -2
- package/dist/esm/chunk-JFWMAYEH.js +2 -0
- package/dist/esm/chunk-JFWMAYEH.js.map +7 -0
- package/dist/esm/{chunk-HF5WY5YE.js → chunk-JGLAE5G7.js} +2 -2
- package/dist/esm/{chunk-4YFJWXL2.js → chunk-JJKQ7CGI.js} +2 -2
- package/dist/esm/chunk-JSW6J6RS.js +2 -0
- package/dist/esm/chunk-JSW6J6RS.js.map +7 -0
- package/dist/esm/{chunk-P7HYVJSU.js → chunk-K3UAS7RW.js} +2 -2
- package/dist/esm/chunk-KCWESYMR.js +2 -0
- package/dist/esm/chunk-KCWESYMR.js.map +7 -0
- package/dist/esm/{chunk-25WZA7ZU.js → chunk-KFR3CK24.js} +2 -2
- package/dist/esm/chunk-KJUDZCYK.js +2 -0
- package/dist/esm/{chunk-SO67YEVQ.js.map → chunk-KJUDZCYK.js.map} +2 -2
- package/dist/esm/{chunk-WFMYNZXZ.js → chunk-KMPE7TJ6.js} +2 -2
- package/dist/esm/{chunk-WXP6MMUB.js → chunk-KOFEFBB3.js} +2 -2
- package/dist/esm/chunk-KRDP5SQ7.js +2 -0
- package/dist/esm/chunk-KRDP5SQ7.js.map +7 -0
- package/dist/esm/chunk-KZWNGWIM.js +2 -0
- package/dist/esm/chunk-KZWNGWIM.js.map +7 -0
- package/dist/esm/chunk-KZYFTDGO.js +2 -0
- package/dist/esm/chunk-KZYFTDGO.js.map +7 -0
- package/dist/esm/chunk-L3BWTV7I.js +2 -0
- package/dist/esm/chunk-L3BWTV7I.js.map +7 -0
- package/dist/esm/{chunk-W7N7V5YD.js → chunk-M6DJRFJZ.js} +2 -2
- package/dist/esm/{chunk-7QDTSBJF.js → chunk-MCPRXVKZ.js} +2 -2
- package/dist/esm/{chunk-DNHUQLXO.js → chunk-MEO7MJMQ.js} +2 -2
- package/dist/esm/{chunk-YVBCDTTD.js → chunk-MN3XALXD.js} +2 -2
- package/dist/esm/{chunk-F7IYL2VW.js → chunk-MS5J4MF6.js} +2 -2
- package/dist/esm/{chunk-OSRJRBKP.js → chunk-MTOLKA6S.js} +2 -2
- package/dist/esm/{chunk-MBE2YSBU.js → chunk-N4GTDLRD.js} +2 -2
- package/dist/esm/chunk-NIIEIZKQ.js +2 -0
- package/dist/esm/chunk-NIIEIZKQ.js.map +7 -0
- package/dist/esm/{chunk-FHOCUZDR.js → chunk-NIQT45PJ.js} +2 -2
- package/dist/esm/chunk-NVDXXGVW.js +2 -0
- package/dist/esm/chunk-NVDXXGVW.js.map +7 -0
- package/dist/esm/{chunk-IKSN4RNB.js → chunk-O2U6RJTB.js} +3 -3
- package/dist/esm/{chunk-IKSN4RNB.js.map → chunk-O2U6RJTB.js.map} +2 -2
- package/dist/esm/{chunk-TOLLPRMM.js → chunk-OFUNVHZ5.js} +2 -2
- package/dist/esm/chunk-OGVKSYLL.js +2 -0
- package/dist/esm/chunk-OGVKSYLL.js.map +7 -0
- package/dist/esm/chunk-OJU5GCDZ.js +2 -0
- package/dist/esm/chunk-OJU5GCDZ.js.map +7 -0
- package/dist/esm/{chunk-RMKXWYOV.js → chunk-OLAWVEAI.js} +2 -2
- package/dist/esm/chunk-OS3FCYZY.js +2 -0
- package/dist/esm/{chunk-UWT6TE5D.js → chunk-OTXCKEWT.js} +2 -2
- package/dist/esm/chunk-OWMA6GTG.js +2 -0
- package/dist/esm/chunk-OWMA6GTG.js.map +7 -0
- package/dist/esm/chunk-PZ7OYATT.js +2 -0
- package/dist/esm/chunk-PZ7OYATT.js.map +7 -0
- package/dist/esm/chunk-QFPHEY77.js +2 -0
- package/dist/esm/chunk-QFPHEY77.js.map +7 -0
- package/dist/esm/chunk-QQ62LO3X.js +2 -0
- package/dist/esm/chunk-QQ62LO3X.js.map +7 -0
- package/dist/esm/{chunk-MK2R6DAU.js → chunk-QWVU2TW4.js} +2 -2
- package/dist/esm/{chunk-MK2R6DAU.js.map → chunk-QWVU2TW4.js.map} +3 -3
- package/dist/esm/chunk-RDAMYQFF.js +2 -0
- package/dist/esm/chunk-RDAMYQFF.js.map +7 -0
- package/dist/esm/{chunk-D6B7IMZU.js → chunk-RNTCHVFI.js} +2 -2
- package/dist/esm/{chunk-YUP6EICB.js → chunk-SEY4NA45.js} +2 -2
- package/dist/esm/{chunk-YV2KYHGR.js → chunk-UBOOUDS4.js} +2 -2
- package/dist/esm/chunk-V27ZAN3E.js +2 -0
- package/dist/esm/chunk-V27ZAN3E.js.map +7 -0
- package/dist/esm/chunk-VBI3AWPT.js +2 -0
- package/dist/esm/chunk-VBI3AWPT.js.map +7 -0
- package/dist/esm/{chunk-S56YSRHP.js → chunk-VHECAEUP.js} +2 -2
- package/dist/esm/chunk-VLTXI4A7.js +2 -0
- package/dist/esm/chunk-VLTXI4A7.js.map +7 -0
- package/dist/esm/{chunk-4AQTUBVP.js → chunk-VNH7BJOA.js} +2 -2
- package/dist/esm/{chunk-IEWCQU2S.js → chunk-VR7ZAFYN.js} +2 -2
- package/dist/esm/chunk-VZSQATP6.js +2 -0
- package/dist/esm/{chunk-666GX7O5.js.map → chunk-VZSQATP6.js.map} +2 -2
- package/dist/esm/{chunk-PLWXTEVE.js → chunk-W2FOBR5Q.js} +2 -2
- package/dist/esm/chunk-WGYUWEQV.js +2 -0
- package/dist/esm/chunk-WGYUWEQV.js.map +7 -0
- package/dist/esm/{chunk-FXUUI6Z2.js → chunk-WHFJ4JUN.js} +2 -2
- package/dist/esm/chunk-WMGIFPI2.js +2 -0
- package/dist/esm/chunk-WMGIFPI2.js.map +7 -0
- package/dist/esm/chunk-WXQIIKWV.js +2 -0
- package/dist/esm/chunk-WXQIIKWV.js.map +7 -0
- package/dist/esm/{chunk-2UPAYDKR.js → chunk-X7V3V3W4.js} +2 -2
- package/dist/esm/{chunk-6XGZPIUT.js → chunk-XYVLQDGR.js} +2 -2
- package/dist/esm/{chunk-6XGZPIUT.js.map → chunk-XYVLQDGR.js.map} +2 -2
- package/dist/esm/{chunk-S2HA3W3V.js → chunk-Y5RCH23Z.js} +2 -2
- package/dist/esm/{chunk-OWAUCLRT.js → chunk-YBSRX63K.js} +2 -2
- package/dist/esm/{chunk-66ZLZAAJ.js → chunk-ZNK6AH2G.js} +1 -1
- package/dist/esm/{chunk-66ZLZAAJ.js.map → chunk-ZNK6AH2G.js.map} +1 -1
- package/dist/esm/{chunk-KPBG7CIL.js → chunk-ZO7TTWJI.js} +2 -2
- package/dist/esm/chunk-ZWZGUBL4.js +2 -0
- package/dist/esm/chunk-ZWZGUBL4.js.map +7 -0
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.props.d.ts +2 -7
- package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +0 -5
- package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.props.d.ts +0 -10
- package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.d.ts +48 -0
- package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -0
- package/dist/esm/components/_internal/base-menu.utils.js +2 -0
- package/dist/esm/components/_internal/base-radio.props.d.ts +0 -5
- package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -5
- package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
- package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
- package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
- package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
- package/dist/esm/components/_internal/menu-context.d.ts +7 -3
- package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-handles.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-prop-helpers.js +1 -1
- package/dist/esm/components/_internal/shell-resize.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/accessible-icon.js +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.props.d.ts +0 -6
- package/dist/esm/components/accordion.props.d.ts.map +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.props.js +1 -1
- package/dist/esm/components/aspect-ratio.js +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.props.d.ts +0 -5
- package/dist/esm/components/avatar.props.d.ts.map +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.props.d.ts +0 -5
- package/dist/esm/components/badge.props.d.ts.map +1 -1
- package/dist/esm/components/badge.props.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.d.ts +3 -2
- package/dist/esm/components/blockquote.props.d.ts.map +1 -1
- package/dist/esm/components/blockquote.props.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/box.props.js +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.props.js +1 -1
- package/dist/esm/components/callout.js +1 -1
- package/dist/esm/components/callout.props.d.ts +0 -5
- package/dist/esm/components/callout.props.d.ts.map +1 -1
- package/dist/esm/components/callout.props.js +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.props.js +1 -1
- package/dist/esm/components/chatbar.d.ts +46 -44
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
- package/dist/esm/components/checkbox-cards.js +1 -1
- package/dist/esm/components/checkbox-cards.props.d.ts +0 -5
- package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-cards.props.js +1 -1
- package/dist/esm/components/checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.primitive.js +1 -1
- package/dist/esm/components/checkbox-group.props.d.ts +0 -5
- package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.d.ts +3 -2
- package/dist/esm/components/code.props.d.ts.map +1 -1
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.d.ts +28 -15
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.d.ts +46 -8
- package/dist/esm/components/combobox.props.d.ts.map +1 -1
- package/dist/esm/components/combobox.props.js +1 -1
- package/dist/esm/components/container.js +1 -1
- package/dist/esm/components/container.props.js +1 -1
- package/dist/esm/components/context-menu.d.ts +18 -5
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.props.d.ts +1 -1
- package/dist/esm/components/context-menu.props.d.ts.map +1 -1
- package/dist/esm/components/context-menu.props.js +1 -1
- package/dist/esm/components/data-list.js +1 -1
- package/dist/esm/components/data-list.props.d.ts +4 -3
- package/dist/esm/components/data-list.props.d.ts.map +1 -1
- package/dist/esm/components/data-list.props.js +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.props.js +1 -1
- package/dist/esm/components/dropdown-menu.d.ts +11 -18
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.props.js +1 -1
- package/dist/esm/components/em.js +1 -1
- package/dist/esm/components/em.props.js +1 -1
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/flex.props.js +1 -1
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/grid.props.js +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.props.d.ts +3 -2
- package/dist/esm/components/heading.props.d.ts.map +1 -1
- package/dist/esm/components/heading.props.js +1 -1
- package/dist/esm/components/hover-card.js +1 -1
- package/dist/esm/components/hover-card.props.js +1 -1
- package/dist/esm/components/icon-button.js +1 -1
- package/dist/esm/components/icon-button.props.js +1 -1
- package/dist/esm/components/icons.js +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/image.props.js +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/inset.js +1 -1
- package/dist/esm/components/inset.props.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.props.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.d.ts +0 -5
- package/dist/esm/components/link.props.d.ts.map +1 -1
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/navbar.props.js +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.props.js +1 -1
- package/dist/esm/components/portal.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.props.d.ts +0 -5
- package/dist/esm/components/progress.props.d.ts.map +1 -1
- package/dist/esm/components/progress.props.js +1 -1
- package/dist/esm/components/quote.js +1 -1
- package/dist/esm/components/quote.props.js +1 -1
- package/dist/esm/components/radio-cards.js +1 -1
- package/dist/esm/components/radio-cards.props.d.ts +0 -5
- package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
- package/dist/esm/components/radio-cards.props.js +1 -1
- package/dist/esm/components/radio-group.d.ts.map +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.d.ts +0 -5
- package/dist/esm/components/radio-group.props.d.ts.map +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/reset.js +1 -1
- package/dist/esm/components/schemas/base-button.schema.d.ts +111 -257
- package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/base-button.schema.js +1 -1
- package/dist/esm/components/schemas/button.schema.d.ts +136 -558
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/button.schema.js +1 -1
- package/dist/esm/components/schemas/icon-button.schema.d.ts +123 -241
- package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/icon-button.schema.js +1 -1
- package/dist/esm/components/schemas/index.js +1 -1
- package/dist/esm/components/schemas/shell.schema.d.ts +592 -851
- package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/shell.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.d.ts +138 -1027
- package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +124 -466
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area.props.js +1 -1
- package/dist/esm/components/section.js +1 -1
- package/dist/esm/components/section.props.js +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/segmented-control.props.js +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.props.d.ts +0 -5
- package/dist/esm/components/select.props.d.ts.map +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.hooks.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.types.js +1 -1
- package/dist/esm/components/sidebar.d.ts +0 -1
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/sidebar.props.d.ts +0 -5
- package/dist/esm/components/sidebar.props.d.ts.map +1 -1
- package/dist/esm/components/sidebar.props.js +1 -1
- package/dist/esm/components/skeleton.js +1 -1
- package/dist/esm/components/skeleton.props.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.props.d.ts +0 -5
- package/dist/esm/components/slider.props.d.ts.map +1 -1
- package/dist/esm/components/slider.props.js +1 -1
- package/dist/esm/components/slot.d.ts +6 -2
- package/dist/esm/components/slot.d.ts.map +1 -1
- package/dist/esm/components/slot.js +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/spinner.props.js +1 -1
- package/dist/esm/components/strong.js +1 -1
- package/dist/esm/components/strong.props.js +1 -1
- package/dist/esm/components/switch.d.ts.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.props.d.ts +0 -5
- package/dist/esm/components/switch.props.d.ts.map +1 -1
- package/dist/esm/components/switch.props.js +1 -1
- package/dist/esm/components/tab-nav.js +1 -1
- package/dist/esm/components/tab-nav.props.js +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/table.props.js +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.props.js +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.props.js +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/text-field.props.js +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.props.d.ts +3 -2
- package/dist/esm/components/text.props.d.ts.map +1 -1
- package/dist/esm/components/text.props.js +1 -1
- package/dist/esm/components/theme-panel.js +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.props.d.ts +1 -1
- package/dist/esm/components/theme.props.js +1 -1
- package/dist/esm/components/toggle-button.js +1 -1
- package/dist/esm/components/toggle-icon-button.js +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/tooltip.props.js +1 -1
- package/dist/esm/components/user-card.d.ts.map +1 -1
- package/dist/esm/components/user-card.js +1 -1
- package/dist/esm/components/user-card.props.d.ts +0 -5
- package/dist/esm/components/user-card.props.d.ts.map +1 -1
- package/dist/esm/components/user-card.props.js +1 -1
- package/dist/esm/components/virtual-menu.d.ts.map +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/components/visually-hidden.js +1 -1
- package/dist/esm/helpers/compile-prop-defs.js +1 -1
- package/dist/esm/helpers/extract-margin-props.js +1 -1
- package/dist/esm/helpers/extract-props.js +1 -1
- package/dist/esm/helpers/font-config.js +1 -1
- package/dist/esm/helpers/get-margin-styles.js +1 -1
- package/dist/esm/helpers/get-matching-gray-color.js +1 -1
- package/dist/esm/helpers/get-responsive-styles.js +1 -1
- package/dist/esm/helpers/get-subtree.js +1 -1
- package/dist/esm/helpers/has-own-property.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/inert.js +1 -1
- package/dist/esm/helpers/is-responsive-object.js +1 -1
- package/dist/esm/helpers/map-prop-values.js +1 -1
- package/dist/esm/helpers/merge-styles.js +1 -1
- package/dist/esm/helpers/normalize-to-px.js +1 -1
- package/dist/esm/helpers/require-react-element.js +1 -1
- package/dist/esm/helpers/use-deprecation-warning.js +1 -1
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
- package/dist/esm/hooks/use-breakpoint.d.ts +4 -1
- package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
- package/dist/esm/hooks/use-breakpoint.js +1 -1
- package/dist/esm/hooks/use-live-announcer.js +1 -1
- package/dist/esm/hooks/use-prop-synced-state.js +1 -1
- package/dist/esm/hooks/use-toggle-state.js +1 -1
- package/dist/esm/hooks/use-tooltip-wrapper.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/as-child.prop.js +1 -1
- package/dist/esm/props/color.prop.js +1 -1
- package/dist/esm/props/emphasis.prop.d.ts +11 -0
- package/dist/esm/props/emphasis.prop.d.ts.map +1 -0
- package/dist/esm/props/emphasis.prop.js +2 -0
- package/dist/esm/props/emphasis.prop.js.map +7 -0
- package/dist/esm/props/font-family.prop.js +1 -1
- package/dist/esm/props/gap.props.js +1 -1
- package/dist/esm/props/height.props.js +1 -1
- package/dist/esm/props/index.d.ts +1 -1
- package/dist/esm/props/index.d.ts.map +1 -1
- package/dist/esm/props/index.js +1 -1
- package/dist/esm/props/layout.props.js +1 -1
- package/dist/esm/props/leading-trim.prop.js +1 -1
- package/dist/esm/props/margin.props.js +1 -1
- package/dist/esm/props/padding.props.js +1 -1
- package/dist/esm/props/prop-def.js +1 -1
- package/dist/esm/props/radius.prop.js +1 -1
- package/dist/esm/props/shadow.props.js +1 -1
- package/dist/esm/props/text-align.prop.js +1 -1
- package/dist/esm/props/text-wrap.prop.js +1 -1
- package/dist/esm/props/truncate.prop.js +1 -1
- package/dist/esm/props/weight.prop.js +1 -1
- package/dist/esm/props/width.props.js +1 -1
- package/fonts.css +2 -0
- package/package.json +36 -36
- package/schemas/base-button.json +64 -63
- package/schemas/button.json +78 -77
- package/schemas/icon-button.json +76 -75
- package/schemas/index.json +380 -375
- package/schemas/toggle-button.json +82 -81
- package/schemas/toggle-icon-button.json +80 -79
- package/src/components/_internal/base-button.css +14 -69
- package/src/components/_internal/base-button.props.ts +2 -4
- package/src/components/_internal/base-checkbox.css +9 -63
- package/src/components/_internal/base-checkbox.props.ts +0 -2
- package/src/components/_internal/base-menu.css +56 -183
- package/src/components/_internal/base-menu.props.ts +0 -2
- package/src/components/_internal/base-menu.utils.tsx +144 -0
- package/src/components/_internal/base-radio.css +9 -46
- package/src/components/_internal/base-radio.props.ts +0 -2
- package/src/components/_internal/base-sidebar-menu.css +3 -3
- package/src/components/_internal/base-tab-list.css +1 -7
- package/src/components/_internal/base-tab-list.props.ts +0 -2
- package/src/components/_internal/dropdown-menu-drill-down.tsx +281 -183
- package/src/components/_internal/menu-context.tsx +24 -15
- package/src/components/accordion.css +4 -62
- package/src/components/accordion.props.tsx +0 -3
- package/src/components/avatar.css +10 -61
- package/src/components/avatar.props.tsx +0 -2
- package/src/components/badge.css +7 -32
- package/src/components/badge.props.tsx +0 -2
- package/src/components/blockquote.props.tsx +2 -2
- package/src/components/callout.css +5 -25
- package/src/components/callout.props.tsx +0 -2
- package/src/components/chatbar.css +94 -26
- package/src/components/chatbar.tsx +742 -735
- package/src/components/checkbox-cards.props.tsx +0 -2
- package/src/components/checkbox-cards.tsx +1 -4
- package/src/components/checkbox-group.tsx +0 -2
- package/src/components/code.css +36 -36
- package/src/components/code.props.tsx +2 -2
- package/src/components/combobox.css +61 -120
- package/src/components/combobox.props.tsx +15 -5
- package/src/components/combobox.tsx +439 -215
- package/src/components/context-menu.props.tsx +4 -1
- package/src/components/context-menu.tsx +106 -63
- package/src/components/data-list.css +14 -9
- package/src/components/data-list.props.tsx +5 -2
- package/src/components/dropdown-menu.css +41 -121
- package/src/components/dropdown-menu.tsx +427 -276
- package/src/components/heading.css +16 -5
- package/src/components/heading.props.tsx +2 -2
- package/src/components/link.css +3 -4
- package/src/components/link.props.tsx +0 -2
- package/src/components/progress.css +3 -10
- package/src/components/progress.props.tsx +0 -2
- package/src/components/radio-cards.css +1 -4
- package/src/components/radio-cards.props.tsx +0 -2
- package/src/components/radio-group.props.tsx +0 -2
- package/src/components/radio-group.tsx +0 -2
- package/src/components/schemas/base-button.schema.ts +0 -10
- package/src/components/schemas/shell.schema.ts +11 -18
- package/src/components/scroll-area.css +2 -3
- package/src/components/select.css +13 -96
- package/src/components/select.props.tsx +0 -2
- package/src/components/sheet.tsx +2 -2
- package/src/components/sidebar.css +21 -115
- package/src/components/sidebar.props.tsx +0 -2
- package/src/components/sidebar.tsx +2 -5
- package/src/components/slider.css +4 -37
- package/src/components/slider.props.tsx +0 -2
- package/src/components/slider.tsx +1 -1
- package/src/components/switch.css +4 -23
- package/src/components/switch.props.tsx +0 -2
- package/src/components/switch.tsx +1 -3
- package/src/components/text.css +16 -5
- package/src/components/text.props.tsx +2 -2
- package/src/components/theme-panel.tsx +1 -1
- package/src/components/theme.props.tsx +1 -1
- package/src/components/user-card.props.tsx +0 -2
- package/src/components/user-card.tsx +1 -2
- package/src/components/virtual-menu.tsx +12 -8
- package/src/hooks/use-breakpoint.ts +19 -3
- package/src/props/color.prop.ts +1 -1
- package/src/props/emphasis.prop.ts +19 -0
- package/src/props/index.ts +1 -1
- package/src/styles/fonts.css +6 -1
- package/src/styles/tokens/color.css +109 -0
- package/src/styles/tokens/constants.css +0 -1
- package/src/styles/tokens/font-family.css +13 -5
- package/styles.css +694 -1225
- package/tokens/base.css +205 -151
- package/tokens.css +205 -152
- package/dist/cjs/props/high-contrast.prop.d.ts +0 -9
- package/dist/cjs/props/high-contrast.prop.d.ts.map +0 -1
- package/dist/cjs/props/high-contrast.prop.js +0 -2
- package/dist/cjs/props/high-contrast.prop.js.map +0 -7
- package/dist/esm/chunk-3DC63EZP.js +0 -2
- package/dist/esm/chunk-3DC63EZP.js.map +0 -7
- package/dist/esm/chunk-3XT5P2HO.js +0 -2
- package/dist/esm/chunk-4TCXI3L3.js +0 -2
- package/dist/esm/chunk-4TCXI3L3.js.map +0 -7
- package/dist/esm/chunk-4XJY6FIK.js +0 -2
- package/dist/esm/chunk-4Z33XHOK.js +0 -2
- package/dist/esm/chunk-4Z33XHOK.js.map +0 -7
- package/dist/esm/chunk-666GX7O5.js +0 -2
- package/dist/esm/chunk-6HEAF5IT.js +0 -2
- package/dist/esm/chunk-6HEAF5IT.js.map +0 -7
- package/dist/esm/chunk-A2RZGGMY.js +0 -2
- package/dist/esm/chunk-A2RZGGMY.js.map +0 -7
- package/dist/esm/chunk-A3NH376A.js +0 -2
- package/dist/esm/chunk-A3NH376A.js.map +0 -7
- package/dist/esm/chunk-AU3D6F42.js +0 -2
- package/dist/esm/chunk-B24BDVG2.js +0 -2
- package/dist/esm/chunk-B24BDVG2.js.map +0 -7
- package/dist/esm/chunk-BI7W34WW.js +0 -2
- package/dist/esm/chunk-BI7W34WW.js.map +0 -7
- package/dist/esm/chunk-CBR3VIRS.js +0 -2
- package/dist/esm/chunk-CBR3VIRS.js.map +0 -7
- package/dist/esm/chunk-D2AZAGGP.js +0 -2
- package/dist/esm/chunk-D2AZAGGP.js.map +0 -7
- package/dist/esm/chunk-E2Z5IA2P.js +0 -2
- package/dist/esm/chunk-E2Z5IA2P.js.map +0 -7
- package/dist/esm/chunk-F7IUK2I2.js +0 -2
- package/dist/esm/chunk-FLBLS7M4.js +0 -2
- package/dist/esm/chunk-FLBLS7M4.js.map +0 -7
- package/dist/esm/chunk-GSIE6SUD.js +0 -2
- package/dist/esm/chunk-GSIE6SUD.js.map +0 -7
- package/dist/esm/chunk-GWXVETMF.js +0 -2
- package/dist/esm/chunk-GWXVETMF.js.map +0 -7
- package/dist/esm/chunk-HOHUDTTL.js +0 -2
- package/dist/esm/chunk-HOHUDTTL.js.map +0 -7
- package/dist/esm/chunk-HUKPWYG2.js +0 -2
- package/dist/esm/chunk-HUKPWYG2.js.map +0 -7
- package/dist/esm/chunk-HVWEPVBH.js +0 -2
- package/dist/esm/chunk-HVWEPVBH.js.map +0 -7
- package/dist/esm/chunk-IDYHZIS6.js +0 -2
- package/dist/esm/chunk-IDYHZIS6.js.map +0 -7
- package/dist/esm/chunk-IGQRZCAI.js +0 -2
- package/dist/esm/chunk-IGQRZCAI.js.map +0 -7
- package/dist/esm/chunk-ILRJA7FU.js +0 -2
- package/dist/esm/chunk-ILRJA7FU.js.map +0 -7
- package/dist/esm/chunk-KKBP2CRH.js +0 -2
- package/dist/esm/chunk-KKBP2CRH.js.map +0 -7
- package/dist/esm/chunk-KTAFIHJY.js +0 -2
- package/dist/esm/chunk-KTAFIHJY.js.map +0 -7
- package/dist/esm/chunk-MCQAJV4K.js +0 -2
- package/dist/esm/chunk-MCQAJV4K.js.map +0 -7
- package/dist/esm/chunk-MJ47O7KH.js +0 -2
- package/dist/esm/chunk-MJ47O7KH.js.map +0 -7
- package/dist/esm/chunk-MOR3NSXQ.js +0 -2
- package/dist/esm/chunk-MOR3NSXQ.js.map +0 -7
- package/dist/esm/chunk-N2B7TWIP.js +0 -2
- package/dist/esm/chunk-N2B7TWIP.js.map +0 -7
- package/dist/esm/chunk-QCNUTT4R.js +0 -2
- package/dist/esm/chunk-QCNUTT4R.js.map +0 -7
- package/dist/esm/chunk-QEOAXJLN.js +0 -2
- package/dist/esm/chunk-QEOAXJLN.js.map +0 -7
- package/dist/esm/chunk-SO67YEVQ.js +0 -2
- package/dist/esm/chunk-TBJ6L4NL.js +0 -2
- package/dist/esm/chunk-TBJ6L4NL.js.map +0 -7
- package/dist/esm/chunk-TGN5ZJU5.js +0 -2
- package/dist/esm/chunk-TGN5ZJU5.js.map +0 -7
- package/dist/esm/chunk-UGD7Z3L4.js +0 -2
- package/dist/esm/chunk-UGD7Z3L4.js.map +0 -7
- package/dist/esm/chunk-UMX5MGLG.js +0 -2
- package/dist/esm/chunk-UMX5MGLG.js.map +0 -7
- package/dist/esm/chunk-WR7YLY46.js +0 -2
- package/dist/esm/chunk-WR7YLY46.js.map +0 -7
- package/dist/esm/chunk-WZETC7WV.js +0 -2
- package/dist/esm/chunk-WZETC7WV.js.map +0 -7
- package/dist/esm/chunk-XGGLYV5D.js +0 -2
- package/dist/esm/chunk-XGGLYV5D.js.map +0 -7
- package/dist/esm/chunk-XKASPWCJ.js +0 -2
- package/dist/esm/chunk-XKASPWCJ.js.map +0 -7
- package/dist/esm/chunk-YEB3H7QN.js +0 -2
- package/dist/esm/chunk-YEB3H7QN.js.map +0 -7
- package/dist/esm/chunk-ZRKE3NVU.js +0 -2
- package/dist/esm/chunk-ZRKE3NVU.js.map +0 -7
- package/dist/esm/chunk-ZY6SQWHT.js +0 -2
- package/dist/esm/chunk-ZY6SQWHT.js.map +0 -7
- package/dist/esm/props/high-contrast.prop.d.ts +0 -9
- package/dist/esm/props/high-contrast.prop.d.ts.map +0 -1
- package/dist/esm/props/high-contrast.prop.js +0 -2
- package/src/props/high-contrast.prop.ts +0 -13
- /package/dist/esm/{chunk-2FYJTSOP.js.map → chunk-2SZZ75RJ.js.map} +0 -0
- /package/dist/esm/{chunk-F7IUK2I2.js.map → chunk-5SNHUVDA.js.map} +0 -0
- /package/dist/esm/{chunk-H7ST535H.js.map → chunk-5WRCK4R7.js.map} +0 -0
- /package/dist/esm/{chunk-MHPPVJDB.js.map → chunk-67MKPTZJ.js.map} +0 -0
- /package/dist/esm/{chunk-CRWYCLTE.js.map → chunk-ABSKRHVM.js.map} +0 -0
- /package/dist/esm/{chunk-PTLFMWCN.js.map → chunk-ALWNS44Q.js.map} +0 -0
- /package/dist/esm/{chunk-3MWWP4MW.js.map → chunk-BBJUB52V.js.map} +0 -0
- /package/dist/esm/{chunk-GYBLXQ4R.js.map → chunk-CDG5WH4U.js.map} +0 -0
- /package/dist/esm/{chunk-CVWCKOHO.js.map → chunk-CEIK5U6C.js.map} +0 -0
- /package/dist/esm/{chunk-374ZYJUP.js.map → chunk-CESYMTJQ.js.map} +0 -0
- /package/dist/esm/{chunk-P7IAHW4V.js.map → chunk-CIYF56YS.js.map} +0 -0
- /package/dist/esm/{chunk-LKAK5GXF.js.map → chunk-CKMMUHKE.js.map} +0 -0
- /package/dist/esm/{chunk-SESAEJ6W.js.map → chunk-CLMOWP5T.js.map} +0 -0
- /package/dist/esm/{chunk-DUHJVT64.js.map → chunk-CRSHBENJ.js.map} +0 -0
- /package/dist/esm/{chunk-GJSGKE7B.js.map → chunk-CTA5ODAO.js.map} +0 -0
- /package/dist/esm/{chunk-CWRNW44F.js.map → chunk-DSJY5RI3.js.map} +0 -0
- /package/dist/esm/{chunk-M24UXMOQ.js.map → chunk-EE2IH2GL.js.map} +0 -0
- /package/dist/esm/{chunk-NMKPFUNP.js.map → chunk-EPTYNVCU.js.map} +0 -0
- /package/dist/esm/{chunk-XMRIRFM7.js.map → chunk-FG7XM7KJ.js.map} +0 -0
- /package/dist/esm/{chunk-6IGTK4JE.js.map → chunk-GAV3NHYL.js.map} +0 -0
- /package/dist/esm/{chunk-TOOSHJOA.js.map → chunk-GO7OHBHW.js.map} +0 -0
- /package/dist/esm/{chunk-MBCBP73P.js.map → chunk-HJU4I34X.js.map} +0 -0
- /package/dist/esm/{chunk-VX6ARMWP.js.map → chunk-HSAG7C53.js.map} +0 -0
- /package/dist/esm/{chunk-K6QZMNCD.js.map → chunk-IFM4EMZB.js.map} +0 -0
- /package/dist/esm/{chunk-HF5WY5YE.js.map → chunk-JGLAE5G7.js.map} +0 -0
- /package/dist/esm/{chunk-4YFJWXL2.js.map → chunk-JJKQ7CGI.js.map} +0 -0
- /package/dist/esm/{chunk-P7HYVJSU.js.map → chunk-K3UAS7RW.js.map} +0 -0
- /package/dist/esm/{chunk-25WZA7ZU.js.map → chunk-KFR3CK24.js.map} +0 -0
- /package/dist/esm/{chunk-WFMYNZXZ.js.map → chunk-KMPE7TJ6.js.map} +0 -0
- /package/dist/esm/{chunk-WXP6MMUB.js.map → chunk-KOFEFBB3.js.map} +0 -0
- /package/dist/esm/{chunk-W7N7V5YD.js.map → chunk-M6DJRFJZ.js.map} +0 -0
- /package/dist/esm/{chunk-7QDTSBJF.js.map → chunk-MCPRXVKZ.js.map} +0 -0
- /package/dist/esm/{chunk-DNHUQLXO.js.map → chunk-MEO7MJMQ.js.map} +0 -0
- /package/dist/esm/{chunk-YVBCDTTD.js.map → chunk-MN3XALXD.js.map} +0 -0
- /package/dist/esm/{chunk-F7IYL2VW.js.map → chunk-MS5J4MF6.js.map} +0 -0
- /package/dist/esm/{chunk-OSRJRBKP.js.map → chunk-MTOLKA6S.js.map} +0 -0
- /package/dist/esm/{chunk-MBE2YSBU.js.map → chunk-N4GTDLRD.js.map} +0 -0
- /package/dist/esm/{chunk-FHOCUZDR.js.map → chunk-NIQT45PJ.js.map} +0 -0
- /package/dist/esm/{chunk-TOLLPRMM.js.map → chunk-OFUNVHZ5.js.map} +0 -0
- /package/dist/esm/{chunk-RMKXWYOV.js.map → chunk-OLAWVEAI.js.map} +0 -0
- /package/dist/esm/{chunk-3XT5P2HO.js.map → chunk-OS3FCYZY.js.map} +0 -0
- /package/dist/esm/{chunk-UWT6TE5D.js.map → chunk-OTXCKEWT.js.map} +0 -0
- /package/dist/esm/{chunk-D6B7IMZU.js.map → chunk-RNTCHVFI.js.map} +0 -0
- /package/dist/esm/{chunk-YUP6EICB.js.map → chunk-SEY4NA45.js.map} +0 -0
- /package/dist/esm/{chunk-YV2KYHGR.js.map → chunk-UBOOUDS4.js.map} +0 -0
- /package/dist/esm/{chunk-S56YSRHP.js.map → chunk-VHECAEUP.js.map} +0 -0
- /package/dist/esm/{chunk-4AQTUBVP.js.map → chunk-VNH7BJOA.js.map} +0 -0
- /package/dist/esm/{chunk-IEWCQU2S.js.map → chunk-VR7ZAFYN.js.map} +0 -0
- /package/dist/esm/{chunk-PLWXTEVE.js.map → chunk-W2FOBR5Q.js.map} +0 -0
- /package/dist/esm/{chunk-FXUUI6Z2.js.map → chunk-WHFJ4JUN.js.map} +0 -0
- /package/dist/esm/{chunk-2UPAYDKR.js.map → chunk-X7V3V3W4.js.map} +0 -0
- /package/dist/esm/{chunk-S2HA3W3V.js.map → chunk-Y5RCH23Z.js.map} +0 -0
- /package/dist/esm/{chunk-OWAUCLRT.js.map → chunk-YBSRX63K.js.map} +0 -0
- /package/dist/esm/{chunk-KPBG7CIL.js.map → chunk-ZO7TTWJI.js.map} +0 -0
- /package/dist/esm/{props/high-contrast.prop.js.map → components/_internal/base-menu.utils.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/chatbar.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { LazyMotion, MotionConfig, domAnimation, m } from 'motion/react';\nimport { useComposedRefs } from 'radix-ui/internal';\nimport { useDropzone } from 'react-dropzone';\n\nimport { IconButton, type IconButtonProps } from './icon-button.js';\nimport { CloseIcon, FileTextIcon } from './icons.js';\nimport { Flex } from './flex.js';\nimport { ScrollArea } from './scroll-area.js';\nimport { Slot } from './slot.js';\nimport { Text } from './text.js';\nimport { VisuallyHidden } from './visually-hidden.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { accentColors } from '../props/color.prop.js';\nimport type { radii } from '../props/radius.prop.js';\n\n// Avoid SSR warnings by using an isomorphic layout effect\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/**\n * Runs `measure` with the placeholder taken out of layout, so a height read\n * reflects the value alone.\n *\n * A textarea with an empty value lays its placeholder out as real text, so\n * `scrollHeight` reports the placeholder wrapped at whatever width the field\n * has at that instant. That sizes an empty bar to the suggestion showing in it\n * rather than to `minLines`, and when the read lands before the field has its\n * final width -- a panel still animating open, a flex parent whose basis is 0\n * -- it wraps that text at a fraction of the real width and opens the bar at\n * `maxLines`. The first keystroke takes the placeholder out of layout and the\n * height snaps back, which is what made the bug look intermittent rather than\n * simply wrong.\n *\n * The reset to 'auto' and the `scrollHeight` read sit in different functions\n * here, so the whole measurement window is wrapped rather than a single read.\n * Costs one extra style recalc on a path that is already forcing a reflow.\n */\nfunction withoutPlaceholder(el: HTMLTextAreaElement, measure: () => void): void {\n const { placeholder } = el;\n if (!placeholder) {\n measure();\n return;\n }\n el.placeholder = '';\n try {\n measure();\n } finally {\n el.placeholder = placeholder;\n }\n}\n\n// Shared layout spring; hoisted so every motion node receives the same object\nconst LAYOUT_TRANSITION = { layout: { type: 'spring', visualDuration: 0.15, bounce: 0.1 } } as const;\n\ntype ExpandOn = 'none' | 'focus' | 'overflow' | 'both';\ntype SendMode = 'always' | 'whenDirty' | 'never';\n\n// Attachments\n/** Status flag for attachment lifecycle. */\ntype AttachmentStatus = 'idle' | 'uploading' | 'error' | 'done';\n/**\n * Attachment data model used by Chatbar.\n * - `file` exposes the original File object for uploads and processing.\n * - `url` is an object URL used for image previews. Chatbar revokes it when the\n * attachment is removed; once an attachment is handed to `onSubmit`, the\n * consumer owns the URL and is responsible for revoking it.\n */\ninterface ChatbarAttachment {\n id: string;\n name: string;\n size: number;\n type: string;\n /** Original File object for uploads and processing */\n file: File;\n url?: string;\n status?: AttachmentStatus;\n progress?: number;\n meta?: Record<string, unknown>;\n}\n\ntype ChatbarRejectReason = 'type' | 'size' | 'count';\ninterface ChatbarAttachmentRejection {\n file: File;\n reason: ChatbarRejectReason;\n}\n\ninterface ChatbarSubmitPayload {\n value: string;\n attachments: ChatbarAttachment[];\n}\n\ninterface FilePickerOptions {\n accept?: string | string[];\n multiple?: boolean;\n}\n\ninterface ChatbarContextValue {\n open: boolean;\n setOpen(next: boolean): void;\n\n setValue(next: string): void;\n\n size: '1' | '2' | '3';\n expandOn: ExpandOn;\n minLines: number;\n maxLines: number;\n sendMode: SendMode;\n disabled?: boolean;\n readOnly?: boolean;\n paste: boolean;\n clearOnSubmit: boolean;\n multiple: boolean;\n\n textareaRef: React.RefObject<HTMLTextAreaElement | null>;\n\n attachments: ChatbarAttachment[];\n removeAttachment(id: string): void;\n\n /** Validates and submits; returns false when there was nothing to submit */\n submit(clear: boolean): boolean;\n appendFiles(files: File[]): number;\n appendFilesFromPaste(files: File[]): number;\n openFilePicker(options?: FilePickerOptions): void;\n /** Guards blur-collapse between pointerdown on a picker trigger and its click */\n beginFilePickerPress(): void;\n}\n\nconst ChatbarContext = React.createContext<ChatbarContextValue | null>(null);\n// Value lives in its own context so keystrokes only re-render parts that read it\nconst ChatbarValueContext = React.createContext<string>('');\n\nconst useChatbarContext = () => {\n const ctx = React.useContext(ChatbarContext);\n if (!ctx) throw new Error('Chatbar context not found. Wrap parts in <Chatbar.Root>.');\n return ctx;\n};\n\nconst toArray = (val: string | string[] | undefined) =>\n Array.isArray(val) ? val : typeof val === 'string' ? val.split(',').map((s) => s.trim()).filter(Boolean) : [];\n\nconst matchesAccept = (file: File, patterns: string[]) => {\n if (patterns.length === 0) return true;\n const mime = file.type.toLowerCase();\n const name = file.name.toLowerCase();\n for (const patRaw of patterns) {\n const pat = patRaw.toLowerCase();\n if (pat.includes('/')) {\n const [type, subtype] = pat.split('/');\n const [fmType, fmSubtype] = mime.split('/');\n if (type === '*' || (type === fmType && (subtype === '*' || subtype === fmSubtype))) return true;\n } else if (pat.startsWith('.')) {\n if (name.endsWith(pat)) return true;\n }\n }\n return false;\n};\n\nconst IMAGE_EXT_RE = /\\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i;\nconst isImageLike = (name: string, type: string) => (type || '').toLowerCase().startsWith('image/') || IMAGE_EXT_RE.test(name);\n\nconst hasText = (value: string) => value.trim().length > 0;\n\nconst plural = (n: number, word: string) => `${n} ${word}${n === 1 ? '' : 's'}`;\n\nlet attachmentCounter = 0;\nconst createAttachmentId = () => `chatbar-attachment-${Date.now()}-${++attachmentCounter}`;\n\n/**\n * Chatbar container and state provider.\n *\n * Value & Open\n * - Supports controlled/uncontrolled `value` and `open`.\n *\n * Attachments\n * - Controlled/uncontrolled attachments with client-side filtering.\n * - Filters by `accept`/`pasteAccept`, `multiple`, `maxAttachments`, and `maxFileSize`.\n * - Rejections are reported via `onAttachmentReject`.\n *\n * Submit\n * - `onSubmit({ value, attachments })` emits both message and attachments.\n * - Submitting requires text or at least one attachment.\n * - `clearOnSubmit` clears message and attachments by default.\n */\ninterface ChatbarRootBaseProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n /** When the chatbar expands on its own. `none` leaves open state entirely to the consumer. */\n expandOn?: ExpandOn;\n\n /** Minimum visible lines when expanded (default: 3). The compact state is always one line. */\n minLines?: number;\n /** Maximum number of lines before scrolling (default: 6) */\n maxLines?: number;\n\n /** Controls Send button visibility only. Enter-to-submit is controlled by `Textarea submitOnEnter`. */\n sendMode?: SendMode;\n\n /** Disables text input, submission and every way of adding attachments */\n disabled?: boolean;\n /** Prevents editing, submission and adding attachments */\n readOnly?: boolean;\n\n /** Combined submit payload */\n onSubmit?: (payload: ChatbarSubmitPayload) => void;\n\n size?: '1' | '2' | '3';\n variant?: 'surface' | 'outline' | 'classic' | 'ghost' | 'soft';\n /** Accent color for the control (matches TextArea) */\n color?: (typeof accentColors)[number];\n /** Optional radius override (matches TextArea) */\n radius?: (typeof radii)[number];\n /** Panel/material translucency flags (matches TextArea) */\n panelBackground?: 'solid' | 'translucent';\n material?: 'solid' | 'translucent';\n\n width?: React.CSSProperties['width'];\n maxWidth?: React.CSSProperties['maxWidth'];\n\n // Attachments API\n attachments?: ChatbarAttachment[];\n defaultAttachments?: ChatbarAttachment[];\n onAttachmentsChange?: (attachments: ChatbarAttachment[]) => void;\n accept?: string | string[];\n /** Allow more than one file per pick, paste or drop */\n multiple?: boolean;\n maxAttachments?: number;\n maxFileSize?: number;\n paste?: boolean;\n /** Accepted types for pasted files. Replaces `accept` for paste when set. */\n pasteAccept?: string | string[];\n /** Clear message and attachments after submit */\n clearOnSubmit?: boolean;\n onAttachmentReject?: (rejections: ChatbarAttachmentRejection[]) => void;\n\n /**\n * Enables drag-and-drop file uploads when true.\n *\n * When enabled:\n * - Files can be dropped anywhere on the chatbar\n * - Same validation rules apply (accept, multiple, maxFileSize, maxAttachments)\n * - Visual feedback shows during drag operations\n * - Rejected files trigger onAttachmentReject\n *\n * @default true\n */\n dropzone?: boolean;\n\n /**\n * Optional API ref to control Chatbar imperatively without relying on DOM refs.\n * Provides methods to focus the textarea and open the file picker.\n */\n apiRef?: React.Ref<ChatbarApi>;\n}\n\ntype RootElement = React.ElementRef<'div'>;\n/** Imperative API for Chatbar.Root */\nexport interface ChatbarApi {\n /** Focus the textarea input */\n focusTextarea: () => void;\n /** Open the file picker dialog (respects accept/multiple). No-op when disabled or read-only. */\n openFilePicker: () => void;\n}\n/**\n * Chatbar container and state provider.\n *\n * Behavior\n * - Supports controlled and uncontrolled `value` and `open` states via props.\n * - Provides context to subcomponents like `Textarea`, `Row`, and `Send`.\n * - Exposes `data-state`, `data-disabled`, and `data-readonly` attributes for styling.\n *\n * Attachments\n * - Paste-to-attach: when `paste` is enabled, pasting files adds attachments.\n * - Additions and rejections are announced through a polite live region.\n *\n * Dropzone\n * - When `dropzone` is true, enables drag-and-drop file uploads.\n * - Visual feedback via `data-drop-active` attribute during drag operations.\n *\n * Accessibility\n * - Consumers should label the `Textarea` via `aria-label`/`aria-labelledby`.\n */\ninterface RootProps extends ComponentPropsWithout<'div', RemovedProps | 'onSubmit' | 'color'>, ChatbarRootBaseProps {}\n\nconst Root = React.forwardRef<RootElement, RootProps>((props, forwardedRef) => {\n const {\n className,\n style,\n children,\n value: valueProp,\n defaultValue = '',\n onValueChange,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n expandOn = 'both',\n minLines = 3,\n maxLines = 6,\n sendMode = 'whenDirty',\n disabled,\n readOnly,\n onSubmit,\n size = '2',\n variant,\n color,\n radius,\n panelBackground,\n material,\n width,\n maxWidth,\n attachments: attachmentsProp,\n defaultAttachments,\n onAttachmentsChange,\n accept,\n multiple = true,\n maxAttachments,\n maxFileSize,\n paste = true,\n pasteAccept,\n clearOnSubmit = true,\n onAttachmentReject,\n dropzone = true,\n apiRef,\n onBlurCapture,\n ...divProps\n } = props;\n const effectiveMaterial = material || panelBackground;\n\n const isValueControlled = valueProp != null;\n const [valueUncontrolled, setValueUncontrolled] = React.useState<string>(defaultValue);\n const value = isValueControlled ? valueProp : valueUncontrolled;\n\n const isOpenControlled = openProp != null;\n const [openUncontrolled, setOpenUncontrolled] = React.useState<boolean>(defaultOpen);\n const open = isOpenControlled ? openProp : openUncontrolled;\n\n // Treat `attachments` as controlled if the prop is provided, even if its value is `undefined`.\n // This avoids switching between controlled and uncontrolled when a consumer sets\n // `attachments={undefined}` to clear attachments. In that case we normalize to an empty array.\n const isAttachmentsControlled = 'attachments' in props;\n const [attachmentsUncontrolled, setAttachmentsUncontrolled] = React.useState<ChatbarAttachment[]>(() => defaultAttachments ?? []);\n const attachments = React.useMemo(\n () => (isAttachmentsControlled ? (attachmentsProp ?? []) : attachmentsUncontrolled),\n [isAttachmentsControlled, attachmentsProp, attachmentsUncontrolled],\n );\n\n // `id` changes on every announcement so identical messages still update the live region\n const [announcement, setAnnouncementState] = React.useState({ text: '', id: 0 });\n const announce = React.useCallback((text: string) => setAnnouncementState((prev) => ({ text, id: prev.id + 1 })), []);\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n const composedRootRef = useComposedRefs(forwardedRef, rootRef);\n const textareaRef = React.useRef<HTMLTextAreaElement>(null);\n const fileInputRef = React.useRef<HTMLInputElement>(null);\n\n // Blur-collapse guards: `pickerOpenRef` is true while the native dialog is open,\n // `pressGuardRef` covers the gap between pointerdown on a trigger and its click\n // (Safari blurs the textarea before the click fires).\n const pickerOpenRef = React.useRef(false);\n const pressGuardRef = React.useRef(false);\n const pressGuardTimerRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const pickerRef = React.useRef<{ patterns: string[]; multiple: boolean } | null>(null);\n\n const acceptKey = toArray(accept).join(',');\n const pasteAcceptKey = toArray(pasteAccept).join(',');\n const accepts = React.useMemo(() => toArray(acceptKey), [acceptKey]);\n const pasteAccepts = React.useMemo(() => (pasteAcceptKey ? toArray(pasteAcceptKey) : accepts), [pasteAcceptKey, accepts]);\n\n // Latest props/state for stable callbacks. Synced during render (not in an effect) so\n // child layout effects that call setOpen/setValue see this render's handlers.\n const snapshot = {\n value,\n attachments,\n accepts,\n pasteAccepts,\n multiple,\n maxAttachments,\n maxFileSize,\n disabled,\n readOnly,\n expandOn,\n isValueControlled,\n isOpenControlled,\n isAttachmentsControlled,\n onValueChange,\n onOpenChange,\n onAttachmentsChange,\n onAttachmentReject,\n onSubmit,\n };\n const latest = React.useRef(snapshot);\n // eslint-disable-next-line react-hooks/refs -- read only in callbacks/effects; see comment above\n latest.current = snapshot;\n\n // Attachments set during the current event, before Root re-renders. Cleared at the end\n // of the task so a controlled parent that rejects the change is not overridden.\n const pendingAttachmentsRef = React.useRef<ChatbarAttachment[] | null>(null);\n const getAttachments = React.useCallback(() => pendingAttachmentsRef.current ?? latest.current.attachments, []);\n\n const setOpen = React.useCallback((next: boolean) => {\n if (!latest.current.isOpenControlled) setOpenUncontrolled(next);\n latest.current.onOpenChange?.(next);\n }, []);\n\n const setValue = React.useCallback((next: string) => {\n if (!latest.current.isValueControlled) setValueUncontrolled(next);\n latest.current.onValueChange?.(next);\n }, []);\n\n const setAttachments = React.useCallback((next: ChatbarAttachment[]) => {\n // Back-to-back updates in one event must see each other\n pendingAttachmentsRef.current = next;\n queueMicrotask(() => {\n pendingAttachmentsRef.current = null;\n });\n if (!latest.current.isAttachmentsControlled) setAttachmentsUncontrolled(next);\n latest.current.onAttachmentsChange?.(next);\n }, []);\n\n // Object URLs Chatbar created and still owns\n const ownedUrlsRef = React.useRef<Set<string>>(new Set());\n\n const addFiles = React.useCallback(\n (files: File[], patterns: string[], multiple: boolean = latest.current.multiple): number => {\n const cfg = latest.current;\n if (cfg.disabled || cfg.readOnly || files.length === 0) return 0;\n\n const current = getAttachments();\n const next: ChatbarAttachment[] = [];\n const rejected: ChatbarAttachmentRejection[] = [];\n const remainingSlots = typeof cfg.maxAttachments === 'number' ? Math.max(cfg.maxAttachments - current.length, 0) : Infinity;\n const perActionLimit = multiple ? Infinity : 1;\n\n for (const file of files) {\n if (next.length >= remainingSlots || next.length >= perActionLimit) {\n rejected.push({ file, reason: 'count' });\n continue;\n }\n if (typeof cfg.maxFileSize === 'number' && file.size > cfg.maxFileSize) {\n rejected.push({ file, reason: 'size' });\n continue;\n }\n if (!matchesAccept(file, patterns)) {\n rejected.push({ file, reason: 'type' });\n continue;\n }\n const url = isImageLike(file.name, file.type) ? URL.createObjectURL(file) : undefined;\n if (url) ownedUrlsRef.current.add(url);\n next.push({ id: createAttachmentId(), name: file.name, size: file.size, type: file.type, file, url, status: 'idle' });\n }\n\n const messages: string[] = [];\n if (next.length > 0) {\n setAttachments(current.concat(next));\n if (cfg.expandOn !== 'none') setOpen(true);\n messages.push(`${plural(next.length, 'file')} attached.`);\n }\n if (rejected.length > 0) {\n cfg.onAttachmentReject?.(rejected);\n messages.push(`${plural(rejected.length, 'file')} could not be attached.`);\n }\n if (messages.length > 0) announce(messages.join(' '));\n return next.length;\n },\n [getAttachments, setAttachments, setOpen, announce],\n );\n\n const appendFiles = React.useCallback((files: File[]) => addFiles(files, latest.current.accepts), [addFiles]);\n const appendFilesFromPaste = React.useCallback((files: File[]) => addFiles(files, latest.current.pasteAccepts), [addFiles]);\n\n const removeAttachment = React.useCallback(\n (id: string) => {\n const current = getAttachments();\n const removed = current.find((a) => a.id === id);\n if (!removed) return;\n setAttachments(current.filter((a) => a.id !== id));\n announce(`Removed ${removed.name}.`);\n },\n [getAttachments, setAttachments, announce],\n );\n\n const submit = React.useCallback(\n (clear: boolean) => {\n const cfg = latest.current;\n if (cfg.disabled || cfg.readOnly) return false;\n const current = getAttachments();\n if (!hasText(cfg.value) && current.length === 0) return false;\n const payload = { value: cfg.value, attachments: current };\n // Hand preview URLs to the consumer only when they leave the chatbar; URLs still\n // rendered here stay owned so removing them later revokes them\n if (clear && cfg.onSubmit) {\n for (const att of current) if (att.url) ownedUrlsRef.current.delete(att.url);\n }\n cfg.onSubmit?.(payload);\n if (clear) {\n setValue('');\n setAttachments([]);\n }\n return true;\n },\n [getAttachments, setValue, setAttachments],\n );\n\n // Revoke owned object URLs that are no longer referenced by current attachments\n React.useEffect(() => {\n const owned = ownedUrlsRef.current;\n if (owned.size === 0) return;\n const current = new Set(attachments.map((a) => a.url));\n for (const url of Array.from(owned)) {\n if (!current.has(url)) {\n URL.revokeObjectURL(url);\n owned.delete(url);\n }\n }\n }, [attachments]);\n\n // On unmount, revoke URLs only when Chatbar owns the attachment list;\n // controlled attachments may still be rendered by the parent.\n React.useEffect(() => {\n const owned = ownedUrlsRef.current;\n return () => {\n if (latest.current.isAttachmentsControlled) return;\n for (const url of Array.from(owned)) URL.revokeObjectURL(url);\n owned.clear();\n };\n }, []);\n\n const openFilePicker = React.useCallback((options?: FilePickerOptions) => {\n const cfg = latest.current;\n const input = fileInputRef.current;\n // The picker guard takes over from the press guard\n clearTimeout(pressGuardTimerRef.current);\n pressGuardRef.current = false;\n if (!input || cfg.disabled || cfg.readOnly) return;\n const patterns = options?.accept != null ? toArray(options.accept) : cfg.accepts;\n const multiple = options?.multiple ?? cfg.multiple;\n pickerRef.current = { patterns, multiple };\n input.accept = patterns.join(',');\n input.multiple = multiple;\n pickerOpenRef.current = true;\n input.click();\n // Browsers block the dialog outside a user gesture; if the window kept focus,\n // no dialog opened and no focus/cancel/change event will clear the guard\n setTimeout(() => {\n if (document.hasFocus()) pickerOpenRef.current = false;\n }, 1000);\n }, []);\n\n const beginFilePickerPress = React.useCallback(() => {\n // On touch (notably iOS), the compatibility mousedown, blur and click arrive in later\n // tasks than pointerup, so hold the guard until the click or a timeout\n pressGuardRef.current = true;\n clearTimeout(pressGuardTimerRef.current);\n pressGuardTimerRef.current = setTimeout(() => {\n pressGuardRef.current = false;\n }, 800);\n }, []);\n\n React.useEffect(() => () => clearTimeout(pressGuardTimerRef.current), []);\n\n // Clear the picker guard when the dialog closes, whichever way it closes\n React.useEffect(() => {\n const input = fileInputRef.current;\n const reset = () => {\n pickerOpenRef.current = false;\n };\n window.addEventListener('focus', reset);\n input?.addEventListener('cancel', reset);\n return () => {\n window.removeEventListener('focus', reset);\n input?.removeEventListener('cancel', reset);\n };\n }, []);\n\n const handleFileInputChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const input = event.currentTarget;\n const files = Array.from(input.files ?? []);\n const picker = pickerRef.current;\n addFiles(files, picker?.patterns ?? latest.current.accepts, picker?.multiple);\n pickerOpenRef.current = false;\n pickerRef.current = null;\n // Reset so selecting the same file again still fires change\n input.value = '';\n },\n [addFiles],\n );\n\n const handleBlurCapture = React.useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onBlurCapture?.(event);\n const cfg = latest.current;\n const rootEl = rootRef.current;\n if (!rootEl || cfg.expandOn === 'none') return;\n const nextTarget = event.relatedTarget as Node | null;\n if (nextTarget && rootEl.contains(nextTarget)) return;\n if (pickerOpenRef.current || pressGuardRef.current) return;\n if (!hasText(cfg.value) && getAttachments().length === 0) setOpen(false);\n },\n [onBlurCapture, setOpen, getAttachments],\n );\n\n const handleDrop = React.useCallback((files: File[]) => {\n appendFiles(files);\n }, [appendFiles]);\n\n // Validation happens in addFiles so drop, paste and picker share one rule set\n const { getRootProps, isDragActive } = useDropzone({\n onDrop: handleDrop,\n // Drop any earlier message so it is not re-announced when the drag hint goes away\n onDragEnter: () => announce(''),\n noClick: true,\n noKeyboard: true,\n // Textarea handles paste itself; letting the dropzone see it attaches twice\n noPaste: true,\n disabled: !dropzone || disabled || readOnly,\n });\n const dragActive = dropzone && isDragActive;\n\n React.useImperativeHandle(\n apiRef,\n () => ({\n focusTextarea: () => textareaRef.current?.focus({ preventScroll: true }),\n openFilePicker: () => openFilePicker(),\n }),\n [openFilePicker],\n );\n\n // Click-to-focus: focus textarea when clicking non-interactive areas inside the container\n const handleContainerPointerDown = React.useCallback(\n (event: React.PointerEvent) => {\n if (disabled) return;\n if (event.pointerType === 'mouse' && event.button !== 0) return;\n const target = event.target;\n if (target instanceof Element && target.closest('button, [role=\"button\"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex=\"-1\"])')) return;\n event.preventDefault();\n textareaRef.current?.focus({ preventScroll: true });\n },\n [disabled],\n );\n\n const contextValue = React.useMemo<ChatbarContextValue>(\n () => ({\n open,\n setOpen,\n setValue,\n size,\n expandOn,\n minLines,\n maxLines,\n sendMode,\n disabled,\n readOnly,\n paste,\n clearOnSubmit,\n multiple,\n textareaRef,\n attachments,\n removeAttachment,\n submit,\n appendFiles,\n appendFilesFromPaste,\n openFilePicker,\n beginFilePickerPress,\n }),\n [\n open, setOpen, setValue, size, expandOn, minLines, maxLines, sendMode, disabled, readOnly, paste,\n clearOnSubmit, multiple, attachments, removeAttachment, submit, appendFiles, appendFilesFromPaste,\n openFilePicker, beginFilePickerPress,\n ],\n );\n\n return (\n <ChatbarContext.Provider value={contextValue}>\n <ChatbarValueContext.Provider value={value}>\n <LazyMotion features={domAnimation}>\n <MotionConfig reducedMotion=\"user\">\n <div\n {...divProps}\n ref={composedRootRef}\n className={classNames('rt-ChatbarRoot', `rt-r-size-${size}`, className)}\n style={{ position: 'relative', width, maxWidth, ...style }}\n data-state={open ? 'open' : 'closed'}\n data-disabled={disabled ? '' : undefined}\n data-readonly={readOnly ? '' : undefined}\n data-drop-active={dragActive ? '' : undefined}\n data-accent-color={color}\n data-radius={radius}\n data-panel-background={effectiveMaterial}\n data-material={effectiveMaterial}\n onBlurCapture={handleBlurCapture}\n >\n <input\n ref={fileInputRef}\n type=\"file\"\n tabIndex={-1}\n aria-hidden\n style={{ display: 'none' }}\n onChange={handleFileInputChange}\n />\n <div {...(dropzone ? getRootProps() : {})} style={{ width: '100%', height: '100%' }} onPointerDown={handleContainerPointerDown}>\n <m.div\n className={classNames('rt-ChatbarBox', `rt-variant-${variant ?? 'surface'}`)}\n style={{ position: 'relative' }}\n data-accent-color={color}\n data-radius={radius}\n data-panel-background={effectiveMaterial}\n data-material={effectiveMaterial}\n layout\n transition={LAYOUT_TRANSITION}\n >\n <m.div className=\"rt-ChatbarGrid\" layout=\"position\" transition={LAYOUT_TRANSITION}>\n {children}\n </m.div>\n {dragActive && (\n <div className=\"rt-ChatbarDropOverlay\" aria-hidden>\n <div className=\"rt-ChatbarDropContent\">\n <Text emphasis=\"medium\" size={size} weight=\"medium\">\n Drop files here to attach\n </Text>\n </div>\n </div>\n )}\n </m.div>\n </div>\n <VisuallyHidden role=\"status\" aria-live=\"polite\">\n {dragActive ? 'Drop files here to attach.' : <span key={announcement.id}>{announcement.text}</span>}\n </VisuallyHidden>\n </div>\n </MotionConfig>\n </LazyMotion>\n </ChatbarValueContext.Provider>\n </ChatbarContext.Provider>\n );\n});\nRoot.displayName = 'Chatbar.Root';\n\n/**\n * Multi-line text input for Chatbar.\n * - Uses onChange to control value and avoid duplicate updates.\n * - Auto-resizes between minLines and maxLines.\n * - Expands on focus/overflow per `expandOn`.\n * - Paste-to-attach: when `paste` is enabled on Root, pasting files adds attachments.\n * - Provide `aria-label` or `aria-labelledby` for an accessible name.\n */\ninterface TextareaProps extends Omit<React.ComponentPropsWithoutRef<'textarea'>, 'size' | 'rows' | 'value' | 'defaultValue'> {\n asChild?: boolean;\n /**\n * When true, pressing Enter submits (Shift+Enter inserts a newline).\n * Works with every `sendMode`. Defaults to false.\n */\n submitOnEnter?: boolean;\n}\n\n/**\n * Chatbar multi-line text input.\n *\n * Behavior\n * - Controls the Chatbar value via React onChange.\n * - Auto-resizes between minLines and maxLines in a single layout effect, which\n * also opens the Chatbar when content overflows the compact height and\n * `expandOn` is `overflow` or `both`.\n * - Consumer handlers run first; calling `preventDefault` in `onKeyDown` or\n * `onPaste` skips the built-in submit or attach behavior.\n *\n * Accessibility\n * - Consumers should provide labeling via aria-label or aria-labelledby\n * on this component, as no implicit label is rendered.\n */\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>((props, forwardedRef) => {\n const {\n className,\n style,\n asChild,\n onFocus,\n onChange,\n onPaste,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n submitOnEnter = false,\n ...textareaProps\n } = props;\n const ctx = useChatbarContext();\n const value = React.useContext(ChatbarValueContext);\n const { open, minLines, maxLines, expandOn, disabled, readOnly, setOpen, setValue, textareaRef, paste, appendFilesFromPaste, size, submit, clearOnSubmit } = ctx;\n const composedRef = useComposedRefs(forwardedRef, textareaRef);\n\n // Cached metrics to avoid repeated getComputedStyle calls\n const lineHeightRef = React.useRef(0);\n const paddingRef = React.useRef(0);\n const composingRef = React.useRef(false);\n\n const sizingRef = React.useRef({ open, minLines, maxLines });\n // Declared before the sizing effect so it runs first in the same commit\n useIsomorphicLayoutEffect(() => {\n sizingRef.current = { open, minLines, maxLines };\n }, [open, minLines, maxLines]);\n\n const recomputeMetrics = React.useCallback(() => {\n const el = textareaRef.current;\n if (!el) return;\n const computedStyle = window.getComputedStyle(el);\n lineHeightRef.current = parseFloat(computedStyle.lineHeight) || 20;\n paddingRef.current = (parseFloat(computedStyle.paddingTop) || 0) + (parseFloat(computedStyle.paddingBottom) || 0);\n }, [textareaRef]);\n\n // Sizes `el` for the given open state; caller must have set height to 'auto' first\n const applyHeight = React.useCallback((el: HTMLTextAreaElement, isOpen: boolean) => {\n const { minLines: min, maxLines: max } = sizingRef.current;\n const lineHeight = lineHeightRef.current;\n const padding = paddingRef.current;\n const minHeight = Math.ceil((isOpen ? min : 1) * lineHeight) + padding;\n const maxHeight = Math.ceil((isOpen ? max : 1) * lineHeight) + padding;\n const contentHeight = Math.max(el.scrollHeight, minHeight);\n el.style.height = `${Math.min(contentHeight, maxHeight)}px`;\n const overflowing = contentHeight > maxHeight;\n el.style.overflowY = overflowing ? 'auto' : 'hidden';\n el.style.maxHeight = overflowing ? `${maxHeight}px` : 'none';\n }, []);\n\n // Typography depends on size\n useIsomorphicLayoutEffect(() => {\n recomputeMetrics();\n }, [recomputeMetrics, size]);\n\n // Single place for sizing and overflow auto-open: one height reset, one scrollHeight read\n useIsomorphicLayoutEffect(() => {\n const el = textareaRef.current;\n if (!el) return;\n if (lineHeightRef.current === 0) recomputeMetrics();\n withoutPlaceholder(el, () => {\n el.style.height = 'auto';\n let isOpen = open;\n if (!open && (expandOn === 'overflow' || expandOn === 'both')) {\n const compactHeight = Math.ceil(lineHeightRef.current) + paddingRef.current;\n if (el.scrollHeight > compactHeight + 1) {\n isOpen = true;\n setOpen(true);\n }\n }\n applyHeight(el, isOpen);\n });\n }, [value, open, expandOn, minLines, maxLines, size, setOpen, textareaRef, recomputeMetrics, applyHeight]);\n\n // Width changes re-wrap text; re-measure only when the width actually changes\n React.useEffect(() => {\n const el = textareaRef.current;\n if (!el || typeof ResizeObserver === 'undefined') return;\n let prevWidth = -1;\n const ro = new ResizeObserver((entries) => {\n const width = entries[0]?.contentRect.width ?? 0;\n if (width === prevWidth) return;\n const first = prevWidth === -1;\n prevWidth = width;\n if (first) return;\n recomputeMetrics();\n withoutPlaceholder(el, () => {\n el.style.height = 'auto';\n applyHeight(el, sizingRef.current.open);\n });\n });\n ro.observe(el);\n return () => ro.disconnect();\n }, [textareaRef, recomputeMetrics, applyHeight]);\n\n // Dev-only warning if no accessible name is provided\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') return;\n const hasLabel = textareaProps['aria-label'] != null || textareaProps['aria-labelledby'] != null;\n if (!hasLabel) {\n console.warn('[Chatbar.Textarea] Provide aria-label or aria-labelledby to ensure the control has an accessible name.');\n }\n // warn only on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleFocus = React.useCallback<React.FocusEventHandler<HTMLTextAreaElement>>(\n (event) => {\n onFocus?.(event);\n if (disabled || readOnly) return;\n if ((expandOn === 'focus' || expandOn === 'both') && !open) setOpen(true);\n },\n [disabled, readOnly, expandOn, open, setOpen, onFocus],\n );\n\n const handleChange = React.useCallback<React.ChangeEventHandler<HTMLTextAreaElement>>(\n (event) => {\n setValue(event.currentTarget.value);\n onChange?.(event);\n },\n [setValue, onChange],\n );\n\n const handlePaste = React.useCallback<React.ClipboardEventHandler<HTMLTextAreaElement>>(\n (event) => {\n onPaste?.(event);\n if (event.defaultPrevented || !paste || disabled || readOnly) return;\n const files = Array.from(event.clipboardData?.items ?? [])\n .filter((item) => item.kind === 'file')\n .map((item) => item.getAsFile())\n .filter((f): f is File => !!f);\n if (files.length === 0) return;\n // Suppress the filename/text representation only when a file was actually attached\n if (appendFilesFromPaste(files) > 0) event.preventDefault();\n },\n [paste, disabled, readOnly, onPaste, appendFilesFromPaste],\n );\n\n const handleCompositionStart = React.useCallback<React.CompositionEventHandler<HTMLTextAreaElement>>(\n (event) => {\n composingRef.current = true;\n onCompositionStart?.(event);\n },\n [onCompositionStart],\n );\n\n const handleCompositionEnd = React.useCallback<React.CompositionEventHandler<HTMLTextAreaElement>>(\n (event) => {\n composingRef.current = false;\n onCompositionEnd?.(event);\n },\n [onCompositionEnd],\n );\n\n const handleKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLTextAreaElement>>(\n (event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || !submitOnEnter) return;\n if (event.key !== 'Enter' || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;\n // Safari fires the IME-confirming Enter after compositionend with keyCode 229\n if (composingRef.current || event.nativeEvent.isComposing || event.nativeEvent.keyCode === 229) return;\n // Plain Enter never inserts a newline when submitOnEnter is on, even with nothing to send\n event.preventDefault();\n submit(clearOnSubmit);\n },\n [submitOnEnter, onKeyDown, submit, clearOnSubmit],\n );\n\n const Comp = asChild ? Slot : 'textarea';\n return (\n <m.div className={classNames('rt-ChatbarField', 'rt-ChatbarTextarea', className)} layout=\"position\" transition={LAYOUT_TRANSITION}>\n <Comp\n {...textareaProps}\n ref={composedRef}\n className=\"rt-ChatbarInput\"\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onPaste={handlePaste}\n onKeyDown={handleKeyDown}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n disabled={disabled}\n readOnly={readOnly}\n rows={open ? minLines : 1}\n spellCheck={textareaProps.spellCheck ?? true}\n autoCorrect={textareaProps.autoCorrect ?? 'on'}\n style={style}\n />\n </m.div>\n );\n});\nTextarea.displayName = 'Chatbar.Textarea';\n\ninterface InlineSlotProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {\n asChild?: boolean;\n children?: React.ReactNode;\n}\n\nconst InlineStart = React.forwardRef<HTMLDivElement, InlineSlotProps>((props, forwardedRef) => {\n const { children, asChild, className, ...divProps } = props;\n const ctx = useChatbarContext();\n if (ctx.open) return null;\n const Comp = asChild ? Slot : 'div';\n return (\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarInlineStart', className)}>\n {children}\n </Comp>\n );\n});\nInlineStart.displayName = 'Chatbar.InlineStart';\n\nconst InlineEnd = React.forwardRef<HTMLDivElement, InlineSlotProps>((props, forwardedRef) => {\n const { children, asChild, className, ...divProps } = props;\n const ctx = useChatbarContext();\n if (ctx.open) return null;\n const Comp = asChild ? Slot : 'div';\n return (\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarInlineEnd', className)}>\n {children}\n </Comp>\n );\n});\nInlineEnd.displayName = 'Chatbar.InlineEnd';\n\n/**\n * Renders a horizontally scrollable list of attachments above the inline row.\n * Hidden when empty unless `forceMount`. Override per-item with `renderAttachment`.\n */\ninterface AttachmentsRowProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {\n asChild?: boolean;\n forceMount?: boolean;\n /** If provided, custom-render a tile; otherwise default tile is used */\n renderAttachment?: (attachment: ChatbarAttachment) => React.ReactNode;\n}\n\nconst AttachmentsRow = React.forwardRef<HTMLDivElement, AttachmentsRowProps>((props, forwardedRef) => {\n const { asChild, forceMount, renderAttachment, className, ...divProps } = props;\n const ctx = useChatbarContext();\n if (ctx.attachments.length === 0 && !forceMount) return null;\n const Comp = asChild ? Slot : 'div';\n return (\n <m.div layout=\"position\" transition={LAYOUT_TRANSITION}>\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarAttachmentsRow', className)} role=\"list\" aria-label={divProps['aria-label'] ?? 'Attachments'}>\n <ScrollArea className=\"rt-ChatbarScrollArea\" scrollbars=\"horizontal\" size=\"1\">\n <Flex align=\"center\" gap=\"2\" minWidth=\"fit-content\">\n {ctx.attachments.map((att) => (\n <Attachment key={att.id} attachment={att} asChild={!!renderAttachment}>\n {renderAttachment?.(att)}\n </Attachment>\n ))}\n </Flex>\n </ScrollArea>\n </Comp>\n </m.div>\n );\n});\nAttachmentsRow.displayName = 'Chatbar.AttachmentsRow';\n\n/** Default tile renderer for a single attachment. */\ninterface AttachmentProps extends React.ComponentPropsWithoutRef<'div'> {\n attachment: ChatbarAttachment;\n asChild?: boolean;\n}\n\nconst STATUS_LABEL: Partial<Record<AttachmentStatus, string>> = { uploading: 'uploading', error: 'failed to upload' };\n\nconst Attachment = React.forwardRef<HTMLDivElement, AttachmentProps>((props, forwardedRef) => {\n const { attachment, asChild, className, children, ...divProps } = props;\n const ctx = useChatbarContext();\n const Comp = asChild ? Slot : 'div';\n const isImage = !!attachment.url && isImageLike(attachment.name, attachment.type);\n const sizeLabel = `${Math.ceil(attachment.size / 1024)} KB`;\n const statusLabel = attachment.status ? STATUS_LABEL[attachment.status] : undefined;\n const locked = ctx.disabled || ctx.readOnly;\n\n const handleRemove = (event: React.MouseEvent<HTMLButtonElement>) => {\n // Move focus before the tile unmounts so keyboard users are not dropped to <body>\n const tile = event.currentTarget.closest('[role=\"listitem\"]');\n const tiles = tile?.parentElement ? Array.from(tile.parentElement.children) : [];\n const index = tile ? tiles.indexOf(tile) : -1;\n const neighbour = tiles[index + 1] ?? tiles[index - 1];\n const nextButton = neighbour?.querySelector<HTMLButtonElement>('.rt-ChatbarAttachmentRemove');\n if (nextButton) nextButton.focus();\n else ctx.textareaRef.current?.focus({ preventScroll: true });\n ctx.removeAttachment(attachment.id);\n };\n\n return (\n <Comp\n {...divProps}\n ref={forwardedRef}\n className={classNames('rt-ChatbarAttachment', className)}\n role=\"listitem\"\n data-kind={isImage ? 'image' : 'file'}\n data-status={attachment.status}\n title={attachment.name}\n >\n {children ?? (\n <Flex align=\"center\" gap=\"2\" pr={!isImage ? '6' : undefined}>\n <div className=\"rt-ChatbarAttachmentPreview\" aria-hidden>\n {isImage ? <img className=\"rt-ChatbarAttachmentImage\" src={attachment.url} alt=\"\" /> : <FileTextIcon />}\n </div>\n {isImage ? (\n <VisuallyHidden>\n {attachment.name}, {sizeLabel}\n {statusLabel ? `, ${statusLabel}` : ''}\n </VisuallyHidden>\n ) : (\n <Flex direction=\"column\" gap=\"0\" minWidth=\"0\">\n <Text size={ctx.size} weight=\"medium\" truncate>\n {attachment.name}\n </Text>\n <Text\n size=\"1\"\n color={attachment.status === 'error' ? 'red' : undefined}\n emphasis={attachment.status === 'error' ? undefined : 'medium'}\n >\n {sizeLabel}\n {statusLabel ? ` \u00B7 ${statusLabel}` : ''}\n </Text>\n </Flex>\n )}\n {!locked && (\n <IconButton\n className=\"rt-ChatbarAttachmentRemove\"\n aria-label={`Remove ${attachment.name}`}\n size=\"1\"\n variant=\"classic\"\n color=\"gray\"\n onClick={handleRemove}\n >\n <CloseIcon />\n </IconButton>\n )}\n </Flex>\n )}\n </Comp>\n );\n});\nAttachment.displayName = 'Chatbar.Attachment';\n\ninterface AttachTriggerProps extends React.ComponentPropsWithoutRef<'button'> {\n asChild?: boolean;\n /** Overrides Root `accept` for files chosen through this trigger */\n accept?: string | string[];\n multiple?: boolean;\n}\n\nconst AttachTrigger = React.forwardRef<HTMLButtonElement, AttachTriggerProps>((props, forwardedRef) => {\n const { asChild, accept, multiple, disabled: disabledProp, onPointerDown, onClick, ...buttonProps } = props;\n const ctx = useChatbarContext();\n const disabled = disabledProp || ctx.disabled || ctx.readOnly;\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n {...buttonProps}\n ref={forwardedRef}\n className={classNames('rt-ChatbarAttachTrigger', buttonProps.className)}\n type={buttonProps.type ?? 'button'}\n aria-label={buttonProps['aria-label'] ?? 'Add attachments'}\n disabled={disabled}\n onPointerDown={(event: React.PointerEvent<HTMLButtonElement>) => {\n onPointerDown?.(event);\n if (!disabled && !event.defaultPrevented) ctx.beginFilePickerPress();\n }}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (disabled || event.defaultPrevented) return;\n ctx.openFilePicker({ accept, multiple });\n }}\n />\n );\n});\nAttachTrigger.displayName = 'Chatbar.AttachTrigger';\n\ninterface RowProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {\n asChild?: boolean;\n children?: React.ReactNode;\n}\n\nconst Row = React.forwardRef<HTMLDivElement, RowProps>((props, forwardedRef) => {\n const { asChild, children, className, ...divProps } = props;\n const ctx = useChatbarContext();\n if (!ctx.open) return null;\n const Comp = asChild ? Slot : 'div';\n return (\n <m.div layout=\"position\" transition={LAYOUT_TRANSITION}>\n <Comp {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarRow', className)}>\n <Flex align=\"center\" justify=\"between\" width=\"100%\">\n {children}\n </Flex>\n </Comp>\n </m.div>\n );\n});\nRow.displayName = 'Chatbar.Row';\n\ntype RowSlotProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst RowStart = React.forwardRef<HTMLDivElement, RowSlotProps>((props, forwardedRef) => {\n const { className, ...divProps } = props;\n return <div {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarRowStart', className)} />;\n});\nRowStart.displayName = 'Chatbar.RowStart';\n\nconst RowEnd = React.forwardRef<HTMLDivElement, RowSlotProps>((props, forwardedRef) => {\n const { className, ...divProps } = props;\n return <div {...divProps} ref={forwardedRef} className={classNames('rt-ChatbarRowEnd', className)} />;\n});\nRowEnd.displayName = 'Chatbar.RowEnd';\n\ntype SendProps = Omit<IconButtonProps, 'aria-label' | 'aria-labelledby'> & {\n /** Optional override for accessible name. Defaults to \"Send\". */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n asChild?: boolean;\n /** Clear message and attachments after sending. Defaults to Root `clearOnSubmit`. */\n clearOnSend?: boolean;\n};\n\nconst Send = React.forwardRef<HTMLButtonElement, SendProps>((props, forwardedRef) => {\n const {\n asChild,\n clearOnSend,\n disabled,\n children,\n style,\n className,\n size: sizeProp,\n variant: variantProp,\n tabIndex,\n onClick,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...buttonProps\n } = props;\n const ctx = useChatbarContext();\n const value = React.useContext(ChatbarValueContext);\n\n if (ctx.sendMode === 'never') return null;\n\n const hasContent = hasText(value) || ctx.attachments.length > 0;\n const visible = ctx.sendMode === 'always' || hasContent;\n const inactive = disabled || ctx.disabled || ctx.readOnly || !hasContent;\n\n const labelProps: { 'aria-label': string } | { 'aria-labelledby': string } = ariaLabelledby\n ? { 'aria-labelledby': ariaLabelledby }\n : { 'aria-label': ariaLabel ?? 'Send' };\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (event.defaultPrevented || inactive) return;\n const clear = clearOnSend ?? ctx.clearOnSubmit;\n // Clearing hides and disables this button; keep keyboard focus in the composer\n if (ctx.submit(clear) && clear) ctx.textareaRef.current?.focus({ preventScroll: true });\n };\n\n return (\n <IconButton\n {...buttonProps}\n ref={forwardedRef}\n size={sizeProp ?? ctx.size}\n variant={variantProp ?? (ctx.open ? 'solid' : 'ghost')}\n disabled={inactive}\n className={classNames('rt-ChatbarSend', className)}\n style={{ opacity: visible ? 1 : 0, pointerEvents: visible ? undefined : 'none', ...style }}\n // Hidden Send must not be reachable by keyboard or announced\n aria-hidden={visible ? undefined : true}\n tabIndex={visible ? tabIndex : -1}\n asChild={asChild}\n onClick={handleClick}\n {...labelProps}\n >\n {children ?? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M5 12h14\" />\n <path d=\"m12 5 7 7-7 7\" />\n </svg>\n )}\n </IconButton>\n );\n});\nSend.displayName = 'Chatbar.Send';\n\nexport { Root, Textarea, InlineStart, InlineEnd, AttachmentsRow, Attachment, AttachTrigger, Row, RowStart, RowEnd, Send };\nexport type {\n RootProps as ChatbarRootProps,\n TextareaProps as ChatbarTextareaProps,\n InlineSlotProps as ChatbarInlineSlotProps,\n AttachmentsRowProps as ChatbarAttachmentsRowProps,\n AttachmentProps as ChatbarAttachmentProps,\n AttachTriggerProps as ChatbarAttachTriggerProps,\n RowProps as ChatbarRowProps,\n RowSlotProps as ChatbarRowSlotProps,\n SendProps as ChatbarSendProps,\n ChatbarAttachment,\n ChatbarAttachmentRejection,\n ChatbarRejectReason,\n ChatbarSubmitPayload,\n AttachmentStatus as ChatbarAttachmentStatus,\n ExpandOn as ChatbarExpandOn,\n SendMode as ChatbarSendMode,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["chatbar_exports", "__export", "AttachTrigger", "Attachment", "AttachmentsRow", "InlineEnd", "InlineStart", "Root", "Row", "RowEnd", "RowStart", "Send", "Textarea", "React", "classNames", "LazyMotion", "MotionConfig", "domAnimation", "m", "useComposedRefs", "useDropzone", "useIsomorphicLayoutEffect", "withoutPlaceholder", "el", "measure", "placeholder", "LAYOUT_TRANSITION", "ChatbarContext", "ChatbarValueContext", "useChatbarContext", "ctx", "toArray", "val", "matchesAccept", "file", "patterns", "mime", "name", "patRaw", "pat", "type", "subtype", "fmType", "fmSubtype", "IMAGE_EXT_RE", "isImageLike", "hasText", "value", "plural", "word", "attachmentCounter", "createAttachmentId", "Root", "props", "forwardedRef", "className", "style", "children", "valueProp", "defaultValue", "onValueChange", "openProp", "defaultOpen", "onOpenChange", "expandOn", "minLines", "maxLines", "sendMode", "disabled", "readOnly", "onSubmit", "size", "variant", "color", "radius", "panelBackground", "material", "width", "maxWidth", "attachmentsProp", "defaultAttachments", "onAttachmentsChange", "accept", "multiple", "maxAttachments", "maxFileSize", "paste", "pasteAccept", "clearOnSubmit", "onAttachmentReject", "dropzone", "apiRef", "onBlurCapture", "divProps", "effectiveMaterial", "isValueControlled", "valueUncontrolled", "setValueUncontrolled", "isOpenControlled", "openUncontrolled", "setOpenUncontrolled", "open", "isAttachmentsControlled", "attachmentsUncontrolled", "setAttachmentsUncontrolled", "attachments", "announcement", "setAnnouncementState", "announce", "text", "prev", "rootRef", "composedRootRef", "useComposedRefs", "textareaRef", "fileInputRef", "pickerOpenRef", "pressGuardRef", "pressGuardTimerRef", "pickerRef", "acceptKey", "pasteAcceptKey", "accepts", "pasteAccepts", "snapshot", "latest", "pendingAttachmentsRef", "getAttachments", "setOpen", "next", "setValue", "setAttachments", "ownedUrlsRef", "addFiles", "files", "cfg", "current", "rejected", "remainingSlots", "perActionLimit", "url", "messages", "appendFiles", "appendFilesFromPaste", "removeAttachment", "id", "removed", "a", "submit", "clear", "payload", "att", "owned", "openFilePicker", "options", "input", "beginFilePickerPress", "reset", "handleFileInputChange", "event", "picker", "handleBlurCapture", "rootEl", "nextTarget", "handleDrop", "getRootProps", "isDragActive", "useDropzone", "dragActive", "handleContainerPointerDown", "target", "contextValue", "LazyMotion", "domAnimation", "MotionConfig", "classNames", "m", "Text", "VisuallyHidden", "Textarea", "asChild", "onFocus", "onChange", "onPaste", "onKeyDown", "onCompositionStart", "onCompositionEnd", "submitOnEnter", "textareaProps", "composedRef", "lineHeightRef", "paddingRef", "composingRef", "sizingRef", "recomputeMetrics", "computedStyle", "applyHeight", "isOpen", "min", "max", "lineHeight", "padding", "minHeight", "maxHeight", "contentHeight", "overflowing", "compactHeight", "prevWidth", "ro", "entries", "first", "handleFocus", "handleChange", "handlePaste", "item", "f", "handleCompositionStart", "handleCompositionEnd", "handleKeyDown", "Comp", "Slot", "InlineStart", "InlineEnd", "AttachmentsRow", "forceMount", "renderAttachment", "ScrollArea", "Flex", "Attachment", "STATUS_LABEL", "attachment", "isImage", "sizeLabel", "statusLabel", "locked", "handleRemove", "tile", "tiles", "index", "nextButton", "FileTextIcon", "IconButton", "CloseIcon", "AttachTrigger", "disabledProp", "onPointerDown", "onClick", "buttonProps", "Row", "RowStart", "RowEnd", "Send", "clearOnSend", "sizeProp", "variantProp", "tabIndex", "ariaLabel", "ariaLabelledby", "hasContent", "visible", "inactive", "labelProps", "handleClick"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p,b as R,c as n}from"./chunk-BALS3AVM.js";import{a as b}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p,b as R,c as n}from"./chunk-BALS3AVM.js";import{a as b}from"./chunk-CTA5ODAO.js";import{a as d}from"./chunk-GSTOGDAJ.js";import{a as s}from"./chunk-6FLLFCBU.js";import{b as m}from"./chunk-JUY7CBSL.js";import{a as h}from"./chunk-OS3FCYZY.js";var v={};h(v,{Body:()=>c,Cell:()=>C,ColumnHeaderCell:()=>y,Header:()=>T,Root:()=>P,Row:()=>f,RowHeaderCell:()=>i});import*as e from"react";import t from"classnames";var P=e.forwardRef((o,l)=>{let{layout:a,...r}=p,{className:w,children:u,layout:H,...N}=s(o,r,d),E=m({value:H,className:p.layout.className,propValues:p.layout.values});return e.createElement("div",{ref:l,className:t("rt-TableRoot",w),...N},e.createElement(b,null,e.createElement("table",{className:t("rt-TableRootTable",E)},u)))});P.displayName="Table.Root";var T=e.forwardRef(({className:o,...l},a)=>e.createElement("thead",{...l,ref:a,className:t("rt-TableHeader",o)}));T.displayName="Table.Header";var c=e.forwardRef(({className:o,...l},a)=>e.createElement("tbody",{...l,ref:a,className:t("rt-TableBody",o)}));c.displayName="Table.Body";var f=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,R);return e.createElement("tr",{...r,ref:l,className:t("rt-TableRow",a)})});f.displayName="Table.Row";var C=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("td",{className:t("rt-TableCell",a),ref:l,...r})});C.displayName="Table.Cell";var y=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("th",{className:t("rt-TableCell","rt-TableColumnHeaderCell",a),scope:"col",ref:l,...r})});y.displayName="Table.ColumnHeaderCell";var i=e.forwardRef((o,l)=>{let{className:a,...r}=s(o,n);return e.createElement("th",{className:t("rt-TableCell","rt-TableRowHeaderCell",a),scope:"row",ref:l,...r})});i.displayName="Table.RowHeaderCell";export{P as a,T as b,c,f as d,C as e,y as f,i as g,v as h};
|
|
2
|
+
//# sourceMappingURL=chunk-ABSKRHVM.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as e}from"./chunk-ZNK6AH2G.js";var s=["1","2","3","4"],a=["surface","soft","outline"],t=["solid","translucent"],n=["solid","translucent"],o={size:{type:"enum",className:"rt-r-size",values:s,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:a,default:"surface"},...e,material:{type:"enum",values:n,default:void 0},panelBackground:{type:"enum",values:t,default:void 0}};export{o as a};
|
|
2
|
+
//# sourceMappingURL=chunk-AF6XKU3W.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/switch.props.tsx"],
|
|
4
|
+
"sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['surface', 'soft', 'outline'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst switchPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'surface' },\n ...colorPropDef,\n /**\n * Material type for visual rendering and depth effects\n * Controls how the switch renders its visual elements\n */\n material: { type: 'enum', values: materials, default: undefined },\n /**\n * Panel background type (deprecated)\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n material: PropDef<(typeof materials)[number] | undefined>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n};\n\nexport { switchPropDefs };\n"],
|
|
5
|
+
"mappings": "wCAIA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,UAAW,OAAQ,SAAS,EACxCC,EAAmB,CAAC,QAAS,aAAa,EAC1CC,EAAY,CAAC,QAAS,aAAa,EAEnCC,EAAiB,CACrB,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQJ,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,SAAU,EACvF,GAAGI,EAKH,SAAU,CAAE,KAAM,OAAQ,OAAQF,EAAW,QAAS,MAAU,EAKhE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,EAAkB,QAAS,MAAU,CAChF",
|
|
6
|
+
"names": ["sizes", "variants", "panelBackgrounds", "materials", "switchPropDefs", "colorPropDef"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as o}from"./chunk-KNQBAOMV.js";import{a as p}from"./chunk-FD2TR343.js";import{a as t}from"./chunk-WYADYDPN.js";import{a as s}from"./chunk-ZE2KAVXW.js";import{a as e}from"./chunk-NZJGC6ZW.js";import{d as r}from"./chunk-ZNK6AH2G.js";var n=["1","2","3","4","5","6","7","8","9"],i=["auto","always","hover","none"],D={...e,size:{type:"enum",className:"rt-r-size",values:n,responsive:!0},...p,...o,...s,...t,underline:{type:"enum",className:"rt-underline",values:i,default:"auto"},...r};export{D as a};
|
|
2
|
+
//# sourceMappingURL=chunk-AGSSWWFI.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/link.props.tsx"],
|
|
4
|
+
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] as const;\nconst underline = ['auto', 'always', 'hover', 'none'] as const;\n\nconst linkPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n ...weightPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n underline: { type: 'enum', className: 'rt-underline', values: underline, default: 'auto' },\n ...accentColorPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n underline: PropDef<(typeof underline)[number]>;\n};\n\nexport { linkPropDefs };\n"],
|
|
5
|
+
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACpDC,EAAY,CAAC,OAAQ,SAAU,QAAS,MAAM,EAE9CC,EAAe,CACnB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQH,EACR,WAAY,EACd,EACA,GAAGI,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,UAAW,CAAE,KAAM,OAAQ,UAAW,eAAgB,OAAQN,EAAW,QAAS,MAAO,EACzF,GAAGO,CACL",
|
|
6
|
+
"names": ["sizes", "underline", "linkPropDefs", "asChildPropDef", "weightPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "accentColorPropDef"]
|
|
7
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as U,b as _}from"./chunk-
|
|
1
|
+
import{a as U,b as _}from"./chunk-MN3XALXD.js";import{a as G}from"./chunk-GSTOGDAJ.js";import{a as q}from"./chunk-6FLLFCBU.js";import{a as se}from"./chunk-OS3FCYZY.js";var ie={};se(ie,{Root:()=>Q,Slot:()=>$});import*as e from"react";import*as z from"react-dom";import Z from"classnames";import{composeRefs as J}from"radix-ui/internal";var Q=e.forwardRef((P,x)=>{let o=e.useRef(null),{children:h,className:E,color:w,radius:L,panelBackground:C,material:k,style:I,...s}=q(P,U,G),D=k||C,y=e.useId(),v=s.error||s.isInvalid,{"aria-describedby":g,"aria-labelledby":S}=s,f=e.useMemo(()=>{let i=[];return s.errorMessage&&i.push(y),g&&i.push(g),i.length>0?i.join(" "):void 0},[s.errorMessage,g,y]),n=e.useMemo(()=>({"aria-invalid":v,"aria-describedby":f,"aria-labelledby":S}),[v,f,S]),{error:N,errorMessage:V,isInvalid:j,required:m,"aria-describedby":p,"aria-labelledby":a,...b}=s,M=e.useCallback(i=>{let X=i.target;if(X.closest("input, button, a"))return;let d=o.current;if(!d)return;let A=X.closest(`
|
|
2
2
|
.rt-TextFieldSlot[data-side='right'],
|
|
3
3
|
.rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left'])
|
|
4
4
|
`)?d.value.length:0;requestAnimationFrame(()=>{try{d.setSelectionRange(A,A)}catch{}d.focus()})},[]);return e.createElement("div",{"data-accent-color":w,"data-radius":L,"data-panel-background":D,"data-material":D,style:I,className:Z("rt-TextFieldRoot",E,{"rt-error":v}),onPointerDown:M},e.createElement("input",{spellCheck:"false",...b,...n,ref:J(o,x),className:"rt-reset rt-TextFieldInput"}),h,s.errorMessage&&e.createElement("div",{id:y,className:"rt-TextFieldErrorMessage",role:"alert","aria-live":"polite"},s.errorMessage))});Q.displayName="TextField.Root";var R=(()=>{if(typeof navigator>"u")return!1;let P=navigator.userAgent,x=/^((?!chrome|android).)*safari/i.test(P),o=/firefox/i.test(P);return x||o})(),$=e.forwardRef((P,x)=>{let{scrub:o,scrubValue:h,scrubStep:E=1,scrubSensitivity:w=1,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k=10,scrubAltMultiplier:I=.1,onScrub:s,...D}=P,{className:y,color:v,side:g,...S}=q(D,_),f=e.useRef(null),[n,N]=e.useState(!1),[V,j]=e.useState({x:0,y:0}),m=e.useRef(0),p=e.useRef(0),a=e.useRef(0),b=e.useRef(null),M=e.useRef(0),i=e.useRef({scrubValue:h,scrubStep:E,scrubSensitivity:w,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k,scrubAltMultiplier:I,onScrub:s});i.current={scrubValue:h,scrubStep:E,scrubSensitivity:w,scrubMin:L,scrubMax:C,scrubShiftMultiplier:k,scrubAltMultiplier:I,onScrub:s};let X=e.useCallback(t=>{if(!o||t.target.closest("input, button, a"))return;t.preventDefault(),m.current=0,p.current=h??0,a.current=t.clientX,j({x:t.clientX,y:t.clientY});let c=f.current;c&&(R?(b.current=t.pointerId,M.current=t.clientX,c.setPointerCapture(t.pointerId),N(!0)):c.requestPointerLock())},[o,h]);e.useEffect(()=>{if(R)return;let t=()=>{let r=document.pointerLockElement===f.current;N(r),r||(i.current.onScrub?.(0,!1),m.current=0,p.current=0)};return document.addEventListener("pointerlockchange",t),()=>{document.removeEventListener("pointerlockchange",t)}},[]);let d=e.useCallback((t,r,c,oe)=>{let l=i.current,H=window.innerWidth,O=window.innerHeight;a.current+=t,a.current>H?a.current=a.current%H:a.current<0&&(a.current=H+a.current%H),j(F=>{let u=F.y+r;return u>O?u=u%O:u<0&&(u=O+u%O),{x:a.current,y:u}}),m.current+=t;let W=m.current/l.scrubSensitivity;if(Math.abs(W)>=1){let F=1;c?F=l.scrubShiftMultiplier:oe&&(F=l.scrubAltMultiplier);let u=Math.trunc(W),K=u*l.scrubStep*F,Y=K;if(l.scrubMin!==void 0||l.scrubMax!==void 0){let ne=p.current+K,B=Math.max(l.scrubMin??-1/0,Math.min(l.scrubMax??1/0,ne));Y=B-p.current,p.current=B}else p.current+=K;Y!==0&&l.onScrub?.(Y,!0),m.current=(W-u)*l.scrubSensitivity}},[]),T=e.useCallback(()=>{i.current.onScrub?.(0,!1),m.current=0,p.current=0,b.current=null,N(!1)},[]),A=e.useCallback(t=>{if(!n||!R)return;let r=t.clientX-M.current;M.current=t.clientX,d(r,t.movementY,t.shiftKey,t.altKey)},[n,d]),ee=e.useCallback(t=>{if(!R||b.current!==t.pointerId)return;let r=f.current;r&&b.current!==null&&r.releasePointerCapture(b.current),T()},[T]),te=e.useCallback(()=>{R&&n&&T()},[n,T]);e.useEffect(()=>{if(!n||R)return;let t=c=>{d(c.movementX,c.movementY,c.shiftKey,c.altKey)},r=()=>{document.exitPointerLock()};return document.addEventListener("mousemove",t),document.addEventListener("mouseup",r),document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),document.body.style.userSelect=""}},[n,d]),e.useEffect(()=>{if(!n||!R)return;let t=document.createElement("style");return t.textContent="* { cursor: none !important; user-select: none !important; }",document.head.appendChild(t),()=>{document.head.removeChild(t)}},[n]);let re=n?z.createPortal(e.createElement("img",{className:"rt-TextFieldSlotScrubCursor",src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E",alt:"",style:{position:"fixed",left:V.x,top:V.y,transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:99999,width:24,height:24},"aria-hidden":"true"}),document.body):null;return e.createElement("div",{"data-accent-color":v,"data-side":g,"data-scrub":o||void 0,"data-scrubbing":n||void 0,...S,ref:J(f,x),className:Z("rt-TextFieldSlot",y),onPointerDown:o?X:void 0,onPointerMove:o?A:void 0,onPointerUp:o?ee:void 0,onLostPointerCapture:o?te:void 0},S.children,re)});$.displayName="TextField.Slot";export{Q as a,$ as b,ie as c};
|
|
5
|
-
//# sourceMappingURL=chunk-
|
|
5
|
+
//# sourceMappingURL=chunk-ALWNS44Q.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as c}from"./chunk-Y3A6ZU24.js";import{a as N}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as c}from"./chunk-Y3A6ZU24.js";import{a as N}from"./chunk-NIQT45PJ.js";import{b as v}from"./chunk-FWB47YCH.js";import{a as m}from"./chunk-6FLLFCBU.js";import{a as R}from"./chunk-OS3FCYZY.js";var d={};R(d,{Actions:()=>P,Logo:()=>b,Navigation:()=>f,Root:()=>l});import*as o from"react";import p from"classnames";var l=o.forwardRef((e,s)=>{let{children:i,className:n,...a}=m(e,c),r=e.position??"fixed",t=e.size??"2";return o.createElement("header",{...a,ref:s,className:p("rt-NavbarRoot",n),"data-position":r,"data-size":t},o.createElement("div",{className:"rt-NavbarContainer"},i))});l.displayName="Navbar.Root";var b=o.forwardRef(({asChild:e,gap:s="2",align:i="center",justify:n="start",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarLogo",a),...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarLogo",a),...r}));b.displayName="Navbar.Logo";var f=o.forwardRef(({asChild:e,gap:s="4",align:i="center",justify:n="center",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarNavigation",a),role:"navigation",...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarNavigation",a),role:"navigation",...r}));f.displayName="Navbar.Navigation";var P=o.forwardRef(({asChild:e,gap:s="4",align:i="center",justify:n="end",className:a,...r},t)=>e?o.createElement(v,{ref:t,className:p("rt-NavbarActions",a),...r}):o.createElement(N,{ref:t,gap:s,align:i,justify:n,className:p("rt-NavbarActions",a),...r}));P.displayName="Navbar.Actions";export{l as a,b,f as c,P as d,d as e};
|
|
2
|
+
//# sourceMappingURL=chunk-BBJUB52V.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-5XV4QEP5.js";import{a as t}from"./chunk-GSTOGDAJ.js";import{a as s}from"./chunk-6FLLFCBU.js";import{a as e}from"./chunk-E23RKOQJ.js";import*as o from"react";import l from"classnames";import{Progress as m}from"radix-ui";var c=o.forwardRef((i,a)=>{let{className:n,style:P,color:f,radius:g,duration:d,...r}=s(i,p,t);return o.createElement(m.Root,{"data-accent-color":f,"data-radius":g,ref:a,className:l("rt-ProgressRoot",n),style:e({"--progress-duration":"value"in r?void 0:d,"--progress-value":"value"in r?r.value:void 0,"--progress-max":"max"in r?r.max:void 0},P),...r,asChild:!1},o.createElement(m.Indicator,{className:"rt-ProgressIndicator"}))});c.displayName="Progress";export{c as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CDG5WH4U.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ye}from"./chunk-2LYX5S7H.js";import{a as ue,c as fe}from"./chunk-5LXFJMFB.js";import{j as ie,n as ce,p as le,r as de,v as pe}from"./chunk-SNHEJU2S.js";import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as ye}from"./chunk-2LYX5S7H.js";import{a as re,c as se,d as ae}from"./chunk-QWVU2TW4.js";import{a as ue,c as fe}from"./chunk-5LXFJMFB.js";import{j as ie,n as ce,p as le,r as de,v as pe}from"./chunk-SNHEJU2S.js";import{a as Re,d as C}from"./chunk-TLWTUKKL.js";import{b as he,c as U}from"./chunk-CECQNGUL.js";import{a as me}from"./chunk-NNO7M466.js";import{a as oe}from"./chunk-AGAQC4HH.js";import*as n from"react";import Le from"classnames";var Be=["className","children","defaultOpen","open","onOpenChange","size","defaultSize","onSizeChange","sizeUpdate","sizeUpdateMs","style","inset"],Pe=n.forwardRef((L,u)=>{let{className:ze,presentation:Se={initial:"overlay",lg:"fixed"},defaultOpen:B,open:c,onOpenChange:_,expandedSize:I=320,minSize:l=200,maxSize:d=500,resizable:b=!1,collapsible:Ce=!0,onExpand:$,onCollapse:A,onResize:v,onResizeStart:Ie,onResizeEnd:be,snapPoints:ve,snapTolerance:ge,collapseThreshold:xe,paneId:g,persistence:x,children:Me,style:Ee,onSizeChange:M,sizeUpdate:E,sizeUpdateMs:O=50,size:j,defaultSize:F,inset:T}=L,Oe=he(L,Be),{inspectorMode:s,setInspectorMode:N}=ie(),{currentBreakpointReady:f}=ce(),{peekTarget:Te}=le(),{togglePane:Ne}=de(),{registerInset:q,unregisterInset:K}=pe();n.useLayoutEffect(()=>{if(T)return q("inspector"),()=>K("inspector")},[T,q,K]);let w=ue(Se),R=w==="overlay",we=w==="stacked",a=n.useRef(null),ke=n.useCallback(e=>{a.current=e,typeof u=="function"?u(e):u&&(u.current=e)},[u]),W=n.Children.toArray(Me),Y=W.filter(e=>n.isValidElement(e)&&e.type===C),G=W.filter(e=>!(n.isValidElement(e)&&e.type===C)),h=n.useRef(_),k=n.useRef(c);n.useLayoutEffect(()=>{h.current=_,k.current=c});let De=n.useMemo(()=>U(c),[c]),Ve=n.useMemo(()=>U(B),[B]),He=typeof c=="object"&&c!==null,{resolvedControlled:m}=fe({controlledValue:De,defaultValue:Ve,currentValue:s,setValue:N,breakpointReady:f,controlledIsResponsive:He,onResponsiveChange:e=>h.current?.(e==="expanded",{reason:"responsive"}),onInit:e=>{typeof k.current>"u"&&h.current?.(e==="expanded",{reason:"init"})}}),p=n.useRef(null);n.useEffect(()=>()=>{p.current&&(clearTimeout(p.current),p.current=null)},[M,E,O]);let y=n.useMemo(()=>{let e=M,o=E,r=O??50;if(!e)return()=>{};if(o==="debounce")return(t,i)=>{p.current&&clearTimeout(p.current),p.current=setTimeout(()=>{e(t,i),p.current=null},r)};if(o==="throttle"){let t=0;return(i,ne)=>{let te=Date.now();te-t>=r&&(t=te,e(i,ne))}}return(t,i)=>e(t,i)},[M,E,O]),P=n.useRef(null);n.useEffect(()=>{let e=typeof c<"u";if(P.current===null){P.current=e;return}P.current!==e&&(console.warn("Shell.Inspector: Switching between controlled and uncontrolled `open` is not supported."),P.current=e)},[c]);let J=n.useRef(null),Q=n.useRef(void 0);n.useEffect(()=>{let e=J.current,r=Q.current!==m;if(e!==null&&e!==s){let t=s==="expanded";(!(typeof k.current<"u")||!r&&t!==(m===void 0?void 0:m==="expanded"))&&h.current?.(t,{reason:"toggle"})}J.current=s,Q.current=m},[s,m]);let X=n.useRef($),Z=n.useRef(A);n.useLayoutEffect(()=>{X.current=$,Z.current=A});let z=n.useRef(null),ee=n.useRef(!1);n.useEffect(()=>{let e=s;if(!f){z.current=e;return}if(!ee.current){ee.current=!0,z.current=e;return}let o=z.current;o!==null&&o!==e&&(e==="expanded"?X.current?.():e==="collapsed"&&Z.current?.(),z.current=e)},[s,f]);let D=s==="expanded",S=n.useMemo(()=>{if(!g||x)return x;let e=`kookie-ui:shell:inspector:${g}`;return{load:()=>{if(!(typeof window>"u"))try{let r=window.localStorage.getItem(e);return r?Number(r):void 0}catch{return}},save:r=>{if(!(typeof window>"u"))try{window.localStorage.setItem(e,String(r))}catch{}}}},[g,x]);n.useEffect(()=>{let e=!0;if(!b||!S?.load||R)return;let o=S.load(),r=t=>{!e||typeof t!="number"||!a.current||(a.current.style.setProperty("--inspector-size",`${t}px`),v?.(t))};return o instanceof Promise?o.then(r).catch(t=>{}):r(o),()=>{e=!1}},[b,S,v,R]);let Ue=b&&!R&&D?n.createElement(me.Provider,{value:{containerRef:a,cssVarName:"--inspector-size",minSize:l,maxSize:d,defaultSize:I,orientation:"vertical",edge:"start",computeNext:(e,o,r)=>{let t=getComputedStyle(a.current).direction==="rtl",i=e-o;return r+(t?i:-i)},onResize:v,onResizeStart:Ie,onResizeEnd:e=>{be?.(e),y(e,{reason:"resize"}),S?.save?.(e)},target:"inspector",collapsible:Ce,snapPoints:ve,snapTolerance:ge??8,collapseThreshold:xe,requestCollapse:()=>N("collapsed"),requestToggle:()=>Ne("inspector")}},Y.length>0?Y.map((e,o)=>n.cloneElement(e,{key:e.key??o})):n.createElement(Re,null)):null,V=n.useCallback(e=>ye(e,"horizontal"),[]);n.useEffect(()=>{if(a.current&&typeof j>"u"&&typeof F<"u"){let e=V(F);if(typeof e=="number"&&Number.isFinite(e)){let t=Math.min((typeof d=="number"?d:void 0)??e,Math.max((typeof l=="number"?l:void 0)??e,e));a.current.style.setProperty("--inspector-size",`${t}px`),y(t,{reason:"init"})}}},[]);let H=j;return n.useEffect(()=>{if(!a.current||typeof H>"u")return;let e=V(H);if(typeof e=="number"&&Number.isFinite(e)){let t=Math.min((typeof d=="number"?d:void 0)??e,Math.max((typeof l=="number"?l:void 0)??e,e));a.current.style.setProperty("--inspector-size",`${t}px`),y(t,{reason:"controlled"})}},[H,l,d,V,y]),R?n.createElement(re,{open:s==="expanded",onOpenChange:o=>N(o?"expanded":"collapsed")},n.createElement(se,{side:"end",style:{padding:0},"aria-label":"Inspector","aria-describedby":void 0,width:{initial:`${I}px`}},n.createElement(oe,null,n.createElement(ae,null,"Inspector")),G)):n.createElement("div",{...Oe,ref:ke,className:Le("rt-ShellInspector",ze),"data-mode":s,"data-peek":Te==="inspector"||void 0,"data-presentation":f?w:void 0,"data-open":f&&we&&D||void 0,"data-inset":T||void 0,style:{...Ee,"--inspector-size":`${I}px`,"--inspector-min-size":`${l}px`,"--inspector-max-size":`${d}px`}},n.createElement("div",{className:"rt-ShellInspectorContent","data-visible":D||void 0},G),Ue)});Pe.displayName="Shell.Inspector";Pe.Handle=C;export{Pe as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CEIK5U6C.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as C}from"./chunk-XKBLNVOD.js";import{a as d}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as C}from"./chunk-XKBLNVOD.js";import{a as d}from"./chunk-GO7OHBHW.js";import{a as c}from"./chunk-MJJ7XDIP.js";import{a as u}from"./chunk-5WRCK4R7.js";import{c as P}from"./chunk-SEY4NA45.js";import{a as f}from"./chunk-5TXQLK4G.js";import{a}from"./chunk-6FLLFCBU.js";import{a as L}from"./chunk-OS3FCYZY.js";var I={};L(I,{Action:()=>h,Cancel:()=>x,Content:()=>v,Description:()=>E,Root:()=>y,Title:()=>T,Trigger:()=>R});import*as e from"react";import O from"classnames";import{AlertDialog as l}from"radix-ui";var y=o=>e.createElement(l.Root,{...o});y.displayName="AlertDialog.Root";var R=e.forwardRef(({children:o,...t},r)=>e.createElement(l.Trigger,{...t,ref:r,asChild:!0},c(o)));R.displayName="AlertDialog.Trigger";var{align:S,panelBackground:K,material:_,...j}=C,q={align:S},z={panelBackground:K},F={material:_},v=e.forwardRef(({align:o,...t},r)=>{let{className:N}=a({align:o},q),{panelBackground:k}=a({panelBackground:t.panelBackground},z),{material:B}=a({material:t.material},F);f(t.panelBackground);let g=B??k,{className:b,forceMount:w,container:M,panelBackground:V,material:$,...W}=a(t,j),m=e.useRef(null),H=e.useMemo(()=>i=>{m.current=i,typeof r=="function"?r(i):r&&(r.current=i)},[r]);return e.useEffect(()=>{if(typeof window>"u")return;let i=m.current;if(!i)return;let n=i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(n.length===0)return;let p=n[0],D=n[n.length-1],A=s=>{s.key==="Tab"&&(s.shiftKey?document.activeElement===p&&(s.preventDefault(),D.focus()):document.activeElement===D&&(s.preventDefault(),p.focus()))};return i.addEventListener("keydown",A),p.focus(),()=>{i.removeEventListener("keydown",A)}},[]),e.createElement(l.Portal,{container:M,forceMount:w},e.createElement(P,{asChild:!0},e.createElement(l.Overlay,{className:"rt-BaseDialogOverlay rt-AlertDialogOverlay"},e.createElement("div",{className:"rt-BaseDialogScroll rt-AlertDialogScroll"},e.createElement("div",{className:`rt-BaseDialogScrollPadding rt-AlertDialogScrollPadding ${N}`},e.createElement(l.Content,{...W,ref:H,className:O("rt-BaseDialogContent","rt-AlertDialogContent",b),"data-material":g,"data-panel-background":g,tabIndex:-1,role:"alertdialog","aria-modal":"true","aria-describedby":"alert-dialog-description",onCloseAutoFocus:i=>{i.preventDefault(),document.body.style.pointerEvents=""}}),e.createElement("div",{"aria-live":"assertive","aria-atomic":"true",className:"rt-sr-only",id:"alert-dialog-announcement"}))))))});v.displayName="AlertDialog.Content";var T=e.forwardRef((o,t)=>e.createElement(l.Title,{asChild:!0},e.createElement(d,{size:"5",mb:"3",trim:"start",...o,asChild:!1,ref:t})));T.displayName="AlertDialog.Title";var E=e.forwardRef((o,t)=>e.createElement(l.Description,{asChild:!0},e.createElement(u,{as:"p",size:"3",...o,asChild:!1,ref:t})));E.displayName="AlertDialog.Description";var h=e.forwardRef(({children:o,...t},r)=>e.createElement(l.Action,{...t,ref:r,asChild:!0},c(o)));h.displayName="AlertDialog.Action";var x=e.forwardRef(({children:o,...t},r)=>e.createElement(l.Cancel,{...t,ref:r,asChild:!0},c(o)));x.displayName="AlertDialog.Cancel";export{y as a,R as b,v as c,T as d,E as e,h as f,x as g,I as h};
|
|
2
|
+
//# sourceMappingURL=chunk-CESYMTJQ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as e}from"./chunk-ZNK6AH2G.js";var s=["1","2"],r=["nowrap","wrap","wrap-reverse"],a=["start","center","end"],t=["solid","translucent"],n={size:{type:"enum",className:"rt-r-size",values:s,default:"2",responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:r,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:a,responsive:!0},...e,panelBackground:{type:"enum",values:t,default:void 0}};export{n as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CFNESRYI.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/base-tab-list.props.ts"],
|
|
4
|
+
"sourcesContent": ["import { colorPropDef } from '../../props/color.prop.js';\n\nimport type { PropDef } from '../../props/prop-def.js';\n\nconst sizes = ['1', '2'] as const;\nconst wrapValues = ['nowrap', 'wrap', 'wrap-reverse'] as const;\nconst justifyValues = ['start', 'center', 'end'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\n\nconst baseTabListPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n wrap: {\n type: 'enum',\n className: 'rt-r-fw',\n values: wrapValues,\n responsive: true,\n },\n justify: {\n type: 'enum',\n className: 'rt-r-jc',\n values: justifyValues,\n responsive: true,\n },\n ...colorPropDef,\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n wrap: PropDef<(typeof wrapValues)[number]>;\n justify: PropDef<(typeof justifyValues)[number]>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n};\n\nexport { baseTabListPropDefs };\n"],
|
|
5
|
+
"mappings": "wCAIA,IAAMA,EAAQ,CAAC,IAAK,GAAG,EACjBC,EAAa,CAAC,SAAU,OAAQ,cAAc,EAC9CC,EAAgB,CAAC,QAAS,SAAU,KAAK,EACzCC,EAAmB,CAAC,QAAS,aAAa,EAE1CC,EAAsB,CAC1B,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQJ,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,KAAM,CACJ,KAAM,OACN,UAAW,UACX,OAAQC,EACR,WAAY,EACd,EACA,QAAS,CACP,KAAM,OACN,UAAW,UACX,OAAQC,EACR,WAAY,EACd,EACA,GAAGG,EACH,gBAAiB,CAAE,KAAM,OAAQ,OAAQF,EAAkB,QAAS,MAAU,CAChF",
|
|
6
|
+
"names": ["sizes", "wrapValues", "justifyValues", "panelBackgrounds", "baseTabListPropDefs", "colorPropDef"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-GSTOGDAJ.js";import{a as t}from"./chunk-6FLLFCBU.js";import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-GSTOGDAJ.js";import{a as t}from"./chunk-6FLLFCBU.js";import{a as e}from"./chunk-WMGIFPI2.js";import*as o from"react";import f from"classnames";import{composeEventHandlers as R}from"radix-ui/internal";var c=o.forwardRef((p,a)=>{let{className:i,color:s,material:n,onChange:m,onValueChange:d,...l}=t(p,e,r);return o.createElement("input",{type:"radio","data-accent-color":s,"data-material":n,...l,onChange:R(m,u=>d?.(u.currentTarget.value)),ref:a,className:f("rt-reset","rt-BaseRadioRoot","rt-RadioRoot",i)})});c.displayName="Radio";export{c as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CIYF56YS.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as w}from"./chunk-2CMM7MEL.js";import{a as U}from"./chunk-VR7ZAFYN.js";import{a as j,b as _,c as O,e as B,f as q}from"./chunk-WXQIIKWV.js";import{a as F,b as K,c as $}from"./chunk-WHFJ4JUN.js";import{a as V}from"./chunk-CTA5ODAO.js";import{d as W}from"./chunk-IX5HIHVI.js";import{a as T}from"./chunk-KMPE7TJ6.js";import{b as G}from"./chunk-SEY4NA45.js";import{b as E}from"./chunk-FWB47YCH.js";import{a as I}from"./chunk-E67CIG6A.js";import{a as A}from"./chunk-6FLLFCBU.js";import{a as le}from"./chunk-OS3FCYZY.js";var fe={};le(fe,{Content:()=>Y,Footer:()=>ee,Group:()=>ce,GroupContent:()=>ue,GroupLabel:()=>de,Header:()=>Z,Menu:()=>re,MenuButton:()=>ne,MenuItem:()=>ae,MenuSub:()=>oe,MenuSubContent:()=>ie,MenuSubTrigger:()=>se,Root:()=>Q,Search:()=>pe,Separator:()=>te});import*as e from"react";import u from"classnames";import*as v from"@radix-ui/react-accordion";var J=e.createContext(null);function P(){return e.useContext(J)}var Q=e.forwardRef((t,a)=>{let n=G(),{size:r=w.size.default,variant:o=w.variant.default,menuVariant:d=w.menuVariant.default,layout:p=w.layout.default,presentation:m,panelBackground:y,color:s}=t,{className:l,children:b,...M}=A(t,w),{asChild:h,panelBackground:x,presentation:R,...g}=M,C=s||n.accentColor,c=m==="thin"?"rail":m==="expanded"?"panel":p||"panel",i=typeof r=="object"?r.initial||"2":r,f=e.useMemo(()=>({size:i,menuVariant:d,presentation:m,color:C}),[i,d,m,C]);return e.createElement("div",{...g,ref:a,"data-accent-color":C,className:u("rt-SidebarRoot",l)},e.createElement(J.Provider,{value:f},e.createElement("div",{className:u("rt-SidebarContainer",`rt-variant-${o}`,`rt-r-size-${i}`,`rt-menu-variant-${d}`,c&&`rt-layout-${c}`),"data-accent-color":C,"data-panel-background":y,"data-presentation":m,"data-layout":c},b)))});Q.displayName="Sidebar.Root";var Y=e.forwardRef(({className:t,children:a,role:n="navigation","aria-label":r="Main navigation",id:o,...d},p)=>{let m=P(),y=m?.size??"2",s=m?.menuVariant??"soft";return e.createElement(V,{type:"hover"},e.createElement("div",{...d,ref:p,id:o,role:n,"aria-label":r,className:u("rt-BaseMenuContent","rt-SidebarContent",`rt-r-size-${y}`,`rt-menu-variant-${s}`,t)},e.createElement("div",{className:"rt-BaseMenuViewport"},a)))});Y.displayName="Sidebar.Content";var Z=e.forwardRef(({className:t,asContainer:a=!0,...n},r)=>{let o=P(),d=o?.size??"2",p=o?.menuVariant??"soft";return e.createElement("div",{...n,ref:r,className:u("rt-SidebarHeader",`rt-r-size-${d}`,`rt-menu-variant-${p}`,{"rt-SidebarHeader--container":a},t)})});Z.displayName="Sidebar.Header";var ee=e.forwardRef(({className:t,asContainer:a=!0,...n},r)=>{let o=P(),d=o?.size??"2",p=o?.menuVariant??"soft";return e.createElement("div",{...n,ref:r,className:u("rt-SidebarFooter",`rt-r-size-${d}`,`rt-menu-variant-${p}`,{"rt-SidebarFooter--container":a},t)})});ee.displayName="Sidebar.Footer";var te=e.forwardRef(({className:t,...a},n)=>e.createElement(U,{...a,ref:n,className:u("rt-SidebarSeparator",t)}));te.displayName="Sidebar.Separator";var re=e.forwardRef(({className:t,...a},n)=>e.createElement("ul",{...a,ref:n,role:"menu",className:u("rt-SidebarMenu",t)}));re.displayName="Sidebar.Menu";var ae=e.forwardRef(({className:t,...a},n)=>e.createElement("li",{...a,ref:n,className:u("rt-SidebarMenuItem",t)}));ae.displayName="Sidebar.MenuItem";function me(t){let a=[],n=[];return e.Children.forEach(t,r=>{if(typeof r=="string"||typeof r=="number")n.push(e.createElement("span",{key:n.length,className:"rt-SidebarMenuLabel"},r));else if(e.isValidElement(r)){let o=r;o.type==="svg"||o.props&&o.props.icon||typeof o.type=="function"&&(o.type.displayName?.includes("Icon")||o.type.name?.includes("Icon"))?a.push(r):n.push(r)}else r&&n.push(r)}),{icons:a,labels:n}}function H(t){if(typeof t=="string"||typeof t=="number")return e.createElement("span",{className:"rt-SidebarMenuLabel"},t);if(Array.isArray(t))return t.map((a,n)=>e.createElement(e.Fragment,{key:n},H(a)));if(e.isValidElement(t)){let a=t,n=a.props&&a.props.className||"";if(typeof a.type=="string"&&n.split(" ").includes("rt-SidebarMenuLabel"))return a;let o=H(a.props?.children);return e.cloneElement(a,{...a.props},o)}return t}var ne=e.forwardRef(({asChild:t=!1,isActive:a=!1,shortcut:n,badge:r,className:o,children:d,onKeyDown:p,...m},y)=>{let s=P(),l=s?.size??"2",b=s?.presentation==="thin",M=t?E:"button",{onClick:h}=m,x=e.useCallback(i=>{switch(i.key){case"Enter":case" ":i.preventDefault(),h&&h(i);break;case"ArrowDown":{i.preventDefault();let f=i.currentTarget.nextElementSibling?.querySelector('[role="menuitem"]');f&&f.focus();break}case"ArrowUp":{i.preventDefault();let f=i.currentTarget.previousElementSibling?.querySelector('[role="menuitem"]');f&&f.focus();break}}p?.(i)},[h,p]),R=e.useMemo(()=>H(d),[d]),{icons:g,labels:C}=e.useMemo(()=>b?me(d):{icons:[],labels:[]},[b,d]),c=e.useMemo(()=>{if(!t)return null;try{let i=e.Children.only(R),f=i.props?.children,S=e.createElement(e.Fragment,null,f,r&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof r=="string"?e.createElement(T,{size:l,variant:"soft"},r):e.createElement(T,{size:r.size||l,variant:r.variant||"soft",color:r.color,radius:r.radius},r.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(I,{size:l},n)));return e.cloneElement(i,{...i.props},S)}catch{return R}},[t,R,r,n,l]);return e.createElement(M,{...m,ref:y,role:"menuitem","aria-current":a?"page":void 0,className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton",o),"data-active":a||void 0,onKeyDown:x},t?c:b&&g.length>0?e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},g),C.map((i,f)=>e.createElement(e.Fragment,{key:f},typeof i=="string"||typeof i=="number"?e.createElement("span",{className:"rt-SidebarMenuLabel"},i):i))):e.createElement(e.Fragment,null,R,r&&e.createElement("div",{className:"rt-SidebarMenuBadge"},typeof r=="string"?e.createElement(T,{size:l,variant:"soft"},r):e.createElement(T,{size:r.size||l,variant:r.variant||"soft",color:r.color,radius:r.radius},r.content)),n&&e.createElement("div",{className:"rt-BaseMenuShortcut rt-SidebarMenuShortcut"},e.createElement(I,{size:l},n))))});ne.displayName="Sidebar.MenuButton";var D=e.createContext("accordion"),oe=e.forwardRef(({defaultOpen:t=!1,children:a,...n},r)=>(P()?.presentation==="thin"?"dropdown":"accordion")==="dropdown"?e.createElement("div",{...n,ref:r},e.createElement(j,null,e.createElement(D.Provider,{value:"dropdown"},a))):e.createElement("div",{...n,ref:r},e.createElement(D.Provider,{value:"accordion"},e.createElement(v.Root,{type:"single",collapsible:!0,defaultValue:t?"item":void 0},e.createElement(v.Item,{value:"item"},a)))));oe.displayName="Sidebar.MenuSub";var se=e.forwardRef(({asChild:t=!1,className:a,children:n,...r},o)=>e.useContext(D)==="dropdown"?e.createElement(_,null,e.createElement("button",{...r,ref:o,type:"button",role:"menuitem","aria-haspopup":"menu",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",a)},n)):e.createElement(v.Header,{asChild:!0},e.createElement("div",null,e.createElement(v.Trigger,{...r,ref:o,asChild:t,role:"menuitem","aria-haspopup":"true",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarMenuSubTrigger",a)},t?n:e.createElement(e.Fragment,null,n,e.createElement(W,{className:u("rt-BaseMenuSubTriggerIcon","rt-SidebarMenuSubTriggerIcon")}))))));se.displayName="Sidebar.MenuSubTrigger";var ie=e.forwardRef(({className:t,children:a,...n},r)=>{let o=P();if(e.useContext(D)==="dropdown"){let p=s=>{if(Array.isArray(s))return s.map((l,b)=>e.createElement(e.Fragment,{key:b},p(l)));if(e.isValidElement(s)){if(s.type?.displayName==="Sidebar.MenuButton")return s.props?.children;let b=s.props?.children;if(b!==void 0)return e.cloneElement(s,{...s.props,children:p(b)})}return s},m=e.Children.map(a,(s,l)=>{if(e.isValidElement(s)&&s.type?.displayName==="Sidebar.MenuItem"){let b=s.props?.children,M=p(b);return e.createElement(B,{key:l,asChild:!0},M)}return e.createElement(B,{key:l,asChild:!0},p(s))}),y=o?.size==="3"?"2":o?.size;return e.createElement(O,{size:y,variant:o?.menuVariant,className:u(t)},e.createElement(q,null,m))}return e.createElement(v.Content,{...n,ref:r,className:u("rt-SidebarMenuSubContent",t)},e.createElement("div",{className:"rt-SidebarMenuSubList"},a))});ie.displayName="Sidebar.MenuSubContent";var ce=e.forwardRef(({className:t,...a},n)=>e.createElement("div",{...a,ref:n,className:u("rt-BaseMenuGroup","rt-SidebarGroup",t)}));ce.displayName="Sidebar.Group";var de=e.forwardRef(({asChild:t=!1,className:a,...n},r)=>e.createElement(t?E:"div",{...n,ref:r,role:"group",className:u("rt-BaseMenuLabel","rt-SidebarGroupLabel",a)}));de.displayName="Sidebar.GroupLabel";var ue=e.forwardRef(({className:t,...a},n)=>e.createElement("div",{...a,ref:n,className:u("rt-SidebarGroupContent",t)}));ue.displayName="Sidebar.GroupContent";var k=({className:t})=>e.createElement("svg",{className:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("circle",{cx:"11",cy:"11",r:"8"}),e.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),X=({className:t})=>e.createElement("svg",{className:t,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},e.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),pe=e.forwardRef(({value:t,onValueChange:a,placeholder:n="Search...",children:r,className:o,...d},p)=>{let y=P()?.presentation==="thin",s=e.useRef(null),l=e.useRef(null),M=`${e.useId()}-results`,h=e.useRef(t);h.current=t;let x=e.useRef(a);x.current=a;let R=n.replace(/\.+$/,""),g=e.useCallback(c=>{c.key==="Escape"&&h.current&&(c.preventDefault(),c.stopPropagation(),x.current(""),s.current?.focus())},[]),C=e.useCallback(c=>{let i=l.current;if(!i)return;let f=i.querySelector('[role="group"]');if(!f)return;let S=Array.from(f.querySelectorAll("a, button"));if(S.length===0)return;let z=document.activeElement,L=z===s.current,N=S.indexOf(z);if(c.key.length===1&&!c.ctrlKey&&!c.metaKey&&!c.altKey&&!L&&N!==-1){s.current?.focus();return}switch(c.key){case"ArrowDown":{c.preventDefault(),L||N===-1?S[0]?.focus():N<S.length-1&&S[N+1]?.focus();break}case"ArrowUp":{c.preventDefault(),N<=0?s.current?.focus():S[N-1]?.focus();break}case"Home":{L||(c.preventDefault(),S[0]?.focus());break}case"End":{L||(c.preventDefault(),S[S.length-1]?.focus());break}}},[]);return y?e.createElement("div",{...d,ref:p,className:u("rt-SidebarSearch","rt-SidebarSearch--thin",o)},e.createElement(F,null,e.createElement(K,null,e.createElement("button",{type:"button",className:u("rt-reset","rt-BaseMenuItem","rt-SidebarMenuButton","rt-SidebarSearchTrigger"),"aria-label":R},e.createElement("span",{className:"rt-SidebarMenuIconWrapper"},e.createElement(k,null)),e.createElement("span",{className:"rt-SidebarMenuLabel"},"Search"))),e.createElement($,{side:"right",align:"start",size:"2",width:"280px","aria-label":R},e.createElement("div",{ref:l,className:"rt-SidebarSearchPopover",role:"search",onKeyDown:C},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(k,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:t,onChange:c=>a(c.target.value),onKeyDown:g,placeholder:n,"aria-label":R,"aria-controls":r?M:void 0,autoFocus:!0}),t&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{a(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(X,null))),r&&e.createElement("div",{id:M,role:"group","aria-label":"Search results"},r))))):e.createElement("div",{...d,ref:p,className:u("rt-SidebarSearch","rt-SidebarSearch--expanded",o),role:"search"},e.createElement("div",{className:"rt-SidebarSearchInputWrapper"},e.createElement(k,{className:"rt-SidebarSearchIcon"}),e.createElement("input",{ref:s,type:"search",className:"rt-SidebarSearchInput",value:t,onChange:c=>a(c.target.value),onKeyDown:g,placeholder:n,"aria-label":R}),t&&e.createElement("button",{type:"button",className:"rt-reset rt-SidebarSearchClear",onClick:()=>{a(""),s.current?.focus()},"aria-label":"Clear search"},e.createElement(X,null))))});pe.displayName="Sidebar.Search";export{Q as a,Y as b,Z as c,ee as d,te as e,re as f,ae as g,ne as h,oe as i,se as j,ie as k,ce as l,de as m,ue as n,pe as o,fe as p};
|
|
2
|
+
//# sourceMappingURL=chunk-CJ27XP5Z.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/sidebar.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from './slot.js';\nimport * as Accordion from '@radix-ui/react-accordion';\nimport * as DropdownMenu from './dropdown-menu.js';\nimport * as Popover from './popover.js';\n\nimport { sidebarPropDefs } from './sidebar.props.js';\nimport { useThemeContext } from './theme.js';\n// import { IconButton } from './icon-button.js';\nimport { ScrollArea } from './scroll-area.js';\nimport { Separator } from './separator.js';\nimport { ThickChevronRightIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { Kbd } from './kbd.js';\nimport { Badge } from './badge.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { BadgeProps } from './badge.js';\n\n// Badge configuration type for sidebar menu buttons\ntype BadgeConfig = {\n content: React.ReactNode;\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n color?: BadgeProps['color'];\n radius?: BadgeProps['radius'];\n};\n\n// Internal presentational context (not exported) for size/menu variant\ntype SidebarVisualContextValue = {\n size: '1' | '2' | '3';\n menuVariant: 'solid' | 'soft';\n presentation?: 'thin' | 'expanded';\n color?: string;\n};\nconst SidebarVisualContext = React.createContext<SidebarVisualContextValue | null>(null);\nfunction useSidebarVisual() {\n return React.useContext(SidebarVisualContext);\n}\n\n// Sidebar is now independent of Shell - no integration needed\n\n// Main Sidebar component\ntype SidebarOwnProps = GetPropDefTypes<typeof sidebarPropDefs>;\ninterface SidebarProps extends ComponentPropsWithout<'div', RemovedProps>, SidebarOwnProps {\n /**\n * Presentational mode independent of Shell.\n * 'thin' renders a rail-style sidebar, 'expanded' renders a panel-style sidebar.\n * If both `presentation` and `layout` are provided, `presentation` takes precedence.\n */\n presentation?: 'thin' | 'expanded';\n}\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>((props, forwardedRef) => {\n const themeContext = useThemeContext();\n\n const {\n size = sidebarPropDefs.size.default,\n variant = sidebarPropDefs.variant.default,\n menuVariant = sidebarPropDefs.menuVariant.default,\n layout = sidebarPropDefs.layout.default,\n presentation,\n // type = sidebarPropDefs.type.default,\n // side = sidebarPropDefs.side.default,\n // collapsible = sidebarPropDefs.collapsible.default,\n panelBackground,\n color,\n } = props;\n\n const { className, children, ...rootProps } = extractProps(props, sidebarPropDefs);\n // Remove internal-only props from DOM\n const { asChild: _, panelBackground: __, presentation: ___, ...safeRootProps } = rootProps;\n const resolvedColor = color || themeContext.accentColor;\n\n // Resolve layout (default to 'panel'). `presentation` takes precedence over `layout`.\n const resolvedLayout = presentation === 'thin' ? 'rail' : presentation === 'expanded' ? 'panel' : layout || 'panel';\n\n // Update context with current props - we'll pass the resolved values\n const resolvedSize = typeof size === 'object' ? size.initial || '2' : size;\n const visualContextValue = React.useMemo(\n () => ({ size: resolvedSize, menuVariant, presentation, color: resolvedColor }),\n [resolvedSize, menuVariant, presentation, resolvedColor],\n );\n return (\n <div {...safeRootProps} ref={forwardedRef} data-accent-color={resolvedColor} className={classNames('rt-SidebarRoot', className)}>\n <SidebarVisualContext.Provider value={visualContextValue}>\n <div\n className={classNames('rt-SidebarContainer', `rt-variant-${variant}`, `rt-r-size-${resolvedSize}`, `rt-menu-variant-${menuVariant}`, resolvedLayout && `rt-layout-${resolvedLayout}`)}\n data-accent-color={resolvedColor}\n data-panel-background={panelBackground}\n data-presentation={presentation}\n data-layout={resolvedLayout}\n >\n {children}\n </div>\n </SidebarVisualContext.Provider>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar.Root';\n\n// Sidebar content area\ninterface SidebarContentProps extends React.ComponentPropsWithoutRef<'div'> {\n id?: string;\n role?: 'navigation' | 'none';\n 'aria-label'?: string;\n}\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, SidebarContentProps>(\n ({ className, children, role = 'navigation', 'aria-label': ariaLabel = 'Main navigation', id, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const size = visual?.size ?? '2';\n const menuVariant = visual?.menuVariant ?? 'soft';\n\n return (\n <ScrollArea type=\"hover\">\n <div\n {...props}\n ref={forwardedRef}\n id={id}\n role={role}\n aria-label={ariaLabel}\n className={classNames('rt-BaseMenuContent', 'rt-SidebarContent', `rt-r-size-${size}`, `rt-menu-variant-${menuVariant}`, className)}\n >\n <div className=\"rt-BaseMenuViewport\">{children}</div>\n </div>\n </ScrollArea>\n );\n },\n);\nSidebarContent.displayName = 'Sidebar.Content';\n\n// Sidebar header\ninterface SidebarHeaderProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Whether to use the default flex container layout.\n * @default true\n */\n asContainer?: boolean;\n}\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, SidebarHeaderProps>(({ className, asContainer = true, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const size = visual?.size ?? '2';\n const menuVariant = visual?.menuVariant ?? 'soft';\n\n return (\n <div\n {...props}\n ref={forwardedRef}\n className={classNames(\n 'rt-SidebarHeader',\n `rt-r-size-${size}`,\n `rt-menu-variant-${menuVariant}`,\n {\n 'rt-SidebarHeader--container': asContainer,\n },\n className,\n )}\n />\n );\n});\nSidebarHeader.displayName = 'Sidebar.Header';\n\n// Sidebar footer\ninterface SidebarFooterProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Whether to use the default flex container layout.\n * @default true\n */\n asContainer?: boolean;\n}\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, SidebarFooterProps>(({ className, asContainer = true, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const size = visual?.size ?? '2';\n const menuVariant = visual?.menuVariant ?? 'soft';\n\n return (\n <div\n {...props}\n ref={forwardedRef}\n className={classNames(\n 'rt-SidebarFooter',\n `rt-r-size-${size}`,\n `rt-menu-variant-${menuVariant}`,\n {\n 'rt-SidebarFooter--container': asContainer,\n },\n className,\n )}\n />\n );\n});\nSidebarFooter.displayName = 'Sidebar.Footer';\n\n// Sidebar trigger button\n// removed Trigger in presentational-only Sidebar\n\n// Removed SidebarInset - not needed\n\n// Sidebar separator\ninterface SidebarSeparatorProps extends ComponentPropsWithout<typeof Separator, RemovedProps> {}\n\nconst SidebarSeparator = React.forwardRef<React.ComponentRef<typeof Separator>, SidebarSeparatorProps>(({ className, ...props }, forwardedRef) => (\n <Separator {...props} ref={forwardedRef} className={classNames('rt-SidebarSeparator', className)} />\n));\nSidebarSeparator.displayName = 'Sidebar.Separator';\n\n// Menu components - reusing dropdown menu structure\ninterface SidebarMenuProps extends React.ComponentPropsWithoutRef<'ul'> {}\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(({ className, ...props }, forwardedRef) => (\n <ul {...props} ref={forwardedRef} role=\"menu\" className={classNames('rt-SidebarMenu', className)} />\n));\nSidebarMenu.displayName = 'Sidebar.Menu';\n\ninterface SidebarMenuItemProps extends React.ComponentPropsWithoutRef<'li'> {}\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, SidebarMenuItemProps>(({ className, ...props }, forwardedRef) => (\n <li {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuItem', className)} />\n));\nSidebarMenuItem.displayName = 'Sidebar.MenuItem';\n\ninterface SidebarMenuButtonProps extends React.ComponentPropsWithoutRef<'button'> {\n asChild?: boolean;\n isActive?: boolean;\n shortcut?: React.ReactNode;\n badge?: string | BadgeConfig;\n}\n\n// Extracted to module scope to avoid re-creation on every render\nfunction separateIconsAndLabels(node: React.ReactNode): { icons: React.ReactNode[]; labels: React.ReactNode[] } {\n const icons: React.ReactNode[] = [];\n const labels: React.ReactNode[] = [];\n\n React.Children.forEach(node, (child) => {\n if (typeof child === 'string' || typeof child === 'number') {\n labels.push(<span key={labels.length} className=\"rt-SidebarMenuLabel\">{child}</span>);\n } else if (React.isValidElement(child)) {\n const el = child as React.ReactElement<any>;\n if (el.type === 'svg' || (el.props && el.props.icon) || (typeof el.type === 'function' && ((el.type as any).displayName?.includes('Icon') || (el.type as any).name?.includes('Icon')))) {\n icons.push(child);\n } else {\n labels.push(child);\n }\n } else if (child) {\n labels.push(child);\n }\n });\n\n return { icons, labels };\n}\n\nfunction wrapTextNodes(node: React.ReactNode): React.ReactNode {\n if (typeof node === 'string' || typeof node === 'number') {\n return <span className=\"rt-SidebarMenuLabel\">{node}</span>;\n }\n if (Array.isArray(node)) {\n return node.map((child, index) => <React.Fragment key={index}>{wrapTextNodes(child)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const el = node as React.ReactElement<any>;\n const className: string = (el.props && (el.props as any).className) || '';\n const isAlreadyLabel = typeof el.type === 'string' && className.split(' ').includes('rt-SidebarMenuLabel');\n if (isAlreadyLabel) return el;\n const newChildren = wrapTextNodes((el.props as any)?.children);\n return React.cloneElement(el, { ...(el.props as any) }, newChildren);\n }\n return node;\n}\n\nconst SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n ({ asChild = false, isActive = false, shortcut, badge, className, children, onKeyDown, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const sidebarSize = visual?.size ?? '2';\n const isThinMode = visual?.presentation === 'thin';\n\n const Comp = asChild ? Slot : 'button';\n\n const { onClick } = props;\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (onClick) onClick(event as any);\n break;\n case 'ArrowDown': {\n event.preventDefault();\n // Focus next menu item\n const nextItem = (event.currentTarget as HTMLElement).nextElementSibling?.querySelector('[role=\"menuitem\"]') as HTMLElement;\n if (nextItem) nextItem.focus();\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n // Focus previous menu item\n const prevItem = (event.currentTarget as HTMLElement).previousElementSibling?.querySelector('[role=\"menuitem\"]') as HTMLElement;\n if (prevItem) prevItem.focus();\n break;\n }\n }\n onKeyDown?.(event);\n },\n [onClick, onKeyDown],\n );\n\n // Memoize child processing to avoid re-traversal on every render\n const processedChildren = React.useMemo(() => wrapTextNodes(children), [children]);\n\n // For thin mode, separate icons into a wrapper for targeted background styling\n const { icons, labels } = React.useMemo(\n () => isThinMode ? separateIconsAndLabels(children) : { icons: [] as React.ReactNode[], labels: [] as React.ReactNode[] },\n [isThinMode, children],\n );\n\n // When rendering asChild, Slot expects a single child element. We still want to\n // append optional badge/shortcut inside that element so they render with Link.\n const slottedChildren = React.useMemo(() => {\n if (!asChild) return null;\n try {\n const onlyChild = React.Children.only(processedChildren as React.ReactElement<any>) as React.ReactElement<any>;\n const originalInnerChildren = (onlyChild.props as any)?.children;\n const enhancedInnerChildren = (\n <>\n {originalInnerChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n );\n return React.cloneElement(onlyChild, { ...(onlyChild.props as any) }, enhancedInnerChildren);\n } catch {\n // Fallback: if multiple children were passed incorrectly, just return processedChildren\n return processedChildren as React.ReactNode;\n }\n }, [asChild, processedChildren, badge, shortcut, sidebarSize]);\n\n return (\n <Comp\n {...props}\n ref={forwardedRef}\n role=\"menuitem\"\n aria-current={isActive ? 'page' : undefined}\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', className)}\n data-active={isActive || undefined}\n onKeyDown={handleKeyDown}\n >\n {asChild ? (\n slottedChildren\n ) : isThinMode && icons.length > 0 ? (\n <>\n <span className=\"rt-SidebarMenuIconWrapper\">{icons}</span>\n {labels.map((label, index) => (\n <React.Fragment key={index}>\n {typeof label === 'string' || typeof label === 'number' ? (\n <span className=\"rt-SidebarMenuLabel\">{label}</span>\n ) : (\n label\n )}\n </React.Fragment>\n ))}\n </>\n ) : (\n <>\n {processedChildren}\n {badge && (\n <div className=\"rt-SidebarMenuBadge\">\n {typeof badge === 'string' ? (\n <Badge size={sidebarSize} variant=\"soft\">\n {badge}\n </Badge>\n ) : (\n <Badge size={badge.size || sidebarSize} variant={badge.variant || 'soft'} color={badge.color} radius={badge.radius}>\n {badge.content}\n </Badge>\n )}\n </div>\n )}\n {shortcut && (\n <div className=\"rt-BaseMenuShortcut rt-SidebarMenuShortcut\">\n <Kbd size={sidebarSize}>{shortcut}</Kbd>\n </div>\n )}\n </>\n )}\n </Comp>\n );\n },\n);\nSidebarMenuButton.displayName = 'Sidebar.MenuButton';\n\n// Sub-menu components: Accordion in expanded, Dropdown in thin\nconst SidebarSubMenuModeContext = React.createContext<'accordion' | 'dropdown'>('accordion');\ninterface SidebarMenuSubProps extends React.ComponentPropsWithoutRef<'div'> {\n defaultOpen?: boolean;\n}\n\nconst SidebarMenuSub = React.forwardRef<HTMLDivElement, SidebarMenuSubProps>(({ defaultOpen = false, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode: 'accordion' | 'dropdown' = visual?.presentation === 'thin' ? 'dropdown' : 'accordion';\n\n if (mode === 'dropdown') {\n return (\n <div {...props} ref={forwardedRef}>\n <DropdownMenu.Root>\n <SidebarSubMenuModeContext.Provider value=\"dropdown\">{children}</SidebarSubMenuModeContext.Provider>\n </DropdownMenu.Root>\n </div>\n );\n }\n\n return (\n <div {...props} ref={forwardedRef}>\n <SidebarSubMenuModeContext.Provider value=\"accordion\">\n <Accordion.Root type=\"single\" collapsible defaultValue={defaultOpen ? 'item' : undefined}>\n <Accordion.Item value=\"item\">{children}</Accordion.Item>\n </Accordion.Root>\n </SidebarSubMenuModeContext.Provider>\n </div>\n );\n});\nSidebarMenuSub.displayName = 'Sidebar.MenuSub';\n\ninterface SidebarMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof Accordion.Trigger> {\n asChild?: boolean;\n}\n\nconst SidebarMenuSubTrigger = React.forwardRef<React.ElementRef<typeof Accordion.Trigger>, SidebarMenuSubTriggerProps>(\n ({ asChild = false, className, children, ...props }, forwardedRef) => {\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n return (\n <DropdownMenu.Trigger>\n <button\n {...(props as any)}\n ref={forwardedRef as any}\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {children}\n </button>\n </DropdownMenu.Trigger>\n );\n }\n\n return (\n <Accordion.Header asChild>\n <div>\n <Accordion.Trigger\n {...props}\n ref={forwardedRef}\n asChild={asChild}\n role=\"menuitem\"\n aria-haspopup=\"true\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarMenuSubTrigger', className)}\n >\n {asChild ? (\n children\n ) : (\n <>\n {children}\n <ThickChevronRightIcon className={classNames('rt-BaseMenuSubTriggerIcon', 'rt-SidebarMenuSubTriggerIcon')} />\n </>\n )}\n </Accordion.Trigger>\n </div>\n </Accordion.Header>\n );\n },\n);\nSidebarMenuSubTrigger.displayName = 'Sidebar.MenuSubTrigger';\n\ninterface SidebarMenuSubContentProps extends React.ComponentPropsWithoutRef<typeof Accordion.Content> {}\n\nconst SidebarMenuSubContent = React.forwardRef<React.ElementRef<typeof Accordion.Content>, SidebarMenuSubContentProps>(({ className, children, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const mode = React.useContext(SidebarSubMenuModeContext);\n\n if (mode === 'dropdown') {\n const unwrapMenuButton = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n return node.map((n, i) => <React.Fragment key={i}>{unwrapMenuButton(n)}</React.Fragment>);\n }\n if (React.isValidElement(node)) {\n const typeDisplay = (node.type as any)?.displayName;\n if (typeDisplay === 'Sidebar.MenuButton') {\n return (node.props as any)?.children;\n }\n const child = (node.props as any)?.children;\n if (child !== undefined) {\n return React.cloneElement(node as any, { ...(node.props as any), children: unwrapMenuButton(child) });\n }\n }\n return node;\n };\n\n const normalized = React.Children.map(children as React.ReactNode, (child, index) => {\n if (React.isValidElement(child) && (child.type as any)?.displayName === 'Sidebar.MenuItem') {\n const itemChildren = (child.props as any)?.children;\n const content = unwrapMenuButton(itemChildren);\n return (\n <DropdownMenu.Item key={index} asChild>\n {content as any}\n </DropdownMenu.Item>\n );\n }\n // Fallback: wrap raw nodes too for consistent menu styling\n return (\n <DropdownMenu.Item key={index} asChild>\n {unwrapMenuButton(child) as any}\n </DropdownMenu.Item>\n );\n });\n\n // DropdownMenu only supports sizes 1 and 2, so map size 3 to 2\n const dropdownSize = visual?.size === '3' ? '2' : visual?.size;\n return (\n <DropdownMenu.Content size={dropdownSize} variant={visual?.menuVariant} className={classNames(className)}>\n <DropdownMenu.Group>{normalized}</DropdownMenu.Group>\n </DropdownMenu.Content>\n );\n }\n\n return (\n <Accordion.Content {...props} ref={forwardedRef} className={classNames('rt-SidebarMenuSubContent', className)}>\n <div className=\"rt-SidebarMenuSubList\">{children}</div>\n </Accordion.Content>\n );\n});\nSidebarMenuSubContent.displayName = 'Sidebar.MenuSubContent';\n\n// Group components\ninterface SidebarGroupProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-BaseMenuGroup', 'rt-SidebarGroup', className)} />\n));\nSidebarGroup.displayName = 'Sidebar.Group';\n\ninterface SidebarGroupLabelProps extends React.ComponentPropsWithoutRef<'div'> {\n asChild?: boolean;\n}\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, SidebarGroupLabelProps>(({ asChild = false, className, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'div';\n\n return <Comp {...props} ref={forwardedRef} role=\"group\" className={classNames('rt-BaseMenuLabel', 'rt-SidebarGroupLabel', className)} />;\n});\nSidebarGroupLabel.displayName = 'Sidebar.GroupLabel';\n\ninterface SidebarGroupContentProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, SidebarGroupContentProps>(({ className, ...props }, forwardedRef) => (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarGroupContent', className)} />\n));\nSidebarGroupContent.displayName = 'Sidebar.GroupContent';\n\n// Search component: inline input in expanded, popover trigger in thin\ninterface SidebarSearchProps extends React.ComponentPropsWithoutRef<'div'> {\n value: string;\n onValueChange: (value: string) => void;\n placeholder?: string;\n children?: React.ReactNode;\n}\n\nconst SearchIcon = ({ className }: { className?: string }) => (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst ClearIcon = ({ className }: { className?: string }) => (\n <svg className={className} width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\nconst SidebarSearch = React.forwardRef<HTMLDivElement, SidebarSearchProps>(\n ({ value, onValueChange, placeholder = 'Search...', children, className, ...props }, forwardedRef) => {\n const visual = useSidebarVisual();\n const isThin = visual?.presentation === 'thin';\n const inputRef = React.useRef<HTMLInputElement>(null);\n const popoverRef = React.useRef<HTMLDivElement>(null);\n const searchId = React.useId();\n const resultsId = `${searchId}-results`;\n\n // Stable refs for values used in callbacks \u2014 avoids recreating handlers on every keystroke\n const valueRef = React.useRef(value);\n valueRef.current = value;\n const onValueChangeRef = React.useRef(onValueChange);\n onValueChangeRef.current = onValueChange;\n\n // Derive a clean aria-label from placeholder (strip trailing dots/ellipsis)\n const searchLabel = placeholder.replace(/\\.+$/, '');\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Escape' && valueRef.current) {\n e.preventDefault();\n e.stopPropagation();\n onValueChangeRef.current('');\n inputRef.current?.focus();\n }\n },\n [],\n );\n\n // Arrow key navigation within the popover (input \u2194 results)\n const handlePopoverKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = popoverRef.current;\n if (!container) return;\n\n const resultsGroup = container.querySelector('[role=\"group\"]');\n if (!resultsGroup) return;\n\n const items = Array.from(\n resultsGroup.querySelectorAll<HTMLElement>('a, button'),\n );\n if (items.length === 0) return;\n\n const active = document.activeElement as HTMLElement;\n const isOnInput = active === inputRef.current;\n const currentIndex = items.indexOf(active);\n\n // Typing while a result is focused \u2192 redirect focus to input\n if (\n e.key.length === 1 &&\n !e.ctrlKey &&\n !e.metaKey &&\n !e.altKey &&\n !isOnInput &&\n currentIndex !== -1\n ) {\n inputRef.current?.focus();\n return;\n }\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n if (isOnInput || currentIndex === -1) {\n items[0]?.focus();\n } else if (currentIndex < items.length - 1) {\n items[currentIndex + 1]?.focus();\n }\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n if (currentIndex <= 0) {\n inputRef.current?.focus();\n } else {\n items[currentIndex - 1]?.focus();\n }\n break;\n }\n case 'Home': {\n // Only intercept when focused on a result, not the input (where Home moves cursor)\n if (!isOnInput) {\n e.preventDefault();\n items[0]?.focus();\n }\n break;\n }\n case 'End': {\n if (!isOnInput) {\n e.preventDefault();\n items[items.length - 1]?.focus();\n }\n break;\n }\n }\n },\n [],\n );\n\n if (isThin) {\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--thin', className)}>\n <Popover.Root>\n <Popover.Trigger>\n <button\n type=\"button\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-SidebarMenuButton', 'rt-SidebarSearchTrigger')}\n aria-label={searchLabel}\n >\n <span className=\"rt-SidebarMenuIconWrapper\">\n <SearchIcon />\n </span>\n <span className=\"rt-SidebarMenuLabel\">Search</span>\n </button>\n </Popover.Trigger>\n <Popover.Content side=\"right\" align=\"start\" size=\"2\" width=\"280px\" aria-label={searchLabel}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- keyDown manages arrow-key navigation between input and results, which is accessibility-enhancing */}\n <div\n ref={popoverRef}\n className=\"rt-SidebarSearchPopover\"\n role=\"search\"\n onKeyDown={handlePopoverKeyDown}\n >\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n aria-controls={children ? resultsId : undefined}\n // eslint-disable-next-line jsx-a11y/no-autofocus -- intentional: popover opens on user action, focusing the input is expected UX\n autoFocus\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n {children && (\n <div id={resultsId} role=\"group\" aria-label=\"Search results\">\n {children}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Root>\n </div>\n );\n }\n\n // Expanded mode: inline input\n return (\n <div {...props} ref={forwardedRef} className={classNames('rt-SidebarSearch', 'rt-SidebarSearch--expanded', className)} role=\"search\">\n <div className=\"rt-SidebarSearchInputWrapper\">\n <SearchIcon className=\"rt-SidebarSearchIcon\" />\n <input\n ref={inputRef}\n type=\"search\"\n className=\"rt-SidebarSearchInput\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n aria-label={searchLabel}\n />\n {value && (\n <button\n type=\"button\"\n className=\"rt-reset rt-SidebarSearchClear\"\n onClick={() => {\n onValueChange('');\n inputRef.current?.focus();\n }}\n aria-label=\"Clear search\"\n >\n <ClearIcon />\n </button>\n )}\n </div>\n </div>\n );\n },\n);\nSidebarSearch.displayName = 'Sidebar.Search';\n\n// Export all components following shadcn's pattern\nexport {\n Sidebar as Root,\n SidebarContent as Content,\n SidebarHeader as Header,\n SidebarFooter as Footer,\n SidebarSeparator as Separator,\n SidebarMenu as Menu,\n SidebarMenuItem as MenuItem,\n SidebarMenuButton as MenuButton,\n SidebarMenuSub as MenuSub,\n SidebarMenuSubTrigger as MenuSubTrigger,\n SidebarMenuSubContent as MenuSubContent,\n SidebarGroup as Group,\n SidebarGroupLabel as GroupLabel,\n SidebarGroupContent as GroupContent,\n SidebarSearch as Search,\n};\n\n/**\n * Enhanced Sidebar Header and Footer Usage Examples:\n *\n * 1. Simple default container (backwards compatible):\n * <Sidebar.Header>\n * <Logo />\n * <span>App Name</span>\n * </Sidebar.Header>\n *\n * 2. Custom flex layout:\n * <Sidebar.Header className=\"rt-justify-between rt-gap-3\">\n * <Logo />\n * <Sidebar.MenuButton>\n * <SettingsIcon />\n * </Sidebar.MenuButton>\n * </Sidebar.Header>\n *\n * 3. Column layout for multiple rows:\n * <Sidebar.Header className=\"rt-flex-col rt-gap-2\" asContainer={false}>\n * <div className=\"rt-flex rt-items-center rt-gap-2\">\n * <Logo />\n * <span>App Name</span>\n * </div>\n * <Sidebar.MenuButton>\n * <UserAvatar />\n * <span>John Doe</span>\n * </Sidebar.MenuButton>\n * </Sidebar.Header>\n *\n * 4. Interactive footer with menu button:\n * <Sidebar.Footer>\n * <Sidebar.MenuButton>\n * <UserIcon />\n * <span>Settings</span>\n * <ChevronUpIcon />\n * </Sidebar.MenuButton>\n * </Sidebar.Footer>\n *\n * 5. Custom footer layout:\n * <Sidebar.Footer className=\"rt-justify-between\">\n * <span>v1.0.0</span>\n * <Sidebar.MenuButton>\n * <HelpIcon />\n * </Sidebar.MenuButton>\n * </Sidebar.Footer>\n *\n * Available utility classes:\n * - Layout: rt-flex-row, rt-flex-col\n * - Alignment: rt-items-center, rt-items-start, rt-items-end\n * - Justification: rt-justify-between, rt-justify-center, rt-justify-start, rt-justify-end\n * - Gap: rt-gap-1, rt-gap-2, rt-gap-3, rt-gap-4\n */\n\nexport type { SidebarProps as RootProps, SidebarContentProps as ContentProps, SidebarHeaderProps as HeaderProps, SidebarFooterProps as FooterProps, BadgeConfig };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["sidebar_exports", "__export", "SidebarContent", "SidebarFooter", "SidebarGroup", "SidebarGroupContent", "SidebarGroupLabel", "SidebarHeader", "SidebarMenu", "SidebarMenuButton", "SidebarMenuItem", "SidebarMenuSub", "SidebarMenuSubContent", "SidebarMenuSubTrigger", "Sidebar", "SidebarSearch", "SidebarSeparator", "React", "classNames", "Accordion", "SidebarVisualContext", "useSidebarVisual", "Sidebar", "props", "forwardedRef", "themeContext", "useThemeContext", "size", "sidebarPropDefs", "variant", "menuVariant", "layout", "presentation", "panelBackground", "color", "className", "children", "rootProps", "extractProps", "_", "__", "___", "safeRootProps", "resolvedColor", "resolvedLayout", "resolvedSize", "visualContextValue", "classNames", "SidebarContent", "role", "ariaLabel", "id", "visual", "ScrollArea", "SidebarHeader", "asContainer", "SidebarFooter", "SidebarSeparator", "Separator", "SidebarMenu", "SidebarMenuItem", "separateIconsAndLabels", "node", "icons", "labels", "child", "el", "wrapTextNodes", "index", "newChildren", "SidebarMenuButton", "asChild", "isActive", "shortcut", "badge", "onKeyDown", "sidebarSize", "isThinMode", "Comp", "Slot", "onClick", "handleKeyDown", "event", "nextItem", "prevItem", "processedChildren", "slottedChildren", "onlyChild", "originalInnerChildren", "enhancedInnerChildren", "Badge", "Kbd", "label", "SidebarSubMenuModeContext", "SidebarMenuSub", "defaultOpen", "DropdownMenuRoot", "SidebarMenuSubTrigger", "DropdownMenuTrigger", "ThickChevronRightIcon", "SidebarMenuSubContent", "unwrapMenuButton", "n", "i", "normalized", "itemChildren", "content", "DropdownMenuItem", "dropdownSize", "DropdownMenuContent", "DropdownMenuGroup", "SidebarGroup", "SidebarGroupLabel", "SidebarGroupContent", "SearchIcon", "ClearIcon", "SidebarSearch", "value", "onValueChange", "placeholder", "isThin", "inputRef", "popoverRef", "resultsId", "valueRef", "onValueChangeRef", "searchLabel", "e", "handlePopoverKeyDown", "container", "resultsGroup", "items", "active", "isOnInput", "currentIndex", "PopoverRoot", "PopoverTrigger", "PopoverContent"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-OGVKSYLL.js";import{a as C}from"./chunk-5WRCK4R7.js";import{a as u,b as c}from"./chunk-5T6K7VPP.js";import{a as m}from"./chunk-GSTOGDAJ.js";import{a as i}from"./chunk-6FLLFCBU.js";import{a as N}from"./chunk-OS3FCYZY.js";var g={};N(g,{Icon:()=>f,Root:()=>R,Text:()=>d});import*as o from"react";import p from"classnames";import{Slot as h}from"radix-ui";var P=o.createContext({}),R=o.forwardRef((t,a)=>{let{size:e=s.size.default,live:r="polite",role:x="status",variant:n}=t,{asChild:v,children:y,className:T,color:l,panelBackground:I,material:E,...w}=i(t,s,m),z=v?h.Root:"div";return o.createElement(z,{"data-accent-color":l,"data-panel-background":I,"data-material":E,...w,...{role:x,"aria-live":r,"aria-atomic":!0},className:p("rt-CalloutRoot",T),ref:a},o.createElement(P.Provider,{value:o.useMemo(()=>({size:e,variant:n,color:l}),[e,n,l])},y))});R.displayName="Callout.Root";var f=o.forwardRef(({className:t,...a},e)=>o.createElement("div",{...a,className:p("rt-CalloutIcon",t),ref:e}));f.displayName="Callout.Icon";var d=o.forwardRef(({className:t,...a},e)=>{let{size:r}=o.useContext(P);return o.createElement(C,{as:"p",size:u(r,c),...a,asChild:!1,ref:e,className:p("rt-CalloutText",t)})});d.displayName="Callout.Text";export{R as a,f as b,d as c,g as d};
|
|
2
|
+
//# sourceMappingURL=chunk-CKMMUHKE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as r}from"./chunk-KRJTW535.js";import{c as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as r}from"./chunk-KRJTW535.js";import{c as e}from"./chunk-ZNK6AH2G.js";var a=["1","2","3"],s=["classic","surface","soft","outline","ghost"],n=["none","vertical","horizontal","both"],t=["solid","translucent"],o=["solid","translucent"],f={size:{type:"enum",className:"rt-r-size",values:a,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:s,default:"surface"},resize:{type:"enum",className:"rt-r-resize",values:n,responsive:!0},panelBackground:{type:"enum",values:t,default:void 0},material:{type:"enum",values:o,default:void 0},error:{type:"boolean",default:!1},errorMessage:{type:"string",default:void 0},isInvalid:{type:"boolean",default:!1},required:{type:"boolean",default:!1},"aria-describedby":{type:"string",default:void 0},"aria-labelledby":{type:"string",default:void 0},...e,...r};export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-CLMOWP5T.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{c as e}from"./chunk-ZNK6AH2G.js";var o=["horizontal","vertical"],t=["1","2","3","4"],a={orientation:{type:"enum",className:"rt-r-orientation",values:o,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:t,default:"1",responsive:!0},color:{...e.color,default:"gray"},decorative:{type:"boolean",default:!0},light:{type:"boolean",className:"rt-light",default:!1}};export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-CRSHBENJ.js.map
|