@ctrl-ui/react 0.8.2 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -23
- package/dist/action-bar.d.ts +11 -12
- package/dist/activity.d.ts +24 -25
- package/dist/audio-recorder.d.ts +16 -16
- package/dist/audio-visualizer.d.ts +3 -4
- package/dist/audio-visualizer.js +1 -1
- package/dist/blocks/chat.d.ts +3 -4
- package/dist/blocks/chat.js +6 -3
- package/dist/blocks/coding-agent.d.ts +11 -12
- package/dist/blocks/coding-agent.js +10 -9
- package/dist/blocks/file-explorer-data.d.ts +11 -12
- package/dist/blocks/file-explorer.d.ts +3 -3
- package/dist/blocks/settings-data.d.ts +8 -9
- package/dist/blocks/settings.d.ts +4 -4
- package/dist/blocks/theme-toggle.d.ts +11 -12
- package/dist/blocks/theme-toggle.js +14 -4
- package/dist/chat-composer-attachment.d.ts +20 -21
- package/dist/chat-composer-attachment.js +24 -20
- package/dist/chat-composer-editor/extensions/mention.d.ts +5 -6
- package/dist/chat-composer-editor/extensions/mention.js +4 -0
- package/dist/chat-composer-editor/ghost.d.ts +3 -4
- package/dist/chat-composer-editor/schema.d.ts +2 -3
- package/dist/chat-composer-editor/serialize.d.ts +3 -4
- package/dist/chat-composer-editor/types.d.ts +5 -6
- package/dist/chat-composer-editor.d.ts +2 -3
- package/dist/chat-composer-editor.js +18 -4
- package/dist/chat-composer.d.ts +17 -18
- package/dist/chat-composer.js +14 -8
- package/dist/chat-layout.d.ts +17 -21
- package/dist/chat-layout.js +72 -86
- package/dist/chat-message.d.ts +19 -15
- package/dist/chat-message.js +19 -2
- package/dist/context-model.d.ts +7 -8
- package/dist/context.d.ts +21 -22
- package/dist/context.js +0 -2
- package/dist/control-props.d.ts +10 -11
- package/dist/control-variants.d.ts +6 -7
- package/dist/dynamic-notification-glass.d.ts +3 -4
- package/dist/dynamic-notification-liquid.d.ts +3 -4
- package/dist/dynamic-notification-siri-wave.d.ts +2 -3
- package/dist/dynamic-notification.d.ts +28 -29
- package/dist/email/email-brand.d.ts +60 -0
- package/dist/email/email-brand.js +101 -0
- package/dist/email/email-code.d.ts +18 -0
- package/dist/email/email-code.js +172 -0
- package/dist/email/email-footer.d.ts +63 -0
- package/dist/email/email-footer.js +98 -0
- package/dist/email/email.d.ts +62 -14
- package/dist/email/email.js +155 -24
- package/dist/email/length.d.ts +2 -3
- package/dist/email/templates.d.ts +56 -12
- package/dist/email/templates.js +314 -116
- package/dist/email/theme.d.ts +15 -8
- package/dist/email/theme.js +30 -8
- package/dist/environment-variables.d.ts +35 -36
- package/dist/extensions/create-track-highlight.d.ts +3 -4
- package/dist/extensions/supports-anchor-transitions.d.ts +2 -3
- package/dist/extensions/track-highlight.d.ts +3 -4
- package/dist/hooks/use-audio-recorder.d.ts +14 -15
- package/dist/hooks/use-chat-composer.d.ts +5 -6
- package/dist/hooks/use-chat-message.d.ts +8 -8
- package/dist/hooks/use-chat-message.js +1 -0
- package/dist/hooks/use-chat-thread-scroll.d.ts +8 -0
- package/dist/hooks/use-chat-thread-scroll.js +66 -0
- package/dist/hooks/use-color-area.d.ts +5 -6
- package/dist/hooks/use-copy-to-clipboard.d.ts +7 -8
- package/dist/hooks/use-dropzone.d.ts +11 -12
- package/dist/hooks/use-dynamic-notification.d.ts +6 -7
- package/dist/hooks/use-environment-variables.d.ts +9 -10
- package/dist/hooks/use-keyboard-navigation.d.ts +3 -0
- package/dist/hooks/use-keyboard-navigation.js +22 -0
- package/dist/hooks/use-mobile.d.ts +2 -3
- package/dist/hooks/use-textarea-trigger-menu.d.ts +2 -3
- package/dist/hooks/use-trigger-menu.d.ts +7 -8
- package/dist/hooks/use-user-ask.d.ts +11 -10
- package/dist/hooks/use-user-ask.js +56 -17
- package/dist/inline-attachment.d.ts +16 -17
- package/dist/inline-attachment.js +1 -1
- package/dist/inline-citation.d.ts +22 -23
- package/dist/knob-contracts/accordion-knobs.d.ts +3 -4
- package/dist/knob-contracts/accordion-knobs.js +1 -0
- package/dist/knob-contracts/action-bar-knobs.d.ts +3 -4
- package/dist/knob-contracts/action-bar-knobs.js +1 -1
- package/dist/knob-contracts/activity-knobs.d.ts +3 -4
- package/dist/knob-contracts/activity-knobs.js +2 -1
- package/dist/knob-contracts/alert-knobs.d.ts +3 -4
- package/dist/knob-contracts/alert-knobs.js +12 -1
- package/dist/knob-contracts/audio-recorder-knobs.d.ts +3 -4
- package/dist/knob-contracts/audio-visualizer-knobs.d.ts +3 -4
- package/dist/knob-contracts/audio-visualizer-knobs.js +1 -0
- package/dist/knob-contracts/avatar-knobs.d.ts +3 -4
- package/dist/knob-contracts/avatar-knobs.js +2 -1
- package/dist/knob-contracts/badge-knobs.d.ts +3 -4
- package/dist/knob-contracts/button-group-knobs.d.ts +3 -4
- package/dist/knob-contracts/button-knobs.d.ts +3 -4
- package/dist/knob-contracts/button-knobs.js +1 -0
- package/dist/knob-contracts/calendar-knobs.d.ts +3 -4
- package/dist/knob-contracts/card-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-composer-attachment-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-composer-attachment-knobs.js +5 -1
- package/dist/knob-contracts/chat-composer-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-composer-knobs.js +2 -0
- package/dist/knob-contracts/chat-layout-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-layout-knobs.js +2 -2
- package/dist/knob-contracts/chat-message-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-message-knobs.js +3 -1
- package/dist/knob-contracts/choice-knobs.d.ts +3 -4
- package/dist/knob-contracts/choice-knobs.js +2 -1
- package/dist/knob-contracts/code-diff-knobs.d.ts +3 -4
- package/dist/knob-contracts/code-diff-knobs.js +1 -0
- package/dist/knob-contracts/code-knobs.d.ts +3 -4
- package/dist/knob-contracts/code-knobs.js +3 -1
- package/dist/knob-contracts/collapsible-knobs.d.ts +3 -4
- package/dist/knob-contracts/color-picker-knobs.d.ts +3 -4
- package/dist/knob-contracts/context-knobs.d.ts +3 -4
- package/dist/knob-contracts/context-knobs.js +3 -0
- package/dist/knob-contracts/dockable-panel-knobs.d.ts +3 -4
- package/dist/knob-contracts/dockable-panel-knobs.js +1 -0
- package/dist/knob-contracts/dropzone-knobs.d.ts +3 -4
- package/dist/knob-contracts/dropzone-knobs.js +1 -0
- package/dist/knob-contracts/dynamic-notification-knobs.d.ts +3 -4
- package/dist/knob-contracts/empty-knobs.d.ts +3 -4
- package/dist/knob-contracts/empty-knobs.js +14 -1
- package/dist/knob-contracts/environment-variables-knobs.d.ts +3 -4
- package/dist/knob-contracts/environment-variables-knobs.js +2 -1
- package/dist/knob-contracts/field-knobs.d.ts +3 -4
- package/dist/knob-contracts/gradient-editor-knobs.d.ts +3 -4
- package/dist/knob-contracts/gradient-editor-knobs.js +3 -1
- package/dist/knob-contracts/infinite-canvas-knobs.d.ts +3 -4
- package/dist/knob-contracts/inline-attachment-knobs.d.ts +3 -4
- package/dist/knob-contracts/inline-attachment-knobs.js +6 -1
- package/dist/knob-contracts/inline-citation-knobs.d.ts +3 -4
- package/dist/knob-contracts/inline-citation-knobs.js +4 -1
- package/dist/knob-contracts/item-knobs.d.ts +3 -4
- package/dist/knob-contracts/kbd-knobs.d.ts +3 -4
- package/dist/knob-contracts/markdown-block-knobs.d.ts +3 -4
- package/dist/knob-contracts/markdown-block-knobs.js +2 -0
- package/dist/knob-contracts/markdown-knobs.d.ts +3 -4
- package/dist/knob-contracts/markdown-knobs.js +1 -0
- package/dist/knob-contracts/morphing-panel-knobs.d.ts +3 -4
- package/dist/knob-contracts/page-layout-knobs.d.ts +4 -0
- package/dist/knob-contracts/page-layout-knobs.js +15 -0
- package/dist/knob-contracts/pagination-knobs.d.ts +3 -4
- package/dist/knob-contracts/phone-input-knobs.d.ts +3 -4
- package/dist/knob-contracts/phone-input-knobs.js +1 -0
- package/dist/knob-contracts/popup-knobs.d.ts +3 -4
- package/dist/knob-contracts/progressive-blur-knobs.d.ts +3 -4
- package/dist/knob-contracts/progressive-blur-knobs.js +1 -0
- package/dist/knob-contracts/range-knobs.d.ts +3 -4
- package/dist/knob-contracts/resizable-knobs.d.ts +3 -4
- package/dist/knob-contracts/resizable-knobs.js +1 -0
- package/dist/knob-contracts/rich-tooltip-knobs.d.ts +3 -4
- package/dist/knob-contracts/scroll-area-knobs.d.ts +3 -4
- package/dist/knob-contracts/separator-knobs.d.ts +3 -4
- package/dist/knob-contracts/sidebar-knobs.d.ts +3 -4
- package/dist/knob-contracts/sidebar-knobs.js +1 -0
- package/dist/knob-contracts/skeleton-knobs.d.ts +3 -4
- package/dist/knob-contracts/skeleton-knobs.js +9 -1
- package/dist/knob-contracts/source-badge-knobs.d.ts +3 -4
- package/dist/knob-contracts/spinner-knobs.d.ts +3 -4
- package/dist/knob-contracts/stepper-knobs.d.ts +3 -4
- package/dist/knob-contracts/stepper-knobs.js +1 -0
- package/dist/knob-contracts/switch-knobs.d.ts +3 -4
- package/dist/knob-contracts/switch-knobs.js +7 -1
- package/dist/knob-contracts/table-knobs.d.ts +3 -4
- package/dist/knob-contracts/table-of-contents-knobs.d.ts +3 -4
- package/dist/knob-contracts/table-of-contents-knobs.js +25 -0
- package/dist/knob-contracts/tabs-knobs.d.ts +3 -4
- package/dist/knob-contracts/tabs-knobs.js +2 -1
- package/dist/knob-contracts/task-list-knobs.d.ts +3 -4
- package/dist/knob-contracts/task-list-knobs.js +5 -0
- package/dist/knob-contracts/thread-rail-knobs.d.ts +3 -4
- package/dist/knob-contracts/timeline-knobs.d.ts +3 -4
- package/dist/knob-contracts/toolbar-knobs.d.ts +3 -4
- package/dist/knob-contracts/toolbar-knobs.js +1 -0
- package/dist/knob-contracts/track-highlight-knobs.d.ts +3 -4
- package/dist/knob-contracts/transcript-divider-knobs.d.ts +3 -4
- package/dist/knob-contracts/tree-knobs.d.ts +3 -4
- package/dist/knob-contracts/user-ask-knobs.d.ts +3 -4
- package/dist/knob-contracts/user-ask-knobs.js +5 -0
- package/dist/lib/cn.d.ts +2 -3
- package/dist/lib/code-tokens.d.ts +12 -13
- package/dist/lib/color.d.ts +26 -27
- package/dist/lib/contrast.d.ts +12 -13
- package/dist/lib/diff.d.ts +14 -15
- package/dist/lib/dropzone-validation.d.ts +25 -26
- package/dist/lib/env-file.d.ts +12 -13
- package/dist/lib/format-audio-recorder-duration.d.ts +2 -3
- package/dist/lib/liquid-glass-optics.d.ts +2 -3
- package/dist/lib/phone-input-format.d.ts +3 -4
- package/dist/lib/phone-number.d.ts +8 -9
- package/dist/lib/trigger-detect.d.ts +4 -5
- package/dist/markdown-block.d.ts +11 -12
- package/dist/markdown-block.js +1 -1
- package/dist/scripts/contrast-eval.d.ts +16 -17
- package/dist/scripts/contrast-eval.js +13 -7
- package/dist/skin-provider.d.ts +14 -0
- package/dist/skin-provider.js +21 -0
- package/dist/skin.d.ts +14 -33
- package/dist/skin.js +3 -46
- package/dist/source-badge.d.ts +7 -8
- package/dist/styles/index.css +3 -5
- package/dist/styles/recipes/accordion.css +8 -2
- package/dist/styles/recipes/action-bar.css +40 -5
- package/dist/styles/recipes/activity.css +36 -3
- package/dist/styles/recipes/alert.css +97 -16
- package/dist/styles/recipes/audio-visualizer.css +8 -1
- package/dist/styles/recipes/avatar.css +17 -1
- package/dist/styles/recipes/badge.css +0 -1
- package/dist/styles/recipes/button-group.css +8 -0
- package/dist/styles/recipes/button.css +49 -8
- package/dist/styles/recipes/calendar.css +21 -6
- package/dist/styles/recipes/card.css +2 -0
- package/dist/styles/recipes/chat-composer-attachment.css +83 -54
- package/dist/styles/recipes/chat-composer.css +41 -22
- package/dist/styles/recipes/chat-layout.css +37 -54
- package/dist/styles/recipes/chat-message.css +78 -5
- package/dist/styles/recipes/choice.css +21 -2
- package/dist/styles/recipes/code-diff.css +9 -1
- package/dist/styles/recipes/code.css +64 -17
- package/dist/styles/recipes/collapsible.css +0 -3
- package/dist/styles/recipes/color-picker-details.css +1 -2
- package/dist/styles/recipes/color-picker-values.css +0 -4
- package/dist/styles/recipes/context.css +30 -18
- package/dist/styles/recipes/dockable-panel.css +8 -1
- package/dist/styles/recipes/dropzone.css +9 -2
- package/dist/styles/recipes/dynamic-notification-input.css +6 -0
- package/dist/styles/recipes/dynamic-notification.css +1 -0
- package/dist/styles/recipes/empty.css +118 -17
- package/dist/styles/recipes/environment-variables.css +9 -1
- package/dist/styles/recipes/field-parts.css +3 -6
- package/dist/styles/recipes/field.css +15 -5
- package/dist/styles/recipes/gradient-editor.css +33 -5
- package/dist/styles/recipes/inline-attachment.css +68 -20
- package/dist/styles/recipes/inline-citation.css +52 -10
- package/dist/styles/recipes/item.css +4 -2
- package/dist/styles/recipes/kbd.css +8 -0
- package/dist/styles/recipes/markdown-block.css +17 -2
- package/dist/styles/recipes/markdown.css +19 -0
- package/dist/styles/recipes/morphing-panel.css +1 -1
- package/dist/styles/recipes/page-layout.css +203 -0
- package/dist/styles/recipes/pagination.css +16 -4
- package/dist/styles/recipes/phone-input.css +8 -4
- package/dist/styles/recipes/popup-drawer.css +3 -1
- package/dist/styles/recipes/popup-lists.css +11 -0
- package/dist/styles/recipes/popup-toast.css +3 -29
- package/dist/styles/recipes/popup.css +10 -14
- package/dist/styles/recipes/progressive-blur.css +28 -7
- package/dist/styles/recipes/range.css +74 -3
- package/dist/styles/recipes/resizable.css +8 -10
- package/dist/styles/recipes/rich-tooltip.css +1 -4
- package/dist/styles/recipes/scroll-area.css +8 -2
- package/dist/styles/recipes/sidebar-menu.css +0 -6
- package/dist/styles/recipes/sidebar.css +56 -17
- package/dist/styles/recipes/skeleton.css +85 -3
- package/dist/styles/recipes/source-badge.css +20 -3
- package/dist/styles/recipes/stepper.css +8 -1
- package/dist/styles/recipes/switch.css +89 -17
- package/dist/styles/recipes/table-of-contents.css +211 -45
- package/dist/styles/recipes/table.css +0 -1
- package/dist/styles/recipes/tabs.css +35 -2
- package/dist/styles/recipes/task-list.css +68 -9
- package/dist/styles/recipes/thread-rail.css +19 -17
- package/dist/styles/recipes/toolbar.css +39 -4
- package/dist/styles/recipes/track-highlight.css +63 -5
- package/dist/styles/recipes/transcript-divider.css +1 -0
- package/dist/styles/recipes/tree.css +2 -0
- package/dist/styles/recipes/user-ask.css +65 -18
- package/dist/styles/theme.css +164 -138
- package/dist/surface-variants.d.ts +4 -5
- package/dist/task-list.d.ts +16 -17
- package/dist/thread-rail.d.ts +21 -22
- package/dist/thread-rail.js +1 -1
- package/dist/transcript-divider.d.ts +6 -7
- package/dist/ui/accordion.d.ts +10 -11
- package/dist/ui/alert-dialog.d.ts +11 -12
- package/dist/ui/alert-dialog.js +9 -7
- package/dist/ui/alert.d.ts +9 -10
- package/dist/ui/alert.js +3 -3
- package/dist/ui/aspect-ratio.d.ts +3 -4
- package/dist/ui/autocomplete.d.ts +19 -20
- package/dist/ui/autocomplete.js +6 -4
- package/dist/ui/avatar.d.ts +9 -10
- package/dist/ui/badge.d.ts +9 -10
- package/dist/ui/button-group.d.ts +7 -8
- package/dist/ui/button-group.js +3 -2
- package/dist/ui/button.d.ts +17 -18
- package/dist/ui/button.js +20 -5
- package/dist/ui/calendar.d.ts +3 -4
- package/dist/ui/card.d.ts +16 -17
- package/dist/ui/checkbox-group.d.ts +4 -5
- package/dist/ui/checkbox-group.js +3 -2
- package/dist/ui/checkbox.d.ts +3 -4
- package/dist/ui/code-diff.d.ts +8 -9
- package/dist/ui/code.d.ts +32 -23
- package/dist/ui/code.js +41 -20
- package/dist/ui/collapsible.d.ts +7 -8
- package/dist/ui/color-picker.d.ts +40 -41
- package/dist/ui/color-picker.js +8 -6
- package/dist/ui/combobox-disabled-selection.d.ts +3 -4
- package/dist/ui/combobox.d.ts +19 -20
- package/dist/ui/combobox.js +6 -4
- package/dist/ui/command.d.ts +22 -19
- package/dist/ui/command.js +63 -13
- package/dist/ui/context-menu.d.ts +30 -31
- package/dist/ui/context-menu.js +10 -7
- package/dist/ui/dialog.d.ts +13 -13
- package/dist/ui/dialog.js +11 -9
- package/dist/ui/dockable-panel-geometry.d.ts +7 -8
- package/dist/ui/dockable-panel.d.ts +21 -22
- package/dist/ui/drawer.d.ts +17 -18
- package/dist/ui/drawer.js +9 -8
- package/dist/ui/dropdown-menu.d.ts +32 -33
- package/dist/ui/dropdown-menu.js +6 -4
- package/dist/ui/dropzone.d.ts +24 -24
- package/dist/ui/dropzone.js +4 -1
- package/dist/ui/empty.d.ts +14 -14
- package/dist/ui/empty.js +3 -3
- package/dist/ui/field.d.ts +26 -27
- package/dist/ui/form.d.ts +4 -5
- package/dist/ui/gradient-editor.d.ts +16 -17
- package/dist/ui/gradient-editor.js +2 -2
- package/dist/ui/hover-card.d.ts +6 -7
- package/dist/ui/hover-card.js +6 -4
- package/dist/ui/infinite-canvas.d.ts +11 -12
- package/dist/ui/infinite-canvas.js +1 -0
- package/dist/ui/input-group.d.ts +6 -7
- package/dist/ui/input-otp.d.ts +7 -8
- package/dist/ui/input.d.ts +3 -4
- package/dist/ui/item.d.ts +20 -21
- package/dist/ui/kbd.d.ts +7 -5
- package/dist/ui/kbd.js +4 -2
- package/dist/ui/markdown-elements.d.ts +20 -21
- package/dist/ui/markdown.d.ts +5 -6
- package/dist/ui/menubar.d.ts +25 -26
- package/dist/ui/menubar.js +10 -7
- package/dist/ui/meter.d.ts +11 -12
- package/dist/ui/morphing-panel.d.ts +8 -9
- package/dist/ui/native-select.d.ts +3 -4
- package/dist/ui/native-select.js +1 -1
- package/dist/ui/navigation-menu.d.ts +17 -18
- package/dist/ui/navigation-menu.js +6 -4
- package/dist/ui/number-field.d.ts +15 -16
- package/dist/ui/number-field.js +1 -1
- package/dist/ui/page-layout.d.ts +44 -0
- package/dist/ui/page-layout.js +108 -0
- package/dist/ui/pagination.d.ts +10 -11
- package/dist/ui/phone-input.d.ts +5 -6
- package/dist/ui/phone-input.js +39 -36
- package/dist/ui/popover.d.ts +11 -12
- package/dist/ui/popover.js +6 -4
- package/dist/ui/progress.d.ts +11 -12
- package/dist/ui/progressive-blur.d.ts +4 -5
- package/dist/ui/radio-group.d.ts +5 -6
- package/dist/ui/resizable.d.ts +12 -13
- package/dist/ui/resizable.js +1 -1
- package/dist/ui/responsive-dialog.d.ts +11 -12
- package/dist/ui/rich-tooltip-tour.d.ts +5 -6
- package/dist/ui/rich-tooltip.d.ts +21 -23
- package/dist/ui/rich-tooltip.js +6 -6
- package/dist/ui/scroll-area.d.ts +7 -8
- package/dist/ui/scroll-area.js +9 -6
- package/dist/ui/select.d.ts +21 -14
- package/dist/ui/select.js +8 -5
- package/dist/ui/separator.d.ts +2 -3
- package/dist/ui/sheet.d.ts +8 -9
- package/dist/ui/sheet.js +9 -7
- package/dist/ui/sidebar-menu.d.ts +18 -19
- package/dist/ui/sidebar-menu.js +4 -3
- package/dist/ui/sidebar-provider.d.ts +32 -7
- package/dist/ui/sidebar-provider.js +82 -22
- package/dist/ui/sidebar-resize-rail.d.ts +8 -0
- package/dist/ui/sidebar-resize-rail.js +192 -0
- package/dist/ui/sidebar.d.ts +19 -13
- package/dist/ui/sidebar.js +120 -55
- package/dist/ui/skeleton.d.ts +7 -4
- package/dist/ui/skeleton.js +9 -2
- package/dist/ui/slider.d.ts +6 -5
- package/dist/ui/slider.js +16 -13
- package/dist/ui/spinner.d.ts +3 -4
- package/dist/ui/stepper.d.ts +22 -23
- package/dist/ui/switch.d.ts +3 -4
- package/dist/ui/switch.js +12 -1
- package/dist/ui/table-of-contents.d.ts +7 -8
- package/dist/ui/table-of-contents.js +4 -2
- package/dist/ui/table.d.ts +17 -18
- package/dist/ui/tabs.d.ts +14 -11
- package/dist/ui/textarea.d.ts +3 -4
- package/dist/ui/timeline.d.ts +18 -19
- package/dist/ui/toast.d.ts +9 -9
- package/dist/ui/toast.js +23 -16
- package/dist/ui/toggle.d.ts +5 -6
- package/dist/ui/toggle.js +3 -2
- package/dist/ui/toolbar.d.ts +15 -16
- package/dist/ui/toolbar.js +15 -4
- package/dist/ui/tooltip.d.ts +6 -13
- package/dist/ui/tooltip.js +8 -9
- package/dist/ui/tree.d.ts +18 -19
- package/dist/ui/tree.js +3 -2
- package/dist/ui/trigger-menu.d.ts +15 -16
- package/dist/ui/trigger-menu.js +6 -4
- package/dist/ui/use-switch-drag.d.ts +7 -0
- package/dist/ui/use-switch-drag.js +104 -0
- package/dist/user-ask.d.ts +28 -27
- package/dist/user-ask.js +38 -13
- package/package.json +17 -16
- package/dist/code-block-editor.d.ts +0 -59
- package/dist/code-block-editor.js +0 -250
- package/dist/knob-contracts/code-block-editor-knobs.d.ts +0 -5
- package/dist/knob-contracts/code-block-editor-knobs.js +0 -11
- package/dist/lib/code-block-shiki.d.ts +0 -9
- package/dist/lib/code-block-shiki.js +0 -6
- package/dist/skin.config.d.ts +0 -5
- package/dist/skin.config.js +0 -12
- package/dist/styles/recipes/code-block-editor.css +0 -136
- package/dist/styles/skin-theme.css +0 -137
- package/dist/styles/skin.css +0 -143
package/dist/styles/theme.css
CHANGED
|
@@ -1,65 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
--
|
|
32
|
-
--
|
|
33
|
-
--
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
:
|
|
57
|
-
|
|
1
|
+
:where(:root, [data-skin]) {
|
|
2
|
+
--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
3
|
+
--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
4
|
+
|
|
5
|
+
--primary: oklch(0.2046 0 0);
|
|
6
|
+
--primary-foreground: oklch(0.9851 0 0);
|
|
7
|
+
--foreground: oklch(0.1448 0 0);
|
|
8
|
+
--secondary-foreground: oklch(0.1448 0 0);
|
|
9
|
+
--accent-foreground: oklch(0.1448 0 0);
|
|
10
|
+
|
|
11
|
+
--background: oklch(1 0 0);
|
|
12
|
+
--card: oklch(1 0 0);
|
|
13
|
+
--card-foreground: oklch(0.1448 0 0);
|
|
14
|
+
--popover: oklch(1 0 0);
|
|
15
|
+
--popover-foreground: oklch(0.1448 0 0);
|
|
16
|
+
--canvas: oklch(1 0 0);
|
|
17
|
+
|
|
18
|
+
--radius: 0px;
|
|
19
|
+
--shadow-size: 0;
|
|
20
|
+
--scroll-fade-size: 0px;
|
|
21
|
+
--backdrop-blur-popover: 0px;
|
|
22
|
+
--backdrop-blur-overlay: 0px;
|
|
23
|
+
|
|
24
|
+
--control-h: 36px;
|
|
25
|
+
--popover-opacity: 1;
|
|
26
|
+
--overlay-opacity: 0.2;
|
|
27
|
+
--padding-x: 16px;
|
|
28
|
+
--padding-y: 10px;
|
|
29
|
+
|
|
30
|
+
--muted: oklch(0.9425 0 0);
|
|
31
|
+
--muted-foreground: oklch(0.52 0 0);
|
|
32
|
+
--secondary: oklch(0.9425 0 0);
|
|
33
|
+
--accent: oklch(0.9295 0 0);
|
|
34
|
+
--destructive: oklch(0.568 0.1961 32);
|
|
35
|
+
--destructive-foreground: oklch(0.9852 0.0058 85);
|
|
36
|
+
--border: oklch(0.8851 0 0 / var(--ring-opacity));
|
|
37
|
+
--input: oklch(0.8851 0 0);
|
|
38
|
+
--ring: oklch(0.5 0 0);
|
|
39
|
+
--text-label: 0.75rem;
|
|
40
|
+
--radius-control: calc(var(--radius) * 2);
|
|
41
|
+
--radius-field: calc(var(--radius) * 2.2);
|
|
42
|
+
--radius-panel: calc(var(--radius) * 2.6);
|
|
43
|
+
--radius-scene: calc(var(--radius) * 2.8);
|
|
44
|
+
--radius-popup-item: calc(var(--radius-control) * 0.6);
|
|
45
|
+
--shadow-color: oklch(0.2986 0 0);
|
|
46
|
+
--shadow-opacity: 1;
|
|
47
|
+
--duration-fast: 150ms;
|
|
48
|
+
--duration-base: 200ms;
|
|
49
|
+
--duration-slow: 300ms;
|
|
50
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
51
|
+
--ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
|
|
52
|
+
--z-overlay: 70;
|
|
53
|
+
--z-modal: 71;
|
|
54
|
+
--z-popup: 80;
|
|
55
|
+
--z-tooltip: 90;
|
|
56
|
+
--z-toast: 95;
|
|
57
|
+
--popover-padding: 0.25rem;
|
|
58
58
|
--font-body: var(--font-sans);
|
|
59
59
|
--font-display: var(--font-sans);
|
|
60
|
-
|
|
61
|
-
/* majority defaults measured over the shipped packs; a pack declares one only to diverge,
|
|
62
|
-
and the dark block below carries the mode-split ones */
|
|
63
60
|
--primary-text: oklch(from var(--primary) 0.48 c h);
|
|
64
61
|
--destructive-text: oklch(from var(--destructive) 0.48 c h);
|
|
65
62
|
--ring-opacity: 1;
|
|
@@ -97,10 +94,7 @@
|
|
|
97
94
|
|
|
98
95
|
--corner-shape: round;
|
|
99
96
|
--corner-radius-fit: 0.5;
|
|
100
|
-
--radius-popover: calc(
|
|
101
|
-
var(--radius-popup-item-fit) +
|
|
102
|
-
clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding) - var(--nest-safe))
|
|
103
|
-
);
|
|
97
|
+
--radius-popover: calc(var(--radius-popup-item-fit) + clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding)));
|
|
104
98
|
|
|
105
99
|
--shadow-highlight: oklch(1 0 0 / 0.62);
|
|
106
100
|
--shadow-y: 1;
|
|
@@ -146,27 +140,15 @@
|
|
|
146
140
|
--badge-pink-foreground: var(--color-pink-800);
|
|
147
141
|
--badge-pink-border: oklch(from var(--color-pink-500) l c h / 0.2);
|
|
148
142
|
--badge-pink-hover: oklch(from var(--color-pink-500) l c h / 0.24);
|
|
149
|
-
|
|
150
|
-
/* tw-scale rungs multiply from THE radius knob; the squircle fallback below re-derives them ×fit */
|
|
151
143
|
--radius-sm: calc(var(--radius) * 0.6);
|
|
152
144
|
--radius-md: calc(var(--radius) * 0.8);
|
|
153
145
|
--radius-lg: var(--radius);
|
|
154
146
|
--radius-xl: calc(var(--radius) * 1.4);
|
|
155
147
|
--radius-2xl: calc(var(--radius) * 1.6);
|
|
156
|
-
|
|
157
|
-
/* Browser clamps rendered radius to half the box's short side, so at large --radius a row's visible
|
|
158
|
-
corner saturates below the --radius-popup-item token. Container must match the visible corner, not
|
|
159
|
-
the token, or it out-rounds the row and the overflow clip cuts it flat. */
|
|
160
148
|
--radius-popup-item-fit: min(var(--radius-popup-item), calc(var(--control-h-xs) / 2));
|
|
161
|
-
/* Sub-pixel guard for concentric nesting in ring-clipped containers. Bump to border+~2px if one ever gets a real border. */
|
|
162
149
|
--nest-safe: 1px;
|
|
163
|
-
/* Corner-fit ratio = 2+sqrt(2): control at gap `g` from corner radius R is sliced once R > ratio*g.
|
|
164
|
-
Caps corners that can outgrow their content inset (code-block --radius-panel vs fixed tab inset)
|
|
165
|
-
at gap*ratio, so header controls never clip. */
|
|
166
150
|
--nest-corner-ratio: 3.41421356;
|
|
167
151
|
--control-h-md: var(--control-h);
|
|
168
|
-
|
|
169
|
-
/* shadcn Sidebar compat: --sidebar* aliases existing tokens; row state derives from --foreground alpha. */
|
|
170
152
|
--sidebar: var(--canvas);
|
|
171
153
|
--sidebar-foreground: var(--foreground);
|
|
172
154
|
--sidebar-primary: var(--primary);
|
|
@@ -177,7 +159,30 @@
|
|
|
177
159
|
--sidebar-ring: var(--ring);
|
|
178
160
|
}
|
|
179
161
|
|
|
180
|
-
:where(.dark [data-skin], .dark[data-skin]) {
|
|
162
|
+
:where(.dark:root, .dark[data-skin], .dark [data-skin]) {
|
|
163
|
+
--primary: oklch(0.9851 0 0);
|
|
164
|
+
--primary-foreground: oklch(0.2046 0 0);
|
|
165
|
+
--foreground: oklch(0.9851 0 0);
|
|
166
|
+
--card-foreground: oklch(0.9851 0 0);
|
|
167
|
+
--popover-foreground: oklch(0.9851 0 0);
|
|
168
|
+
--secondary-foreground: oklch(0.9851 0 0);
|
|
169
|
+
--accent-foreground: oklch(0.9851 0 0);
|
|
170
|
+
--background: oklch(0.1448 0 0);
|
|
171
|
+
--card: oklch(0.2046 0 0);
|
|
172
|
+
--popover: oklch(0.2046 0 0);
|
|
173
|
+
--canvas: oklch(0.1448 0 0);
|
|
174
|
+
|
|
175
|
+
--muted: oklch(0.2668 0 0);
|
|
176
|
+
--muted-foreground: oklch(0.7405 0 0);
|
|
177
|
+
--secondary: oklch(0.2668 0 0);
|
|
178
|
+
--accent: oklch(0.2864 0 0);
|
|
179
|
+
--destructive: oklch(0.551 0.1799 32);
|
|
180
|
+
--destructive-foreground: oklch(0.9645 0.008 84);
|
|
181
|
+
--border: oklch(0.3082 0 0 / var(--ring-opacity));
|
|
182
|
+
--input: oklch(0.3082 0 0);
|
|
183
|
+
--ring: oklch(0.66 0 0);
|
|
184
|
+
--focus-ring: oklch(0.66 0 0);
|
|
185
|
+
--shadow-color: oklch(0 0 0);
|
|
181
186
|
--primary-text: oklch(from var(--primary) 0.78 c h);
|
|
182
187
|
--destructive-text: oklch(from var(--destructive) 0.78 c h);
|
|
183
188
|
--shadow-highlight: oklch(1 0 0 / 0.055);
|
|
@@ -214,6 +219,53 @@
|
|
|
214
219
|
--badge-pink-hover: oklch(from var(--color-pink-400) l c h / 0.28);
|
|
215
220
|
}
|
|
216
221
|
|
|
222
|
+
@custom-variant dark (&:is(.dark *));
|
|
223
|
+
|
|
224
|
+
/* biome-ignore-start lint/complexity/noImportantStyles: Reduced motion must override skin and inline motion. */
|
|
225
|
+
|
|
226
|
+
@media (prefers-reduced-motion: reduce) {
|
|
227
|
+
:where(:root),
|
|
228
|
+
[data-skin] {
|
|
229
|
+
--duration-fast: 0ms !important;
|
|
230
|
+
--duration-base: 0ms !important;
|
|
231
|
+
--duration-slow: 0ms !important;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
:where(:root, :root *, [data-skin], [data-skin] *, [data-skin]::before, [data-skin]::after, [data-skin] *::before, [data-skin] *::after) {
|
|
235
|
+
scroll-behavior: auto !important;
|
|
236
|
+
transition-delay: 0ms !important;
|
|
237
|
+
transition-duration: 0ms !important;
|
|
238
|
+
animation-delay: 0ms !important;
|
|
239
|
+
animation-duration: 1ms !important;
|
|
240
|
+
animation-iteration-count: 1 !important;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
:root[data-motion="reduced"],
|
|
245
|
+
[data-motion="reduced"][data-skin],
|
|
246
|
+
[data-motion="reduced"] [data-skin] {
|
|
247
|
+
--duration-fast: 0ms !important;
|
|
248
|
+
--duration-base: 0ms !important;
|
|
249
|
+
--duration-slow: 0ms !important;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
:where(
|
|
253
|
+
[data-motion="reduced"],
|
|
254
|
+
[data-motion="reduced"] *,
|
|
255
|
+
[data-motion="reduced"]::before,
|
|
256
|
+
[data-motion="reduced"]::after,
|
|
257
|
+
[data-motion="reduced"] *::before,
|
|
258
|
+
[data-motion="reduced"] *::after
|
|
259
|
+
) {
|
|
260
|
+
scroll-behavior: auto !important;
|
|
261
|
+
transition-delay: 0ms !important;
|
|
262
|
+
transition-duration: 0ms !important;
|
|
263
|
+
animation-delay: 0ms !important;
|
|
264
|
+
animation-duration: 1ms !important;
|
|
265
|
+
animation-iteration-count: 1 !important;
|
|
266
|
+
}
|
|
267
|
+
/* biome-ignore-end lint/complexity/noImportantStyles: Reduced motion must override skin and inline motion. */
|
|
268
|
+
|
|
217
269
|
@theme inline {
|
|
218
270
|
--color-background: var(--background);
|
|
219
271
|
--color-canvas: var(--canvas);
|
|
@@ -246,9 +298,6 @@
|
|
|
246
298
|
--color-sidebar-border: var(--sidebar-border);
|
|
247
299
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
248
300
|
|
|
249
|
-
/* Self-references, not values: @theme merges globally across all skin packs in one Tailwind build,
|
|
250
|
-
so a value here could never differ per skin. Self-ref keeps the var alive in the emitted utility,
|
|
251
|
-
so pack-scoped declarations re-value each rung per skin (same shape as --color-primary below). */
|
|
252
301
|
--radius-sm: var(--radius-sm);
|
|
253
302
|
--radius-md: var(--radius-md);
|
|
254
303
|
--radius-lg: var(--radius-lg);
|
|
@@ -258,7 +307,6 @@
|
|
|
258
307
|
--radius-panel: var(--radius-panel);
|
|
259
308
|
--radius-scene: var(--radius-scene);
|
|
260
309
|
|
|
261
|
-
/* Same self-reference shape; rungs + paired line-height/weight/tracking live in each skin theme. */
|
|
262
310
|
--text-micro: var(--text-micro);
|
|
263
311
|
--text-caption: var(--text-caption);
|
|
264
312
|
--text-label: var(--text-label);
|
|
@@ -282,13 +330,9 @@
|
|
|
282
330
|
--text-display--font-weight: var(--text-display--font-weight);
|
|
283
331
|
--text-display--letter-spacing: var(--text-display--letter-spacing);
|
|
284
332
|
|
|
285
|
-
/* Generates font-body/font-display utilities off role tokens above; skin re-values one alone to re-face all headings/body. */
|
|
286
333
|
--font-body: var(--font-body);
|
|
287
334
|
--font-display: var(--font-display);
|
|
288
335
|
|
|
289
|
-
/* Global knobs (size/opacity/y) + tier multipliers keep control/panel/popover/modal/ambient shadows
|
|
290
|
-
distinct without per-component math. Each tier layers tight+mid+long alphas for one soft umber
|
|
291
|
-
penumbra ("soft daylight"); every length multiplies the global knobs so --shadow-size:0 flattens all. */
|
|
292
336
|
--shadow-xs:
|
|
293
337
|
inset 0 1px 0 oklch(from var(--shadow-highlight) l c h / calc(alpha * var(--shadow-opacity) * min(var(--shadow-size), 1))),
|
|
294
338
|
0 calc(1px * var(--shadow-size) * var(--shadow-control-multiplier) * var(--shadow-y))
|
|
@@ -345,7 +389,7 @@
|
|
|
345
389
|
0 calc(6px * var(--shadow-size) * var(--shadow-popover-multiplier) * var(--shadow-y))
|
|
346
390
|
calc(14px * var(--shadow-size) * var(--shadow-popover-multiplier))
|
|
347
391
|
calc(-3px * var(--shadow-size) * var(--shadow-popover-multiplier))
|
|
348
|
-
oklch(from var(--shadow-color) l c h / calc(0.07 * var(--shadow-opacity)));
|
|
392
|
+
oklch(from var(--shadow-color) l c h / calc(0.07 * var(--shadow-opacity)));
|
|
349
393
|
--shadow-modal:
|
|
350
394
|
inset 0 1px 0
|
|
351
395
|
oklch(from var(--shadow-highlight) l c h / calc(alpha * var(--shadow-opacity) * min(var(--shadow-size), 1))),
|
|
@@ -364,7 +408,7 @@
|
|
|
364
408
|
0 calc(7px * var(--shadow-size) * var(--shadow-modal-multiplier) * var(--shadow-y))
|
|
365
409
|
calc(16px * var(--shadow-size) * var(--shadow-modal-multiplier))
|
|
366
410
|
calc(-3px * var(--shadow-size) * var(--shadow-modal-multiplier))
|
|
367
|
-
oklch(from var(--shadow-color) l c h / calc(0.1 * var(--shadow-opacity)));
|
|
411
|
+
oklch(from var(--shadow-color) l c h / calc(0.1 * var(--shadow-opacity)));
|
|
368
412
|
--shadow-soft:
|
|
369
413
|
0 calc(0.75px * var(--shadow-size) * var(--shadow-ambient-multiplier) * var(--shadow-y))
|
|
370
414
|
calc(2px * var(--shadow-size) * var(--shadow-ambient-multiplier)) calc(-0.75px * var(--shadow-size) * var(--shadow-ambient-multiplier))
|
|
@@ -374,7 +418,7 @@
|
|
|
374
418
|
oklch(from var(--shadow-color) l c h / calc(0.05 * var(--shadow-opacity))),
|
|
375
419
|
0 calc(4.5px * var(--shadow-size) * var(--shadow-ambient-multiplier) * var(--shadow-y))
|
|
376
420
|
calc(12px * var(--shadow-size) * var(--shadow-ambient-multiplier)) calc(-2.5px * var(--shadow-size) * var(--shadow-ambient-multiplier))
|
|
377
|
-
oklch(from var(--shadow-color) l c h / calc(0.05 * var(--shadow-opacity)));
|
|
421
|
+
oklch(from var(--shadow-color) l c h / calc(0.05 * var(--shadow-opacity)));
|
|
378
422
|
|
|
379
423
|
--shadow-inset:
|
|
380
424
|
inset 0 calc(1px * var(--shadow-size) * var(--shadow-control-multiplier) * var(--shadow-y))
|
|
@@ -383,14 +427,11 @@
|
|
|
383
427
|
inset 0 0 calc(4px * var(--shadow-size) * var(--shadow-control-multiplier))
|
|
384
428
|
oklch(from var(--shadow-color) l c h / calc(0.04 * var(--shadow-opacity)));
|
|
385
429
|
|
|
386
|
-
/* bare `transition*` utilities inherit the themed curve + tempo */
|
|
387
430
|
--default-transition-duration: var(--duration-fast);
|
|
388
431
|
--default-transition-timing-function: var(--ease-standard);
|
|
389
432
|
}
|
|
390
433
|
|
|
391
434
|
@layer base {
|
|
392
|
-
/* v4 defaults border/divide color to currentColor; restore themed border (same rule shadcn v4 ships, host merge is harmless). */
|
|
393
|
-
/* border-box origin too: default padding-box origin + border-box clip + repeat tiles the gradient's far end into a translucent border ring (--border carries alpha in most packs). Escape hatch: bg-origin-padding. */
|
|
394
435
|
*,
|
|
395
436
|
::after,
|
|
396
437
|
::before {
|
|
@@ -404,21 +445,14 @@
|
|
|
404
445
|
}
|
|
405
446
|
}
|
|
406
447
|
|
|
407
|
-
/* Squircle w/o corner-shape support falls back to plain round radius, reading over-rounded; shrink
|
|
408
|
-
fallback by --corner-radius-fit to track Chrome's squircle. Gated on live --corner-shape via style
|
|
409
|
-
query (fires only when squircle selected); re-declared on DA elements since skin-root tokens bake var(--radius) at their root, unreachable by descendant override. No style-query support = current fallback. */
|
|
410
448
|
@supports not (corner-shape: squircle) {
|
|
411
449
|
@container style(--corner-shape: squircle) {
|
|
412
450
|
:where([data-control-ui][data-slot]) {
|
|
413
|
-
/* Halve base control radius; concentric popup/popover tokens re-derive from it, no second factor needed. */
|
|
414
451
|
--radius-control: calc(var(--radius) * 2 * var(--corner-radius-fit));
|
|
415
452
|
--radius-popup-item: calc(var(--radius-control) * 0.6);
|
|
416
453
|
--radius-popup-item-fit: min(var(--radius-popup-item), calc(var(--control-h-xs) / 2));
|
|
417
|
-
--radius-popover: calc(
|
|
418
|
-
|
|
419
|
-
clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding) - var(--nest-safe))
|
|
420
|
-
);
|
|
421
|
-
/* Each derives straight from --radius; must mirror the :where([data-skin]) scale above ×fit. */
|
|
454
|
+
--radius-popover: calc(var(--radius-popup-item-fit) + clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding)));
|
|
455
|
+
|
|
422
456
|
--radius-sm: calc(var(--radius) * 0.6 * var(--corner-radius-fit));
|
|
423
457
|
--radius-md: calc(var(--radius) * 0.8 * var(--corner-radius-fit));
|
|
424
458
|
--radius-lg: calc(var(--radius) * var(--corner-radius-fit));
|
|
@@ -430,16 +464,38 @@
|
|
|
430
464
|
}
|
|
431
465
|
}
|
|
432
466
|
}
|
|
467
|
+
|
|
468
|
+
body {
|
|
469
|
+
font-synthesis: none;
|
|
470
|
+
-webkit-font-smoothing: antialiased;
|
|
471
|
+
-moz-osx-font-smoothing: grayscale;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
:where(
|
|
475
|
+
[data-control-family]:is(
|
|
476
|
+
a[href],
|
|
477
|
+
button,
|
|
478
|
+
input,
|
|
479
|
+
label,
|
|
480
|
+
select,
|
|
481
|
+
summary,
|
|
482
|
+
textarea,
|
|
483
|
+
[role="button"],
|
|
484
|
+
[role="checkbox"],
|
|
485
|
+
[role="menuitem"],
|
|
486
|
+
[role="menuitemcheckbox"],
|
|
487
|
+
[role="menuitemradio"],
|
|
488
|
+
[role="option"],
|
|
489
|
+
[role="radio"],
|
|
490
|
+
[role="switch"],
|
|
491
|
+
[role="tab"]
|
|
492
|
+
)
|
|
493
|
+
) {
|
|
494
|
+
touch-action: manipulation;
|
|
495
|
+
}
|
|
433
496
|
}
|
|
434
497
|
|
|
435
498
|
@layer components {
|
|
436
|
-
/* THE keyboard focus indicator, for every Control UI element in one rule. An outline, not a
|
|
437
|
-
box-shadow: a skin that re-paints box-shadow cannot erase it, and forced-colors mode repaints
|
|
438
|
-
outline-color with a system color while it drops box-shadow entirely. Opt OUT (a part that takes
|
|
439
|
-
programmatic focus but is not a target) by re-valuing --focus-ring-width to 0px on that part.
|
|
440
|
-
A control rendered as a <label> never takes focus itself — the input it wraps does, and a part
|
|
441
|
-
nested inside a composed control (an input inside InputGroup) lets that shell carry the ring so
|
|
442
|
-
it wraps the whole field instead of one part of it. */
|
|
443
499
|
:where([data-control-family]):focus-visible,
|
|
444
500
|
:where([data-control-family][data-control="true"]):has(:focus-visible) {
|
|
445
501
|
outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring);
|
|
@@ -484,20 +540,12 @@
|
|
|
484
540
|
}
|
|
485
541
|
}
|
|
486
542
|
|
|
487
|
-
/* Cross-slide switch, shared by every surface that swaps one panel for another (tabs panels, inline
|
|
488
|
-
citation sources). Contract: the element owning the switch carries data-slide="scope", each swapped
|
|
489
|
-
child data-slide="panel" plus the lifecycle attributes — inert, data-starting-style /
|
|
490
|
-
data-ending-style, data-activation-direction. Base UI stamps those on tabs panels; inline citation
|
|
491
|
-
stamps its own. Keyed on the role, not on a component, so a new caller opts in with two attributes. */
|
|
492
543
|
:where([data-slide="panel"]) {
|
|
493
544
|
translate: 0 0;
|
|
494
|
-
|
|
545
|
+
|
|
495
546
|
transition: translate var(--duration-slow) var(--ease-emphasized);
|
|
496
547
|
}
|
|
497
548
|
|
|
498
|
-
/* Fallback switch (no anchor positioning): the outgoing panel stays mounted+inert until its exit
|
|
499
|
-
anim finishes; two in-flow panels would stack, so the exiting one is pulled from layout the moment
|
|
500
|
-
it's inert and the entering one gets a soft directional nudge. Active panel is never `inert`. */
|
|
501
549
|
:where([data-slide="panel"][inert]) {
|
|
502
550
|
display: none;
|
|
503
551
|
}
|
|
@@ -518,14 +566,7 @@
|
|
|
518
566
|
translate: 0 0.35rem;
|
|
519
567
|
}
|
|
520
568
|
|
|
521
|
-
/* True cross-slide (anchor positioning, Limited → @supports per the CSS-first rule): the exiting
|
|
522
|
-
panel is revived and glued edge-to-edge onto the entering panel's box (anchor = the open panel).
|
|
523
|
-
Anchor offsets track the anchor's translated box every frame, so the pair travel as ONE strip
|
|
524
|
-
driven by a single transition — the entering panel's ±100% slide — whatever wrapper the panels
|
|
525
|
-
happen to live in (they are not always the scope's direct children). */
|
|
526
569
|
@supports ((anchor-name: --aui-slide-panel) and (anchor-scope: --aui-slide-panel)) {
|
|
527
|
-
/* Per-instance scope: without it the exiting panel would anchor onto the LAST open panel in the
|
|
528
|
-
whole document — another instance's panel. Nested scopes re-scope, so names never leak. */
|
|
529
570
|
:where([data-slide="scope"]) {
|
|
530
571
|
anchor-scope: --aui-slide-panel;
|
|
531
572
|
}
|
|
@@ -534,9 +575,6 @@
|
|
|
534
575
|
anchor-name: --aui-slide-panel;
|
|
535
576
|
}
|
|
536
577
|
|
|
537
|
-
/* display:block revives the fallback-hidden panel; anchor-size clips a longer outgoing panel to
|
|
538
|
-
the incoming one's box mid-slide. The per-direction glue below does the placement; a panel with
|
|
539
|
-
direction "none" gets no glue and no hold, i.e. the instant fallback swap. */
|
|
540
578
|
:where([data-slide="panel"][inert][data-ending-style]) {
|
|
541
579
|
display: block;
|
|
542
580
|
position: absolute;
|
|
@@ -546,15 +584,11 @@
|
|
|
546
584
|
overflow: clip;
|
|
547
585
|
}
|
|
548
586
|
|
|
549
|
-
/* The panels' direct parent turns containing block + crops the ±100% travel while a switch is in
|
|
550
|
-
flight (an absolutely positioned exiting panel escapes the overflow of non-positioned ancestors). */
|
|
551
587
|
:where(:has(> [data-slide="panel"][data-ending-style])) {
|
|
552
588
|
position: relative;
|
|
553
589
|
overflow: clip;
|
|
554
590
|
}
|
|
555
591
|
|
|
556
|
-
/* Glue = trailing edge of the strip; the hold animation is what keeps Base UI from unmounting the
|
|
557
|
-
exiting panel mid-slide (it waits on the panel's own animations, and the glue isn't one). */
|
|
558
592
|
:where([data-slide="panel"][inert][data-ending-style][data-activation-direction="left"]) {
|
|
559
593
|
top: anchor(top);
|
|
560
594
|
left: anchor(right);
|
|
@@ -595,12 +629,6 @@
|
|
|
595
629
|
translate: 0 100%;
|
|
596
630
|
}
|
|
597
631
|
|
|
598
|
-
/* Height morph: auto→auto never transitions, so the entering panel starts at the outgoing panel's
|
|
599
|
-
measured height (--aui-slide-prev-height, stamped by the component just before the switch) and
|
|
600
|
-
eases to its own intrinsic height — calc-size() makes the auto endpoint interpolable. The glued
|
|
601
|
-
exiting panel follows via anchor-size(height), so the whole strip resizes as one; overflow
|
|
602
|
-
mid-morph is cropped by the parent clip already active for the slide. :not([inert]) keeps this
|
|
603
|
-
off the exiting panel, whose height must stay anchor-size(height). */
|
|
604
632
|
@supports (height: calc-size(auto, size)) {
|
|
605
633
|
:where([data-slide="panel"]:not([inert])) {
|
|
606
634
|
height: calc-size(auto, size);
|
|
@@ -615,8 +643,6 @@
|
|
|
615
643
|
}
|
|
616
644
|
}
|
|
617
645
|
|
|
618
|
-
/* Visually inert 0.999→1 hold: exists purely so the exiting panel reports a running animation for
|
|
619
|
-
the slide's duration. Rides the motion tokens, so reduced motion collapses it to an instant swap. */
|
|
620
646
|
@keyframes aui-slide-exit-hold {
|
|
621
647
|
from {
|
|
622
648
|
opacity: 0.999;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
//#region src/surface-variants.d.ts
|
|
2
|
-
declare const popupItemStructureClasses = "flex select-none items-center";
|
|
3
|
-
declare const popupParts: readonly ["backdrop", "surface", "list-surface", "list-content", "bar", "item", "navigation-link", "label", "separator", "shortcut"];
|
|
4
|
-
type PopupPart = (typeof popupParts)[number];
|
|
5
|
-
//#endregion
|
|
6
|
-
export { PopupPart, popupItemStructureClasses, popupParts };
|
|
2
|
+
export declare const popupItemStructureClasses = "flex select-none items-center";
|
|
3
|
+
export declare const popupParts: readonly ["backdrop", "surface", "list-surface", "list-content", "bar", "item", "navigation-link", "label", "separator", "shortcut"];
|
|
4
|
+
export type PopupPart = (typeof popupParts)[number];
|
|
5
|
+
//#endregion
|
package/dist/task-list.d.ts
CHANGED
|
@@ -2,33 +2,32 @@ import { CollapsibleProps } from "./ui/collapsible.js";
|
|
|
2
2
|
import { TaskListKnobStyle } from "./knob-contracts/task-list-knobs.js";
|
|
3
3
|
import { CSSProperties, ComponentProps, ReactNode } from "react";
|
|
4
4
|
//#region src/task-list.d.ts
|
|
5
|
-
type TaskStatus = "pending" | "active" | "completed";
|
|
6
|
-
type TaskListProps = Omit<CollapsibleProps, "style"> & {
|
|
5
|
+
export type TaskStatus = "pending" | "active" | "completed";
|
|
6
|
+
export type TaskListProps = Omit<CollapsibleProps, "style"> & {
|
|
7
7
|
style?: CSSProperties & TaskListKnobStyle;
|
|
8
8
|
};
|
|
9
9
|
type TaskListStyleProps<Props, Style> = Omit<Props, "style"> & {
|
|
10
10
|
style?: CSSProperties & Style;
|
|
11
11
|
};
|
|
12
|
-
declare function TaskList({ className, children, ...props }: TaskListProps): import("react").JSX.Element;
|
|
13
|
-
type TaskListTriggerProps = TaskListStyleProps<ComponentProps<"button">, TaskListKnobStyle>;
|
|
14
|
-
declare function TaskListTrigger({ className, children, ...props }: TaskListTriggerProps): import("react").JSX.Element;
|
|
15
|
-
type TaskListProgressProps = TaskListStyleProps<ComponentProps<"span">, TaskListKnobStyle>;
|
|
16
|
-
declare function TaskListProgress({ className, children, ...props }: TaskListProgressProps): import("react").JSX.Element;
|
|
17
|
-
type TaskListLabelProps = TaskListStyleProps<ComponentProps<"span">, TaskListKnobStyle>;
|
|
18
|
-
declare function TaskListLabel({ className, children, ...props }: TaskListLabelProps): import("react").JSX.Element;
|
|
19
|
-
type TaskListContentProps = ComponentProps<"ol"> & {
|
|
12
|
+
export declare function TaskList({ className, children, ...props }: TaskListProps): import("react").JSX.Element;
|
|
13
|
+
export type TaskListTriggerProps = TaskListStyleProps<ComponentProps<"button">, TaskListKnobStyle>;
|
|
14
|
+
export declare function TaskListTrigger({ className, children, ...props }: TaskListTriggerProps): import("react").JSX.Element;
|
|
15
|
+
export type TaskListProgressProps = TaskListStyleProps<ComponentProps<"span">, TaskListKnobStyle>;
|
|
16
|
+
export declare function TaskListProgress({ className, children, ...props }: TaskListProgressProps): import("react").JSX.Element;
|
|
17
|
+
export type TaskListLabelProps = TaskListStyleProps<ComponentProps<"span">, TaskListKnobStyle>;
|
|
18
|
+
export declare function TaskListLabel({ className, children, ...props }: TaskListLabelProps): import("react").JSX.Element;
|
|
19
|
+
export type TaskListContentProps = ComponentProps<"ol"> & {
|
|
20
20
|
style?: CSSProperties & TaskListKnobStyle;
|
|
21
21
|
};
|
|
22
|
-
declare function TaskListContent({ className, children, ...props }: TaskListContentProps): import("react").JSX.Element;
|
|
23
|
-
type TaskListItemProps = TaskListStyleProps<Omit<ComponentProps<"li">, "children">, TaskListKnobStyle> & {
|
|
22
|
+
export declare function TaskListContent({ className, children, ...props }: TaskListContentProps): import("react").JSX.Element;
|
|
23
|
+
export type TaskListItemProps = TaskListStyleProps<Omit<ComponentProps<"li">, "children">, TaskListKnobStyle> & {
|
|
24
24
|
label: string;
|
|
25
25
|
status?: TaskStatus;
|
|
26
26
|
children?: ReactNode;
|
|
27
27
|
};
|
|
28
|
-
declare function TaskListItem({ label, status, className, children, ...props }: TaskListItemProps): import("react").JSX.Element;
|
|
29
|
-
type TaskListIndicatorProps = TaskListStyleProps<ComponentProps<"span">, TaskListKnobStyle> & {
|
|
28
|
+
export declare function TaskListItem({ label, status, className, children, ...props }: TaskListItemProps): import("react").JSX.Element;
|
|
29
|
+
export type TaskListIndicatorProps = TaskListStyleProps<ComponentProps<"span">, TaskListKnobStyle> & {
|
|
30
30
|
status?: TaskStatus;
|
|
31
31
|
};
|
|
32
|
-
declare function TaskListIndicator({ status, className, ...props }: TaskListIndicatorProps): import("react").JSX.Element;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { TaskList, TaskListContent, TaskListContentProps, TaskListIndicator, TaskListIndicatorProps, TaskListItem, TaskListItemProps, TaskListLabel, TaskListLabelProps, TaskListProgress, TaskListProgressProps, TaskListProps, TaskListTrigger, TaskListTriggerProps, TaskStatus };
|
|
32
|
+
export declare function TaskListIndicator({ status, className, ...props }: TaskListIndicatorProps): import("react").JSX.Element;
|
|
33
|
+
//#endregion
|
package/dist/thread-rail.d.ts
CHANGED
|
@@ -2,51 +2,50 @@ import { ChatRole } from "./hooks/use-chat-message.js";
|
|
|
2
2
|
import { ThreadRailKnobStyle } from "./knob-contracts/thread-rail-knobs.js";
|
|
3
3
|
import { CSSProperties, ComponentProps, ReactNode } from "react";
|
|
4
4
|
//#region src/thread-rail.d.ts
|
|
5
|
-
type ThreadRailProps = ComponentProps<"nav"> & {
|
|
5
|
+
export type ThreadRailProps = ComponentProps<"nav"> & {
|
|
6
6
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
7
7
|
};
|
|
8
|
-
type ThreadRailItemProps = Omit<ComponentProps<"div">, "style"> & {
|
|
8
|
+
export type ThreadRailItemProps = Omit<ComponentProps<"div">, "style"> & {
|
|
9
9
|
from?: ChatRole;
|
|
10
10
|
inView?: boolean;
|
|
11
11
|
active?: boolean;
|
|
12
12
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
13
13
|
};
|
|
14
|
-
declare function ThreadRail({ className, children, style, ...props }: ThreadRailProps): import("react").JSX.Element;
|
|
15
|
-
declare function ThreadRailItem({ from, inView, active, index, className, children, ...props }: ThreadRailItemProps & {
|
|
14
|
+
export declare function ThreadRail({ className, children, style, ...props }: ThreadRailProps): import("react").JSX.Element;
|
|
15
|
+
export declare function ThreadRailItem({ from, inView, active, index, className, children, ...props }: ThreadRailItemProps & {
|
|
16
16
|
index?: number;
|
|
17
17
|
}): import("react").JSX.Element;
|
|
18
|
-
type ThreadRailLineProps = Omit<ComponentProps<"button">, "style"> & {
|
|
18
|
+
export type ThreadRailLineProps = Omit<ComponentProps<"button">, "style"> & {
|
|
19
19
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
20
20
|
};
|
|
21
|
-
declare function ThreadRailLine({ className, ...props }: ThreadRailLineProps): import("react").JSX.Element;
|
|
22
|
-
type ThreadRailPopoverProps = Omit<ComponentProps<"div">, "style"> & {
|
|
21
|
+
export declare function ThreadRailLine({ className, ...props }: ThreadRailLineProps): import("react").JSX.Element;
|
|
22
|
+
export type ThreadRailPopoverProps = Omit<ComponentProps<"div">, "style"> & {
|
|
23
23
|
children?: ReactNode;
|
|
24
24
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
25
25
|
};
|
|
26
|
-
declare function ThreadRailPopover(_props: ThreadRailPopoverProps): null;
|
|
27
|
-
type ThreadRailTitleProps = Omit<ComponentProps<"div">, "style"> & {
|
|
26
|
+
export declare function ThreadRailPopover(_props: ThreadRailPopoverProps): null;
|
|
27
|
+
export type ThreadRailTitleProps = Omit<ComponentProps<"div">, "style"> & {
|
|
28
28
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
29
29
|
};
|
|
30
|
-
declare function ThreadRailTitle({ className, ...props }: ThreadRailTitleProps): import("react").JSX.Element;
|
|
31
|
-
type ThreadRailSummaryProps = Omit<ComponentProps<"p">, "style"> & {
|
|
30
|
+
export declare function ThreadRailTitle({ className, ...props }: ThreadRailTitleProps): import("react").JSX.Element;
|
|
31
|
+
export type ThreadRailSummaryProps = Omit<ComponentProps<"p">, "style"> & {
|
|
32
32
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
33
33
|
};
|
|
34
|
-
declare function ThreadRailSummary({ className, ...props }: ThreadRailSummaryProps): import("react").JSX.Element;
|
|
35
|
-
type ThreadRailFooterProps = Omit<ComponentProps<"div">, "style"> & {
|
|
34
|
+
export declare function ThreadRailSummary({ className, ...props }: ThreadRailSummaryProps): import("react").JSX.Element;
|
|
35
|
+
export type ThreadRailFooterProps = Omit<ComponentProps<"div">, "style"> & {
|
|
36
36
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
37
37
|
};
|
|
38
|
-
declare function ThreadRailFooter({ className, ...props }: ThreadRailFooterProps): import("react").JSX.Element;
|
|
39
|
-
type ThreadRailFileProps = Omit<ComponentProps<"span">, "style"> & {
|
|
38
|
+
export declare function ThreadRailFooter({ className, ...props }: ThreadRailFooterProps): import("react").JSX.Element;
|
|
39
|
+
export type ThreadRailFileProps = Omit<ComponentProps<"span">, "style"> & {
|
|
40
40
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
41
41
|
};
|
|
42
|
-
declare function ThreadRailFile({ className, ...props }: ThreadRailFileProps): import("react").JSX.Element;
|
|
43
|
-
type ThreadRailFileIconProps = Omit<ComponentProps<"span">, "style"> & {
|
|
42
|
+
export declare function ThreadRailFile({ className, ...props }: ThreadRailFileProps): import("react").JSX.Element;
|
|
43
|
+
export type ThreadRailFileIconProps = Omit<ComponentProps<"span">, "style"> & {
|
|
44
44
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
45
45
|
};
|
|
46
|
-
declare function ThreadRailFileIcon({ className, children, ...props }: ThreadRailFileIconProps): import("react").JSX.Element;
|
|
47
|
-
type ThreadRailMoreProps = Omit<ComponentProps<"span">, "style"> & {
|
|
46
|
+
export declare function ThreadRailFileIcon({ className, children, ...props }: ThreadRailFileIconProps): import("react").JSX.Element;
|
|
47
|
+
export type ThreadRailMoreProps = Omit<ComponentProps<"span">, "style"> & {
|
|
48
48
|
style?: CSSProperties & ThreadRailKnobStyle;
|
|
49
49
|
};
|
|
50
|
-
declare function ThreadRailMore({ className, ...props }: ThreadRailMoreProps): import("react").JSX.Element;
|
|
51
|
-
//#endregion
|
|
52
|
-
export { ThreadRail, ThreadRailFile, ThreadRailFileIcon, ThreadRailFileIconProps, ThreadRailFileProps, ThreadRailFooter, ThreadRailFooterProps, ThreadRailItem, ThreadRailItemProps, ThreadRailLine, ThreadRailLineProps, ThreadRailMore, ThreadRailMoreProps, ThreadRailPopover, ThreadRailPopoverProps, ThreadRailProps, ThreadRailSummary, ThreadRailSummaryProps, ThreadRailTitle, ThreadRailTitleProps };
|
|
50
|
+
export declare function ThreadRailMore({ className, ...props }: ThreadRailMoreProps): import("react").JSX.Element;
|
|
51
|
+
//#endregion
|
package/dist/thread-rail.js
CHANGED
|
@@ -35,7 +35,7 @@ function ThreadRail({ className, children, style, ...props }) {
|
|
|
35
35
|
}, [hovered]);
|
|
36
36
|
const railStyle = {
|
|
37
37
|
...style,
|
|
38
|
-
"--
|
|
38
|
+
"--_thread-rail-active-index": hovered
|
|
39
39
|
};
|
|
40
40
|
return /* @__PURE__ */ jsx(RailContext.Provider, {
|
|
41
41
|
value: {
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { TranscriptDividerKnobStyle } from "./knob-contracts/transcript-divider-knobs.js";
|
|
2
2
|
import { CSSProperties, ComponentProps } from "react";
|
|
3
3
|
//#region src/transcript-divider.d.ts
|
|
4
|
-
type ChatTone = "neutral" | "success" | "warning" | "danger";
|
|
5
|
-
type TranscriptDividerProps = Omit<ComponentProps<"div">, "style"> & {
|
|
4
|
+
export type ChatTone = "neutral" | "success" | "warning" | "danger";
|
|
5
|
+
export type TranscriptDividerProps = Omit<ComponentProps<"div">, "style"> & {
|
|
6
6
|
tone?: ChatTone;
|
|
7
7
|
style?: CSSProperties & TranscriptDividerKnobStyle;
|
|
8
8
|
};
|
|
9
|
-
declare function TranscriptDivider({ tone, className, children, ...props }: TranscriptDividerProps): import("react").JSX.Element;
|
|
10
|
-
type TranscriptDividerLabelProps = ComponentProps<"span"> & {
|
|
9
|
+
export declare function TranscriptDivider({ tone, className, children, ...props }: TranscriptDividerProps): import("react").JSX.Element;
|
|
10
|
+
export type TranscriptDividerLabelProps = ComponentProps<"span"> & {
|
|
11
11
|
style?: CSSProperties & TranscriptDividerKnobStyle;
|
|
12
12
|
};
|
|
13
|
-
declare function TranscriptDividerLabel({ className, ...props }: TranscriptDividerLabelProps): import("react").JSX.Element;
|
|
14
|
-
//#endregion
|
|
15
|
-
export { ChatTone, TranscriptDivider, TranscriptDividerLabel, TranscriptDividerLabelProps, TranscriptDividerProps };
|
|
13
|
+
export declare function TranscriptDividerLabel({ className, ...props }: TranscriptDividerLabelProps): import("react").JSX.Element;
|
|
14
|
+
//#endregion
|