@ctrl-ui/react 0.8.5 → 0.8.7
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/dist/action-bar.js +1 -1
- package/dist/activity.js +1 -1
- package/dist/blocks/coding-agent.js +16 -19
- package/dist/blocks/design-canvas-data.d.ts +32 -0
- package/dist/blocks/design-canvas-data.js +100 -0
- package/dist/blocks/design-canvas-inspector.d.ts +8 -0
- package/dist/blocks/design-canvas-inspector.js +238 -0
- package/dist/blocks/design-canvas.d.ts +17 -0
- package/dist/blocks/design-canvas.js +346 -0
- package/dist/blocks/file-explorer.js +2 -2
- package/dist/blocks/settings.js +2 -2
- package/dist/chat-composer-attachment.d.ts +9 -3
- package/dist/chat-composer-attachment.js +27 -10
- package/dist/chat-composer-editor.js +20 -4
- package/dist/chat-composer.d.ts +1 -1
- package/dist/chat-composer.js +4 -3
- package/dist/chat-layout.js +32 -19
- package/dist/context.js +1 -1
- package/dist/dynamic-notification.js +1 -1
- package/dist/environment-variables.js +1 -1
- package/dist/filter-bar/context.d.ts +32 -0
- package/dist/filter-bar/context.js +11 -0
- package/dist/filter-bar/editor.d.ts +14 -0
- package/dist/filter-bar/editor.js +204 -0
- package/dist/filter-bar/model.d.ts +9 -0
- package/dist/filter-bar/model.js +48 -0
- package/dist/filter-bar/motion.d.ts +10 -0
- package/dist/filter-bar/motion.js +84 -0
- package/dist/filter-bar/parts.d.ts +19 -0
- package/dist/filter-bar/parts.js +233 -0
- package/dist/filter-bar/types.d.ts +53 -0
- package/dist/filter-bar/types.js +0 -0
- package/dist/filter-bar.d.ts +27 -0
- package/dist/filter-bar.js +304 -0
- package/dist/hooks/use-chat-composer.d.ts +3 -1
- package/dist/hooks/use-chat-composer.js +2 -2
- package/dist/hooks/use-dropzone.d.ts +7 -4
- package/dist/hooks/use-dropzone.js +34 -3
- package/dist/inline-attachment.js +8 -14
- package/dist/inline-citation.js +1 -1
- package/dist/knob-contracts/chat-layout-knobs.d.ts +1 -1
- package/dist/knob-contracts/chat-layout-knobs.js +2 -1
- package/dist/knob-contracts/choice-knobs.d.ts +1 -1
- package/dist/knob-contracts/choice-knobs.js +1 -0
- package/dist/knob-contracts/collapsible-knobs.d.ts +1 -1
- package/dist/knob-contracts/collapsible-knobs.js +1 -1
- package/dist/knob-contracts/filter-bar-knobs.d.ts +4 -0
- package/dist/knob-contracts/filter-bar-knobs.js +16 -0
- package/dist/knob-contracts/infinite-canvas-knobs.d.ts +1 -1
- package/dist/knob-contracts/infinite-canvas-knobs.js +3 -0
- package/dist/knob-contracts/page-layout-knobs.d.ts +1 -1
- package/dist/knob-contracts/page-layout-knobs.js +4 -1
- package/dist/knob-contracts/popup-knobs.d.ts +1 -1
- package/dist/knob-contracts/popup-knobs.js +1 -0
- package/dist/knob-contracts/table-of-contents-knobs.d.ts +1 -1
- package/dist/knob-contracts/table-of-contents-knobs.js +3 -5
- package/dist/lib/phone-input-format.js +1 -1
- package/dist/markdown-block.js +11 -7
- package/dist/scripts/contrast-eval.js +5 -4
- package/dist/styles/index.css +5 -4
- package/dist/styles/recipes/button-group.css +1 -1
- package/dist/styles/recipes/button.css +2 -2
- package/dist/styles/recipes/chat-composer.css +14 -6
- package/dist/styles/recipes/chat-layout.css +29 -2
- package/dist/styles/recipes/choice.css +10 -3
- package/dist/styles/recipes/code-diff.css +16 -4
- package/dist/styles/recipes/code.css +11 -5
- package/dist/styles/recipes/collapsible.css +37 -0
- package/dist/styles/recipes/color-picker.css +12 -2
- package/dist/styles/recipes/dockable-panel.css +11 -3
- package/dist/styles/recipes/field-parts.css +62 -0
- package/dist/styles/recipes/field.css +28 -6
- package/dist/styles/recipes/filter-bar.css +174 -0
- package/dist/styles/recipes/infinite-canvas.css +51 -3
- package/dist/styles/recipes/inline-attachment.css +6 -1
- package/dist/styles/recipes/page-layout.css +36 -2
- package/dist/styles/recipes/pagination.css +1 -1
- package/dist/styles/recipes/popup-controls.css +16 -0
- package/dist/styles/recipes/popup-drawer.css +34 -32
- package/dist/styles/recipes/popup-lists.css +11 -2
- package/dist/styles/recipes/popup.css +10 -12
- package/dist/styles/recipes/range.css +1 -1
- package/dist/styles/recipes/resizable.css +34 -0
- package/dist/styles/recipes/spinner.css +4 -0
- package/dist/styles/recipes/table-of-contents.css +42 -42
- package/dist/styles/recipes/tabs.css +21 -0
- package/dist/styles/recipes/track-highlight.css +2 -1
- package/dist/styles/recipes/transcript-divider.css +2 -2
- package/dist/styles/theme.css +250 -91
- package/dist/ui/alert-dialog.js +1 -1
- package/dist/ui/autocomplete.js +5 -1
- package/dist/ui/button.js +2 -2
- package/dist/ui/checkbox-group.js +1 -1
- package/dist/ui/code-diff.js +1 -1
- package/dist/ui/code.js +3 -3
- package/dist/ui/collapsible.js +1 -1
- package/dist/ui/color-picker.js +2 -2
- package/dist/ui/combobox-disabled-selection.d.ts +1 -1
- package/dist/ui/combobox-disabled-selection.js +2 -1
- package/dist/ui/combobox.d.ts +5 -23
- package/dist/ui/combobox.js +26 -14
- package/dist/ui/command.js +9 -1
- package/dist/ui/context-menu.js +1 -1
- package/dist/ui/dialog.js +1 -1
- package/dist/ui/dockable-panel.js +18 -10
- package/dist/ui/drawer.d.ts +7 -4
- package/dist/ui/drawer.js +36 -23
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/dropzone.d.ts +3 -1
- package/dist/ui/dropzone.js +3 -1
- package/dist/ui/field.js +1 -1
- package/dist/ui/hover-card.js +1 -1
- package/dist/ui/infinite-canvas.d.ts +11 -0
- package/dist/ui/infinite-canvas.js +82 -7
- package/dist/ui/input-group.d.ts +2 -1
- package/dist/ui/input-group.js +12 -3
- package/dist/ui/input.js +9 -0
- package/dist/ui/item.js +1 -1
- package/dist/ui/markdown-elements.js +11 -8
- package/dist/ui/menubar.js +1 -1
- package/dist/ui/morphing-panel.js +1 -1
- package/dist/ui/navigation-menu.js +1 -1
- package/dist/ui/number-field.d.ts +1 -1
- package/dist/ui/number-field.js +13 -2
- package/dist/ui/phone-input.js +2 -2
- package/dist/ui/popover.js +1 -1
- package/dist/ui/radio-group.d.ts +1 -0
- package/dist/ui/radio-group.js +11 -1
- package/dist/ui/resizable.d.ts +18 -1
- package/dist/ui/resizable.js +127 -7
- package/dist/ui/responsive-dialog.js +6 -3
- package/dist/ui/rich-tooltip.js +1 -1
- package/dist/ui/scroll-area.d.ts +4 -1
- package/dist/ui/scroll-area.js +2 -1
- package/dist/ui/select.d.ts +2 -1
- package/dist/ui/select.js +58 -33
- package/dist/ui/sheet.js +1 -1
- package/dist/ui/sidebar-menu.js +1 -1
- package/dist/ui/sidebar-provider.js +2 -2
- package/dist/ui/sidebar-resize-rail.js +1 -1
- package/dist/ui/sidebar.js +1 -1
- package/dist/ui/table-of-contents.d.ts +4 -3
- package/dist/ui/table-of-contents.js +126 -47
- package/dist/ui/table.js +11 -7
- package/dist/ui/toast.js +1 -1
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/toggle.js +2 -1
- package/dist/ui/tooltip.js +1 -1
- package/dist/ui/tree.js +1 -1
- package/dist/ui/trigger-menu.js +7 -3
- package/dist/user-ask.js +1 -1
- package/package.json +1 -1
|
@@ -5,10 +5,14 @@
|
|
|
5
5
|
--cui-page-layout-padding-inline: calc(var(--spacing) * 5);
|
|
6
6
|
--cui-page-layout-padding-block: calc(var(--spacing) * 10) calc(var(--spacing) * 24);
|
|
7
7
|
--cui-page-layout-column-gap: calc(var(--spacing) * 5);
|
|
8
|
+
--cui-page-layout-header-start-gap: calc(var(--spacing) * 10);
|
|
8
9
|
--cui-page-layout-header-gap: calc(var(--spacing) * 8);
|
|
9
10
|
--cui-page-layout-header-column-gap: calc(var(--spacing) * 4);
|
|
10
11
|
--cui-page-layout-header-row-gap: calc(var(--spacing) * 2);
|
|
11
12
|
--cui-page-layout-sticky-gap: 0px;
|
|
13
|
+
--cui-page-layout-background: var(--canvas);
|
|
14
|
+
--cui-page-layout-sticky-header-background: oklch(from var(--cui-page-layout-background) l c h / 0.85);
|
|
15
|
+
background: var(--cui-page-layout-background);
|
|
12
16
|
|
|
13
17
|
/* Header and body both read this, so they stop at the same right edge. */
|
|
14
18
|
--cui-page-layout-size: calc(var(--cui-page-layout-article-size) + var(--cui-page-layout-padding-inline) * 2);
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
column-gap: var(--cui-page-layout-header-column-gap);
|
|
39
43
|
row-gap: var(--cui-page-layout-header-row-gap);
|
|
40
44
|
padding-inline: var(--cui-page-layout-padding-inline);
|
|
41
|
-
padding-block
|
|
45
|
+
padding-block: var(--cui-page-layout-header-start-gap) var(--cui-page-layout-header-gap);
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
:where([data-control-family="page-layout"][data-slot="body"]) {
|
|
@@ -52,6 +56,15 @@
|
|
|
52
56
|
padding-block: var(--cui-page-layout-padding-block);
|
|
53
57
|
}
|
|
54
58
|
|
|
59
|
+
/* A flow or sticky header owns the leading space, so header-gap stays the only gap above the body.
|
|
60
|
+
A floating header is zero-height and overlays the body, so the body keeps its own lead. */
|
|
61
|
+
:where(
|
|
62
|
+
[data-control-family="page-layout"][data-slot="header"]:not([data-variant="floating"])
|
|
63
|
+
+ [data-control-family="page-layout"][data-slot="body"]
|
|
64
|
+
) {
|
|
65
|
+
padding-block-start: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
55
68
|
:where([data-control-family="page-layout"][data-slot="title"]) {
|
|
56
69
|
grid-area: title;
|
|
57
70
|
font-size: var(--text-heading-1);
|
|
@@ -87,6 +100,9 @@
|
|
|
87
100
|
position: sticky;
|
|
88
101
|
top: var(--cui-page-layout-sticky-gap);
|
|
89
102
|
z-index: 20;
|
|
103
|
+
background: var(--cui-page-layout-sticky-header-background);
|
|
104
|
+
-webkit-backdrop-filter: blur(12px);
|
|
105
|
+
backdrop-filter: blur(12px);
|
|
90
106
|
}
|
|
91
107
|
|
|
92
108
|
/* Zero height: the band hangs over the body instead of displacing it. */
|
|
@@ -96,7 +112,7 @@
|
|
|
96
112
|
z-index: 20;
|
|
97
113
|
align-items: start;
|
|
98
114
|
height: 0;
|
|
99
|
-
padding-block
|
|
115
|
+
padding-block: 0;
|
|
100
116
|
pointer-events: none;
|
|
101
117
|
}
|
|
102
118
|
|
|
@@ -173,6 +189,12 @@
|
|
|
173
189
|
initial-value: 0px;
|
|
174
190
|
}
|
|
175
191
|
|
|
192
|
+
@property --cui-page-layout-header-start-gap {
|
|
193
|
+
syntax: "<length>";
|
|
194
|
+
inherits: true;
|
|
195
|
+
initial-value: 0px;
|
|
196
|
+
}
|
|
197
|
+
|
|
176
198
|
@property --cui-page-layout-header-gap {
|
|
177
199
|
syntax: "<length>";
|
|
178
200
|
inherits: true;
|
|
@@ -201,3 +223,15 @@
|
|
|
201
223
|
inherits: true;
|
|
202
224
|
initial-value: 0px;
|
|
203
225
|
}
|
|
226
|
+
|
|
227
|
+
@property --cui-page-layout-background {
|
|
228
|
+
syntax: "<color>";
|
|
229
|
+
inherits: true;
|
|
230
|
+
initial-value: transparent;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
@property --cui-page-layout-sticky-header-background {
|
|
234
|
+
syntax: "<color>";
|
|
235
|
+
inherits: true;
|
|
236
|
+
initial-value: transparent;
|
|
237
|
+
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
:where([data-control-family="pagination"][data-slot="link"][data-active="true"]) {
|
|
28
|
-
--cui-pagination-link-background:
|
|
28
|
+
--cui-pagination-link-background: var(--control-fill);
|
|
29
29
|
--_pagination-link-border-color: var(--border);
|
|
30
30
|
--cui-pagination-link-shadow: var(--shadow-sm);
|
|
31
31
|
}
|
|
@@ -7,6 +7,22 @@
|
|
|
7
7
|
outline-style: none;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
:where([data-control-family="popup"][data-popup-kind="hover-card"][data-slot="trigger"]:is(a)) {
|
|
11
|
+
border-radius: var(--radius-sm);
|
|
12
|
+
color: var(--foreground);
|
|
13
|
+
font-weight: var(--font-weight-medium);
|
|
14
|
+
text-decoration-line: underline;
|
|
15
|
+
text-decoration-color: var(--border);
|
|
16
|
+
text-decoration-thickness: 1px;
|
|
17
|
+
text-underline-offset: 2px;
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
transition: text-decoration-color var(--duration-fast) var(--ease-standard);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:where([data-control-family="popup"][data-popup-kind="hover-card"][data-slot="trigger"]:is(a):is(:hover, [data-popup-open])) {
|
|
23
|
+
text-decoration-color: var(--foreground);
|
|
24
|
+
}
|
|
25
|
+
|
|
10
26
|
:where([data-control-family="popup"][data-popup-kind="navigation-menu"][data-slot="link"]) {
|
|
11
27
|
text-decoration-line: none;
|
|
12
28
|
}
|
|
@@ -1,43 +1,46 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-popup-part="surface"]) {
|
|
3
|
-
/* The
|
|
3
|
+
/* The edge is a real border drawn only on the sides the variant exposes, so the popup's inset ring stays off. */
|
|
4
4
|
--cui-popup-radius: var(--radius-panel);
|
|
5
5
|
--cui-popup-background: var(--background);
|
|
6
6
|
--cui-popup-foreground: var(--foreground);
|
|
7
|
-
--cui-popup-
|
|
8
|
-
--cui-popup-
|
|
7
|
+
--cui-popup-shadow: var(--shadow-overlay);
|
|
8
|
+
--cui-popup-backdrop-filter: none;
|
|
9
9
|
--_drawer-content-closed-translate: 0 100%;
|
|
10
|
+
--_drawer-edge-inset-end: calc(var(--spacing) * 4);
|
|
10
11
|
border: 0 solid var(--cui-popup-border-color);
|
|
11
12
|
border-radius: 0;
|
|
13
|
+
box-shadow: var(--cui-popup-shadow);
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-popup-part="surface"][data-surface-variant="card"]) {
|
|
15
17
|
--cui-popup-background: var(--card);
|
|
18
|
+
--cui-popup-foreground: var(--card-foreground);
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-variant="floating"]) {
|
|
19
|
-
border-width:
|
|
22
|
+
border-width: var(--cui-popup-border-width);
|
|
20
23
|
border-radius: var(--cui-popup-radius);
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-variant="edge"][data-side="bottom"]) {
|
|
24
|
-
border-top-width:
|
|
27
|
+
border-top-width: var(--cui-popup-border-width);
|
|
25
28
|
border-radius: var(--cui-popup-radius) var(--cui-popup-radius) 0 0;
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-variant="edge"][data-side="top"]) {
|
|
29
|
-
border-bottom-width:
|
|
32
|
+
border-bottom-width: var(--cui-popup-border-width);
|
|
30
33
|
--_drawer-content-closed-translate: 0 -100%;
|
|
31
34
|
border-radius: 0 0 var(--cui-popup-radius) var(--cui-popup-radius);
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-variant="edge"][data-side="right"]) {
|
|
35
|
-
border-left-width:
|
|
38
|
+
border-left-width: var(--cui-popup-border-width);
|
|
36
39
|
--_drawer-content-closed-translate: 100% 0;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-variant="edge"][data-side="left"]) {
|
|
40
|
-
border-right-width:
|
|
43
|
+
border-right-width: var(--cui-popup-border-width);
|
|
41
44
|
--_drawer-content-closed-translate: -100% 0;
|
|
42
45
|
}
|
|
43
46
|
|
|
@@ -74,10 +77,19 @@
|
|
|
74
77
|
margin-block: calc(var(--spacing) * 1) calc(var(--spacing) * 2.5);
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="
|
|
80
|
+
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="body"]) {
|
|
78
81
|
gap: calc(var(--spacing) * 4);
|
|
79
82
|
}
|
|
80
83
|
|
|
84
|
+
/* Block padding lives inside the scroller, never on the popup: the scroll edge would clip a focus ring on the first or last row. */
|
|
85
|
+
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="body"][data-padding="default"]) {
|
|
86
|
+
padding-block: calc(var(--spacing) * 4);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="body"][data-padding="default"]:last-child) {
|
|
90
|
+
padding-block-end: var(--_drawer-edge-inset-end);
|
|
91
|
+
}
|
|
92
|
+
|
|
81
93
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="viewport"][data-variant="floating"]) {
|
|
82
94
|
padding: calc(var(--spacing) * 2);
|
|
83
95
|
}
|
|
@@ -94,35 +106,22 @@
|
|
|
94
106
|
text-wrap: pretty;
|
|
95
107
|
}
|
|
96
108
|
|
|
97
|
-
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-padding="default"][data-side="top"]) {
|
|
102
|
-
padding-block-start: calc(var(--spacing) * 4);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
:where(
|
|
106
|
-
[data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-padding="default"]:is(
|
|
107
|
-
[data-side="left"],
|
|
108
|
-
[data-side="right"]
|
|
109
|
-
)
|
|
110
|
-
) {
|
|
111
|
-
padding-block: calc(var(--spacing) * 4);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="footer"]) {
|
|
115
|
-
gap: calc(var(--spacing) * 2);
|
|
116
|
-
padding-inline: calc(var(--spacing) * 4);
|
|
109
|
+
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-side="bottom"]) {
|
|
110
|
+
--_drawer-edge-inset-end: max(calc(var(--spacing) * 4), env(safe-area-inset-bottom));
|
|
117
111
|
}
|
|
118
112
|
|
|
119
113
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="header"]) {
|
|
120
114
|
gap: calc(var(--spacing) * 1.5);
|
|
121
|
-
padding
|
|
115
|
+
padding: calc(var(--spacing) * 4) calc(var(--spacing) * 4) 0;
|
|
122
116
|
--_drawer-header-text-align: center;
|
|
123
117
|
text-align: var(--_drawer-header-text-align);
|
|
124
118
|
}
|
|
125
119
|
|
|
120
|
+
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="footer"]) {
|
|
121
|
+
gap: calc(var(--spacing) * 2);
|
|
122
|
+
padding: 0 calc(var(--spacing) * 4) var(--_drawer-edge-inset-end);
|
|
123
|
+
}
|
|
124
|
+
|
|
126
125
|
@media (width >= 40rem) {
|
|
127
126
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="header"]) {
|
|
128
127
|
--_drawer-header-text-align: left;
|
|
@@ -131,15 +130,18 @@
|
|
|
131
130
|
}
|
|
132
131
|
|
|
133
132
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"]) {
|
|
134
|
-
gap: calc(var(--spacing) * 4);
|
|
135
133
|
outline-style: none;
|
|
136
134
|
transform: translate(var(--drawer-swipe-movement-x, 0), var(--drawer-swipe-movement-y, 0));
|
|
137
|
-
transition-property: transform, translate, scale, rotate;
|
|
135
|
+
transition-property: transform, translate, scale, rotate, filter;
|
|
138
136
|
--_drawer-content-transition-duration: var(--duration-base);
|
|
139
137
|
transition-duration: var(--_drawer-content-transition-duration);
|
|
140
138
|
transition-timing-function: var(--ease-emphasized);
|
|
141
139
|
}
|
|
142
140
|
|
|
141
|
+
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-nested-drawer-open]) {
|
|
142
|
+
filter: brightness(0.95);
|
|
143
|
+
}
|
|
144
|
+
|
|
143
145
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-starting-style]),
|
|
144
146
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-ending-style]) {
|
|
145
147
|
translate: var(--_drawer-content-closed-translate);
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
outline-style: none;
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
:where([data-control-family="popup"][data-
|
|
147
|
+
:where([data-control-family="popup"][data-slot="item-text"]) {
|
|
148
148
|
gap: calc(var(--spacing) * 2);
|
|
149
149
|
}
|
|
150
150
|
|
|
@@ -190,8 +190,17 @@
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
:where([data-control-family="popup"][data-popup-part="bar"]) {
|
|
193
|
+
--_popup-bar-item-radius: min(var(--cui-popup-item-radius), calc(var(--control-h-sm) / 2));
|
|
194
|
+
--_popup-bar-padding: calc(var(--spacing) * 1);
|
|
195
|
+
--cui-popup-radius: calc(
|
|
196
|
+
var(--_popup-bar-item-radius) +
|
|
197
|
+
clamp(0px, calc(var(--_popup-bar-item-radius) * 1000), var(--_popup-bar-padding))
|
|
198
|
+
);
|
|
199
|
+
--nest-radius: var(--_popup-bar-item-radius);
|
|
200
|
+
padding: var(--_popup-bar-padding);
|
|
193
201
|
gap: calc(var(--spacing) * 0.5);
|
|
194
|
-
|
|
202
|
+
--cui-popup-background: var(--card);
|
|
203
|
+
--cui-popup-shadow: var(--shadow-xs);
|
|
195
204
|
}
|
|
196
205
|
|
|
197
206
|
:where([data-control-family="popup"][data-popup-kind="navigation-menu"][data-slot="list"]) {
|
|
@@ -59,8 +59,9 @@
|
|
|
59
59
|
:where([data-control-family="popup"][data-popup-part="backdrop"]) {
|
|
60
60
|
--cui-popup-backdrop-background: oklch(from var(--foreground) l c h / var(--overlay-opacity));
|
|
61
61
|
background-color: var(--cui-popup-backdrop-background);
|
|
62
|
-
-
|
|
63
|
-
backdrop-filter:
|
|
62
|
+
--cui-popup-backdrop-blur: blur(var(--backdrop-blur-overlay));
|
|
63
|
+
-webkit-backdrop-filter: var(--cui-popup-backdrop-blur);
|
|
64
|
+
backdrop-filter: var(--cui-popup-backdrop-blur);
|
|
64
65
|
transition: opacity var(--duration-base) var(--ease-emphasized);
|
|
65
66
|
}
|
|
66
67
|
:where(.dark [data-control-family="popup"][data-popup-part="backdrop"]) {
|
|
@@ -72,11 +73,6 @@
|
|
|
72
73
|
:where([data-control-family="popup"][data-popup-part="list-surface"]) {
|
|
73
74
|
padding: var(--popover-padding);
|
|
74
75
|
}
|
|
75
|
-
:where([data-control-family="popup"][data-popup-part="bar"]) {
|
|
76
|
-
--cui-popup-radius: var(--radius-control);
|
|
77
|
-
--cui-popup-background: var(--card);
|
|
78
|
-
--cui-popup-shadow: var(--shadow-xs);
|
|
79
|
-
}
|
|
80
76
|
:where([data-control-family="popup"][data-popup-part="surface"][data-surface="modal"]) {
|
|
81
77
|
--cui-popup-radius: var(--radius-panel);
|
|
82
78
|
--cui-popup-shadow: var(--shadow-modal);
|
|
@@ -90,7 +86,7 @@
|
|
|
90
86
|
|
|
91
87
|
:where([data-control-family="popup"][data-popup-kind="sheet"][data-popup-part="surface"]) {
|
|
92
88
|
--cui-popup-radius: 0px;
|
|
93
|
-
--cui-popup-shadow: var(--shadow-
|
|
89
|
+
--cui-popup-shadow: var(--shadow-overlay);
|
|
94
90
|
}
|
|
95
91
|
|
|
96
92
|
:where([data-control-family="popup"][data-popup-kind="dialog"][data-slot="title"]),
|
|
@@ -217,10 +213,7 @@
|
|
|
217
213
|
transition-timing-function: var(--ease-emphasized);
|
|
218
214
|
}
|
|
219
215
|
|
|
220
|
-
:where(
|
|
221
|
-
[data-control-family="button"][data-popup-kind="select"][data-slot="trigger"][data-popup-open]
|
|
222
|
-
[data-control-family="popup"][data-popup-kind="select"][data-slot="icon"]
|
|
223
|
-
),
|
|
216
|
+
:where([data-control-family="popup"][data-popup-kind="select"][data-slot="icon"][data-popup-open]),
|
|
224
217
|
:where(
|
|
225
218
|
[data-control-family="button"][data-popup-kind="navigation-menu"][data-slot="trigger"][data-popup-open]
|
|
226
219
|
:where([data-control-family="popup"][data-popup-kind="navigation-menu"][data-slot="icon"])
|
|
@@ -343,6 +336,11 @@
|
|
|
343
336
|
initial-value: transparent;
|
|
344
337
|
}
|
|
345
338
|
|
|
339
|
+
@property --cui-popup-backdrop-blur {
|
|
340
|
+
syntax: "*";
|
|
341
|
+
inherits: true;
|
|
342
|
+
}
|
|
343
|
+
|
|
346
344
|
@property --cui-popup-item-radius {
|
|
347
345
|
syntax: "<length-percentage>";
|
|
348
346
|
inherits: true;
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
:where([data-control-family="range"][data-range-kind="slider"][data-slot="root"][data-variant="plain"]) {
|
|
42
42
|
--cui-range-track-radius: 3px;
|
|
43
43
|
--cui-range-track-background: var(--hover-fill);
|
|
44
|
-
--cui-range-indicator-radius:
|
|
44
|
+
--cui-range-indicator-radius: var(--cui-range-track-radius);
|
|
45
45
|
--cui-range-indicator-background: oklch(from var(--foreground) l c h / 0.14);
|
|
46
46
|
--cui-range-thumb-radius: 1px;
|
|
47
47
|
--cui-range-thumb-background: oklch(from var(--foreground) l c h / 0.3);
|
|
@@ -30,6 +30,40 @@
|
|
|
30
30
|
outline-style: none;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
:where([data-control-family="resizable"][data-slot="handle"][data-axis="vertical"]:not([data-cursor="none"])) {
|
|
34
|
+
cursor: col-resize;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:where([data-control-family="resizable"][data-slot="handle"][data-axis="horizontal"]:not([data-cursor="none"])) {
|
|
38
|
+
cursor: row-resize;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* biome-ignore-start lint/complexity/noImportantStyles: Resize drag cursor must beat every cursor under the pointer. */
|
|
42
|
+
:where(
|
|
43
|
+
:root:has(
|
|
44
|
+
[data-control-family="resizable"][data-slot="handle"][data-axis="vertical"]:not([data-cursor="none"]):is(
|
|
45
|
+
[data-separator="hover"],
|
|
46
|
+
[data-separator="active"]
|
|
47
|
+
)
|
|
48
|
+
)
|
|
49
|
+
*
|
|
50
|
+
) {
|
|
51
|
+
cursor: col-resize !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
:where(
|
|
55
|
+
:root:has(
|
|
56
|
+
[data-control-family="resizable"][data-slot="handle"][data-axis="horizontal"]:not([data-cursor="none"]):is(
|
|
57
|
+
[data-separator="hover"],
|
|
58
|
+
[data-separator="active"]
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
*
|
|
62
|
+
) {
|
|
63
|
+
cursor: row-resize !important;
|
|
64
|
+
}
|
|
65
|
+
/* biome-ignore-end lint/complexity/noImportantStyles: Resize drag cursor must beat every cursor under the pointer. */
|
|
66
|
+
|
|
33
67
|
:where([data-control-family="resizable"][data-slot="handle"][data-variant="solid"]) {
|
|
34
68
|
background-color: var(--border);
|
|
35
69
|
}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
color: var(--cui-spinner-foreground);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
:where([data-control-family="button"] [data-control-family="spinner"][data-slot="root"]) {
|
|
8
|
+
--cui-spinner-foreground: currentColor;
|
|
9
|
+
}
|
|
10
|
+
|
|
7
11
|
:where([data-control-family="spinner"][data-slot="indicator"]) {
|
|
8
12
|
inline-size: calc(var(--spacing) * 4);
|
|
9
13
|
block-size: calc(var(--spacing) * 4);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
--cui-table-of-contents-label-gap: calc(var(--spacing) * 3);
|
|
14
14
|
--cui-table-of-contents-item-foreground: var(--muted-foreground);
|
|
15
15
|
--cui-table-of-contents-item-hover-foreground: var(--foreground);
|
|
16
|
-
--cui-table-of-contents-item-active-foreground: var(--
|
|
16
|
+
--cui-table-of-contents-item-active-foreground: var(--primary-text);
|
|
17
17
|
--cui-table-of-contents-item-font-size: var(--text-body);
|
|
18
18
|
--cui-table-of-contents-item-line-height: var(--leading-normal);
|
|
19
19
|
--cui-table-of-contents-item-font-weight: var(--font-weight-normal);
|
|
@@ -21,13 +21,11 @@
|
|
|
21
21
|
--cui-table-of-contents-item-padding-block: calc(var(--spacing) * 1.5);
|
|
22
22
|
--cui-table-of-contents-item-padding-inline: calc(var(--spacing) * 3);
|
|
23
23
|
--cui-table-of-contents-item-indent-size: calc(var(--spacing) * 2);
|
|
24
|
-
--cui-table-of-contents-rail-
|
|
24
|
+
--cui-table-of-contents-rail-stroke: var(--border);
|
|
25
25
|
--cui-table-of-contents-rail-size: 1px;
|
|
26
|
-
--cui-table-of-contents-trail-
|
|
26
|
+
--cui-table-of-contents-trail-stroke: var(--primary-text);
|
|
27
27
|
--cui-table-of-contents-trail-size: 2px;
|
|
28
|
-
--cui-table-of-contents-
|
|
29
|
-
--cui-table-of-contents-highlight-radius: var(--radius-popup-item);
|
|
30
|
-
--cui-table-of-contents-highlight-background: var(--active-fill);
|
|
28
|
+
--cui-table-of-contents-indicator-foreground: var(--cui-table-of-contents-trail-stroke);
|
|
31
29
|
border: var(--cui-table-of-contents-border-width) solid var(--cui-table-of-contents-border-color);
|
|
32
30
|
border-radius: var(--cui-table-of-contents-radius);
|
|
33
31
|
background-color: var(--cui-table-of-contents-background);
|
|
@@ -47,8 +45,41 @@
|
|
|
47
45
|
}
|
|
48
46
|
|
|
49
47
|
:where([data-control-family="table-of-contents"][data-slot="rail"]) {
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
fill: none;
|
|
49
|
+
stroke: var(--cui-table-of-contents-rail-stroke);
|
|
50
|
+
stroke-width: var(--cui-table-of-contents-rail-size);
|
|
51
|
+
stroke-linejoin: round;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
:where([data-control-family="table-of-contents"][data-slot="trail"]) {
|
|
55
|
+
fill: none;
|
|
56
|
+
stroke: var(--cui-table-of-contents-trail-stroke);
|
|
57
|
+
stroke-width: var(--cui-table-of-contents-trail-size);
|
|
58
|
+
stroke-linecap: round;
|
|
59
|
+
stroke-linejoin: round;
|
|
60
|
+
stroke-dasharray: var(--_toc-trail-length) var(--_toc-rail-length);
|
|
61
|
+
stroke-dashoffset: calc(-1 * var(--_toc-trail-start));
|
|
62
|
+
opacity: 0;
|
|
63
|
+
transition-property: stroke-dasharray, stroke-dashoffset, opacity;
|
|
64
|
+
transition-duration: var(--duration-base);
|
|
65
|
+
transition-timing-function: var(--ease-standard);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:where([data-control-family="table-of-contents"][data-slot="indicator"]) {
|
|
69
|
+
display: grid;
|
|
70
|
+
place-items: center;
|
|
71
|
+
color: var(--cui-table-of-contents-indicator-foreground);
|
|
72
|
+
offset-distance: var(--_toc-indicator-distance);
|
|
73
|
+
offset-rotate: 0deg;
|
|
74
|
+
opacity: 0;
|
|
75
|
+
transition-property: offset-distance, opacity;
|
|
76
|
+
transition-duration: var(--duration-base);
|
|
77
|
+
transition-timing-function: var(--ease-standard);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
:where([data-control-family="table-of-contents"][data-slot="trail"][data-visible]),
|
|
81
|
+
:where([data-control-family="table-of-contents"][data-slot="indicator"][data-visible]) {
|
|
82
|
+
opacity: 1;
|
|
52
83
|
}
|
|
53
84
|
|
|
54
85
|
:where([data-control-family="table-of-contents"][data-slot="item"]) {
|
|
@@ -83,25 +114,6 @@
|
|
|
83
114
|
:where([data-control-family="table-of-contents"][data-slot="item"][data-active]) {
|
|
84
115
|
color: var(--cui-table-of-contents-item-active-foreground);
|
|
85
116
|
}
|
|
86
|
-
|
|
87
|
-
:where([data-control-family="table-of-contents"][data-slot="root"] [data-control-family="track-highlight"][data-slot="root"]) {
|
|
88
|
-
--cui-track-highlight-transition-duration: var(--duration-base);
|
|
89
|
-
--cui-track-highlight-radius: var(--cui-table-of-contents-highlight-radius);
|
|
90
|
-
--cui-track-highlight-background: var(--cui-table-of-contents-highlight-background);
|
|
91
|
-
--cui-track-highlight-ring-color: transparent;
|
|
92
|
-
--cui-track-highlight-shadow: none;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
:where([data-control-family="table-of-contents"][data-slot="root"][data-variant="trail"]) {
|
|
96
|
-
--cui-table-of-contents-highlight-radius: 0px;
|
|
97
|
-
--cui-table-of-contents-highlight-background: transparent;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
:where([data-control-family="table-of-contents"][data-slot="trail"]) {
|
|
101
|
-
inline-size: var(--cui-table-of-contents-trail-size);
|
|
102
|
-
border-radius: var(--cui-table-of-contents-trail-radius);
|
|
103
|
-
background-color: var(--cui-table-of-contents-trail-background);
|
|
104
|
-
}
|
|
105
117
|
}
|
|
106
118
|
|
|
107
119
|
@property --cui-table-of-contents-background {
|
|
@@ -230,7 +242,7 @@
|
|
|
230
242
|
initial-value: 0px;
|
|
231
243
|
}
|
|
232
244
|
|
|
233
|
-
@property --cui-table-of-contents-rail-
|
|
245
|
+
@property --cui-table-of-contents-rail-stroke {
|
|
234
246
|
syntax: "<color>";
|
|
235
247
|
inherits: true;
|
|
236
248
|
initial-value: transparent;
|
|
@@ -242,7 +254,7 @@
|
|
|
242
254
|
initial-value: 0px;
|
|
243
255
|
}
|
|
244
256
|
|
|
245
|
-
@property --cui-table-of-contents-trail-
|
|
257
|
+
@property --cui-table-of-contents-trail-stroke {
|
|
246
258
|
syntax: "<color>";
|
|
247
259
|
inherits: true;
|
|
248
260
|
initial-value: transparent;
|
|
@@ -254,19 +266,7 @@
|
|
|
254
266
|
initial-value: 0px;
|
|
255
267
|
}
|
|
256
268
|
|
|
257
|
-
@property --cui-table-of-contents-
|
|
258
|
-
syntax: "<length-percentage>";
|
|
259
|
-
inherits: true;
|
|
260
|
-
initial-value: 0px;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
@property --cui-table-of-contents-highlight-radius {
|
|
264
|
-
syntax: "<length-percentage>";
|
|
265
|
-
inherits: true;
|
|
266
|
-
initial-value: 0px;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
@property --cui-table-of-contents-highlight-background {
|
|
269
|
+
@property --cui-table-of-contents-indicator-foreground {
|
|
270
270
|
syntax: "<color>";
|
|
271
271
|
inherits: true;
|
|
272
272
|
initial-value: transparent;
|
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
--cui-tabs-border-color: var(--border);
|
|
17
17
|
--cui-tabs-border-width: 1px;
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
:where([data-control-family="tabs"][data-slot="root"][data-orientation="vertical"]) {
|
|
21
|
+
display: flex;
|
|
22
|
+
gap: calc(var(--spacing) * 4);
|
|
23
|
+
}
|
|
24
|
+
|
|
19
25
|
:where([data-control-family="tabs"][data-slot="list"]) {
|
|
20
26
|
--_tabs-trigger-radius-fit: min(var(--cui-tabs-trigger-radius), calc(var(--_tabs-trigger-h) / 2));
|
|
21
27
|
position: relative;
|
|
@@ -100,6 +106,7 @@
|
|
|
100
106
|
/* One trigger radius for the flare, plus the surface corner arc it must clear. */
|
|
101
107
|
--_tabs-browser-inset: calc(var(--_tabs-trigger-radius-fit) + var(--radius-panel));
|
|
102
108
|
min-height: calc(var(--_tabs-trigger-h) + var(--cui-tabs-list-padding));
|
|
109
|
+
width: auto;
|
|
103
110
|
align-items: flex-end;
|
|
104
111
|
isolation: isolate;
|
|
105
112
|
/* The slide machinery promotes the surface wrapper mid-switch — the strip stays above it. */
|
|
@@ -172,6 +179,20 @@
|
|
|
172
179
|
outline-style: none;
|
|
173
180
|
}
|
|
174
181
|
|
|
182
|
+
:where(
|
|
183
|
+
[data-control-family="tabs"][data-slot="list"][data-orientation="horizontal"]:not([data-variant="browser"]) ~ [data-slot="panel"]
|
|
184
|
+
) {
|
|
185
|
+
margin-block-start: calc(var(--spacing) * 3);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
:where([data-control-family="tabs"][data-slot="list"][data-variant="browser"] ~ [data-slot="panel"]) {
|
|
189
|
+
border: var(--cui-tabs-border-width) solid var(--cui-tabs-border-color);
|
|
190
|
+
border-top: none;
|
|
191
|
+
border-radius: 0 0 var(--radius-panel) var(--radius-panel);
|
|
192
|
+
background: var(--cui-tabs-indicator-background);
|
|
193
|
+
padding: calc(var(--spacing) * 4);
|
|
194
|
+
}
|
|
195
|
+
|
|
175
196
|
:where([data-control-family="tabs"][data-slot="list"][data-variant="browser"] [data-control-family="tabs"][data-slot="tab"]) {
|
|
176
197
|
border-top-left-radius: var(--_tabs-trigger-radius-fit);
|
|
177
198
|
border-top-right-radius: var(--_tabs-trigger-radius-fit);
|
|
@@ -59,7 +59,8 @@
|
|
|
59
59
|
[data-control-family="checkbox-group"]
|
|
60
60
|
)
|
|
61
61
|
> [data-control-family="track-highlight"]
|
|
62
|
-
)
|
|
62
|
+
),
|
|
63
|
+
:where([data-track]:has(> [data-control-family="button"][data-track-item]) > [data-control-family="track-highlight"]) {
|
|
63
64
|
--cui-track-highlight-radius: var(--radius-control);
|
|
64
65
|
}
|
|
65
66
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
--cui-transcript-divider-foreground: var(--muted-foreground);
|
|
4
4
|
--cui-transcript-divider-line-color: var(--border);
|
|
5
5
|
--cui-transcript-divider-danger-foreground: var(--destructive-text);
|
|
6
|
-
--cui-transcript-divider-success-foreground: var(--
|
|
7
|
-
--cui-transcript-divider-warning-foreground: var(--
|
|
6
|
+
--cui-transcript-divider-success-foreground: var(--success-text);
|
|
7
|
+
--cui-transcript-divider-warning-foreground: var(--warning-text);
|
|
8
8
|
margin-block: calc(var(--spacing) * 2);
|
|
9
9
|
color: var(--cui-transcript-divider-foreground);
|
|
10
10
|
font-size: var(--text-caption);
|