@ctrl-ui/react 0.8.1 → 0.8.4
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/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/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 +12 -21
- package/dist/chat-layout.js +28 -83
- package/dist/chat-message.d.ts +14 -15
- package/dist/context-model.d.ts +7 -8
- package/dist/context.d.ts +21 -22
- 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.d.ts +6 -7
- package/dist/email/email.js +12 -3
- package/dist/email/length.d.ts +3 -0
- package/dist/email/length.js +34 -0
- package/dist/email/templates.d.ts +7 -8
- package/dist/email/templates.js +5 -5
- package/dist/email/theme.d.ts +16 -5
- package/dist/email/theme.js +21 -6
- 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 +7 -8
- 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 +6 -7
- package/dist/inline-attachment.d.ts +16 -17
- 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/activity-knobs.d.ts +3 -4
- 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/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 +3 -1
- package/dist/knob-contracts/chat-composer-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-composer-knobs.js +1 -0
- package/dist/knob-contracts/chat-layout-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-layout-knobs.js +2 -3
- package/dist/knob-contracts/chat-message-knobs.d.ts +3 -4
- 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/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 +2 -1
- package/dist/knob-contracts/inline-citation-knobs.d.ts +3 -4
- package/dist/knob-contracts/inline-citation-knobs.js +1 -0
- 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/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 +1 -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 +1 -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-input-format.js +1 -1
- 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/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 +2 -4
- package/dist/styles/recipes/accordion.css +8 -2
- package/dist/styles/recipes/action-bar.css +5 -2
- package/dist/styles/recipes/alert.css +95 -16
- package/dist/styles/recipes/avatar.css +17 -1
- package/dist/styles/recipes/badge.css +0 -1
- package/dist/styles/recipes/button.css +34 -8
- package/dist/styles/recipes/calendar.css +0 -6
- package/dist/styles/recipes/chat-composer-attachment.css +51 -53
- package/dist/styles/recipes/chat-composer.css +26 -21
- package/dist/styles/recipes/chat-layout.css +21 -62
- package/dist/styles/recipes/chat-message.css +11 -5
- package/dist/styles/recipes/choice.css +9 -2
- package/dist/styles/recipes/code-diff.css +8 -1
- package/dist/styles/recipes/code.css +39 -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/dockable-panel.css +8 -1
- package/dist/styles/recipes/dropzone.css +9 -2
- package/dist/styles/recipes/empty.css +118 -17
- package/dist/styles/recipes/environment-variables.css +8 -1
- package/dist/styles/recipes/field-parts.css +1 -6
- package/dist/styles/recipes/field.css +9 -5
- package/dist/styles/recipes/gradient-editor.css +16 -5
- package/dist/styles/recipes/inline-attachment.css +13 -8
- package/dist/styles/recipes/inline-citation.css +8 -4
- package/dist/styles/recipes/item.css +1 -1
- package/dist/styles/recipes/kbd.css +8 -0
- package/dist/styles/recipes/markdown-block.css +16 -2
- package/dist/styles/recipes/markdown.css +12 -0
- package/dist/styles/recipes/morphing-panel.css +1 -1
- package/dist/styles/recipes/pagination.css +0 -4
- package/dist/styles/recipes/phone-input.css +8 -4
- package/dist/styles/recipes/popup-lists.css +11 -0
- package/dist/styles/recipes/popup-toast.css +1 -29
- package/dist/styles/recipes/popup.css +2 -2
- package/dist/styles/recipes/progressive-blur.css +28 -7
- package/dist/styles/recipes/range.css +50 -1
- package/dist/styles/recipes/resizable.css +8 -10
- package/dist/styles/recipes/rich-tooltip.css +0 -4
- package/dist/styles/recipes/scroll-area.css +8 -2
- package/dist/styles/recipes/sidebar-menu.css +150 -0
- package/dist/styles/recipes/sidebar.css +56 -110
- package/dist/styles/recipes/skeleton.css +85 -3
- package/dist/styles/recipes/source-badge.css +0 -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 +19 -2
- package/dist/styles/recipes/task-list.css +8 -2
- package/dist/styles/recipes/thread-rail.css +0 -4
- package/dist/styles/recipes/toolbar.css +18 -4
- package/dist/styles/recipes/track-highlight.css +63 -5
- package/dist/styles/recipes/tree.css +2 -0
- package/dist/styles/recipes/user-ask.css +8 -4
- package/dist/styles/theme.css +130 -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/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 +8 -6
- 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 +5 -3
- 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 +5 -3
- package/dist/ui/combobox-disabled-selection.d.ts +3 -4
- package/dist/ui/combobox.d.ts +21 -20
- package/dist/ui/combobox.js +5 -3
- package/dist/ui/command.d.ts +19 -18
- package/dist/ui/command.js +38 -12
- package/dist/ui/context-menu.d.ts +30 -31
- package/dist/ui/context-menu.js +8 -5
- package/dist/ui/dialog.d.ts +13 -13
- package/dist/ui/dialog.js +10 -8
- 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 +7 -6
- package/dist/ui/dropdown-menu.d.ts +36 -29
- package/dist/ui/dropdown-menu.js +116 -9
- package/dist/ui/dropzone.d.ts +24 -24
- 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/hover-card.d.ts +6 -7
- package/dist/ui/hover-card.js +5 -3
- package/dist/ui/infinite-canvas.d.ts +11 -12
- 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 +8 -5
- 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 +5 -3
- package/dist/ui/number-field.d.ts +15 -16
- package/dist/ui/pagination.d.ts +10 -11
- package/dist/ui/phone-input.d.ts +5 -6
- package/dist/ui/phone-input.js +40 -37
- package/dist/ui/popover.d.ts +11 -12
- package/dist/ui/popover.js +5 -3
- 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/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 +5 -5
- 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 +7 -4
- package/dist/ui/separator.d.ts +2 -3
- package/dist/ui/sheet.d.ts +8 -9
- package/dist/ui/sheet.js +7 -5
- package/dist/ui/sidebar-menu.d.ts +24 -15
- package/dist/ui/sidebar-menu.js +30 -4
- 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 +20 -14
- package/dist/ui/sidebar.js +122 -57
- 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 +21 -14
- 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 +7 -8
- 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 +5 -3
- 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 +24 -25
- package/package.json +15 -15
- 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/ui/toast.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
-
import {
|
|
3
|
+
import { controlEffectsAttribute } from "../skin.js";
|
|
4
|
+
import { useSkin } from "../skin-provider.js";
|
|
5
|
+
import { Button } from "./button.js";
|
|
4
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
7
|
import { Toast } from "@base-ui/react/toast";
|
|
6
8
|
//#region src/ui/toast.tsx
|
|
@@ -73,24 +75,28 @@ function ToastList({ rootStyle, indicatorStyle, actionStyle, closeStyle }) {
|
|
|
73
75
|
}) : null]
|
|
74
76
|
}),
|
|
75
77
|
entry.actionProps ? /* @__PURE__ */ jsx(Toast.Action, {
|
|
76
|
-
"data-control-ui": "toast",
|
|
77
|
-
"data-control-family": "popup",
|
|
78
|
-
"data-popup-kind": "toast",
|
|
79
|
-
"data-slot": "action",
|
|
80
78
|
style: actionStyle,
|
|
81
|
-
|
|
79
|
+
render: (renderProps) => /* @__PURE__ */ jsx(Button, {
|
|
80
|
+
...renderProps,
|
|
81
|
+
"data-popup-kind": "toast",
|
|
82
|
+
"data-popup-part": "action",
|
|
83
|
+
variant: "surface",
|
|
84
|
+
size: "xs"
|
|
85
|
+
})
|
|
82
86
|
}) : null,
|
|
83
87
|
/* @__PURE__ */ jsx(Toast.Close, {
|
|
84
|
-
"data-control-ui": "toast",
|
|
85
|
-
"data-control-family": "popup",
|
|
86
|
-
"data-popup-kind": "toast",
|
|
87
|
-
"data-slot": "close",
|
|
88
88
|
style: closeStyle,
|
|
89
89
|
"aria-label": "Close",
|
|
90
|
-
|
|
90
|
+
render: (renderProps) => /* @__PURE__ */ jsx(Button, {
|
|
91
|
+
...renderProps,
|
|
92
|
+
"data-popup-kind": "toast",
|
|
93
|
+
"data-popup-part": "close",
|
|
94
|
+
variant: "quiet",
|
|
95
|
+
size: "xs",
|
|
96
|
+
iconOnly: true
|
|
97
|
+
}),
|
|
91
98
|
children: /* @__PURE__ */ jsx("svg", {
|
|
92
99
|
viewBox: "0 0 16 16",
|
|
93
|
-
className: "size-4",
|
|
94
100
|
"aria-hidden": "true",
|
|
95
101
|
fill: "none",
|
|
96
102
|
children: /* @__PURE__ */ jsx("path", {
|
|
@@ -107,6 +113,7 @@ function ToastList({ rootStyle, indicatorStyle, actionStyle, closeStyle }) {
|
|
|
107
113
|
});
|
|
108
114
|
}
|
|
109
115
|
function Toaster({ className, timeout, limit, rootStyle, indicatorStyle, actionStyle, closeStyle }) {
|
|
116
|
+
const skin = useSkin();
|
|
110
117
|
return /* @__PURE__ */ jsx(Toast.Provider, {
|
|
111
118
|
toastManager,
|
|
112
119
|
timeout,
|
|
@@ -116,8 +123,8 @@ function Toaster({ className, timeout, limit, rootStyle, indicatorStyle, actionS
|
|
|
116
123
|
"data-control-family": "popup",
|
|
117
124
|
"data-popup-kind": "toast",
|
|
118
125
|
"data-slot": "viewport",
|
|
119
|
-
"data-skin":
|
|
120
|
-
"data-effects":
|
|
126
|
+
"data-skin": skin.id,
|
|
127
|
+
"data-effects": controlEffectsAttribute(skin.effects),
|
|
121
128
|
className: cn("fixed right-4 bottom-4 z-[95] mx-auto w-[calc(100vw-2rem)] sm:right-6 sm:bottom-6 sm:w-[22.5rem]", className),
|
|
122
129
|
children: /* @__PURE__ */ jsx(ToastList, {
|
|
123
130
|
rootStyle,
|
package/dist/ui/toggle.d.ts
CHANGED
|
@@ -2,20 +2,19 @@ import { ControlledMultiChoice, HoverIndicator } from "../control-props.js";
|
|
|
2
2
|
import { ButtonProps } from "./button.js";
|
|
3
3
|
import { ComponentProps } from "react";
|
|
4
4
|
//#region src/ui/toggle.d.ts
|
|
5
|
-
type ToggleProps = Omit<ButtonProps, "render" | "nativeButton" | "value"> & {
|
|
5
|
+
export type ToggleProps = Omit<ButtonProps, "render" | "nativeButton" | "value"> & {
|
|
6
6
|
pressed?: boolean;
|
|
7
7
|
defaultPressed?: boolean;
|
|
8
8
|
onPressedChange?: (pressed: boolean) => void;
|
|
9
9
|
value?: string;
|
|
10
10
|
showCheck?: boolean;
|
|
11
11
|
};
|
|
12
|
-
type ToggleGroupProps<TValue extends string = string> = Omit<ComponentProps<"div">, "defaultValue" | "onChange"> & ControlledMultiChoice<TValue> & {
|
|
12
|
+
export type ToggleGroupProps<TValue extends string = string> = Omit<ComponentProps<"div">, "defaultValue" | "onChange"> & ControlledMultiChoice<TValue> & {
|
|
13
13
|
multiple?: boolean;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
orientation?: "horizontal" | "vertical";
|
|
16
16
|
indicator?: HoverIndicator;
|
|
17
17
|
};
|
|
18
|
-
declare function Toggle({ variant, size, tone, active, showCheck, className, pressed, defaultPressed, onPressedChange, value, disabled, children, ...props }: ToggleProps): import("react").JSX.Element;
|
|
19
|
-
declare function ToggleGroup<TValue extends string = string>({ className, orientation, indicator, children, ...props }: ToggleGroupProps<TValue>): import("react").JSX.Element;
|
|
20
|
-
//#endregion
|
|
21
|
-
export { Toggle, ToggleGroup, ToggleGroupProps, ToggleProps };
|
|
18
|
+
export declare function Toggle({ variant, size, tone, active, showCheck, className, pressed, defaultPressed, onPressedChange, value, disabled, children, ...props }: ToggleProps): import("react").JSX.Element;
|
|
19
|
+
export declare function ToggleGroup<TValue extends string = string>({ className, orientation, indicator, children, ...props }: ToggleGroupProps<TValue>): import("react").JSX.Element;
|
|
20
|
+
//#endregion
|
package/dist/ui/toggle.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
-
import {
|
|
3
|
+
import { useSkin } from "../skin-provider.js";
|
|
4
4
|
import { ButtonTrackContext, buttonContentClasses, buttonStructureClasses, buttonTrackStructureClasses } from "./button.js";
|
|
5
5
|
import { TrackHighlight } from "../extensions/track-highlight.js";
|
|
6
6
|
import { useContext } from "react";
|
|
@@ -62,7 +62,8 @@ function Toggle({ variant = "surface", size = "sm", tone = "neutral", active, sh
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
function ToggleGroup({ className, orientation = "horizontal", indicator, children, ...props }) {
|
|
65
|
-
const
|
|
65
|
+
const skin = useSkin();
|
|
66
|
+
const resolvedIndicator = indicator ?? skin.indicators?.["toggle-group"] ?? "none";
|
|
66
67
|
const tracksHover = resolvedIndicator === "hover";
|
|
67
68
|
return /* @__PURE__ */ jsx(ButtonTrackContext, {
|
|
68
69
|
value: tracksHover,
|
package/dist/ui/toolbar.d.ts
CHANGED
|
@@ -2,39 +2,38 @@ import { ToolbarKnobStyle } from "../knob-contracts/toolbar-knobs.js";
|
|
|
2
2
|
import { CSSProperties, ComponentProps } from "react";
|
|
3
3
|
import { Toolbar as Toolbar$1 } from "@base-ui/react/toolbar";
|
|
4
4
|
//#region src/ui/toolbar.d.ts
|
|
5
|
-
type ToolbarVariant = "default" | "inverse";
|
|
6
|
-
type ToolbarLinkVariant = "default" | "track";
|
|
7
|
-
type ToolbarProps = Omit<ComponentProps<"div">, "style"> & {
|
|
5
|
+
export type ToolbarVariant = "default" | "inverse" | "floating";
|
|
6
|
+
export type ToolbarLinkVariant = "default" | "track";
|
|
7
|
+
export type ToolbarProps = Omit<ComponentProps<"div">, "style"> & {
|
|
8
8
|
orientation?: "horizontal" | "vertical";
|
|
9
9
|
variant?: ToolbarVariant;
|
|
10
10
|
style?: CSSProperties & ToolbarKnobStyle;
|
|
11
11
|
};
|
|
12
|
-
type ToolbarButtonProps = Omit<ComponentProps<"button">, "style"> & {
|
|
12
|
+
export type ToolbarButtonProps = Omit<ComponentProps<"button">, "style"> & {
|
|
13
13
|
iconOnly?: boolean;
|
|
14
14
|
style?: CSSProperties & ToolbarKnobStyle;
|
|
15
15
|
};
|
|
16
|
-
type ToolbarLinkProps = Omit<ComponentProps<"a">, "style"> & {
|
|
16
|
+
export type ToolbarLinkProps = Omit<ComponentProps<"a">, "style"> & {
|
|
17
17
|
variant?: ToolbarLinkVariant;
|
|
18
18
|
style?: CSSProperties & ToolbarKnobStyle;
|
|
19
19
|
};
|
|
20
|
-
type ToolbarGroupProps = ComponentProps<"div"> & {
|
|
20
|
+
export type ToolbarGroupProps = ComponentProps<"div"> & {
|
|
21
21
|
style?: CSSProperties & ToolbarKnobStyle;
|
|
22
22
|
};
|
|
23
|
-
type ToolbarSeparatorProps = Omit<ComponentProps<"div">, "style"> & {
|
|
23
|
+
export type ToolbarSeparatorProps = Omit<ComponentProps<"div">, "style"> & {
|
|
24
24
|
orientation?: "horizontal" | "vertical";
|
|
25
25
|
style?: CSSProperties & ToolbarKnobStyle;
|
|
26
26
|
};
|
|
27
|
-
type ToolbarInputProps = Omit<ComponentProps<"input">, "style"> & {
|
|
27
|
+
export type ToolbarInputProps = Omit<ComponentProps<"input">, "style"> & {
|
|
28
28
|
style?: CSSProperties & ToolbarKnobStyle;
|
|
29
29
|
};
|
|
30
|
-
declare function Toolbar({ orientation, variant, className, ...props }: ToolbarProps): import("react").JSX.Element;
|
|
30
|
+
export declare function Toolbar({ orientation, variant, className, children, ...props }: ToolbarProps): import("react").JSX.Element;
|
|
31
31
|
type RefinedToolbarButtonProps = ToolbarButtonProps & Pick<ComponentProps<typeof Toolbar$1.Button>, "render">;
|
|
32
|
-
declare function ToolbarButton({ iconOnly, className, ...props }: RefinedToolbarButtonProps): import("react").JSX.Element;
|
|
32
|
+
export declare function ToolbarButton({ iconOnly, className, ...props }: RefinedToolbarButtonProps): import("react").JSX.Element;
|
|
33
33
|
type RefinedToolbarLinkProps = ToolbarLinkProps & Pick<ComponentProps<typeof Toolbar$1.Link>, "render">;
|
|
34
|
-
declare function ToolbarLink({ variant, className, ...props }: RefinedToolbarLinkProps): import("react").JSX.Element;
|
|
35
|
-
declare function ToolbarGroup({ className, ...props }: ToolbarGroupProps): import("react").JSX.Element;
|
|
36
|
-
declare function ToolbarSeparator({ orientation, className, ...props }: ToolbarSeparatorProps): import("react").JSX.Element;
|
|
34
|
+
export declare function ToolbarLink({ variant, className, ...props }: RefinedToolbarLinkProps): import("react").JSX.Element;
|
|
35
|
+
export declare function ToolbarGroup({ className, ...props }: ToolbarGroupProps): import("react").JSX.Element;
|
|
36
|
+
export declare function ToolbarSeparator({ orientation, className, ...props }: ToolbarSeparatorProps): import("react").JSX.Element;
|
|
37
37
|
type RefinedToolbarInputProps = ToolbarInputProps & Pick<ComponentProps<typeof Toolbar$1.Input>, "render">;
|
|
38
|
-
declare function ToolbarInput({ className, ...props }: RefinedToolbarInputProps): import("react").JSX.Element;
|
|
39
|
-
//#endregion
|
|
40
|
-
export { Toolbar, ToolbarButton, ToolbarButtonProps, ToolbarGroup, ToolbarGroupProps, ToolbarInput, ToolbarInputProps, ToolbarLink, ToolbarLinkProps, ToolbarLinkVariant, ToolbarProps, ToolbarSeparator, ToolbarSeparatorProps, ToolbarVariant };
|
|
38
|
+
export declare function ToolbarInput({ className, ...props }: RefinedToolbarInputProps): import("react").JSX.Element;
|
|
39
|
+
//#endregion
|
package/dist/ui/toolbar.js
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Toolbar as Toolbar$1 } from "@base-ui/react/toolbar";
|
|
5
5
|
//#region src/ui/toolbar.tsx
|
|
6
|
-
function Toolbar({ orientation = "horizontal", variant = "default", className, ...props }) {
|
|
7
|
-
return /* @__PURE__ */
|
|
6
|
+
function Toolbar({ orientation = "horizontal", variant = "default", className, children, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsxs(Toolbar$1.Root, {
|
|
8
8
|
orientation,
|
|
9
9
|
"data-control-ui": "toolbar",
|
|
10
10
|
"data-control-family": "toolbar",
|
|
11
11
|
"data-slot": "root",
|
|
12
12
|
"data-variant": variant,
|
|
13
13
|
className: cn("group/toolbar inline-flex", orientation === "vertical" ? "flex-col items-stretch" : "items-center", className),
|
|
14
|
-
...props
|
|
14
|
+
...props,
|
|
15
|
+
children: [variant === "floating" && /* @__PURE__ */ jsx("div", {
|
|
16
|
+
"aria-hidden": "true",
|
|
17
|
+
"data-control-ui": "toolbar",
|
|
18
|
+
"data-control-family": "popup",
|
|
19
|
+
"data-popup-kind": "toolbar",
|
|
20
|
+
"data-popup-part": "surface",
|
|
21
|
+
"data-popup-static": "",
|
|
22
|
+
"data-surface": "floating",
|
|
23
|
+
"data-slot": "surface",
|
|
24
|
+
className: "pointer-events-none absolute inset-0 -z-1"
|
|
25
|
+
}), children]
|
|
15
26
|
});
|
|
16
27
|
}
|
|
17
28
|
function ToolbarButton({ iconOnly = false, className, ...props }) {
|
package/dist/ui/tooltip.d.ts
CHANGED
|
@@ -2,26 +2,19 @@ import { PopupKnobStyle } from "../knob-contracts/popup-knobs.js";
|
|
|
2
2
|
import { CSSProperties, ComponentProps, Ref } from "react";
|
|
3
3
|
import { Tooltip as Tooltip$1, TooltipPopupProps, TooltipPositionerProps } from "@base-ui/react/tooltip";
|
|
4
4
|
//#region src/ui/tooltip.d.ts
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
timeout?: number;
|
|
8
|
-
delayDuration?: number;
|
|
9
|
-
skipDelayDuration?: number;
|
|
10
|
-
};
|
|
11
|
-
declare function TooltipProvider({ delay, delayDuration, timeout, skipDelayDuration, ...props }: TooltipProviderProps): import("react").JSX.Element;
|
|
12
|
-
declare function Tooltip(props: ComponentProps<typeof Tooltip$1.Root>): import("react").JSX.Element;
|
|
5
|
+
export declare function TooltipProvider({ delay, ...props }: ComponentProps<typeof Tooltip$1.Provider>): import("react").JSX.Element;
|
|
6
|
+
export declare function Tooltip(props: ComponentProps<typeof Tooltip$1.Root>): import("react").JSX.Element;
|
|
13
7
|
type TooltipTriggerProps = ComponentProps<typeof Tooltip$1.Trigger> & {
|
|
14
8
|
ref?: Ref<HTMLButtonElement>;
|
|
15
9
|
};
|
|
16
|
-
declare function TooltipTrigger({ render, children, ref, ...props }: TooltipTriggerProps): import("react").JSX.Element;
|
|
10
|
+
export declare function TooltipTrigger({ render, children, ref, ...props }: TooltipTriggerProps): import("react").JSX.Element;
|
|
17
11
|
type TooltipContentPositionerProps = Omit<TooltipPositionerProps, keyof TooltipPopupProps>;
|
|
18
|
-
type TooltipContentProps = Omit<TooltipPopupProps & Omit<TooltipContentPositionerProps, "style">, "style"> & {
|
|
12
|
+
export type TooltipContentProps = Omit<TooltipPopupProps & Omit<TooltipContentPositionerProps, "style">, "style"> & {
|
|
19
13
|
style?: CSSProperties & PopupKnobStyle;
|
|
20
14
|
} & {
|
|
21
15
|
arrow?: boolean;
|
|
22
16
|
hidden?: boolean;
|
|
23
17
|
ref?: Ref<HTMLDivElement>;
|
|
24
18
|
};
|
|
25
|
-
declare function TooltipContent({ className, children, side, sideOffset, align, alignOffset, arrowPadding, anchor, positionMethod, collisionBoundary, collisionPadding, sticky, disableAnchorTracking, collisionAvoidance, arrow, hidden, ref, ...props }: TooltipContentProps): import("react").JSX.Element | null;
|
|
26
|
-
//#endregion
|
|
27
|
-
export { Tooltip, TooltipContent, TooltipContentProps, TooltipProvider, TooltipTrigger };
|
|
19
|
+
export declare function TooltipContent({ className, children, side, sideOffset, align, alignOffset, arrowPadding, anchor, positionMethod, collisionBoundary, collisionPadding, sticky, disableAnchorTracking, collisionAvoidance, arrow, hidden, ref, ...props }: TooltipContentProps): import("react").JSX.Element | null;
|
|
20
|
+
//#endregion
|
package/dist/ui/tooltip.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
-
import {
|
|
3
|
+
import { controlEffectsAttribute } from "../skin.js";
|
|
4
|
+
import { useSkin } from "../skin-provider.js";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import { Tooltip as Tooltip$1 } from "@base-ui/react/tooltip";
|
|
6
7
|
//#region src/ui/tooltip.tsx
|
|
7
|
-
function TooltipProvider({ delay
|
|
8
|
-
const resolvedDelay = delay ?? delayDuration;
|
|
9
|
-
const resolvedTimeout = timeout ?? skipDelayDuration;
|
|
8
|
+
function TooltipProvider({ delay = 500, ...props }) {
|
|
10
9
|
return /* @__PURE__ */ jsx(Tooltip$1.Provider, {
|
|
11
|
-
|
|
12
|
-
...resolvedTimeout !== void 0 ? { timeout: resolvedTimeout } : {},
|
|
10
|
+
delay,
|
|
13
11
|
...props
|
|
14
12
|
});
|
|
15
13
|
}
|
|
@@ -25,6 +23,7 @@ function TooltipTrigger({ render, children, ref, ...props }) {
|
|
|
25
23
|
});
|
|
26
24
|
}
|
|
27
25
|
function TooltipContent({ className, children, side = "top", sideOffset = 8, align = "center", alignOffset = 0, arrowPadding = 10, anchor, positionMethod, collisionBoundary, collisionPadding, sticky, disableAnchorTracking, collisionAvoidance, arrow = true, hidden = false, ref, ...props }) {
|
|
26
|
+
const skin = useSkin();
|
|
28
27
|
if (hidden) return null;
|
|
29
28
|
const positionerProps = {
|
|
30
29
|
side,
|
|
@@ -45,8 +44,8 @@ function TooltipContent({ className, children, side = "top", sideOffset = 8, ali
|
|
|
45
44
|
"data-popup-kind": "tooltip",
|
|
46
45
|
"data-control-family": "popup",
|
|
47
46
|
"data-slot": "positioner",
|
|
48
|
-
"data-skin":
|
|
49
|
-
"data-effects":
|
|
47
|
+
"data-skin": skin.id,
|
|
48
|
+
"data-effects": controlEffectsAttribute(skin.effects),
|
|
50
49
|
className: "z-[90]",
|
|
51
50
|
...positionerProps,
|
|
52
51
|
children: /* @__PURE__ */ jsxs(Tooltip$1.Popup, {
|
package/dist/ui/tree.d.ts
CHANGED
|
@@ -2,19 +2,19 @@ import { RenderProp, SelectionIndicator } from "../control-props.js";
|
|
|
2
2
|
import { TreeKnobStyle } from "../knob-contracts/tree-knobs.js";
|
|
3
3
|
import { CSSProperties, ComponentProps, ReactNode } from "react";
|
|
4
4
|
//#region src/ui/tree.d.ts
|
|
5
|
-
type TreeSelectionMode = "none" | "single" | "multiple";
|
|
6
|
-
type TreeInteractionReason = "pointer" | "keyboard" | "imperative";
|
|
7
|
-
type TreeSelectionChangeDetails = {
|
|
5
|
+
export type TreeSelectionMode = "none" | "single" | "multiple";
|
|
6
|
+
export type TreeInteractionReason = "pointer" | "keyboard" | "imperative";
|
|
7
|
+
export type TreeSelectionChangeDetails = {
|
|
8
8
|
value: string;
|
|
9
9
|
reason: TreeInteractionReason;
|
|
10
10
|
};
|
|
11
|
-
type TreeExpandedChangeDetails = {
|
|
11
|
+
export type TreeExpandedChangeDetails = {
|
|
12
12
|
value: string;
|
|
13
13
|
expanded: boolean;
|
|
14
14
|
reason: TreeInteractionReason;
|
|
15
15
|
};
|
|
16
|
-
type TreeSelectionIndicator = SelectionIndicator;
|
|
17
|
-
type TreeProps = Omit<Omit<ComponentProps<"ul">, "onChange" | "defaultValue">, "style"> & {
|
|
16
|
+
export type TreeSelectionIndicator = SelectionIndicator;
|
|
17
|
+
export type TreeProps = Omit<Omit<ComponentProps<"ul">, "onChange" | "defaultValue">, "style"> & {
|
|
18
18
|
style?: CSSProperties & TreeKnobStyle;
|
|
19
19
|
} & {
|
|
20
20
|
selectionMode?: TreeSelectionMode;
|
|
@@ -26,31 +26,30 @@ type TreeProps = Omit<Omit<ComponentProps<"ul">, "onChange" | "defaultValue">, "
|
|
|
26
26
|
onExpandedChange?: (expanded: string[], details: TreeExpandedChangeDetails) => void;
|
|
27
27
|
indicator?: TreeSelectionIndicator;
|
|
28
28
|
};
|
|
29
|
-
type TreeItemProps = Omit<ComponentProps<"li">, "value"> & {
|
|
29
|
+
export type TreeItemProps = Omit<ComponentProps<"li">, "value"> & {
|
|
30
30
|
value: string;
|
|
31
31
|
disabled?: boolean;
|
|
32
32
|
label?: string;
|
|
33
33
|
children?: ReactNode;
|
|
34
34
|
};
|
|
35
|
-
type TreeItemTriggerProps = Omit<ComponentProps<"div">, "style"> & {
|
|
35
|
+
export type TreeItemTriggerProps = Omit<ComponentProps<"div">, "style"> & {
|
|
36
36
|
style?: CSSProperties & TreeKnobStyle;
|
|
37
37
|
} & {
|
|
38
38
|
render?: RenderProp<ComponentProps<"div">>;
|
|
39
39
|
};
|
|
40
|
-
type TreeItemIndicatorProps = Omit<ComponentProps<"span">, "style"> & {
|
|
40
|
+
export type TreeItemIndicatorProps = Omit<ComponentProps<"span">, "style"> & {
|
|
41
41
|
style?: CSSProperties & TreeKnobStyle;
|
|
42
42
|
};
|
|
43
|
-
type TreeItemLabelProps = ComponentProps<"span"> & {
|
|
43
|
+
export type TreeItemLabelProps = ComponentProps<"span"> & {
|
|
44
44
|
render?: RenderProp<ComponentProps<"span">>;
|
|
45
45
|
};
|
|
46
|
-
type TreeItemContentProps = ComponentProps<"div"> & {
|
|
46
|
+
export type TreeItemContentProps = ComponentProps<"div"> & {
|
|
47
47
|
style?: CSSProperties & TreeKnobStyle;
|
|
48
48
|
};
|
|
49
|
-
declare function Tree({ selectionMode, indicator, value, defaultValue, onValueChange, expandedValue, defaultExpandedValue, onExpandedChange, className, style, children, onKeyDown, onFocusCapture, ...props }: TreeProps): import("react").JSX.Element;
|
|
50
|
-
declare function TreeItem({ value, disabled, label, className, style, children, ref, ...props }: TreeItemProps): import("react").JSX.Element;
|
|
51
|
-
declare function TreeItemTrigger({ className, children, onClick, render, ...props }: TreeItemTriggerProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
52
|
-
declare function TreeItemIndicator({ className, children, ...props }: TreeItemIndicatorProps): import("react").JSX.Element;
|
|
53
|
-
declare function TreeItemLabel({ className, children, render, ref, ...props }: TreeItemLabelProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
54
|
-
declare function TreeItemContent({ className, children, ...props }: TreeItemContentProps): import("react").JSX.Element;
|
|
55
|
-
//#endregion
|
|
56
|
-
export { Tree, TreeExpandedChangeDetails, TreeInteractionReason, TreeItem, TreeItemContent, TreeItemContentProps, TreeItemIndicator, TreeItemIndicatorProps, TreeItemLabel, TreeItemLabelProps, TreeItemProps, TreeItemTrigger, TreeItemTriggerProps, TreeProps, TreeSelectionChangeDetails, TreeSelectionIndicator, TreeSelectionMode };
|
|
49
|
+
export declare function Tree({ selectionMode, indicator, value, defaultValue, onValueChange, expandedValue, defaultExpandedValue, onExpandedChange, className, style, children, onKeyDown, onFocusCapture, ...props }: TreeProps): import("react").JSX.Element;
|
|
50
|
+
export declare function TreeItem({ value, disabled, label, className, style, children, ref, ...props }: TreeItemProps): import("react").JSX.Element;
|
|
51
|
+
export declare function TreeItemTrigger({ className, children, onClick, render, ...props }: TreeItemTriggerProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
52
|
+
export declare function TreeItemIndicator({ className, children, ...props }: TreeItemIndicatorProps): import("react").JSX.Element;
|
|
53
|
+
export declare function TreeItemLabel({ className, children, render, ref, ...props }: TreeItemLabelProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
54
|
+
export declare function TreeItemContent({ className, children, ...props }: TreeItemContentProps): import("react").JSX.Element;
|
|
55
|
+
//#endregion
|
package/dist/ui/tree.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
-
import {
|
|
3
|
+
import { useSkin } from "../skin-provider.js";
|
|
4
4
|
import { TrackHighlight } from "../extensions/track-highlight.js";
|
|
5
5
|
import { Children, createContext, isValidElement, useContext, useRef, useState } from "react";
|
|
6
6
|
import { useRender } from "@base-ui/react/use-render";
|
|
@@ -128,6 +128,7 @@ function handleTreeKeyDown(event, ctx, typeahead) {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
function Tree({ selectionMode = "single", indicator, value, defaultValue, onValueChange, expandedValue, defaultExpandedValue, onExpandedChange, className, style, children, onKeyDown, onFocusCapture, ...props }) {
|
|
131
|
+
const skin = useSkin();
|
|
131
132
|
const [selectedState, setSelectedState] = useState(() => new Set(defaultValue));
|
|
132
133
|
const [expandedState, setExpandedState] = useState(() => new Set(defaultExpandedValue));
|
|
133
134
|
const [focusedValue, setFocusedValue] = useState(null);
|
|
@@ -194,7 +195,7 @@ function Tree({ selectionMode = "single", indicator, value, defaultValue, onValu
|
|
|
194
195
|
reason
|
|
195
196
|
});
|
|
196
197
|
};
|
|
197
|
-
const resolvedIndicator = indicator ??
|
|
198
|
+
const resolvedIndicator = indicator ?? skin.indicators?.tree ?? "none";
|
|
198
199
|
const contextValue = {
|
|
199
200
|
selectionMode,
|
|
200
201
|
indicator: resolvedIndicator,
|
|
@@ -2,7 +2,7 @@ import { OpenChangeEventDetails } from "../control-props.js";
|
|
|
2
2
|
import { PopupKnobStyle } from "../knob-contracts/popup-knobs.js";
|
|
3
3
|
import { CSSProperties, ComponentProps, ReactNode } from "react";
|
|
4
4
|
//#region src/ui/trigger-menu.d.ts
|
|
5
|
-
type TriggerMenuProps = {
|
|
5
|
+
export type TriggerMenuProps = {
|
|
6
6
|
open: boolean;
|
|
7
7
|
onOpenChange?: (open: boolean, eventDetails: OpenChangeEventDetails) => void;
|
|
8
8
|
anchorRect: DOMRect | null;
|
|
@@ -14,33 +14,32 @@ type TriggerMenuProps = {
|
|
|
14
14
|
} & {
|
|
15
15
|
style?: CSSProperties & PopupKnobStyle;
|
|
16
16
|
};
|
|
17
|
-
type TriggerMenuListProps = ComponentProps<"div"> & {
|
|
17
|
+
export type TriggerMenuListProps = ComponentProps<"div"> & {
|
|
18
18
|
style?: CSSProperties & PopupKnobStyle;
|
|
19
19
|
};
|
|
20
|
-
type TriggerMenuItemProps = Omit<Omit<ComponentProps<"div">, "onSelect"> & {
|
|
20
|
+
export type TriggerMenuItemProps = Omit<Omit<ComponentProps<"div">, "onSelect"> & {
|
|
21
21
|
active?: boolean;
|
|
22
22
|
disabled?: boolean;
|
|
23
23
|
}, "style"> & {
|
|
24
24
|
style?: CSSProperties & PopupKnobStyle;
|
|
25
25
|
};
|
|
26
|
-
type TriggerMenuEmptyProps = Omit<ComponentProps<"div">, "style"> & {
|
|
26
|
+
export type TriggerMenuEmptyProps = Omit<ComponentProps<"div">, "style"> & {
|
|
27
27
|
style?: CSSProperties & PopupKnobStyle;
|
|
28
28
|
};
|
|
29
|
-
type TriggerMenuGroupProps = ComponentProps<"div"> & {
|
|
29
|
+
export type TriggerMenuGroupProps = ComponentProps<"div"> & {
|
|
30
30
|
style?: CSSProperties & PopupKnobStyle;
|
|
31
31
|
};
|
|
32
|
-
type TriggerMenuGroupLabelProps = Omit<ComponentProps<"div">, "style"> & {
|
|
32
|
+
export type TriggerMenuGroupLabelProps = Omit<ComponentProps<"div">, "style"> & {
|
|
33
33
|
style?: CSSProperties & PopupKnobStyle;
|
|
34
34
|
};
|
|
35
|
-
type TriggerMenuIconProps = Omit<ComponentProps<"span">, "style"> & {
|
|
35
|
+
export type TriggerMenuIconProps = Omit<ComponentProps<"span">, "style"> & {
|
|
36
36
|
style?: CSSProperties & PopupKnobStyle;
|
|
37
37
|
};
|
|
38
|
-
declare function TriggerMenu({ open, onOpenChange, anchorRect, side, align, sideOffset, className, children }: TriggerMenuProps): import("react").JSX.Element;
|
|
39
|
-
declare function TriggerMenuList({ className, ...props }: TriggerMenuListProps): import("react").JSX.Element;
|
|
40
|
-
declare function TriggerMenuItem({ className, active, disabled, onMouseDown, ...props }: TriggerMenuItemProps): import("react").JSX.Element;
|
|
41
|
-
declare function TriggerMenuIcon({ className, ...props }: TriggerMenuIconProps): import("react").JSX.Element;
|
|
42
|
-
declare function TriggerMenuEmpty({ className, ...props }: TriggerMenuEmptyProps): import("react").JSX.Element;
|
|
43
|
-
declare function TriggerMenuGroup({ className, ...props }: TriggerMenuGroupProps): import("react").JSX.Element;
|
|
44
|
-
declare function TriggerMenuGroupLabel({ className, ...props }: TriggerMenuGroupLabelProps): import("react").JSX.Element;
|
|
45
|
-
//#endregion
|
|
46
|
-
export { TriggerMenu, TriggerMenuEmpty, TriggerMenuEmptyProps, TriggerMenuGroup, TriggerMenuGroupLabel, TriggerMenuGroupLabelProps, TriggerMenuGroupProps, TriggerMenuIcon, TriggerMenuIconProps, TriggerMenuItem, TriggerMenuItemProps, TriggerMenuList, TriggerMenuListProps, TriggerMenuProps };
|
|
38
|
+
export declare function TriggerMenu({ open, onOpenChange, anchorRect, side, align, sideOffset, className, children }: TriggerMenuProps): import("react").JSX.Element;
|
|
39
|
+
export declare function TriggerMenuList({ className, ...props }: TriggerMenuListProps): import("react").JSX.Element;
|
|
40
|
+
export declare function TriggerMenuItem({ className, active, disabled, onMouseDown, ...props }: TriggerMenuItemProps): import("react").JSX.Element;
|
|
41
|
+
export declare function TriggerMenuIcon({ className, ...props }: TriggerMenuIconProps): import("react").JSX.Element;
|
|
42
|
+
export declare function TriggerMenuEmpty({ className, ...props }: TriggerMenuEmptyProps): import("react").JSX.Element;
|
|
43
|
+
export declare function TriggerMenuGroup({ className, ...props }: TriggerMenuGroupProps): import("react").JSX.Element;
|
|
44
|
+
export declare function TriggerMenuGroupLabel({ className, ...props }: TriggerMenuGroupLabelProps): import("react").JSX.Element;
|
|
45
|
+
//#endregion
|
package/dist/ui/trigger-menu.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
-
import {
|
|
3
|
+
import { controlEffectsAttribute } from "../skin.js";
|
|
4
|
+
import { useSkin } from "../skin-provider.js";
|
|
4
5
|
import { popupItemStructureClasses } from "../surface-variants.js";
|
|
5
6
|
import { jsx } from "react/jsx-runtime";
|
|
6
7
|
import { Popover } from "@base-ui/react/popover";
|
|
7
8
|
//#region src/ui/trigger-menu.tsx
|
|
8
9
|
function TriggerMenu({ open, onOpenChange, anchorRect, side = "top", align = "start", sideOffset = 8, className, children }) {
|
|
10
|
+
const skin = useSkin();
|
|
9
11
|
return /* @__PURE__ */ jsx(Popover.Root, {
|
|
10
12
|
open,
|
|
11
13
|
onOpenChange: (next, eventDetails) => onOpenChange?.(next, eventDetails),
|
|
@@ -15,8 +17,8 @@ function TriggerMenu({ open, onOpenChange, anchorRect, side = "top", align = "st
|
|
|
15
17
|
"data-popup-kind": "trigger-menu",
|
|
16
18
|
"data-control-family": "popup",
|
|
17
19
|
"data-slot": "positioner",
|
|
18
|
-
"data-skin":
|
|
19
|
-
"data-effects":
|
|
20
|
+
"data-skin": skin.id,
|
|
21
|
+
"data-effects": controlEffectsAttribute(skin.effects),
|
|
20
22
|
anchor: anchorRect === null ? void 0 : () => ({ getBoundingClientRect: () => anchorRect }),
|
|
21
23
|
side,
|
|
22
24
|
align,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/ui/use-switch-drag.d.ts
|
|
2
|
+
export declare function useSwitchDrag(): {
|
|
3
|
+
thumbRef: import("react").RefObject<HTMLSpanElement | null>;
|
|
4
|
+
dragProps: Pick<import("@base-ui/react").SwitchRootProps, "onClick" | "onKeyDown" | "onLostPointerCapture" | "onPointerCancel" | "onPointerDown" | "onPointerMove" | "onPointerUp">;
|
|
5
|
+
dragProgress: number | null;
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useRef, useState } from "react";
|
|
3
|
+
//#region src/ui/use-switch-drag.ts
|
|
4
|
+
const dragThresholdPx = 3;
|
|
5
|
+
function switchDragProgress(gesture, clientX) {
|
|
6
|
+
const deltaX = (clientX - gesture.startX) * gesture.direction;
|
|
7
|
+
return Math.max(0, Math.min(1, gesture.startProgress + deltaX / gesture.travel));
|
|
8
|
+
}
|
|
9
|
+
function isSwitchLocked(root) {
|
|
10
|
+
return root.hasAttribute("data-disabled") || root.hasAttribute("data-readonly");
|
|
11
|
+
}
|
|
12
|
+
function useSwitchDrag() {
|
|
13
|
+
const thumbRef = useRef(null);
|
|
14
|
+
const [dragProgress, setDragProgress] = useState(null);
|
|
15
|
+
const gestureRef = useRef(null);
|
|
16
|
+
function cancelDrag(gesture) {
|
|
17
|
+
gesture.canceled = true;
|
|
18
|
+
setDragProgress(null);
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
thumbRef,
|
|
22
|
+
dragProps: {
|
|
23
|
+
onPointerDown(event) {
|
|
24
|
+
const root = event.currentTarget;
|
|
25
|
+
if (!(event.isPrimary && event.button === 0 && !isSwitchLocked(root)) || !thumbRef.current) return;
|
|
26
|
+
setDragProgress(null);
|
|
27
|
+
const styles = getComputedStyle(root);
|
|
28
|
+
const travel = root.clientWidth - Number.parseFloat(styles.paddingLeft) - Number.parseFloat(styles.paddingRight) - thumbRef.current.offsetWidth;
|
|
29
|
+
if (travel <= 0) return;
|
|
30
|
+
const progress = root.hasAttribute("data-checked") ? 1 : 0;
|
|
31
|
+
gestureRef.current = {
|
|
32
|
+
pointerId: event.pointerId,
|
|
33
|
+
startX: event.clientX,
|
|
34
|
+
startY: event.clientY,
|
|
35
|
+
startProgress: progress,
|
|
36
|
+
travel,
|
|
37
|
+
direction: styles.direction === "rtl" ? -1 : 1,
|
|
38
|
+
dragged: false,
|
|
39
|
+
released: false,
|
|
40
|
+
canceled: false
|
|
41
|
+
};
|
|
42
|
+
root.setPointerCapture(event.pointerId);
|
|
43
|
+
},
|
|
44
|
+
onPointerMove(event) {
|
|
45
|
+
const gesture = gestureRef.current;
|
|
46
|
+
if (!gesture || gesture.pointerId !== event.pointerId || gesture.released) return;
|
|
47
|
+
const root = event.currentTarget;
|
|
48
|
+
if (gesture.canceled || isSwitchLocked(root)) {
|
|
49
|
+
cancelDrag(gesture);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const deltaX = event.clientX - gesture.startX;
|
|
53
|
+
const deltaY = event.clientY - gesture.startY;
|
|
54
|
+
if (!gesture.dragged) {
|
|
55
|
+
if (Math.abs(deltaY) > Math.max(dragThresholdPx, Math.abs(deltaX))) {
|
|
56
|
+
cancelDrag(gesture);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (Math.abs(deltaX) < dragThresholdPx) return;
|
|
60
|
+
gesture.dragged = true;
|
|
61
|
+
}
|
|
62
|
+
setDragProgress(switchDragProgress(gesture, event.clientX));
|
|
63
|
+
},
|
|
64
|
+
onPointerUp(event) {
|
|
65
|
+
const gesture = gestureRef.current;
|
|
66
|
+
if (!gesture || gesture.pointerId !== event.pointerId) return;
|
|
67
|
+
gesture.released = true;
|
|
68
|
+
setDragProgress(null);
|
|
69
|
+
if (!gesture.dragged || gesture.canceled) return;
|
|
70
|
+
const root = event.currentTarget;
|
|
71
|
+
const shouldToggle = switchDragProgress(gesture, event.clientX) >= .5 !== root.hasAttribute("data-checked") && !isSwitchLocked(root);
|
|
72
|
+
gesture.canceled = true;
|
|
73
|
+
if (shouldToggle) root.click();
|
|
74
|
+
},
|
|
75
|
+
onPointerCancel(event) {
|
|
76
|
+
const gesture = gestureRef.current;
|
|
77
|
+
if (!gesture || gesture.pointerId !== event.pointerId) return;
|
|
78
|
+
cancelDrag(gesture);
|
|
79
|
+
},
|
|
80
|
+
onLostPointerCapture(event) {
|
|
81
|
+
const gesture = gestureRef.current;
|
|
82
|
+
if (!gesture || gesture.pointerId !== event.pointerId || gesture.released) return;
|
|
83
|
+
cancelDrag(gesture);
|
|
84
|
+
},
|
|
85
|
+
onKeyDown(event) {
|
|
86
|
+
if (event.key !== "Escape" || !gestureRef.current) return;
|
|
87
|
+
cancelDrag(gestureRef.current);
|
|
88
|
+
},
|
|
89
|
+
onClick(event) {
|
|
90
|
+
if (event.detail === 0) return;
|
|
91
|
+
const gesture = gestureRef.current;
|
|
92
|
+
gestureRef.current = null;
|
|
93
|
+
if (gesture?.canceled) {
|
|
94
|
+
event.preventDefault();
|
|
95
|
+
event.stopPropagation();
|
|
96
|
+
event.preventBaseUIHandler();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
dragProgress
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//#endregion
|
|
104
|
+
export { useSwitchDrag };
|