@agimon-ai/doompi-web-components 0.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +106 -0
- package/dist/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/components/Accordion.d.cts +11 -0
- package/dist/components/Accordion.d.cts.map +1 -0
- package/dist/components/Avatar.d.cts +10 -0
- package/dist/components/Avatar.d.cts.map +1 -0
- package/dist/components/Badge.d.cts +18 -0
- package/dist/components/Badge.d.cts.map +1 -0
- package/dist/components/Button.d.cts +25 -0
- package/dist/components/Button.d.cts.map +1 -0
- package/dist/components/Checkbox.d.cts +8 -0
- package/dist/components/Checkbox.d.cts.map +1 -0
- package/dist/components/Collapsible.d.cts +10 -0
- package/dist/components/Collapsible.d.cts.map +1 -0
- package/dist/components/Command.d.cts +42 -0
- package/dist/components/Command.d.cts.map +1 -0
- package/dist/components/Dialog.d.cts +39 -0
- package/dist/components/Dialog.d.cts.map +1 -0
- package/dist/components/Dot.d.cts +16 -0
- package/dist/components/Dot.d.cts.map +1 -0
- package/dist/components/DropdownMenu.d.cts +34 -0
- package/dist/components/DropdownMenu.d.cts.map +1 -0
- package/dist/components/EmptyState.d.cts +18 -0
- package/dist/components/EmptyState.d.cts.map +1 -0
- package/dist/components/Input.d.cts +20 -0
- package/dist/components/Input.d.cts.map +1 -0
- package/dist/components/Kbd.d.cts +7 -0
- package/dist/components/Kbd.d.cts.map +1 -0
- package/dist/components/Label.d.cts +8 -0
- package/dist/components/Label.d.cts.map +1 -0
- package/dist/components/Markdown.d.cts +8 -0
- package/dist/components/Markdown.d.cts.map +1 -0
- package/dist/components/MessageItem.d.cts +71 -0
- package/dist/components/MessageItem.d.cts.map +1 -0
- package/dist/components/MessageLines.d.cts +24 -0
- package/dist/components/MessageLines.d.cts.map +1 -0
- package/dist/components/OptionList.d.cts +50 -0
- package/dist/components/OptionList.d.cts.map +1 -0
- package/dist/components/Panel.d.cts +15 -0
- package/dist/components/Panel.d.cts.map +1 -0
- package/dist/components/Popover.d.cts +19 -0
- package/dist/components/Popover.d.cts.map +1 -0
- package/dist/components/Progress.d.cts +8 -0
- package/dist/components/Progress.d.cts.map +1 -0
- package/dist/components/RadioGroup.d.cts +15 -0
- package/dist/components/RadioGroup.d.cts.map +1 -0
- package/dist/components/ScrollArea.d.cts +13 -0
- package/dist/components/ScrollArea.d.cts.map +1 -0
- package/dist/components/SectionLabel.d.cts +7 -0
- package/dist/components/SectionLabel.d.cts.map +1 -0
- package/dist/components/Select.d.cts +19 -0
- package/dist/components/Select.d.cts.map +1 -0
- package/dist/components/Separator.d.cts +13 -0
- package/dist/components/Separator.d.cts.map +1 -0
- package/dist/components/Skeleton.d.cts +11 -0
- package/dist/components/Skeleton.d.cts.map +1 -0
- package/dist/components/Spinner.d.cts +15 -0
- package/dist/components/Spinner.d.cts.map +1 -0
- package/dist/components/StatusBadge.d.cts +24 -0
- package/dist/components/StatusBadge.d.cts.map +1 -0
- package/dist/components/StreamCursor.d.cts +7 -0
- package/dist/components/StreamCursor.d.cts.map +1 -0
- package/dist/components/Switch.d.cts +8 -0
- package/dist/components/Switch.d.cts.map +1 -0
- package/dist/components/Tabs.d.cts +36 -0
- package/dist/components/Tabs.d.cts.map +1 -0
- package/dist/components/Textarea.d.cts +10 -0
- package/dist/components/Textarea.d.cts.map +1 -0
- package/dist/components/Toast.d.cts +24 -0
- package/dist/components/Toast.d.cts.map +1 -0
- package/dist/components/Tooltip.d.cts +11 -0
- package/dist/components/Tooltip.d.cts.map +1 -0
- package/dist/icons/icons.d.cts +2 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +42 -0
- package/dist/index.d.mts +42 -0
- package/dist/index.mjs +1 -0
- package/dist/lib/cn.d.cts +7 -0
- package/dist/lib/cn.d.cts.map +1 -0
- package/dist/lib/collapse.d.cts +15 -0
- package/dist/lib/collapse.d.cts.map +1 -0
- package/dist/lib/optionList.d.cts +22 -0
- package/dist/lib/optionList.d.cts.map +1 -0
- package/dist/lib/tone.d.cts +26 -0
- package/dist/lib/tone.d.cts.map +1 -0
- package/dist/src/components/Accordion.cjs +2 -0
- package/dist/src/components/Accordion.cjs.map +1 -0
- package/dist/src/components/Accordion.d.mts +11 -0
- package/dist/src/components/Accordion.d.mts.map +1 -0
- package/dist/src/components/Accordion.mjs +2 -0
- package/dist/src/components/Accordion.mjs.map +1 -0
- package/dist/src/components/Avatar.cjs +2 -0
- package/dist/src/components/Avatar.cjs.map +1 -0
- package/dist/src/components/Avatar.d.mts +10 -0
- package/dist/src/components/Avatar.d.mts.map +1 -0
- package/dist/src/components/Avatar.mjs +2 -0
- package/dist/src/components/Avatar.mjs.map +1 -0
- package/dist/src/components/Badge.cjs +2 -0
- package/dist/src/components/Badge.cjs.map +1 -0
- package/dist/src/components/Badge.d.mts +18 -0
- package/dist/src/components/Badge.d.mts.map +1 -0
- package/dist/src/components/Badge.mjs +2 -0
- package/dist/src/components/Badge.mjs.map +1 -0
- package/dist/src/components/Button.cjs +2 -0
- package/dist/src/components/Button.cjs.map +1 -0
- package/dist/src/components/Button.d.mts +25 -0
- package/dist/src/components/Button.d.mts.map +1 -0
- package/dist/src/components/Button.mjs +2 -0
- package/dist/src/components/Button.mjs.map +1 -0
- package/dist/src/components/Checkbox.cjs +2 -0
- package/dist/src/components/Checkbox.cjs.map +1 -0
- package/dist/src/components/Checkbox.d.mts +8 -0
- package/dist/src/components/Checkbox.d.mts.map +1 -0
- package/dist/src/components/Checkbox.mjs +2 -0
- package/dist/src/components/Checkbox.mjs.map +1 -0
- package/dist/src/components/Collapsible.cjs +2 -0
- package/dist/src/components/Collapsible.cjs.map +1 -0
- package/dist/src/components/Collapsible.d.mts +10 -0
- package/dist/src/components/Collapsible.d.mts.map +1 -0
- package/dist/src/components/Collapsible.mjs +2 -0
- package/dist/src/components/Collapsible.mjs.map +1 -0
- package/dist/src/components/Command.cjs +2 -0
- package/dist/src/components/Command.cjs.map +1 -0
- package/dist/src/components/Command.d.mts +42 -0
- package/dist/src/components/Command.d.mts.map +1 -0
- package/dist/src/components/Command.mjs +2 -0
- package/dist/src/components/Command.mjs.map +1 -0
- package/dist/src/components/Dialog.cjs +2 -0
- package/dist/src/components/Dialog.cjs.map +1 -0
- package/dist/src/components/Dialog.d.mts +39 -0
- package/dist/src/components/Dialog.d.mts.map +1 -0
- package/dist/src/components/Dialog.mjs +2 -0
- package/dist/src/components/Dialog.mjs.map +1 -0
- package/dist/src/components/Dot.cjs +2 -0
- package/dist/src/components/Dot.cjs.map +1 -0
- package/dist/src/components/Dot.d.mts +16 -0
- package/dist/src/components/Dot.d.mts.map +1 -0
- package/dist/src/components/Dot.mjs +2 -0
- package/dist/src/components/Dot.mjs.map +1 -0
- package/dist/src/components/DropdownMenu.cjs +2 -0
- package/dist/src/components/DropdownMenu.cjs.map +1 -0
- package/dist/src/components/DropdownMenu.d.mts +34 -0
- package/dist/src/components/DropdownMenu.d.mts.map +1 -0
- package/dist/src/components/DropdownMenu.mjs +2 -0
- package/dist/src/components/DropdownMenu.mjs.map +1 -0
- package/dist/src/components/EmptyState.cjs +2 -0
- package/dist/src/components/EmptyState.cjs.map +1 -0
- package/dist/src/components/EmptyState.d.mts +18 -0
- package/dist/src/components/EmptyState.d.mts.map +1 -0
- package/dist/src/components/EmptyState.mjs +2 -0
- package/dist/src/components/EmptyState.mjs.map +1 -0
- package/dist/src/components/Input.cjs +2 -0
- package/dist/src/components/Input.cjs.map +1 -0
- package/dist/src/components/Input.d.mts +20 -0
- package/dist/src/components/Input.d.mts.map +1 -0
- package/dist/src/components/Input.mjs +2 -0
- package/dist/src/components/Input.mjs.map +1 -0
- package/dist/src/components/Kbd.cjs +2 -0
- package/dist/src/components/Kbd.cjs.map +1 -0
- package/dist/src/components/Kbd.d.mts +7 -0
- package/dist/src/components/Kbd.d.mts.map +1 -0
- package/dist/src/components/Kbd.mjs +2 -0
- package/dist/src/components/Kbd.mjs.map +1 -0
- package/dist/src/components/Label.cjs +2 -0
- package/dist/src/components/Label.cjs.map +1 -0
- package/dist/src/components/Label.d.mts +8 -0
- package/dist/src/components/Label.d.mts.map +1 -0
- package/dist/src/components/Label.mjs +2 -0
- package/dist/src/components/Label.mjs.map +1 -0
- package/dist/src/components/Markdown.cjs +2 -0
- package/dist/src/components/Markdown.cjs.map +1 -0
- package/dist/src/components/Markdown.d.mts +8 -0
- package/dist/src/components/Markdown.d.mts.map +1 -0
- package/dist/src/components/Markdown.mjs +2 -0
- package/dist/src/components/Markdown.mjs.map +1 -0
- package/dist/src/components/MessageItem.cjs +2 -0
- package/dist/src/components/MessageItem.cjs.map +1 -0
- package/dist/src/components/MessageItem.d.mts +71 -0
- package/dist/src/components/MessageItem.d.mts.map +1 -0
- package/dist/src/components/MessageItem.mjs +2 -0
- package/dist/src/components/MessageItem.mjs.map +1 -0
- package/dist/src/components/MessageLines.cjs +2 -0
- package/dist/src/components/MessageLines.cjs.map +1 -0
- package/dist/src/components/MessageLines.d.mts +24 -0
- package/dist/src/components/MessageLines.d.mts.map +1 -0
- package/dist/src/components/MessageLines.mjs +2 -0
- package/dist/src/components/MessageLines.mjs.map +1 -0
- package/dist/src/components/OptionList.cjs +2 -0
- package/dist/src/components/OptionList.cjs.map +1 -0
- package/dist/src/components/OptionList.d.mts +50 -0
- package/dist/src/components/OptionList.d.mts.map +1 -0
- package/dist/src/components/OptionList.mjs +2 -0
- package/dist/src/components/OptionList.mjs.map +1 -0
- package/dist/src/components/Panel.cjs +2 -0
- package/dist/src/components/Panel.cjs.map +1 -0
- package/dist/src/components/Panel.d.mts +15 -0
- package/dist/src/components/Panel.d.mts.map +1 -0
- package/dist/src/components/Panel.mjs +2 -0
- package/dist/src/components/Panel.mjs.map +1 -0
- package/dist/src/components/Popover.cjs +2 -0
- package/dist/src/components/Popover.cjs.map +1 -0
- package/dist/src/components/Popover.d.mts +19 -0
- package/dist/src/components/Popover.d.mts.map +1 -0
- package/dist/src/components/Popover.mjs +2 -0
- package/dist/src/components/Popover.mjs.map +1 -0
- package/dist/src/components/Progress.cjs +2 -0
- package/dist/src/components/Progress.cjs.map +1 -0
- package/dist/src/components/Progress.d.mts +8 -0
- package/dist/src/components/Progress.d.mts.map +1 -0
- package/dist/src/components/Progress.mjs +2 -0
- package/dist/src/components/Progress.mjs.map +1 -0
- package/dist/src/components/RadioGroup.cjs +2 -0
- package/dist/src/components/RadioGroup.cjs.map +1 -0
- package/dist/src/components/RadioGroup.d.mts +15 -0
- package/dist/src/components/RadioGroup.d.mts.map +1 -0
- package/dist/src/components/RadioGroup.mjs +2 -0
- package/dist/src/components/RadioGroup.mjs.map +1 -0
- package/dist/src/components/ScrollArea.cjs +2 -0
- package/dist/src/components/ScrollArea.cjs.map +1 -0
- package/dist/src/components/ScrollArea.d.mts +13 -0
- package/dist/src/components/ScrollArea.d.mts.map +1 -0
- package/dist/src/components/ScrollArea.mjs +2 -0
- package/dist/src/components/ScrollArea.mjs.map +1 -0
- package/dist/src/components/SectionLabel.cjs +2 -0
- package/dist/src/components/SectionLabel.cjs.map +1 -0
- package/dist/src/components/SectionLabel.d.mts +7 -0
- package/dist/src/components/SectionLabel.d.mts.map +1 -0
- package/dist/src/components/SectionLabel.mjs +2 -0
- package/dist/src/components/SectionLabel.mjs.map +1 -0
- package/dist/src/components/Select.cjs +2 -0
- package/dist/src/components/Select.cjs.map +1 -0
- package/dist/src/components/Select.d.mts +19 -0
- package/dist/src/components/Select.d.mts.map +1 -0
- package/dist/src/components/Select.mjs +2 -0
- package/dist/src/components/Select.mjs.map +1 -0
- package/dist/src/components/Separator.cjs +2 -0
- package/dist/src/components/Separator.cjs.map +1 -0
- package/dist/src/components/Separator.d.mts +13 -0
- package/dist/src/components/Separator.d.mts.map +1 -0
- package/dist/src/components/Separator.mjs +2 -0
- package/dist/src/components/Separator.mjs.map +1 -0
- package/dist/src/components/Skeleton.cjs +2 -0
- package/dist/src/components/Skeleton.cjs.map +1 -0
- package/dist/src/components/Skeleton.d.mts +11 -0
- package/dist/src/components/Skeleton.d.mts.map +1 -0
- package/dist/src/components/Skeleton.mjs +2 -0
- package/dist/src/components/Skeleton.mjs.map +1 -0
- package/dist/src/components/Spinner.cjs +2 -0
- package/dist/src/components/Spinner.cjs.map +1 -0
- package/dist/src/components/Spinner.d.mts +15 -0
- package/dist/src/components/Spinner.d.mts.map +1 -0
- package/dist/src/components/Spinner.mjs +2 -0
- package/dist/src/components/Spinner.mjs.map +1 -0
- package/dist/src/components/StatusBadge.cjs +2 -0
- package/dist/src/components/StatusBadge.cjs.map +1 -0
- package/dist/src/components/StatusBadge.d.mts +24 -0
- package/dist/src/components/StatusBadge.d.mts.map +1 -0
- package/dist/src/components/StatusBadge.mjs +2 -0
- package/dist/src/components/StatusBadge.mjs.map +1 -0
- package/dist/src/components/StreamCursor.cjs +2 -0
- package/dist/src/components/StreamCursor.cjs.map +1 -0
- package/dist/src/components/StreamCursor.d.mts +7 -0
- package/dist/src/components/StreamCursor.d.mts.map +1 -0
- package/dist/src/components/StreamCursor.mjs +2 -0
- package/dist/src/components/StreamCursor.mjs.map +1 -0
- package/dist/src/components/Switch.cjs +2 -0
- package/dist/src/components/Switch.cjs.map +1 -0
- package/dist/src/components/Switch.d.mts +8 -0
- package/dist/src/components/Switch.d.mts.map +1 -0
- package/dist/src/components/Switch.mjs +2 -0
- package/dist/src/components/Switch.mjs.map +1 -0
- package/dist/src/components/Tabs.cjs +2 -0
- package/dist/src/components/Tabs.cjs.map +1 -0
- package/dist/src/components/Tabs.d.mts +36 -0
- package/dist/src/components/Tabs.d.mts.map +1 -0
- package/dist/src/components/Tabs.mjs +2 -0
- package/dist/src/components/Tabs.mjs.map +1 -0
- package/dist/src/components/Textarea.cjs +2 -0
- package/dist/src/components/Textarea.cjs.map +1 -0
- package/dist/src/components/Textarea.d.mts +10 -0
- package/dist/src/components/Textarea.d.mts.map +1 -0
- package/dist/src/components/Textarea.mjs +2 -0
- package/dist/src/components/Textarea.mjs.map +1 -0
- package/dist/src/components/Toast.cjs +2 -0
- package/dist/src/components/Toast.cjs.map +1 -0
- package/dist/src/components/Toast.d.mts +24 -0
- package/dist/src/components/Toast.d.mts.map +1 -0
- package/dist/src/components/Toast.mjs +2 -0
- package/dist/src/components/Toast.mjs.map +1 -0
- package/dist/src/components/Tooltip.cjs +2 -0
- package/dist/src/components/Tooltip.cjs.map +1 -0
- package/dist/src/components/Tooltip.d.mts +11 -0
- package/dist/src/components/Tooltip.d.mts.map +1 -0
- package/dist/src/components/Tooltip.mjs +2 -0
- package/dist/src/components/Tooltip.mjs.map +1 -0
- package/dist/src/icons/icons.cjs +1 -0
- package/dist/src/icons/icons.d.mts +2 -0
- package/dist/src/icons/icons.mjs +1 -0
- package/dist/src/lib/cn.cjs +2 -0
- package/dist/src/lib/cn.cjs.map +1 -0
- package/dist/src/lib/cn.d.mts +7 -0
- package/dist/src/lib/cn.d.mts.map +1 -0
- package/dist/src/lib/cn.mjs +2 -0
- package/dist/src/lib/cn.mjs.map +1 -0
- package/dist/src/lib/collapse.cjs +2 -0
- package/dist/src/lib/collapse.cjs.map +1 -0
- package/dist/src/lib/collapse.d.mts +15 -0
- package/dist/src/lib/collapse.d.mts.map +1 -0
- package/dist/src/lib/collapse.mjs +2 -0
- package/dist/src/lib/collapse.mjs.map +1 -0
- package/dist/src/lib/optionList.cjs +2 -0
- package/dist/src/lib/optionList.cjs.map +1 -0
- package/dist/src/lib/optionList.d.mts +22 -0
- package/dist/src/lib/optionList.d.mts.map +1 -0
- package/dist/src/lib/optionList.mjs +2 -0
- package/dist/src/lib/optionList.mjs.map +1 -0
- package/dist/src/lib/tone.cjs +2 -0
- package/dist/src/lib/tone.cjs.map +1 -0
- package/dist/src/lib/tone.d.mts +26 -0
- package/dist/src/lib/tone.d.mts.map +1 -0
- package/dist/src/lib/tone.mjs +2 -0
- package/dist/src/lib/tone.mjs.map +1 -0
- package/dist/src/theme/apply.cjs +3 -0
- package/dist/src/theme/apply.cjs.map +1 -0
- package/dist/src/theme/apply.d.mts +26 -0
- package/dist/src/theme/apply.d.mts.map +1 -0
- package/dist/src/theme/apply.mjs +3 -0
- package/dist/src/theme/apply.mjs.map +1 -0
- package/dist/src/theme/builtinThemes.cjs +2 -0
- package/dist/src/theme/builtinThemes.cjs.map +1 -0
- package/dist/src/theme/builtinThemes.d.mts +12 -0
- package/dist/src/theme/builtinThemes.d.mts.map +1 -0
- package/dist/src/theme/builtinThemes.mjs +2 -0
- package/dist/src/theme/builtinThemes.mjs.map +1 -0
- package/dist/src/theme/derive.cjs +2 -0
- package/dist/src/theme/derive.cjs.map +1 -0
- package/dist/src/theme/derive.d.mts +15 -0
- package/dist/src/theme/derive.d.mts.map +1 -0
- package/dist/src/theme/derive.mjs +2 -0
- package/dist/src/theme/derive.mjs.map +1 -0
- package/dist/src/theme/parse.cjs +2 -0
- package/dist/src/theme/parse.cjs.map +1 -0
- package/dist/src/theme/parse.d.mts +11 -0
- package/dist/src/theme/parse.d.mts.map +1 -0
- package/dist/src/theme/parse.mjs +2 -0
- package/dist/src/theme/parse.mjs.map +1 -0
- package/dist/src/theme/piTheme.cjs +2 -0
- package/dist/src/theme/piTheme.cjs.map +1 -0
- package/dist/src/theme/piTheme.d.mts +20 -0
- package/dist/src/theme/piTheme.d.mts.map +1 -0
- package/dist/src/theme/piTheme.mjs +2 -0
- package/dist/src/theme/piTheme.mjs.map +1 -0
- package/dist/src/theme/preference.cjs +2 -0
- package/dist/src/theme/preference.cjs.map +1 -0
- package/dist/src/theme/preference.d.mts +16 -0
- package/dist/src/theme/preference.d.mts.map +1 -0
- package/dist/src/theme/preference.mjs +2 -0
- package/dist/src/theme/preference.mjs.map +1 -0
- package/dist/src/types/theme.cjs +2 -0
- package/dist/src/types/theme.cjs.map +1 -0
- package/dist/src/types/theme.d.mts +39 -0
- package/dist/src/types/theme.d.mts.map +1 -0
- package/dist/src/types/theme.mjs +2 -0
- package/dist/src/types/theme.mjs.map +1 -0
- package/dist/src/types/tone.cjs +2 -0
- package/dist/src/types/tone.cjs.map +1 -0
- package/dist/src/types/tone.d.mts +29 -0
- package/dist/src/types/tone.d.mts.map +1 -0
- package/dist/src/types/tone.mjs +2 -0
- package/dist/src/types/tone.mjs.map +1 -0
- package/dist/theme/apply.d.cts +26 -0
- package/dist/theme/apply.d.cts.map +1 -0
- package/dist/theme/builtinThemes.d.cts +12 -0
- package/dist/theme/builtinThemes.d.cts.map +1 -0
- package/dist/theme/derive.d.cts +15 -0
- package/dist/theme/derive.d.cts.map +1 -0
- package/dist/theme/parse.d.cts +11 -0
- package/dist/theme/parse.d.cts.map +1 -0
- package/dist/theme/piTheme.d.cts +20 -0
- package/dist/theme/piTheme.d.cts.map +1 -0
- package/dist/theme/preference.d.cts +16 -0
- package/dist/theme/preference.d.cts.map +1 -0
- package/dist/theme.cjs +1 -0
- package/dist/theme.d.cts +8 -0
- package/dist/theme.d.mts +8 -0
- package/dist/theme.mjs +1 -0
- package/dist/themes/doom-nord-dark.cjs +2 -0
- package/dist/themes/doom-nord-dark.cjs.map +1 -0
- package/dist/themes/doom-nord-dark.mjs +2 -0
- package/dist/themes/doom-nord-dark.mjs.map +1 -0
- package/dist/themes/doom-one-dark.cjs +2 -0
- package/dist/themes/doom-one-dark.cjs.map +1 -0
- package/dist/themes/doom-one-dark.mjs +2 -0
- package/dist/themes/doom-one-dark.mjs.map +1 -0
- package/dist/themes/doom-one-light.cjs +2 -0
- package/dist/themes/doom-one-light.cjs.map +1 -0
- package/dist/themes/doom-one-light.mjs +2 -0
- package/dist/themes/doom-one-light.mjs.map +1 -0
- package/dist/types/theme.d.cts +39 -0
- package/dist/types/theme.d.cts.map +1 -0
- package/dist/types/tone.d.cts +29 -0
- package/dist/types/tone.d.cts.map +1 -0
- package/llms.txt +8 -0
- package/package.json +95 -0
- package/styles/tokens.css +202 -0
- package/themes/doom-nord-dark.json +27 -0
- package/themes/doom-one-dark.json +39 -0
- package/themes/doom-one-light.json +27 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { MessageLineTone as MessageLineTone$1 } from "../types/tone.mjs";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/components/MessageLines.d.ts
|
|
4
|
+
/** One line of a message body, with the tone the card's pure view logic chose for it. */
|
|
5
|
+
type MessageLineTone = MessageLineTone$1;
|
|
6
|
+
interface MessageLine {
|
|
7
|
+
text: string;
|
|
8
|
+
tone: MessageLineTone;
|
|
9
|
+
bold?: boolean;
|
|
10
|
+
indent?: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare const messageLineVariants: (props?: ({
|
|
13
|
+
tone?: "accent" | "dim" | "error" | "hi" | "muted" | "success" | "text" | "warning" | null | undefined;
|
|
14
|
+
bold?: boolean | null | undefined;
|
|
15
|
+
indent?: boolean | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
|
+
interface MessageLinesProps extends ComponentProps<'div'> {
|
|
18
|
+
lines: readonly MessageLine[];
|
|
19
|
+
}
|
|
20
|
+
/** A body of toned lines: what a card's view helper computed, drawn one line per row. */
|
|
21
|
+
declare function MessageLines({ className, lines, ...props }: MessageLinesProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { MessageLine, MessageLineTone, MessageLines, MessageLinesProps, messageLineVariants };
|
|
24
|
+
//# sourceMappingURL=MessageLines.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageLines.d.mts","names":[],"sources":["../../../src/components/MessageLines.tsx"],"mappings":";;;;KAMY,kBAAkB;UAEb;EACf;EACA,MAAM;EACN;EACA;;cAGW,sBAAmB;;;;6CAgB9B;UAEe,0BAA0B;EACzC,gBAAgB;;;iBAIF,eAAe,WAAW,UAAU,SAAS,gDAAiB,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`whitespace-pre-wrap break-words`,{variants:{tone:{hi:`text-doom-hi`,text:`text-doom-text`,dim:`text-doom-dim`,muted:`text-doom-faint`,success:`text-doom-green`,error:`text-doom-red`,warning:`text-doom-yellow`,accent:`text-doom-blue`},bold:{true:`font-bold`,false:``},indent:{true:`pl-4`,false:``}},defaultVariants:{tone:`dim`,bold:!1,indent:!1}});function i({className:n,lines:i,...a}){return t(`div`,{"data-slot":`message-lines`,className:e(`flex flex-col gap-0.5`,n),...a,children:i.map((e,n)=>t(`div`,{className:r({tone:e.tone,bold:e.bold===!0,indent:e.indent===!0}),children:e.text},`${String(n)}-${e.text}`))})}export{i as MessageLines,r as messageLineVariants};
|
|
2
|
+
//# sourceMappingURL=MessageLines.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageLines.mjs","names":[],"sources":["../../../src/components/MessageLines.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\nimport type { MessageLineTone as Tone } from '../types/tone.ts';\n\n/** One line of a message body, with the tone the card's pure view logic chose for it. */\nexport type MessageLineTone = Tone;\n\nexport interface MessageLine {\n text: string;\n tone: MessageLineTone;\n bold?: boolean;\n indent?: boolean;\n}\n\nexport const messageLineVariants = cva('whitespace-pre-wrap break-words', {\n variants: {\n tone: {\n hi: 'text-doom-hi',\n text: 'text-doom-text',\n dim: 'text-doom-dim',\n muted: 'text-doom-faint',\n success: 'text-doom-green',\n error: 'text-doom-red',\n warning: 'text-doom-yellow',\n accent: 'text-doom-blue',\n } satisfies Record<Tone, string>,\n bold: { true: 'font-bold', false: '' },\n indent: { true: 'pl-4', false: '' },\n },\n defaultVariants: { tone: 'dim', bold: false, indent: false },\n});\n\nexport interface MessageLinesProps extends ComponentProps<'div'> {\n lines: readonly MessageLine[];\n}\n\n/** A body of toned lines: what a card's view helper computed, drawn one line per row. */\nexport function MessageLines({ className, lines, ...props }: MessageLinesProps) {\n return (\n <div data-slot=\"message-lines\" className={cn('flex flex-col gap-0.5', className)} {...props}>\n {lines.map((line, index) => (\n <div\n key={`${String(index)}-${line.text}`}\n className={messageLineVariants({ tone: line.tone, bold: line.bold === true, indent: line.indent === true })}\n >\n {line.text}\n </div>\n ))}\n </div>\n );\n}\n"],"mappings":"0HAeA,MAAa,EAAsB,EAAI,kCAAmC,CACxE,SAAU,CACR,KAAM,CACJ,GAAI,eACJ,KAAM,iBACN,IAAK,gBACL,MAAO,kBACP,QAAS,kBACT,MAAO,gBACP,QAAS,mBACT,OAAQ,gBACV,EACA,KAAM,CAAE,KAAM,YAAa,MAAO,EAAG,EACrC,OAAQ,CAAE,KAAM,OAAQ,MAAO,EAAG,CACpC,EACA,gBAAiB,CAAE,KAAM,MAAO,KAAM,GAAO,OAAQ,EAAM,CAC7D,CAAC,EAOD,SAAgB,EAAa,CAAE,YAAW,QAAO,GAAG,GAA4B,CAC9E,OACE,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAW,EAAG,wBAAyB,CAAS,EAAG,GAAI,EACnF,SAAA,EAAM,KAAK,EAAM,IAChB,EAAC,MAAD,CAEE,UAAW,EAAoB,CAAE,KAAM,EAAK,KAAM,KAAM,EAAK,OAAS,GAAM,OAAQ,EAAK,SAAW,EAAK,CAAC,EAEzG,SAAA,EAAK,IACH,EAJE,GAAG,OAAO,CAAK,EAAE,GAAG,EAAK,MAI3B,CACN,CACE,CAAA,CAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs"),t=require("../lib/optionList.cjs");let n=require("react/jsx-runtime"),r=require("class-variance-authority"),i=require("react");const a=(0,r.cva)(`flex min-h-0 flex-1 flex-col overflow-y-auto`,{variants:{density:{compact:`gap-0.5 p-1.5`,comfortable:`gap-1.5`}},defaultVariants:{density:`comfortable`}}),o=(0,r.cva)(`flex shrink-0 cursor-pointer items-center text-left outline-none`,{variants:{density:{compact:`gap-2.5 rounded-[5px] px-2 py-[7px]`,comfortable:`min-h-[42px] gap-3 rounded-md border px-[11px] py-2 text-[12px] text-doom-text transition-colors`},active:{true:``,false:``}},compoundVariants:[{density:`compact`,active:!0,class:`bg-doom-tint-blue`},{density:`comfortable`,active:!0,class:`border-doom-edge-blue bg-doom-tint-blue`},{density:`comfortable`,active:!1,class:`border-doom-border-soft`}],defaultVariants:{density:`comfortable`,active:!1}}),s=(0,r.cva)(`flex shrink-0 items-center justify-center rounded-full font-bold`,{variants:{density:{compact:`h-[15px] w-[15px] border border-doom-border text-[8px] text-doom-faint`,comfortable:`h-[18px] w-[18px] bg-doom-deep text-[10px] text-doom-dim`}},defaultVariants:{density:`comfortable`}});function c({className:t,density:r,active:i,marker:a,children:c,...l}){return(0,n.jsxs)(`button`,{type:`button`,role:`option`,"data-slot":`option-row`,"aria-selected":i??!1,"data-cursor":i??!1,className:e.cn(o({density:r,active:i}),t),...l,children:[a===void 0?null:(0,n.jsx)(`span`,{className:s({density:r}),children:a}),c]})}function l({className:t,density:r,...i}){return(0,n.jsx)(`span`,{"data-slot":`option-label`,className:e.cn(`min-w-0 flex-1`,r===`compact`?`truncate text-[12px] text-doom-text`:`break-words`,t),...i})}function u({className:r,options:o,cursor:s,onCursorChange:u,onSelect:d,testIdPrefix:f,density:p=`comfortable`,...m}){let h=(0,i.useRef)(null);return(0,i.useEffect)(()=>{h.current?.children[s]?.scrollIntoView({block:`nearest`})},[s]),(0,n.jsx)(`div`,{ref:h,role:`listbox`,"aria-label":`options`,"data-slot":`option-list`,"data-testid":`${f}s`,className:e.cn(a({density:p}),r),...m,children:o.map((e,r)=>(0,n.jsx)(c,{density:p,active:r===s,marker:t.optionMarker(r),"data-testid":`${f}-${String(r)}`,title:e,onMouseEnter:()=>u(r),onClick:()=>d(e),children:(0,n.jsx)(l,{density:p,children:e})},e))})}exports.OptionLabel=l,exports.OptionList=u,exports.OptionRow=c,exports.optionListVariants=a,exports.optionMarkerVariants=s,exports.optionRowVariants=o;
|
|
2
|
+
//# sourceMappingURL=OptionList.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionList.cjs","names":["cva","cn","useRef","optionMarker"],"sources":["../../../src/components/OptionList.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { type ComponentProps, type ReactNode, useEffect, useRef } from 'react';\nimport { cn } from '../lib/cn.ts';\nimport { optionMarker } from '../lib/optionList.ts';\n\nexport const optionListVariants = cva('flex min-h-0 flex-1 flex-col overflow-y-auto', {\n variants: {\n /** The compact rows of a bar popover, or the roomier rows of a modal. */\n density: { compact: 'gap-0.5 p-1.5', comfortable: 'gap-1.5' },\n },\n defaultVariants: { density: 'comfortable' },\n});\n\nexport const optionRowVariants = cva('flex shrink-0 cursor-pointer items-center text-left outline-none', {\n variants: {\n density: {\n compact: 'gap-2.5 rounded-[5px] px-2 py-[7px]',\n comfortable: 'min-h-[42px] gap-3 rounded-md border px-[11px] py-2 text-[12px] text-doom-text transition-colors',\n },\n active: { true: '', false: '' },\n },\n compoundVariants: [\n { density: 'compact', active: true, class: 'bg-doom-tint-blue' },\n { density: 'comfortable', active: true, class: 'border-doom-edge-blue bg-doom-tint-blue' },\n { density: 'comfortable', active: false, class: 'border-doom-border-soft' },\n ],\n defaultVariants: { density: 'comfortable', active: false },\n});\n\nexport const optionMarkerVariants = cva('flex shrink-0 items-center justify-center rounded-full font-bold', {\n variants: {\n density: {\n compact: 'h-[15px] w-[15px] border border-doom-border text-[8px] text-doom-faint',\n comfortable: 'h-[18px] w-[18px] bg-doom-deep text-[10px] text-doom-dim',\n },\n },\n defaultVariants: { density: 'comfortable' },\n});\n\nexport interface OptionRowProps extends ComponentProps<'button'>, VariantProps<typeof optionRowVariants> {\n /** The digit or bullet in the row's leading circle; omit it for a row with no shortcut. */\n marker?: ReactNode;\n}\n\n/**\n * One row of an option list, exported on its own so a surface with richer\n * rows than a plain string still wears the list's shape instead of restating\n * it. Children render straight into the row, so a row is free to hold a name\n * and a description side by side; OptionLabel is the single-string case.\n * `role=\"option\"` means a row belongs inside a `listbox`.\n */\nexport function OptionRow({ className, density, active, marker, children, ...props }: OptionRowProps) {\n return (\n <button\n type=\"button\"\n role=\"option\"\n data-slot=\"option-row\"\n aria-selected={active ?? false}\n data-cursor={active ?? false}\n className={cn(optionRowVariants({ density, active }), className)}\n {...props}\n >\n {marker === undefined ? null : <span className={optionMarkerVariants({ density })}>{marker}</span>}\n {children}\n </button>\n );\n}\n\n/** A row's single-string label: it takes the remaining width and clips or wraps by density. */\nexport function OptionLabel({\n className,\n density,\n ...props\n}: ComponentProps<'span'> & VariantProps<typeof optionListVariants>) {\n return (\n <span\n data-slot=\"option-label\"\n className={cn(\n 'min-w-0 flex-1',\n density === 'compact' ? 'truncate text-[12px] text-doom-text' : 'break-words',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface OptionListProps\n extends Omit<ComponentProps<'div'>, 'onSelect'>, VariantProps<typeof optionListVariants> {\n options: readonly string[];\n /** The highlighted row, owned by the surface so its own focused element can drive it. */\n cursor: number;\n onCursorChange: (cursor: number) => void;\n onSelect: (option: string) => void;\n /** Rows are `${testIdPrefix}-${index}`; the list itself is the plural, so a prefix query for a row never catches it. */\n testIdPrefix: string;\n}\n\n/**\n * The answers a select surface offers, wherever it is framed.\n *\n * The agent decides how many options there are, and a real one runs past\n * twenty, so the list cannot rely on the digit shortcuts alone. The cursor is\n * controlled rather than owned here because the surface around it is what the\n * overlay library focuses: keys arrive there, and taking focus away from it to\n * a list would fight the library for it and break the escape and outside-click\n * behaviour that focus carries. Pair it with handleOptionListKey.\n */\nexport function OptionList({\n className,\n options,\n cursor,\n onCursorChange,\n onSelect,\n testIdPrefix,\n density = 'comfortable',\n ...props\n}: OptionListProps) {\n const container = useRef<HTMLDivElement>(null);\n\n // Keep the highlighted row visible when the keyboard moves it past the edge.\n useEffect(() => {\n container.current?.children[cursor]?.scrollIntoView({ block: 'nearest' });\n }, [cursor]);\n\n return (\n <div\n ref={container}\n role=\"listbox\"\n aria-label=\"options\"\n data-slot=\"option-list\"\n data-testid={`${testIdPrefix}s`}\n className={cn(optionListVariants({ density }), className)}\n {...props}\n >\n {options.map((option, index) => (\n <OptionRow\n key={option}\n density={density}\n active={index === cursor}\n marker={optionMarker(index)}\n data-testid={`${testIdPrefix}-${String(index)}`}\n title={option}\n onMouseEnter={() => onCursorChange(index)}\n onClick={() => onSelect(option)}\n >\n <OptionLabel density={density}>{option}</OptionLabel>\n </OptionRow>\n ))}\n </div>\n );\n}\n"],"mappings":"gKAKA,MAAa,GAAA,EAAqBA,EAAAA,IAAAA,CAAI,+CAAgD,CACpF,SAAU,CAER,QAAS,CAAE,QAAS,gBAAiB,YAAa,SAAU,CAC9D,EACA,gBAAiB,CAAE,QAAS,aAAc,CAC5C,CAAC,EAEY,GAAA,EAAoBA,EAAAA,IAAAA,CAAI,mEAAoE,CACvG,SAAU,CACR,QAAS,CACP,QAAS,sCACT,YAAa,kGACf,EACA,OAAQ,CAAE,KAAM,GAAI,MAAO,EAAG,CAChC,EACA,iBAAkB,CAChB,CAAE,QAAS,UAAW,OAAQ,GAAM,MAAO,mBAAoB,EAC/D,CAAE,QAAS,cAAe,OAAQ,GAAM,MAAO,yCAA0C,EACzF,CAAE,QAAS,cAAe,OAAQ,GAAO,MAAO,yBAA0B,CAC5E,EACA,gBAAiB,CAAE,QAAS,cAAe,OAAQ,EAAM,CAC3D,CAAC,EAEY,GAAA,EAAuBA,EAAAA,IAAAA,CAAI,mEAAoE,CAC1G,SAAU,CACR,QAAS,CACP,QAAS,yEACT,YAAa,0DACf,CACF,EACA,gBAAiB,CAAE,QAAS,aAAc,CAC5C,CAAC,EAcD,SAAgB,EAAU,CAAE,YAAW,UAAS,SAAQ,SAAQ,WAAU,GAAG,GAAyB,CACpG,OACE,EAAA,EAAA,KAAA,CAAC,SAAD,CACE,KAAK,SACL,KAAK,SACL,YAAU,aACV,gBAAe,GAAU,GACzB,cAAa,GAAU,GACvB,UAAWC,EAAAA,GAAG,EAAkB,CAAE,UAAS,QAAO,CAAC,EAAG,CAAS,EAC/D,GAAI,EAPN,SAAA,CASG,IAAW,IAAA,GAAY,MAAO,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAqB,CAAE,SAAQ,CAAC,EAAI,SAAA,CAAa,CAAA,EAChG,CACK,GAEZ,CAGA,SAAgB,EAAY,CAC1B,YACA,UACA,GAAG,GACgE,CACnE,OACE,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,eACV,UAAWA,EAAAA,GACT,iBACA,IAAY,UAAY,sCAAwC,cAChE,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAuBA,SAAgB,EAAW,CACzB,YACA,UACA,SACA,iBACA,WACA,eACA,UAAU,cACV,GAAG,GACe,CAClB,IAAM,GAAA,EAAYC,EAAAA,OAAAA,CAAuB,IAAI,EAO7C,OAJA,EAAA,EAAA,UAAA,KAAgB,CACd,EAAU,SAAS,SAAS,EAAO,EAAE,eAAe,CAAE,MAAO,SAAU,CAAC,CAC1E,EAAG,CAAC,CAAM,CAAC,GAGT,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,IAAK,EACL,KAAK,UACL,aAAW,UACX,YAAU,cACV,cAAa,GAAG,EAAa,GAC7B,UAAWD,EAAAA,GAAG,EAAmB,CAAE,SAAQ,CAAC,EAAG,CAAS,EACxD,GAAI,EAEH,SAAA,EAAQ,KAAK,EAAQ,KACpB,EAAA,EAAA,IAAA,CAAC,EAAD,CAEW,UACT,OAAQ,IAAU,EAClB,OAAQE,EAAAA,aAAa,CAAK,EAC1B,cAAa,GAAG,EAAa,GAAG,OAAO,CAAK,IAC5C,MAAO,EACP,iBAAoB,EAAe,CAAK,EACxC,YAAe,EAAS,CAAM,EAE9B,UAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAsB,UAAU,SAAA,CAAoB,CAAA,CAC3C,EAVJ,CAUI,CACZ,CACE,CAAA,CAET"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import { ComponentProps, ReactNode } from "react";
|
|
3
|
+
//#region src/components/OptionList.d.ts
|
|
4
|
+
declare const optionListVariants: (props?: ({
|
|
5
|
+
density?: "comfortable" | "compact" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
declare const optionRowVariants: (props?: ({
|
|
8
|
+
density?: "comfortable" | "compact" | null | undefined;
|
|
9
|
+
active?: boolean | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
declare const optionMarkerVariants: (props?: ({
|
|
12
|
+
density?: "comfortable" | "compact" | null | undefined;
|
|
13
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
|
+
interface OptionRowProps extends ComponentProps<'button'>, VariantProps<typeof optionRowVariants> {
|
|
15
|
+
/** The digit or bullet in the row's leading circle; omit it for a row with no shortcut. */
|
|
16
|
+
marker?: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One row of an option list, exported on its own so a surface with richer
|
|
20
|
+
* rows than a plain string still wears the list's shape instead of restating
|
|
21
|
+
* it. Children render straight into the row, so a row is free to hold a name
|
|
22
|
+
* and a description side by side; OptionLabel is the single-string case.
|
|
23
|
+
* `role="option"` means a row belongs inside a `listbox`.
|
|
24
|
+
*/
|
|
25
|
+
declare function OptionRow({ className, density, active, marker, children, ...props }: OptionRowProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
/** A row's single-string label: it takes the remaining width and clips or wraps by density. */
|
|
27
|
+
declare function OptionLabel({ className, density, ...props }: ComponentProps<'span'> & VariantProps<typeof optionListVariants>): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
interface OptionListProps extends Omit<ComponentProps<'div'>, 'onSelect'>, VariantProps<typeof optionListVariants> {
|
|
29
|
+
options: readonly string[];
|
|
30
|
+
/** The highlighted row, owned by the surface so its own focused element can drive it. */
|
|
31
|
+
cursor: number;
|
|
32
|
+
onCursorChange: (cursor: number) => void;
|
|
33
|
+
onSelect: (option: string) => void;
|
|
34
|
+
/** Rows are `${testIdPrefix}-${index}`; the list itself is the plural, so a prefix query for a row never catches it. */
|
|
35
|
+
testIdPrefix: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The answers a select surface offers, wherever it is framed.
|
|
39
|
+
*
|
|
40
|
+
* The agent decides how many options there are, and a real one runs past
|
|
41
|
+
* twenty, so the list cannot rely on the digit shortcuts alone. The cursor is
|
|
42
|
+
* controlled rather than owned here because the surface around it is what the
|
|
43
|
+
* overlay library focuses: keys arrive there, and taking focus away from it to
|
|
44
|
+
* a list would fight the library for it and break the escape and outside-click
|
|
45
|
+
* behaviour that focus carries. Pair it with handleOptionListKey.
|
|
46
|
+
*/
|
|
47
|
+
declare function OptionList({ className, options, cursor, onCursorChange, onSelect, testIdPrefix, density, ...props }: OptionListProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
//#endregion
|
|
49
|
+
export { OptionLabel, OptionList, OptionListProps, OptionRow, OptionRowProps, optionListVariants, optionMarkerVariants, optionRowVariants };
|
|
50
|
+
//# sourceMappingURL=OptionList.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionList.d.mts","names":[],"sources":["../../../src/components/OptionList.tsx"],"mappings":";;;cAKa,qBAAkB;;6CAM7B;cAEW,oBAAiB;;;6CAc5B;cAEW,uBAAoB;;6CAQ/B;UAEe,uBAAuB,0BAA0B,oBAAoB;;EAEpF,SAAS;;;;;;;;;iBAUK,YAAY,WAAW,SAAS,QAAQ,QAAQ,aAAa,SAAS,6CAAc,IAAA;;iBAkBpF,cACd,WACA,YACG,SACF,yBAAyB,oBAAoB,kDAAmB,IAAA;UAclD,wBACP,KAAK,oCAAoC,oBAAoB;EACrE;;EAEA;EACA,iBAAiB;EACjB,WAAW;;EAEX;;;;;;;;;;;;iBAac,aACd,WACA,SACA,QACA,gBACA,UACA,cACA,YACG,SACF,8CAAe,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{optionMarker as t}from"../lib/optionList.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{cva as i}from"class-variance-authority";import{useEffect as a,useRef as o}from"react";const s=i(`flex min-h-0 flex-1 flex-col overflow-y-auto`,{variants:{density:{compact:`gap-0.5 p-1.5`,comfortable:`gap-1.5`}},defaultVariants:{density:`comfortable`}}),c=i(`flex shrink-0 cursor-pointer items-center text-left outline-none`,{variants:{density:{compact:`gap-2.5 rounded-[5px] px-2 py-[7px]`,comfortable:`min-h-[42px] gap-3 rounded-md border px-[11px] py-2 text-[12px] text-doom-text transition-colors`},active:{true:``,false:``}},compoundVariants:[{density:`compact`,active:!0,class:`bg-doom-tint-blue`},{density:`comfortable`,active:!0,class:`border-doom-edge-blue bg-doom-tint-blue`},{density:`comfortable`,active:!1,class:`border-doom-border-soft`}],defaultVariants:{density:`comfortable`,active:!1}}),l=i(`flex shrink-0 items-center justify-center rounded-full font-bold`,{variants:{density:{compact:`h-[15px] w-[15px] border border-doom-border text-[8px] text-doom-faint`,comfortable:`h-[18px] w-[18px] bg-doom-deep text-[10px] text-doom-dim`}},defaultVariants:{density:`comfortable`}});function u({className:t,density:i,active:a,marker:o,children:s,...u}){return r(`button`,{type:`button`,role:`option`,"data-slot":`option-row`,"aria-selected":a??!1,"data-cursor":a??!1,className:e(c({density:i,active:a}),t),...u,children:[o===void 0?null:n(`span`,{className:l({density:i}),children:o}),s]})}function d({className:t,density:r,...i}){return n(`span`,{"data-slot":`option-label`,className:e(`min-w-0 flex-1`,r===`compact`?`truncate text-[12px] text-doom-text`:`break-words`,t),...i})}function f({className:r,options:i,cursor:c,onCursorChange:l,onSelect:f,testIdPrefix:p,density:m=`comfortable`,...h}){let g=o(null);return a(()=>{g.current?.children[c]?.scrollIntoView({block:`nearest`})},[c]),n(`div`,{ref:g,role:`listbox`,"aria-label":`options`,"data-slot":`option-list`,"data-testid":`${p}s`,className:e(s({density:m}),r),...h,children:i.map((e,r)=>n(u,{density:m,active:r===c,marker:t(r),"data-testid":`${p}-${String(r)}`,title:e,onMouseEnter:()=>l(r),onClick:()=>f(e),children:n(d,{density:m,children:e})},e))})}export{d as OptionLabel,f as OptionList,u as OptionRow,s as optionListVariants,l as optionMarkerVariants,c as optionRowVariants};
|
|
2
|
+
//# sourceMappingURL=OptionList.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionList.mjs","names":[],"sources":["../../../src/components/OptionList.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { type ComponentProps, type ReactNode, useEffect, useRef } from 'react';\nimport { cn } from '../lib/cn.ts';\nimport { optionMarker } from '../lib/optionList.ts';\n\nexport const optionListVariants = cva('flex min-h-0 flex-1 flex-col overflow-y-auto', {\n variants: {\n /** The compact rows of a bar popover, or the roomier rows of a modal. */\n density: { compact: 'gap-0.5 p-1.5', comfortable: 'gap-1.5' },\n },\n defaultVariants: { density: 'comfortable' },\n});\n\nexport const optionRowVariants = cva('flex shrink-0 cursor-pointer items-center text-left outline-none', {\n variants: {\n density: {\n compact: 'gap-2.5 rounded-[5px] px-2 py-[7px]',\n comfortable: 'min-h-[42px] gap-3 rounded-md border px-[11px] py-2 text-[12px] text-doom-text transition-colors',\n },\n active: { true: '', false: '' },\n },\n compoundVariants: [\n { density: 'compact', active: true, class: 'bg-doom-tint-blue' },\n { density: 'comfortable', active: true, class: 'border-doom-edge-blue bg-doom-tint-blue' },\n { density: 'comfortable', active: false, class: 'border-doom-border-soft' },\n ],\n defaultVariants: { density: 'comfortable', active: false },\n});\n\nexport const optionMarkerVariants = cva('flex shrink-0 items-center justify-center rounded-full font-bold', {\n variants: {\n density: {\n compact: 'h-[15px] w-[15px] border border-doom-border text-[8px] text-doom-faint',\n comfortable: 'h-[18px] w-[18px] bg-doom-deep text-[10px] text-doom-dim',\n },\n },\n defaultVariants: { density: 'comfortable' },\n});\n\nexport interface OptionRowProps extends ComponentProps<'button'>, VariantProps<typeof optionRowVariants> {\n /** The digit or bullet in the row's leading circle; omit it for a row with no shortcut. */\n marker?: ReactNode;\n}\n\n/**\n * One row of an option list, exported on its own so a surface with richer\n * rows than a plain string still wears the list's shape instead of restating\n * it. Children render straight into the row, so a row is free to hold a name\n * and a description side by side; OptionLabel is the single-string case.\n * `role=\"option\"` means a row belongs inside a `listbox`.\n */\nexport function OptionRow({ className, density, active, marker, children, ...props }: OptionRowProps) {\n return (\n <button\n type=\"button\"\n role=\"option\"\n data-slot=\"option-row\"\n aria-selected={active ?? false}\n data-cursor={active ?? false}\n className={cn(optionRowVariants({ density, active }), className)}\n {...props}\n >\n {marker === undefined ? null : <span className={optionMarkerVariants({ density })}>{marker}</span>}\n {children}\n </button>\n );\n}\n\n/** A row's single-string label: it takes the remaining width and clips or wraps by density. */\nexport function OptionLabel({\n className,\n density,\n ...props\n}: ComponentProps<'span'> & VariantProps<typeof optionListVariants>) {\n return (\n <span\n data-slot=\"option-label\"\n className={cn(\n 'min-w-0 flex-1',\n density === 'compact' ? 'truncate text-[12px] text-doom-text' : 'break-words',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface OptionListProps\n extends Omit<ComponentProps<'div'>, 'onSelect'>, VariantProps<typeof optionListVariants> {\n options: readonly string[];\n /** The highlighted row, owned by the surface so its own focused element can drive it. */\n cursor: number;\n onCursorChange: (cursor: number) => void;\n onSelect: (option: string) => void;\n /** Rows are `${testIdPrefix}-${index}`; the list itself is the plural, so a prefix query for a row never catches it. */\n testIdPrefix: string;\n}\n\n/**\n * The answers a select surface offers, wherever it is framed.\n *\n * The agent decides how many options there are, and a real one runs past\n * twenty, so the list cannot rely on the digit shortcuts alone. The cursor is\n * controlled rather than owned here because the surface around it is what the\n * overlay library focuses: keys arrive there, and taking focus away from it to\n * a list would fight the library for it and break the escape and outside-click\n * behaviour that focus carries. Pair it with handleOptionListKey.\n */\nexport function OptionList({\n className,\n options,\n cursor,\n onCursorChange,\n onSelect,\n testIdPrefix,\n density = 'comfortable',\n ...props\n}: OptionListProps) {\n const container = useRef<HTMLDivElement>(null);\n\n // Keep the highlighted row visible when the keyboard moves it past the edge.\n useEffect(() => {\n container.current?.children[cursor]?.scrollIntoView({ block: 'nearest' });\n }, [cursor]);\n\n return (\n <div\n ref={container}\n role=\"listbox\"\n aria-label=\"options\"\n data-slot=\"option-list\"\n data-testid={`${testIdPrefix}s`}\n className={cn(optionListVariants({ density }), className)}\n {...props}\n >\n {options.map((option, index) => (\n <OptionRow\n key={option}\n density={density}\n active={index === cursor}\n marker={optionMarker(index)}\n data-testid={`${testIdPrefix}-${String(index)}`}\n title={option}\n onMouseEnter={() => onCursorChange(index)}\n onClick={() => onSelect(option)}\n >\n <OptionLabel density={density}>{option}</OptionLabel>\n </OptionRow>\n ))}\n </div>\n );\n}\n"],"mappings":"uOAKA,MAAa,EAAqB,EAAI,+CAAgD,CACpF,SAAU,CAER,QAAS,CAAE,QAAS,gBAAiB,YAAa,SAAU,CAC9D,EACA,gBAAiB,CAAE,QAAS,aAAc,CAC5C,CAAC,EAEY,EAAoB,EAAI,mEAAoE,CACvG,SAAU,CACR,QAAS,CACP,QAAS,sCACT,YAAa,kGACf,EACA,OAAQ,CAAE,KAAM,GAAI,MAAO,EAAG,CAChC,EACA,iBAAkB,CAChB,CAAE,QAAS,UAAW,OAAQ,GAAM,MAAO,mBAAoB,EAC/D,CAAE,QAAS,cAAe,OAAQ,GAAM,MAAO,yCAA0C,EACzF,CAAE,QAAS,cAAe,OAAQ,GAAO,MAAO,yBAA0B,CAC5E,EACA,gBAAiB,CAAE,QAAS,cAAe,OAAQ,EAAM,CAC3D,CAAC,EAEY,EAAuB,EAAI,mEAAoE,CAC1G,SAAU,CACR,QAAS,CACP,QAAS,yEACT,YAAa,0DACf,CACF,EACA,gBAAiB,CAAE,QAAS,aAAc,CAC5C,CAAC,EAcD,SAAgB,EAAU,CAAE,YAAW,UAAS,SAAQ,SAAQ,WAAU,GAAG,GAAyB,CACpG,OACE,EAAC,SAAD,CACE,KAAK,SACL,KAAK,SACL,YAAU,aACV,gBAAe,GAAU,GACzB,cAAa,GAAU,GACvB,UAAW,EAAG,EAAkB,CAAE,UAAS,QAAO,CAAC,EAAG,CAAS,EAC/D,GAAI,EAPN,SAAA,CASG,IAAW,IAAA,GAAY,KAAO,EAAC,OAAD,CAAM,UAAW,EAAqB,CAAE,SAAQ,CAAC,EAAI,SAAA,CAAa,CAAA,EAChG,CACK,GAEZ,CAGA,SAAgB,EAAY,CAC1B,YACA,UACA,GAAG,GACgE,CACnE,OACE,EAAC,OAAD,CACE,YAAU,eACV,UAAW,EACT,iBACA,IAAY,UAAY,sCAAwC,cAChE,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAuBA,SAAgB,EAAW,CACzB,YACA,UACA,SACA,iBACA,WACA,eACA,UAAU,cACV,GAAG,GACe,CAClB,IAAM,EAAY,EAAuB,IAAI,EAO7C,OAJA,MAAgB,CACd,EAAU,SAAS,SAAS,EAAO,EAAE,eAAe,CAAE,MAAO,SAAU,CAAC,CAC1E,EAAG,CAAC,CAAM,CAAC,EAGT,EAAC,MAAD,CACE,IAAK,EACL,KAAK,UACL,aAAW,UACX,YAAU,cACV,cAAa,GAAG,EAAa,GAC7B,UAAW,EAAG,EAAmB,CAAE,SAAQ,CAAC,EAAG,CAAS,EACxD,GAAI,EAEH,SAAA,EAAQ,KAAK,EAAQ,IACpB,EAAC,EAAD,CAEW,UACT,OAAQ,IAAU,EAClB,OAAQ,EAAa,CAAK,EAC1B,cAAa,GAAG,EAAa,GAAG,OAAO,CAAK,IAC5C,MAAO,EACP,iBAAoB,EAAe,CAAK,EACxC,YAAe,EAAS,CAAM,EAE9B,SAAA,EAAC,EAAD,CAAsB,UAAU,SAAA,CAAoB,CAAA,CAC3C,EAVJ,CAUI,CACZ,CACE,CAAA,CAET"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,asChild:i=!1,...a}){let o=i?t.Slot.Root:`div`;return(0,n.jsx)(o,{"data-slot":`panel`,className:e.cn(`overflow-hidden rounded-md border border-doom-border bg-doom-panel`,r),...a})}function i({className:t,...r}){return(0,n.jsx)(`div`,{"data-slot":`panel-header`,className:e.cn(`flex min-h-8 items-center gap-2 px-[11px]`,t),...r})}function a({className:t,...r}){return(0,n.jsx)(`div`,{"data-slot":`panel-body`,className:e.cn(`border-t border-doom-border-soft bg-doom-deep px-3 py-2 text-[11px] text-doom-dim`,t),...r})}exports.Panel=r,exports.PanelBody=a,exports.PanelHeader=i;
|
|
2
|
+
//# sourceMappingURL=Panel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.cjs","names":["Slot","cn"],"sources":["../../../src/components/Panel.tsx"],"sourcesContent":["import { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\nexport interface PanelProps extends ComponentProps<'div'> {\n /** Render the child element instead of a <div>, so a list row can be a panel. */\n asChild?: boolean;\n}\n\n/** The bordered card surface: a tool card, a run card, a provider row. */\nexport function Panel({ className, asChild = false, ...props }: PanelProps) {\n const Component = asChild ? Slot.Root : 'div';\n return (\n <Component\n data-slot=\"panel\"\n className={cn('overflow-hidden rounded-md border border-doom-border bg-doom-panel', className)}\n {...props}\n />\n );\n}\n\n/** A panel's title row. */\nexport function PanelHeader({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div data-slot=\"panel-header\" className={cn('flex min-h-8 items-center gap-2 px-[11px]', className)} {...props} />\n );\n}\n\n/** A panel's recessed body: the deep well the header sits above. */\nexport function PanelBody({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"panel-body\"\n className={cn('border-t border-doom-border-soft bg-doom-deep px-3 py-2 text-[11px] text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"0FAUA,SAAgB,EAAM,CAAE,YAAW,UAAU,GAAO,GAAG,GAAqB,CAC1E,IAAM,EAAY,EAAUA,EAAAA,KAAK,KAAO,MACxC,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAU,QACV,UAAWC,EAAAA,GAAG,qEAAsE,CAAS,EAC7F,GAAI,CACL,CAAA,CAEL,CAGA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAgC,CAC1E,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,eAAe,UAAWA,EAAAA,GAAG,4CAA6C,CAAS,EAAG,GAAI,CAAQ,CAAA,CAErH,CAGA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,aACV,UAAWA,EAAAA,GAAG,oFAAqF,CAAS,EAC5G,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/components/Panel.d.ts
|
|
3
|
+
interface PanelProps extends ComponentProps<'div'> {
|
|
4
|
+
/** Render the child element instead of a <div>, so a list row can be a panel. */
|
|
5
|
+
asChild?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** The bordered card surface: a tool card, a run card, a provider row. */
|
|
8
|
+
declare function Panel({ className, asChild, ...props }: PanelProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
/** A panel's title row. */
|
|
10
|
+
declare function PanelHeader({ className, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
/** A panel's recessed body: the deep well the header sits above. */
|
|
12
|
+
declare function PanelBody({ className, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { Panel, PanelBody, PanelHeader, PanelProps };
|
|
15
|
+
//# sourceMappingURL=Panel.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.d.mts","names":[],"sources":["../../../src/components/Panel.tsx"],"mappings":";;UAIiB,mBAAmB;;EAElC;;;iBAIc,QAAQ,WAAW,YAAoB,SAAS,yCAAU,IAAA;;iBAY1D,cAAc,cAAc,SAAS,oDAAqB,IAAA;;iBAO1D,YAAY,cAAc,SAAS,oDAAqB,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{Slot as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,asChild:i=!1,...a}){let o=i?t.Root:`div`;return n(o,{"data-slot":`panel`,className:e(`overflow-hidden rounded-md border border-doom-border bg-doom-panel`,r),...a})}function i({className:t,...r}){return n(`div`,{"data-slot":`panel-header`,className:e(`flex min-h-8 items-center gap-2 px-[11px]`,t),...r})}function a({className:t,...r}){return n(`div`,{"data-slot":`panel-body`,className:e(`border-t border-doom-border-soft bg-doom-deep px-3 py-2 text-[11px] text-doom-dim`,t),...r})}export{r as Panel,a as PanelBody,i as PanelHeader};
|
|
2
|
+
//# sourceMappingURL=Panel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.mjs","names":[],"sources":["../../../src/components/Panel.tsx"],"sourcesContent":["import { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\nexport interface PanelProps extends ComponentProps<'div'> {\n /** Render the child element instead of a <div>, so a list row can be a panel. */\n asChild?: boolean;\n}\n\n/** The bordered card surface: a tool card, a run card, a provider row. */\nexport function Panel({ className, asChild = false, ...props }: PanelProps) {\n const Component = asChild ? Slot.Root : 'div';\n return (\n <Component\n data-slot=\"panel\"\n className={cn('overflow-hidden rounded-md border border-doom-border bg-doom-panel', className)}\n {...props}\n />\n );\n}\n\n/** A panel's title row. */\nexport function PanelHeader({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div data-slot=\"panel-header\" className={cn('flex min-h-8 items-center gap-2 px-[11px]', className)} {...props} />\n );\n}\n\n/** A panel's recessed body: the deep well the header sits above. */\nexport function PanelBody({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"panel-body\"\n className={cn('border-t border-doom-border-soft bg-doom-deep px-3 py-2 text-[11px] text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2GAUA,SAAgB,EAAM,CAAE,YAAW,UAAU,GAAO,GAAG,GAAqB,CAC1E,IAAM,EAAY,EAAU,EAAK,KAAO,MACxC,OACE,EAAC,EAAD,CACE,YAAU,QACV,UAAW,EAAG,qEAAsE,CAAS,EAC7F,GAAI,CACL,CAAA,CAEL,CAGA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAgC,CAC1E,OACE,EAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAG,4CAA6C,CAAS,EAAG,GAAI,CAAQ,CAAA,CAErH,CAGA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAAC,MAAD,CACE,YAAU,aACV,UAAW,EAAG,oFAAqF,CAAS,EAC5G,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r(e){return(0,n.jsx)(t.Popover.Root,{"data-slot":`popover`,...e})}function i(e){return(0,n.jsx)(t.Popover.Trigger,{"data-slot":`popover-trigger`,...e})}function a(e){return(0,n.jsx)(t.Popover.Anchor,{"data-slot":`popover-anchor`,...e})}function o(e){return(0,n.jsx)(t.Popover.Close,{"data-slot":`popover-close`,...e})}function s({className:r,align:i=`start`,sideOffset:a=6,...o}){return(0,n.jsx)(t.Popover.Portal,{children:(0,n.jsx)(t.Popover.Content,{"data-slot":`popover-content`,align:i,sideOffset:a,className:e.cn(`z-50 flex flex-col overflow-hidden rounded-lg border border-doom-border bg-doom-panel font-mono shadow-2xl outline-none data-[state=open]:animate-doom-rise`,r),...o})})}function c({className:t,...r}){return(0,n.jsx)(`div`,{"data-slot":`popover-header`,className:e.cn(`flex h-[34px] shrink-0 items-center justify-between gap-3 border-b border-doom-border-soft bg-doom-deep px-3`,t),...r})}function l({className:t,...r}){return(0,n.jsx)(`div`,{"data-slot":`popover-footer`,className:e.cn(`flex min-h-[30px] shrink-0 items-center justify-between gap-3 border-t border-doom-border-soft bg-doom-deep px-3 text-[9px] text-doom-faint`,t),...r})}exports.Popover=r,exports.PopoverAnchor=a,exports.PopoverClose=o,exports.PopoverContent=s,exports.PopoverFooter=l,exports.PopoverHeader=c,exports.PopoverTrigger=i;
|
|
2
|
+
//# sourceMappingURL=Popover.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.cjs","names":["PopoverPrimitive","cn"],"sources":["../../../src/components/Popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * shadcn's Popover on Radix: anchored to its trigger, closes on outside\n * click and Escape, and the trigger toggles it rather than reopening it.\n */\nexport function Popover(props: ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nexport function PopoverTrigger(props: ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nexport function PopoverAnchor(props: ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\n/** Dismisses the popover from inside it: the row that acts and closes in one click. */\nexport function PopoverClose(props: ComponentProps<typeof PopoverPrimitive.Close>) {\n return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} />;\n}\n\nexport function PopoverContent({\n className,\n align = 'start',\n sideOffset = 6,\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 flex flex-col overflow-hidden rounded-lg border border-doom-border bg-doom-panel font-mono shadow-2xl outline-none data-[state=open]:animate-doom-rise',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\n/** The strip a popover's title sits in; tone colours the title. */\nexport function PopoverHeader({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\n 'flex h-[34px] shrink-0 items-center justify-between gap-3 border-b border-doom-border-soft bg-doom-deep px-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function PopoverFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"popover-footer\"\n className={cn(\n 'flex min-h-[30px] shrink-0 items-center justify-between gap-3 border-t border-doom-border-soft bg-doom-deep px-3 text-[9px] text-doom-faint',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"0FAQA,SAAgB,EAAQ,EAAqD,CAC3E,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAiB,KAAlB,CAAuB,YAAU,UAAU,GAAI,CAAQ,CAAA,CAChE,CAEA,SAAgB,EAAe,EAAwD,CACrF,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAiB,QAAlB,CAA0B,YAAU,kBAAkB,GAAI,CAAQ,CAAA,CAC3E,CAEA,SAAgB,EAAc,EAAuD,CACnF,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAiB,OAAlB,CAAyB,YAAU,iBAAiB,GAAI,CAAQ,CAAA,CACzE,CAGA,SAAgB,EAAa,EAAsD,CACjF,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAiB,MAAlB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAEA,SAAgB,EAAe,CAC7B,YACA,QAAQ,QACR,aAAa,EACb,GAAG,GAC+C,CAClD,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAiB,OAAlB,CAAA,UACE,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAiB,QAAlB,CACE,YAAU,kBACH,QACK,aACZ,UAAWC,EAAAA,GACT,8JACA,CACF,EACA,GAAI,CACL,CAAA,CACsB,CAAA,CAE7B,CAGA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAgC,CAC5E,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,iBACV,UAAWA,EAAAA,GACT,+GACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAgC,CAC5E,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,iBACV,UAAWA,EAAAA,GACT,8IACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Popover } from "radix-ui";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/components/Popover.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* shadcn's Popover on Radix: anchored to its trigger, closes on outside
|
|
6
|
+
* click and Escape, and the trigger toggles it rather than reopening it.
|
|
7
|
+
*/
|
|
8
|
+
declare function Popover$1(props: ComponentProps<typeof Popover.Root>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function PopoverTrigger(props: ComponentProps<typeof Popover.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function PopoverAnchor(props: ComponentProps<typeof Popover.Anchor>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
/** Dismisses the popover from inside it: the row that acts and closes in one click. */
|
|
12
|
+
declare function PopoverClose(props: ComponentProps<typeof Popover.Close>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function PopoverContent({ className, align, sideOffset, ...props }: ComponentProps<typeof Popover.Content>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/** The strip a popover's title sits in; tone colours the title. */
|
|
15
|
+
declare function PopoverHeader({ className, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function PopoverFooter({ className, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { Popover$1 as Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger };
|
|
19
|
+
//# sourceMappingURL=Popover.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.d.mts","names":[],"sources":["../../../src/components/Popover.tsx"],"mappings":";;;;;;;iBAQgB,UAAQ,OAAO,sBAAsB,QAAiB,oCAAK,IAAA;iBAI3D,eAAe,OAAO,sBAAsB,QAAiB,uCAAQ,IAAA;iBAIrE,cAAc,OAAO,sBAAsB,QAAiB,sCAAO,IAAA;;iBAKnE,aAAa,OAAO,sBAAsB,QAAiB,qCAAM,IAAA;iBAIjE,iBACd,WACA,OACA,eACG,SACF,sBAAsB,QAAiB,uCAAQ,IAAA;;iBAkBlC,gBAAgB,cAAc,SAAS,oDAAqB,IAAA;iBAa5D,gBAAgB,cAAc,SAAS,oDAAqB,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{Popover as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r(e){return n(t.Root,{"data-slot":`popover`,...e})}function i(e){return n(t.Trigger,{"data-slot":`popover-trigger`,...e})}function a(e){return n(t.Anchor,{"data-slot":`popover-anchor`,...e})}function o(e){return n(t.Close,{"data-slot":`popover-close`,...e})}function s({className:r,align:i=`start`,sideOffset:a=6,...o}){return n(t.Portal,{children:n(t.Content,{"data-slot":`popover-content`,align:i,sideOffset:a,className:e(`z-50 flex flex-col overflow-hidden rounded-lg border border-doom-border bg-doom-panel font-mono shadow-2xl outline-none data-[state=open]:animate-doom-rise`,r),...o})})}function c({className:t,...r}){return n(`div`,{"data-slot":`popover-header`,className:e(`flex h-[34px] shrink-0 items-center justify-between gap-3 border-b border-doom-border-soft bg-doom-deep px-3`,t),...r})}function l({className:t,...r}){return n(`div`,{"data-slot":`popover-footer`,className:e(`flex min-h-[30px] shrink-0 items-center justify-between gap-3 border-t border-doom-border-soft bg-doom-deep px-3 text-[9px] text-doom-faint`,t),...r})}export{r as Popover,a as PopoverAnchor,o as PopoverClose,s as PopoverContent,l as PopoverFooter,c as PopoverHeader,i as PopoverTrigger};
|
|
2
|
+
//# sourceMappingURL=Popover.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.mjs","names":["Popover","PopoverPrimitive"],"sources":["../../../src/components/Popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * shadcn's Popover on Radix: anchored to its trigger, closes on outside\n * click and Escape, and the trigger toggles it rather than reopening it.\n */\nexport function Popover(props: ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nexport function PopoverTrigger(props: ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nexport function PopoverAnchor(props: ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\n/** Dismisses the popover from inside it: the row that acts and closes in one click. */\nexport function PopoverClose(props: ComponentProps<typeof PopoverPrimitive.Close>) {\n return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} />;\n}\n\nexport function PopoverContent({\n className,\n align = 'start',\n sideOffset = 6,\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 flex flex-col overflow-hidden rounded-lg border border-doom-border bg-doom-panel font-mono shadow-2xl outline-none data-[state=open]:animate-doom-rise',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\n/** The strip a popover's title sits in; tone colours the title. */\nexport function PopoverHeader({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\n 'flex h-[34px] shrink-0 items-center justify-between gap-3 border-b border-doom-border-soft bg-doom-deep px-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function PopoverFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"popover-footer\"\n className={cn(\n 'flex min-h-[30px] shrink-0 items-center justify-between gap-3 border-t border-doom-border-soft bg-doom-deep px-3 text-[9px] text-doom-faint',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"8GAQA,SAAgBA,EAAQ,EAAqD,CAC3E,OAAO,EAACC,EAAiB,KAAlB,CAAuB,YAAU,UAAU,GAAI,CAAQ,CAAA,CAChE,CAEA,SAAgB,EAAe,EAAwD,CACrF,OAAO,EAACA,EAAiB,QAAlB,CAA0B,YAAU,kBAAkB,GAAI,CAAQ,CAAA,CAC3E,CAEA,SAAgB,EAAc,EAAuD,CACnF,OAAO,EAACA,EAAiB,OAAlB,CAAyB,YAAU,iBAAiB,GAAI,CAAQ,CAAA,CACzE,CAGA,SAAgB,EAAa,EAAsD,CACjF,OAAO,EAACA,EAAiB,MAAlB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAEA,SAAgB,EAAe,CAC7B,YACA,QAAQ,QACR,aAAa,EACb,GAAG,GAC+C,CAClD,OACE,EAACA,EAAiB,OAAlB,CAAA,SACE,EAACA,EAAiB,QAAlB,CACE,YAAU,kBACH,QACK,aACZ,UAAW,EACT,8JACA,CACF,EACA,GAAI,CACL,CAAA,CACsB,CAAA,CAE7B,CAGA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAgC,CAC5E,OACE,EAAC,MAAD,CACE,YAAU,iBACV,UAAW,EACT,+GACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAgC,CAC5E,OACE,EAAC,MAAD,CACE,YAAU,iBACV,UAAW,EACT,8IACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,value:i,...a}){return(0,n.jsx)(t.Progress.Root,{"data-slot":`progress`,value:i,className:e.cn(`relative h-1 w-full overflow-hidden rounded-full bg-doom-deep`,r),...a,children:(0,n.jsx)(t.Progress.Indicator,{"data-slot":`progress-indicator`,className:`h-full w-full flex-1 bg-doom-blue transition-transform`,style:{transform:`translateX(-${String(100-(i??0))}%)`}})})}exports.Progress=r;
|
|
2
|
+
//# sourceMappingURL=Progress.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.cjs","names":["ProgressPrimitive","cn"],"sources":["../../../src/components/Progress.tsx"],"sourcesContent":["import { Progress as ProgressPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** A determinate bar; leave `value` undefined and Radix reports it as indeterminate. */\nexport function Progress({ className, value, ...props }: ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={value}\n className={cn('relative h-1 w-full overflow-hidden rounded-full bg-doom-deep', className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"h-full w-full flex-1 bg-doom-blue transition-transform\"\n style={{ transform: `translateX(-${String(100 - (value ?? 0))}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n"],"mappings":"0FAKA,SAAgB,EAAS,CAAE,YAAW,QAAO,GAAG,GAAwD,CACtG,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,SAAkB,KAAnB,CACE,YAAU,WACH,QACP,UAAWC,EAAAA,GAAG,gEAAiE,CAAS,EACxF,GAAI,EAEJ,UAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,SAAkB,UAAnB,CACE,YAAU,qBACV,UAAU,yDACV,MAAO,CAAE,UAAW,eAAe,OAAO,KAAO,GAAS,EAAE,EAAE,GAAI,CACnE,CAAA,CACqB,CAAA,CAE5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Progress } from "radix-ui";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/components/Progress.d.ts
|
|
4
|
+
/** A determinate bar; leave `value` undefined and Radix reports it as indeterminate. */
|
|
5
|
+
declare function Progress$1({ className, value, ...props }: ComponentProps<typeof Progress.Root>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { Progress$1 as Progress };
|
|
8
|
+
//# sourceMappingURL=Progress.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.d.mts","names":[],"sources":["../../../src/components/Progress.tsx"],"mappings":";;;;iBAKgB,aAAW,WAAW,UAAU,SAAS,sBAAsB,SAAkB,oCAAK,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{Progress as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,value:i,...a}){return n(t.Root,{"data-slot":`progress`,value:i,className:e(`relative h-1 w-full overflow-hidden rounded-full bg-doom-deep`,r),...a,children:n(t.Indicator,{"data-slot":`progress-indicator`,className:`h-full w-full flex-1 bg-doom-blue transition-transform`,style:{transform:`translateX(-${String(100-(i??0))}%)`}})})}export{r as Progress};
|
|
2
|
+
//# sourceMappingURL=Progress.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.mjs","names":["Progress","ProgressPrimitive"],"sources":["../../../src/components/Progress.tsx"],"sourcesContent":["import { Progress as ProgressPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** A determinate bar; leave `value` undefined and Radix reports it as indeterminate. */\nexport function Progress({ className, value, ...props }: ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n value={value}\n className={cn('relative h-1 w-full overflow-hidden rounded-full bg-doom-deep', className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"h-full w-full flex-1 bg-doom-blue transition-transform\"\n style={{ transform: `translateX(-${String(100 - (value ?? 0))}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n"],"mappings":"+GAKA,SAAgBA,EAAS,CAAE,YAAW,QAAO,GAAG,GAAwD,CACtG,OACE,EAACC,EAAkB,KAAnB,CACE,YAAU,WACH,QACP,UAAW,EAAG,gEAAiE,CAAS,EACxF,GAAI,EAEJ,SAAA,EAACA,EAAkB,UAAnB,CACE,YAAU,qBACV,UAAU,yDACV,MAAO,CAAE,UAAW,eAAe,OAAO,KAAO,GAAS,EAAE,EAAE,GAAI,CACnE,CAAA,CACqB,CAAA,CAE5B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,...i}){return(0,n.jsx)(t.RadioGroup.Root,{"data-slot":`radio-group`,className:e.cn(`flex flex-col gap-2`,r),...i})}function i({className:r,...i}){return(0,n.jsx)(t.RadioGroup.Item,{"data-slot":`radio-group-item`,className:e.cn(`flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-full border border-doom-border bg-doom-deep outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue`,r),...i,children:(0,n.jsx)(t.RadioGroup.Indicator,{"data-slot":`radio-group-indicator`,className:`block h-1.5 w-1.5 rounded-full bg-doom-blue`})})}function a({className:r,...i}){return(0,n.jsx)(t.RadioGroup.Item,{"data-slot":`radio-group-card`,className:e.cn(`cursor-pointer rounded-md border border-doom-border bg-doom-panel p-2 text-left outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue`,r),...i})}exports.RadioGroup=r,exports.RadioGroupCard=a,exports.RadioGroupItem=i;
|
|
2
|
+
//# sourceMappingURL=RadioGroup.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.cjs","names":["RadioGroupPrimitive","cn"],"sources":["../../../src/components/RadioGroup.tsx"],"sourcesContent":["import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** One choice out of several; Radix owns the arrow-key roving focus a native group has. */\nexport function RadioGroup({ className, ...props }: ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root data-slot=\"radio-group\" className={cn('flex flex-col gap-2', className)} {...props} />\n );\n}\n\nexport function RadioGroupItem({ className, ...props }: ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-full border border-doom-border bg-doom-deep outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"block h-1.5 w-1.5 rounded-full bg-doom-blue\"\n />\n </RadioGroupPrimitive.Item>\n );\n}\n\n/**\n * A whole card that is one radio choice: the theme picker, where the target is\n * the preview rather than a dot. Radix keeps the roving focus and the checked\n * state; the card supplies the frame.\n */\nexport function RadioGroupCard({ className, ...props }: ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-card\"\n className={cn(\n 'cursor-pointer rounded-md border border-doom-border bg-doom-panel p-2 text-left outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"0FAKA,SAAgB,EAAW,CAAE,YAAW,GAAG,GAA0D,CACnG,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,WAAoB,KAArB,CAA0B,YAAU,cAAc,UAAWC,EAAAA,GAAG,sBAAuB,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH,CAEA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,OACE,EAAA,EAAA,IAAA,CAACD,EAAAA,WAAoB,KAArB,CACE,YAAU,mBACV,UAAWC,EAAAA,GACT,sSACA,CACF,EACA,GAAI,EAEJ,UAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,WAAoB,UAArB,CACE,YAAU,wBACV,UAAU,6CACX,CAAA,CACuB,CAAA,CAE9B,CAOA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,WAAoB,KAArB,CACE,YAAU,mBACV,UAAWC,EAAAA,GACT,6QACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RadioGroup } from "radix-ui";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/components/RadioGroup.d.ts
|
|
4
|
+
/** One choice out of several; Radix owns the arrow-key roving focus a native group has. */
|
|
5
|
+
declare function RadioGroup$1({ className, ...props }: ComponentProps<typeof RadioGroup.Root>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function RadioGroupItem({ className, ...props }: ComponentProps<typeof RadioGroup.Item>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
/**
|
|
8
|
+
* A whole card that is one radio choice: the theme picker, where the target is
|
|
9
|
+
* the preview rather than a dot. Radix keeps the roving focus and the checked
|
|
10
|
+
* state; the card supplies the frame.
|
|
11
|
+
*/
|
|
12
|
+
declare function RadioGroupCard({ className, ...props }: ComponentProps<typeof RadioGroup.Item>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { RadioGroup$1 as RadioGroup, RadioGroupCard, RadioGroupItem };
|
|
15
|
+
//# sourceMappingURL=RadioGroup.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.mts","names":[],"sources":["../../../src/components/RadioGroup.tsx"],"mappings":";;;;iBAKgB,eAAa,cAAc,SAAS,sBAAsB,WAAoB,oCAAK,IAAA;iBAMnF,iBAAiB,cAAc,SAAS,sBAAsB,WAAoB,oCAAK,IAAA;;;;;;iBAuBvF,iBAAiB,cAAc,SAAS,sBAAsB,WAAoB,oCAAK,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{RadioGroup as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,...i}){return n(t.Root,{"data-slot":`radio-group`,className:e(`flex flex-col gap-2`,r),...i})}function i({className:r,...i}){return n(t.Item,{"data-slot":`radio-group-item`,className:e(`flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-full border border-doom-border bg-doom-deep outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue`,r),...i,children:n(t.Indicator,{"data-slot":`radio-group-indicator`,className:`block h-1.5 w-1.5 rounded-full bg-doom-blue`})})}function a({className:r,...i}){return n(t.Item,{"data-slot":`radio-group-card`,className:e(`cursor-pointer rounded-md border border-doom-border bg-doom-panel p-2 text-left outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue`,r),...i})}export{r as RadioGroup,a as RadioGroupCard,i as RadioGroupItem};
|
|
2
|
+
//# sourceMappingURL=RadioGroup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.mjs","names":["RadioGroup","RadioGroupPrimitive"],"sources":["../../../src/components/RadioGroup.tsx"],"sourcesContent":["import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** One choice out of several; Radix owns the arrow-key roving focus a native group has. */\nexport function RadioGroup({ className, ...props }: ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root data-slot=\"radio-group\" className={cn('flex flex-col gap-2', className)} {...props} />\n );\n}\n\nexport function RadioGroupItem({ className, ...props }: ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-full border border-doom-border bg-doom-deep outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue',\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"block h-1.5 w-1.5 rounded-full bg-doom-blue\"\n />\n </RadioGroupPrimitive.Item>\n );\n}\n\n/**\n * A whole card that is one radio choice: the theme picker, where the target is\n * the preview rather than a dot. Radix keeps the roving focus and the checked\n * state; the card supplies the frame.\n */\nexport function RadioGroupCard({ className, ...props }: ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-card\"\n className={cn(\n 'cursor-pointer rounded-md border border-doom-border bg-doom-panel p-2 text-left outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"iHAKA,SAAgBA,EAAW,CAAE,YAAW,GAAG,GAA0D,CACnG,OACE,EAACC,EAAoB,KAArB,CAA0B,YAAU,cAAc,UAAW,EAAG,sBAAuB,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH,CAEA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,OACE,EAACA,EAAoB,KAArB,CACE,YAAU,mBACV,UAAW,EACT,sSACA,CACF,EACA,GAAI,EAEJ,SAAA,EAACA,EAAoB,UAArB,CACE,YAAU,wBACV,UAAU,6CACX,CAAA,CACuB,CAAA,CAE9B,CAOA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,OACE,EAACA,EAAoB,KAArB,CACE,YAAU,mBACV,UAAW,EACT,6QACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,children:a,...o}){return(0,n.jsxs)(t.ScrollArea.Root,{"data-slot":`scroll-area`,className:e.cn(`relative overflow-hidden`,r),...o,children:[(0,n.jsx)(t.ScrollArea.Viewport,{"data-slot":`scroll-area-viewport`,className:`h-full w-full rounded-[inherit]`,children:a}),(0,n.jsx)(i,{}),(0,n.jsx)(t.ScrollArea.Corner,{})]})}function i({className:r,orientation:i=`vertical`,...a}){return(0,n.jsx)(t.ScrollArea.ScrollAreaScrollbar,{"data-slot":`scroll-area-scrollbar`,orientation:i,className:e.cn(`flex touch-none select-none`,i===`vertical`?`h-full w-2.5 p-px`:`h-2.5 flex-col p-px`,r),...a,children:(0,n.jsx)(t.ScrollArea.ScrollAreaThumb,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-doom-border`})})}exports.ScrollArea=r,exports.ScrollBar=i;
|
|
2
|
+
//# sourceMappingURL=ScrollArea.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.cjs","names":["ScrollAreaPrimitive","cn"],"sources":["../../../src/components/ScrollArea.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A scroll container with a styled bar. The base stylesheet already themes\n * the native scrollbar, so reach for this only where the bar must overlay the\n * content or sit inside a rounded surface that clips it.\n */\nexport function ScrollArea({ className, children, ...props }: ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn('relative overflow-hidden', className)} {...props}>\n <ScrollAreaPrimitive.Viewport data-slot=\"scroll-area-viewport\" className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nexport function ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none',\n orientation === 'vertical' ? 'h-full w-2.5 p-px' : 'h-2.5 flex-col p-px',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-doom-border\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n"],"mappings":"0FASA,SAAgB,EAAW,CAAE,YAAW,WAAU,GAAG,GAA0D,CAC7G,OACE,EAAA,EAAA,KAAA,CAACA,EAAAA,WAAoB,KAArB,CAA0B,YAAU,cAAc,UAAWC,EAAAA,GAAG,2BAA4B,CAAS,EAAG,GAAI,EAA5G,SAAA,EACE,EAAA,EAAA,IAAA,CAACD,EAAAA,WAAoB,SAArB,CAA8B,YAAU,uBAAuB,UAAU,kCACtE,UAC2B,CAAA,GAC9B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAY,CAAA,GACZ,EAAA,EAAA,IAAA,CAACA,EAAAA,WAAoB,OAArB,CAA6B,CAAA,CACL,GAE9B,CAEA,SAAgB,EAAU,CACxB,YACA,cAAc,WACd,GAAG,GAC8D,CACjE,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,WAAoB,oBAArB,CACE,YAAU,wBACG,cACb,UAAWC,EAAAA,GACT,8BACA,IAAgB,WAAa,oBAAsB,sBACnD,CACF,EACA,GAAI,EAEJ,UAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,WAAoB,gBAArB,CACE,YAAU,oBACV,UAAU,6CACX,CAAA,CACsC,CAAA,CAE7C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ScrollArea } from "radix-ui";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/components/ScrollArea.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A scroll container with a styled bar. The base stylesheet already themes
|
|
6
|
+
* the native scrollbar, so reach for this only where the bar must overlay the
|
|
7
|
+
* content or sit inside a rounded surface that clips it.
|
|
8
|
+
*/
|
|
9
|
+
declare function ScrollArea$1({ className, children, ...props }: ComponentProps<typeof ScrollArea.Root>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function ScrollBar({ className, orientation, ...props }: ComponentProps<typeof ScrollArea.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { ScrollArea$1 as ScrollArea, ScrollBar };
|
|
13
|
+
//# sourceMappingURL=ScrollArea.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.d.mts","names":[],"sources":["../../../src/components/ScrollArea.tsx"],"mappings":";;;;;;;;iBASgB,eAAa,WAAW,aAAa,SAAS,sBAAsB,WAAoB,oCAAK,IAAA;iBAY7F,YACd,WACA,gBACG,SACF,sBAAsB,WAAoB,mDAAoB,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{ScrollArea as t}from"radix-ui";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({className:i,children:o,...s}){return r(t.Root,{"data-slot":`scroll-area`,className:e(`relative overflow-hidden`,i),...s,children:[n(t.Viewport,{"data-slot":`scroll-area-viewport`,className:`h-full w-full rounded-[inherit]`,children:o}),n(a,{}),n(t.Corner,{})]})}function a({className:r,orientation:i=`vertical`,...a}){return n(t.ScrollAreaScrollbar,{"data-slot":`scroll-area-scrollbar`,orientation:i,className:e(`flex touch-none select-none`,i===`vertical`?`h-full w-2.5 p-px`:`h-2.5 flex-col p-px`,r),...a,children:n(t.ScrollAreaThumb,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-doom-border`})})}export{i as ScrollArea,a as ScrollBar};
|
|
2
|
+
//# sourceMappingURL=ScrollArea.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.mjs","names":["ScrollArea","ScrollAreaPrimitive"],"sources":["../../../src/components/ScrollArea.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A scroll container with a styled bar. The base stylesheet already themes\n * the native scrollbar, so reach for this only where the bar must overlay the\n * content or sit inside a rounded surface that clips it.\n */\nexport function ScrollArea({ className, children, ...props }: ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn('relative overflow-hidden', className)} {...props}>\n <ScrollAreaPrimitive.Viewport data-slot=\"scroll-area-viewport\" className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nexport function ScrollBar({\n className,\n orientation = 'vertical',\n ...props\n}: ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n 'flex touch-none select-none',\n orientation === 'vertical' ? 'h-full w-2.5 p-px' : 'h-2.5 flex-col p-px',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-doom-border\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n"],"mappings":"2HASA,SAAgBA,EAAW,CAAE,YAAW,WAAU,GAAG,GAA0D,CAC7G,OACE,EAACC,EAAoB,KAArB,CAA0B,YAAU,cAAc,UAAW,EAAG,2BAA4B,CAAS,EAAG,GAAI,EAA5G,SAAA,CACE,EAACA,EAAoB,SAArB,CAA8B,YAAU,uBAAuB,UAAU,kCACtE,UAC2B,CAAA,EAC9B,EAAC,EAAD,CAAY,CAAA,EACZ,EAACA,EAAoB,OAArB,CAA6B,CAAA,CACL,GAE9B,CAEA,SAAgB,EAAU,CACxB,YACA,cAAc,WACd,GAAG,GAC8D,CACjE,OACE,EAACA,EAAoB,oBAArB,CACE,YAAU,wBACG,cACb,UAAW,EACT,8BACA,IAAgB,WAAa,oBAAsB,sBACnD,CACF,EACA,GAAI,EAEJ,SAAA,EAACA,EAAoB,gBAArB,CACE,YAAU,oBACV,UAAU,6CACX,CAAA,CACsC,CAAA,CAE7C"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime");function n({className:n,...r}){return(0,t.jsx)(`span`,{"data-slot":`section-label`,className:e.cn(`font-mono text-[9px] font-bold tracking-[0.18em] text-doom-faint uppercase`,n),...r})}exports.SectionLabel=n;
|
|
2
|
+
//# sourceMappingURL=SectionLabel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionLabel.cjs","names":["cn"],"sources":["../../../src/components/SectionLabel.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** The tiny tracked-out caps that head every cockpit section (SESSIONS, ACTIVITY, MINOR MODES). */\nexport function SectionLabel({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"section-label\"\n className={cn('font-mono text-[9px] font-bold tracking-[0.18em] text-doom-faint uppercase', className)}\n {...props}\n />\n );\n}\n"],"mappings":"oEAIA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAiC,CAC5E,OACE,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,gBACV,UAAWA,EAAAA,GAAG,6EAA8E,CAAS,EACrG,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/components/SectionLabel.d.ts
|
|
3
|
+
/** The tiny tracked-out caps that head every cockpit section (SESSIONS, ACTIVITY, MINOR MODES). */
|
|
4
|
+
declare function SectionLabel({ className, ...props }: ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { SectionLabel };
|
|
7
|
+
//# sourceMappingURL=SectionLabel.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionLabel.d.mts","names":[],"sources":["../../../src/components/SectionLabel.tsx"],"mappings":";;;iBAIgB,eAAe,cAAc,SAAS,qDAAsB,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{jsx as t}from"react/jsx-runtime";function n({className:n,...r}){return t(`span`,{"data-slot":`section-label`,className:e(`font-mono text-[9px] font-bold tracking-[0.18em] text-doom-faint uppercase`,n),...r})}export{n as SectionLabel};
|
|
2
|
+
//# sourceMappingURL=SectionLabel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionLabel.mjs","names":[],"sources":["../../../src/components/SectionLabel.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** The tiny tracked-out caps that head every cockpit section (SESSIONS, ACTIVITY, MINOR MODES). */\nexport function SectionLabel({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"section-label\"\n className={cn('font-mono text-[9px] font-bold tracking-[0.18em] text-doom-faint uppercase', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2EAIA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAiC,CAC5E,OACE,EAAC,OAAD,CACE,YAAU,gBACV,UAAW,EAAG,6EAA8E,CAAS,EACrG,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime"),r=require("lucide-react");function i(e){return(0,n.jsx)(t.Select.Root,{"data-slot":`select`,...e})}function a(e){return(0,n.jsx)(t.Select.Group,{"data-slot":`select-group`,...e})}function o(e){return(0,n.jsx)(t.Select.Value,{"data-slot":`select-value`,...e})}function s({className:i,children:a,...o}){return(0,n.jsxs)(t.Select.Trigger,{"data-slot":`select-trigger`,className:e.cn(`flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-[11px] text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint`,i),...o,children:[a,(0,n.jsx)(t.Select.Icon,{asChild:!0,children:(0,n.jsx)(r.ChevronDown,{className:`h-3 w-3 shrink-0 text-doom-faint`})})]})}function c({className:r,position:i=`popper`,sideOffset:a=4,children:o,...s}){return(0,n.jsx)(t.Select.Portal,{children:(0,n.jsx)(t.Select.Content,{"data-slot":`select-content`,position:i,sideOffset:a,className:e.cn(`z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise`,r),...s,children:(0,n.jsx)(t.Select.Viewport,{className:`p-1`,children:o})})})}function l({className:r,...i}){return(0,n.jsx)(t.Select.Label,{"data-slot":`select-label`,className:e.cn(`px-2 py-1 text-[8px] font-bold tracking-[0.14em] text-doom-faint uppercase`,r),...i})}function u({className:i,children:a,...o}){return(0,n.jsxs)(t.Select.Item,{"data-slot":`select-item`,className:e.cn(`relative flex cursor-pointer items-center gap-2 rounded-[3px] py-1.5 pr-2 pl-7 text-[11px] text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep`,i),...o,children:[(0,n.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center`,children:(0,n.jsx)(t.Select.ItemIndicator,{children:(0,n.jsx)(r.Check,{className:`h-3 w-3 text-doom-blue`})})}),(0,n.jsx)(t.Select.ItemText,{children:a})]})}function d({className:r,...i}){return(0,n.jsx)(t.Select.Separator,{"data-slot":`select-separator`,className:e.cn(`my-1 h-px bg-doom-border-soft`,r),...i})}exports.Select=i,exports.SelectContent=c,exports.SelectGroup=a,exports.SelectItem=u,exports.SelectLabel=l,exports.SelectSeparator=d,exports.SelectTrigger=s,exports.SelectValue=o;
|
|
2
|
+
//# sourceMappingURL=Select.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.cjs","names":["SelectPrimitive","cn","ChevronDownIcon","CheckIcon"],"sources":["../../../src/components/Select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { CheckIcon, ChevronDownIcon } from '../icons/icons.ts';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A single choice from a list, on Radix rather than a native <select>: a\n * native one cannot be styled to the palette on every platform, and the\n * cockpit's model and mode pickers need the same surface a popover has.\n */\nexport function Select(props: ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nexport function SelectGroup(props: ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nexport function SelectValue(props: ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nexport function SelectTrigger({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(\n 'flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-[11px] text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nexport function SelectContent({\n className,\n position = 'popper',\n sideOffset = 4,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n position={position}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise',\n className,\n )}\n {...props}\n >\n <SelectPrimitive.Viewport className=\"p-1\">{children}</SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nexport function SelectLabel({ className, ...props }: ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1 text-[8px] font-bold tracking-[0.14em] text-doom-faint uppercase', className)}\n {...props}\n />\n );\n}\n\nexport function SelectItem({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n 'relative flex cursor-pointer items-center gap-2 rounded-[3px] py-1.5 pr-2 pl-7 text-[11px] text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep',\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"h-3 w-3 text-doom-blue\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nexport function SelectSeparator({ className, ...props }: ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('my-1 h-px bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"kJAUA,SAAgB,EAAO,EAAoD,CACzE,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,KAAjB,CAAsB,YAAU,SAAS,GAAI,CAAQ,CAAA,CAC9D,CAEA,SAAgB,EAAY,EAAqD,CAC/E,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAY,EAAqD,CAC/E,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAc,CAAE,YAAW,WAAU,GAAG,GAAyD,CAC/G,OACE,EAAA,EAAA,KAAA,CAACA,EAAAA,OAAgB,QAAjB,CACE,YAAU,iBACV,UAAWC,EAAAA,GACT,wVACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,GACD,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,KAAjB,CAAsB,QAAA,GACpB,UAAA,EAAA,EAAA,IAAA,CAACE,EAAAA,YAAD,CAAiB,UAAU,kCAAoC,CAAA,CAC3C,CAAA,CACC,GAE7B,CAEA,SAAgB,EAAc,CAC5B,YACA,WAAW,SACX,aAAa,EACb,WACA,GAAG,GAC8C,CACjD,OACE,EAAA,EAAA,IAAA,CAACF,EAAAA,OAAgB,OAAjB,CAAA,UACE,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,QAAjB,CACE,YAAU,iBACA,WACE,aACZ,UAAWC,EAAAA,GACT,oMACA,CACF,EACA,GAAI,EAEJ,UAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,SAAjB,CAA0B,UAAU,MAAO,UAAmC,CAAA,CACvD,CAAA,CACH,CAAA,CAE5B,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,MAAjB,CACE,YAAU,eACV,UAAWC,EAAAA,GAAG,6EAA8E,CAAS,EACrG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAW,CAAE,YAAW,WAAU,GAAG,GAAsD,CACzG,OACE,EAAA,EAAA,KAAA,CAACD,EAAAA,OAAgB,KAAjB,CACE,YAAU,cACV,UAAWC,EAAAA,GACT,kOACA,CACF,EACA,GAAI,EANN,SAAA,EAQE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,+EACd,UAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,cAAjB,CAAA,UACE,EAAA,EAAA,IAAA,CAACG,EAAAA,MAAD,CAAW,UAAU,wBAA0B,CAAA,CAClB,CAAA,CAC3B,CAAA,GACN,EAAA,EAAA,IAAA,CAACH,EAAAA,OAAgB,SAAjB,CAA2B,UAAmC,CAAA,CAC1C,GAE1B,CAEA,SAAgB,EAAgB,CAAE,YAAW,GAAG,GAA2D,CACzG,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,UAAjB,CACE,YAAU,mBACV,UAAWC,EAAAA,GAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Select } from "radix-ui";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/components/Select.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A single choice from a list, on Radix rather than a native <select>: a
|
|
6
|
+
* native one cannot be styled to the palette on every platform, and the
|
|
7
|
+
* cockpit's model and mode pickers need the same surface a popover has.
|
|
8
|
+
*/
|
|
9
|
+
declare function Select$1(props: ComponentProps<typeof Select.Root>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function SelectGroup(props: ComponentProps<typeof Select.Group>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare function SelectValue(props: ComponentProps<typeof Select.Value>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function SelectTrigger({ className, children, ...props }: ComponentProps<typeof Select.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function SelectContent({ className, position, sideOffset, children, ...props }: ComponentProps<typeof Select.Content>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function SelectLabel({ className, ...props }: ComponentProps<typeof Select.Label>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function SelectItem({ className, children, ...props }: ComponentProps<typeof Select.Item>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function SelectSeparator({ className, ...props }: ComponentProps<typeof Select.Separator>): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { Select$1 as Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue };
|
|
19
|
+
//# sourceMappingURL=Select.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.mts","names":[],"sources":["../../../src/components/Select.tsx"],"mappings":";;;;;;;;iBAUgB,SAAO,OAAO,sBAAsB,OAAgB,oCAAK,IAAA;iBAIzD,YAAY,OAAO,sBAAsB,OAAgB,qCAAM,IAAA;iBAI/D,YAAY,OAAO,sBAAsB,OAAgB,qCAAM,IAAA;iBAI/D,gBAAgB,WAAW,aAAa,SAAS,sBAAsB,OAAgB,uCAAQ,IAAA;iBAkB/F,gBACd,WACA,UACA,YACA,aACG,SACF,sBAAsB,OAAgB,uCAAQ,IAAA;iBAmBjC,cAAc,cAAc,SAAS,sBAAsB,OAAgB,qCAAM,IAAA;iBAUjF,aAAa,WAAW,aAAa,SAAS,sBAAsB,OAAgB,oCAAK,IAAA;iBAoBzF,kBAAkB,cAAc,SAAS,sBAAsB,OAAgB,yCAAU,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{CheckIcon as e,ChevronDownIcon as t}from"../icons/icons.mjs";import{cn as n}from"../lib/cn.mjs";import{Select as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e){return i(r.Root,{"data-slot":`select`,...e})}function s(e){return i(r.Group,{"data-slot":`select-group`,...e})}function c(e){return i(r.Value,{"data-slot":`select-value`,...e})}function l({className:e,children:o,...s}){return a(r.Trigger,{"data-slot":`select-trigger`,className:n(`flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-[11px] text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint`,e),...s,children:[o,i(r.Icon,{asChild:!0,children:i(t,{className:`h-3 w-3 shrink-0 text-doom-faint`})})]})}function u({className:e,position:t=`popper`,sideOffset:a=4,children:o,...s}){return i(r.Portal,{children:i(r.Content,{"data-slot":`select-content`,position:t,sideOffset:a,className:n(`z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise`,e),...s,children:i(r.Viewport,{className:`p-1`,children:o})})})}function d({className:e,...t}){return i(r.Label,{"data-slot":`select-label`,className:n(`px-2 py-1 text-[8px] font-bold tracking-[0.14em] text-doom-faint uppercase`,e),...t})}function f({className:t,children:o,...s}){return a(r.Item,{"data-slot":`select-item`,className:n(`relative flex cursor-pointer items-center gap-2 rounded-[3px] py-1.5 pr-2 pl-7 text-[11px] text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep`,t),...s,children:[i(`span`,{className:`pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center`,children:i(r.ItemIndicator,{children:i(e,{className:`h-3 w-3 text-doom-blue`})})}),i(r.ItemText,{children:o})]})}function p({className:e,...t}){return i(r.Separator,{"data-slot":`select-separator`,className:n(`my-1 h-px bg-doom-border-soft`,e),...t})}export{o as Select,u as SelectContent,s as SelectGroup,f as SelectItem,d as SelectLabel,p as SelectSeparator,l as SelectTrigger,c as SelectValue};
|
|
2
|
+
//# sourceMappingURL=Select.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.mjs","names":["Select","SelectPrimitive"],"sources":["../../../src/components/Select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { CheckIcon, ChevronDownIcon } from '../icons/icons.ts';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A single choice from a list, on Radix rather than a native <select>: a\n * native one cannot be styled to the palette on every platform, and the\n * cockpit's model and mode pickers need the same surface a popover has.\n */\nexport function Select(props: ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nexport function SelectGroup(props: ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nexport function SelectValue(props: ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nexport function SelectTrigger({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(\n 'flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-[11px] text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nexport function SelectContent({\n className,\n position = 'popper',\n sideOffset = 4,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n position={position}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise',\n className,\n )}\n {...props}\n >\n <SelectPrimitive.Viewport className=\"p-1\">{children}</SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nexport function SelectLabel({ className, ...props }: ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1 text-[8px] font-bold tracking-[0.14em] text-doom-faint uppercase', className)}\n {...props}\n />\n );\n}\n\nexport function SelectItem({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n 'relative flex cursor-pointer items-center gap-2 rounded-[3px] py-1.5 pr-2 pl-7 text-[11px] text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep',\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"h-3 w-3 text-doom-blue\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nexport function SelectSeparator({ className, ...props }: ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('my-1 h-px bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2LAUA,SAAgBA,EAAO,EAAoD,CACzE,OAAO,EAACC,EAAgB,KAAjB,CAAsB,YAAU,SAAS,GAAI,CAAQ,CAAA,CAC9D,CAEA,SAAgB,EAAY,EAAqD,CAC/E,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAY,EAAqD,CAC/E,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAc,CAAE,YAAW,WAAU,GAAG,GAAyD,CAC/G,OACE,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EACT,wVACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,EACD,EAACA,EAAgB,KAAjB,CAAsB,QAAA,GACpB,SAAA,EAAC,EAAD,CAAiB,UAAU,kCAAoC,CAAA,CAC3C,CAAA,CACC,GAE7B,CAEA,SAAgB,EAAc,CAC5B,YACA,WAAW,SACX,aAAa,EACb,WACA,GAAG,GAC8C,CACjD,OACE,EAACA,EAAgB,OAAjB,CAAA,SACE,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACA,WACE,aACZ,UAAW,EACT,oMACA,CACF,EACA,GAAI,EAEJ,SAAA,EAACA,EAAgB,SAAjB,CAA0B,UAAU,MAAO,UAAmC,CAAA,CACvD,CAAA,CACH,CAAA,CAE5B,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,OACE,EAACA,EAAgB,MAAjB,CACE,YAAU,eACV,UAAW,EAAG,6EAA8E,CAAS,EACrG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAW,CAAE,YAAW,WAAU,GAAG,GAAsD,CACzG,OACE,EAACA,EAAgB,KAAjB,CACE,YAAU,cACV,UAAW,EACT,kOACA,CACF,EACA,GAAI,EANN,SAAA,CAQE,EAAC,OAAD,CAAM,UAAU,+EACd,SAAA,EAACA,EAAgB,cAAjB,CAAA,SACE,EAAC,EAAD,CAAW,UAAU,wBAA0B,CAAA,CAClB,CAAA,CAC3B,CAAA,EACN,EAACA,EAAgB,SAAjB,CAA2B,UAAmC,CAAA,CAC1C,GAE1B,CAEA,SAAgB,EAAgB,CAAE,YAAW,GAAG,GAA2D,CACzG,OACE,EAACA,EAAgB,UAAjB,CACE,YAAU,mBACV,UAAW,EAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,orientation:i=`horizontal`,decorative:a=!0,...o}){return(0,n.jsx)(t.Separator.Root,{"data-slot":`separator`,orientation:i,decorative:a,className:e.cn(`shrink-0 bg-doom-border-soft`,i===`vertical`?`h-full w-px`:`h-px w-full`,r),...o})}exports.Separator=r;
|
|
2
|
+
//# sourceMappingURL=Separator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Separator.cjs","names":["SeparatorPrimitive","cn"],"sources":["../../../src/components/Separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A hairline in the soft border colour. Radix decides the semantics: a\n * decorative rule is hidden from assistive tech, a meaningful one keeps its\n * separator role, and either way the element carries `data-orientation` so a\n * consumer can style around it the way it does every other primitive.\n */\nexport function Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n orientation={orientation}\n decorative={decorative}\n className={cn(\n 'shrink-0 bg-doom-border-soft',\n orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"0FAUA,SAAgB,EAAU,CACxB,YACA,cAAc,aACd,aAAa,GACb,GAAG,GAC8C,CACjD,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAmB,KAApB,CACE,YAAU,YACG,cACD,aACZ,UAAWC,EAAAA,GACT,+BACA,IAAgB,WAAa,cAAgB,cAC7C,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Separator } from "radix-ui";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
//#region src/components/Separator.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A hairline in the soft border colour. Radix decides the semantics: a
|
|
6
|
+
* decorative rule is hidden from assistive tech, a meaningful one keeps its
|
|
7
|
+
* separator role, and either way the element carries `data-orientation` so a
|
|
8
|
+
* consumer can style around it the way it does every other primitive.
|
|
9
|
+
*/
|
|
10
|
+
declare function Separator$1({ className, orientation, decorative, ...props }: ComponentProps<typeof Separator.Root>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { Separator$1 as Separator };
|
|
13
|
+
//# sourceMappingURL=Separator.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Separator.d.mts","names":[],"sources":["../../../src/components/Separator.tsx"],"mappings":";;;;;;;;;iBAUgB,cACd,WACA,aACA,eACG,SACF,sBAAsB,UAAmB,oCAAK,IAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cn as e}from"../lib/cn.mjs";import{Separator as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,orientation:i=`horizontal`,decorative:a=!0,...o}){return n(t.Root,{"data-slot":`separator`,orientation:i,decorative:a,className:e(`shrink-0 bg-doom-border-soft`,i===`vertical`?`h-full w-px`:`h-px w-full`,r),...o})}export{r as Separator};
|
|
2
|
+
//# sourceMappingURL=Separator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Separator.mjs","names":["Separator","SeparatorPrimitive"],"sources":["../../../src/components/Separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A hairline in the soft border colour. Radix decides the semantics: a\n * decorative rule is hidden from assistive tech, a meaningful one keeps its\n * separator role, and either way the element carries `data-orientation` so a\n * consumer can style around it the way it does every other primitive.\n */\nexport function Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n orientation={orientation}\n decorative={decorative}\n className={cn(\n 'shrink-0 bg-doom-border-soft',\n orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"gHAUA,SAAgBA,EAAU,CACxB,YACA,cAAc,aACd,aAAa,GACb,GAAG,GAC8C,CACjD,OACE,EAACC,EAAmB,KAApB,CACE,YAAU,YACG,cACD,aACZ,UAAW,EACT,+BACA,IAAgB,WAAa,cAAgB,cAC7C,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime");function n({className:n,...r}){return(0,t.jsx)(`div`,{"data-slot":`skeleton`,"aria-hidden":!0,className:e.cn(`animate-pulse rounded bg-doom-border-soft`,n),...r})}exports.Skeleton=n;
|
|
2
|
+
//# sourceMappingURL=Skeleton.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.cjs","names":["cn"],"sources":["../../../src/components/Skeleton.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * The shape of content that has not arrived. It has no Radix counterpart; it\n * is a pulsing block, and it is aria-hidden because the live region that\n * announces the wait belongs to the surface, not to each placeholder.\n */\nexport function Skeleton({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n aria-hidden\n className={cn('animate-pulse rounded bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"oEAQA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAAgC,CACvE,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,WACV,cAAA,GACA,UAAWA,EAAAA,GAAG,4CAA6C,CAAS,EACpE,GAAI,CACL,CAAA,CAEL"}
|