@womp/kookie-ui 0.14.4 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/components.css +711 -2741
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +4 -4
- package/dist/cjs/components/_internal/base-button.props.d.ts +2 -9
- package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.props.js +1 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts +2 -9
- package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -28
- package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
- package/dist/cjs/components/_internal/base-menu.utils.d.ts +2 -9
- package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
- package/dist/cjs/components/_internal/base-menu.utils.js.map +4 -4
- package/dist/cjs/components/_internal/base-radio.props.d.ts +1 -8
- package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +4 -4
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -6
- package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
- package/dist/cjs/components/_internal/menu-context.js +1 -1
- package/dist/cjs/components/_internal/menu-context.js.map +4 -4
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +2 -2
- package/dist/cjs/components/_internal/shell-inspector.js +1 -1
- package/dist/cjs/components/_internal/shell-inspector.js.map +2 -2
- package/dist/cjs/components/_internal/shell-pane.d.ts +2 -3
- package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-pane.js +1 -1
- package/dist/cjs/components/_internal/shell-pane.js.map +2 -2
- package/dist/cjs/components/_internal/shell-sidebar.d.ts +0 -4
- package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
- package/dist/cjs/components/_internal/shell-store.d.ts +4 -4
- package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-store.js +1 -1
- package/dist/cjs/components/_internal/shell-store.js.map +1 -1
- package/dist/cjs/components/accordion.d.ts.map +1 -1
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +4 -4
- package/dist/cjs/components/accordion.props.d.ts +4 -15
- package/dist/cjs/components/accordion.props.d.ts.map +1 -1
- package/dist/cjs/components/accordion.props.js +1 -1
- package/dist/cjs/components/accordion.props.js.map +4 -4
- package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +4 -4
- package/dist/cjs/components/alert-dialog.props.d.ts +0 -5
- package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
- package/dist/cjs/components/alert-dialog.props.js +1 -1
- package/dist/cjs/components/alert-dialog.props.js.map +3 -3
- package/dist/cjs/components/avatar.d.ts.map +1 -1
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +4 -4
- package/dist/cjs/components/avatar.props.d.ts +2 -17
- package/dist/cjs/components/avatar.props.d.ts.map +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +4 -4
- package/dist/cjs/components/badge.d.ts.map +1 -1
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +4 -4
- package/dist/cjs/components/badge.props.d.ts +1 -16
- package/dist/cjs/components/badge.props.d.ts.map +1 -1
- package/dist/cjs/components/badge.props.js +1 -1
- package/dist/cjs/components/badge.props.js.map +4 -4
- package/dist/cjs/components/blockquote.js.map +1 -1
- package/dist/cjs/components/blockquote.props.d.ts +1 -1
- package/dist/cjs/components/blockquote.props.js +1 -1
- package/dist/cjs/components/blockquote.props.js.map +2 -2
- package/dist/cjs/components/button.d.ts +2 -39
- package/dist/cjs/components/button.d.ts.map +1 -1
- package/dist/cjs/components/button.js +2 -2
- package/dist/cjs/components/button.js.map +4 -4
- package/dist/cjs/components/button.props.js +1 -1
- package/dist/cjs/components/button.props.js.map +4 -4
- package/dist/cjs/components/card.d.ts.map +1 -1
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +4 -4
- package/dist/cjs/components/card.props.d.ts +1 -8
- package/dist/cjs/components/card.props.d.ts.map +1 -1
- package/dist/cjs/components/card.props.js +1 -1
- package/dist/cjs/components/card.props.js.map +4 -4
- package/dist/cjs/components/chatbar.d.ts +1 -3
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js +2 -2
- package/dist/cjs/components/chatbar.js.map +4 -4
- package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-cards.js +1 -1
- package/dist/cjs/components/checkbox-cards.js.map +4 -4
- package/dist/cjs/components/checkbox-cards.props.d.ts +2 -10
- package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-cards.props.js +1 -1
- package/dist/cjs/components/checkbox-cards.props.js.map +4 -4
- package/dist/cjs/components/checkbox-group.js +1 -1
- package/dist/cjs/components/checkbox-group.js.map +4 -4
- package/dist/cjs/components/checkbox-group.props.d.ts +2 -8
- package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.props.js +1 -1
- package/dist/cjs/components/checkbox-group.props.js.map +4 -4
- package/dist/cjs/components/checkbox.d.ts.map +1 -1
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +4 -4
- package/dist/cjs/components/checkbox.props.js +1 -1
- package/dist/cjs/components/checkbox.props.js.map +4 -4
- package/dist/cjs/components/code.js +1 -1
- package/dist/cjs/components/code.js.map +2 -2
- package/dist/cjs/components/code.props.d.ts +1 -1
- package/dist/cjs/components/code.props.js +1 -1
- package/dist/cjs/components/code.props.js.map +2 -2
- package/dist/cjs/components/combobox.d.ts.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +4 -4
- package/dist/cjs/components/combobox.props.d.ts +1 -20
- package/dist/cjs/components/combobox.props.d.ts.map +1 -1
- package/dist/cjs/components/combobox.props.js +1 -1
- package/dist/cjs/components/combobox.props.js.map +4 -4
- package/dist/cjs/components/context-menu.d.ts.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +4 -4
- package/dist/cjs/components/context-menu.props.js +1 -1
- package/dist/cjs/components/context-menu.props.js.map +3 -3
- package/dist/cjs/components/data-list.js.map +1 -1
- package/dist/cjs/components/data-list.props.js.map +1 -1
- package/dist/cjs/components/dialog.d.ts.map +1 -1
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +4 -4
- package/dist/cjs/components/dialog.props.d.ts +0 -5
- package/dist/cjs/components/dialog.props.d.ts.map +1 -1
- package/dist/cjs/components/dialog.props.js +1 -1
- package/dist/cjs/components/dialog.props.js.map +3 -3
- package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.props.js +1 -1
- package/dist/cjs/components/dropdown-menu.props.js.map +3 -3
- package/dist/cjs/components/heading.js.map +1 -1
- package/dist/cjs/components/heading.props.js.map +1 -1
- package/dist/cjs/components/hover-card.js +1 -1
- package/dist/cjs/components/hover-card.js.map +4 -4
- package/dist/cjs/components/icon-button.d.ts +1 -1
- package/dist/cjs/components/icon-button.d.ts.map +1 -1
- package/dist/cjs/components/icon-button.js +2 -2
- package/dist/cjs/components/icon-button.js.map +4 -4
- package/dist/cjs/components/icon-button.props.js +1 -1
- package/dist/cjs/components/icon-button.props.js.map +4 -4
- package/dist/cjs/components/image.d.ts +0 -5
- package/dist/cjs/components/image.d.ts.map +1 -1
- package/dist/cjs/components/image.js +1 -1
- package/dist/cjs/components/image.js.map +3 -3
- package/dist/cjs/components/index.d.ts +0 -3
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +5 -5
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/kbd.js +1 -1
- package/dist/cjs/components/kbd.js.map +4 -4
- package/dist/cjs/components/kbd.props.d.ts +2 -4
- package/dist/cjs/components/kbd.props.d.ts.map +1 -1
- package/dist/cjs/components/kbd.props.js +1 -1
- package/dist/cjs/components/kbd.props.js.map +4 -4
- package/dist/cjs/components/link.js +1 -1
- package/dist/cjs/components/link.js.map +2 -2
- package/dist/cjs/components/link.props.d.ts +1 -1
- package/dist/cjs/components/link.props.js +1 -1
- package/dist/cjs/components/link.props.js.map +2 -2
- package/dist/cjs/components/message-scroller.js +2 -2
- package/dist/cjs/components/message-scroller.js.map +4 -4
- package/dist/cjs/components/notice.js +2 -2
- package/dist/cjs/components/notice.js.map +4 -4
- package/dist/cjs/components/popover.d.ts.map +1 -1
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +4 -4
- package/dist/cjs/components/popover.props.d.ts +0 -6
- package/dist/cjs/components/popover.props.d.ts.map +1 -1
- package/dist/cjs/components/popover.props.js +1 -1
- package/dist/cjs/components/popover.props.js.map +3 -3
- package/dist/cjs/components/progress.js.map +1 -1
- package/dist/cjs/components/progress.props.js.map +1 -1
- package/dist/cjs/components/radio-cards.d.ts.map +1 -1
- package/dist/cjs/components/radio-cards.js +1 -1
- package/dist/cjs/components/radio-cards.js.map +4 -4
- package/dist/cjs/components/radio-cards.props.d.ts +2 -10
- package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-cards.props.js +1 -1
- package/dist/cjs/components/radio-cards.props.js.map +4 -4
- package/dist/cjs/components/radio-group.js +1 -1
- package/dist/cjs/components/radio-group.js.map +4 -4
- package/dist/cjs/components/radio-group.props.d.ts +1 -3
- package/dist/cjs/components/radio-group.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.props.js +1 -1
- package/dist/cjs/components/radio-group.props.js.map +4 -4
- package/dist/cjs/components/radio.d.ts.map +1 -1
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +4 -4
- package/dist/cjs/components/radio.props.js +1 -1
- package/dist/cjs/components/radio.props.js.map +4 -4
- package/dist/cjs/components/schemas/base-button.schema.d.ts +0 -7
- package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js +1 -1
- package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/button.schema.d.ts +7 -73
- package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/button.schema.js +1 -1
- package/dist/cjs/components/schemas/button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/icon-button.schema.d.ts +0 -7
- package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
- package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/index.js +1 -1
- package/dist/cjs/components/schemas/index.js.map +2 -2
- package/dist/cjs/components/schemas/shell.schema.d.ts +5 -29
- package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/shell.schema.js +1 -1
- package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts +7 -73
- package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +0 -7
- package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
- package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
- package/dist/cjs/components/segmented-control.d.ts.map +1 -1
- package/dist/cjs/components/segmented-control.js +1 -1
- package/dist/cjs/components/segmented-control.js.map +4 -4
- package/dist/cjs/components/segmented-control.props.d.ts +0 -11
- package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
- package/dist/cjs/components/segmented-control.props.js +1 -1
- package/dist/cjs/components/segmented-control.props.js.map +3 -3
- package/dist/cjs/components/select.d.ts.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +4 -4
- package/dist/cjs/components/select.props.d.ts +1 -14
- package/dist/cjs/components/select.props.d.ts.map +1 -1
- package/dist/cjs/components/select.props.js +1 -1
- package/dist/cjs/components/select.props.js.map +4 -4
- package/dist/cjs/components/separator.js.map +1 -1
- package/dist/cjs/components/separator.props.js.map +1 -1
- package/dist/cjs/components/sheet.d.ts +1 -2
- package/dist/cjs/components/sheet.d.ts.map +1 -1
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +4 -4
- package/dist/cjs/components/shell.context.js +1 -1
- package/dist/cjs/components/shell.context.js.map +2 -2
- package/dist/cjs/components/shell.hooks.js.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +3 -3
- package/dist/cjs/components/shell.types.d.ts +1 -1
- package/dist/cjs/components/shell.types.d.ts.map +1 -1
- package/dist/cjs/components/shell.types.js.map +1 -1
- package/dist/cjs/components/sidebar.d.ts +2 -92
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/slider.js.map +1 -1
- package/dist/cjs/components/slider.props.js.map +1 -1
- package/dist/cjs/components/switch.d.ts.map +1 -1
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +3 -3
- package/dist/cjs/components/switch.props.d.ts +0 -18
- package/dist/cjs/components/switch.props.d.ts.map +1 -1
- package/dist/cjs/components/switch.props.js +1 -1
- package/dist/cjs/components/switch.props.js.map +3 -3
- package/dist/cjs/components/tab-nav.d.ts.map +1 -1
- package/dist/cjs/components/tab-nav.js +1 -1
- package/dist/cjs/components/tab-nav.js.map +4 -4
- package/dist/cjs/components/tab-nav.props.js +1 -1
- package/dist/cjs/components/tab-nav.props.js.map +3 -3
- package/dist/cjs/components/tabs.d.ts.map +1 -1
- package/dist/cjs/components/tabs.js +1 -1
- package/dist/cjs/components/tabs.js.map +4 -4
- package/dist/cjs/components/tabs.props.js +1 -1
- package/dist/cjs/components/tabs.props.js.map +3 -3
- package/dist/cjs/components/text-area.d.ts.map +1 -1
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +4 -4
- package/dist/cjs/components/text-area.props.d.ts +1 -12
- package/dist/cjs/components/text-area.props.d.ts.map +1 -1
- package/dist/cjs/components/text-area.props.js +1 -1
- package/dist/cjs/components/text-area.props.js.map +4 -4
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +4 -4
- package/dist/cjs/components/text-field.props.d.ts +1 -12
- package/dist/cjs/components/text-field.props.d.ts.map +1 -1
- package/dist/cjs/components/text-field.props.js +1 -1
- package/dist/cjs/components/text-field.props.js.map +4 -4
- package/dist/cjs/components/text.js.map +1 -1
- package/dist/cjs/components/text.props.js.map +1 -1
- package/dist/cjs/components/theme-panel.d.ts.map +1 -1
- package/dist/cjs/components/theme-panel.js +3 -3
- package/dist/cjs/components/theme-panel.js.map +4 -4
- package/dist/cjs/components/theme.d.ts +0 -3
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +4 -4
- package/dist/cjs/components/theme.props.d.ts +1 -19
- package/dist/cjs/components/theme.props.d.ts.map +1 -1
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +3 -3
- package/dist/cjs/components/toggle-button.d.ts.map +1 -1
- package/dist/cjs/components/toggle-button.js +3 -3
- package/dist/cjs/components/toggle-button.js.map +4 -4
- package/dist/cjs/components/toggle-icon-button.d.ts.map +1 -1
- package/dist/cjs/components/toggle-icon-button.js +3 -3
- package/dist/cjs/components/toggle-icon-button.js.map +4 -4
- package/dist/cjs/components/toolbar.d.ts +1 -1
- package/dist/cjs/components/toolbar.d.ts.map +1 -1
- package/dist/cjs/components/toolbar.js +2 -2
- package/dist/cjs/components/toolbar.js.map +4 -4
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +4 -4
- package/dist/cjs/components/virtual-menu.js +1 -1
- package/dist/cjs/components/virtual-menu.js.map +4 -4
- package/dist/cjs/helpers/index.js +4 -4
- package/dist/cjs/helpers/index.js.map +3 -3
- package/dist/cjs/helpers/map-prop-values.d.ts +1 -4
- package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/cjs/helpers/map-prop-values.js +1 -1
- package/dist/cjs/helpers/map-prop-values.js.map +3 -3
- package/dist/cjs/hooks/use-breakpoint.js.map +1 -1
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/color.prop.d.ts.map +1 -1
- package/dist/cjs/props/color.prop.js.map +2 -2
- package/dist/cjs/props/index.d.ts +0 -1
- package/dist/cjs/props/index.d.ts.map +1 -1
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +4 -4
- package/dist/esm/chunk-23WDP4JG.js +2 -0
- package/dist/esm/chunk-23WDP4JG.js.map +7 -0
- package/dist/esm/{chunk-K7BWSYVP.js → chunk-2IPVLV6B.js} +2 -2
- package/dist/esm/{chunk-SQ4BU4GH.js → chunk-2NNB4ZZ5.js} +2 -2
- package/dist/esm/{chunk-57XCVY6J.js → chunk-2PO6TZ7L.js} +2 -2
- package/dist/esm/{chunk-57XCVY6J.js.map → chunk-2PO6TZ7L.js.map} +1 -1
- package/dist/esm/{chunk-JXVUTFQN.js → chunk-2XSRO44Q.js} +2 -2
- package/dist/esm/{chunk-Z4DTHR2S.js → chunk-34KVYDF6.js} +1 -1
- package/dist/esm/{chunk-Z4DTHR2S.js.map → chunk-34KVYDF6.js.map} +2 -2
- package/dist/esm/{chunk-KXSMY4ZF.js → chunk-35KS5AQE.js} +2 -2
- package/dist/esm/chunk-3OABA7AF.js +2 -0
- package/dist/esm/chunk-3OABA7AF.js.map +7 -0
- package/dist/esm/chunk-3PT3AOD5.js +2 -0
- package/dist/esm/chunk-3PT3AOD5.js.map +7 -0
- package/dist/esm/{chunk-A2XVR7GL.js → chunk-3PTKPDSA.js} +2 -2
- package/dist/esm/chunk-3PTKPDSA.js.map +7 -0
- package/dist/esm/chunk-4D7OU2UA.js +2 -0
- package/dist/esm/chunk-4D7OU2UA.js.map +7 -0
- package/dist/esm/chunk-4FQLRQKJ.js +2 -0
- package/dist/esm/chunk-4FQLRQKJ.js.map +7 -0
- package/dist/esm/chunk-5AHQJB6H.js +2 -0
- package/dist/esm/{chunk-RWN22S44.js.map → chunk-5AHQJB6H.js.map} +2 -2
- package/dist/esm/chunk-5EAMAW2H.js +2 -0
- package/dist/esm/chunk-5EAMAW2H.js.map +7 -0
- package/dist/esm/chunk-5GYIQIPW.js +2 -0
- package/dist/esm/chunk-5GYIQIPW.js.map +7 -0
- package/dist/esm/chunk-5PG5YGIW.js +2 -0
- package/dist/esm/chunk-5PG5YGIW.js.map +7 -0
- package/dist/esm/{chunk-34UMKY2L.js → chunk-5RHODJDJ.js} +2 -2
- package/dist/esm/chunk-5ROQAZ7J.js +2 -0
- package/dist/esm/{chunk-GMHA5CFH.js.map → chunk-5ROQAZ7J.js.map} +2 -2
- package/dist/esm/chunk-5SQL4ZRC.js +2 -0
- package/dist/esm/chunk-5SQL4ZRC.js.map +7 -0
- package/dist/esm/{chunk-YA5DF67M.js → chunk-5YLKKQFK.js} +1 -1
- package/dist/esm/chunk-5YLKKQFK.js.map +7 -0
- package/dist/esm/{chunk-ZQVYY7UT.js → chunk-672FI4OH.js} +2 -2
- package/dist/esm/{chunk-T6Z4JUH6.js → chunk-6ERCPRXX.js} +2 -2
- package/dist/esm/chunk-7BE6N3KY.js +2 -0
- package/dist/esm/chunk-7BE6N3KY.js.map +7 -0
- package/dist/esm/{chunk-PXUQEA77.js → chunk-7CBZFHSQ.js} +2 -2
- package/dist/esm/{chunk-VJXHEDCE.js → chunk-7UW7D77E.js} +2 -2
- package/dist/esm/{chunk-62CJL5G7.js → chunk-A2NG5NRN.js} +2 -2
- package/dist/esm/{chunk-RUPET4E7.js → chunk-A6CDNZMT.js} +2 -2
- package/dist/esm/chunk-ABQHBDM4.js +2 -0
- package/dist/esm/chunk-ABQHBDM4.js.map +7 -0
- package/dist/esm/{chunk-43A5GUSI.js → chunk-AMP7O3DM.js} +2 -2
- package/dist/esm/{chunk-UBOOUDS4.js → chunk-AO32NT75.js} +2 -2
- package/dist/esm/chunk-B72RMGWZ.js +2 -0
- package/dist/esm/chunk-B72RMGWZ.js.map +7 -0
- package/dist/esm/{chunk-HFVD7W6R.js → chunk-BFLO4IVZ.js} +2 -2
- package/dist/esm/{chunk-SQZ5O7QS.js → chunk-BQE543O5.js} +2 -2
- package/dist/esm/chunk-C7JXVNMI.js +2 -0
- package/dist/esm/chunk-C7JXVNMI.js.map +7 -0
- package/dist/esm/chunk-CAUFRKTK.js +2 -0
- package/dist/esm/chunk-CAUFRKTK.js.map +7 -0
- package/dist/esm/chunk-CJ4UZDW5.js +2 -0
- package/dist/esm/chunk-CJ4UZDW5.js.map +7 -0
- package/dist/esm/{chunk-O2WPAUQN.js → chunk-CL6LRPCS.js} +2 -2
- package/dist/esm/chunk-CYXBQRQK.js +2 -0
- package/dist/esm/chunk-CYXBQRQK.js.map +7 -0
- package/dist/esm/chunk-DD5QHU6R.js +2 -0
- package/dist/esm/chunk-DD5QHU6R.js.map +7 -0
- package/dist/esm/chunk-DIGT74P3.js +2 -0
- package/dist/esm/chunk-DIGT74P3.js.map +7 -0
- package/dist/esm/{chunk-3OQM7SLQ.js → chunk-DQTJMIRO.js} +2 -2
- package/dist/esm/{chunk-GLERJXVS.js → chunk-DSB3TEAQ.js} +2 -2
- package/dist/esm/chunk-E5DJILUI.js +2 -0
- package/dist/esm/chunk-E5DJILUI.js.map +7 -0
- package/dist/esm/chunk-EJG2UNTM.js +2 -0
- package/dist/esm/chunk-EJG2UNTM.js.map +7 -0
- package/dist/esm/{chunk-HIBX2EXV.js → chunk-ELZEAEN2.js} +2 -2
- package/dist/esm/{chunk-IV4YJRVR.js → chunk-EVTNB4TB.js} +2 -2
- package/dist/esm/{chunk-CYSDGVKF.js → chunk-F2XQYWBE.js} +2 -2
- package/dist/esm/chunk-F2XQYWBE.js.map +7 -0
- package/dist/esm/chunk-FK6F6ROH.js +2 -0
- package/dist/esm/chunk-FK6F6ROH.js.map +7 -0
- package/dist/esm/chunk-GS2QSZUR.js +2 -0
- package/dist/esm/chunk-GS2QSZUR.js.map +7 -0
- package/dist/esm/{chunk-SGUTNJUO.js → chunk-GVLTTTFL.js} +2 -2
- package/dist/esm/chunk-HI3JY3DJ.js +2 -0
- package/dist/esm/chunk-HI3JY3DJ.js.map +7 -0
- package/dist/esm/{chunk-CIKDGYX3.js → chunk-HVQ3SLQC.js} +2 -2
- package/dist/esm/chunk-I53SGTKV.js +2 -0
- package/dist/esm/chunk-I53SGTKV.js.map +7 -0
- package/dist/esm/chunk-IMYZP5OY.js +2 -0
- package/dist/esm/chunk-IMYZP5OY.js.map +7 -0
- package/dist/esm/{chunk-N6Q3L64W.js → chunk-IYFDCW7Y.js} +2 -2
- package/dist/esm/chunk-IYXR46Q6.js +5 -0
- package/dist/esm/chunk-IYXR46Q6.js.map +7 -0
- package/dist/esm/chunk-JGB6LNTP.js +2 -0
- package/dist/esm/chunk-JGB6LNTP.js.map +7 -0
- package/dist/esm/chunk-JLHJHYVQ.js +2 -0
- package/dist/esm/chunk-JLHJHYVQ.js.map +7 -0
- package/dist/esm/{chunk-7FC7HF76.js → chunk-JLI7WHV6.js} +2 -2
- package/dist/esm/{chunk-OW4KAIWF.js → chunk-JQURG6CB.js} +2 -2
- package/dist/esm/{chunk-GONBMSRL.js → chunk-JZD5FHSU.js} +2 -2
- package/dist/esm/{chunk-EUSMN3K7.js → chunk-K5SC3CZZ.js} +2 -2
- package/dist/esm/{chunk-UBWRIE4C.js → chunk-K7J23OPW.js} +2 -2
- package/dist/esm/{chunk-UTHTSYSL.js → chunk-K7XY7FLD.js} +2 -2
- package/dist/esm/chunk-K7XY7FLD.js.map +7 -0
- package/dist/esm/chunk-KA5XDSKH.js +2 -0
- package/dist/esm/chunk-KA5XDSKH.js.map +7 -0
- package/dist/esm/chunk-L6M2MI7Y.js +2 -0
- package/dist/esm/chunk-L6M2MI7Y.js.map +7 -0
- package/dist/esm/chunk-LRFAOQK6.js +2 -0
- package/dist/esm/chunk-LRFAOQK6.js.map +7 -0
- package/dist/esm/chunk-LXSARUXD.js +2 -0
- package/dist/esm/chunk-LXSARUXD.js.map +7 -0
- package/dist/esm/{chunk-7ZCQAMHZ.js → chunk-MD3QCXRD.js} +2 -2
- package/dist/esm/chunk-MGQ4A2FI.js +2 -0
- package/dist/esm/{chunk-CMEKH4I5.js → chunk-MGSHX5N5.js} +2 -2
- package/dist/esm/chunk-MLJLEOZ5.js +2 -0
- package/dist/esm/chunk-MLJLEOZ5.js.map +7 -0
- package/dist/esm/chunk-MNC2O6QW.js +2 -0
- package/dist/esm/chunk-MNC2O6QW.js.map +7 -0
- package/dist/esm/chunk-MOMYWKIO.js +2 -0
- package/dist/esm/chunk-MOMYWKIO.js.map +7 -0
- package/dist/esm/{chunk-T7Q6DQRD.js → chunk-MQT3YJKY.js} +2 -2
- package/dist/esm/chunk-MQT3YJKY.js.map +7 -0
- package/dist/esm/{chunk-ZE2GWHPY.js → chunk-MVW2SY4F.js} +2 -2
- package/dist/esm/{chunk-KJTEZVOF.js → chunk-O6K6RZXY.js} +2 -2
- package/dist/esm/{chunk-JUY7CBSL.js → chunk-PBFSBHBS.js} +2 -2
- package/dist/esm/{chunk-3HGHPAH4.js → chunk-PDBVZAUJ.js} +2 -2
- package/dist/esm/chunk-PRRJ4WRE.js +2 -0
- package/dist/esm/chunk-PRRJ4WRE.js.map +7 -0
- package/dist/esm/chunk-PSS45RHX.js +2 -0
- package/dist/esm/{chunk-4JNHUPIM.js.map → chunk-PSS45RHX.js.map} +3 -3
- package/dist/esm/chunk-PTEAQFHI.js +2 -0
- package/dist/esm/chunk-PTEAQFHI.js.map +7 -0
- package/dist/esm/chunk-QDW5ZG5E.js +1 -0
- package/dist/esm/chunk-QE2EF7A7.js +2 -0
- package/dist/esm/chunk-QE2EF7A7.js.map +7 -0
- package/dist/esm/{chunk-R2MQMCND.js → chunk-QJFAGWBO.js} +2 -2
- package/dist/esm/chunk-QJSSCW3B.js +2 -0
- package/dist/esm/chunk-QJSSCW3B.js.map +7 -0
- package/dist/esm/chunk-QPNYHS6A.js +2 -0
- package/dist/esm/chunk-QPNYHS6A.js.map +7 -0
- package/dist/esm/chunk-QWFFYUFH.js +2 -0
- package/dist/esm/chunk-QWFFYUFH.js.map +7 -0
- package/dist/esm/{chunk-TCEQ5VVE.js → chunk-R4CN4Q3G.js} +2 -2
- package/dist/esm/chunk-RA4U6VVZ.js +2 -0
- package/dist/esm/chunk-RA4U6VVZ.js.map +7 -0
- package/dist/esm/{chunk-HJLBVNQE.js → chunk-RYURXQLJ.js} +2 -2
- package/dist/esm/{chunk-RUOOCYK4.js → chunk-S53ZQNHK.js} +2 -2
- package/dist/esm/chunk-SHFBYYEP.js +2 -0
- package/dist/esm/chunk-SHFBYYEP.js.map +7 -0
- package/dist/esm/{chunk-5G4WWJ4Z.js → chunk-T5DSQKKF.js} +2 -2
- package/dist/esm/{chunk-3XSB7YIM.js → chunk-TBZO22XK.js} +2 -2
- package/dist/esm/{chunk-C7UXUTUF.js → chunk-TGRRQHLQ.js} +2 -2
- package/dist/esm/{chunk-IVBKTHDM.js → chunk-TPHNDGSV.js} +2 -2
- package/dist/esm/chunk-TY3DIJFF.js +10 -0
- package/dist/esm/chunk-TY3DIJFF.js.map +7 -0
- package/dist/esm/chunk-UA6FP7HS.js +2 -0
- package/dist/esm/{chunk-6FLLFCBU.js → chunk-UBSLEGQZ.js} +2 -2
- package/dist/esm/chunk-UI2EFF6F.js +2 -0
- package/dist/esm/chunk-UI2EFF6F.js.map +7 -0
- package/dist/esm/chunk-ULSNYQOY.js +2 -0
- package/dist/esm/{chunk-XKBLNVOD.js.map → chunk-ULSNYQOY.js.map} +1 -1
- package/dist/esm/chunk-UPCRXJB2.js +2 -0
- package/dist/esm/chunk-UPCRXJB2.js.map +7 -0
- package/dist/esm/chunk-URLG45A4.js +2 -0
- package/dist/esm/chunk-URLG45A4.js.map +7 -0
- package/dist/esm/{chunk-LJXP6K5Y.js → chunk-V2TPYSZ2.js} +2 -2
- package/dist/esm/chunk-V7UP4SLZ.js +2 -0
- package/dist/esm/chunk-V7UP4SLZ.js.map +7 -0
- package/dist/esm/{chunk-FMMKOOS7.js → chunk-VASXAV62.js} +2 -2
- package/dist/esm/chunk-VASXAV62.js.map +7 -0
- package/dist/esm/chunk-VSSJTPBV.js +2 -0
- package/dist/esm/chunk-VSSJTPBV.js.map +7 -0
- package/dist/esm/chunk-W7VAP3WE.js +2 -0
- package/dist/esm/chunk-W7VAP3WE.js.map +7 -0
- package/dist/esm/chunk-WGNIFXUE.js +2 -0
- package/dist/esm/chunk-WGNIFXUE.js.map +7 -0
- package/dist/esm/chunk-WNSG5P3U.js +2 -0
- package/dist/esm/chunk-WNSG5P3U.js.map +7 -0
- package/dist/esm/{chunk-YLLCCUC7.js → chunk-X3UTLDGG.js} +2 -2
- package/dist/esm/chunk-XCDXQLWS.js +2 -0
- package/dist/esm/chunk-XCDXQLWS.js.map +7 -0
- package/dist/esm/{chunk-3UZHKW6I.js → chunk-XHF6RBOE.js} +2 -2
- package/dist/esm/{chunk-IPHKKZYE.js → chunk-XHKL4PG7.js} +2 -2
- package/dist/esm/chunk-XKAWVGBL.js +2 -0
- package/dist/esm/chunk-XKAWVGBL.js.map +7 -0
- package/dist/esm/{chunk-PAEHH3WS.js → chunk-XZ5XZS5O.js} +2 -2
- package/dist/esm/chunk-Y3FVBAN2.js +2 -0
- package/dist/esm/chunk-Y3FVBAN2.js.map +7 -0
- package/dist/esm/chunk-Y4IB7KDZ.js +5 -0
- package/dist/esm/chunk-Y4IB7KDZ.js.map +7 -0
- package/dist/esm/chunk-YKGLZEXX.js +2 -0
- package/dist/esm/{chunk-VBAXORVV.js.map → chunk-YKGLZEXX.js.map} +3 -3
- package/dist/esm/chunk-Z2LGVLUB.js +2 -0
- package/dist/esm/chunk-Z2LGVLUB.js.map +7 -0
- package/dist/esm/chunk-ZMFZYXLB.js +2 -0
- package/dist/esm/chunk-ZMFZYXLB.js.map +7 -0
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.props.d.ts +2 -9
- package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.d.ts +2 -9
- package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.props.d.ts +0 -28
- package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.d.ts +2 -9
- package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.d.ts +1 -8
- package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -6
- package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-pane.d.ts +2 -3
- package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-pane.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.d.ts +0 -4
- package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/_internal/shell-store.d.ts +4 -4
- package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-store.js +1 -1
- package/dist/esm/components/accordion.d.ts.map +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.props.d.ts +4 -15
- package/dist/esm/components/accordion.props.d.ts.map +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.props.d.ts +0 -5
- package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
- package/dist/esm/components/alert-dialog.props.js +1 -1
- package/dist/esm/components/avatar.d.ts.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.props.d.ts +2 -17
- package/dist/esm/components/avatar.props.d.ts.map +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/badge.d.ts.map +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.props.d.ts +1 -16
- package/dist/esm/components/badge.props.d.ts.map +1 -1
- package/dist/esm/components/badge.props.js +1 -1
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.d.ts +1 -1
- package/dist/esm/components/blockquote.props.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/button.d.ts +2 -39
- package/dist/esm/components/button.d.ts.map +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.props.js +1 -1
- package/dist/esm/components/card.d.ts.map +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.props.d.ts +1 -8
- package/dist/esm/components/card.props.d.ts.map +1 -1
- package/dist/esm/components/card.props.js +1 -1
- package/dist/esm/components/chatbar.d.ts +1 -3
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
- package/dist/esm/components/checkbox-cards.js +1 -1
- package/dist/esm/components/checkbox-cards.props.d.ts +2 -10
- package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-cards.props.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.props.d.ts +2 -8
- package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.d.ts.map +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.d.ts +1 -1
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.d.ts.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.d.ts +1 -20
- package/dist/esm/components/combobox.props.d.ts.map +1 -1
- package/dist/esm/components/combobox.props.js +1 -1
- package/dist/esm/components/container.js +1 -1
- package/dist/esm/components/context-menu.d.ts.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.props.js +1 -1
- package/dist/esm/components/data-list.js +1 -1
- package/dist/esm/components/data-list.props.js +1 -1
- package/dist/esm/components/dialog.d.ts.map +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.props.d.ts +0 -5
- package/dist/esm/components/dialog.props.d.ts.map +1 -1
- package/dist/esm/components/dialog.props.js +1 -1
- package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.props.js +1 -1
- package/dist/esm/components/em.js +1 -1
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.props.js +1 -1
- package/dist/esm/components/hover-card.js +1 -1
- package/dist/esm/components/icon-button.d.ts +1 -1
- package/dist/esm/components/icon-button.d.ts.map +1 -1
- package/dist/esm/components/icon-button.js +1 -1
- package/dist/esm/components/icon-button.props.js +1 -1
- package/dist/esm/components/image.d.ts +0 -5
- package/dist/esm/components/image.d.ts.map +1 -1
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/index.d.ts +0 -3
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/inset.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.props.d.ts +2 -4
- package/dist/esm/components/kbd.props.d.ts.map +1 -1
- package/dist/esm/components/kbd.props.js +1 -1
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.d.ts +1 -1
- package/dist/esm/components/link.props.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/popover.d.ts.map +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.props.d.ts +0 -6
- package/dist/esm/components/popover.props.d.ts.map +1 -1
- package/dist/esm/components/popover.props.js +1 -1
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.props.js +1 -1
- package/dist/esm/components/quote.js +1 -1
- package/dist/esm/components/radio-cards.d.ts.map +1 -1
- package/dist/esm/components/radio-cards.js +1 -1
- package/dist/esm/components/radio-cards.props.d.ts +2 -10
- package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
- package/dist/esm/components/radio-cards.props.js +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.d.ts +1 -3
- package/dist/esm/components/radio-group.props.d.ts.map +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.d.ts.map +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/schemas/base-button.schema.d.ts +0 -7
- package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/base-button.schema.js +1 -1
- package/dist/esm/components/schemas/button.schema.d.ts +7 -73
- package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/button.schema.js +1 -1
- package/dist/esm/components/schemas/icon-button.schema.d.ts +0 -7
- package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/icon-button.schema.js +1 -1
- package/dist/esm/components/schemas/index.js +1 -1
- package/dist/esm/components/schemas/shell.schema.d.ts +5 -29
- package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/shell.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.d.ts +7 -73
- package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +0 -7
- package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
- package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/section.js +1 -1
- package/dist/esm/components/segmented-control.d.ts.map +1 -1
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/segmented-control.props.d.ts +0 -11
- package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
- package/dist/esm/components/segmented-control.props.js +1 -1
- package/dist/esm/components/select.d.ts.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.props.d.ts +1 -14
- package/dist/esm/components/select.props.d.ts.map +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.js +1 -1
- package/dist/esm/components/sheet.d.ts +1 -2
- package/dist/esm/components/sheet.d.ts.map +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.hooks.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/shell.types.d.ts +1 -1
- package/dist/esm/components/shell.types.d.ts.map +1 -1
- package/dist/esm/components/shell.types.js +1 -1
- package/dist/esm/components/sidebar.d.ts +2 -92
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/skeleton.js +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.props.js +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/strong.js +1 -1
- package/dist/esm/components/switch.d.ts.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.props.d.ts +0 -18
- package/dist/esm/components/switch.props.d.ts.map +1 -1
- package/dist/esm/components/switch.props.js +1 -1
- package/dist/esm/components/tab-nav.d.ts.map +1 -1
- package/dist/esm/components/tab-nav.js +1 -1
- package/dist/esm/components/tab-nav.props.js +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/tabs.d.ts.map +1 -1
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.props.js +1 -1
- package/dist/esm/components/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.props.d.ts +1 -12
- package/dist/esm/components/text-area.props.d.ts.map +1 -1
- package/dist/esm/components/text-area.props.js +1 -1
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/text-field.props.d.ts +1 -12
- package/dist/esm/components/text-field.props.d.ts.map +1 -1
- package/dist/esm/components/text-field.props.js +1 -1
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.props.js +1 -1
- package/dist/esm/components/theme-panel.d.ts.map +1 -1
- package/dist/esm/components/theme-panel.js +1 -1
- package/dist/esm/components/theme.d.ts +0 -3
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.props.d.ts +1 -19
- package/dist/esm/components/theme.props.d.ts.map +1 -1
- package/dist/esm/components/theme.props.js +1 -1
- package/dist/esm/components/toggle-button.d.ts.map +1 -1
- package/dist/esm/components/toggle-button.js +1 -1
- package/dist/esm/components/toggle-icon-button.d.ts.map +1 -1
- package/dist/esm/components/toggle-icon-button.js +1 -1
- package/dist/esm/components/toolbar.d.ts +1 -1
- package/dist/esm/components/toolbar.d.ts.map +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/helpers/extract-props.js +1 -1
- package/dist/esm/helpers/get-margin-styles.js +1 -1
- package/dist/esm/helpers/get-responsive-styles.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/map-prop-values.d.ts +1 -4
- package/dist/esm/helpers/map-prop-values.d.ts.map +1 -1
- package/dist/esm/helpers/map-prop-values.js +1 -1
- package/dist/esm/hooks/use-breakpoint.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/color.prop.d.ts.map +1 -1
- package/dist/esm/props/color.prop.js +1 -1
- package/dist/esm/props/index.d.ts +0 -1
- package/dist/esm/props/index.d.ts.map +1 -1
- package/dist/esm/props/index.js +1 -1
- package/package.json +1 -2
- package/schemas/base-button.json +2 -17
- package/schemas/button.json +21 -234
- package/schemas/icon-button.json +2 -17
- package/schemas/index.json +58 -548
- package/schemas/shell-root.json +10 -0
- package/schemas/shell-sidebar.json +0 -29
- package/schemas/toggle-button.json +21 -234
- package/schemas/toggle-icon-button.json +2 -17
- package/src/components/_internal/base-button.css +7 -110
- package/src/components/_internal/base-button.props.ts +4 -8
- package/src/components/_internal/base-button.tsx +1 -6
- package/src/components/_internal/base-card.css +12 -54
- package/src/components/_internal/base-checkbox.css +9 -120
- package/src/components/_internal/base-checkbox.props.ts +3 -7
- package/src/components/_internal/base-dialog.css +5 -24
- package/src/components/_internal/base-menu.css +5 -44
- package/src/components/_internal/base-menu.props.ts +0 -20
- package/src/components/_internal/base-menu.utils.tsx +3 -13
- package/src/components/_internal/base-radio.css +8 -115
- package/src/components/_internal/base-radio.props.ts +2 -6
- package/src/components/_internal/base-sidebar-menu.css +0 -35
- package/src/components/_internal/base-sidebar.css +0 -37
- package/src/components/_internal/base-tab-list.css +8 -14
- package/src/components/_internal/base-tab-list.props.ts +3 -6
- package/src/components/_internal/shell-pane.tsx +2 -3
- package/src/components/_internal/shell-sidebar.tsx +5 -31
- package/src/components/_internal/shell-store.tsx +4 -4
- package/src/components/accordion.css +42 -95
- package/src/components/accordion.props.tsx +6 -13
- package/src/components/accordion.tsx +2 -6
- package/src/components/alert-dialog.props.tsx +0 -1
- package/src/components/alert-dialog.tsx +1 -13
- package/src/components/avatar.css +4 -31
- package/src/components/avatar.props.tsx +3 -13
- package/src/components/avatar.tsx +0 -4
- package/src/components/badge.css +1 -38
- package/src/components/badge.props.tsx +2 -12
- package/src/components/badge.tsx +0 -11
- package/src/components/blockquote.props.tsx +1 -1
- package/src/components/button.tsx +5 -85
- package/src/components/card.props.tsx +2 -6
- package/src/components/card.tsx +2 -3
- package/src/components/chatbar.css +6 -24
- package/src/components/chatbar.tsx +16 -31
- package/src/components/checkbox-cards.css +0 -1
- package/src/components/checkbox-cards.props.tsx +5 -9
- package/src/components/checkbox-cards.tsx +2 -6
- package/src/components/checkbox.tsx +0 -2
- package/src/components/code.css +20 -0
- package/src/components/code.props.tsx +1 -1
- package/src/components/combobox.css +14 -13
- package/src/components/combobox.props.tsx +2 -15
- package/src/components/combobox.tsx +7 -23
- package/src/components/context-menu.tsx +9 -18
- package/src/components/dialog.props.tsx +0 -3
- package/src/components/dialog.tsx +1 -13
- package/src/components/dropdown-menu.css +0 -21
- package/src/components/dropdown-menu.tsx +9 -20
- package/src/components/icon-button.tsx +1 -1
- package/src/components/image.css +2 -11
- package/src/components/image.tsx +2 -10
- package/src/components/index.css +0 -5
- package/src/components/index.tsx +0 -3
- package/src/components/kbd.css +37 -13
- package/src/components/kbd.props.tsx +2 -4
- package/src/components/link.props.tsx +1 -1
- package/src/components/popover.css +2 -6
- package/src/components/popover.props.tsx +3 -6
- package/src/components/popover.tsx +2 -6
- package/src/components/progress.css +12 -13
- package/src/components/radio-cards.css +0 -2
- package/src/components/radio-cards.props.tsx +5 -9
- package/src/components/radio-cards.tsx +2 -6
- package/src/components/radio-group.props.tsx +1 -2
- package/src/components/radio.tsx +1 -2
- package/src/components/reset.css +3 -16
- package/src/components/schemas/base-button.schema.ts +3 -23
- package/src/components/schemas/button.schema.ts +15 -94
- package/src/components/schemas/shell.schema.ts +2 -3
- package/src/components/scroll-area.css +0 -11
- package/src/components/segmented-control.css +11 -23
- package/src/components/segmented-control.props.tsx +0 -6
- package/src/components/segmented-control.tsx +1 -8
- package/src/components/select.css +81 -93
- package/src/components/select.props.tsx +2 -9
- package/src/components/select.tsx +2 -7
- package/src/components/sheet.css +0 -71
- package/src/components/sheet.tsx +5 -14
- package/src/components/shell.context.tsx +2 -2
- package/src/components/shell.css +7 -64
- package/src/components/shell.tsx +2 -2
- package/src/components/shell.types.ts +1 -1
- package/src/components/sidebar.css +78 -341
- package/src/components/sidebar.tsx +3 -244
- package/src/components/slider.css +12 -15
- package/src/components/spinner.css +2 -2
- package/src/components/switch.css +3 -55
- package/src/components/switch.props.tsx +0 -6
- package/src/components/switch.tsx +1 -4
- package/src/components/tab-nav.tsx +2 -5
- package/src/components/tabs.css +0 -2
- package/src/components/tabs.tsx +2 -5
- package/src/components/text-area.css +6 -13
- package/src/components/text-area.props.tsx +2 -9
- package/src/components/text-area.tsx +4 -9
- package/src/components/text-field.css +36 -44
- package/src/components/text-field.props.tsx +2 -9
- package/src/components/text-field.tsx +4 -9
- package/src/components/theme-panel.tsx +9 -13
- package/src/components/theme.props.tsx +1 -17
- package/src/components/theme.tsx +1 -26
- package/src/components/toggle-button.tsx +1 -1
- package/src/components/toggle-icon-button.tsx +6 -6
- package/src/components/toolbar.tsx +1 -4
- package/src/components/tooltip.css +1 -21
- package/src/helpers/map-prop-values.ts +1 -7
- package/src/props/color.prop.ts +1 -2
- package/src/props/index.ts +0 -1
- package/src/styles/tokens/base.css +0 -1
- package/src/styles/tokens/color.css +2 -32
- package/src/styles/tokens/constants.css +0 -90
- package/styles.css +963 -3146
- package/tokens/base.css +2 -110
- package/tokens.css +2 -155
- package/dist/cjs/components/app-bar.d.ts +0 -50
- package/dist/cjs/components/app-bar.d.ts.map +0 -1
- package/dist/cjs/components/app-bar.js +0 -2
- package/dist/cjs/components/app-bar.js.map +0 -7
- package/dist/cjs/components/callout.d.ts +0 -23
- package/dist/cjs/components/callout.d.ts.map +0 -1
- package/dist/cjs/components/callout.js +0 -2
- package/dist/cjs/components/callout.js.map +0 -7
- package/dist/cjs/components/callout.props.d.ts +0 -40
- package/dist/cjs/components/callout.props.d.ts.map +0 -1
- package/dist/cjs/components/callout.props.js +0 -2
- package/dist/cjs/components/callout.props.js.map +0 -7
- package/dist/cjs/components/sidebar.props.d.ts +0 -62
- package/dist/cjs/components/sidebar.props.d.ts.map +0 -1
- package/dist/cjs/components/sidebar.props.js +0 -2
- package/dist/cjs/components/sidebar.props.js.map +0 -7
- package/dist/cjs/components/user-card.d.ts +0 -13
- package/dist/cjs/components/user-card.d.ts.map +0 -1
- package/dist/cjs/components/user-card.js +0 -2
- package/dist/cjs/components/user-card.js.map +0 -7
- package/dist/cjs/components/user-card.props.d.ts +0 -60
- package/dist/cjs/components/user-card.props.d.ts.map +0 -1
- package/dist/cjs/components/user-card.props.js +0 -2
- package/dist/cjs/components/user-card.props.js.map +0 -7
- package/dist/cjs/helpers/parse-variant.d.ts +0 -8
- package/dist/cjs/helpers/parse-variant.d.ts.map +0 -1
- package/dist/cjs/helpers/parse-variant.js +0 -2
- package/dist/cjs/helpers/parse-variant.js.map +0 -7
- package/dist/cjs/helpers/use-deprecation-warning.d.ts +0 -10
- package/dist/cjs/helpers/use-deprecation-warning.d.ts.map +0 -1
- package/dist/cjs/helpers/use-deprecation-warning.js +0 -2
- package/dist/cjs/helpers/use-deprecation-warning.js.map +0 -7
- package/dist/esm/chunk-27SCVCQY.js +0 -2
- package/dist/esm/chunk-27SCVCQY.js.map +0 -7
- package/dist/esm/chunk-2C5WLKEZ.js +0 -2
- package/dist/esm/chunk-2C5WLKEZ.js.map +0 -7
- package/dist/esm/chunk-2D5QJ6MX.js +0 -2
- package/dist/esm/chunk-2D5QJ6MX.js.map +0 -7
- package/dist/esm/chunk-2DKLJMUU.js +0 -2
- package/dist/esm/chunk-2DKLJMUU.js.map +0 -7
- package/dist/esm/chunk-2EQWBT2S.js +0 -2
- package/dist/esm/chunk-2T74JEVN.js +0 -2
- package/dist/esm/chunk-2T74JEVN.js.map +0 -7
- package/dist/esm/chunk-3M73GWN5.js +0 -2
- package/dist/esm/chunk-3M73GWN5.js.map +0 -7
- package/dist/esm/chunk-3Q3EOUGJ.js +0 -2
- package/dist/esm/chunk-3Q3EOUGJ.js.map +0 -7
- package/dist/esm/chunk-3TIO3EMN.js +0 -2
- package/dist/esm/chunk-3TIO3EMN.js.map +0 -7
- package/dist/esm/chunk-3WCSLQNH.js +0 -2
- package/dist/esm/chunk-3WCSLQNH.js.map +0 -7
- package/dist/esm/chunk-45AMHIBO.js +0 -2
- package/dist/esm/chunk-45AMHIBO.js.map +0 -7
- package/dist/esm/chunk-47CEZJM2.js +0 -2
- package/dist/esm/chunk-47CEZJM2.js.map +0 -7
- package/dist/esm/chunk-4BPRLR6C.js +0 -2
- package/dist/esm/chunk-4BPRLR6C.js.map +0 -7
- package/dist/esm/chunk-4D5LR4H6.js +0 -2
- package/dist/esm/chunk-4D5LR4H6.js.map +0 -7
- package/dist/esm/chunk-4JNHUPIM.js +0 -2
- package/dist/esm/chunk-4WLDX7WZ.js +0 -2
- package/dist/esm/chunk-4WLDX7WZ.js.map +0 -7
- package/dist/esm/chunk-5JS7ADWX.js +0 -2
- package/dist/esm/chunk-5JS7ADWX.js.map +0 -7
- package/dist/esm/chunk-5T6K7VPP.js +0 -2
- package/dist/esm/chunk-5T6K7VPP.js.map +0 -7
- package/dist/esm/chunk-5TXQLK4G.js +0 -2
- package/dist/esm/chunk-5TXQLK4G.js.map +0 -7
- package/dist/esm/chunk-6JP5PIOO.js +0 -2
- package/dist/esm/chunk-6JP5PIOO.js.map +0 -7
- package/dist/esm/chunk-6SVNBGZ6.js +0 -5
- package/dist/esm/chunk-6SVNBGZ6.js.map +0 -7
- package/dist/esm/chunk-77TGP2LO.js +0 -2
- package/dist/esm/chunk-77TGP2LO.js.map +0 -7
- package/dist/esm/chunk-7YIQV7VO.js +0 -2
- package/dist/esm/chunk-7YIQV7VO.js.map +0 -7
- package/dist/esm/chunk-A2XVR7GL.js.map +0 -7
- package/dist/esm/chunk-ADXZNG4F.js +0 -2
- package/dist/esm/chunk-ADXZNG4F.js.map +0 -7
- package/dist/esm/chunk-AVFGMLL4.js +0 -2
- package/dist/esm/chunk-AVFGMLL4.js.map +0 -7
- package/dist/esm/chunk-BKES3M4Y.js +0 -2
- package/dist/esm/chunk-BKES3M4Y.js.map +0 -7
- package/dist/esm/chunk-C7EVYSWK.js +0 -1
- package/dist/esm/chunk-CL6P54QT.js +0 -5
- package/dist/esm/chunk-CL6P54QT.js.map +0 -7
- package/dist/esm/chunk-CSUEZWN5.js +0 -2
- package/dist/esm/chunk-CSUEZWN5.js.map +0 -7
- package/dist/esm/chunk-CYSDGVKF.js.map +0 -7
- package/dist/esm/chunk-DJA5MCJA.js +0 -2
- package/dist/esm/chunk-DJA5MCJA.js.map +0 -7
- package/dist/esm/chunk-DVSXWSAT.js +0 -2
- package/dist/esm/chunk-DVSXWSAT.js.map +0 -7
- package/dist/esm/chunk-E7LJHM3S.js +0 -2
- package/dist/esm/chunk-E7LJHM3S.js.map +0 -7
- package/dist/esm/chunk-F7TOKXKZ.js +0 -10
- package/dist/esm/chunk-F7TOKXKZ.js.map +0 -7
- package/dist/esm/chunk-FISGGGPC.js +0 -2
- package/dist/esm/chunk-FISGGGPC.js.map +0 -7
- package/dist/esm/chunk-FMMKOOS7.js.map +0 -7
- package/dist/esm/chunk-FNB47XDO.js +0 -2
- package/dist/esm/chunk-FNB47XDO.js.map +0 -7
- package/dist/esm/chunk-GCUGJXI2.js +0 -2
- package/dist/esm/chunk-GCUGJXI2.js.map +0 -7
- package/dist/esm/chunk-GLKN32J3.js +0 -2
- package/dist/esm/chunk-GLKN32J3.js.map +0 -7
- package/dist/esm/chunk-GMHA5CFH.js +0 -2
- package/dist/esm/chunk-GRRV4I2I.js +0 -2
- package/dist/esm/chunk-GRRV4I2I.js.map +0 -7
- package/dist/esm/chunk-H7LHGT44.js +0 -2
- package/dist/esm/chunk-H7LHGT44.js.map +0 -7
- package/dist/esm/chunk-HNO4X33C.js +0 -2
- package/dist/esm/chunk-HNO4X33C.js.map +0 -7
- package/dist/esm/chunk-IHRLGR6J.js +0 -2
- package/dist/esm/chunk-IHRLGR6J.js.map +0 -7
- package/dist/esm/chunk-IY3GKGDZ.js +0 -2
- package/dist/esm/chunk-IY3GKGDZ.js.map +0 -7
- package/dist/esm/chunk-JTN3KTAS.js +0 -2
- package/dist/esm/chunk-JTN3KTAS.js.map +0 -7
- package/dist/esm/chunk-KJC32RWT.js +0 -2
- package/dist/esm/chunk-KJC32RWT.js.map +0 -7
- package/dist/esm/chunk-O2RISF37.js +0 -2
- package/dist/esm/chunk-O2RISF37.js.map +0 -7
- package/dist/esm/chunk-OB3MHLQL.js +0 -2
- package/dist/esm/chunk-OB3MHLQL.js.map +0 -7
- package/dist/esm/chunk-OJSDBLP7.js +0 -2
- package/dist/esm/chunk-OJSDBLP7.js.map +0 -7
- package/dist/esm/chunk-OUSDYZDE.js +0 -2
- package/dist/esm/chunk-OUSDYZDE.js.map +0 -7
- package/dist/esm/chunk-OVGPUFRI.js +0 -2
- package/dist/esm/chunk-OVGPUFRI.js.map +0 -7
- package/dist/esm/chunk-PLTTQFRQ.js +0 -2
- package/dist/esm/chunk-PLTTQFRQ.js.map +0 -7
- package/dist/esm/chunk-RA2XCS3M.js +0 -2
- package/dist/esm/chunk-RA2XCS3M.js.map +0 -7
- package/dist/esm/chunk-ROGC7K5N.js +0 -2
- package/dist/esm/chunk-ROGC7K5N.js.map +0 -7
- package/dist/esm/chunk-RON6FXLO.js +0 -2
- package/dist/esm/chunk-RON6FXLO.js.map +0 -7
- package/dist/esm/chunk-RWN22S44.js +0 -2
- package/dist/esm/chunk-S3GZZXQ7.js +0 -2
- package/dist/esm/chunk-S3GZZXQ7.js.map +0 -7
- package/dist/esm/chunk-SIBSXKFF.js +0 -2
- package/dist/esm/chunk-SIBSXKFF.js.map +0 -7
- package/dist/esm/chunk-SURYYF7I.js +0 -2
- package/dist/esm/chunk-SURYYF7I.js.map +0 -7
- package/dist/esm/chunk-T7Q6DQRD.js.map +0 -7
- package/dist/esm/chunk-UE2OBZIS.js +0 -2
- package/dist/esm/chunk-UE2OBZIS.js.map +0 -7
- package/dist/esm/chunk-UK3BFTI2.js +0 -2
- package/dist/esm/chunk-UK3BFTI2.js.map +0 -7
- package/dist/esm/chunk-UTHTSYSL.js.map +0 -7
- package/dist/esm/chunk-V3QVAXH3.js +0 -2
- package/dist/esm/chunk-V3QVAXH3.js.map +0 -7
- package/dist/esm/chunk-V5ZSDDVZ.js +0 -2
- package/dist/esm/chunk-V5ZSDDVZ.js.map +0 -7
- package/dist/esm/chunk-VBAXORVV.js +0 -2
- package/dist/esm/chunk-VJUFYYKP.js +0 -2
- package/dist/esm/chunk-VJUFYYKP.js.map +0 -7
- package/dist/esm/chunk-VUKTURU4.js +0 -2
- package/dist/esm/chunk-VUKTURU4.js.map +0 -7
- package/dist/esm/chunk-WDNTAQ6G.js +0 -2
- package/dist/esm/chunk-WDNTAQ6G.js.map +0 -7
- package/dist/esm/chunk-WHAKQCNV.js +0 -2
- package/dist/esm/chunk-WHAKQCNV.js.map +0 -7
- package/dist/esm/chunk-WTXQB2EV.js +0 -2
- package/dist/esm/chunk-WTXQB2EV.js.map +0 -7
- package/dist/esm/chunk-XILM2OMC.js +0 -2
- package/dist/esm/chunk-XILM2OMC.js.map +0 -7
- package/dist/esm/chunk-XKBLNVOD.js +0 -2
- package/dist/esm/chunk-YA5DF67M.js.map +0 -7
- package/dist/esm/chunk-YBS2IB7Z.js +0 -2
- package/dist/esm/chunk-YBS2IB7Z.js.map +0 -7
- package/dist/esm/chunk-YL62I5SI.js +0 -2
- package/dist/esm/chunk-ZK55O7TN.js +0 -2
- package/dist/esm/chunk-ZK55O7TN.js.map +0 -7
- package/dist/esm/chunk-ZVIWTYHE.js +0 -2
- package/dist/esm/chunk-ZVIWTYHE.js.map +0 -7
- package/dist/esm/components/app-bar.d.ts +0 -50
- package/dist/esm/components/app-bar.d.ts.map +0 -1
- package/dist/esm/components/app-bar.js +0 -2
- package/dist/esm/components/app-bar.js.map +0 -7
- package/dist/esm/components/callout.d.ts +0 -23
- package/dist/esm/components/callout.d.ts.map +0 -1
- package/dist/esm/components/callout.js +0 -2
- package/dist/esm/components/callout.js.map +0 -7
- package/dist/esm/components/callout.props.d.ts +0 -40
- package/dist/esm/components/callout.props.d.ts.map +0 -1
- package/dist/esm/components/callout.props.js +0 -2
- package/dist/esm/components/callout.props.js.map +0 -7
- package/dist/esm/components/sidebar.props.d.ts +0 -62
- package/dist/esm/components/sidebar.props.d.ts.map +0 -1
- package/dist/esm/components/sidebar.props.js +0 -2
- package/dist/esm/components/sidebar.props.js.map +0 -7
- package/dist/esm/components/user-card.d.ts +0 -13
- package/dist/esm/components/user-card.d.ts.map +0 -1
- package/dist/esm/components/user-card.js +0 -2
- package/dist/esm/components/user-card.js.map +0 -7
- package/dist/esm/components/user-card.props.d.ts +0 -60
- package/dist/esm/components/user-card.props.d.ts.map +0 -1
- package/dist/esm/components/user-card.props.js +0 -2
- package/dist/esm/components/user-card.props.js.map +0 -7
- package/dist/esm/helpers/parse-variant.d.ts +0 -8
- package/dist/esm/helpers/parse-variant.d.ts.map +0 -1
- package/dist/esm/helpers/parse-variant.js +0 -2
- package/dist/esm/helpers/parse-variant.js.map +0 -7
- package/dist/esm/helpers/use-deprecation-warning.d.ts +0 -10
- package/dist/esm/helpers/use-deprecation-warning.d.ts.map +0 -1
- package/dist/esm/helpers/use-deprecation-warning.js +0 -2
- package/dist/esm/helpers/use-deprecation-warning.js.map +0 -7
- package/src/components/animations.css +0 -155
- package/src/components/app-bar.css +0 -204
- package/src/components/app-bar.tsx +0 -261
- package/src/components/callout.css +0 -160
- package/src/components/callout.props.tsx +0 -29
- package/src/components/callout.tsx +0 -120
- package/src/components/sidebar.props.tsx +0 -56
- package/src/components/user-card.css +0 -29
- package/src/components/user-card.props.tsx +0 -46
- package/src/components/user-card.tsx +0 -106
- package/src/helpers/parse-variant.ts +0 -21
- package/src/helpers/use-deprecation-warning.ts +0 -26
- package/src/styles/tokens/transition.css +0 -189
- /package/dist/esm/{chunk-K7BWSYVP.js.map → chunk-2IPVLV6B.js.map} +0 -0
- /package/dist/esm/{chunk-SQ4BU4GH.js.map → chunk-2NNB4ZZ5.js.map} +0 -0
- /package/dist/esm/{chunk-JXVUTFQN.js.map → chunk-2XSRO44Q.js.map} +0 -0
- /package/dist/esm/{chunk-KXSMY4ZF.js.map → chunk-35KS5AQE.js.map} +0 -0
- /package/dist/esm/{chunk-34UMKY2L.js.map → chunk-5RHODJDJ.js.map} +0 -0
- /package/dist/esm/{chunk-ZQVYY7UT.js.map → chunk-672FI4OH.js.map} +0 -0
- /package/dist/esm/{chunk-T6Z4JUH6.js.map → chunk-6ERCPRXX.js.map} +0 -0
- /package/dist/esm/{chunk-PXUQEA77.js.map → chunk-7CBZFHSQ.js.map} +0 -0
- /package/dist/esm/{chunk-VJXHEDCE.js.map → chunk-7UW7D77E.js.map} +0 -0
- /package/dist/esm/{chunk-62CJL5G7.js.map → chunk-A2NG5NRN.js.map} +0 -0
- /package/dist/esm/{chunk-RUPET4E7.js.map → chunk-A6CDNZMT.js.map} +0 -0
- /package/dist/esm/{chunk-43A5GUSI.js.map → chunk-AMP7O3DM.js.map} +0 -0
- /package/dist/esm/{chunk-UBOOUDS4.js.map → chunk-AO32NT75.js.map} +0 -0
- /package/dist/esm/{chunk-HFVD7W6R.js.map → chunk-BFLO4IVZ.js.map} +0 -0
- /package/dist/esm/{chunk-SQZ5O7QS.js.map → chunk-BQE543O5.js.map} +0 -0
- /package/dist/esm/{chunk-O2WPAUQN.js.map → chunk-CL6LRPCS.js.map} +0 -0
- /package/dist/esm/{chunk-3OQM7SLQ.js.map → chunk-DQTJMIRO.js.map} +0 -0
- /package/dist/esm/{chunk-GLERJXVS.js.map → chunk-DSB3TEAQ.js.map} +0 -0
- /package/dist/esm/{chunk-HIBX2EXV.js.map → chunk-ELZEAEN2.js.map} +0 -0
- /package/dist/esm/{chunk-IV4YJRVR.js.map → chunk-EVTNB4TB.js.map} +0 -0
- /package/dist/esm/{chunk-SGUTNJUO.js.map → chunk-GVLTTTFL.js.map} +0 -0
- /package/dist/esm/{chunk-CIKDGYX3.js.map → chunk-HVQ3SLQC.js.map} +0 -0
- /package/dist/esm/{chunk-N6Q3L64W.js.map → chunk-IYFDCW7Y.js.map} +0 -0
- /package/dist/esm/{chunk-7FC7HF76.js.map → chunk-JLI7WHV6.js.map} +0 -0
- /package/dist/esm/{chunk-OW4KAIWF.js.map → chunk-JQURG6CB.js.map} +0 -0
- /package/dist/esm/{chunk-GONBMSRL.js.map → chunk-JZD5FHSU.js.map} +0 -0
- /package/dist/esm/{chunk-EUSMN3K7.js.map → chunk-K5SC3CZZ.js.map} +0 -0
- /package/dist/esm/{chunk-UBWRIE4C.js.map → chunk-K7J23OPW.js.map} +0 -0
- /package/dist/esm/{chunk-7ZCQAMHZ.js.map → chunk-MD3QCXRD.js.map} +0 -0
- /package/dist/esm/{chunk-2EQWBT2S.js.map → chunk-MGQ4A2FI.js.map} +0 -0
- /package/dist/esm/{chunk-CMEKH4I5.js.map → chunk-MGSHX5N5.js.map} +0 -0
- /package/dist/esm/{chunk-ZE2GWHPY.js.map → chunk-MVW2SY4F.js.map} +0 -0
- /package/dist/esm/{chunk-KJTEZVOF.js.map → chunk-O6K6RZXY.js.map} +0 -0
- /package/dist/esm/{chunk-JUY7CBSL.js.map → chunk-PBFSBHBS.js.map} +0 -0
- /package/dist/esm/{chunk-3HGHPAH4.js.map → chunk-PDBVZAUJ.js.map} +0 -0
- /package/dist/esm/{chunk-C7EVYSWK.js.map → chunk-QDW5ZG5E.js.map} +0 -0
- /package/dist/esm/{chunk-R2MQMCND.js.map → chunk-QJFAGWBO.js.map} +0 -0
- /package/dist/esm/{chunk-TCEQ5VVE.js.map → chunk-R4CN4Q3G.js.map} +0 -0
- /package/dist/esm/{chunk-HJLBVNQE.js.map → chunk-RYURXQLJ.js.map} +0 -0
- /package/dist/esm/{chunk-RUOOCYK4.js.map → chunk-S53ZQNHK.js.map} +0 -0
- /package/dist/esm/{chunk-5G4WWJ4Z.js.map → chunk-T5DSQKKF.js.map} +0 -0
- /package/dist/esm/{chunk-3XSB7YIM.js.map → chunk-TBZO22XK.js.map} +0 -0
- /package/dist/esm/{chunk-C7UXUTUF.js.map → chunk-TGRRQHLQ.js.map} +0 -0
- /package/dist/esm/{chunk-IVBKTHDM.js.map → chunk-TPHNDGSV.js.map} +0 -0
- /package/dist/esm/{chunk-YL62I5SI.js.map → chunk-UA6FP7HS.js.map} +0 -0
- /package/dist/esm/{chunk-6FLLFCBU.js.map → chunk-UBSLEGQZ.js.map} +0 -0
- /package/dist/esm/{chunk-LJXP6K5Y.js.map → chunk-V2TPYSZ2.js.map} +0 -0
- /package/dist/esm/{chunk-YLLCCUC7.js.map → chunk-X3UTLDGG.js.map} +0 -0
- /package/dist/esm/{chunk-3UZHKW6I.js.map → chunk-XHF6RBOE.js.map} +0 -0
- /package/dist/esm/{chunk-IPHKKZYE.js.map → chunk-XHKL4PG7.js.map} +0 -0
- /package/dist/esm/{chunk-PAEHH3WS.js.map → chunk-XZ5XZS5O.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as p}from"./chunk-MLJLEOZ5.js";import{a as m}from"./chunk-UBSLEGQZ.js";import{a as l}from"./chunk-GSTOGDAJ.js";import{a as y}from"./chunk-OS3FCYZY.js";var b={};y(b,{Item:()=>f,Root:()=>g});import*as e from"react";import i from"classnames";import{ToggleGroup as d}from"radix-ui";import{useControllableState as h}from"radix-ui/internal";var g=e.forwardRef((o,t)=>{let{className:r,children:a,radius:n,value:P,defaultValue:u,onValueChange:C,material:c,...S}=m(o,p,l),R=c,[v,I]=h({prop:P,onChange:C,defaultProp:u??""});return e.createElement(d.Root,{"data-disabled":o.disabled||void 0,"data-radius":n,"data-material":R,ref:t,className:i("rt-SegmentedControlRoot",r),onValueChange:s=>{s&&I(s)},...S,type:"single",value:v,asChild:!1,disabled:!!o.disabled},a,e.createElement("div",{className:"rt-SegmentedControlIndicator"}))});g.displayName="SegmentedControl.Root";var f=e.forwardRef(({children:o,className:t,iconOnly:r,...a},n)=>e.createElement(d.Item,{ref:n,className:i("rt-reset","rt-SegmentedControlItem",t),"data-icon-only":r||void 0,...a,disabled:!1,asChild:!1},e.createElement("span",{className:"rt-SegmentedControlItemSeparator"}),e.createElement("span",{className:"rt-SegmentedControlItemLabel"},e.createElement("span",{className:"rt-SegmentedControlItemLabelActive"},o),e.createElement("span",{className:"rt-SegmentedControlItemLabelInactive","aria-hidden":!0},o))));f.displayName="SegmentedControl.Item";export{g as a,f as b,b as c};
|
|
2
|
+
//# sourceMappingURL=chunk-23WDP4JG.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/segmented-control.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';\nimport { useControllableState } from 'radix-ui/internal';\n\nimport { segmentedControlRootPropDefs } from './segmented-control.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlRootPropDefs>;\n\ninterface SegmentedControlRootProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n SegmentedControlRootOwnProps,\n MarginProps {\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n}\n\nconst SegmentedControlRoot = React.forwardRef<HTMLDivElement, SegmentedControlRootProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n radius,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange: onValueChangeProp,\n material: materialProp,\n ...rootProps\n } = extractProps(props, segmentedControlRootPropDefs, marginPropDefs);\n const material = materialProp;\n\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChangeProp,\n defaultProp: defaultValueProp ?? '',\n });\n\n return (\n <ToggleGroupPrimitive.Root\n data-disabled={props.disabled || undefined}\n data-radius={radius}\n data-material={material}\n ref={forwardedRef}\n className={classNames('rt-SegmentedControlRoot', className)}\n onValueChange={(value) => {\n if (value) {\n setValue(value);\n }\n }}\n {...rootProps}\n type=\"single\"\n value={value}\n asChild={false}\n disabled={!!props.disabled}\n >\n {children}\n <div className=\"rt-SegmentedControlIndicator\" />\n </ToggleGroupPrimitive.Root>\n );\n },\n);\n\nSegmentedControlRoot.displayName = 'SegmentedControl.Root';\n\ninterface SegmentedControlItemOwnProps {\n value: string;\n /** When true, applies fixed square width for icon-only segments */\n iconOnly?: boolean;\n}\n\ninterface SegmentedControlItemProps\n extends ComponentPropsWithout<\n typeof ToggleGroupPrimitive.Item,\n RemovedProps | 'disabled' | 'type' | 'value'\n >,\n SegmentedControlItemOwnProps {}\n\nconst SegmentedControlItem = React.forwardRef<HTMLButtonElement, SegmentedControlItemProps>(\n ({ children, className, iconOnly, ...props }, forwardedRef) => (\n <ToggleGroupPrimitive.Item\n ref={forwardedRef}\n className={classNames('rt-reset', 'rt-SegmentedControlItem', className)}\n data-icon-only={iconOnly || undefined}\n {...props}\n disabled={false}\n asChild={false}\n >\n <span className=\"rt-SegmentedControlItemSeparator\" />\n <span className=\"rt-SegmentedControlItemLabel\">\n <span className=\"rt-SegmentedControlItemLabelActive\">{children}</span>\n <span className=\"rt-SegmentedControlItemLabelInactive\" aria-hidden>\n {children}\n </span>\n </span>\n </ToggleGroupPrimitive.Item>\n ),\n);\n\nSegmentedControlItem.displayName = 'SegmentedControl.Item';\n\nexport { SegmentedControlRoot as Root, SegmentedControlItem as Item };\nexport type { SegmentedControlRootProps as RootProps, SegmentedControlItemProps as ItemProps };\n"],
|
|
5
|
+
"mappings": "gKAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAGA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,MAA4B,WACpD,OAAS,wBAAAC,MAA4B,oBAqBrC,IAAMC,EAA6B,aACjC,CAACC,EAAOC,IAAiB,CACvB,GAAM,CACJ,UAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAOC,EACP,aAAcC,EACd,cAAeC,EACf,SAAUC,EACV,GAAGC,CACL,EAAIC,EAAaV,EAAOW,EAA8BC,CAAc,EAC9DC,EAAWL,EAGX,CAACM,EAAOC,CAAQ,EAAIC,EAAqB,CAC7C,KAAMX,EACN,SAAUE,EACV,YAAaD,GAAoB,EACnC,CAAC,EAED,OACE,gBAACW,EAAqB,KAArB,CACC,gBAAejB,EAAM,UAAY,OACjC,cAAaI,EACb,gBAAeS,EACf,IAAKZ,EACL,UAAWiB,EAAW,0BAA2BhB,CAAS,EAC1D,cAAgBY,GAAU,CACpBA,GACFC,EAASD,CAAK,CAElB,EACC,GAAGL,EACJ,KAAK,SACL,MAAOK,EACP,QAAS,GACT,SAAU,CAAC,CAACd,EAAM,UAEjBG,EACD,gBAAC,OAAI,UAAU,+BAA+B,CAChD,CAEJ,CACF,EAEAJ,EAAqB,YAAc,wBAenC,IAAMoB,EAA6B,aACjC,CAAC,CAAE,SAAAhB,EAAU,UAAAD,EAAW,SAAAkB,EAAU,GAAGpB,CAAM,EAAGC,IAC5C,gBAACgB,EAAqB,KAArB,CACC,IAAKhB,EACL,UAAWiB,EAAW,WAAY,0BAA2BhB,CAAS,EACtE,iBAAgBkB,GAAY,OAC3B,GAAGpB,EACJ,SAAU,GACV,QAAS,IAET,gBAAC,QAAK,UAAU,mCAAmC,EACnD,gBAAC,QAAK,UAAU,gCACd,gBAAC,QAAK,UAAU,sCAAsCG,CAAS,EAC/D,gBAAC,QAAK,UAAU,uCAAuC,cAAW,IAC/DA,CACH,CACF,CACF,CAEJ,EAEAgB,EAAqB,YAAc",
|
|
6
|
+
"names": ["segmented_control_exports", "__export", "SegmentedControlItem", "SegmentedControlRoot", "React", "classNames", "ToggleGroupPrimitive", "useControllableState", "SegmentedControlRoot", "props", "forwardedRef", "className", "children", "radius", "valueProp", "defaultValueProp", "onValueChangeProp", "materialProp", "rootProps", "extractProps", "segmentedControlRootPropDefs", "marginPropDefs", "material", "value", "setValue", "useControllableState", "ToggleGroupPrimitive", "classNames", "SegmentedControlItem", "iconOnly"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-K7J23OPW.js";import{a as o}from"./chunk-UBSLEGQZ.js";import{a as e}from"./chunk-GSTOGDAJ.js";import*as r from"react";import i from"classnames";var P=r.forwardRef((t,a)=>{let{className:s,color:m,decorative:n,...f}=o(t,p,e);return r.createElement("span",{"data-accent-color":m,role:n?void 0:"separator",...f,ref:a,className:i("rt-Separator",s)})});P.displayName="Separator";export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-2IPVLV6B.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as u}from"./chunk-PRRJ4WRE.js";import{b as r}from"./chunk-FK6F6ROH.js";import*as e from"react";var s=e.createContext({isInsideMenu:!1}),p={1:24,2:32};function a(o,t){let n=t?parseFloat(t)/100:1;return p[o]*(Number.isFinite(n)?n:1)}function f({children:o,size:t}){let n=r(t,void 0),{scaling:c}=u(),i=n?a(n,c):void 0,d=e.useMemo(()=>({isInsideMenu:!0,size:n,itemHeight:i}),[n,i]);return e.createElement(s.Provider,{value:d},o)}function l(){return e.useContext(s)}export{p as a,a as b,f as c,l as d};
|
|
2
|
+
//# sourceMappingURL=chunk-2NNB4ZZ5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as u}from"./chunk-VK7RNXUO.js";import{a as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as u}from"./chunk-VK7RNXUO.js";import{a as l}from"./chunk-Y4IB7KDZ.js";import*as e from"react";import{Toggle as B}from"radix-ui";var d=e.forwardRef(({pressed:a,onPressedChange:g,defaultPressed:p,children:t,...s},f)=>{let{"aria-label":r,"aria-labelledby":o,iconOnly:i}=s,n=e.useRef(null);e.useEffect(()=>{n.current=null},[o]);let c=e.useCallback(()=>r||(o?(n.current===null&&(n.current=document.getElementById(o)?.textContent||"Toggle button"),n.current):typeof t=="string"?t:e.isValidElement(t)&&typeof t.props?.children=="string"?t.props.children:"Toggle button"),[r,o,t]),{handlePressedChange:m}=u({pressed:a,onPressedChange:g,getAccessibleName:c,componentName:i?"ToggleIconButton":"ToggleButton"});return e.createElement(B.Root,{pressed:a,onPressedChange:m,defaultPressed:p,asChild:!0},e.createElement(l,{...s,ref:f},t))});d.displayName="ToggleButton";export{d as a};
|
|
2
|
+
//# sourceMappingURL=chunk-2PO6TZ7L.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/toggle-button.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { Toggle } from 'radix-ui';\nimport { Button } from './button.js';\nimport {
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { Toggle } from 'radix-ui';\nimport { Button } from './button.js';\nimport type { ButtonProps, ButtonRankProps } from './button.js';\nimport { useToggleState } from '../hooks/use-toggle-state.js';\n\n/**\n * ToggleButton props that extend Button with toggle-specific functionality\n *\n * The ToggleButton component provides a button that can be pressed/unpressed\n * with proper accessibility announcements and state management.\n */\ntype ToggleButtonProps = Omit<ButtonProps<'button'>, 'as' | 'variant' | 'emphasis'> &\n ButtonRankProps & {\n /** Controlled pressed state */\n pressed?: boolean;\n /** Callback when pressed state changes */\n onPressedChange?: (pressed: boolean) => void;\n /** Default pressed state for uncontrolled usage */\n defaultPressed?: boolean;\n};\n\ntype ToggleButtonElement = React.ElementRef<typeof Button>;\n\n/**\n * ToggleButton component for buttons that can be pressed/unpressed\n *\n * The ToggleButton component extends Button with toggle functionality using\n * Radix UI's Toggle primitive. It provides proper accessibility announcements,\n * controlled/uncontrolled state management, and seamless integration with\n * the existing Button component.\n *\n * Key features:\n * - Controlled and uncontrolled state management\n * - Live accessibility announcements for screen readers\n * - Automatic state validation and warnings\n * - Seamless integration with Button props and styling\n * - Proper ARIA attributes for toggle functionality\n *\n * @example\n * ```tsx\n * // Uncontrolled toggle button\n * <ToggleButton defaultPressed={false}>\n * Toggle Me\n * </ToggleButton>\n *\n * // Controlled toggle button\n * const [pressed, setPressed] = React.useState(false);\n * <ToggleButton\n * pressed={pressed}\n * onPressedChange={setPressed}\n * >\n * {pressed ? 'On' : 'Off'}\n * </ToggleButton>\n *\n * // Toggle button with all Button props\n * <ToggleButton\n * variant=\"solid\"\n * size=\"3\"\n * color=\"blue\"\n * pressed={isActive}\n * onPressedChange={setIsActive}\n * >\n * {isActive ? 'Active' : 'Inactive'}\n * </ToggleButton>\n * ```\n */\nconst ToggleButton = React.forwardRef<ToggleButtonElement, ToggleButtonProps>(({ pressed, onPressedChange, defaultPressed, children, ...buttonProps }, forwardedRef) => {\n const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, iconOnly } = buttonProps;\n\n // The label behind aria-labelledby is read once per id, not on every press.\n const cachedLabelRef = React.useRef<string | null>(null);\n React.useEffect(() => {\n cachedLabelRef.current = null;\n }, [ariaLabelledBy]);\n\n /**\n * The name announced when the pressed state changes: aria-label, then the label\n * aria-labelledby points at, then visible text.\n */\n const getAccessibleName = React.useCallback(() => {\n if (ariaLabel) return ariaLabel;\n if (ariaLabelledBy) {\n if (cachedLabelRef.current === null) {\n cachedLabelRef.current = document.getElementById(ariaLabelledBy)?.textContent || 'Toggle button';\n }\n return cachedLabelRef.current;\n }\n if (typeof children === 'string') return children;\n if (React.isValidElement(children) && typeof (children.props as any)?.children === 'string') {\n return (children.props as any).children;\n }\n return 'Toggle button';\n }, [ariaLabel, ariaLabelledBy, children]);\n\n // Use shared toggle state hook for accessibility announcements and warnings\n const { handlePressedChange } = useToggleState({\n pressed,\n onPressedChange,\n getAccessibleName,\n componentName: iconOnly ? 'ToggleIconButton' : 'ToggleButton',\n });\n\n // Render the toggle button using Radix UI's Toggle primitive\n // This provides proper ARIA attributes and keyboard navigation\n return (\n <Toggle.Root pressed={pressed} onPressedChange={handlePressedChange} defaultPressed={defaultPressed} asChild>\n <Button {...buttonProps} ref={forwardedRef}>\n {children}\n </Button>\n </Toggle.Root>\n );\n});\nToggleButton.displayName = 'ToggleButton';\n\nexport { ToggleButton };\nexport type { ToggleButtonProps };\n"],
|
|
5
5
|
"mappings": "gFAAA,UAAYA,MAAW,QACvB,OAAS,UAAAC,MAAc,WAkEvB,IAAMC,EAAqB,aAAmD,CAAC,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,eAAAC,EAAgB,SAAAC,EAAU,GAAGC,CAAY,EAAGC,IAAiB,CACtK,GAAM,CAAE,aAAcC,EAAW,kBAAmBC,EAAgB,SAAAC,CAAS,EAAIJ,EAG3EK,EAAuB,SAAsB,IAAI,EACjD,YAAU,IAAM,CACpBA,EAAe,QAAU,IAC3B,EAAG,CAACF,CAAc,CAAC,EAMnB,IAAMG,EAA0B,cAAY,IACtCJ,IACAC,GACEE,EAAe,UAAY,OAC7BA,EAAe,QAAU,SAAS,eAAeF,CAAc,GAAG,aAAe,iBAE5EE,EAAe,SAEpB,OAAON,GAAa,SAAiBA,EAC/B,iBAAeA,CAAQ,GAAK,OAAQA,EAAS,OAAe,UAAa,SACzEA,EAAS,MAAc,SAE1B,iBACN,CAACG,EAAWC,EAAgBJ,CAAQ,CAAC,EAGlC,CAAE,oBAAAQ,CAAoB,EAAIC,EAAe,CAC7C,QAAAZ,EACA,gBAAAC,EACA,kBAAAS,EACA,cAAeF,EAAW,mBAAqB,cACjD,CAAC,EAID,OACE,gBAACK,EAAO,KAAP,CAAY,QAASb,EAAS,gBAAiBW,EAAqB,eAAgBT,EAAgB,QAAO,IAC1G,gBAACY,EAAA,CAAQ,GAAGV,EAAa,IAAKC,GAC3BF,CACH,CACF,CAEJ,CAAC,EACDJ,EAAa,YAAc",
|
|
6
6
|
"names": ["React", "Toggle", "ToggleButton", "pressed", "onPressedChange", "defaultPressed", "children", "buttonProps", "forwardedRef", "ariaLabel", "ariaLabelledBy", "iconOnly", "cachedLabelRef", "getAccessibleName", "handlePressedChange", "useToggleState", "Toggle", "Button"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as L,b as l,c as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as L,b as l,c as n}from"./chunk-JQURG6CB.js";import{a as m}from"./chunk-O6K6RZXY.js";import{a as r}from"./chunk-UBSLEGQZ.js";import{a as i}from"./chunk-GSTOGDAJ.js";import{a as R}from"./chunk-OS3FCYZY.js";var y={};R(y,{Item:()=>P,Label:()=>d,Root:()=>D,Value:()=>f});import p from"classnames";import*as t from"react";var D=t.forwardRef((a,e)=>{let{className:s,...o}=r(a,L,i);return t.createElement(m,{asChild:!0},t.createElement("dl",{...o,ref:e,className:p("rt-DataListRoot",s)}))});D.displayName="DataList.Root";var P=t.forwardRef((a,e)=>{let{className:s,...o}=r(a,l);return t.createElement("div",{...o,ref:e,className:p("rt-DataListItem",s)})});P.displayName="DataList.Item";var d=t.forwardRef((a,e)=>{let{className:s,color:o,...c}=r(a,n);return t.createElement("dt",{...c,"data-accent-color":o,ref:e,className:p("rt-DataListLabel",s)})});d.displayName="DataList.Label";var f=t.forwardRef(({children:a,className:e,...s},o)=>t.createElement("dd",{...s,ref:o,className:p(e,"rt-DataListValue")},a));f.displayName="DataList.Value";export{D as a,P as b,d as c,f as d,y as e};
|
|
2
|
+
//# sourceMappingURL=chunk-2XSRO44Q.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var o=["gray","gold","bronze","brown","yellow","amber","orange","tomato","red","ruby","crimson","pink","plum","purple","violet","iris","indigo","blue","cyan","teal","jade","green","grass","lime","mint","sky"],e=["auto","gray","mauve","slate","sage","olive","sand"],r={color:{type:"enum",values:o,default:void 0}},s={color:{type:"enum",values:o,default:""}},t={color:{type:"enum",values:o,default:"gray"}};export{o as a,e as b,r as c,s as d,t as e};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
//# sourceMappingURL=chunk-34KVYDF6.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/props/color.prop.ts"],
|
|
4
|
-
"sourcesContent": ["import type { PropDef } from './prop-def.js';\n\n// prettier-ignore\nconst accentColors = ['gray', 'gold', 'bronze', 'brown', 'yellow', 'amber', 'orange', 'tomato', 'red', 'ruby', 'crimson', 'pink', 'plum', 'purple', 'violet', 'iris', 'indigo', 'blue', 'cyan', 'teal', 'jade', 'green', 'grass', 'lime', 'mint', 'sky'] as const;\n\nconst grayColors = ['auto', 'gray', 'mauve', 'slate', 'sage', 'olive', 'sand'] as const;\n\nconst colorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: undefined as (typeof accentColors)[number] | undefined,\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// 1. When used on components that compose Text, sets the color of the text to the current accent.\n// 2. Re-declares the accent role tokens (`--accent-ink`, `--accent-solid`, ...) that descendants read.\nconst accentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: '' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// For components whose colour comes from their content (Badge, Avatar, Code
|
|
5
|
-
"mappings": "AAGA,IAAMA,EAAe,CAAC,OAAQ,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAAQ,SAAU,SAAU,OAAQ,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,KAAK,EAEjPC,EAAa,CAAC,OAAQ,OAAQ,QAAS,QAAS,OAAQ,QAAS,MAAM,EAEvEC,EAAe,CACnB,MAAO,CACL,KAAM,OACN,OAAQF,EACR,QAAS,MACX,CACF,EAMMG,EAAqB,CACzB,MAAO,CACL,KAAM,OACN,OAAQH,EACR,QAAS,EACX,CACF,
|
|
4
|
+
"sourcesContent": ["import type { PropDef } from './prop-def.js';\n\n// prettier-ignore\nconst accentColors = ['gray', 'gold', 'bronze', 'brown', 'yellow', 'amber', 'orange', 'tomato', 'red', 'ruby', 'crimson', 'pink', 'plum', 'purple', 'violet', 'iris', 'indigo', 'blue', 'cyan', 'teal', 'jade', 'green', 'grass', 'lime', 'mint', 'sky'] as const;\n\nconst grayColors = ['auto', 'gray', 'mauve', 'slate', 'sage', 'olive', 'sand'] as const;\n\nconst colorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: undefined as (typeof accentColors)[number] | undefined,\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// 1. When used on components that compose Text, sets the color of the text to the current accent.\n// 2. Re-declares the accent role tokens (`--accent-ink`, `--accent-solid`, ...) that descendants read.\nconst accentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: '' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// For components whose colour comes from their content (Badge, Avatar, Code): they rest gray, and `color` picks a category when it means something.\nconst grayAccentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: 'gray' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\nexport {\n accentColorPropDef,\n grayAccentColorPropDef,\n colorPropDef,\n //\n accentColors,\n grayColors,\n};\n"],
|
|
5
|
+
"mappings": "AAGA,IAAMA,EAAe,CAAC,OAAQ,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAAQ,SAAU,SAAU,OAAQ,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,OAAQ,OAAQ,KAAK,EAEjPC,EAAa,CAAC,OAAQ,OAAQ,QAAS,QAAS,OAAQ,QAAS,MAAM,EAEvEC,EAAe,CACnB,MAAO,CACL,KAAM,OACN,OAAQF,EACR,QAAS,MACX,CACF,EAMMG,EAAqB,CACzB,MAAO,CACL,KAAM,OACN,OAAQH,EACR,QAAS,EACX,CACF,EAKMI,EAAyB,CAC7B,MAAO,CACL,KAAM,OACN,OAAQJ,EACR,QAAS,MACX,CACF",
|
|
6
6
|
"names": ["accentColors", "grayColors", "colorPropDef", "accentColorPropDef", "grayAccentColorPropDef"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-NIX6Z3JG.js";import{a as t}from"./chunk-K53W3ELO.js";import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-NIX6Z3JG.js";import{a as t}from"./chunk-K53W3ELO.js";import{a as r}from"./chunk-UBSLEGQZ.js";import{a as e}from"./chunk-GSTOGDAJ.js";import*as o from"react";import f from"classnames";import{Slot as P}from"radix-ui";var l=o.forwardRef((s,m)=>{let{asChild:i,className:n,...c}=r(s,p,t,e),a=i?P.Root:"section";return o.createElement(a,{...c,ref:m,className:f("rt-Section",n)})});l.displayName="Section";export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-35KS5AQE.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as T}from"./chunk-TPHNDGSV.js";import{a as N}from"./chunk-GFOSP3PZ.js";import{a as H}from"./chunk-K53W3ELO.js";import{a as w}from"./chunk-VX44UTQ5.js";import{a as x}from"./chunk-ERGJN7FJ.js";import{a as S}from"./chunk-UBSLEGQZ.js";import{a as D}from"./chunk-GSTOGDAJ.js";import*as e from"react";import M from"classnames";var Q=e.forwardRef((o,r)=>{let k=typeof o.width=="number"?o.width:void 0,j=typeof o.height=="number"?o.height:void 0,a="fill"in o&&o.fill===!0,{as:f="img",asChild:U,fill:V,className:h,style:i,loading:W="lazy",alt:O,src:s,placeholder:n,showSkeleton:z=!1,loadingAriaLabel:A="Loading image...",errorAriaLabel:F="Failed to load image",radius:G,caption:y,onLoad:u,onError:P,..._}=S(o,N,D,x,w,H),q=f!=="img"?{width:k,height:j,...a?{fill:!0}:{}}:{},[l,m]=e.useState("loading"),[B,p]=e.useState(!!n),I=e.useRef(null),J=e.useCallback(t=>{m("loaded"),p(!1),u?.(t)},[u]),K=e.useCallback(t=>{m("error"),p(!1),P?.(t)},[P]);if(e.useEffect(()=>{let t=I.current;t&&t.complete&&t.naturalWidth>0&&(m("loaded"),p(!1))},[s]),!s)return console.warn("Image component: src prop is required"),null;let c=l==="loading",d=l==="error",v=l==="loaded",g=a?{display:"block",opacity:v?1:0}:{width:"100%",height:"100%",display:"block",opacity:v?1:0},E=e.createElement(f,{ref:t=>{I.current=t,typeof r=="function"?r(t):r&&(r.current=t)},loading:W,style:a?g:{...g,position:"relative",zIndex:1},className:M("rt-reset","rt-Image"),alt:O,src:s,"data-radius":G,onLoad:J,onError:K,"aria-busy":c,"aria-invalid":d,"aria-describedby":d?"image-error":void 0,...q,..._}),R=c&&e.createElement("div",{className:"rt-sr-only","aria-live":"polite",role:"status"},A),L=d&&e.createElement("div",{id:"image-error",className:"rt-sr-only","aria-live":"polite",role:"alert"},F),b=z&&c&&e.createElement(T,{width:"100%",height:"100%",style:{position:"absolute",inset:0}}),C=n&&B&&e.createElement("img",{style:{...g,position:"absolute",inset:0,filter:"blur(4px)",opacity:.7,zIndex:0},className:M("rt-reset","rt-Image","rt-Image--placeholder"),alt:"",src:n});if(!y){let t=a?{position:"absolute",inset:0,...i}:{position:"relative",...i};return e.createElement("div",{className:h,style:t},R,L,b,C,E)}return e.createElement("div",{className:h,style:{display:"flex",flexDirection:"column",...i}},e.createElement("div",{style:{position:"relative",flex:"1 1 0%",minHeight:0}},R,L,b,C,E),e.createElement("div",{className:"rt-Image-caption",style:{flex:"0 0 auto"}},y))});Q.displayName="Image";export{Q as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3OABA7AF.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/image.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { imagePropDefs } from './image.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { widthPropDefs } from '../props/width.props.js';\nimport { heightPropDefs } from '../props/height.props.js';\nimport { layoutPropDefs } from '../props/layout.props.js';\nimport { Skeleton } from './skeleton.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { WidthProps } from '../props/width.props.js';\nimport type { HeightProps } from '../props/height.props.js';\nimport type { LayoutProps } from '../props/layout.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype ImageElement = React.ElementRef<'img'>;\n\ntype ImageOwnProps = GetPropDefTypes<typeof imagePropDefs> & {\n /**\n * Native loading behavior for the image\n * @default 'lazy'\n */\n loading?: 'eager' | 'lazy';\n /**\n * Placeholder image URL to show while the main image is loading (LQIP pattern)\n */\n placeholder?: string;\n /**\n * Shows a skeleton placeholder while loading\n */\n showSkeleton?: boolean;\n /**\n * Callback fired when the image successfully loads\n */\n onLoad?: (event: React.SyntheticEvent<HTMLImageElement>) => void;\n /**\n * Callback fired when the image fails to load\n */\n onError?: (event: React.SyntheticEvent<HTMLImageElement>) => void;\n /**\n * Alternative text for the image (required for accessibility)\n */\n alt: string;\n /**\n * Image source URL\n */\n src: string;\n /**\n * When true, the image will fill its parent container (for Next.js Image compatibility).\n * Parent must have `position: relative` and defined dimensions.\n */\n fill?: boolean;\n};\n\ninterface CommonImageProps\n extends MarginProps,\n WidthProps,\n HeightProps,\n LayoutProps,\n ImageOwnProps {}\n\ntype ImageImgProps = { as?: 'img' } & ComponentPropsWithout<'img', RemovedProps | 'color' | 'width' | 'height' | 'alt'>;\ntype ImageComponentProps = { as: React.ComponentType<any> } & Record<string, any>;\ntype ImageProps = CommonImageProps & (ImageImgProps | ImageComponentProps);\n\n/**\n * Image component for displaying images with enhanced loading states and accessibility.\n *\n * Supports polymorphic rendering via the `as` prop for Next.js Image compatibility.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Image src=\"/photo.jpg\" alt=\"Team photo\" />\n *\n * // With Next.js Image (fixed dimensions)\n * import NextImage from 'next/image';\n * <Image as={NextImage} src=\"/photo.jpg\" alt=\"...\" width={400} height={300} />\n *\n * // With Next.js Image (fill mode - parent needs position: relative and dimensions)\n * <div style={{ position: 'relative', width: '100%', aspectRatio: '16/9' }}>\n * <Image as={NextImage} src=\"/photo.jpg\" alt=\"...\" fill />\n * </div>\n *\n * // With placeholder and skeleton\n * <Image\n * src=\"/high-res.jpg\"\n * placeholder=\"/low-res.jpg\"\n * showSkeleton\n * alt=\"Product showcase\"\n * />\n *\n * // With caption\n * <Image\n * src=\"/chart.png\"\n * alt=\"Sales data visualization\"\n * caption=\"Q3 2024 Sales Performance\"\n * />\n * ```\n */\nconst Image = React.forwardRef<ImageElement, ImageProps>((props, forwardedRef) => {\n // Extract native width/height before extractProps consumes them (for Next.js Image compatibility)\n const nativeWidth = typeof props.width === 'number' ? props.width : undefined;\n const nativeHeight = typeof props.height === 'number' ? props.height : undefined;\n // Check if fill prop is used (for Next.js Image compatibility)\n const hasFill = 'fill' in props && props.fill === true;\n\n const {\n as: Component = 'img',\n asChild: _asChild, // Extract to prevent passing to DOM element\n fill: _fill, // Extract to prevent passing to native img element (only used for custom components)\n className,\n style,\n loading = 'lazy',\n alt,\n src,\n placeholder,\n showSkeleton = false,\n loadingAriaLabel = 'Loading image...',\n errorAriaLabel = 'Failed to load image',\n radius,\n caption,\n onLoad: userOnLoad,\n onError: userOnError,\n ...restProps\n } = extractProps(\n props,\n imagePropDefs,\n marginPropDefs,\n widthPropDefs,\n heightPropDefs,\n layoutPropDefs,\n );\n\n // When using a custom component (like Next.js Image), pass native width/height and fill\n const isCustomComponent = Component !== 'img';\n const componentDimensionProps = isCustomComponent\n ? { width: nativeWidth, height: nativeHeight, ...(hasFill ? { fill: true } : {}) }\n : {};\n\n const [loadingState, setLoadingState] = React.useState<'loading' | 'loaded' | 'error'>('loading');\n const [showPlaceholder, setShowPlaceholder] = React.useState(!!placeholder);\n const imgRef = React.useRef<HTMLImageElement>(null);\n\n const handleLoad = React.useCallback(\n (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoadingState('loaded');\n setShowPlaceholder(false);\n userOnLoad?.(event);\n },\n [userOnLoad],\n );\n\n const handleError = React.useCallback(\n (event: React.SyntheticEvent<HTMLImageElement>) => {\n setLoadingState('error');\n setShowPlaceholder(false);\n userOnError?.(event);\n },\n [userOnError],\n );\n\n // Check if image is already cached\n React.useEffect(() => {\n const img = imgRef.current;\n if (img && img.complete && img.naturalWidth > 0) {\n setLoadingState('loaded');\n setShowPlaceholder(false);\n }\n }, [src]);\n\n if (!src) {\n console.warn('Image component: src prop is required');\n return null;\n }\n\n const isLoading = loadingState === 'loading';\n const isError = loadingState === 'error';\n const isLoaded = loadingState === 'loaded';\n\n // When using fill (Next.js Image), don't add dimension/position styles as Next.js handles them\n const imgStyle: React.CSSProperties = hasFill\n ? {\n display: 'block',\n opacity: isLoaded ? 1 : 0,\n }\n : {\n width: '100%',\n height: '100%',\n display: 'block',\n opacity: isLoaded ? 1 : 0,\n };\n\n const mergeRefs = (node: HTMLImageElement | null) => {\n (imgRef as React.RefObject<HTMLImageElement | null>).current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n };\n\n const imageElement = (\n <Component\n ref={mergeRefs}\n loading={loading}\n style={hasFill ? imgStyle : { ...imgStyle, position: 'relative', zIndex: 1 }}\n className={classNames('rt-reset', 'rt-Image')}\n alt={alt}\n src={src}\n data-radius={radius}\n onLoad={handleLoad}\n onError={handleError}\n aria-busy={isLoading}\n aria-invalid={isError}\n aria-describedby={isError ? 'image-error' : undefined}\n {...componentDimensionProps}\n {...restProps}\n />\n );\n\n const loadingAnnouncement = isLoading && (\n <div className=\"rt-sr-only\" aria-live=\"polite\" role=\"status\">\n {loadingAriaLabel}\n </div>\n );\n\n const errorAnnouncement = isError && (\n <div id=\"image-error\" className=\"rt-sr-only\" aria-live=\"polite\" role=\"alert\">\n {errorAriaLabel}\n </div>\n );\n\n const skeletonElement = showSkeleton && isLoading && (\n <Skeleton width=\"100%\" height=\"100%\" style={{ position: 'absolute', inset: 0 }} />\n );\n\n const placeholderElement = placeholder && showPlaceholder && (\n <img\n style={{\n ...imgStyle,\n position: 'absolute',\n inset: 0,\n filter: 'blur(4px)',\n opacity: 0.7,\n zIndex: 0,\n }}\n className={classNames('rt-reset', 'rt-Image', 'rt-Image--placeholder')}\n alt=\"\"\n src={placeholder}\n />\n );\n\n // Simple flat structure when no caption\n if (!caption) {\n // When using fill, wrapper uses absolute positioning to fill the nearest positioned ancestor\n const wrapperStyle: React.CSSProperties = hasFill\n ? { position: 'absolute', inset: 0, ...style }\n : { position: 'relative', ...style };\n return (\n <div className={className} style={wrapperStyle}>\n {loadingAnnouncement}\n {errorAnnouncement}\n {skeletonElement}\n {placeholderElement}\n {imageElement}\n </div>\n );\n }\n\n // Flexbox structure when caption is present\n return (\n <div\n className={className}\n style={{\n display: 'flex',\n flexDirection: 'column',\n ...style,\n }}\n >\n <div\n style={{\n position: 'relative',\n flex: '1 1 0%',\n minHeight: 0,\n }}\n >\n {loadingAnnouncement}\n {errorAnnouncement}\n {skeletonElement}\n {placeholderElement}\n {imageElement}\n </div>\n\n <div className=\"rt-Image-caption\" style={{ flex: '0 0 auto' }}>\n {caption}\n </div>\n </div>\n );\n});\n\nImage.displayName = 'Image';\n\nexport { Image };\nexport type { ImageProps };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "classNames", "Image", "props", "forwardedRef", "nativeWidth", "nativeHeight", "hasFill", "Component", "_asChild", "_fill", "className", "style", "loading", "alt", "src", "placeholder", "showSkeleton", "loadingAriaLabel", "errorAriaLabel", "radius", "caption", "userOnLoad", "userOnError", "restProps", "extractProps", "imagePropDefs", "marginPropDefs", "widthPropDefs", "heightPropDefs", "layoutPropDefs", "componentDimensionProps", "loadingState", "setLoadingState", "showPlaceholder", "setShowPlaceholder", "imgRef", "handleLoad", "event", "handleError", "img", "isLoading", "isError", "isLoaded", "imgStyle", "imageElement", "node", "classNames", "loadingAnnouncement", "errorAnnouncement", "skeletonElement", "Skeleton", "placeholderElement", "wrapperStyle"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"./chunk-SMGDH54W.js";import{a as e}from"./chunk-TTFUM47A.js";import{b as s}from"./chunk-KRJTW535.js";import{c as r}from"./chunk-34KVYDF6.js";var o=["1","2","3","4"],a=["raised","surface","soft","ghost","outline"],i=["solid","translucent"],d={size:{type:"enum",className:"rt-r-size",values:o,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:a,default:"raised"},error:{type:"boolean",default:!1},errorMessage:{type:"string",default:void 0},required:{type:"boolean",default:!1},"aria-describedby":{type:"string",default:void 0},"aria-labelledby":{type:"string",default:void 0},...r,...s,material:{type:"enum",values:i,default:void 0}},p=["left","right"],b={side:{type:"enum",values:p},...r,gap:t.gap,px:e.px,pl:e.pl,pr:e.pr};export{d as a,b};
|
|
2
|
+
//# sourceMappingURL=chunk-3PT3AOD5.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/text-field.props.tsx"],
|
|
4
|
+
"sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\nimport { paddingPropDefs } from '../props/padding.props.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\nimport { flexPropDefs } from './flex.props.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['raised', 'surface', 'soft', 'ghost', 'outline'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst textFieldRootPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'raised' },\n // Error and validation props\n error: { type: 'boolean', default: false },\n errorMessage: { type: 'string', default: undefined },\n required: { type: 'boolean', default: false },\n // Accessibility props\n 'aria-describedby': { type: 'string', default: undefined },\n 'aria-labelledby': { type: 'string', default: undefined },\n ...colorPropDef,\n ...radiusPropDef,\n material: { type: 'enum', values: materials, default: undefined },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n error: PropDef<boolean>;\n errorMessage: PropDef<string | undefined>;\n required: PropDef<boolean>;\n 'aria-describedby': PropDef<string | undefined>;\n 'aria-labelledby': PropDef<string | undefined>;\n material: PropDef<(typeof materials)[number] | undefined>;\n};\n\nconst sides = ['left', 'right'] as const;\n\nconst textFieldSlotPropDefs = {\n side: { type: 'enum', values: sides },\n ...colorPropDef,\n gap: flexPropDefs.gap,\n px: paddingPropDefs.px,\n pl: paddingPropDefs.pl,\n pr: paddingPropDefs.pr,\n} satisfies {\n side: PropDef<(typeof sides)[number]>;\n gap: typeof flexPropDefs.gap;\n px: typeof paddingPropDefs.px;\n pl: typeof paddingPropDefs.pl;\n pr: typeof paddingPropDefs.pr;\n};\n\n/** Scrubbing props for TextField.Slot - handled separately from PropDef system */\ninterface TextFieldSlotScrubProps {\n /** Enable scrubbing behavior on this slot */\n scrub?: boolean;\n /** Current value (required for min/max clamping to work correctly) */\n scrubValue?: number;\n /** Base value change per movement unit (default: 1) */\n scrubStep?: number;\n /** Pixels of movement per step - higher = less sensitive (default: 1) */\n scrubSensitivity?: number;\n /** Minimum allowed value */\n scrubMin?: number;\n /** Maximum allowed value */\n scrubMax?: number;\n /** Step multiplier when Shift is held (default: 10) */\n scrubShiftMultiplier?: number;\n /** Step multiplier when Alt/Option is held (default: 0.1) */\n scrubAltMultiplier?: number;\n /**\n * Callback fired during scrubbing with the value delta\n * @param delta - The change in value\n * @param isChanging - true while dragging, false when released\n */\n onScrub?: (delta: number, isChanging: boolean) => void;\n}\n\nexport type { TextFieldSlotScrubProps };\n\nexport { textFieldRootPropDefs, textFieldSlotPropDefs };\n"],
|
|
5
|
+
"mappings": "gKAOA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,SAAU,UAAW,OAAQ,QAAS,SAAS,EAC3DC,EAAY,CAAC,QAAS,aAAa,EAEnCC,EAAwB,CAC5B,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQH,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,QAAS,EAEtF,MAAO,CAAE,KAAM,UAAW,QAAS,EAAM,EACzC,aAAc,CAAE,KAAM,SAAU,QAAS,MAAU,EACnD,SAAU,CAAE,KAAM,UAAW,QAAS,EAAM,EAE5C,mBAAoB,CAAE,KAAM,SAAU,QAAS,MAAU,EACzD,kBAAmB,CAAE,KAAM,SAAU,QAAS,MAAU,EACxD,GAAGG,EACH,GAAGC,EACH,SAAU,CAAE,KAAM,OAAQ,OAAQH,EAAW,QAAS,MAAU,CAClE,EAWMI,EAAQ,CAAC,OAAQ,OAAO,EAExBC,EAAwB,CAC5B,KAAM,CAAE,KAAM,OAAQ,OAAQD,CAAM,EACpC,GAAGF,EACH,IAAKI,EAAa,IAClB,GAAIC,EAAgB,GACpB,GAAIA,EAAgB,GACpB,GAAIA,EAAgB,EACtB",
|
|
6
|
+
"names": ["sizes", "variants", "materials", "textFieldRootPropDefs", "colorPropDef", "radiusPropDef", "sides", "textFieldSlotPropDefs", "flexPropDefs", "paddingPropDefs"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as s}from"./chunk-5YLKKQFK.js";import*as r from"react";function l(e){return typeof e=="object"&&e!==null}function p(e,n){let t={},o=null;for(let i of s){if(e!==void 0&&!l(e)){t[i]=e;continue}let a=l(e)?e[i]:void 0;a!==void 0&&(o={value:a}),t[i]=o?o.value:n(i)}return t}function d(e){let n=e.initial;return s.every(t=>e[t]===n)?n:void 0}function h(e,n){let t=d(n);if(t!==void 0)return{[`data-${e}`]:t};let o={};for(let i of s)o[`data-${e}-${i}`]=n[i];return o}function P(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var T=p("fixed",()=>"fixed");function g(){return{entries:new Map,listeners:new Set,version:0,peek:null}}function f(e){e.version+=1;for(let n of e.listeners)n()}function c(e,n){return e.listeners.add(n),()=>{e.listeners.delete(n)}}function R(e,n){e.peek!==n&&(e.peek=n,f(e))}var S=r.createContext(null);function y(e){let n=r.useContext(S);if(!n)throw new Error(`${e} must be used within <Shell.Root>`);return n}function I(e,n){let t=r.useCallback(i=>c(e,i),[e]),o=r.useCallback(()=>e.entries.get(n),[e,n]);return r.useSyncExternalStore(t,o,()=>{})}function k(e,n){let t=r.useCallback(o=>c(e,o),[e]);return r.useSyncExternalStore(t,()=>e.peek===n,()=>!1)}var b=r.createContext(null);function m(e,n){let t=r.useContext(b);if(!t)throw new Error("Shell panes must be used within <Shell.Root>");let{registerInset:o,unregisterInset:i}=t;r.useLayoutEffect(()=>{if(n)return o(e),()=>i(e)},[e,n,o,i])}var u=new Set;function v(e){}export{p as a,d as b,h as c,P as d,T as e,g as f,f as g,c as h,R as i,S as j,y as k,I as l,k as m,b as n,m as o,v as p};
|
|
2
|
+
//# sourceMappingURL=chunk-3PTKPDSA.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/shell-store.tsx"],
|
|
4
|
+
"sourcesContent": ["'use client';\n\n/**\n * The Shell's state model (0.8.0), ported from kookie-ui-v2's Shell.\n *\n * - State lives on the pane. Each pane holds `auto | open | closed`.\n * `auto` means untouched: the stylesheet decides what\n * it shows at each breakpoint, so first paint is right with no script, the\n * server and the client render the same markup, and no open-state callback\n * can fire on mount or on a resize.\n * - The one thing that crosses the Shell is a registry keyed by pane name.\n * Each pane registers what it is and how to drive it; a Trigger looks its\n * pane up, and the Root reads the set of live overlays. Nothing scans\n * children and nothing checks `displayName`.\n * - The responsive props are resolved into a table with one value per\n * breakpoint, from the props alone, with no window. The table is written to\n * the DOM as data attributes for the stylesheet, and read again in JS by the\n * mirror that sets `aria-expanded`. One table, two readers, so they agree by\n * construction.\n */\nimport * as React from 'react';\nimport { SHELL_BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\n\n/* \u2500\u2500 Breakpoint tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type Table<T> = Record<Breakpoint, T>;\n\n/** What a pane shows: open or closed. */\nexport type PaneValue = 'open' | 'closed';\n\ntype ResponsiveInput<T> = T | Partial<Record<Breakpoint, T>> | undefined;\n\nfunction isMap<T>(value: ResponsiveInput<T>): value is Partial<Record<Breakpoint, T>> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * A responsive value at every breakpoint. A breakpoint takes the largest key\n * at or below it, the same fallback `useResponsiveValue` used; a breakpoint\n * below every key takes `fallback`.\n */\nexport function tableOf<T>(value: ResponsiveInput<T>, fallback: (bp: Breakpoint) => T): Table<T> {\n const table = {} as Table<T>;\n let carried: { value: T } | null = null;\n for (const bp of SHELL_BREAKPOINTS) {\n if (value !== undefined && !isMap(value)) {\n table[bp] = value;\n continue;\n }\n const entry = isMap(value) ? value[bp] : undefined;\n if (entry !== undefined) carried = { value: entry };\n table[bp] = carried ? carried.value : fallback(bp);\n }\n return table;\n}\n\n/** The table's one value, when it has only one. */\nexport function constantOf<T>(table: Table<T>): T | undefined {\n const first = table.initial;\n return SHELL_BREAKPOINTS.every((bp) => table[bp] === first) ? first : undefined;\n}\n\n/**\n * The table as data attributes: `data-<name>` when it holds one value, one\n * `data-<name>-<bp>` per breakpoint when it holds several. The stylesheet has\n * a rule for each spelling.\n */\nexport function tableAttributes(name: string, table: Table<string>): Record<string, string> {\n const constant = constantOf(table);\n if (constant !== undefined) return { [`data-${name}`]: constant };\n const attributes: Record<string, string> = {};\n for (const bp of SHELL_BREAKPOINTS) attributes[`data-${name}-${bp}`] = table[bp];\n return attributes;\n}\n\n/**\n * A responsive prop object is usually an inline literal, a new identity every\n * render. Keying memoisation on its contents keeps the tables, and so the\n * registry entries, stable across renders that change nothing.\n */\nexport function useStableKey(value: unknown): string {\n return typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value);\n}\n\nexport const FIXED_TABLE: Table<PresentationValue> = tableOf<PresentationValue>('fixed', () => 'fixed');\n\n/* \u2500\u2500 The registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type OpenChangeReason = 'toggle' | 'dismiss';\n\nexport type PaneEntry = {\n name: PaneName;\n id: string;\n el: HTMLElement | null;\n /** What the pane shows now; `undefined` while an untouched pane cannot know (before the breakpoint is known). */\n value: PaneValue | undefined;\n /** How the pane is presented now, when known. */\n presentation: PresentationValue | undefined;\n /** The pane's own presentation at every breakpoint. A Panel with none of its own follows the Rail's. */\n presentationTable: Table<PresentationValue>;\n /** Open and presented as an overlay: what the scrim and Escape close, and what containment exempts. */\n overlayLive: boolean;\n /** The pane's designed open width, for panes that sit beside it when floating. */\n size: number;\n setValue: (value: PaneValue, reason: OpenChangeReason) => void;\n toggle: (reason: OpenChangeReason) => void;\n};\n\nexport type ShellStore = {\n entries: Map<PaneName, PaneEntry>;\n listeners: Set<() => void>;\n /**\n * What a subscriber reads. useSyncExternalStore needs a value that is stable\n * between notifications, and a number is; the Map, or anything derived from\n * it, would be a new identity on every read.\n */\n version: number;\n /** The pane a hovered Trigger is previewing, if any. Layout only. */\n peek: PaneName | null;\n};\n\nexport function createShellStore(): ShellStore {\n return { entries: new Map(), listeners: new Set(), version: 0, peek: null };\n}\n\nexport function notifyShellStore(store: ShellStore) {\n store.version += 1;\n for (const listener of store.listeners) listener();\n}\n\nexport function subscribeShellStore(store: ShellStore, listener: () => void) {\n store.listeners.add(listener);\n return () => {\n store.listeners.delete(listener);\n };\n}\n\nexport function setShellPeek(store: ShellStore, peek: PaneName | null) {\n if (store.peek === peek) return;\n store.peek = peek;\n notifyShellStore(store);\n}\n\nexport const ShellStoreContext = React.createContext<ShellStore | null>(null);\n\nexport function useShellStore(part: string): ShellStore {\n const store = React.useContext(ShellStoreContext);\n if (!store) throw new Error(`${part} must be used within <Shell.Root>`);\n return store;\n}\n\n/** One pane's registry entry. Re-renders only when that entry is replaced. */\nexport function usePaneEntry(store: ShellStore, name: PaneName): PaneEntry | undefined {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const getSnapshot = React.useCallback(() => store.entries.get(name), [store, name]);\n return React.useSyncExternalStore(subscribe, getSnapshot, () => undefined);\n}\n\n/**\n * Whether this pane is the one being previewed. A boolean per pane rather than\n * the peek target itself, so hovering one Trigger re-renders one pane, not all.\n */\nexport function usePeeking(store: ShellStore, name: PaneName): boolean {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.peek === name,\n () => false,\n );\n}\n\n/* \u2500\u2500 Inset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type InsetPaneId = 'rail' | 'panel' | 'sidebar' | 'content' | 'inspector' | 'bottom';\n\nexport const ShellInsetContext = React.createContext<{\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n} | null>(null);\n\n/** Registers a pane's `inset` with the Root, which paints the backdrop while any pane is inset. */\nexport function useInsetRegistration(id: InsetPaneId, inset: boolean | undefined) {\n const ctx = React.useContext(ShellInsetContext);\n if (!ctx) throw new Error('Shell panes must be used within <Shell.Root>');\n const { registerInset, unregisterInset } = ctx;\n React.useLayoutEffect(() => {\n if (!inset) return;\n registerInset(id);\n return () => unregisterInset(id);\n }, [id, inset, registerInset, unregisterInset]);\n}\n\n/* \u2500\u2500 Development warnings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nconst warned = new Set<string>();\n\n/** A deprecation warning, once per message per page load. Development only. */\nexport function warnOnce(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "isMap", "value", "tableOf", "fallback", "table", "carried", "bp", "SHELL_BREAKPOINTS", "entry", "constantOf", "first", "tableAttributes", "name", "constant", "attributes", "useStableKey", "FIXED_TABLE", "createShellStore", "notifyShellStore", "store", "listener", "subscribeShellStore", "setShellPeek", "peek", "ShellStoreContext", "useShellStore", "part", "usePaneEntry", "subscribe", "getSnapshot", "usePeeking", "ShellInsetContext", "useInsetRegistration", "id", "inset", "ctx", "registerInset", "unregisterInset", "warned", "warnOnce", "message"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as e}from"./chunk-34KVYDF6.js";var s=["1","2","3"],r=["raised","solid","soft","outline","surface"],o={size:{type:"enum",className:"rt-r-size",values:s,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:r,default:"raised"},...e};export{o as a};
|
|
2
|
+
//# sourceMappingURL=chunk-4D7OU2UA.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/_internal/base-radio.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', '3'] as const;\nconst variants = ['raised', 'solid', 'soft', 'outline', 'surface'] as const;\n\nconst baseRadioPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'raised' },\n ...colorPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n};\n\nexport { baseRadioPropDefs };\n"],
|
|
5
|
+
"mappings": "wCAIA,IAAMA,EAAQ,CAAC,IAAK,IAAK,GAAG,EACtBC,EAAW,CAAC,SAAU,QAAS,OAAQ,UAAW,SAAS,EAE3DC,EAAoB,CACxB,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQF,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,QAAS,EACtF,GAAGE,CACL",
|
|
6
|
+
"names": ["sizes", "variants", "baseRadioPropDefs", "colorPropDef"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as tt}from"./chunk-DQTJMIRO.js";import{a as Be}from"./chunk-MQT3YJKY.js";import{g as Ze,j as et}from"./chunk-IX5HIHVI.js";import{a as Ae}from"./chunk-O6K6RZXY.js";import{a as Qe}from"./chunk-JZD5FHSU.js";import{a as ze}from"./chunk-XZ5XZS5O.js";import{a as Fe}from"./chunk-7CBZFHSQ.js";import{a as De}from"./chunk-AGAQC4HH.js";import{b as U}from"./chunk-FWB47YCH.js";import{a as Ot}from"./chunk-OS3FCYZY.js";var jt={};Ot(jt,{AttachTrigger:()=>ft,Attachment:()=>$e,AttachmentsRow:()=>ut,InlineEnd:()=>dt,InlineStart:()=>lt,Item:()=>ht,Root:()=>ct,Row:()=>bt,RowEnd:()=>Ct,RowStart:()=>Rt,Send:()=>gt,Textarea:()=>it});import*as e from"react";import T from"classnames";import{useComposedRefs as rt}from"radix-ui/internal";import{useDropzone as Ht}from"react-dropzone";var je=typeof window<"u"?e.useLayoutEffect:e.useEffect;function at(t,o){let{placeholder:a}=t;if(!a){o();return}t.placeholder="";try{o()}finally{t.placeholder=a}}var ot=e.createContext(null),We=e.createContext(""),O=()=>{let t=e.useContext(ot);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},me=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(o=>o.trim()).filter(Boolean):[],It=(t,o)=>{if(o.length===0)return!0;let a=t.type.toLowerCase(),c=t.name.toLowerCase();for(let i of o){let l=i.toLowerCase();if(l.includes("/")){let[d,u]=l.split("/"),[f,b]=a.split("/");if(d==="*"||d===f&&(u==="*"||u===b))return!0}else if(l.startsWith(".")&&c.endsWith(l))return!0}return!1},Ft=/\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i,st=(t,o)=>(o||"").toLowerCase().startsWith("image/")||Ft.test(t),Ve=t=>t.trim().length>0,nt=(t,o)=>`${t} ${o}${t===1?"":"s"}`,zt=0,Dt=()=>`chatbar-attachment-${Date.now()}-${++zt}`,ct=e.forwardRef((t,o)=>{let{className:a,style:c,children:i,value:l,defaultValue:d="",onValueChange:u,open:f,defaultOpen:b=!1,onOpenChange:g,expandOn:v="both",minLines:C=3,maxLines:w=6,sendMode:H="whenDirty",disabled:R,readOnly:E,onSubmit:B,size:A="2",variant:I,color:M,radius:N,material:J,width:h,maxWidth:Q,attachments:F,defaultAttachments:se,onAttachmentsChange:P,accept:z,multiple:j=!0,maxAttachments:G,maxFileSize:_,paste:V=!0,pasteAccept:q,clearOnSubmit:L=!0,onAttachmentReject:D,dropzone:ce=!0,apiRef:we,onBlurCapture:pe,notices:he,context:fe,...Se}=t,be=J,r=l!=null,[y,S]=e.useState(d),Z=r?l:y,W=f!=null,[ee,Ee]=e.useState(b),X=W?f:ee,te="attachments"in t,[ie,vt]=e.useState(()=>se??[]),le=e.useMemo(()=>te?F??[]:ie,[te,F,ie]),[Ke,yt]=e.useState({text:"",id:0}),de=e.useCallback(n=>yt(s=>({text:n,id:s.id+1})),[]),Ue=e.useRef(null),xt=rt(o,Ue),Te=e.useRef(null),Le=e.useRef(null),ue=e.useRef(!1),Re=e.useRef(!1),Ce=e.useRef(void 0),ke=e.useRef(null),Ge=me(z).join(","),Me=me(q).join(","),Ne=e.useMemo(()=>me(Ge),[Ge]),Pt=e.useMemo(()=>Me?me(Me):Ne,[Me,Ne]),_e={value:Z,attachments:le,accepts:Ne,pasteAccepts:Pt,multiple:j,maxAttachments:G,maxFileSize:_,disabled:R,readOnly:E,expandOn:v,isValueControlled:r,isOpenControlled:W,isAttachmentsControlled:te,onValueChange:u,onOpenChange:g,onAttachmentsChange:P,onAttachmentReject:D,onSubmit:B},x=e.useRef(_e);x.current=_e;let Oe=e.useRef(null),$=e.useCallback(()=>Oe.current??x.current.attachments,[]),ae=e.useCallback(n=>{x.current.isOpenControlled||Ee(n),x.current.onOpenChange?.(n)},[]),ge=e.useCallback(n=>{x.current.isValueControlled||S(n),x.current.onValueChange?.(n)},[]),ne=e.useCallback(n=>{Oe.current=n,queueMicrotask(()=>{Oe.current=null}),x.current.isAttachmentsControlled||vt(n),x.current.onAttachmentsChange?.(n)},[]),ve=e.useRef(new Set),re=e.useCallback((n,s,m=x.current.multiple)=>{let p=x.current;if(p.disabled||p.readOnly||n.length===0)return 0;let K=$(),Y=[],oe=[],Mt=typeof p.maxAttachments=="number"?Math.max(p.maxAttachments-K.length,0):1/0,Nt=m?1/0:1;for(let k of n){if(Y.length>=Mt||Y.length>=Nt){oe.push({file:k,reason:"count"});continue}if(typeof p.maxFileSize=="number"&&k.size>p.maxFileSize){oe.push({file:k,reason:"size"});continue}if(!It(k,s)){oe.push({file:k,reason:"type"});continue}let Ie=st(k.name,k.type)?URL.createObjectURL(k):void 0;Ie&&ve.current.add(Ie),Y.push({id:Dt(),name:k.name,size:k.size,type:k.type,file:k,url:Ie,status:"idle"})}let Pe=[];return Y.length>0&&(ne(K.concat(Y)),p.expandOn!=="none"&&ae(!0),Pe.push(`${nt(Y.length,"file")} attached.`)),oe.length>0&&(p.onAttachmentReject?.(oe),Pe.push(`${nt(oe.length,"file")} could not be attached.`)),Pe.length>0&&de(Pe.join(" ")),Y.length},[$,ne,ae,de]),ye=e.useCallback(n=>re(n,x.current.accepts),[re]),qe=e.useCallback(n=>re(n,x.current.pasteAccepts),[re]),Xe=e.useCallback(n=>{let s=$(),m=s.find(p=>p.id===n);m&&(ne(s.filter(p=>p.id!==n)),de(`Removed ${m.name}.`))},[$,ne,de]),Ye=e.useCallback(n=>{let s=x.current;if(s.disabled||s.readOnly)return!1;let m=$();if(!Ve(s.value)&&m.length===0)return!1;let p={value:s.value,attachments:m};if(n&&s.onSubmit)for(let K of m)K.url&&ve.current.delete(K.url);return s.onSubmit?.(p),n&&(ge(""),ne([])),!0},[$,ge,ne]);e.useEffect(()=>{let n=ve.current;if(n.size===0)return;let s=new Set(le.map(m=>m.url));for(let m of Array.from(n))s.has(m)||(URL.revokeObjectURL(m),n.delete(m))},[le]),e.useEffect(()=>{let n=ve.current;return()=>{if(!x.current.isAttachmentsControlled){for(let s of Array.from(n))URL.revokeObjectURL(s);n.clear()}}},[]);let xe=e.useCallback(n=>{let s=x.current,m=Le.current;if(clearTimeout(Ce.current),Re.current=!1,!m||s.disabled||s.readOnly)return;let p=n?.accept!=null?me(n.accept):s.accepts,K=n?.multiple??s.multiple;ke.current={patterns:p,multiple:K},m.accept=p.join(","),m.multiple=K,ue.current=!0,m.click(),setTimeout(()=>{document.hasFocus()&&(ue.current=!1)},1e3)},[]),Je=e.useCallback(()=>{Re.current=!0,clearTimeout(Ce.current),Ce.current=setTimeout(()=>{Re.current=!1},800)},[]);e.useEffect(()=>()=>clearTimeout(Ce.current),[]),e.useEffect(()=>{let n=Le.current,s=()=>{ue.current=!1};return window.addEventListener("focus",s),n?.addEventListener("cancel",s),()=>{window.removeEventListener("focus",s),n?.removeEventListener("cancel",s)}},[]);let At=e.useCallback(n=>{let s=n.currentTarget,m=Array.from(s.files??[]),p=ke.current;re(m,p?.patterns??x.current.accepts,p?.multiple),ue.current=!1,ke.current=null,s.value=""},[re]),wt=e.useCallback(n=>{pe?.(n);let s=x.current,m=Ue.current;if(!m||s.expandOn==="none")return;let p=n.relatedTarget;p&&m.contains(p)||ue.current||Re.current||!Ve(s.value)&&$().length===0&&ae(!1)},[pe,ae,$]),St=e.useCallback(n=>{ye(n)},[ye]),{getRootProps:Et,isDragActive:Tt}=Ht({onDrop:St,onDragEnter:()=>de(""),noClick:!0,noKeyboard:!0,noPaste:!0,disabled:!ce||R||E}),He=ce&&Tt;e.useImperativeHandle(we,()=>({focusTextarea:()=>Te.current?.focus({preventScroll:!0}),openFilePicker:()=>xe()}),[xe]);let Lt=e.useCallback(n=>{if(R||n.pointerType==="mouse"&&n.button!==0)return;let s=n.target;s instanceof Element&&s.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')||(n.preventDefault(),Te.current?.focus({preventScroll:!0}))},[R]),kt=e.useMemo(()=>({open:X,setOpen:ae,setValue:ge,size:A,expandOn:v,minLines:C,maxLines:w,sendMode:H,disabled:R,readOnly:E,paste:V,clearOnSubmit:L,multiple:j,textareaRef:Te,attachments:le,removeAttachment:Xe,submit:Ye,appendFiles:ye,appendFilesFromPaste:qe,openFilePicker:xe,beginFilePickerPress:Je}),[X,ae,ge,A,v,C,w,H,R,E,V,L,j,le,Xe,Ye,ye,qe,xe,Je]);return e.createElement(ot.Provider,{value:kt},e.createElement(We.Provider,{value:Z},e.createElement(e.Fragment,null,e.createElement("div",{...Se,ref:xt,className:T("rt-ChatbarRoot",`rt-r-size-${A}`,a),style:{position:"relative",width:h,maxWidth:Q,...c},"data-state":X?"open":"closed","data-disabled":R?"":void 0,"data-readonly":E?"":void 0,"data-drop-active":He?"":void 0,"data-accent-color":M,"data-radius":N,"data-material":be,onBlurCapture:wt},e.createElement("input",{ref:Le,type:"file",tabIndex:-1,"aria-hidden":!0,style:{display:"none"},onChange:At}),he?e.createElement("div",{className:"rt-ChatbarNotices"},e.createElement(tt.Provider,{value:A},he)):null,e.createElement("div",{...ce?Et():{},style:{width:"100%",flex:"1 1 auto",minHeight:0},onPointerDown:Lt},e.createElement("div",{className:T("rt-ChatbarBox",`rt-variant-${I??"raised"}`),style:{position:"relative"},"data-accent-color":M,"data-radius":N,"data-material":be},e.createElement("div",{className:"rt-ChatbarGrid"},i),He&&e.createElement("div",{className:"rt-ChatbarDropOverlay","aria-hidden":!0},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(Ae,{emphasis:"medium",size:A,weight:"medium"},"Drop files here to attach"))))),fe?e.createElement(Ae,{as:"div",size:A==="3"?"2":"1",emphasis:"medium",className:"rt-ChatbarContext"},fe):null,e.createElement(De,{role:"status","aria-live":"polite"},He?"Drop files here to attach.":e.createElement("span",{key:Ke.id},Ke.text))))))});ct.displayName="Chatbar.Root";var it=e.forwardRef((t,o)=>{let{className:a,style:c,asChild:i,onFocus:l,onChange:d,onPaste:u,onKeyDown:f,onCompositionStart:b,onCompositionEnd:g,submitOnEnter:v=!1,...C}=t,w=O(),H=e.useContext(We),{open:R,minLines:E,maxLines:B,expandOn:A,disabled:I,readOnly:M,setOpen:N,setValue:J,textareaRef:h,paste:Q,appendFilesFromPaste:F,size:se,submit:P,clearOnSubmit:z}=w,j=rt(o,h),G=e.useRef(0),_=e.useRef(0),V=e.useRef(!1),q=e.useRef({open:R,minLines:E,maxLines:B});je(()=>{q.current={open:R,minLines:E,maxLines:B}},[R,E,B]);let L=e.useCallback(()=>{let r=h.current;if(!r)return;let y=window.getComputedStyle(r);G.current=parseFloat(y.lineHeight)||20,_.current=(parseFloat(y.paddingTop)||0)+(parseFloat(y.paddingBottom)||0)},[h]),D=e.useCallback((r,y)=>{let{minLines:S,maxLines:Z}=q.current,W=G.current,ee=_.current,Ee=Math.ceil((y?S:1)*W)+ee,X=Math.ceil((y?Z:1)*W)+ee,te=Math.max(r.scrollHeight,Ee);r.style.height=`${Math.min(te,X)}px`;let ie=te>X;r.style.overflowY=ie?"auto":"hidden",r.style.maxHeight=ie?`${X}px`:"none"},[]);je(()=>{L()},[L,se]),je(()=>{let r=h.current;r&&(G.current===0&&L(),at(r,()=>{r.style.height="auto";let y=R;if(!R&&(A==="overflow"||A==="both")){let S=Math.ceil(G.current)+_.current;r.scrollHeight>S+1&&(y=!0,N(!0))}D(r,y)}))},[H,R,A,E,B,se,N,h,L,D]),e.useEffect(()=>{let r=h.current;if(!r||typeof ResizeObserver>"u")return;let y=-1,S=new ResizeObserver(Z=>{let W=Z[0]?.contentRect.width??0;if(W===y)return;let ee=y===-1;y=W,!ee&&(L(),at(r,()=>{r.style.height="auto",D(r,q.current.open)}))});return S.observe(r),()=>S.disconnect()},[h,L,D]),e.useEffect(()=>{},[]);let ce=e.useCallback(r=>{l?.(r),!(I||M)&&(A==="focus"||A==="both")&&!R&&N(!0)},[I,M,A,R,N,l]),we=e.useCallback(r=>{J(r.currentTarget.value),d?.(r)},[J,d]),pe=e.useCallback(r=>{if(u?.(r),r.defaultPrevented||!Q||I||M)return;let y=Array.from(r.clipboardData?.items??[]).filter(S=>S.kind==="file").map(S=>S.getAsFile()).filter(S=>!!S);y.length!==0&&F(y)>0&&r.preventDefault()},[Q,I,M,u,F]),he=e.useCallback(r=>{V.current=!0,b?.(r)},[b]),fe=e.useCallback(r=>{V.current=!1,g?.(r)},[g]),Se=e.useCallback(r=>{f?.(r),!(r.defaultPrevented||!v)&&(r.key!=="Enter"||r.shiftKey||r.altKey||r.ctrlKey||r.metaKey||V.current||r.nativeEvent.isComposing||r.nativeEvent.keyCode===229||(r.preventDefault(),P(z)))},[v,f,P,z]),be=i?U:"textarea";return e.createElement("div",{className:T("rt-ChatbarField","rt-ChatbarTextarea",a)},e.createElement(be,{...C,ref:j,className:"rt-ChatbarInput",value:H,onChange:we,onFocus:ce,onPaste:pe,onKeyDown:Se,onCompositionStart:he,onCompositionEnd:fe,disabled:I,readOnly:M,rows:R?E:1,spellCheck:C.spellCheck??!0,autoCorrect:C.autoCorrect??"on",style:c}))});it.displayName="Chatbar.Textarea";var lt=e.forwardRef((t,o)=>{let{children:a,asChild:c,className:i,...l}=t;return O().open?null:e.createElement(c?U:"div",{...l,ref:o,className:T("rt-ChatbarInlineStart",i)},a)});lt.displayName="Chatbar.InlineStart";var dt=e.forwardRef((t,o)=>{let{children:a,asChild:c,className:i,...l}=t;return O().open?null:e.createElement(c?U:"div",{...l,ref:o,className:T("rt-ChatbarInlineEnd",i)},a)});dt.displayName="Chatbar.InlineEnd";var ut=e.forwardRef((t,o)=>{let{asChild:a,forceMount:c,renderAttachment:i,className:l,children:d,...u}=t,f=O(),b=e.Children.toArray(d).length>0;return f.attachments.length===0&&!b&&!c?null:e.createElement("div",null,e.createElement(a?U:"div",{...u,ref:o,className:T("rt-ChatbarAttachmentsRow",l),role:"list","aria-label":u["aria-label"]??"Attachments"},e.createElement(Qe,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal",size:"1"},e.createElement(Fe,{align:"center",gap:"2",minWidth:"fit-content"},f.attachments.map(v=>e.createElement($e,{key:v.id,attachment:v,asChild:!!i},i?.(v))),d))))});ut.displayName="Chatbar.AttachmentsRow";function mt(t,o){let a=t.closest('[role="listitem"]'),c=a?.parentElement?Array.from(a.parentElement.children):[],i=a?c.indexOf(a):-1,d=(c[i+1]??c[i-1])?.querySelector(".rt-ChatbarItemRemove");d?d.focus():o.current?.focus({preventScroll:!0})}var pt=({lead:t,leadKind:o,label:a,detail:c,removeLabel:i,onRemove:l})=>{let d=O();return e.createElement(e.Fragment,null,e.createElement("span",{className:"rt-ChatbarItemLead","data-kind":o,"aria-hidden":!0},t),e.createElement(Ae,{className:"rt-ChatbarItemLabel",size:d.size,truncate:!0},a,c?e.createElement(De,null,", ",c):null),l&&e.createElement(Be,{className:"rt-ChatbarItemRemove","aria-label":i,size:"1",variant:"ghost",color:"gray",onClick:l},e.createElement(Ze,null)))},Bt={uploading:"uploading",error:"failed to upload"},$e=e.forwardRef((t,o)=>{let{attachment:a,asChild:c,className:i,children:l,...d}=t,u=O(),f=c?U:"div",b=!!a.url&&st(a.name,a.type),g=`${Math.ceil(a.size/1024)} KB`,v=a.status?Bt[a.status]:void 0,C=u.disabled||u.readOnly,w=R=>{mt(R.currentTarget,u.textareaRef),u.removeAttachment(a.id)},H=a.status==="uploading"?e.createElement(ze,{size:"1"}):b?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:a.url,alt:""}):e.createElement(et,null);return e.createElement(f,{...d,ref:o,className:T(l?"rt-ChatbarAttachment":"rt-ChatbarAttachment rt-ChatbarItem",i),role:"listitem","data-kind":b?"image":"file","data-status":a.status,title:a.name},l??e.createElement(pt,{lead:H,leadKind:b&&a.status!=="uploading"?"image":"icon",label:a.name,detail:v?`${g}, ${v}`:g,removeLabel:`Remove ${a.name}`,onRemove:C?void 0:w}))});$e.displayName="Chatbar.Attachment";var ht=e.forwardRef((t,o)=>{let{children:a,icon:c,image:i,color:l,onRemove:d,removeLabel:u,className:f,...b}=t,g=O(),v=g.disabled||g.readOnly,C=d?w=>{mt(w.currentTarget,g.textareaRef),d()}:void 0;return e.createElement("div",{...b,ref:o,className:T("rt-ChatbarItem",f),role:"listitem","data-accent-color":i?void 0:l??"gray",title:a},e.createElement(pt,{lead:i?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:i,alt:""}):c,leadKind:i?"image":"icon",label:a,removeLabel:u??`Remove ${a}`,onRemove:v?void 0:C}))});ht.displayName="Chatbar.Item";var ft=e.forwardRef((t,o)=>{let{asChild:a,accept:c,multiple:i,disabled:l,onPointerDown:d,onClick:u,...f}=t,b=O(),g=l||b.disabled||b.readOnly;return e.createElement(a?U:"button",{...f,ref:o,className:T("rt-ChatbarAttachTrigger",f.className),type:f.type??"button","aria-label":f["aria-label"]??"Add attachments",disabled:g,onPointerDown:C=>{d?.(C),!g&&!C.defaultPrevented&&b.beginFilePickerPress()},onClick:C=>{u?.(C),!(g||C.defaultPrevented)&&b.openFilePicker({accept:c,multiple:i})}})});ft.displayName="Chatbar.AttachTrigger";var bt=e.forwardRef((t,o)=>{let{asChild:a,children:c,className:i,...l}=t;return O().open?e.createElement("div",null,e.createElement(a?U:"div",{...l,ref:o,className:T("rt-ChatbarRow",i)},e.createElement(Fe,{align:"center",justify:"between",width:"100%"},c))):null});bt.displayName="Chatbar.Row";var Rt=e.forwardRef((t,o)=>{let{className:a,...c}=t;return e.createElement("div",{...c,ref:o,className:T("rt-ChatbarRowStart",a)})});Rt.displayName="Chatbar.RowStart";var Ct=e.forwardRef((t,o)=>{let{className:a,...c}=t;return e.createElement("div",{...c,ref:o,className:T("rt-ChatbarRowEnd",a)})});Ct.displayName="Chatbar.RowEnd";var gt=e.forwardRef((t,o)=>{let{asChild:a,clearOnSend:c,disabled:i,children:l,style:d,className:u,size:f,variant:b,emphasis:g,tabIndex:v,onClick:C,status:w="ready",onStop:H,onRetry:R,stopLabel:E="Stop",retryLabel:B="Retry",stopIcon:A,retryIcon:I,"aria-label":M,"aria-labelledby":N,...J}=t,h=O(),Q=e.useContext(We),F=Ve(Q)||h.attachments.length>0,P=F?"send":w==="submitted"||w==="streaming"?"stop":w==="error"?"retry":"send";if(h.sendMode==="never"&&P==="send")return null;let z=P!=="send"||h.sendMode==="always"||F,j=P==="send"?i||h.disabled||h.readOnly||!F:i||h.disabled,_=P==="stop"?{"aria-label":E}:P==="retry"?{"aria-label":B}:N?{"aria-labelledby":N}:{"aria-label":M??"Send"},V=L=>{if(C?.(L),L.defaultPrevented||j)return;if(P==="stop"){H?.();return}if(P==="retry"){R?.();return}let D=c??h.clearOnSubmit;h.submit(D)&&D&&h.textareaRef.current?.focus({preventScroll:!0})},q=P==="stop"?A??(w==="submitted"?e.createElement(ze,{size:h.size}):e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},e.createElement("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2"}))):P==="retry"?I??e.createElement("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":!0},e.createElement("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),e.createElement("path",{d:"M3 3v5h5"})):l??e.createElement("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":!0},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"}));return e.createElement(Be,{...J,ref:o,size:f??h.size,...g?{emphasis:g}:{variant:b??(h.open||P!=="send"?"solid":"ghost")},disabled:j,className:T("rt-ChatbarSend",u),style:{opacity:z?1:0,pointerEvents:z?void 0:"none",...d},"aria-hidden":z?void 0:!0,tabIndex:z?v:-1,asChild:a,onClick:V,"data-status":w,"data-mode":P,..._},q)});gt.displayName="Chatbar.Send";export{ct as a,it as b,lt as c,dt as d,ut as e,$e as f,ht as g,ft as h,bt as i,Rt as j,Ct as k,gt as l,jt as m};
|
|
2
|
+
//# sourceMappingURL=chunk-4FQLRQKJ.js.map
|
|
@@ -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 { 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 { NoticeSizeContext } from './notice.js';\nimport { Spinner } from './spinner.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';\nimport type { ButtonRankProps } from './button.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\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?: 'raised' | 'surface' | 'outline' | '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 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 /**\n * Messages that need an answer before the next message, such as `Notice` and `Confirmation`.\n * They stack in a column above the chatbar, in the order given, so put the one the next\n * message answers last, nearest the text. They sit outside the box: a button in a notice never\n * submits the message, and pressing one never collapses the chatbar.\n */\n notices?: React.ReactNode;\n /**\n * Short facts that stay true about the conversation, such as the model or the context left.\n * They sit below the chatbar, inset from its sides.\n */\n context?: React.ReactNode;\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 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 notices,\n context,\n ...divProps\n } = props;\n const effectiveMaterial = material;\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 <>\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-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 {notices ? (\n <div className=\"rt-ChatbarNotices\">\n <NoticeSizeContext.Provider value={size}>{notices}</NoticeSizeContext.Provider>\n </div>\n ) : null}\n <div {...(dropzone ? getRootProps() : {})} style={{ width: '100%', flex: '1 1 auto', minHeight: 0 }} onPointerDown={handleContainerPointerDown}>\n <div\n className={classNames('rt-ChatbarBox', `rt-variant-${variant ?? 'raised'}`)}\n style={{ position: 'relative' }}\n data-accent-color={color}\n data-radius={radius}\n data-material={effectiveMaterial}\n >\n <div className=\"rt-ChatbarGrid\">\n {children}\n </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 </div>\n </div>\n {context ? (\n <Text as=\"div\" size={size === '3' ? '2' : '1'} emphasis=\"medium\" className=\"rt-ChatbarContext\">\n {context}\n </Text>\n ) : null}\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 </>\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 <div className={classNames('rt-ChatbarField', 'rt-ChatbarTextarea', className)}>\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 </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 * `Chatbar.Item`s passed as children follow the attachments in the same row.\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 /** `Chatbar.Item`s: things the message refers to that are not files. */\n children?: React.ReactNode;\n}\n\nconst AttachmentsRow = React.forwardRef<HTMLDivElement, AttachmentsRowProps>((props, forwardedRef) => {\n const { asChild, forceMount, renderAttachment, className, children, ...divProps } = props;\n const ctx = useChatbarContext();\n const hasItems = React.Children.toArray(children).length > 0;\n if (ctx.attachments.length === 0 && !hasItems && !forceMount) return null;\n const Comp = asChild ? Slot : 'div';\n return (\n <div>\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 {children}\n </Flex>\n </ScrollArea>\n </Comp>\n </div>\n );\n});\nAttachmentsRow.displayName = 'Chatbar.AttachmentsRow';\n\n/**\n * Moves focus off a pill that is about to unmount, to the next pill's remove\n * button, the previous one's, or the text, so keyboard users are not dropped\n * to <body>.\n */\nfunction moveFocusOffPill(button: HTMLButtonElement, textareaRef: React.RefObject<HTMLTextAreaElement | null>) {\n const pill = button.closest('[role=\"listitem\"]');\n const pills = pill?.parentElement ? Array.from(pill.parentElement.children) : [];\n const index = pill ? pills.indexOf(pill) : -1;\n const neighbour = pills[index + 1] ?? pills[index - 1];\n const nextButton = neighbour?.querySelector<HTMLButtonElement>('.rt-ChatbarItemRemove');\n if (nextButton) nextButton.focus();\n else textareaRef.current?.focus({ preventScroll: true });\n}\n\n/** The pill an attachment and an item share: a lead tile, a label and \u00D7. */\nconst Pill: React.FC<{\n lead: React.ReactNode;\n leadKind: 'image' | 'icon';\n label: React.ReactNode;\n /** Read after the label by screen readers only, e.g. a file's size. */\n detail?: string;\n removeLabel: string;\n onRemove?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}> = ({ lead, leadKind, label, detail, removeLabel, onRemove }) => {\n const ctx = useChatbarContext();\n return (\n <>\n <span className=\"rt-ChatbarItemLead\" data-kind={leadKind} aria-hidden>\n {lead}\n </span>\n <Text className=\"rt-ChatbarItemLabel\" size={ctx.size} truncate>\n {label}\n {detail ? <VisuallyHidden>, {detail}</VisuallyHidden> : null}\n </Text>\n {onRemove && (\n <IconButton className=\"rt-ChatbarItemRemove\" aria-label={removeLabel} size=\"1\" variant=\"ghost\" color=\"gray\" onClick={onRemove}>\n <CloseIcon />\n </IconButton>\n )}\n </>\n );\n};\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 moveFocusOffPill(event.currentTarget, ctx.textareaRef);\n ctx.removeAttachment(attachment.id);\n };\n\n const lead =\n attachment.status === 'uploading' ? (\n <Spinner size=\"1\" />\n ) : isImage ? (\n <img className=\"rt-ChatbarAttachmentImage\" src={attachment.url} alt=\"\" />\n ) : (\n <FileTextIcon />\n );\n\n return (\n <Comp\n {...divProps}\n ref={forwardedRef}\n className={classNames(children ? 'rt-ChatbarAttachment' : 'rt-ChatbarAttachment rt-ChatbarItem', className)}\n role=\"listitem\"\n data-kind={isImage ? 'image' : 'file'}\n data-status={attachment.status}\n title={attachment.name}\n >\n {children ?? (\n <Pill\n lead={lead}\n leadKind={isImage && attachment.status !== 'uploading' ? 'image' : 'icon'}\n label={attachment.name}\n detail={statusLabel ? `${sizeLabel}, ${statusLabel}` : sizeLabel}\n removeLabel={`Remove ${attachment.name}`}\n onRemove={locked ? undefined : handleRemove}\n />\n )}\n </Comp>\n );\n});\nAttachment.displayName = 'Chatbar.Attachment';\n\n/**\n * Something the message refers to that is not a file: a scene object, a\n * picked mode, a selection. The same pill as an attachment, placed in\n * `Chatbar.AttachmentsRow` as a child. The app owns the list, so removing one\n * calls `onRemove` and nothing else; leave it out for a pill that cannot be\n * removed.\n */\ninterface ItemProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'children' | 'color'> {\n /** The label. Also names the remove button: \"Remove {label}\". */\n children: string;\n /** Drawn in the lead tile, tinted with `color`. */\n icon?: React.ReactNode;\n /** A thumbnail for the lead tile, in place of the icon. */\n image?: string;\n /** Tint of the icon tile. Defaults to gray. */\n color?: (typeof accentColors)[number];\n onRemove?: () => void;\n /** Overrides the remove button's label. */\n removeLabel?: string;\n}\n\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>((props, forwardedRef) => {\n const { children, icon, image, color, onRemove, removeLabel, className, ...divProps } = props;\n const ctx = useChatbarContext();\n const locked = ctx.disabled || ctx.readOnly;\n\n const handleRemove = onRemove\n ? (event: React.MouseEvent<HTMLButtonElement>) => {\n moveFocusOffPill(event.currentTarget, ctx.textareaRef);\n onRemove();\n }\n : undefined;\n\n return (\n <div\n {...divProps}\n ref={forwardedRef}\n className={classNames('rt-ChatbarItem', className)}\n role=\"listitem\"\n data-accent-color={image ? undefined : (color ?? 'gray')}\n title={children}\n >\n <Pill\n lead={image ? <img className=\"rt-ChatbarAttachmentImage\" src={image} alt=\"\" /> : icon}\n leadKind={image ? 'image' : 'icon'}\n label={children}\n removeLabel={removeLabel ?? `Remove ${children}`}\n onRemove={locked ? undefined : handleRemove}\n />\n </div>\n );\n});\nItem.displayName = 'Chatbar.Item';\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 <div>\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 </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 SendStatus = 'ready' | 'submitted' | 'streaming' | 'error';\n\ntype SendProps = Omit<IconButtonProps, 'aria-label' | 'aria-labelledby' | 'variant' | 'emphasis'> &\n ButtonRankProps & {\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 * What the button means. `ready` sends. While a reply is `submitted` or `streaming` and the\n * box is empty, the button STOPS the reply (`onStop`); with a draft in the box it still sends,\n * and the app decides whether sending interrupts the reply. After an `error`, an empty box\n * makes it RETRY (`onRetry`). Default `ready`.\n */\n status?: SendStatus;\n /** Called when the button is pressed to stop a reply. */\n onStop?: () => void;\n /** Called when the button is pressed to retry after an error. */\n onRetry?: () => void;\n /** Accessible name while it stops. Default \"Stop\". */\n stopLabel?: string;\n /** Accessible name while it retries. Default \"Retry\". */\n retryLabel?: string;\n /** Glyph while it stops. Defaults to a square, or a spinner while `submitted`. */\n stopIcon?: React.ReactNode;\n /** Glyph while it retries. */\n retryIcon?: React.ReactNode;\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, emphasis,\n tabIndex,\n onClick,\n status = 'ready',\n onStop,\n onRetry,\n stopLabel = 'Stop',\n retryLabel = 'Retry',\n stopIcon,\n retryIcon,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...buttonProps\n } = props;\n const ctx = useChatbarContext();\n const value = React.useContext(ChatbarValueContext);\n\n const hasContent = hasText(value) || ctx.attachments.length > 0;\n const running = status === 'submitted' || status === 'streaming';\n const mode: 'send' | 'stop' | 'retry' = hasContent ? 'send' : running ? 'stop' : status === 'error' ? 'retry' : 'send';\n\n if (ctx.sendMode === 'never' && mode === 'send') return null;\n\n const visible = mode !== 'send' || ctx.sendMode === 'always' || hasContent;\n const inactive = mode === 'send' ? disabled || ctx.disabled || ctx.readOnly || !hasContent : disabled || ctx.disabled;\n\n const sendName = ariaLabel ?? 'Send';\n const labelProps: { 'aria-label': string } | { 'aria-labelledby': string } =\n mode === 'stop' ? { 'aria-label': stopLabel } : mode === 'retry' ? { 'aria-label': retryLabel } : ariaLabelledby ? { 'aria-labelledby': ariaLabelledby } : { 'aria-label': sendName };\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (event.defaultPrevented || inactive) return;\n if (mode === 'stop') {\n onStop?.();\n return;\n }\n if (mode === 'retry') {\n onRetry?.();\n return;\n }\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 const glyph =\n mode === 'stop' ? (\n stopIcon ?? (status === 'submitted' ? <Spinner size={ctx.size} /> : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden>\n <rect x=\"7\" y=\"7\" width=\"10\" height=\"10\" rx=\"2\" />\n </svg>\n ))\n ) : mode === 'retry' ? (\n retryIcon ?? (\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=\"M3 12a9 9 0 1 0 3-6.7L3 8\" />\n <path d=\"M3 3v5h5\" />\n </svg>\n )\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 );\n\n return (\n <IconButton\n {...buttonProps}\n ref={forwardedRef}\n size={sizeProp ?? ctx.size}\n {...(emphasis ? { emphasis } : { variant: variantProp ?? (ctx.open || mode !== 'send' ? '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 data-status={status}\n data-mode={mode}\n {...labelProps}\n >\n {glyph}\n </IconButton>\n );\n});\nSend.displayName = 'Chatbar.Send';\n\nexport { Root, Textarea, InlineStart, InlineEnd, AttachmentsRow, Attachment, Item, 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 ItemProps as ChatbarItemProps,\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 SendStatus as ChatbarSendStatus,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["chatbar_exports", "__export", "AttachTrigger", "Attachment", "AttachmentsRow", "InlineEnd", "InlineStart", "Item", "Root", "Row", "RowEnd", "RowStart", "Send", "Textarea", "React", "classNames", "useComposedRefs", "useDropzone", "useIsomorphicLayoutEffect", "withoutPlaceholder", "el", "measure", "placeholder", "ChatbarContext", "ChatbarValueContext", "useChatbarContext", "ctx", "toArray", "val", "s", "matchesAccept", "file", "patterns", "mime", "name", "patRaw", "pat", "type", "subtype", "fmType", "fmSubtype", "IMAGE_EXT_RE", "isImageLike", "hasText", "value", "plural", "n", "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", "material", "width", "maxWidth", "attachmentsProp", "defaultAttachments", "onAttachmentsChange", "accept", "multiple", "maxAttachments", "maxFileSize", "paste", "pasteAccept", "clearOnSubmit", "onAttachmentReject", "dropzone", "apiRef", "onBlurCapture", "notices", "context", "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", "classNames", "NoticeSizeContext", "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", "hasItems", "ScrollArea", "Flex", "Attachment", "moveFocusOffPill", "button", "pill", "pills", "index", "nextButton", "Pill", "lead", "leadKind", "label", "detail", "removeLabel", "onRemove", "IconButton", "CloseIcon", "STATUS_LABEL", "attachment", "isImage", "sizeLabel", "statusLabel", "locked", "handleRemove", "Spinner", "FileTextIcon", "Item", "icon", "image", "AttachTrigger", "disabledProp", "onPointerDown", "onClick", "buttonProps", "Row", "RowStart", "RowEnd", "Send", "clearOnSend", "sizeProp", "variantProp", "emphasis", "tabIndex", "status", "onStop", "onRetry", "stopLabel", "retryLabel", "stopIcon", "retryIcon", "ariaLabel", "ariaLabelledby", "hasContent", "mode", "visible", "inactive", "labelProps", "handleClick", "glyph"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as t}from"./chunk-FD2TR343.js";import{a as p}from"./chunk-WYADYDPN.js";import{a as s}from"./chunk-ZE2KAVXW.js";import{b as e}from"./chunk-ZWZGUBL4.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{c as r}from"./chunk-34KVYDF6.js";var f=["0","1","2","3","4","5","6","7","8","9","10","11","12"],n={...o,size:{type:"enum",className:"rt-r-size",values:f,responsive:!0},...t,...r,...e,...s,...p};export{n as a};
|
|
2
|
+
//# sourceMappingURL=chunk-5AHQJB6H.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/components/blockquote.props.tsx"],
|
|
4
|
-
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { emphasisPropDef } from '../props/emphasis.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;\n\nconst blockquotePropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n ...weightPropDef,\n ...colorPropDef,\n ...emphasisPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { blockquotePropDefs };\n"],
|
|
5
|
-
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,
|
|
4
|
+
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { emphasisPropDef } from '../props/emphasis.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 = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst blockquotePropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n responsive: true,\n },\n ...weightPropDef,\n ...colorPropDef,\n ...emphasisPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { blockquotePropDefs };\n"],
|
|
5
|
+
"mappings": "gPASA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EAE3EC,EAAqB,CACzB,GAAGC,EACH,KAAM,CACJ,KAAM,OACN,UAAW,YACX,OAAQF,EACR,WAAY,EACd,EACA,GAAGG,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,CACL",
|
|
6
6
|
"names": ["sizes", "blockquotePropDefs", "asChildPropDef", "weightPropDef", "colorPropDef", "emphasisPropDef", "truncatePropDef", "textWrapPropDef"]
|
|
7
7
|
}
|