@ctrl-ui/react 0.9.4 → 0.9.6
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 +27 -0
- package/dist/action-bar.js +16 -8
- package/dist/activity.d.ts +1 -1
- package/dist/activity.js +3 -1
- package/dist/audio-visualizer.js +1 -1
- package/dist/blocks/agent-run-clock.d.ts +5 -0
- package/dist/blocks/agent-run-clock.js +52 -0
- package/dist/blocks/agent-run-sidebar.d.ts +13 -0
- package/dist/blocks/agent-run-sidebar.js +100 -0
- package/dist/blocks/agent-run-status.d.ts +32 -0
- package/dist/blocks/agent-run-status.js +27 -0
- package/dist/blocks/agent-run.d.ts +80 -0
- package/dist/blocks/agent-run.js +254 -0
- package/dist/blocks/coding-agent.d.ts +1 -1
- package/dist/blocks/coding-agent.js +1 -4
- package/dist/blocks/design-canvas-data.d.ts +1 -1
- package/dist/blocks/design-canvas.d.ts +2 -1
- package/dist/blocks/design-canvas.js +15 -8
- package/dist/blocks/file-explorer.js +14 -16
- package/dist/chat-message.js +33 -39
- package/dist/knob-contracts/infinite-canvas-knobs.d.ts +1 -1
- package/dist/knob-contracts/infinite-canvas-knobs.js +1 -7
- package/dist/knob-contracts/swap-knobs.d.ts +4 -0
- package/dist/knob-contracts/swap-knobs.js +9 -0
- package/dist/knob-contracts/timeline-knobs.d.ts +1 -1
- package/dist/knob-contracts/timeline-knobs.js +1 -0
- package/dist/knob-contracts/tool-approval-knobs.d.ts +4 -0
- package/dist/knob-contracts/tool-approval-knobs.js +32 -0
- package/dist/lib/cn.d.ts +2 -0
- package/dist/lib/cn.js +29 -24
- package/dist/lib/infinite-canvas-camera-store.d.ts +65 -0
- package/dist/lib/infinite-canvas-camera-store.js +233 -0
- package/dist/lib/infinite-canvas-camera.d.ts +33 -0
- package/dist/lib/infinite-canvas-camera.js +98 -0
- package/dist/lib/infinite-canvas-navigation.d.ts +19 -0
- package/dist/lib/infinite-canvas-navigation.js +395 -0
- package/dist/markdown-editor/bubble-menu.d.ts +6 -0
- package/dist/markdown-editor/bubble-menu.js +45 -0
- package/dist/markdown-editor/toolbar.d.ts +17 -1
- package/dist/markdown-editor/toolbar.js +103 -81
- package/dist/styles/index.css +10 -8
- package/dist/styles/recipes/activity.css +8 -0
- package/dist/styles/recipes/button-group.css +12 -6
- package/dist/styles/recipes/button-states.css +12 -0
- package/dist/styles/recipes/button.css +13 -3
- package/dist/styles/recipes/chat-composer-attachment.css +7 -0
- package/dist/styles/recipes/chat-message-edit.css +6 -21
- package/dist/styles/recipes/color-picker-details.css +7 -0
- package/dist/styles/recipes/field.css +7 -0
- package/dist/styles/recipes/infinite-canvas.css +17 -57
- package/dist/styles/recipes/inline-attachment.css +7 -0
- package/dist/styles/recipes/kbd.css +7 -0
- package/dist/styles/recipes/markdown-editor.css +12 -0
- package/dist/styles/recipes/pagination.css +8 -1
- package/dist/styles/recipes/scroll-area.css +1 -3
- package/dist/styles/recipes/swap.css +143 -0
- package/dist/styles/recipes/tabs.css +12 -0
- package/dist/styles/recipes/timeline.css +11 -0
- package/dist/styles/recipes/tool-approval.css +267 -0
- package/dist/styles/recipes/track-highlight.css +19 -6
- package/dist/styles/theme.css +6 -5
- package/dist/styles/type-scale.css +2 -1
- package/dist/tool-approval.d.ts +49 -0
- package/dist/tool-approval.js +260 -0
- package/dist/ui/code.js +13 -3
- package/dist/ui/command.js +1 -0
- package/dist/ui/infinite-canvas.d.ts +19 -22
- package/dist/ui/infinite-canvas.js +264 -325
- package/dist/ui/rich-tooltip.d.ts +2 -1
- package/dist/ui/rich-tooltip.js +32 -29
- package/dist/ui/sidebar.js +1 -1
- package/dist/ui/swap.d.ts +14 -0
- package/dist/ui/swap.js +69 -0
- package/dist/ui/timeline.d.ts +1 -1
- package/dist/ui/timeline.js +1 -1
- package/dist/ui/typography.d.ts +2 -0
- package/dist/ui/typography.js +2 -0
- package/dist/user-ask.js +1 -1
- package/lint/no-raw-type-classes.grit +7 -0
- package/package.json +4 -3
package/dist/styles/index.css
CHANGED
|
@@ -2,37 +2,39 @@
|
|
|
2
2
|
@import "./recipes/accordion.css";
|
|
3
3
|
@import "./recipes/button.css";
|
|
4
4
|
@import "./recipes/button-states.css";
|
|
5
|
+
@import "./recipes/swap.css";
|
|
5
6
|
@import "./recipes/action-bar.css";
|
|
6
7
|
@import "./recipes/collapsible.css";
|
|
7
8
|
@import "./effects.css";
|
|
8
9
|
@import "./recipes/progressive-blur.css";
|
|
9
10
|
@import "./recipes/scroll-area.css";
|
|
10
11
|
@import "./recipes/activity.css";
|
|
11
|
-
@import "./recipes/
|
|
12
|
+
@import "./recipes/badge.css";
|
|
13
|
+
@import "./recipes/card.css";
|
|
12
14
|
@import "./recipes/popup.css";
|
|
13
15
|
@import "./recipes/popup-controls.css";
|
|
16
|
+
@import "./recipes/popup-drawer.css";
|
|
14
17
|
@import "./recipes/popup-lists.css";
|
|
15
18
|
@import "./recipes/popup-motion.css";
|
|
16
|
-
@import "./recipes/page-layout.css";
|
|
17
|
-
@import "./recipes/popup-drawer.css";
|
|
18
19
|
@import "./recipes/track-highlight.css";
|
|
19
20
|
@import "./recipes/sidebar.css";
|
|
20
21
|
@import "./recipes/sidebar-menu.css";
|
|
21
22
|
@import "./recipes/sidebar-mobile.css";
|
|
22
23
|
@import "./recipes/sidebar-parts.css";
|
|
24
|
+
@import "./recipes/timeline.css";
|
|
25
|
+
@import "./type-scale.css";
|
|
26
|
+
@import "./recipes/alert.css";
|
|
27
|
+
@import "./recipes/page-layout.css";
|
|
23
28
|
@import "./recipes/app-shell-header.css";
|
|
24
29
|
@import "./recipes/field.css";
|
|
25
30
|
@import "./recipes/field-parts.css";
|
|
26
|
-
@import "./type-scale.css";
|
|
27
31
|
@import "./recipes/audio-device-select.css";
|
|
28
32
|
@import "./recipes/audio-visualizer.css";
|
|
29
33
|
@import "./recipes/audio-recorder.css";
|
|
30
34
|
@import "./recipes/avatar.css";
|
|
31
|
-
@import "./recipes/badge.css";
|
|
32
35
|
@import "./recipes/breadcrumb.css";
|
|
33
36
|
@import "./recipes/button-group.css";
|
|
34
37
|
@import "./recipes/calendar.css";
|
|
35
|
-
@import "./recipes/card.css";
|
|
36
38
|
@import "./recipes/channel-strip.css";
|
|
37
39
|
@import "./recipes/chart.css";
|
|
38
40
|
@import "./recipes/chat-message.css";
|
|
@@ -53,10 +55,10 @@
|
|
|
53
55
|
@import "./recipes/gradient-editor.css";
|
|
54
56
|
@import "./recipes/empty.css";
|
|
55
57
|
@import "./recipes/context.css";
|
|
58
|
+
@import "./recipes/toolbar.css";
|
|
56
59
|
@import "./recipes/infinite-canvas.css";
|
|
57
60
|
@import "./recipes/resizable.css";
|
|
58
61
|
@import "./recipes/separator.css";
|
|
59
|
-
@import "./recipes/toolbar.css";
|
|
60
62
|
@import "./recipes/kbd.css";
|
|
61
63
|
@import "./recipes/markdown.css";
|
|
62
64
|
@import "./recipes/label.css";
|
|
@@ -91,8 +93,8 @@
|
|
|
91
93
|
@import "./recipes/table-of-contents.css";
|
|
92
94
|
@import "./recipes/task-list.css";
|
|
93
95
|
@import "./recipes/thread-rail.css";
|
|
94
|
-
@import "./recipes/timeline.css";
|
|
95
96
|
@import "./recipes/popup-toast.css";
|
|
97
|
+
@import "./recipes/tool-approval.css";
|
|
96
98
|
@import "./recipes/transcript-divider.css";
|
|
97
99
|
@import "./recipes/tree.css";
|
|
98
100
|
@import "./recipes/user-ask.css";
|
|
@@ -72,6 +72,10 @@
|
|
|
72
72
|
color: var(--destructive-text);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
:where([data-control-family="activity"][data-slot="root"][data-activity-state="waiting"] [data-slot="icon"]) {
|
|
76
|
+
color: var(--warning-text);
|
|
77
|
+
}
|
|
78
|
+
|
|
75
79
|
:where([data-control-family="activity"][data-slot="title"]) {
|
|
76
80
|
color: currentColor;
|
|
77
81
|
font-size: var(--text-label);
|
|
@@ -87,6 +91,10 @@
|
|
|
87
91
|
color: var(--destructive-text);
|
|
88
92
|
}
|
|
89
93
|
|
|
94
|
+
:where([data-control-family="activity"][data-slot="status"][data-status="waiting"]) {
|
|
95
|
+
color: var(--warning-text);
|
|
96
|
+
}
|
|
97
|
+
|
|
90
98
|
:where([data-control-family="activity"][data-slot="detail-label"]) {
|
|
91
99
|
color: var(--muted-foreground);
|
|
92
100
|
font-size: var(--text-micro);
|
|
@@ -44,30 +44,36 @@
|
|
|
44
44
|
|
|
45
45
|
:where(
|
|
46
46
|
[data-control-family="button-group"][data-orientation="horizontal"]
|
|
47
|
-
> :not([data-control-family="track-highlight"])
|
|
48
|
-
|
|
47
|
+
> :not([data-control-family="track-highlight"], [data-base-ui-focus-guard], span[aria-owns])
|
|
48
|
+
~ :not([data-control-family="track-highlight"], [data-base-ui-focus-guard], span[aria-owns])
|
|
49
49
|
) {
|
|
50
50
|
margin-inline-start: -1px;
|
|
51
51
|
border-start-start-radius: 0;
|
|
52
52
|
border-end-start-radius: 0;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
:where(
|
|
55
|
+
:where(
|
|
56
|
+
[data-control-family="button-group"][data-orientation="horizontal"]
|
|
57
|
+
> :has(~ :not([data-control-family="track-highlight"], [data-base-ui-focus-guard], span[aria-owns]))
|
|
58
|
+
) {
|
|
56
59
|
border-start-end-radius: 0;
|
|
57
60
|
border-end-end-radius: 0;
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
:where(
|
|
61
64
|
[data-control-family="button-group"][data-orientation="vertical"]
|
|
62
|
-
> :not([data-control-family="track-highlight"])
|
|
63
|
-
|
|
65
|
+
> :not([data-control-family="track-highlight"], [data-base-ui-focus-guard], span[aria-owns])
|
|
66
|
+
~ :not([data-control-family="track-highlight"], [data-base-ui-focus-guard], span[aria-owns])
|
|
64
67
|
) {
|
|
65
68
|
margin-block-start: -1px;
|
|
66
69
|
border-start-start-radius: 0;
|
|
67
70
|
border-start-end-radius: 0;
|
|
68
71
|
}
|
|
69
72
|
|
|
70
|
-
:where(
|
|
73
|
+
:where(
|
|
74
|
+
[data-control-family="button-group"][data-orientation="vertical"]
|
|
75
|
+
> :has(~ :not([data-control-family="track-highlight"], [data-base-ui-focus-guard], span[aria-owns]))
|
|
76
|
+
) {
|
|
71
77
|
border-end-start-radius: 0;
|
|
72
78
|
border-end-end-radius: 0;
|
|
73
79
|
}
|
|
@@ -63,4 +63,16 @@
|
|
|
63
63
|
cursor: not-allowed;
|
|
64
64
|
opacity: var(--disabled-opacity);
|
|
65
65
|
}
|
|
66
|
+
|
|
67
|
+
@media (forced-colors: active) {
|
|
68
|
+
:where([data-control-family="button"][data-control="true"]:not(:focus-visible, :has(:focus-visible))) {
|
|
69
|
+
outline: 1px solid currentColor;
|
|
70
|
+
outline-offset: -1px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:where([data-control-family="button"][data-control="true"][data-active="true"]:not(:focus-visible, :has(:focus-visible))) {
|
|
74
|
+
outline: var(--focus-ring-width) solid Highlight;
|
|
75
|
+
outline-offset: calc(var(--focus-ring-width) * -1);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
66
78
|
}
|
|
@@ -95,7 +95,12 @@
|
|
|
95
95
|
:where(
|
|
96
96
|
[data-control-family="button"][data-control="true"][data-size]:not([data-icon-only="true"]):has(
|
|
97
97
|
> :is(svg, [data-slot="icon"]):first-child:not(:only-child),
|
|
98
|
-
> [data-slot="content"] > :is(svg, [data-slot="icon"]):first-child:not(:only-child)
|
|
98
|
+
> [data-slot="content"] > :is(svg, [data-slot="icon"]):first-child:not(:only-child),
|
|
99
|
+
> [data-control-family="swap"]:first-child > [data-state="active"] > :is(svg, [data-slot="icon"]):first-child:not(:only-child),
|
|
100
|
+
> [data-slot="content"]
|
|
101
|
+
> [data-control-family="swap"]:first-child
|
|
102
|
+
> [data-state="active"]
|
|
103
|
+
> :is(svg, [data-slot="icon"]):first-child:not(:only-child)
|
|
99
104
|
)
|
|
100
105
|
) {
|
|
101
106
|
padding-inline-start: var(--cui-button-icon-padding-inline);
|
|
@@ -104,7 +109,12 @@
|
|
|
104
109
|
:where(
|
|
105
110
|
[data-control-family="button"][data-control="true"][data-size]:not([data-icon-only="true"]):has(
|
|
106
111
|
> :is(svg, [data-slot="icon"]):last-child:not(:only-child),
|
|
107
|
-
> [data-slot="content"] > :is(svg, [data-slot="icon"]):last-child:not(:only-child)
|
|
112
|
+
> [data-slot="content"] > :is(svg, [data-slot="icon"]):last-child:not(:only-child),
|
|
113
|
+
> [data-control-family="swap"]:last-child > [data-state="active"] > :is(svg, [data-slot="icon"]):last-child:not(:only-child),
|
|
114
|
+
> [data-slot="content"]
|
|
115
|
+
> [data-control-family="swap"]:last-child
|
|
116
|
+
> [data-state="active"]
|
|
117
|
+
> :is(svg, [data-slot="icon"]):last-child:not(:only-child)
|
|
108
118
|
)
|
|
109
119
|
) {
|
|
110
120
|
padding-inline-end: var(--cui-button-icon-padding-inline);
|
|
@@ -164,7 +174,7 @@
|
|
|
164
174
|
--cui-button-shadow: inset 0 0 0 var(--control-rim-width) var(--control-rim), var(--shadow-sm);
|
|
165
175
|
--cui-button-active-background: oklch(from var(--primary) l c h / 0.08);
|
|
166
176
|
--cui-button-active-foreground: var(--primary-text);
|
|
167
|
-
--cui-button-active-shadow: inset 0 0 0
|
|
177
|
+
--cui-button-active-shadow: inset 0 0 0 var(--control-rim-width) oklch(from var(--primary) l c h / 0.6), var(--shadow-sm);
|
|
168
178
|
--cui-button-active-hover-background: oklch(from var(--primary) l c h / 0.1);
|
|
169
179
|
}
|
|
170
180
|
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
transition-timing-function: var(--ease-standard);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
@media (forced-colors: active) {
|
|
29
|
+
:where([data-control-family="chat-composer-attachment"][data-slot="root"][data-variant]:not(:focus-visible, :has(:focus-visible))) {
|
|
30
|
+
outline: 1px solid CanvasText;
|
|
31
|
+
outline-offset: -1px;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
28
35
|
:where([data-control-family="chat-composer-attachment"][data-slot="list"]) {
|
|
29
36
|
gap: calc(var(--spacing) * 2);
|
|
30
37
|
padding: var(--cui-chat-composer-attachment-list-padding);
|
|
@@ -5,15 +5,9 @@
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
:where([data-control-family="chat-message"][data-slot="content"][data-editable]) {
|
|
8
|
+
--focus-ring-offset: calc(var(--focus-ring-width) * -1);
|
|
8
9
|
position: relative;
|
|
9
10
|
display: grid;
|
|
10
|
-
outline: var(--focus-ring-width) var(--focus-ring-style) transparent;
|
|
11
|
-
outline-offset: calc(var(--focus-ring-width) * -1);
|
|
12
|
-
transition: outline-color var(--duration-fast) var(--ease-standard);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
:where([data-control-family="chat-message"][data-slot="content"][data-editable]:focus-within) {
|
|
16
|
-
outline-color: var(--focus-ring);
|
|
17
11
|
}
|
|
18
12
|
|
|
19
13
|
:where([data-control-family="chat-message"][data-slot="editable"] :is([data-slot="edit-value"], [data-slot="edit-sizer"])) {
|
|
@@ -63,7 +57,6 @@
|
|
|
63
57
|
white-space: pre-wrap;
|
|
64
58
|
overflow-wrap: anywhere;
|
|
65
59
|
scrollbar-width: thin;
|
|
66
|
-
outline: none;
|
|
67
60
|
visibility: hidden;
|
|
68
61
|
}
|
|
69
62
|
|
|
@@ -75,21 +68,13 @@
|
|
|
75
68
|
visibility: hidden;
|
|
76
69
|
}
|
|
77
70
|
|
|
78
|
-
:where([data-control-family="chat-message"][data-slot="editable"] [data-slot="edit-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
:where([data-control-family="chat-message"][data-slot="editable"] [data-slot="edit-toolbar"]) {
|
|
83
|
-
grid-area: 1 / 1;
|
|
84
|
-
min-inline-size: 0;
|
|
85
|
-
visibility: hidden;
|
|
86
|
-
opacity: 0;
|
|
87
|
-
transition: opacity var(--duration-fast) var(--ease-standard);
|
|
71
|
+
:where([data-control-family="chat-message"][data-slot="editable"] :is([data-slot="read-actions"], [data-slot="edit-actions"])) {
|
|
72
|
+
contain: inline-size;
|
|
88
73
|
}
|
|
89
74
|
|
|
90
|
-
:where([data-control-family="chat-message"][data-slot="editable"] [data-slot="
|
|
91
|
-
|
|
92
|
-
|
|
75
|
+
:where([data-control-family="chat-message"][data-slot="editable"][data-editing] [data-slot="read-actions"]),
|
|
76
|
+
:where([data-control-family="chat-message"][data-slot="editable"]:not([data-editing]) [data-slot="edit-actions"]) {
|
|
77
|
+
display: none;
|
|
93
78
|
}
|
|
94
79
|
|
|
95
80
|
:where([data-control-family="chat-message"][data-slot="editable"] [data-slot="edit-error"]) {
|
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
box-shadow: var(--cui-color-picker-trigger-shadow);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
@media (forced-colors: active) {
|
|
9
|
+
:where([data-control-family="color-picker"][data-slot="trigger-color"]) {
|
|
10
|
+
outline: 1px solid CanvasText;
|
|
11
|
+
outline-offset: -1px;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
8
15
|
:where([data-control-family="color-picker"][data-slot="trigger"]) {
|
|
9
16
|
border-radius: var(--cui-color-picker-trigger-radius);
|
|
10
17
|
transition-property: transform, translate, scale, rotate;
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
backdrop-filter: var(--cui-field-backdrop-filter);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
@media (forced-colors: active) {
|
|
29
|
+
:where([data-control-family="field"][data-control="true"]:not(:focus-visible, :has(:focus-visible))) {
|
|
30
|
+
outline: 1px solid CanvasText;
|
|
31
|
+
outline-offset: -1px;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
28
35
|
:where(
|
|
29
36
|
[data-control-family="field"][data-control="true"]:not([data-control-family="field"][data-field-kind="autocomplete"]):not(
|
|
30
37
|
[data-control-family="field"][data-field-kind="combobox"]
|
|
@@ -1,34 +1,31 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
:where([data-control-family="infinite-canvas"][data-slot="root"]) {
|
|
3
|
+
--_infinite-canvas-controls-item-radius: min(var(--radius-sm), calc(var(--control-h-sm) / 2));
|
|
4
|
+
--_infinite-canvas-controls-radius: calc(
|
|
5
|
+
var(--_infinite-canvas-controls-item-radius) +
|
|
6
|
+
clamp(0px, calc(var(--_infinite-canvas-controls-item-radius) * 1000), var(--spacing))
|
|
7
|
+
);
|
|
3
8
|
--cui-infinite-canvas-background: var(--canvas);
|
|
4
9
|
--cui-infinite-canvas-grid-dot-color: var(--canvas-grid-dot);
|
|
5
10
|
--cui-infinite-canvas-border-color: var(--border);
|
|
6
|
-
--cui-infinite-canvas-controls-item-radius: min(var(--radius-sm), calc(var(--control-h-sm) / 2));
|
|
7
|
-
--cui-infinite-canvas-controls-padding: calc(var(--spacing) * 1);
|
|
8
|
-
--cui-infinite-canvas-controls-radius: calc(
|
|
9
|
-
var(--cui-infinite-canvas-controls-item-radius) +
|
|
10
|
-
clamp(0px, calc(var(--cui-infinite-canvas-controls-item-radius) * 1000), var(--cui-infinite-canvas-controls-padding))
|
|
11
|
-
);
|
|
12
11
|
--cui-infinite-canvas-radius: max(
|
|
13
12
|
var(--radius-panel),
|
|
14
|
-
calc(
|
|
15
|
-
var(--cui-infinite-canvas-controls-radius) +
|
|
16
|
-
clamp(0px, calc(var(--cui-infinite-canvas-controls-radius) * 1000), var(--spacing) * 2)
|
|
17
|
-
)
|
|
13
|
+
calc(var(--_infinite-canvas-controls-radius) + clamp(0px, calc(var(--_infinite-canvas-controls-radius) * 1000), var(--spacing) * 2))
|
|
18
14
|
);
|
|
19
15
|
--cui-infinite-canvas-padding: max(
|
|
20
16
|
calc(var(--spacing) * 2),
|
|
21
|
-
calc(var(--cui-infinite-canvas-radius) - var(--
|
|
17
|
+
calc(var(--cui-infinite-canvas-radius) - var(--_infinite-canvas-controls-radius))
|
|
22
18
|
);
|
|
23
|
-
--cui-infinite-canvas-controls-background: var(--card);
|
|
24
|
-
--cui-infinite-canvas-controls-border-color: var(--border);
|
|
25
|
-
--cui-infinite-canvas-controls-shadow: var(--shadow-sm);
|
|
26
19
|
border-radius: var(--cui-infinite-canvas-radius);
|
|
27
20
|
background-color: var(--cui-infinite-canvas-background);
|
|
28
21
|
background-image: radial-gradient(circle at center, var(--cui-infinite-canvas-grid-dot-color) 1px, transparent 1px);
|
|
29
22
|
box-shadow: 0 0 0 1px var(--cui-infinite-canvas-border-color);
|
|
30
23
|
}
|
|
31
24
|
|
|
25
|
+
:where([data-control-family="infinite-canvas"][data-slot="root"]:focus-visible) {
|
|
26
|
+
--focus-ring-offset: calc(var(--focus-ring-width) * -1);
|
|
27
|
+
}
|
|
28
|
+
|
|
32
29
|
:where([data-control-family="infinite-canvas"][data-slot="root"][data-easing]) {
|
|
33
30
|
transition-property: background-position, background-size;
|
|
34
31
|
transition-duration: var(--duration-base);
|
|
@@ -41,17 +38,15 @@
|
|
|
41
38
|
transition: transform var(--duration-base) var(--ease-standard);
|
|
42
39
|
}
|
|
43
40
|
|
|
41
|
+
:where(
|
|
42
|
+
[data-control-family="infinite-canvas"][data-slot="root"][data-moving] [data-control-family="infinite-canvas"][data-slot="content"]
|
|
43
|
+
) {
|
|
44
|
+
will-change: transform;
|
|
45
|
+
}
|
|
46
|
+
|
|
44
47
|
:where([data-control-family="infinite-canvas"][data-slot="controls"]) {
|
|
45
|
-
--nest-radius: var(--cui-infinite-canvas-controls-item-radius);
|
|
46
48
|
inset-inline-end: var(--cui-infinite-canvas-padding);
|
|
47
49
|
inset-block-end: var(--cui-infinite-canvas-padding);
|
|
48
|
-
gap: calc(var(--spacing) * 0.5);
|
|
49
|
-
padding: var(--cui-infinite-canvas-controls-padding);
|
|
50
|
-
border-radius: var(--cui-infinite-canvas-controls-radius);
|
|
51
|
-
background-color: var(--cui-infinite-canvas-controls-background);
|
|
52
|
-
box-shadow:
|
|
53
|
-
var(--cui-infinite-canvas-controls-shadow),
|
|
54
|
-
0 0 0 1px var(--cui-infinite-canvas-controls-border-color);
|
|
55
50
|
}
|
|
56
51
|
|
|
57
52
|
:where([data-control-family="infinite-canvas"][data-slot="content"]) {
|
|
@@ -88,38 +83,3 @@
|
|
|
88
83
|
inherits: true;
|
|
89
84
|
initial-value: 0px;
|
|
90
85
|
}
|
|
91
|
-
|
|
92
|
-
@property --cui-infinite-canvas-controls-item-radius {
|
|
93
|
-
syntax: "<length-percentage>";
|
|
94
|
-
inherits: true;
|
|
95
|
-
initial-value: 0px;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
@property --cui-infinite-canvas-controls-padding {
|
|
99
|
-
syntax: "<length-percentage>";
|
|
100
|
-
inherits: true;
|
|
101
|
-
initial-value: 0px;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@property --cui-infinite-canvas-controls-radius {
|
|
105
|
-
syntax: "<length-percentage>";
|
|
106
|
-
inherits: true;
|
|
107
|
-
initial-value: 0px;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
@property --cui-infinite-canvas-controls-background {
|
|
111
|
-
syntax: "<color>";
|
|
112
|
-
inherits: true;
|
|
113
|
-
initial-value: transparent;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
@property --cui-infinite-canvas-controls-border-color {
|
|
117
|
-
syntax: "<color>";
|
|
118
|
-
inherits: true;
|
|
119
|
-
initial-value: transparent;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
@property --cui-infinite-canvas-controls-shadow {
|
|
123
|
-
syntax: "*";
|
|
124
|
-
inherits: true;
|
|
125
|
-
}
|
|
@@ -52,6 +52,13 @@
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
@media (forced-colors: active) {
|
|
56
|
+
:where([data-control-family="inline-attachment"][data-slot="root"]:not(:focus-visible)) {
|
|
57
|
+
outline: 1px solid CanvasText;
|
|
58
|
+
outline-offset: -1px;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
55
62
|
:where([data-control-family="inline-attachment"][data-slot="image"]) {
|
|
56
63
|
border-radius: inherit;
|
|
57
64
|
}
|
|
@@ -28,6 +28,13 @@
|
|
|
28
28
|
--cui-kbd-shadow: 0 0 transparent;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
@media (forced-colors: active) {
|
|
32
|
+
:where([data-control-family="kbd"][data-slot="root"]:not([data-variant="ghost"])) {
|
|
33
|
+
outline: 1px solid CanvasText;
|
|
34
|
+
outline-offset: -1px;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
:where([data-control-family="kbd"][data-slot="group"]) {
|
|
32
39
|
gap: calc(var(--spacing) * 1);
|
|
33
40
|
}
|
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
padding-inline: var(--cui-markdown-editor-padding);
|
|
42
42
|
white-space: nowrap;
|
|
43
43
|
}
|
|
44
|
+
:where([data-control-family="markdown-editor"][data-slot="bubble-menu"]) {
|
|
45
|
+
z-index: 1;
|
|
46
|
+
white-space: nowrap;
|
|
47
|
+
transform-origin: bottom center;
|
|
48
|
+
animation: cui-markdown-editor-bubble-enter var(--duration-fast) var(--ease-emphasized);
|
|
49
|
+
}
|
|
44
50
|
:where([data-control-family="markdown-editor"] [data-markdown-drag-handle]) {
|
|
45
51
|
position: absolute;
|
|
46
52
|
inset-inline-start: calc(var(--cui-markdown-editor-padding) / 2);
|
|
@@ -170,6 +176,12 @@
|
|
|
170
176
|
border: var(--cui-markdown-editor-border-width) solid var(--cui-markdown-editor-border-color);
|
|
171
177
|
padding: var(--cui-markdown-editor-padding);
|
|
172
178
|
}
|
|
179
|
+
@keyframes cui-markdown-editor-bubble-enter {
|
|
180
|
+
from {
|
|
181
|
+
opacity: 0;
|
|
182
|
+
scale: 0.96;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
173
185
|
}
|
|
174
186
|
|
|
175
187
|
@property --cui-markdown-editor-background {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
border-radius: var(--cui-pagination-link-radius);
|
|
18
18
|
background: var(--cui-pagination-link-background);
|
|
19
19
|
box-shadow:
|
|
20
|
-
inset 0 0 0
|
|
20
|
+
inset 0 0 0 var(--control-rim-width) var(--_pagination-link-border-color),
|
|
21
21
|
var(--cui-pagination-link-shadow);
|
|
22
22
|
color: var(--cui-pagination-link-foreground);
|
|
23
23
|
font-variant-numeric: tabular-nums;
|
|
@@ -39,6 +39,13 @@
|
|
|
39
39
|
opacity: var(--disabled-opacity);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
@media (forced-colors: active) {
|
|
43
|
+
:where([data-control-family="pagination"][data-slot="link"][data-active="true"]:not(:focus-visible)) {
|
|
44
|
+
outline: var(--focus-ring-width) solid Highlight;
|
|
45
|
+
outline-offset: calc(var(--focus-ring-width) * -1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
42
49
|
:where([data-control-family="pagination"][data-slot="link"]:has(> svg:first-child)) {
|
|
43
50
|
padding-inline-start: calc(var(--spacing) * 2);
|
|
44
51
|
}
|
|
@@ -39,14 +39,12 @@
|
|
|
39
39
|
:where(
|
|
40
40
|
[data-control-family="scroll-area"][data-slot="root"][data-scrollbar-gutter="stable"]
|
|
41
41
|
> [data-slot="scrollbar"][data-orientation="vertical"]:not([data-has-overflow-y])
|
|
42
|
-
> [data-slot="thumb"]
|
|
43
42
|
),
|
|
44
43
|
:where(
|
|
45
44
|
[data-control-family="scroll-area"][data-slot="root"][data-scrollbar-gutter="stable"]
|
|
46
45
|
> [data-slot="scrollbar"][data-orientation="horizontal"]:not([data-has-overflow-x])
|
|
47
|
-
> [data-slot="thumb"]
|
|
48
46
|
) {
|
|
49
|
-
|
|
47
|
+
visibility: hidden;
|
|
50
48
|
}
|
|
51
49
|
|
|
52
50
|
@supports (corner-shape: squircle) {
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
:where([data-control-family="swap"][data-slot="root"]) {
|
|
3
|
+
--cui-swap-animation-duration: var(--duration-slow);
|
|
4
|
+
--cui-swap-easing: var(--ease-emphasized);
|
|
5
|
+
--cui-swap-label-inset: 60%;
|
|
6
|
+
--cui-swap-icon-scale: 0.5;
|
|
7
|
+
position: relative;
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
gap: inherit;
|
|
11
|
+
inline-size: var(--_swap-inline-size, auto);
|
|
12
|
+
transition: inline-size var(--cui-swap-animation-duration) var(--cui-swap-easing);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where([data-control-family="swap"][data-slot="item"]) {
|
|
16
|
+
display: inline-flex;
|
|
17
|
+
flex: none;
|
|
18
|
+
align-items: center;
|
|
19
|
+
gap: inherit;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:where([data-control-family="swap"][data-slot="item"]:not([data-state="active"])) {
|
|
24
|
+
position: absolute;
|
|
25
|
+
inset-block: 0;
|
|
26
|
+
inset-inline-start: 0;
|
|
27
|
+
opacity: 0;
|
|
28
|
+
pointer-events: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:where([data-control-family="swap"][data-slot="item"][data-state="inactive"]) {
|
|
32
|
+
visibility: hidden;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:where([data-control-family="swap"][data-slot="label"]) {
|
|
36
|
+
display: inline-block;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:where([data-control-family="swap"][data-swapped] > [data-slot="item"][data-state="active"]) {
|
|
40
|
+
animation: cui-swap-item-enter var(--cui-swap-animation-duration) var(--cui-swap-easing) both;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
:where([data-control-family="swap"][data-swapped] > [data-slot="item"][data-state="exiting"]) {
|
|
44
|
+
animation: cui-swap-item-exit var(--cui-swap-animation-duration) var(--cui-swap-easing) both;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:where(
|
|
48
|
+
[data-control-family="swap"][data-swapped]
|
|
49
|
+
> [data-slot="item"][data-state="active"]
|
|
50
|
+
> :not(svg, [data-slot="icon"], [data-control-family="spinner"])
|
|
51
|
+
) {
|
|
52
|
+
animation: cui-swap-label-enter var(--cui-swap-animation-duration) var(--cui-swap-easing) both;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
:where(
|
|
56
|
+
[data-control-family="swap"][data-swapped]
|
|
57
|
+
> [data-slot="item"][data-state="exiting"]
|
|
58
|
+
> :not(svg, [data-slot="icon"], [data-control-family="spinner"])
|
|
59
|
+
) {
|
|
60
|
+
animation: cui-swap-label-exit var(--cui-swap-animation-duration) var(--cui-swap-easing) both;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:where(
|
|
64
|
+
[data-control-family="swap"][data-swapped]
|
|
65
|
+
> [data-slot="item"][data-state="active"]
|
|
66
|
+
> :is(svg, [data-slot="icon"], [data-control-family="spinner"])
|
|
67
|
+
) {
|
|
68
|
+
animation: cui-swap-icon-enter var(--cui-swap-animation-duration) var(--cui-swap-easing) both;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
:where(
|
|
72
|
+
[data-control-family="swap"][data-swapped]
|
|
73
|
+
> [data-slot="item"][data-state="exiting"]
|
|
74
|
+
> :is(svg, [data-slot="icon"], [data-control-family="spinner"])
|
|
75
|
+
) {
|
|
76
|
+
animation: cui-swap-icon-exit var(--cui-swap-animation-duration) var(--cui-swap-easing) both;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@keyframes cui-swap-item-enter {
|
|
81
|
+
from {
|
|
82
|
+
opacity: 0;
|
|
83
|
+
filter: blur(var(--blur-xs));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@keyframes cui-swap-item-exit {
|
|
88
|
+
from {
|
|
89
|
+
opacity: 1;
|
|
90
|
+
filter: blur(0);
|
|
91
|
+
}
|
|
92
|
+
to {
|
|
93
|
+
opacity: 0;
|
|
94
|
+
filter: blur(var(--blur-xs));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@keyframes cui-swap-label-enter {
|
|
99
|
+
from {
|
|
100
|
+
translate: 0 var(--cui-swap-label-inset);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@keyframes cui-swap-label-exit {
|
|
105
|
+
to {
|
|
106
|
+
translate: 0 calc(var(--cui-swap-label-inset) * -1);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@keyframes cui-swap-icon-enter {
|
|
111
|
+
from {
|
|
112
|
+
scale: var(--cui-swap-icon-scale);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@keyframes cui-swap-icon-exit {
|
|
117
|
+
to {
|
|
118
|
+
scale: var(--cui-swap-icon-scale);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@property --cui-swap-animation-duration {
|
|
123
|
+
syntax: "<time>";
|
|
124
|
+
inherits: true;
|
|
125
|
+
initial-value: 0s;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@property --cui-swap-easing {
|
|
129
|
+
syntax: "*";
|
|
130
|
+
inherits: true;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@property --cui-swap-label-inset {
|
|
134
|
+
syntax: "<length-percentage>";
|
|
135
|
+
inherits: true;
|
|
136
|
+
initial-value: 0px;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@property --cui-swap-icon-scale {
|
|
140
|
+
syntax: "<number>";
|
|
141
|
+
inherits: true;
|
|
142
|
+
initial-value: 1;
|
|
143
|
+
}
|
|
@@ -114,6 +114,18 @@
|
|
|
114
114
|
opacity: var(--disabled-opacity);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
+
@media (forced-colors: active) {
|
|
118
|
+
:where([data-control-family="tabs"][data-slot="list"]:not([data-variant="browser"], [data-single="true"])) {
|
|
119
|
+
outline: 1px solid CanvasText;
|
|
120
|
+
outline-offset: -1px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
:where([data-control-family="tabs"][data-slot="list"]:not([data-variant="browser"]) [data-slot="indicator"]) {
|
|
124
|
+
outline: var(--focus-ring-width) solid Highlight;
|
|
125
|
+
outline-offset: calc(var(--focus-ring-width) * -1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
117
129
|
:where([data-control-family="tabs"][data-slot="list"][data-variant="browser"]) {
|
|
118
130
|
--_tabs-browser-corner-double: calc(var(--_tabs-trigger-radius-fit) + var(--_tabs-trigger-radius-fit));
|
|
119
131
|
--_tabs-browser-inset: calc(var(--_tabs-trigger-radius-fit) + var(--cui-tabs-surface-radius));
|