@womp/kookie-ui 0.13.3 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.css +1052 -302
- 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 +4 -2
- 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 +4 -2
- 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 +2 -2
- package/dist/cjs/components/_internal/base-menu.props.js +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +2 -2
- 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 +4 -2
- 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 +7 -1
- 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 +2 -2
- package/dist/cjs/components/_internal/menu-context.js +1 -1
- package/dist/cjs/components/_internal/menu-context.js.map +2 -2
- package/dist/cjs/components/_internal/pane-chrome.d.ts +47 -0
- package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -0
- package/dist/cjs/components/_internal/pane-chrome.js +2 -0
- package/dist/cjs/components/_internal/pane-chrome.js.map +7 -0
- package/dist/cjs/components/_internal/shell-sidebar.d.ts +2 -1
- 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 +4 -4
- package/dist/cjs/components/accordion.js +1 -1
- package/dist/cjs/components/accordion.js.map +4 -4
- package/dist/cjs/components/accordion.props.d.ts +5 -3
- package/dist/cjs/components/accordion.props.d.ts.map +1 -1
- package/dist/cjs/components/accordion.props.js +1 -1
- package/dist/cjs/components/accordion.props.js.map +4 -4
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +2 -2
- package/dist/cjs/components/app-bar.d.ts +1 -0
- package/dist/cjs/components/app-bar.d.ts.map +1 -1
- package/dist/cjs/components/app-bar.js +1 -1
- package/dist/cjs/components/app-bar.js.map +4 -4
- package/dist/cjs/components/avatar.js +1 -1
- package/dist/cjs/components/avatar.js.map +4 -4
- package/dist/cjs/components/avatar.props.d.ts +4 -2
- package/dist/cjs/components/avatar.props.d.ts.map +1 -1
- package/dist/cjs/components/avatar.props.js +1 -1
- package/dist/cjs/components/avatar.props.js.map +4 -4
- package/dist/cjs/components/badge.js +1 -1
- package/dist/cjs/components/badge.js.map +4 -4
- package/dist/cjs/components/badge.props.d.ts +4 -2
- package/dist/cjs/components/badge.props.d.ts.map +1 -1
- package/dist/cjs/components/badge.props.js +1 -1
- package/dist/cjs/components/badge.props.js.map +4 -4
- package/dist/cjs/components/blockquote.js +1 -1
- package/dist/cjs/components/blockquote.js.map +1 -1
- package/dist/cjs/components/blockquote.props.js +1 -1
- package/dist/cjs/components/blockquote.props.js.map +1 -1
- package/dist/cjs/components/button.d.ts +5 -0
- package/dist/cjs/components/button.d.ts.map +1 -1
- package/dist/cjs/components/button.js +4 -1
- package/dist/cjs/components/button.js.map +4 -4
- package/dist/cjs/components/button.props.js +1 -1
- package/dist/cjs/components/button.props.js.map +4 -4
- package/dist/cjs/components/callout.d.ts +1 -0
- package/dist/cjs/components/callout.d.ts.map +1 -1
- package/dist/cjs/components/callout.js +1 -1
- package/dist/cjs/components/callout.js.map +4 -4
- package/dist/cjs/components/callout.props.d.ts +4 -2
- package/dist/cjs/components/callout.props.d.ts.map +1 -1
- package/dist/cjs/components/callout.props.js +1 -1
- package/dist/cjs/components/callout.props.js.map +4 -4
- package/dist/cjs/components/card.js +1 -1
- package/dist/cjs/components/card.js.map +4 -4
- package/dist/cjs/components/card.props.d.ts +4 -2
- 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 +2 -1
- 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 +10 -2
- 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 +3 -2
- package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/cjs/components/checkbox-group.props.js +1 -1
- package/dist/cjs/components/checkbox-group.props.js.map +4 -4
- package/dist/cjs/components/checkbox.js +1 -1
- package/dist/cjs/components/checkbox.js.map +4 -4
- package/dist/cjs/components/checkbox.props.js +1 -1
- package/dist/cjs/components/checkbox.props.js.map +4 -4
- package/dist/cjs/components/code.js +1 -1
- package/dist/cjs/components/code.js.map +3 -3
- package/dist/cjs/components/code.props.js +1 -1
- package/dist/cjs/components/code.props.js.map +3 -3
- package/dist/cjs/components/combobox.d.ts +0 -16
- 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 +6 -4
- 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 +2 -1
- 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 +2 -2
- package/dist/cjs/components/data-list.js +1 -1
- package/dist/cjs/components/data-list.js.map +1 -1
- package/dist/cjs/components/data-list.props.js +1 -1
- package/dist/cjs/components/data-list.props.js.map +1 -1
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +2 -2
- package/dist/cjs/components/dropdown-menu.d.ts +2 -1
- 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 +2 -2
- package/dist/cjs/components/heading.js +1 -1
- package/dist/cjs/components/heading.js.map +1 -1
- package/dist/cjs/components/heading.props.js +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 +2 -2
- package/dist/cjs/components/icon-button.d.ts +2 -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/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 +4 -2
- 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 +1 -1
- package/dist/cjs/components/link.props.js +1 -1
- package/dist/cjs/components/link.props.js.map +1 -1
- package/dist/cjs/components/message-scroller.js +2 -2
- package/dist/cjs/components/message-scroller.js.map +4 -4
- package/dist/cjs/components/navbar.js +1 -1
- package/dist/cjs/components/navbar.js.map +2 -2
- package/dist/cjs/components/navbar.props.d.ts +1 -1
- package/dist/cjs/components/navbar.props.js +1 -1
- package/dist/cjs/components/navbar.props.js.map +2 -2
- 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 +6 -0
- 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 +2 -2
- package/dist/cjs/components/progress.js +1 -1
- package/dist/cjs/components/progress.js.map +1 -1
- package/dist/cjs/components/progress.props.js +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 +10 -2
- 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 +4 -2
- package/dist/cjs/components/radio-group.props.d.ts.map +1 -1
- package/dist/cjs/components/radio-group.props.js +1 -1
- package/dist/cjs/components/radio-group.props.js.map +4 -4
- package/dist/cjs/components/radio.js +1 -1
- package/dist/cjs/components/radio.js.map +4 -4
- package/dist/cjs/components/radio.props.js +1 -1
- package/dist/cjs/components/radio.props.js.map +4 -4
- package/dist/cjs/components/schemas/base-button.schema.d.ts +2 -1
- 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 +2 -1
- 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 +2 -1
- 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/toggle-button.schema.d.ts +2 -1
- 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 +2 -1
- 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 +5 -1
- 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 +2 -2
- 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 +11 -5
- package/dist/cjs/components/select.props.d.ts.map +1 -1
- package/dist/cjs/components/select.props.js +1 -1
- package/dist/cjs/components/select.props.js.map +4 -4
- package/dist/cjs/components/separator.js +1 -1
- package/dist/cjs/components/separator.js.map +1 -1
- package/dist/cjs/components/separator.props.js +1 -1
- package/dist/cjs/components/separator.props.js.map +1 -1
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +2 -2
- package/dist/cjs/components/shell.d.ts +5 -1
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +4 -4
- package/dist/cjs/components/sidebar.d.ts +4 -0
- package/dist/cjs/components/sidebar.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/sidebar.props.d.ts +1 -0
- package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
- package/dist/cjs/components/sidebar.props.js +1 -1
- package/dist/cjs/components/sidebar.props.js.map +2 -2
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +1 -1
- package/dist/cjs/components/slider.props.js +1 -1
- package/dist/cjs/components/slider.props.js.map +1 -1
- package/dist/cjs/components/switch.js +1 -1
- package/dist/cjs/components/switch.js.map +1 -1
- package/dist/cjs/components/switch.props.js +1 -1
- package/dist/cjs/components/switch.props.js.map +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 +6 -4
- 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 +6 -4
- 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 +1 -1
- package/dist/cjs/components/text.js.map +1 -1
- package/dist/cjs/components/text.props.js +1 -1
- package/dist/cjs/components/text.props.js.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.js +1 -1
- package/dist/cjs/components/theme.js.map +2 -2
- package/dist/cjs/components/theme.props.d.ts +4 -4
- package/dist/cjs/components/theme.props.js +1 -1
- package/dist/cjs/components/theme.props.js.map +2 -2
- package/dist/cjs/components/toggle-button.d.ts.map +1 -1
- package/dist/cjs/components/toggle-button.js +5 -2
- package/dist/cjs/components/toggle-button.js.map +4 -4
- package/dist/cjs/components/toggle-icon-button.d.ts +2 -1
- 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.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 +2 -2
- package/dist/cjs/components/user-card.d.ts +1 -0
- package/dist/cjs/components/user-card.d.ts.map +1 -1
- package/dist/cjs/components/user-card.js +1 -1
- package/dist/cjs/components/user-card.js.map +4 -4
- package/dist/cjs/components/user-card.props.d.ts +5 -3
- package/dist/cjs/components/user-card.props.d.ts.map +1 -1
- package/dist/cjs/components/user-card.props.js +1 -1
- package/dist/cjs/components/user-card.props.js.map +4 -4
- package/dist/cjs/components/virtual-menu.js +1 -1
- package/dist/cjs/components/virtual-menu.js.map +2 -2
- package/dist/cjs/helpers/parse-variant.d.ts +8 -0
- package/dist/cjs/helpers/parse-variant.d.ts.map +1 -0
- package/dist/cjs/helpers/parse-variant.js +2 -0
- package/dist/cjs/helpers/parse-variant.js.map +7 -0
- package/dist/cjs/helpers/warn-deprecated.d.ts +7 -0
- package/dist/cjs/helpers/warn-deprecated.d.ts.map +1 -0
- package/dist/cjs/helpers/warn-deprecated.js +2 -0
- package/dist/cjs/helpers/warn-deprecated.js.map +7 -0
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/color.prop.d.ts +8 -1
- package/dist/cjs/props/color.prop.d.ts.map +1 -1
- package/dist/cjs/props/color.prop.js +1 -1
- package/dist/cjs/props/color.prop.js.map +3 -3
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +4 -4
- package/dist/esm/chunk-27SCVCQY.js +2 -0
- package/dist/esm/chunk-27SCVCQY.js.map +7 -0
- package/dist/esm/chunk-2C5WLKEZ.js +2 -0
- package/dist/esm/chunk-2C5WLKEZ.js.map +7 -0
- package/dist/esm/chunk-2D5QJ6MX.js +2 -0
- package/dist/esm/chunk-2D5QJ6MX.js.map +7 -0
- package/dist/esm/chunk-2DKLJMUU.js +2 -0
- package/dist/esm/chunk-2DKLJMUU.js.map +7 -0
- package/dist/esm/chunk-2T74JEVN.js +2 -0
- package/dist/esm/chunk-2T74JEVN.js.map +7 -0
- package/dist/esm/{chunk-XVYTOZES.js → chunk-34UMKY2L.js} +2 -2
- package/dist/esm/chunk-3DEZMXFF.js +5 -0
- package/dist/esm/chunk-3DEZMXFF.js.map +7 -0
- package/dist/esm/{chunk-4XKK32M4.js → chunk-3HGHPAH4.js} +2 -2
- package/dist/esm/chunk-3M73GWN5.js +2 -0
- package/dist/esm/chunk-3M73GWN5.js.map +7 -0
- package/dist/esm/{chunk-C34HCTGS.js → chunk-3Q3EOUGJ.js} +2 -2
- package/dist/esm/chunk-3TIO3EMN.js +2 -0
- package/dist/esm/chunk-3TIO3EMN.js.map +7 -0
- package/dist/esm/{chunk-4ME6O27S.js → chunk-3UZHKW6I.js} +2 -2
- package/dist/esm/{chunk-AF6XKU3W.js → chunk-3WCSLQNH.js} +2 -2
- package/dist/esm/{chunk-DD6SJPOU.js → chunk-45AMHIBO.js} +2 -2
- package/dist/esm/chunk-47CEZJM2.js +2 -0
- package/dist/esm/chunk-47CEZJM2.js.map +7 -0
- package/dist/esm/chunk-4BPRLR6C.js +2 -0
- package/dist/esm/chunk-4BPRLR6C.js.map +7 -0
- package/dist/esm/{chunk-54JFIP5S.js → chunk-4D5LR4H6.js} +2 -2
- package/dist/esm/chunk-4D5LR4H6.js.map +7 -0
- package/dist/esm/{chunk-CIYF56YS.js → chunk-4JNHUPIM.js} +2 -2
- package/dist/esm/chunk-4WLDX7WZ.js +2 -0
- package/dist/esm/chunk-4WLDX7WZ.js.map +7 -0
- package/dist/esm/{chunk-OJU5GCDZ.js → chunk-5G4WWJ4Z.js} +2 -2
- package/dist/esm/chunk-5JS7ADWX.js +2 -0
- package/dist/esm/chunk-5JS7ADWX.js.map +7 -0
- package/dist/esm/{chunk-AGNIFHOE.js → chunk-62CJL5G7.js} +2 -2
- package/dist/esm/{chunk-Y5RCH23Z.js → chunk-6JP5PIOO.js} +2 -2
- package/dist/esm/{chunk-ZO7TTWJI.js → chunk-77TGP2LO.js} +2 -2
- package/dist/esm/chunk-7B6CIVAF.js +2 -0
- package/dist/esm/chunk-7B6CIVAF.js.map +7 -0
- package/dist/esm/chunk-7YIQV7VO.js +2 -0
- package/dist/esm/chunk-7YIQV7VO.js.map +7 -0
- package/dist/esm/chunk-7ZOGH5NT.js +2 -0
- package/dist/esm/chunk-7ZOGH5NT.js.map +7 -0
- package/dist/esm/chunk-AVFGMLL4.js +2 -0
- package/dist/esm/chunk-AVFGMLL4.js.map +7 -0
- package/dist/esm/{chunk-4LDVSTXI.js → chunk-BKES3M4Y.js} +2 -2
- package/dist/esm/chunk-BOFVKXUV.js +2 -0
- package/dist/esm/chunk-BOFVKXUV.js.map +7 -0
- package/dist/esm/{chunk-VX6ARMWP.js → chunk-C7UXUTUF.js} +2 -2
- package/dist/esm/{chunk-2I7QRVJ5.js → chunk-CIKDGYX3.js} +2 -2
- package/dist/esm/chunk-CL6P54QT.js +5 -0
- package/dist/esm/chunk-CL6P54QT.js.map +7 -0
- package/dist/esm/{chunk-5XV4QEP5.js → chunk-CMEKH4I5.js} +2 -2
- package/dist/esm/chunk-CSUEZWN5.js +2 -0
- package/dist/esm/chunk-CSUEZWN5.js.map +7 -0
- package/dist/esm/{chunk-JUJYMZ2F.js → chunk-DJA5MCJA.js} +2 -2
- package/dist/esm/chunk-DVSXWSAT.js +2 -0
- package/dist/esm/chunk-DVSXWSAT.js.map +7 -0
- package/dist/esm/chunk-E7LJHM3S.js +2 -0
- package/dist/esm/chunk-E7LJHM3S.js.map +7 -0
- package/dist/esm/{chunk-4YFJWXL2.js → chunk-EUSMN3K7.js} +2 -2
- package/dist/esm/{chunk-VICP2RNA.js → chunk-FISGGGPC.js} +2 -2
- package/dist/esm/chunk-FNB47XDO.js +2 -0
- package/dist/esm/chunk-FNB47XDO.js.map +7 -0
- package/dist/esm/{chunk-KFR3CK24.js → chunk-GLKN32J3.js} +2 -2
- package/dist/esm/{chunk-COWZAUZR.js → chunk-GONBMSRL.js} +2 -2
- package/dist/esm/chunk-GRRV4I2I.js +2 -0
- package/dist/esm/chunk-GRRV4I2I.js.map +7 -0
- package/dist/esm/chunk-H7LHGT44.js +2 -0
- package/dist/esm/chunk-H7LHGT44.js.map +7 -0
- package/dist/esm/{chunk-GO7OHBHW.js → chunk-HFVD7W6R.js} +2 -2
- package/dist/esm/{chunk-SAJY4H6J.js → chunk-HIBX2EXV.js} +2 -2
- package/dist/esm/{chunk-VZSQATP6.js → chunk-HJLBVNQE.js} +2 -2
- package/dist/esm/{chunk-JDGJSNWT.js → chunk-HNO4X33C.js} +2 -2
- package/dist/esm/chunk-IHRLGR6J.js +2 -0
- package/dist/esm/chunk-IHRLGR6J.js.map +7 -0
- package/dist/esm/{chunk-E67CIG6A.js → chunk-IPHKKZYE.js} +2 -2
- package/dist/esm/{chunk-7R73ISNJ.js → chunk-IQU6EELI.js} +3 -3
- package/dist/esm/{chunk-PZ7OYATT.js → chunk-IV4YJRVR.js} +2 -2
- package/dist/esm/{chunk-S5C5YRBS.js → chunk-IVBKTHDM.js} +2 -2
- package/dist/esm/chunk-IY3GKGDZ.js +2 -0
- package/dist/esm/chunk-IY3GKGDZ.js.map +7 -0
- package/dist/esm/chunk-JTN3KTAS.js +2 -0
- package/dist/esm/chunk-JTN3KTAS.js.map +7 -0
- package/dist/esm/{chunk-RNTCHVFI.js → chunk-JXVUTFQN.js} +2 -2
- package/dist/esm/{chunk-VR7ZAFYN.js → chunk-K7BWSYVP.js} +2 -2
- package/dist/esm/{chunk-2CMM7MEL.js → chunk-KJC32RWT.js} +2 -2
- package/dist/esm/{chunk-2CMM7MEL.js.map → chunk-KJC32RWT.js.map} +2 -2
- package/dist/esm/{chunk-5WRCK4R7.js → chunk-KJTEZVOF.js} +2 -2
- package/dist/esm/{chunk-OGXZHAQL.js → chunk-KXSMY4ZF.js} +2 -2
- package/dist/esm/{chunk-MS5J4MF6.js → chunk-LJXP6K5Y.js} +2 -2
- package/dist/esm/{chunk-CSKZZOI2.js → chunk-N6Q3L64W.js} +2 -2
- package/dist/esm/chunk-O2RISF37.js +2 -0
- package/dist/esm/chunk-O2RISF37.js.map +7 -0
- package/dist/esm/{chunk-YBSRX63K.js → chunk-O2WPAUQN.js} +2 -2
- package/dist/esm/{chunk-HJU4I34X.js → chunk-OB3MHLQL.js} +2 -2
- package/dist/esm/chunk-OJSDBLP7.js +2 -0
- package/dist/esm/chunk-OJSDBLP7.js.map +7 -0
- package/dist/esm/chunk-OUSDYZDE.js +2 -0
- package/dist/esm/chunk-OUSDYZDE.js.map +7 -0
- package/dist/esm/chunk-OVGPUFRI.js +2 -0
- package/dist/esm/chunk-OVGPUFRI.js.map +7 -0
- package/dist/esm/{chunk-NIIEIZKQ.js → chunk-OW4KAIWF.js} +2 -2
- package/dist/esm/{chunk-HF5WY5YE.js → chunk-PAEHH3WS.js} +2 -2
- package/dist/esm/chunk-PLTTQFRQ.js +2 -0
- package/dist/esm/chunk-PLTTQFRQ.js.map +7 -0
- package/dist/esm/{chunk-FHOCUZDR.js → chunk-PXUQEA77.js} +2 -2
- package/dist/esm/{chunk-7UHKEJ7Q.js → chunk-R2MQMCND.js} +2 -2
- package/dist/esm/{chunk-64PFYID5.js → chunk-RAVFUI7W.js} +2 -2
- package/dist/esm/chunk-ROGC7K5N.js +2 -0
- package/dist/esm/chunk-ROGC7K5N.js.map +7 -0
- package/dist/esm/chunk-RON6FXLO.js +2 -0
- package/dist/esm/chunk-RON6FXLO.js.map +7 -0
- package/dist/esm/{chunk-CDG5WH4U.js → chunk-RUOOCYK4.js} +2 -2
- package/dist/esm/{chunk-36A5BYCN.js → chunk-RUPET4E7.js} +2 -2
- package/dist/esm/chunk-RWN22S44.js +2 -0
- package/dist/esm/{chunk-7NVLCYCL.js → chunk-S3GZZXQ7.js} +2 -2
- package/dist/esm/{chunk-N4GTDLRD.js → chunk-SGUTNJUO.js} +2 -2
- package/dist/esm/chunk-SIBSXKFF.js +2 -0
- package/dist/esm/chunk-SIBSXKFF.js.map +7 -0
- package/dist/esm/{chunk-GL5QTWYI.js → chunk-SQ4BU4GH.js} +2 -2
- package/dist/esm/chunk-SQZ5O7QS.js +2 -0
- package/dist/esm/chunk-SQZ5O7QS.js.map +7 -0
- package/dist/esm/chunk-SURYYF7I.js +2 -0
- package/dist/esm/chunk-SURYYF7I.js.map +7 -0
- package/dist/esm/{chunk-KOFEFBB3.js → chunk-T6Z4JUH6.js} +2 -2
- package/dist/esm/{chunk-67MKPTZJ.js → chunk-TCEQ5VVE.js} +2 -2
- package/dist/esm/{chunk-ESPWYN5C.js → chunk-TZ5MZQUB.js} +2 -2
- package/dist/esm/{chunk-CRSHBENJ.js → chunk-UBWRIE4C.js} +2 -2
- package/dist/esm/chunk-UE2OBZIS.js +2 -0
- package/dist/esm/chunk-UE2OBZIS.js.map +7 -0
- package/dist/esm/{chunk-ZOY43B55.js → chunk-UK3BFTI2.js} +2 -2
- package/dist/esm/chunk-UTHTSYSL.js +2 -0
- package/dist/esm/chunk-UTHTSYSL.js.map +7 -0
- package/dist/esm/chunk-V3QVAXH3.js +2 -0
- package/dist/esm/chunk-V3QVAXH3.js.map +7 -0
- package/dist/esm/{chunk-KJUDZCYK.js → chunk-VBAXORVV.js} +2 -2
- package/dist/esm/chunk-VJUFYYKP.js +2 -0
- package/dist/esm/{chunk-FC2DBBJ3.js.map → chunk-VJUFYYKP.js.map} +2 -2
- package/dist/esm/{chunk-OTXCKEWT.js → chunk-VJXHEDCE.js} +2 -2
- package/dist/esm/{chunk-IHK3H2OM.js → chunk-VUKTURU4.js} +2 -2
- package/dist/esm/{chunk-NQ3D3UXZ.js → chunk-VV67KTKA.js} +2 -2
- package/dist/esm/chunk-WDNTAQ6G.js +2 -0
- package/dist/esm/chunk-WDNTAQ6G.js.map +7 -0
- package/dist/esm/chunk-WHAKQCNV.js +2 -0
- package/dist/esm/chunk-WHAKQCNV.js.map +7 -0
- package/dist/esm/chunk-WTXQB2EV.js +2 -0
- package/dist/esm/chunk-WTXQB2EV.js.map +7 -0
- package/dist/esm/chunk-WXBTPEFO.js +2 -0
- package/dist/esm/chunk-WXBTPEFO.js.map +7 -0
- package/dist/esm/chunk-XILM2OMC.js +2 -0
- package/dist/esm/chunk-XILM2OMC.js.map +7 -0
- package/dist/esm/chunk-YBS2IB7Z.js +2 -0
- package/dist/esm/chunk-YBS2IB7Z.js.map +7 -0
- package/dist/esm/chunk-YDPCJO5G.js +2 -0
- package/dist/esm/chunk-YDPCJO5G.js.map +7 -0
- package/dist/esm/chunk-YIK4ACXS.js +2 -0
- package/dist/esm/chunk-YIK4ACXS.js.map +7 -0
- package/dist/esm/chunk-YL62I5SI.js +2 -0
- package/dist/esm/{chunk-2OSGPH7E.js → chunk-YLLCCUC7.js} +2 -2
- package/dist/esm/{chunk-ZNK6AH2G.js → chunk-Z4DTHR2S.js} +2 -2
- package/dist/esm/{chunk-ZNK6AH2G.js.map → chunk-Z4DTHR2S.js.map} +3 -3
- package/dist/esm/{chunk-OMGZG52I.js → chunk-ZE2GWHPY.js} +2 -2
- package/dist/esm/{chunk-AGSSWWFI.js → chunk-ZK55O7TN.js} +2 -2
- package/dist/esm/{chunk-YAQBIO2B.js → chunk-ZQVYY7UT.js} +2 -2
- package/dist/esm/chunk-ZVIWTYHE.js +2 -0
- package/dist/esm/chunk-ZVIWTYHE.js.map +7 -0
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.props.d.ts +4 -2
- 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 +4 -2
- 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 +2 -2
- package/dist/esm/components/_internal/base-menu.props.js +1 -1
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.d.ts +4 -2
- 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 +7 -1
- 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.d.ts +47 -0
- package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -0
- package/dist/esm/components/_internal/pane-chrome.js +2 -0
- package/dist/esm/components/_internal/pane-chrome.js.map +7 -0
- 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-sidebar.d.ts +2 -1
- 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/accordion.js +1 -1
- package/dist/esm/components/accordion.props.d.ts +5 -3
- package/dist/esm/components/accordion.props.d.ts.map +1 -1
- package/dist/esm/components/accordion.props.js +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/app-bar.d.ts +1 -0
- package/dist/esm/components/app-bar.d.ts.map +1 -1
- package/dist/esm/components/app-bar.js +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.props.d.ts +4 -2
- package/dist/esm/components/avatar.props.d.ts.map +1 -1
- package/dist/esm/components/avatar.props.js +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.props.d.ts +4 -2
- 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.js +1 -1
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/button.d.ts +5 -0
- 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/callout.d.ts +1 -0
- package/dist/esm/components/callout.d.ts.map +1 -1
- package/dist/esm/components/callout.js +1 -1
- package/dist/esm/components/callout.props.d.ts +4 -2
- package/dist/esm/components/callout.props.d.ts.map +1 -1
- package/dist/esm/components/callout.props.js +1 -1
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.props.d.ts +4 -2
- 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 +2 -1
- 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 +10 -2
- 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 +3 -2
- package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -1
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.js +1 -1
- package/dist/esm/components/combobox.d.ts +0 -16
- 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 +6 -4
- 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 +2 -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.js +1 -1
- package/dist/esm/components/dropdown-menu.d.ts +2 -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/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 +2 -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.js +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 +4 -2
- 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.js +1 -1
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/navbar.props.d.ts +1 -1
- package/dist/esm/components/navbar.props.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 +6 -0
- 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/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 +10 -2
- 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 +4 -2
- package/dist/esm/components/radio-group.props.d.ts.map +1 -1
- package/dist/esm/components/radio-group.props.js +1 -1
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -1
- package/dist/esm/components/schemas/base-button.schema.d.ts +2 -1
- 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 +2 -1
- 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 +2 -1
- 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/toggle-button.schema.d.ts +2 -1
- 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 +2 -1
- 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 +5 -1
- 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 +11 -5
- package/dist/esm/components/select.props.d.ts.map +1 -1
- package/dist/esm/components/select.props.js +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.js +1 -1
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.d.ts +5 -1
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.d.ts +4 -0
- package/dist/esm/components/sidebar.d.ts.map +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/sidebar.props.d.ts +1 -0
- package/dist/esm/components/sidebar.props.d.ts.map +1 -1
- package/dist/esm/components/sidebar.props.js +1 -1
- package/dist/esm/components/skeleton.js +1 -1
- package/dist/esm/components/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/switch.js +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 +6 -4
- 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 +6 -4
- 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.js +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.props.d.ts +4 -4
- 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 +2 -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.js +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/user-card.d.ts +1 -0
- package/dist/esm/components/user-card.d.ts.map +1 -1
- package/dist/esm/components/user-card.js +1 -1
- package/dist/esm/components/user-card.props.d.ts +5 -3
- package/dist/esm/components/user-card.props.d.ts.map +1 -1
- package/dist/esm/components/user-card.props.js +1 -1
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/helpers/parse-variant.d.ts +8 -0
- package/dist/esm/helpers/parse-variant.d.ts.map +1 -0
- package/dist/esm/helpers/parse-variant.js +2 -0
- package/dist/esm/helpers/parse-variant.js.map +7 -0
- package/dist/esm/helpers/warn-deprecated.d.ts +7 -0
- package/dist/esm/helpers/warn-deprecated.d.ts.map +1 -0
- package/dist/esm/helpers/warn-deprecated.js +2 -0
- package/dist/esm/helpers/warn-deprecated.js.map +7 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/color.prop.d.ts +8 -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.js +1 -1
- package/package.json +1 -1
- package/schemas/base-button.json +4 -3
- package/schemas/button.json +4 -3
- package/schemas/icon-button.json +4 -3
- package/schemas/index.json +20 -15
- package/schemas/toggle-button.json +4 -3
- package/schemas/toggle-icon-button.json +4 -3
- package/src/components/_internal/base-button.css +7 -7
- package/src/components/_internal/base-button.props.ts +4 -3
- package/src/components/_internal/base-card.css +2 -2
- package/src/components/_internal/base-checkbox.css +4 -4
- package/src/components/_internal/base-checkbox.props.ts +3 -2
- package/src/components/_internal/base-menu.css +33 -0
- package/src/components/_internal/base-menu.props.ts +1 -1
- package/src/components/_internal/base-radio.css +4 -4
- package/src/components/_internal/base-radio.props.ts +3 -2
- package/src/components/_internal/base-tab-list.css +42 -0
- package/src/components/_internal/base-tab-list.props.ts +4 -1
- package/src/components/_internal/pane-chrome.tsx +90 -0
- package/src/components/_internal/shell-sidebar.tsx +13 -2
- package/src/components/accordion.css +5 -5
- package/src/components/accordion.props.tsx +3 -2
- package/src/components/app-bar.tsx +5 -0
- package/src/components/avatar.css +7 -7
- package/src/components/avatar.props.tsx +5 -4
- package/src/components/badge.css +8 -8
- package/src/components/badge.props.tsx +5 -4
- package/src/components/button.css +1 -1
- package/src/components/button.tsx +37 -2
- package/src/components/callout.css +7 -7
- package/src/components/callout.props.tsx +5 -4
- package/src/components/callout.tsx +5 -0
- package/src/components/card.props.tsx +3 -2
- package/src/components/chatbar.css +4 -4
- package/src/components/chatbar.tsx +4 -2
- package/src/components/checkbox-cards.props.tsx +8 -2
- package/src/components/checkbox-cards.tsx +5 -1
- package/src/components/code.props.tsx +2 -2
- package/src/components/combobox.props.tsx +9 -6
- package/src/components/combobox.tsx +10 -2
- package/src/components/context-menu.tsx +4 -0
- package/src/components/dropdown-menu.tsx +4 -0
- package/src/components/heading.css +1 -1
- package/src/components/icon-button.tsx +4 -48
- package/src/components/kbd.css +24 -24
- package/src/components/kbd.props.tsx +4 -2
- package/src/components/navbar.css +4 -0
- package/src/components/navbar.props.tsx +1 -1
- package/src/components/popover.props.tsx +3 -0
- package/src/components/popover.tsx +5 -1
- package/src/components/radio-cards.props.tsx +8 -2
- package/src/components/radio-cards.tsx +5 -1
- package/src/components/radio-group.props.tsx +5 -2
- package/src/components/schemas/base-button.schema.ts +3 -3
- package/src/components/segmented-control.props.tsx +4 -5
- package/src/components/segmented-control.tsx +12 -0
- package/src/components/select.css +37 -4
- package/src/components/select.props.tsx +9 -9
- package/src/components/select.tsx +8 -2
- package/src/components/shell.css +6 -0
- package/src/components/shell.tsx +24 -3
- package/src/components/sidebar.css +185 -62
- package/src/components/sidebar.props.tsx +1 -0
- package/src/components/sidebar.tsx +19 -13
- package/src/components/tab-nav.tsx +6 -2
- package/src/components/tabs.tsx +6 -2
- package/src/components/text-area.css +18 -5
- package/src/components/text-area.props.tsx +6 -4
- package/src/components/text-area.tsx +5 -1
- package/src/components/text-field.css +36 -3
- package/src/components/text-field.props.tsx +6 -4
- package/src/components/text-field.tsx +5 -1
- package/src/components/theme.props.tsx +4 -4
- package/src/components/toggle-button.tsx +19 -4
- package/src/components/toggle-icon-button.tsx +6 -60
- package/src/components/user-card.props.tsx +8 -5
- package/src/components/user-card.tsx +5 -0
- package/src/helpers/parse-variant.ts +21 -0
- package/src/helpers/warn-deprecated.ts +13 -0
- package/src/props/color.prop.ts +13 -0
- package/src/styles/tokens/constants.css +46 -27
- package/src/styles/tokens/typography.css +2 -0
- package/styles.css +1086 -318
- package/tokens/base.css +1 -0
- package/tokens.css +34 -16
- package/dist/esm/chunk-3KSGRY6I.js +0 -2
- package/dist/esm/chunk-3KSGRY6I.js.map +0 -7
- package/dist/esm/chunk-3OELU3EO.js +0 -2
- package/dist/esm/chunk-3OELU3EO.js.map +0 -7
- package/dist/esm/chunk-4WVNMGI5.js +0 -2
- package/dist/esm/chunk-4WVNMGI5.js.map +0 -7
- package/dist/esm/chunk-54JFIP5S.js.map +0 -7
- package/dist/esm/chunk-5SNHUVDA.js +0 -2
- package/dist/esm/chunk-667BKCUG.js +0 -2
- package/dist/esm/chunk-667BKCUG.js.map +0 -7
- package/dist/esm/chunk-72AHPGPN.js +0 -2
- package/dist/esm/chunk-72AHPGPN.js.map +0 -7
- package/dist/esm/chunk-7E2BPXIP.js +0 -2
- package/dist/esm/chunk-7E2BPXIP.js.map +0 -7
- package/dist/esm/chunk-7FS2VDHO.js +0 -5
- package/dist/esm/chunk-7FS2VDHO.js.map +0 -7
- package/dist/esm/chunk-7RUVID3O.js +0 -2
- package/dist/esm/chunk-7RUVID3O.js.map +0 -7
- package/dist/esm/chunk-ALWNS44Q.js +0 -5
- package/dist/esm/chunk-ALWNS44Q.js.map +0 -7
- package/dist/esm/chunk-ARIV4AT5.js +0 -2
- package/dist/esm/chunk-ARIV4AT5.js.map +0 -7
- package/dist/esm/chunk-CET7V3FZ.js +0 -2
- package/dist/esm/chunk-CET7V3FZ.js.map +0 -7
- package/dist/esm/chunk-CFNESRYI.js +0 -2
- package/dist/esm/chunk-CFNESRYI.js.map +0 -7
- package/dist/esm/chunk-CKMMUHKE.js +0 -2
- package/dist/esm/chunk-CKMMUHKE.js.map +0 -7
- package/dist/esm/chunk-CLMOWP5T.js +0 -2
- package/dist/esm/chunk-CLMOWP5T.js.map +0 -7
- package/dist/esm/chunk-EBQZ3Z22.js +0 -2
- package/dist/esm/chunk-EBQZ3Z22.js.map +0 -7
- package/dist/esm/chunk-EDKQURDU.js +0 -2
- package/dist/esm/chunk-EDKQURDU.js.map +0 -7
- package/dist/esm/chunk-EPTYNVCU.js +0 -2
- package/dist/esm/chunk-EPTYNVCU.js.map +0 -7
- package/dist/esm/chunk-EPX34Y7S.js +0 -2
- package/dist/esm/chunk-EPX34Y7S.js.map +0 -7
- package/dist/esm/chunk-F6V7GBNQ.js +0 -2
- package/dist/esm/chunk-F6V7GBNQ.js.map +0 -7
- package/dist/esm/chunk-FC2DBBJ3.js +0 -2
- package/dist/esm/chunk-FG7XM7KJ.js +0 -2
- package/dist/esm/chunk-FG7XM7KJ.js.map +0 -7
- package/dist/esm/chunk-JFWMAYEH.js +0 -2
- package/dist/esm/chunk-JFWMAYEH.js.map +0 -7
- package/dist/esm/chunk-K3UAS7RW.js +0 -2
- package/dist/esm/chunk-K3UAS7RW.js.map +0 -7
- package/dist/esm/chunk-KZWNGWIM.js +0 -2
- package/dist/esm/chunk-KZWNGWIM.js.map +0 -7
- package/dist/esm/chunk-KZYFTDGO.js +0 -2
- package/dist/esm/chunk-KZYFTDGO.js.map +0 -7
- package/dist/esm/chunk-MJOXEUBT.js +0 -2
- package/dist/esm/chunk-MJOXEUBT.js.map +0 -7
- package/dist/esm/chunk-MN3XALXD.js +0 -2
- package/dist/esm/chunk-MN3XALXD.js.map +0 -7
- package/dist/esm/chunk-NJ7S43EK.js +0 -2
- package/dist/esm/chunk-NJ7S43EK.js.map +0 -7
- package/dist/esm/chunk-OGVKSYLL.js +0 -2
- package/dist/esm/chunk-OGVKSYLL.js.map +0 -7
- package/dist/esm/chunk-OO652UQW.js +0 -2
- package/dist/esm/chunk-OO652UQW.js.map +0 -7
- package/dist/esm/chunk-OWMA6GTG.js +0 -2
- package/dist/esm/chunk-OWMA6GTG.js.map +0 -7
- package/dist/esm/chunk-P2NZLSAD.js +0 -2
- package/dist/esm/chunk-P2NZLSAD.js.map +0 -7
- package/dist/esm/chunk-PHZNRO3D.js +0 -2
- package/dist/esm/chunk-PHZNRO3D.js.map +0 -7
- package/dist/esm/chunk-PLYOBXAF.js +0 -2
- package/dist/esm/chunk-PLYOBXAF.js.map +0 -7
- package/dist/esm/chunk-QFPHEY77.js +0 -2
- package/dist/esm/chunk-QFPHEY77.js.map +0 -7
- package/dist/esm/chunk-QQ62LO3X.js +0 -2
- package/dist/esm/chunk-QQ62LO3X.js.map +0 -7
- package/dist/esm/chunk-RDAMYQFF.js +0 -2
- package/dist/esm/chunk-RDAMYQFF.js.map +0 -7
- package/dist/esm/chunk-ROSWI2CL.js +0 -2
- package/dist/esm/chunk-ROSWI2CL.js.map +0 -7
- package/dist/esm/chunk-TIT3QMV7.js +0 -2
- package/dist/esm/chunk-TIT3QMV7.js.map +0 -7
- package/dist/esm/chunk-TVV6IHBN.js +0 -2
- package/dist/esm/chunk-TVV6IHBN.js.map +0 -7
- package/dist/esm/chunk-VDTB4JG3.js +0 -2
- package/dist/esm/chunk-VDTB4JG3.js.map +0 -7
- package/dist/esm/chunk-VLTXI4A7.js +0 -2
- package/dist/esm/chunk-VLTXI4A7.js.map +0 -7
- package/dist/esm/chunk-VNH7BJOA.js +0 -2
- package/dist/esm/chunk-VNH7BJOA.js.map +0 -7
- package/dist/esm/chunk-WBMCZ4Z3.js +0 -2
- package/dist/esm/chunk-WBMCZ4Z3.js.map +0 -7
- package/dist/esm/chunk-WGYUWEQV.js +0 -2
- package/dist/esm/chunk-WMGIFPI2.js +0 -2
- package/dist/esm/chunk-WMGIFPI2.js.map +0 -7
- package/dist/esm/chunk-XYVLQDGR.js +0 -2
- package/dist/esm/chunk-XYVLQDGR.js.map +0 -7
- package/dist/esm/chunk-Y3A6ZU24.js +0 -2
- package/dist/esm/chunk-Y3A6ZU24.js.map +0 -7
- /package/dist/esm/{chunk-XVYTOZES.js.map → chunk-34UMKY2L.js.map} +0 -0
- /package/dist/esm/{chunk-4XKK32M4.js.map → chunk-3HGHPAH4.js.map} +0 -0
- /package/dist/esm/{chunk-C34HCTGS.js.map → chunk-3Q3EOUGJ.js.map} +0 -0
- /package/dist/esm/{chunk-4ME6O27S.js.map → chunk-3UZHKW6I.js.map} +0 -0
- /package/dist/esm/{chunk-AF6XKU3W.js.map → chunk-3WCSLQNH.js.map} +0 -0
- /package/dist/esm/{chunk-DD6SJPOU.js.map → chunk-45AMHIBO.js.map} +0 -0
- /package/dist/esm/{chunk-CIYF56YS.js.map → chunk-4JNHUPIM.js.map} +0 -0
- /package/dist/esm/{chunk-OJU5GCDZ.js.map → chunk-5G4WWJ4Z.js.map} +0 -0
- /package/dist/esm/{chunk-AGNIFHOE.js.map → chunk-62CJL5G7.js.map} +0 -0
- /package/dist/esm/{chunk-Y5RCH23Z.js.map → chunk-6JP5PIOO.js.map} +0 -0
- /package/dist/esm/{chunk-ZO7TTWJI.js.map → chunk-77TGP2LO.js.map} +0 -0
- /package/dist/esm/{chunk-4LDVSTXI.js.map → chunk-BKES3M4Y.js.map} +0 -0
- /package/dist/esm/{chunk-VX6ARMWP.js.map → chunk-C7UXUTUF.js.map} +0 -0
- /package/dist/esm/{chunk-2I7QRVJ5.js.map → chunk-CIKDGYX3.js.map} +0 -0
- /package/dist/esm/{chunk-5XV4QEP5.js.map → chunk-CMEKH4I5.js.map} +0 -0
- /package/dist/esm/{chunk-JUJYMZ2F.js.map → chunk-DJA5MCJA.js.map} +0 -0
- /package/dist/esm/{chunk-4YFJWXL2.js.map → chunk-EUSMN3K7.js.map} +0 -0
- /package/dist/esm/{chunk-VICP2RNA.js.map → chunk-FISGGGPC.js.map} +0 -0
- /package/dist/esm/{chunk-KFR3CK24.js.map → chunk-GLKN32J3.js.map} +0 -0
- /package/dist/esm/{chunk-COWZAUZR.js.map → chunk-GONBMSRL.js.map} +0 -0
- /package/dist/esm/{chunk-GO7OHBHW.js.map → chunk-HFVD7W6R.js.map} +0 -0
- /package/dist/esm/{chunk-SAJY4H6J.js.map → chunk-HIBX2EXV.js.map} +0 -0
- /package/dist/esm/{chunk-VZSQATP6.js.map → chunk-HJLBVNQE.js.map} +0 -0
- /package/dist/esm/{chunk-JDGJSNWT.js.map → chunk-HNO4X33C.js.map} +0 -0
- /package/dist/esm/{chunk-E67CIG6A.js.map → chunk-IPHKKZYE.js.map} +0 -0
- /package/dist/esm/{chunk-7R73ISNJ.js.map → chunk-IQU6EELI.js.map} +0 -0
- /package/dist/esm/{chunk-PZ7OYATT.js.map → chunk-IV4YJRVR.js.map} +0 -0
- /package/dist/esm/{chunk-S5C5YRBS.js.map → chunk-IVBKTHDM.js.map} +0 -0
- /package/dist/esm/{chunk-RNTCHVFI.js.map → chunk-JXVUTFQN.js.map} +0 -0
- /package/dist/esm/{chunk-VR7ZAFYN.js.map → chunk-K7BWSYVP.js.map} +0 -0
- /package/dist/esm/{chunk-5WRCK4R7.js.map → chunk-KJTEZVOF.js.map} +0 -0
- /package/dist/esm/{chunk-OGXZHAQL.js.map → chunk-KXSMY4ZF.js.map} +0 -0
- /package/dist/esm/{chunk-MS5J4MF6.js.map → chunk-LJXP6K5Y.js.map} +0 -0
- /package/dist/esm/{chunk-CSKZZOI2.js.map → chunk-N6Q3L64W.js.map} +0 -0
- /package/dist/esm/{chunk-YBSRX63K.js.map → chunk-O2WPAUQN.js.map} +0 -0
- /package/dist/esm/{chunk-HJU4I34X.js.map → chunk-OB3MHLQL.js.map} +0 -0
- /package/dist/esm/{chunk-NIIEIZKQ.js.map → chunk-OW4KAIWF.js.map} +0 -0
- /package/dist/esm/{chunk-HF5WY5YE.js.map → chunk-PAEHH3WS.js.map} +0 -0
- /package/dist/esm/{chunk-FHOCUZDR.js.map → chunk-PXUQEA77.js.map} +0 -0
- /package/dist/esm/{chunk-7UHKEJ7Q.js.map → chunk-R2MQMCND.js.map} +0 -0
- /package/dist/esm/{chunk-64PFYID5.js.map → chunk-RAVFUI7W.js.map} +0 -0
- /package/dist/esm/{chunk-CDG5WH4U.js.map → chunk-RUOOCYK4.js.map} +0 -0
- /package/dist/esm/{chunk-36A5BYCN.js.map → chunk-RUPET4E7.js.map} +0 -0
- /package/dist/esm/{chunk-WGYUWEQV.js.map → chunk-RWN22S44.js.map} +0 -0
- /package/dist/esm/{chunk-7NVLCYCL.js.map → chunk-S3GZZXQ7.js.map} +0 -0
- /package/dist/esm/{chunk-N4GTDLRD.js.map → chunk-SGUTNJUO.js.map} +0 -0
- /package/dist/esm/{chunk-GL5QTWYI.js.map → chunk-SQ4BU4GH.js.map} +0 -0
- /package/dist/esm/{chunk-KOFEFBB3.js.map → chunk-T6Z4JUH6.js.map} +0 -0
- /package/dist/esm/{chunk-67MKPTZJ.js.map → chunk-TCEQ5VVE.js.map} +0 -0
- /package/dist/esm/{chunk-ESPWYN5C.js.map → chunk-TZ5MZQUB.js.map} +0 -0
- /package/dist/esm/{chunk-CRSHBENJ.js.map → chunk-UBWRIE4C.js.map} +0 -0
- /package/dist/esm/{chunk-ZOY43B55.js.map → chunk-UK3BFTI2.js.map} +0 -0
- /package/dist/esm/{chunk-KJUDZCYK.js.map → chunk-VBAXORVV.js.map} +0 -0
- /package/dist/esm/{chunk-OTXCKEWT.js.map → chunk-VJXHEDCE.js.map} +0 -0
- /package/dist/esm/{chunk-IHK3H2OM.js.map → chunk-VUKTURU4.js.map} +0 -0
- /package/dist/esm/{chunk-NQ3D3UXZ.js.map → chunk-VV67KTKA.js.map} +0 -0
- /package/dist/esm/{chunk-5SNHUVDA.js.map → chunk-YL62I5SI.js.map} +0 -0
- /package/dist/esm/{chunk-2OSGPH7E.js.map → chunk-YLLCCUC7.js.map} +0 -0
- /package/dist/esm/{chunk-OMGZG52I.js.map → chunk-ZE2GWHPY.js.map} +0 -0
- /package/dist/esm/{chunk-AGSSWWFI.js.map → chunk-ZK55O7TN.js.map} +0 -0
- /package/dist/esm/{chunk-YAQBIO2B.js.map → chunk-ZQVYY7UT.js.map} +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseVariant } from '../helpers/parse-variant.js';
|
|
1
2
|
declare const userCardPropDefs: {
|
|
2
3
|
panelBackground: {
|
|
3
4
|
type: "enum";
|
|
@@ -28,8 +29,9 @@ declare const userCardPropDefs: {
|
|
|
28
29
|
variant: {
|
|
29
30
|
type: "enum";
|
|
30
31
|
className: string;
|
|
31
|
-
values: readonly ["ghost", "surface", "classic"];
|
|
32
|
-
default: "
|
|
32
|
+
values: readonly ["raised", "ghost", "surface", "classic"];
|
|
33
|
+
default: "raised";
|
|
34
|
+
parseValue: typeof parseVariant;
|
|
33
35
|
};
|
|
34
36
|
src: {
|
|
35
37
|
type: "string";
|
|
@@ -47,7 +49,7 @@ declare const userCardPropDefs: {
|
|
|
47
49
|
};
|
|
48
50
|
avatarVariant: {
|
|
49
51
|
type: "enum";
|
|
50
|
-
values: readonly ["solid", "soft", "surface", "outline"];
|
|
52
|
+
values: readonly ["raised", "solid", "soft", "surface", "outline", "classic"];
|
|
51
53
|
default: "soft";
|
|
52
54
|
};
|
|
53
55
|
asChild: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-card.props.d.ts","sourceRoot":"","sources":["../../../src/components/user-card.props.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user-card.props.d.ts","sourceRoot":"","sources":["../../../src/components/user-card.props.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAc3D,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BrB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var y=(e,r)=>{for(var o in r)p(e,o,{get:r[o],enumerable:!0})},v=(e,r,o,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of d(r))!m.call(e,a)&&a!==o&&p(e,a,{get:()=>r[a],enumerable:!(l=u(r,a))||l.enumerable});return e};var D=e=>v(p({},"__esModule",{value:!0}),e);var B={};y(B,{userCardPropDefs:()=>j});module.exports=D(B);function t(e){return e==="classic"?"raised":(e==="override"&&void 0,e)}var s={asChild:{type:"boolean"}};var f=["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"];var n={color:{type:"enum",values:f,default:"gray"}};var P=["none","small","medium","large","full"],i={radius:{type:"enum",values:P,default:void 0}};var b=["1","2","3","4","5","6","7","8","9","10","11","12"],g=["raised","solid","soft","surface","outline","classic"],C=["solid","translucent"],k=["solid","translucent"],N=["cover","contain","fill","scale-down","none"],c={...s,size:{type:"enum",className:"rt-r-size",values:b,default:"3",responsive:!0},variant:{type:"enum",className:"rt-variant",values:g,default:"raised",parseValue:t},...n,...i,fallback:{type:"ReactNode",required:!0},material:{type:"enum",values:k,default:void 0},panelBackground:{type:"enum",values:C,default:void 0},status:{type:"enum",values:f,default:void 0},badge:{type:"ReactNode",default:void 0},fit:{type:"enum",className:"rt-r-fit",values:N,default:"cover",responsive:!0}};var z=["1","2","3","4"],V=["raised","ghost","surface","classic"],h=c.variant.values,R=["solid","translucent"],j={...s,size:{type:"enum",className:"rt-r-size",values:z,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:V,default:"raised",parseValue:t},src:{type:"string"},fallback:{type:"ReactNode",required:!0},name:{type:"string",required:!0},description:{type:"string"},avatarVariant:{type:"enum",values:h,default:"soft"},...i,...n,panelBackground:{type:"enum",values:R,default:void 0},flush:{type:"boolean",default:!1}};
|
|
2
2
|
//# sourceMappingURL=user-card.props.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/user-card.props.tsx", "../../../src/props/as-child.prop.ts", "../../../src/props/color.prop.ts", "../../../src/props/radius.prop.ts"],
|
|
4
|
-
"sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport {
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,
|
|
6
|
-
"names": ["user_card_props_exports", "__export", "userCardPropDefs", "__toCommonJS", "asChildPropDef", "accentColors", "
|
|
3
|
+
"sources": ["../../../src/components/user-card.props.tsx", "../../../src/helpers/parse-variant.ts", "../../../src/props/as-child.prop.ts", "../../../src/props/color.prop.ts", "../../../src/props/radius.prop.ts", "../../../src/components/avatar.props.tsx"],
|
|
4
|
+
"sourcesContent": ["import { parseVariant } from '../helpers/parse-variant.js';\nimport { avatarPropDefs } from './avatar.props.js';\nimport { asChildPropDef } from '../props/as-child.prop.js';\nimport { grayAccentColorPropDef } from '../props/color.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['raised', 'ghost', 'surface', 'classic'] as const;\n// The same list as Avatar.\nconst avatarVariants = avatarPropDefs.variant.values;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\n\nconst userCardPropDefs = {\n ...asChildPropDef,\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', parseValue: parseVariant },\n\n // Content props\n src: { type: 'string' },\n fallback: { type: 'ReactNode', required: true },\n name: { type: 'string', required: true },\n description: { type: 'string' },\n\n // Avatar styling\n avatarVariant: { type: 'enum', values: avatarVariants, default: 'soft' },\n ...radiusPropDef,\n\n // Card styling\n ...grayAccentColorPropDef,\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n flush: { type: 'boolean', default: false },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n src: PropDef<string>;\n fallback: PropDef<React.ReactNode>;\n name: PropDef<string>;\n description: PropDef<string>;\n avatarVariant: PropDef<(typeof avatarVariants)[number]>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n flush: PropDef<boolean>;\n};\n\nexport { userCardPropDefs };\n", "import { warnDeprecated } from './warn-deprecated.js';\n\n/**\n * `classic` was renamed `raised` in 0.14.0. The old name still renders, as `raised`, with a\n * one-time warning in development. Button's `override` is not a look but a way out of the\n * styles, so it warns too. Both are removed in 0.15.0.\n */\nfunction parseVariant(value: string): string {\n if (value === 'classic') {\n warnDeprecated('`variant=\"classic\"` is deprecated and will be removed in 0.15.0. Use `variant=\"raised\"`.');\n return 'raised';\n }\n if (value === 'override') {\n warnDeprecated(\n '`variant=\"override\"` is deprecated and will be removed in 0.15.0. Style the component with `className`, `style` or its CSS variables instead.',\n );\n }\n return value;\n}\n\nexport { parseVariant };\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import type { 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, Callout,\n// UserCard): 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", "import type { PropDef } from './prop-def.js';\n\nconst radii = ['none', 'small', 'medium', 'large', 'full'] as const;\n\nconst radiusPropDef = {\n radius: {\n type: 'enum',\n values: radii,\n default: undefined,\n },\n} satisfies {\n radius: PropDef<(typeof radii)[number]>;\n};\n\nexport { radiusPropDef, radii };\n", "import { parseVariant } from '../helpers/parse-variant.js';\nimport { asChildPropDef } from '../props/as-child.prop.js';\nimport { grayAccentColorPropDef, accentColors } from '../props/color.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nconst variants = ['raised', 'solid', 'soft', 'surface', 'outline', 'classic'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\nconst objectFitValues = ['cover', 'contain', 'fill', 'scale-down', 'none'] as const;\n\nconst avatarPropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '3', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'raised', parseValue: parseVariant },\n ...grayAccentColorPropDef,\n ...radiusPropDef,\n fallback: { type: 'ReactNode', required: true },\n material: { type: 'enum', values: materials, default: undefined },\n /**\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n /**\n * Status indicator color. Renders a small colored dot at the bottom-right corner.\n * Cannot be used together with `badge`.\n */\n status: { type: 'enum', values: accentColors, default: undefined },\n /**\n * Custom badge content. Renders at the bottom-right corner.\n * Cannot be used together with `status`.\n */\n badge: { type: 'ReactNode', default: undefined },\n /**\n * Controls how the avatar image should be resized to fit its container.\n * Defaults to 'cover' which crops the image to fill the avatar.\n * Use 'contain' to show the full image without cropping.\n */\n fit: { type: 'enum', className: 'rt-r-fit', values: objectFitValues, default: 'cover', responsive: true },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n fallback: PropDef<React.ReactNode>;\n material: PropDef<(typeof materials)[number] | undefined>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n status: PropDef<(typeof accentColors)[number] | undefined>;\n badge: PropDef<React.ReactNode>;\n fit: PropDef<(typeof objectFitValues)[number]>;\n};\n\nexport { avatarPropDefs };\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GCOA,SAASI,EAAaC,EAAuB,CAC3C,OAAIA,IAAU,UAEL,UAELA,IAAU,YACZ,OAIKA,EACT,CChBA,IAAMC,EAAiB,CAKrB,QAAS,CACP,KAAM,SACR,CACF,ECPA,IAAMC,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,EA4BvP,IAAMC,EAAyB,CAC7B,MAAO,CACL,KAAM,OACN,OAAQC,EACR,QAAS,MACX,CACF,ECnCA,IAAMC,EAAQ,CAAC,OAAQ,QAAS,SAAU,QAAS,MAAM,EAEnDC,EAAgB,CACpB,OAAQ,CACN,KAAM,OACN,OAAQD,EACR,QAAS,MACX,CACF,ECHA,IAAME,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EACtEC,EAAW,CAAC,SAAU,QAAS,OAAQ,UAAW,UAAW,SAAS,EACtEC,EAAmB,CAAC,QAAS,aAAa,EAC1CC,EAAY,CAAC,QAAS,aAAa,EACnCC,EAAkB,CAAC,QAAS,UAAW,OAAQ,aAAc,MAAM,EAEnEC,EAAiB,CACrB,GAAGC,EACH,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQN,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,SAAU,WAAYM,CAAa,EAChH,GAAGC,EACH,GAAGC,EACH,SAAU,CAAE,KAAM,YAAa,SAAU,EAAK,EAC9C,SAAU,CAAE,KAAM,OAAQ,OAAQN,EAAW,QAAS,MAAU,EAIhE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,EAAkB,QAAS,MAAU,EAK9E,OAAQ,CAAE,KAAM,OAAQ,OAAQQ,EAAc,QAAS,MAAU,EAKjE,MAAO,CAAE,KAAM,YAAa,QAAS,MAAU,EAM/C,IAAK,CAAE,KAAM,OAAQ,UAAW,WAAY,OAAQN,EAAiB,QAAS,QAAS,WAAY,EAAK,CAC1G,ELjCA,IAAMO,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,SAAU,QAAS,UAAW,SAAS,EAEnDC,EAAiBC,EAAe,QAAQ,OACxCC,EAAmB,CAAC,QAAS,aAAa,EAE1CC,EAAmB,CACvB,GAAGC,EACH,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQN,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,SAAU,WAAYM,CAAa,EAGhH,IAAK,CAAE,KAAM,QAAS,EACtB,SAAU,CAAE,KAAM,YAAa,SAAU,EAAK,EAC9C,KAAM,CAAE,KAAM,SAAU,SAAU,EAAK,EACvC,YAAa,CAAE,KAAM,QAAS,EAG9B,cAAe,CAAE,KAAM,OAAQ,OAAQL,EAAgB,QAAS,MAAO,EACvE,GAAGM,EAGH,GAAGC,EACH,gBAAiB,CAAE,KAAM,OAAQ,OAAQL,EAAkB,QAAS,MAAU,EAC9E,MAAO,CAAE,KAAM,UAAW,QAAS,EAAM,CAC3C",
|
|
6
|
+
"names": ["user_card_props_exports", "__export", "userCardPropDefs", "__toCommonJS", "parseVariant", "value", "asChildPropDef", "accentColors", "grayAccentColorPropDef", "accentColors", "radii", "radiusPropDef", "sizes", "variants", "panelBackgrounds", "materials", "objectFitValues", "avatarPropDefs", "asChildPropDef", "parseVariant", "grayAccentColorPropDef", "radiusPropDef", "accentColors", "sizes", "variants", "avatarVariants", "avatarPropDefs", "panelBackgrounds", "userCardPropDefs", "asChildPropDef", "parseVariant", "radiusPropDef", "grayAccentColorPropDef"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";"use client";var Te=Object.create;var $=Object.defineProperty;var Re=Object.getOwnPropertyDescriptor;var be=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(e,t)=>{for(var n in t)$(e,n,{get:t[n],enumerable:!0})},te=(e,t,n,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of be(t))!Me.call(e,c)&&c!==n&&$(e,c,{get:()=>t[c],enumerable:!(l=Re(t,c))||l.enumerable});return e};var E=(e,t,n)=>(n=e!=null?Te(xe(e)):{},te(t||!e||!e.__esModule?$(n,"default",{value:e,enumerable:!0}):n,e)),Ie=e=>te($({},"__esModule",{value:!0}),e);var Ke={};Fe(Ke,{VirtualMenu:()=>je});module.exports=Ie(Ke);var a=E(require("react")),Y=E(require("classnames")),ge=require("@tanstack/react-virtual");var j=E(require("react"));var s=E(require("react")),de=E(require("classnames")),B=require("radix-ui"),q=require("radix-ui/internal");function ne(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}var J=E(require("react"));function R(e){let[t,n]=J.useState(e),[l,c]=J.useState(e);return Object.is(e,l)||(c(e),n(e)),[t,n]}var oe=E(require("react")),ke="Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.",ae=new Set;function De(e){ae.has(e)||(ae.add(e),console.warn(e))}function re(e){oe.useEffect(()=>{},[e])}var ie={asChild:{type:"boolean"}};var se=["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"],le=["auto","gray","mauve","slate","sage","olive","sand"];var ce=["none","small","medium","large","full"];var Se=["inherit","light","dark"],Ee=["solid","translucent"],Be=["solid","translucent"],He=["90%","95%","100%","105%","110%"],ue=["sans","mono","serif"],r={...ie,hasBackground:{type:"boolean",default:!0},appearance:{type:"enum",values:Se,default:"inherit"},accentColor:{type:"enum",values:se,default:"blue"},grayColor:{type:"enum",values:le,default:"slate"},material:{type:"enum",values:Be,default:"translucent"},panelBackground:{type:"enum",values:Ee,default:"translucent"},radius:{type:"enum",values:ce,default:"full"},scaling:{type:"enum",values:He,default:"100%"},fontFamily:{type:"enum",values:ue,default:"sans"},headingFontFamily:{type:"enum",values:ue}};var d=()=>{},we={appearance:r.appearance.default,accentColor:r.accentColor.default,grayColor:r.grayColor.default,resolvedGrayColor:r.grayColor.default,material:r.material.default,panelBackground:r.panelBackground.default,radius:r.radius.default,scaling:r.scaling.default,fontFamily:r.fontFamily.default,headingFontFamily:void 0,onAppearanceChange:d,onAccentColorChange:d,onGrayColorChange:d,onMaterialChange:d,onPanelBackgroundChange:d,onRadiusChange:d,onScalingChange:d,onFontFamilyChange:d,onHeadingFontFamilyChange:d},U=s.createContext(void 0);function me(){return s.useContext(U)??we}var Ve=s.forwardRef((e,t)=>{let n=s.useContext(U),l=B.Direction.useDirection();return n===void 0?s.createElement(B.Tooltip.Provider,{delayDuration:200},s.createElement(B.Direction.Provider,{dir:l},s.createElement(pe,{...e,ref:t}))):s.createElement(Q,{...e,ref:t})});Ve.displayName="Theme";var pe=s.forwardRef((e,t)=>{let{appearance:n=r.appearance.default,accentColor:l=r.accentColor.default,grayColor:c=r.grayColor.default,material:b=r.material.default,panelBackground:p=r.panelBackground.default,radius:C=r.radius.default,scaling:f=r.scaling.default,fontFamily:x=r.fontFamily.default,headingFontFamily:P,hasBackground:v=r.hasBackground.default,...M}=e;re(e.panelBackground);let[g,D]=R(n),[H,w]=R(l),[S,F]=R(c),V=b!==r.material.default?b:p,[h,N]=R(V),[I,A]=R(h),[T,k]=R(C),[y,z]=R(f),[K,G]=R(x),[O,L]=R(P);return s.createElement(Q,{...M,ref:t,isRoot:!0,hasBackground:v,appearance:g,accentColor:H,grayColor:S,material:h,panelBackground:I,radius:T,scaling:y,fontFamily:K,headingFontFamily:O,onAppearanceChange:D,onAccentColorChange:w,onGrayColorChange:F,onMaterialChange:N,onPanelBackgroundChange:A,onRadiusChange:k,onScalingChange:z,onFontFamilyChange:G,onHeadingFontFamilyChange:L})});pe.displayName="ThemeRoot";function Ne(){if(typeof navigator>"u")return;let e=navigator.userAgent;if(e.includes("Win"))return"windows";if(e.includes("Mac"))return"macos";if(e.includes("Linux"))return"linux"}var Q=s.forwardRef((e,t)=>{let n=s.useContext(U),{asChild:l,isRoot:c,hasBackground:b,appearance:p=e.appearance??n?.appearance??r.appearance.default,accentColor:C=e.accentColor??n?.accentColor??r.accentColor.default,grayColor:f=e.grayColor??n?.resolvedGrayColor??r.grayColor.default,material:x=e.material??n?.material??r.material.default,panelBackground:P=e.panelBackground??n?.panelBackground??r.panelBackground.default,radius:v=e.radius??n?.radius??r.radius.default,scaling:M=e.scaling??n?.scaling??r.scaling.default,fontFamily:g=e.fontFamily??n?.fontFamily??r.fontFamily.default,headingFontFamily:D=e.headingFontFamily??n?.headingFontFamily,onAppearanceChange:H=d,onAccentColorChange:w=d,onGrayColorChange:S=d,onMaterialChange:F=d,onPanelBackgroundChange:V=d,onRadiusChange:h=d,onScalingChange:N=d,onFontFamilyChange:I=d,onHeadingFontFamilyChange:A=d,...T}=e,k=l?B.Slot.Root:"div",y=f==="auto"?ne(C):f,z=e.appearance==="light"||e.appearance==="dark",K=b===void 0?c||z:b,G=s.useRef(null),O=(0,q.useComposedRefs)(t,G),L="data-os"in T;return(0,q.useLayoutEffect)(()=>{if(!c||L)return;let W=G.current;if(!W)return;let _=Ne();if(_)return W.setAttribute("data-os",_),()=>W.removeAttribute("data-os")},[c,L]),s.createElement(U.Provider,{value:s.useMemo(()=>({appearance:p,accentColor:C,grayColor:f,resolvedGrayColor:y,material:x,panelBackground:P,radius:v,scaling:M,fontFamily:g,headingFontFamily:D,onAppearanceChange:H,onAccentColorChange:w,onGrayColorChange:S,onMaterialChange:F,onPanelBackgroundChange:V,onRadiusChange:h,onScalingChange:N,onFontFamilyChange:I,onHeadingFontFamilyChange:A}),[p,C,f,y,x,P,v,M,g,D,H,w,S,F,V,h,N,I,A])},s.createElement(k,{"data-is-root-theme":c?"true":"false","data-accent-color":C,"data-gray-color":y,"data-has-background":K?"true":"false","data-material":x,"data-panel-background":P,"data-radius":v,"data-scaling":M,"data-font-family":g,"data-heading-font-family":D,ref:O,...T,className:(0,de.default)("radix-themes",{light:p==="light",dark:p==="dark"},T.className)}))});Q.displayName="ThemeImpl";var Ae=j.createContext({isInsideMenu:!1}),ze={1:24,2:32};function X(e,t){let n=t?parseFloat(t)/100:1;return ze[e]*(Number.isFinite(n)?n:1)}function fe(){return j.useContext(Ae)}var Ge=a.memo(function({label:t,isHighlighted:n,id:l,style:c,tabIndex:b,"data-highlighted":p,"data-index":C,onMouseEnter:f,onMouseLeave:x,onClick:P,onKeyDown:v}){return a.createElement("div",{id:l,role:"menuitem",className:(0,Y.default)("rt-reset","rt-BaseMenuItem","rt-VirtualMenuItem"),style:c,tabIndex:b,"data-highlighted":p,"data-index":C,onMouseEnter:f,onMouseLeave:x,onClick:P,onKeyDown:v},t)},(e,t)=>!(e.label!==t.label||e["data-highlighted"]!==t["data-highlighted"]||e.style.height!==t.style.height||e.style.transform!==t.style.transform||e.tabIndex!==t.tabIndex||e.id!==t.id));function he({items:e,itemLabel:t,renderItem:n,size:l,estimatedItemSize:c,overscan:b=5,onSelect:p,className:C,style:f,"aria-label":x}){let P=a.useId(),v=a.useRef(null),[M,g]=a.useState(-1),{isInsideMenu:D,size:H,itemHeight:w}=fe(),{scaling:S}=me(),F=c??(l?X(l,S):w??X(H??"2",S));if(!t&&!n)throw new Error("VirtualMenu requires either itemLabel or renderItem prop");let V=a.useMemo(()=>t?typeof t=="function"?t:o=>o[t]:null,[t]),h=a.useMemo(()=>e.length===0||M<0?-1:Math.min(M,e.length-1),[M,e.length]),N=a.useMemo(()=>typeof F=="function"?F:()=>F,[F]),I=(0,ge.useVirtualizer)({count:e.length,getScrollElement:()=>v.current,estimateSize:N,overscan:b}),A=I.getVirtualItems(),T=a.useRef(e),k=a.useRef(p);T.current=e,k.current=p;let y=a.useRef(I.scrollToIndex);y.current=I.scrollToIndex;let z=a.useRef(h);z.current=h;let K=a.useCallback(o=>{let m=o.currentTarget.dataset.index;m!=null&&g(Number(m))},[]),G=a.useCallback(o=>{let m=o.currentTarget.dataset.index;if(m!=null){let i=Number(m),u=T.current;i>=0&&i<u.length&&k.current?.(u[i],i)}},[]),O=a.useCallback(()=>{},[]),L=a.useCallback(o=>{if(o.key==="Enter"||o.key===" "){o.preventDefault();let m=o.currentTarget.dataset.index;if(m!=null){let i=Number(m),u=T.current;i>=0&&i<u.length&&k.current?.(u[i],i)}}},[]),W=a.useCallback(o=>{let m=T.current,i=z.current;switch(o.key){case"ArrowDown":{o.preventDefault();let u=i<m.length-1?i+1:0;g(u),y.current(u,{align:"auto"});break}case"ArrowUp":{o.preventDefault();let u=i>0?i-1:m.length-1;g(u),y.current(u,{align:"auto"});break}case"Home":{o.preventDefault(),g(0),y.current(0,{align:"start"});break}case"End":{o.preventDefault();let u=m.length-1;g(u),y.current(u,{align:"end"});break}case"Enter":case" ":{o.preventDefault(),i>=0&&i<m.length&&k.current?.(m[i],i);break}case"Tab":{o.preventDefault();break}case"Escape":{o.currentTarget.blur();break}}},[]),_=a.useCallback(o=>`${P}-item-${o}`,[P]),Ce=a.useMemo(()=>({overflow:"auto",position:"relative",...f}),[f]),Z=I.getTotalSize(),Pe=a.useMemo(()=>({height:`${Z}px`,width:"100%",position:"relative"}),[Z]);return a.createElement("div",{ref:v,role:D?"group":"menu","aria-label":x,"aria-activedescendant":h>=0?_(h):void 0,tabIndex:0,onKeyDown:W,className:(0,Y.default)("rt-VirtualMenuRoot",C),style:Ce},a.createElement("div",{className:"rt-VirtualMenuViewport",style:Pe},A.map(o=>{let m=e[o.index],i=o.index,u=h===i,ve={height:o.size,transform:`translateY(${o.start}px)`},ee={id:_(i),isHighlighted:u,style:ve,tabIndex:u?0:-1,"data-highlighted":u?!0:void 0,"data-index":i,onMouseEnter:K,onMouseLeave:O,onClick:G,onKeyDown:L};return n?a.createElement(n,{key:o.key,item:m,index:i,...ee}):a.createElement(Ge,{key:o.key,label:V(m),...ee})})))}he.displayName="VirtualMenu";var ye=a.forwardRef(({className:e,children:t,...n},l)=>a.createElement("div",{ref:l,role:"menuitem",className:(0,Y.default)("rt-reset","rt-BaseMenuItem","rt-VirtualMenuItem",e),...n},t));ye.displayName="VirtualMenu.Item";var Le=a.memo(ye,(e,t)=>{let n=e.style,l=t.style;return!(n?.height!==l?.height||n?.transform!==l?.transform||e["data-highlighted"]!==t["data-highlighted"]||e.tabIndex!==t.tabIndex||e.id!==t.id||e.className!==t.className||e.children!==t.children)}),je=Object.assign(he,{Item:Le});
|
|
1
|
+
"use strict";"use client";var Te=Object.create;var $=Object.defineProperty;var Re=Object.getOwnPropertyDescriptor;var be=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(e,t)=>{for(var a in t)$(e,a,{get:t[a],enumerable:!0})},te=(e,t,a,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of be(t))!Me.call(e,c)&&c!==a&&$(e,c,{get:()=>t[c],enumerable:!(l=Re(t,c))||l.enumerable});return e};var E=(e,t,a)=>(a=e!=null?Te(xe(e)):{},te(t||!e||!e.__esModule?$(a,"default",{value:e,enumerable:!0}):a,e)),Ie=e=>te($({},"__esModule",{value:!0}),e);var Ke={};Fe(Ke,{VirtualMenu:()=>je});module.exports=Ie(Ke);var n=E(require("react")),Y=E(require("classnames")),ge=require("@tanstack/react-virtual");var j=E(require("react"));var s=E(require("react")),de=E(require("classnames")),B=require("radix-ui"),q=require("radix-ui/internal");function ae(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}var J=E(require("react"));function R(e){let[t,a]=J.useState(e),[l,c]=J.useState(e);return Object.is(e,l)||(c(e),a(e)),[t,a]}var oe=E(require("react")),ke="Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.",ne=new Set;function De(e){ne.has(e)||(ne.add(e),console.warn(e))}function re(e){oe.useEffect(()=>{},[e])}var ie={asChild:{type:"boolean"}};var se=["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"],le=["auto","gray","mauve","slate","sage","olive","sand"];var ce=["none","small","medium","large","full"];var Se=["inherit","light","dark"],Ee=["solid","translucent"],Be=["solid","translucent"],He=["90%","95%","100%","105%","110%"],ue=["sans","mono","serif"],r={...ie,hasBackground:{type:"boolean",default:!0},appearance:{type:"enum",values:Se,default:"inherit"},accentColor:{type:"enum",values:se,default:"gray"},grayColor:{type:"enum",values:le,default:"gray"},material:{type:"enum",values:Be,default:"solid"},panelBackground:{type:"enum",values:Ee,default:"solid"},radius:{type:"enum",values:ce,default:"full"},scaling:{type:"enum",values:He,default:"100%"},fontFamily:{type:"enum",values:ue,default:"sans"},headingFontFamily:{type:"enum",values:ue}};var d=()=>{},we={appearance:r.appearance.default,accentColor:r.accentColor.default,grayColor:r.grayColor.default,resolvedGrayColor:r.grayColor.default,material:r.material.default,panelBackground:r.panelBackground.default,radius:r.radius.default,scaling:r.scaling.default,fontFamily:r.fontFamily.default,headingFontFamily:void 0,onAppearanceChange:d,onAccentColorChange:d,onGrayColorChange:d,onMaterialChange:d,onPanelBackgroundChange:d,onRadiusChange:d,onScalingChange:d,onFontFamilyChange:d,onHeadingFontFamilyChange:d},U=s.createContext(void 0);function me(){return s.useContext(U)??we}var Ve=s.forwardRef((e,t)=>{let a=s.useContext(U),l=B.Direction.useDirection();return a===void 0?s.createElement(B.Tooltip.Provider,{delayDuration:200},s.createElement(B.Direction.Provider,{dir:l},s.createElement(pe,{...e,ref:t}))):s.createElement(Q,{...e,ref:t})});Ve.displayName="Theme";var pe=s.forwardRef((e,t)=>{let{appearance:a=r.appearance.default,accentColor:l=r.accentColor.default,grayColor:c=r.grayColor.default,material:b=r.material.default,panelBackground:p=r.panelBackground.default,radius:C=r.radius.default,scaling:f=r.scaling.default,fontFamily:x=r.fontFamily.default,headingFontFamily:P,hasBackground:v=r.hasBackground.default,...M}=e;re(e.panelBackground);let[g,D]=R(a),[H,w]=R(l),[S,F]=R(c),V=b!==r.material.default?b:p,[h,N]=R(V),[I,A]=R(h),[T,k]=R(C),[y,z]=R(f),[K,G]=R(x),[O,L]=R(P);return s.createElement(Q,{...M,ref:t,isRoot:!0,hasBackground:v,appearance:g,accentColor:H,grayColor:S,material:h,panelBackground:I,radius:T,scaling:y,fontFamily:K,headingFontFamily:O,onAppearanceChange:D,onAccentColorChange:w,onGrayColorChange:F,onMaterialChange:N,onPanelBackgroundChange:A,onRadiusChange:k,onScalingChange:z,onFontFamilyChange:G,onHeadingFontFamilyChange:L})});pe.displayName="ThemeRoot";function Ne(){if(typeof navigator>"u")return;let e=navigator.userAgent;if(e.includes("Win"))return"windows";if(e.includes("Mac"))return"macos";if(e.includes("Linux"))return"linux"}var Q=s.forwardRef((e,t)=>{let a=s.useContext(U),{asChild:l,isRoot:c,hasBackground:b,appearance:p=e.appearance??a?.appearance??r.appearance.default,accentColor:C=e.accentColor??a?.accentColor??r.accentColor.default,grayColor:f=e.grayColor??a?.resolvedGrayColor??r.grayColor.default,material:x=e.material??a?.material??r.material.default,panelBackground:P=e.panelBackground??a?.panelBackground??r.panelBackground.default,radius:v=e.radius??a?.radius??r.radius.default,scaling:M=e.scaling??a?.scaling??r.scaling.default,fontFamily:g=e.fontFamily??a?.fontFamily??r.fontFamily.default,headingFontFamily:D=e.headingFontFamily??a?.headingFontFamily,onAppearanceChange:H=d,onAccentColorChange:w=d,onGrayColorChange:S=d,onMaterialChange:F=d,onPanelBackgroundChange:V=d,onRadiusChange:h=d,onScalingChange:N=d,onFontFamilyChange:I=d,onHeadingFontFamilyChange:A=d,...T}=e,k=l?B.Slot.Root:"div",y=f==="auto"?ae(C):f,z=e.appearance==="light"||e.appearance==="dark",K=b===void 0?c||z:b,G=s.useRef(null),O=(0,q.useComposedRefs)(t,G),L="data-os"in T;return(0,q.useLayoutEffect)(()=>{if(!c||L)return;let W=G.current;if(!W)return;let _=Ne();if(_)return W.setAttribute("data-os",_),()=>W.removeAttribute("data-os")},[c,L]),s.createElement(U.Provider,{value:s.useMemo(()=>({appearance:p,accentColor:C,grayColor:f,resolvedGrayColor:y,material:x,panelBackground:P,radius:v,scaling:M,fontFamily:g,headingFontFamily:D,onAppearanceChange:H,onAccentColorChange:w,onGrayColorChange:S,onMaterialChange:F,onPanelBackgroundChange:V,onRadiusChange:h,onScalingChange:N,onFontFamilyChange:I,onHeadingFontFamilyChange:A}),[p,C,f,y,x,P,v,M,g,D,H,w,S,F,V,h,N,I,A])},s.createElement(k,{"data-is-root-theme":c?"true":"false","data-accent-color":C,"data-gray-color":y,"data-has-background":K?"true":"false","data-material":x,"data-panel-background":P,"data-radius":v,"data-scaling":M,"data-font-family":g,"data-heading-font-family":D,ref:O,...T,className:(0,de.default)("radix-themes",{light:p==="light",dark:p==="dark"},T.className)}))});Q.displayName="ThemeImpl";var Ae=j.createContext({isInsideMenu:!1}),ze={1:24,2:32};function X(e,t){let a=t?parseFloat(t)/100:1;return ze[e]*(Number.isFinite(a)?a:1)}function fe(){return j.useContext(Ae)}var Ge=n.memo(function({label:t,isHighlighted:a,id:l,style:c,tabIndex:b,"data-highlighted":p,"data-index":C,onMouseEnter:f,onMouseLeave:x,onClick:P,onKeyDown:v}){return n.createElement("div",{id:l,role:"menuitem",className:(0,Y.default)("rt-reset","rt-BaseMenuItem","rt-VirtualMenuItem"),style:c,tabIndex:b,"data-highlighted":p,"data-index":C,onMouseEnter:f,onMouseLeave:x,onClick:P,onKeyDown:v},t)},(e,t)=>!(e.label!==t.label||e["data-highlighted"]!==t["data-highlighted"]||e.style.height!==t.style.height||e.style.transform!==t.style.transform||e.tabIndex!==t.tabIndex||e.id!==t.id));function he({items:e,itemLabel:t,renderItem:a,size:l,estimatedItemSize:c,overscan:b=5,onSelect:p,className:C,style:f,"aria-label":x}){let P=n.useId(),v=n.useRef(null),[M,g]=n.useState(-1),{isInsideMenu:D,size:H,itemHeight:w}=fe(),{scaling:S}=me(),F=c??(l?X(l,S):w??X(H??"2",S));if(!t&&!a)throw new Error("VirtualMenu requires either itemLabel or renderItem prop");let V=n.useMemo(()=>t?typeof t=="function"?t:o=>o[t]:null,[t]),h=n.useMemo(()=>e.length===0||M<0?-1:Math.min(M,e.length-1),[M,e.length]),N=n.useMemo(()=>typeof F=="function"?F:()=>F,[F]),I=(0,ge.useVirtualizer)({count:e.length,getScrollElement:()=>v.current,estimateSize:N,overscan:b}),A=I.getVirtualItems(),T=n.useRef(e),k=n.useRef(p);T.current=e,k.current=p;let y=n.useRef(I.scrollToIndex);y.current=I.scrollToIndex;let z=n.useRef(h);z.current=h;let K=n.useCallback(o=>{let m=o.currentTarget.dataset.index;m!=null&&g(Number(m))},[]),G=n.useCallback(o=>{let m=o.currentTarget.dataset.index;if(m!=null){let i=Number(m),u=T.current;i>=0&&i<u.length&&k.current?.(u[i],i)}},[]),O=n.useCallback(()=>{},[]),L=n.useCallback(o=>{if(o.key==="Enter"||o.key===" "){o.preventDefault();let m=o.currentTarget.dataset.index;if(m!=null){let i=Number(m),u=T.current;i>=0&&i<u.length&&k.current?.(u[i],i)}}},[]),W=n.useCallback(o=>{let m=T.current,i=z.current;switch(o.key){case"ArrowDown":{o.preventDefault();let u=i<m.length-1?i+1:0;g(u),y.current(u,{align:"auto"});break}case"ArrowUp":{o.preventDefault();let u=i>0?i-1:m.length-1;g(u),y.current(u,{align:"auto"});break}case"Home":{o.preventDefault(),g(0),y.current(0,{align:"start"});break}case"End":{o.preventDefault();let u=m.length-1;g(u),y.current(u,{align:"end"});break}case"Enter":case" ":{o.preventDefault(),i>=0&&i<m.length&&k.current?.(m[i],i);break}case"Tab":{o.preventDefault();break}case"Escape":{o.currentTarget.blur();break}}},[]),_=n.useCallback(o=>`${P}-item-${o}`,[P]),Ce=n.useMemo(()=>({overflow:"auto",position:"relative",...f}),[f]),Z=I.getTotalSize(),Pe=n.useMemo(()=>({height:`${Z}px`,width:"100%",position:"relative"}),[Z]);return n.createElement("div",{ref:v,role:D?"group":"menu","aria-label":x,"aria-activedescendant":h>=0?_(h):void 0,tabIndex:0,onKeyDown:W,className:(0,Y.default)("rt-VirtualMenuRoot",C),style:Ce},n.createElement("div",{className:"rt-VirtualMenuViewport",style:Pe},A.map(o=>{let m=e[o.index],i=o.index,u=h===i,ve={height:o.size,transform:`translateY(${o.start}px)`},ee={id:_(i),isHighlighted:u,style:ve,tabIndex:u?0:-1,"data-highlighted":u?!0:void 0,"data-index":i,onMouseEnter:K,onMouseLeave:O,onClick:G,onKeyDown:L};return a?n.createElement(a,{key:o.key,item:m,index:i,...ee}):n.createElement(Ge,{key:o.key,label:V(m),...ee})})))}he.displayName="VirtualMenu";var ye=n.forwardRef(({className:e,children:t,...a},l)=>n.createElement("div",{ref:l,role:"menuitem",className:(0,Y.default)("rt-reset","rt-BaseMenuItem","rt-VirtualMenuItem",e),...a},t));ye.displayName="VirtualMenu.Item";var Le=n.memo(ye,(e,t)=>{let a=e.style,l=t.style;return!(a?.height!==l?.height||a?.transform!==l?.transform||e["data-highlighted"]!==t["data-highlighted"]||e.tabIndex!==t.tabIndex||e.id!==t.id||e.className!==t.className||e.children!==t.children)}),je=Object.assign(he,{Item:Le});
|
|
2
2
|
//# sourceMappingURL=virtual-menu.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/virtual-menu.tsx", "../../../src/components/_internal/menu-context.tsx", "../../../src/components/theme.tsx", "../../../src/helpers/get-matching-gray-color.ts", "../../../src/hooks/use-prop-synced-state.ts", "../../../src/helpers/use-deprecation-warning.ts", "../../../src/props/as-child.prop.ts", "../../../src/props/color.prop.ts", "../../../src/props/radius.prop.ts", "../../../src/components/theme.props.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { useMenuContext, getMenuItemHeight } from './_internal/menu-context.js';\nimport { useThemeContext } from './theme.js';\n\n/**\n * VirtualMenu - A virtualized menu component for rendering large lists efficiently.\n *\n * Uses TanStack Virtual to render only visible items.\n * Works inside any container (DropdownMenu.Content, Popover.Content, etc.)\n *\n * @example\n * // Simple usage with itemLabel\n * <VirtualMenu\n * items={items}\n * itemLabel={(item) => item.name}\n * onSelect={handleSelect}\n * />\n *\n * @example\n * // Custom rendering with renderItem\n * const UserItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>\n * <Avatar src={item.avatar} />\n * {item.name}\n * </VirtualMenu.Item>\n * ));\n *\n * <VirtualMenu items={users} renderItem={UserItem} onSelect={handleSelect} />\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Props passed to custom renderItem components */\ninterface VirtualMenuRenderItemProps<T> {\n /** The item data */\n item: T;\n /** Index in the items array */\n index: number;\n /** Whether this item is currently highlighted */\n isHighlighted: boolean;\n /** Unique ID for accessibility */\n id: string;\n /** Positioning styles - must be applied */\n style: React.CSSProperties;\n /** Tab index for focus management */\n tabIndex: number;\n /** Data attribute for CSS styling */\n 'data-highlighted': true | undefined;\n /** Data attribute for event delegation */\n 'data-index': number;\n /** Mouse enter handler */\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n /** Mouse leave handler */\n onMouseLeave: () => void;\n /** Click handler */\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n /** Keyboard handler for Enter/Space activation */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface VirtualMenuProps<T> {\n /** Array of items to render */\n items: T[];\n /**\n * Simple label accessor for basic text items.\n * Can be a property key or a function.\n * @example\n * itemLabel=\"name\"\n * itemLabel={(item) => item.name}\n */\n itemLabel?: keyof T | ((item: T) => React.ReactNode);\n /**\n * Custom component for rendering items.\n * Must be memoized (React.memo) for optimal performance.\n * @example\n * const MyItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>{item.name}</VirtualMenu.Item>\n * ));\n * <VirtualMenu items={items} renderItem={MyItem} />\n */\n renderItem?: React.ComponentType<VirtualMenuRenderItemProps<T>>;\n /**\n * Menu size - controls item height.\n * Automatically inherited from parent DropdownMenu.Content/ContextMenu.Content.\n * Only set manually when using VirtualMenu outside of a menu context.\n * @default '2' (or inherited from context)\n */\n size?: '1' | '2';\n /**\n * Estimated height of each item in pixels.\n * Can be a number (same for all) or a function (per-item).\n * Usually not needed - height is automatically derived from size prop/context.\n * Use this only for custom item heights (e.g., variable height items).\n */\n estimatedItemSize?: number | ((index: number) => number);\n /** Number of items to render outside visible area */\n overscan?: number;\n /** Callback when an item is selected */\n onSelect?: (item: T, index: number) => void;\n /** Additional class name */\n className?: string;\n /** Additional styles */\n style?: React.CSSProperties;\n /** Accessible label for the menu */\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Internal Memoized Item Component\n// ============================================================================\n\ninterface SimpleItemProps {\n label: React.ReactNode;\n isHighlighted: boolean;\n id: string;\n style: React.CSSProperties;\n tabIndex: number;\n 'data-highlighted': true | undefined;\n 'data-index': number;\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nconst SimpleItem = React.memo(\n function SimpleItem({\n label,\n isHighlighted: _isHighlighted,\n id,\n style,\n tabIndex,\n 'data-highlighted': dataHighlighted,\n 'data-index': dataIndex,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n }: SimpleItemProps) {\n return (\n <div\n id={id}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem')}\n style={style}\n tabIndex={tabIndex}\n data-highlighted={dataHighlighted}\n data-index={dataIndex}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {label}\n </div>\n );\n },\n (prev, next) => {\n // Custom comparison - only re-render if these change\n if (prev.label !== next.label) return false;\n if (prev['data-highlighted'] !== next['data-highlighted']) return false;\n if (prev.style.height !== next.style.height) return false;\n if (prev.style.transform !== next.style.transform) return false;\n if (prev.tabIndex !== next.tabIndex) return false;\n if (prev.id !== next.id) return false;\n // Event handlers are stable, skip comparison\n return true;\n },\n);\n\n// ============================================================================\n// VirtualMenu Component\n// ============================================================================\n\nfunction VirtualMenuRoot<T>({\n items,\n itemLabel,\n renderItem: RenderItem,\n size: sizeProp,\n estimatedItemSize: estimatedItemSizeProp,\n overscan = 5,\n onSelect,\n className,\n style,\n 'aria-label': ariaLabel,\n}: VirtualMenuProps<T>) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n const { scaling } = useThemeContext();\n\n // Resolve item height: explicit prop > own size > parent menu > default size '2'.\n // Heights follow the theme scaling, like the --base-menu-item-height token.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp, scaling)\n : (contextItemHeight ?? getMenuItemHeight(contextSize ?? '2', scaling)));\n\n // Validate props\n if (!itemLabel && !RenderItem) {\n throw new Error('VirtualMenu requires either itemLabel or renderItem prop');\n }\n\n // Normalize itemLabel to a function\n const getLabel = React.useMemo(() => {\n if (!itemLabel) return null;\n if (typeof itemLabel === 'function') return itemLabel;\n return (item: T) => item[itemLabel] as React.ReactNode;\n }, [itemLabel]);\n\n // Derive safe highlighted index\n const safeHighlightedIndex = React.useMemo(() => {\n if (items.length === 0) return -1;\n if (highlightedIndex < 0) return -1;\n return Math.min(highlightedIndex, items.length - 1);\n }, [highlightedIndex, items.length]);\n\n // Normalize estimatedItemSize to a function\n const getItemSize = React.useMemo(\n () =>\n typeof estimatedItemSize === 'function'\n ? estimatedItemSize\n : () => estimatedItemSize,\n [estimatedItemSize],\n );\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: getItemSize,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n // Refs for stable handler references\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n\n const scrollToIndexRef = React.useRef(virtualizer.scrollToIndex);\n scrollToIndexRef.current = virtualizer.scrollToIndex;\n\n const highlightedIndexRef = React.useRef(safeHighlightedIndex);\n highlightedIndexRef.current = safeHighlightedIndex;\n\n // Stable event handlers\n const handleItemMouseEnter = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n setHighlightedIndex(Number(index));\n }\n }, []);\n\n const handleItemClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }, []);\n\n const noop = React.useCallback(() => {}, []);\n\n // Item-level keyboard handler for Enter/Space activation (satisfies a11y lint rule)\n const handleItemKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }\n }, []);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n const currentItems = itemsRef.current;\n const currentHighlightedIndex = highlightedIndexRef.current;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex =\n currentHighlightedIndex < currentItems.length - 1 ? currentHighlightedIndex + 1 : 0;\n setHighlightedIndex(nextIndex);\n scrollToIndexRef.current(nextIndex, { align: 'auto' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex =\n currentHighlightedIndex > 0 ? currentHighlightedIndex - 1 : currentItems.length - 1;\n setHighlightedIndex(prevIndex);\n scrollToIndexRef.current(prevIndex, { align: 'auto' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setHighlightedIndex(0);\n scrollToIndexRef.current(0, { align: 'start' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastIndex = currentItems.length - 1;\n setHighlightedIndex(lastIndex);\n scrollToIndexRef.current(lastIndex, { align: 'end' });\n break;\n }\n case 'Enter':\n case ' ': {\n e.preventDefault();\n if (currentHighlightedIndex >= 0 && currentHighlightedIndex < currentItems.length) {\n onSelectRef.current?.(currentItems[currentHighlightedIndex], currentHighlightedIndex);\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n break;\n }\n case 'Escape': {\n (e.currentTarget as HTMLElement).blur();\n break;\n }\n }\n }, []);\n\n // Item ID generator\n const getItemId = React.useCallback(\n (index: number) => `${menuId}-item-${index}`,\n [menuId],\n );\n\n // Memoize styles\n const rootStyle = React.useMemo(\n () => ({\n overflow: 'auto' as const,\n position: 'relative' as const,\n ...style,\n }),\n [style],\n );\n\n const totalSize = virtualizer.getTotalSize();\n const viewportStyle = React.useMemo(\n () => ({\n height: `${totalSize}px`,\n width: '100%' as const,\n position: 'relative' as const,\n }),\n [totalSize],\n );\n\n return (\n <div\n ref={parentRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-label={ariaLabel}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={classNames('rt-VirtualMenuRoot', className)}\n style={rootStyle}\n >\n <div className=\"rt-VirtualMenuViewport\" style={viewportStyle}>\n {virtualItems.map((virtualRow) => {\n const item = items[virtualRow.index];\n const index = virtualRow.index;\n const isHighlighted = safeHighlightedIndex === index;\n\n const itemStyle: React.CSSProperties = {\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n };\n\n const commonProps = {\n id: getItemId(index),\n isHighlighted,\n style: itemStyle,\n tabIndex: isHighlighted ? 0 : -1,\n 'data-highlighted': isHighlighted ? true as const : undefined,\n 'data-index': index,\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: noop,\n onClick: handleItemClick,\n onKeyDown: handleItemKeyDown,\n };\n\n // Use renderItem if provided, otherwise use SimpleItem with itemLabel\n if (RenderItem) {\n return (\n <RenderItem\n key={virtualRow.key}\n item={item}\n index={index}\n {...commonProps}\n />\n );\n }\n\n return (\n <SimpleItem\n key={virtualRow.key}\n label={getLabel!(item)}\n {...commonProps}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nVirtualMenuRoot.displayName = 'VirtualMenu';\n\n// ============================================================================\n// VirtualMenu.Item Component (for custom renderItem usage)\n// ============================================================================\n\ninterface VirtualMenuItemProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n /** Data attribute for highlight styling */\n 'data-highlighted'?: true | undefined;\n /** Data attribute for event delegation */\n 'data-index'?: number;\n}\n\nconst VirtualMenuItemInner = React.forwardRef<HTMLDivElement, VirtualMenuItemProps>(\n ({ className, children, ...props }, forwardedRef) => {\n return (\n <div\n ref={forwardedRef}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nVirtualMenuItemInner.displayName = 'VirtualMenu.Item';\n\n// Memoized with custom comparison\nconst VirtualMenuItem = React.memo(VirtualMenuItemInner, (prevProps, nextProps) => {\n const prevStyle = prevProps.style as React.CSSProperties | undefined;\n const nextStyle = nextProps.style as React.CSSProperties | undefined;\n if (prevStyle?.height !== nextStyle?.height) return false;\n if (prevStyle?.transform !== nextStyle?.transform) return false;\n if (prevProps['data-highlighted'] !== nextProps['data-highlighted']) return false;\n if (prevProps.tabIndex !== nextProps.tabIndex) return false;\n if (prevProps.id !== nextProps.id) return false;\n if (prevProps.className !== nextProps.className) return false;\n if (prevProps.children !== nextProps.children) return false;\n return true;\n});\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst VirtualMenu = Object.assign(VirtualMenuRoot, {\n Item: VirtualMenuItem,\n});\n\nexport { VirtualMenu };\nexport type { VirtualMenuProps, VirtualMenuItemProps, VirtualMenuRenderItemProps };\n", "'use client';\n\nimport * as React from 'react';\n\nimport { useThemeContext } from '../theme.js';\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/** Map menu size to item height in pixels at 100% scaling */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 24, // --space-5\n '2': 32, // --space-6\n};\n\n/** Item height in px for a size at the given theme scaling (\"100%\", \"110%\"\u2026). */\nexport function getMenuItemHeight(size: MenuSize, scaling: string | undefined): number {\n const scale = scaling ? parseFloat(scaling) / 100 : 1;\n return menuSizeToItemHeight[size] * (Number.isFinite(scale) ? scale : 1);\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const { scaling } = useThemeContext();\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize, scaling) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n", "'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot, Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { usePropSyncedState } from '../hooks/use-prop-synced-state.js';\nimport { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeMaterial = (typeof themePropDefs.material.values)[number];\ntype ThemePanelBackground = (typeof themePropDefs.panelBackground.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeScaling = (typeof themePropDefs.scaling.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\n// Headings follow the body font until something sets this, so `undefined` is a\n// meaningful value here rather than a missing one.\ntype ThemeHeadingFontFamily = ThemeFontFamily | undefined;\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onMaterialChange: (material: ThemeMaterial) => void;\n onPanelBackgroundChange: (panelBackground: ThemePanelBackground) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onScalingChange: (scaling: ThemeScaling) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n onHeadingFontFamilyChange: (headingFontFamily: ThemeHeadingFontFamily) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n material: ThemeMaterial;\n panelBackground: ThemePanelBackground;\n radius: ThemeRadius;\n scaling: ThemeScaling;\n fontFamily: ThemeFontFamily;\n headingFontFamily: ThemeHeadingFontFamily;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n material: themePropDefs.material.default,\n panelBackground: themePropDefs.panelBackground.default,\n radius: themePropDefs.radius.default,\n scaling: themePropDefs.scaling.default,\n fontFamily: themePropDefs.fontFamily.default,\n headingFontFamily: undefined,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onMaterialChange: noop,\n onPanelBackgroundChange: noop,\n onRadiusChange: noop,\n onScalingChange: noop,\n onFontFamilyChange: noop,\n onHeadingFontFamilyChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n // Direction is inherited: a Radix DirectionProvider above the Theme (for a right-to-left app)\n // wins, and left-to-right stays the default when there is none.\n const dir = Direction.useDirection();\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <TooltipPrimitive.Provider delayDuration={200}>\n <Direction.Provider dir={dir}>\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n </TooltipPrimitive.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>(\n (props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n material: materialProp = themePropDefs.material.default,\n panelBackground: panelBackgroundProp = themePropDefs.panelBackground.default,\n radius: radiusProp = themePropDefs.radius.default,\n scaling: scalingProp = themePropDefs.scaling.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n headingFontFamily: headingFontFamilyProp,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n useDeprecatedPanelBackgroundWarning(props.panelBackground);\n\n // Each of these follows its prop but stays independently settable, so\n // `ThemePanel` can change the theme at runtime. Syncing during render\n // rather than in an effect matters here: an effect would commit the old\n // theme first and re-render every consumer of the context a second time.\n const [appearance, setAppearance] = usePropSyncedState(appearanceProp);\n const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);\n const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);\n\n // Material takes precedence over panelBackground\n const effectiveMaterial =\n materialProp !== themePropDefs.material.default ? materialProp : panelBackgroundProp;\n const [material, setMaterial] = usePropSyncedState(effectiveMaterial);\n\n // Keep panelBackground in sync with material for backward compatibility\n const [panelBackground, setPanelBackground] = usePropSyncedState(material);\n\n const [radius, setRadius] = usePropSyncedState(radiusProp);\n const [scaling, setScaling] = usePropSyncedState(scalingProp);\n const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);\n const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n material={material}\n panelBackground={panelBackground}\n radius={radius}\n scaling={scaling}\n fontFamily={fontFamily}\n headingFontFamily={headingFontFamily}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onMaterialChange={setMaterial}\n onPanelBackgroundChange={setPanelBackground}\n onRadiusChange={setRadius}\n onScalingChange={setScaling}\n onFontFamilyChange={setFontFamily}\n onHeadingFontFamilyChange={setHeadingFontFamily}\n />\n );\n },\n);\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nfunction getClientOS(): 'windows' | 'macos' | 'linux' | undefined {\n if (typeof navigator === 'undefined') return undefined;\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'windows';\n if (ua.includes('Mac')) return 'macos';\n if (ua.includes('Linux')) return 'linux';\n return undefined;\n}\n\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n material = props.material ?? context?.material ?? themePropDefs.material.default,\n panelBackground = props.panelBackground ??\n context?.panelBackground ??\n themePropDefs.panelBackground.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n scaling = props.scaling ?? context?.scaling ?? themePropDefs.scaling.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n headingFontFamily = props.headingFontFamily ?? context?.headingFontFamily,\n //\n onAppearanceChange = noop,\n onAccentColorChange = noop,\n onGrayColorChange = noop,\n onMaterialChange = noop,\n onPanelBackgroundChange = noop,\n onRadiusChange = noop,\n onScalingChange = noop,\n onFontFamilyChange = noop,\n onHeadingFontFamilyChange = noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground =\n hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n // `data-os` can only be resolved on the client. Writing it straight to the\n // DOM keeps it out of the server markup \u2014 so hydration still matches \u2014 without\n // spending a render pass, and a state update here would re-render the whole\n // application on mount.\n const rootRef = React.useRef<ThemeImplElement>(null);\n const composedRef = useComposedRefs(forwardedRef, rootRef);\n const hasExplicitOS = 'data-os' in themeProps;\n\n useLayoutEffect(() => {\n if (!isRoot || hasExplicitOS) return;\n const node = rootRef.current;\n if (!node) return;\n\n const os = getClientOS();\n if (!os) return;\n node.setAttribute('data-os', os);\n return () => node.removeAttribute('data-os');\n }, [isRoot, hasExplicitOS]);\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n headingFontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n headingFontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n ],\n )}\n >\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-material={material}\n data-panel-background={panelBackground}\n data-radius={radius}\n data-scaling={scaling}\n data-font-family={fontFamily}\n data-heading-font-family={headingFontFamily}\n ref={composedRef}\n {...themeProps}\n className={classNames(\n 'radix-themes',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n", "import type { accentColors } from '../props/color.prop.js';\n\ntype ThemeAccentColor = (typeof accentColors)[number];\n\nexport function getMatchingGrayColor(accentColor: ThemeAccentColor) {\n switch (accentColor) {\n case 'tomato':\n case 'red':\n case 'ruby':\n case 'crimson':\n case 'pink':\n case 'plum':\n case 'purple':\n case 'violet':\n return 'mauve';\n case 'iris':\n case 'indigo':\n case 'blue':\n case 'sky':\n case 'cyan':\n return 'slate';\n case 'teal':\n case 'jade':\n case 'mint':\n case 'green':\n return 'sage';\n case 'grass':\n case 'lime':\n return 'olive';\n case 'yellow':\n case 'amber':\n case 'orange':\n case 'brown':\n case 'gold':\n case 'bronze':\n return 'sand';\n case 'gray':\n return 'gray';\n }\n}\n", "import * as React from 'react';\n\n/**\n * State that tracks a prop but can also be set imperatively \u2014 the shape `Theme`\n * needs, where a prop sets the value and `ThemePanel` can change it at runtime.\n *\n * Adjusts state during render rather than syncing in a `useEffect`. An effect\n * would commit one render carrying the *old* value and schedule a second one,\n * which for a provider means every consumer renders twice and the browser can\n * paint the stale value in between.\n *\n * @see https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\nexport function usePropSyncedState<T>(propValue: T) {\n const [value, setValue] = React.useState(propValue);\n const [previousPropValue, setPreviousPropValue] = React.useState(propValue);\n\n if (!Object.is(propValue, previousPropValue)) {\n setPreviousPropValue(propValue);\n setValue(propValue);\n }\n\n return [value, setValue] as const;\n}\n", "import * as React from 'react';\n\nconst PANEL_BACKGROUND_MESSAGE = 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.';\n\nconst warned = new Set<string>();\n\nfunction warnOnce(message: string) {\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(message);\n}\n\n/**\n * Warns, in development only, that `panelBackground` is deprecated.\n *\n * The `process.env.NODE_ENV` check is a compile-time constant, so a production\n * bundle minifies the effect body away to an empty function instead of reading\n * props and formatting a message per mounted component. The message is also\n * logged once per session rather than once per component instance.\n */\nexport function useDeprecatedPanelBackgroundWarning(panelBackground: unknown) {\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') return;\n if (panelBackground !== undefined) warnOnce(PANEL_BACKGROUND_MESSAGE);\n }, [panelBackground]);\n}\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import type { 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\nexport {\n accentColorPropDef,\n colorPropDef,\n //\n accentColors,\n grayColors,\n};\n", "import type { PropDef } from './prop-def.js';\n\nconst radii = ['none', 'small', 'medium', 'large', 'full'] as const;\n\nconst radiusPropDef = {\n radius: {\n type: 'enum',\n values: radii,\n default: undefined,\n },\n} satisfies {\n radius: PropDef<(typeof radii)[number]>;\n};\n\nexport { radiusPropDef, radii };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColors, grayColors } from '../props/color.prop.js';\nimport { radii } from '../props/radius.prop.js';\n\nimport type { GetPropDefTypes, PropDef } from '../props/prop-def.js';\n\nconst appearances = ['inherit', 'light', 'dark'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\nconst scalings = ['90%', '95%', '100%', '105%', '110%'] as const;\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\n\nconst themePropDefs = {\n ...asChildPropDef,\n /**\n * Whether to apply background color to the Theme element.\n *\n * Defaults to true for the root Theme and for Theme elements that\n * have an explicit light or dark appearance prop.\n */\n hasBackground: { type: 'boolean', default: true },\n /**\n * Sets the color scheme of the theme, typcially referred to as light and dark mode.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/dark-mode\n */\n appearance: { type: 'enum', values: appearances, default: 'inherit' },\n /**\n * Selects one of the accent color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n accentColor: { type: 'enum', values: accentColors, default: 'blue' },\n /**\n * Selects one of the gray color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n grayColor: { type: 'enum', values: grayColors, default: 'slate' },\n /**\n * Controls whether to use a solid or translucent background color on panelled\n * elements such as Card or Table is solid or translucent.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n material: { type: 'enum', values: materials, default: 'translucent' },\n /**\n * Controls whether to use a solid or translucent background color on panelled\n * elements such as Card or Table is solid or translucent.\n *\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: 'translucent' },\n /**\n * Sets the default radius of the components.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n radius: { type: 'enum', values: radii, default: 'full' },\n /**\n * Sets a scaling multiplier for values like spacing, font sizes, line heights, etc. are scaled.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/layout\n */\n scaling: { type: 'enum', values: scalings, default: '100%' },\n /**\n * Sets the font family used for body text in the theme.\n *\n * Headings follow this unless `headingFontFamily` (or the `--font-heading`\n * token) says otherwise.\n *\n * @default 'sans'\n */\n fontFamily: { type: 'enum', values: fontFamilies, default: 'sans' },\n /**\n * Sets the font family used for `Heading`, independently of body text.\n *\n * Deliberately has no default: when it is left unset no attribute is\n * emitted and `--font-heading` keeps following `--font-body`, so a\n * `--font-heading` override in your own CSS survives a `fontFamily` switch.\n */\n headingFontFamily: { type: 'enum', values: fontFamilies },\n} satisfies {\n hasBackground: PropDef<boolean>;\n appearance: PropDef<(typeof appearances)[number]>;\n accentColor: PropDef<(typeof accentColors)[number]>;\n grayColor: PropDef<(typeof grayColors)[number]>;\n material: PropDef<(typeof materials)[number]>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number]>;\n radius: PropDef<(typeof radii)[number]>;\n scaling: PropDef<(typeof scalings)[number]>;\n fontFamily: PropDef<(typeof fontFamilies)[number]>;\n headingFontFamily: PropDef<(typeof fontFamilies)[number]>;\n};\n\ntype ThemeOwnProps = GetPropDefTypes<typeof themePropDefs & typeof asChildPropDef>;\n\nexport { themePropDefs };\nexport type { ThemeOwnProps };\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { useMenuContext, getMenuItemHeight } from './_internal/menu-context.js';\nimport { useThemeContext } from './theme.js';\n\n/**\n * VirtualMenu - A virtualized menu component for rendering large lists efficiently.\n *\n * Uses TanStack Virtual to render only visible items.\n * Works inside any container (DropdownMenu.Content, Popover.Content, etc.)\n *\n * @example\n * // Simple usage with itemLabel\n * <VirtualMenu\n * items={items}\n * itemLabel={(item) => item.name}\n * onSelect={handleSelect}\n * />\n *\n * @example\n * // Custom rendering with renderItem\n * const UserItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>\n * <Avatar src={item.avatar} />\n * {item.name}\n * </VirtualMenu.Item>\n * ));\n *\n * <VirtualMenu items={users} renderItem={UserItem} onSelect={handleSelect} />\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Props passed to custom renderItem components */\ninterface VirtualMenuRenderItemProps<T> {\n /** The item data */\n item: T;\n /** Index in the items array */\n index: number;\n /** Whether this item is currently highlighted */\n isHighlighted: boolean;\n /** Unique ID for accessibility */\n id: string;\n /** Positioning styles - must be applied */\n style: React.CSSProperties;\n /** Tab index for focus management */\n tabIndex: number;\n /** Data attribute for CSS styling */\n 'data-highlighted': true | undefined;\n /** Data attribute for event delegation */\n 'data-index': number;\n /** Mouse enter handler */\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n /** Mouse leave handler */\n onMouseLeave: () => void;\n /** Click handler */\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n /** Keyboard handler for Enter/Space activation */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface VirtualMenuProps<T> {\n /** Array of items to render */\n items: T[];\n /**\n * Simple label accessor for basic text items.\n * Can be a property key or a function.\n * @example\n * itemLabel=\"name\"\n * itemLabel={(item) => item.name}\n */\n itemLabel?: keyof T | ((item: T) => React.ReactNode);\n /**\n * Custom component for rendering items.\n * Must be memoized (React.memo) for optimal performance.\n * @example\n * const MyItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>{item.name}</VirtualMenu.Item>\n * ));\n * <VirtualMenu items={items} renderItem={MyItem} />\n */\n renderItem?: React.ComponentType<VirtualMenuRenderItemProps<T>>;\n /**\n * Menu size - controls item height.\n * Automatically inherited from parent DropdownMenu.Content/ContextMenu.Content.\n * Only set manually when using VirtualMenu outside of a menu context.\n * @default '2' (or inherited from context)\n */\n size?: '1' | '2';\n /**\n * Estimated height of each item in pixels.\n * Can be a number (same for all) or a function (per-item).\n * Usually not needed - height is automatically derived from size prop/context.\n * Use this only for custom item heights (e.g., variable height items).\n */\n estimatedItemSize?: number | ((index: number) => number);\n /** Number of items to render outside visible area */\n overscan?: number;\n /** Callback when an item is selected */\n onSelect?: (item: T, index: number) => void;\n /** Additional class name */\n className?: string;\n /** Additional styles */\n style?: React.CSSProperties;\n /** Accessible label for the menu */\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Internal Memoized Item Component\n// ============================================================================\n\ninterface SimpleItemProps {\n label: React.ReactNode;\n isHighlighted: boolean;\n id: string;\n style: React.CSSProperties;\n tabIndex: number;\n 'data-highlighted': true | undefined;\n 'data-index': number;\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nconst SimpleItem = React.memo(\n function SimpleItem({\n label,\n isHighlighted: _isHighlighted,\n id,\n style,\n tabIndex,\n 'data-highlighted': dataHighlighted,\n 'data-index': dataIndex,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n }: SimpleItemProps) {\n return (\n <div\n id={id}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem')}\n style={style}\n tabIndex={tabIndex}\n data-highlighted={dataHighlighted}\n data-index={dataIndex}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {label}\n </div>\n );\n },\n (prev, next) => {\n // Custom comparison - only re-render if these change\n if (prev.label !== next.label) return false;\n if (prev['data-highlighted'] !== next['data-highlighted']) return false;\n if (prev.style.height !== next.style.height) return false;\n if (prev.style.transform !== next.style.transform) return false;\n if (prev.tabIndex !== next.tabIndex) return false;\n if (prev.id !== next.id) return false;\n // Event handlers are stable, skip comparison\n return true;\n },\n);\n\n// ============================================================================\n// VirtualMenu Component\n// ============================================================================\n\nfunction VirtualMenuRoot<T>({\n items,\n itemLabel,\n renderItem: RenderItem,\n size: sizeProp,\n estimatedItemSize: estimatedItemSizeProp,\n overscan = 5,\n onSelect,\n className,\n style,\n 'aria-label': ariaLabel,\n}: VirtualMenuProps<T>) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n const { scaling } = useThemeContext();\n\n // Resolve item height: explicit prop > own size > parent menu > default size '2'.\n // Heights follow the theme scaling, like the --base-menu-item-height token.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp, scaling)\n : (contextItemHeight ?? getMenuItemHeight(contextSize ?? '2', scaling)));\n\n // Validate props\n if (!itemLabel && !RenderItem) {\n throw new Error('VirtualMenu requires either itemLabel or renderItem prop');\n }\n\n // Normalize itemLabel to a function\n const getLabel = React.useMemo(() => {\n if (!itemLabel) return null;\n if (typeof itemLabel === 'function') return itemLabel;\n return (item: T) => item[itemLabel] as React.ReactNode;\n }, [itemLabel]);\n\n // Derive safe highlighted index\n const safeHighlightedIndex = React.useMemo(() => {\n if (items.length === 0) return -1;\n if (highlightedIndex < 0) return -1;\n return Math.min(highlightedIndex, items.length - 1);\n }, [highlightedIndex, items.length]);\n\n // Normalize estimatedItemSize to a function\n const getItemSize = React.useMemo(\n () =>\n typeof estimatedItemSize === 'function'\n ? estimatedItemSize\n : () => estimatedItemSize,\n [estimatedItemSize],\n );\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: getItemSize,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n // Refs for stable handler references\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n\n const scrollToIndexRef = React.useRef(virtualizer.scrollToIndex);\n scrollToIndexRef.current = virtualizer.scrollToIndex;\n\n const highlightedIndexRef = React.useRef(safeHighlightedIndex);\n highlightedIndexRef.current = safeHighlightedIndex;\n\n // Stable event handlers\n const handleItemMouseEnter = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n setHighlightedIndex(Number(index));\n }\n }, []);\n\n const handleItemClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }, []);\n\n const noop = React.useCallback(() => {}, []);\n\n // Item-level keyboard handler for Enter/Space activation (satisfies a11y lint rule)\n const handleItemKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }\n }, []);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n const currentItems = itemsRef.current;\n const currentHighlightedIndex = highlightedIndexRef.current;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex =\n currentHighlightedIndex < currentItems.length - 1 ? currentHighlightedIndex + 1 : 0;\n setHighlightedIndex(nextIndex);\n scrollToIndexRef.current(nextIndex, { align: 'auto' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex =\n currentHighlightedIndex > 0 ? currentHighlightedIndex - 1 : currentItems.length - 1;\n setHighlightedIndex(prevIndex);\n scrollToIndexRef.current(prevIndex, { align: 'auto' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setHighlightedIndex(0);\n scrollToIndexRef.current(0, { align: 'start' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastIndex = currentItems.length - 1;\n setHighlightedIndex(lastIndex);\n scrollToIndexRef.current(lastIndex, { align: 'end' });\n break;\n }\n case 'Enter':\n case ' ': {\n e.preventDefault();\n if (currentHighlightedIndex >= 0 && currentHighlightedIndex < currentItems.length) {\n onSelectRef.current?.(currentItems[currentHighlightedIndex], currentHighlightedIndex);\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n break;\n }\n case 'Escape': {\n (e.currentTarget as HTMLElement).blur();\n break;\n }\n }\n }, []);\n\n // Item ID generator\n const getItemId = React.useCallback(\n (index: number) => `${menuId}-item-${index}`,\n [menuId],\n );\n\n // Memoize styles\n const rootStyle = React.useMemo(\n () => ({\n overflow: 'auto' as const,\n position: 'relative' as const,\n ...style,\n }),\n [style],\n );\n\n const totalSize = virtualizer.getTotalSize();\n const viewportStyle = React.useMemo(\n () => ({\n height: `${totalSize}px`,\n width: '100%' as const,\n position: 'relative' as const,\n }),\n [totalSize],\n );\n\n return (\n <div\n ref={parentRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-label={ariaLabel}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={classNames('rt-VirtualMenuRoot', className)}\n style={rootStyle}\n >\n <div className=\"rt-VirtualMenuViewport\" style={viewportStyle}>\n {virtualItems.map((virtualRow) => {\n const item = items[virtualRow.index];\n const index = virtualRow.index;\n const isHighlighted = safeHighlightedIndex === index;\n\n const itemStyle: React.CSSProperties = {\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n };\n\n const commonProps = {\n id: getItemId(index),\n isHighlighted,\n style: itemStyle,\n tabIndex: isHighlighted ? 0 : -1,\n 'data-highlighted': isHighlighted ? true as const : undefined,\n 'data-index': index,\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: noop,\n onClick: handleItemClick,\n onKeyDown: handleItemKeyDown,\n };\n\n // Use renderItem if provided, otherwise use SimpleItem with itemLabel\n if (RenderItem) {\n return (\n <RenderItem\n key={virtualRow.key}\n item={item}\n index={index}\n {...commonProps}\n />\n );\n }\n\n return (\n <SimpleItem\n key={virtualRow.key}\n label={getLabel!(item)}\n {...commonProps}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nVirtualMenuRoot.displayName = 'VirtualMenu';\n\n// ============================================================================\n// VirtualMenu.Item Component (for custom renderItem usage)\n// ============================================================================\n\ninterface VirtualMenuItemProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n /** Data attribute for highlight styling */\n 'data-highlighted'?: true | undefined;\n /** Data attribute for event delegation */\n 'data-index'?: number;\n}\n\nconst VirtualMenuItemInner = React.forwardRef<HTMLDivElement, VirtualMenuItemProps>(\n ({ className, children, ...props }, forwardedRef) => {\n return (\n <div\n ref={forwardedRef}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nVirtualMenuItemInner.displayName = 'VirtualMenu.Item';\n\n// Memoized with custom comparison\nconst VirtualMenuItem = React.memo(VirtualMenuItemInner, (prevProps, nextProps) => {\n const prevStyle = prevProps.style as React.CSSProperties | undefined;\n const nextStyle = nextProps.style as React.CSSProperties | undefined;\n if (prevStyle?.height !== nextStyle?.height) return false;\n if (prevStyle?.transform !== nextStyle?.transform) return false;\n if (prevProps['data-highlighted'] !== nextProps['data-highlighted']) return false;\n if (prevProps.tabIndex !== nextProps.tabIndex) return false;\n if (prevProps.id !== nextProps.id) return false;\n if (prevProps.className !== nextProps.className) return false;\n if (prevProps.children !== nextProps.children) return false;\n return true;\n});\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst VirtualMenu = Object.assign(VirtualMenuRoot, {\n Item: VirtualMenuItem,\n});\n\nexport { VirtualMenu };\nexport type { VirtualMenuProps, VirtualMenuItemProps, VirtualMenuRenderItemProps };\n", "'use client';\n\nimport * as React from 'react';\n\nimport { useThemeContext } from '../theme.js';\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/** Map menu size to item height in pixels at 100% scaling */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 24, // --space-5\n '2': 32, // --space-6\n};\n\n/** Item height in px for a size at the given theme scaling (\"100%\", \"110%\"\u2026). */\nexport function getMenuItemHeight(size: MenuSize, scaling: string | undefined): number {\n const scale = scaling ? parseFloat(scaling) / 100 : 1;\n return menuSizeToItemHeight[size] * (Number.isFinite(scale) ? scale : 1);\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const { scaling } = useThemeContext();\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize, scaling) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n", "'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot, Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { usePropSyncedState } from '../hooks/use-prop-synced-state.js';\nimport { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeMaterial = (typeof themePropDefs.material.values)[number];\ntype ThemePanelBackground = (typeof themePropDefs.panelBackground.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeScaling = (typeof themePropDefs.scaling.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\n// Headings follow the body font until something sets this, so `undefined` is a\n// meaningful value here rather than a missing one.\ntype ThemeHeadingFontFamily = ThemeFontFamily | undefined;\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onMaterialChange: (material: ThemeMaterial) => void;\n onPanelBackgroundChange: (panelBackground: ThemePanelBackground) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onScalingChange: (scaling: ThemeScaling) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n onHeadingFontFamilyChange: (headingFontFamily: ThemeHeadingFontFamily) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n material: ThemeMaterial;\n panelBackground: ThemePanelBackground;\n radius: ThemeRadius;\n scaling: ThemeScaling;\n fontFamily: ThemeFontFamily;\n headingFontFamily: ThemeHeadingFontFamily;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n material: themePropDefs.material.default,\n panelBackground: themePropDefs.panelBackground.default,\n radius: themePropDefs.radius.default,\n scaling: themePropDefs.scaling.default,\n fontFamily: themePropDefs.fontFamily.default,\n headingFontFamily: undefined,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onMaterialChange: noop,\n onPanelBackgroundChange: noop,\n onRadiusChange: noop,\n onScalingChange: noop,\n onFontFamilyChange: noop,\n onHeadingFontFamilyChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n // Direction is inherited: a Radix DirectionProvider above the Theme (for a right-to-left app)\n // wins, and left-to-right stays the default when there is none.\n const dir = Direction.useDirection();\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <TooltipPrimitive.Provider delayDuration={200}>\n <Direction.Provider dir={dir}>\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n </TooltipPrimitive.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>(\n (props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n material: materialProp = themePropDefs.material.default,\n panelBackground: panelBackgroundProp = themePropDefs.panelBackground.default,\n radius: radiusProp = themePropDefs.radius.default,\n scaling: scalingProp = themePropDefs.scaling.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n headingFontFamily: headingFontFamilyProp,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n useDeprecatedPanelBackgroundWarning(props.panelBackground);\n\n // Each of these follows its prop but stays independently settable, so\n // `ThemePanel` can change the theme at runtime. Syncing during render\n // rather than in an effect matters here: an effect would commit the old\n // theme first and re-render every consumer of the context a second time.\n const [appearance, setAppearance] = usePropSyncedState(appearanceProp);\n const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);\n const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);\n\n // Material takes precedence over panelBackground\n const effectiveMaterial =\n materialProp !== themePropDefs.material.default ? materialProp : panelBackgroundProp;\n const [material, setMaterial] = usePropSyncedState(effectiveMaterial);\n\n // Keep panelBackground in sync with material for backward compatibility\n const [panelBackground, setPanelBackground] = usePropSyncedState(material);\n\n const [radius, setRadius] = usePropSyncedState(radiusProp);\n const [scaling, setScaling] = usePropSyncedState(scalingProp);\n const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);\n const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n material={material}\n panelBackground={panelBackground}\n radius={radius}\n scaling={scaling}\n fontFamily={fontFamily}\n headingFontFamily={headingFontFamily}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onMaterialChange={setMaterial}\n onPanelBackgroundChange={setPanelBackground}\n onRadiusChange={setRadius}\n onScalingChange={setScaling}\n onFontFamilyChange={setFontFamily}\n onHeadingFontFamilyChange={setHeadingFontFamily}\n />\n );\n },\n);\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nfunction getClientOS(): 'windows' | 'macos' | 'linux' | undefined {\n if (typeof navigator === 'undefined') return undefined;\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'windows';\n if (ua.includes('Mac')) return 'macos';\n if (ua.includes('Linux')) return 'linux';\n return undefined;\n}\n\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n material = props.material ?? context?.material ?? themePropDefs.material.default,\n panelBackground = props.panelBackground ??\n context?.panelBackground ??\n themePropDefs.panelBackground.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n scaling = props.scaling ?? context?.scaling ?? themePropDefs.scaling.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n headingFontFamily = props.headingFontFamily ?? context?.headingFontFamily,\n //\n onAppearanceChange = noop,\n onAccentColorChange = noop,\n onGrayColorChange = noop,\n onMaterialChange = noop,\n onPanelBackgroundChange = noop,\n onRadiusChange = noop,\n onScalingChange = noop,\n onFontFamilyChange = noop,\n onHeadingFontFamilyChange = noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground =\n hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n // `data-os` can only be resolved on the client. Writing it straight to the\n // DOM keeps it out of the server markup \u2014 so hydration still matches \u2014 without\n // spending a render pass, and a state update here would re-render the whole\n // application on mount.\n const rootRef = React.useRef<ThemeImplElement>(null);\n const composedRef = useComposedRefs(forwardedRef, rootRef);\n const hasExplicitOS = 'data-os' in themeProps;\n\n useLayoutEffect(() => {\n if (!isRoot || hasExplicitOS) return;\n const node = rootRef.current;\n if (!node) return;\n\n const os = getClientOS();\n if (!os) return;\n node.setAttribute('data-os', os);\n return () => node.removeAttribute('data-os');\n }, [isRoot, hasExplicitOS]);\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n headingFontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n panelBackground,\n radius,\n scaling,\n fontFamily,\n headingFontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onPanelBackgroundChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n ],\n )}\n >\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-material={material}\n data-panel-background={panelBackground}\n data-radius={radius}\n data-scaling={scaling}\n data-font-family={fontFamily}\n data-heading-font-family={headingFontFamily}\n ref={composedRef}\n {...themeProps}\n className={classNames(\n 'radix-themes',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n", "import type { accentColors } from '../props/color.prop.js';\n\ntype ThemeAccentColor = (typeof accentColors)[number];\n\nexport function getMatchingGrayColor(accentColor: ThemeAccentColor) {\n switch (accentColor) {\n case 'tomato':\n case 'red':\n case 'ruby':\n case 'crimson':\n case 'pink':\n case 'plum':\n case 'purple':\n case 'violet':\n return 'mauve';\n case 'iris':\n case 'indigo':\n case 'blue':\n case 'sky':\n case 'cyan':\n return 'slate';\n case 'teal':\n case 'jade':\n case 'mint':\n case 'green':\n return 'sage';\n case 'grass':\n case 'lime':\n return 'olive';\n case 'yellow':\n case 'amber':\n case 'orange':\n case 'brown':\n case 'gold':\n case 'bronze':\n return 'sand';\n case 'gray':\n return 'gray';\n }\n}\n", "import * as React from 'react';\n\n/**\n * State that tracks a prop but can also be set imperatively \u2014 the shape `Theme`\n * needs, where a prop sets the value and `ThemePanel` can change it at runtime.\n *\n * Adjusts state during render rather than syncing in a `useEffect`. An effect\n * would commit one render carrying the *old* value and schedule a second one,\n * which for a provider means every consumer renders twice and the browser can\n * paint the stale value in between.\n *\n * @see https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\nexport function usePropSyncedState<T>(propValue: T) {\n const [value, setValue] = React.useState(propValue);\n const [previousPropValue, setPreviousPropValue] = React.useState(propValue);\n\n if (!Object.is(propValue, previousPropValue)) {\n setPreviousPropValue(propValue);\n setValue(propValue);\n }\n\n return [value, setValue] as const;\n}\n", "import * as React from 'react';\n\nconst PANEL_BACKGROUND_MESSAGE = 'Warning: The `panelBackground` prop is deprecated and will be removed in a future version. Use `material` prop instead.';\n\nconst warned = new Set<string>();\n\nfunction warnOnce(message: string) {\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(message);\n}\n\n/**\n * Warns, in development only, that `panelBackground` is deprecated.\n *\n * The `process.env.NODE_ENV` check is a compile-time constant, so a production\n * bundle minifies the effect body away to an empty function instead of reading\n * props and formatting a message per mounted component. The message is also\n * logged once per session rather than once per component instance.\n */\nexport function useDeprecatedPanelBackgroundWarning(panelBackground: unknown) {\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') return;\n if (panelBackground !== undefined) warnOnce(PANEL_BACKGROUND_MESSAGE);\n }, [panelBackground]);\n}\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import type { 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, Callout,\n// UserCard): 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", "import type { PropDef } from './prop-def.js';\n\nconst radii = ['none', 'small', 'medium', 'large', 'full'] as const;\n\nconst radiusPropDef = {\n radius: {\n type: 'enum',\n values: radii,\n default: undefined,\n },\n} satisfies {\n radius: PropDef<(typeof radii)[number]>;\n};\n\nexport { radiusPropDef, radii };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColors, grayColors } from '../props/color.prop.js';\nimport { radii } from '../props/radius.prop.js';\n\nimport type { GetPropDefTypes, PropDef } from '../props/prop-def.js';\n\nconst appearances = ['inherit', 'light', 'dark'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\nconst scalings = ['90%', '95%', '100%', '105%', '110%'] as const;\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\n\nconst themePropDefs = {\n ...asChildPropDef,\n /**\n * Whether to apply background color to the Theme element.\n *\n * Defaults to true for the root Theme and for Theme elements that\n * have an explicit light or dark appearance prop.\n */\n hasBackground: { type: 'boolean', default: true },\n /**\n * Sets the color scheme of the theme, typcially referred to as light and dark mode.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/dark-mode\n */\n appearance: { type: 'enum', values: appearances, default: 'inherit' },\n /**\n * Selects one of the accent color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n accentColor: { type: 'enum', values: accentColors, default: 'gray' },\n /**\n * Selects one of the gray color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n grayColor: { type: 'enum', values: grayColors, default: 'gray' },\n /**\n * Controls whether to use a solid or translucent background color on panelled\n * elements such as Card or Table is solid or translucent.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n material: { type: 'enum', values: materials, default: 'solid' },\n /**\n * Controls whether to use a solid or translucent background color on panelled\n * elements such as Card or Table is solid or translucent.\n *\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: 'solid' },\n /**\n * Sets the default radius of the components.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n radius: { type: 'enum', values: radii, default: 'full' },\n /**\n * Sets a scaling multiplier for values like spacing, font sizes, line heights, etc. are scaled.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/layout\n */\n scaling: { type: 'enum', values: scalings, default: '100%' },\n /**\n * Sets the font family used for body text in the theme.\n *\n * Headings follow this unless `headingFontFamily` (or the `--font-heading`\n * token) says otherwise.\n *\n * @default 'sans'\n */\n fontFamily: { type: 'enum', values: fontFamilies, default: 'sans' },\n /**\n * Sets the font family used for `Heading`, independently of body text.\n *\n * Deliberately has no default: when it is left unset no attribute is\n * emitted and `--font-heading` keeps following `--font-body`, so a\n * `--font-heading` override in your own CSS survives a `fontFamily` switch.\n */\n headingFontFamily: { type: 'enum', values: fontFamilies },\n} satisfies {\n hasBackground: PropDef<boolean>;\n appearance: PropDef<(typeof appearances)[number]>;\n accentColor: PropDef<(typeof accentColors)[number]>;\n grayColor: PropDef<(typeof grayColors)[number]>;\n material: PropDef<(typeof materials)[number]>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number]>;\n radius: PropDef<(typeof radii)[number]>;\n scaling: PropDef<(typeof scalings)[number]>;\n fontFamily: PropDef<(typeof fontFamilies)[number]>;\n headingFontFamily: PropDef<(typeof fontFamilies)[number]>;\n};\n\ntype ThemeOwnProps = GetPropDefTypes<typeof themePropDefs & typeof asChildPropDef>;\n\nexport { themePropDefs };\nexport type { ThemeOwnProps };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["virtual_menu_exports", "__export", "VirtualMenu", "__toCommonJS", "React", "import_classnames", "import_react_virtual", "React", "React", "import_classnames", "import_radix_ui", "import_internal", "getMatchingGrayColor", "accentColor", "React", "usePropSyncedState", "propValue", "value", "setValue", "previousPropValue", "setPreviousPropValue", "React", "PANEL_BACKGROUND_MESSAGE", "warned", "warnOnce", "message", "useDeprecatedPanelBackgroundWarning", "panelBackground", "asChildPropDef", "accentColors", "grayColors", "radii", "appearances", "panelBackgrounds", "materials", "scalings", "fontFamilies", "themePropDefs", "asChildPropDef", "accentColors", "grayColors", "radii", "noop", "defaultThemeContext", "themePropDefs", "ThemeContext", "useThemeContext", "Theme", "props", "forwardedRef", "context", "dir", "TooltipPrimitive", "ThemeRoot", "ThemeImpl", "appearanceProp", "accentColorProp", "grayColorProp", "materialProp", "panelBackgroundProp", "radiusProp", "scalingProp", "fontFamilyProp", "headingFontFamilyProp", "hasBackground", "rootProps", "useDeprecatedPanelBackgroundWarning", "appearance", "setAppearance", "usePropSyncedState", "accentColor", "setAccentColor", "grayColor", "setGrayColor", "effectiveMaterial", "material", "setMaterial", "panelBackground", "setPanelBackground", "radius", "setRadius", "scaling", "setScaling", "fontFamily", "setFontFamily", "headingFontFamily", "setHeadingFontFamily", "getClientOS", "ua", "asChild", "isRoot", "hasBackgroundProp", "onAppearanceChange", "onAccentColorChange", "onGrayColorChange", "onMaterialChange", "onPanelBackgroundChange", "onRadiusChange", "onScalingChange", "onFontFamilyChange", "onHeadingFontFamilyChange", "themeProps", "Comp", "resolvedGrayColor", "getMatchingGrayColor", "isExplicitAppearance", "rootRef", "composedRef", "hasExplicitOS", "node", "os", "classNames", "MenuContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "scaling", "scale", "useMenuContext", "MenuContext", "SimpleItem", "label", "_isHighlighted", "id", "style", "tabIndex", "dataHighlighted", "dataIndex", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "classNames", "prev", "next", "VirtualMenuRoot", "items", "itemLabel", "RenderItem", "sizeProp", "estimatedItemSizeProp", "overscan", "onSelect", "className", "ariaLabel", "menuId", "parentRef", "highlightedIndex", "setHighlightedIndex", "isInsideMenu", "contextSize", "contextItemHeight", "useMenuContext", "scaling", "useThemeContext", "estimatedItemSize", "getMenuItemHeight", "getLabel", "item", "safeHighlightedIndex", "getItemSize", "virtualizer", "virtualItems", "itemsRef", "onSelectRef", "scrollToIndexRef", "highlightedIndexRef", "handleItemMouseEnter", "e", "index", "handleItemClick", "idx", "currentItems", "noop", "handleItemKeyDown", "handleKeyDown", "currentHighlightedIndex", "nextIndex", "prevIndex", "lastIndex", "getItemId", "rootStyle", "totalSize", "viewportStyle", "virtualRow", "isHighlighted", "itemStyle", "commonProps", "VirtualMenuItemInner", "children", "props", "forwardedRef", "VirtualMenuItem", "prevProps", "nextProps", "prevStyle", "nextStyle", "VirtualMenu"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `classic` was renamed `raised` in 0.14.0. The old name still renders, as `raised`, with a
|
|
3
|
+
* one-time warning in development. Button's `override` is not a look but a way out of the
|
|
4
|
+
* styles, so it warns too. Both are removed in 0.15.0.
|
|
5
|
+
*/
|
|
6
|
+
declare function parseVariant(value: string): string;
|
|
7
|
+
export { parseVariant };
|
|
8
|
+
//# sourceMappingURL=parse-variant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-variant.d.ts","sourceRoot":"","sources":["../../../src/helpers/parse-variant.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW3C;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var c=(e,r)=>{for(var a in r)t(e,a,{get:r[a],enumerable:!0})},l=(e,r,a,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of d(r))!o.call(e,i)&&i!==a&&t(e,i,{get:()=>r[i],enumerable:!(n=s(r,i))||n.enumerable});return e};var p=e=>l(t({},"__esModule",{value:!0}),e);var v={};c(v,{parseVariant:()=>m});module.exports=p(v);function m(e){return e==="classic"?"raised":(e==="override"&&void 0,e)}
|
|
2
|
+
//# sourceMappingURL=parse-variant.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/parse-variant.ts"],
|
|
4
|
+
"sourcesContent": ["import { warnDeprecated } from './warn-deprecated.js';\n\n/**\n * `classic` was renamed `raised` in 0.14.0. The old name still renders, as `raised`, with a\n * one-time warning in development. Button's `override` is not a look but a way out of the\n * styles, so it warns too. Both are removed in 0.15.0.\n */\nfunction parseVariant(value: string): string {\n if (value === 'classic') {\n warnDeprecated('`variant=\"classic\"` is deprecated and will be removed in 0.15.0. Use `variant=\"raised\"`.');\n return 'raised';\n }\n if (value === 'override') {\n warnDeprecated(\n '`variant=\"override\"` is deprecated and will be removed in 0.15.0. Style the component with `className`, `style` or its CSS variables instead.',\n );\n }\n return value;\n}\n\nexport { parseVariant };\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAOA,SAASI,EAAaC,EAAuB,CAC3C,OAAIA,IAAU,UAEL,UAELA,IAAU,YACZ,OAIKA,EACT",
|
|
6
|
+
"names": ["parse_variant_exports", "__export", "parseVariant", "__toCommonJS", "parseVariant", "value"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Warns once per session, in development only, that something a caller used is deprecated.
|
|
3
|
+
* `process.env.NODE_ENV` is a compile-time constant, so production bundles drop the body.
|
|
4
|
+
*/
|
|
5
|
+
declare function warnDeprecated(message: string): void;
|
|
6
|
+
export { warnDeprecated };
|
|
7
|
+
//# sourceMappingURL=warn-deprecated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warn-deprecated.d.ts","sourceRoot":"","sources":["../../../src/helpers/warn-deprecated.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,QAItC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var t=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(n,e)=>{for(var o in e)t(n,o,{get:e[o],enumerable:!0})},w=(n,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!c.call(n,r)&&r!==o&&t(n,r,{get:()=>e[r],enumerable:!(a=i(e,r))||a.enumerable});return n};var p=n=>w(t({},"__esModule",{value:!0}),n);var g={};d(g,{warnDeprecated:()=>f});module.exports=p(g);var u=new Set;function f(n){}
|
|
2
|
+
//# sourceMappingURL=warn-deprecated.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/warn-deprecated.ts"],
|
|
4
|
+
"sourcesContent": ["const warned = new Set<string>();\n\n/**\n * Warns once per session, in development only, that something a caller used is deprecated.\n * `process.env.NODE_ENV` is a compile-time constant, so production bundles drop the body.\n */\nfunction warnDeprecated(message: string) {\n if (process.env.NODE_ENV === 'production' || warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n\nexport { warnDeprecated };\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAMI,EAAS,IAAI,IAMnB,SAASF,EAAeG,EAAiB,CAIzC",
|
|
6
|
+
"names": ["warn_deprecated_exports", "__export", "warnDeprecated", "__toCommonJS", "warned", "message"]
|
|
7
|
+
}
|