@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
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
--cui-choice-radius: var(--radius-sm);
|
|
7
7
|
--cui-choice-shadow: var(--shadow-sm);
|
|
8
8
|
--cui-choice-border-color: var(--border);
|
|
9
|
+
--cui-choice-border-width: 1px;
|
|
9
10
|
--cui-choice-checked-background: var(--primary);
|
|
10
11
|
--cui-choice-checked-border-color: var(--primary);
|
|
11
|
-
--_choice-background:
|
|
12
|
+
--_choice-background: var(--control-fill);
|
|
12
13
|
border-radius: var(--cui-choice-radius);
|
|
13
14
|
background: var(--_choice-background);
|
|
14
15
|
box-shadow:
|
|
15
|
-
inset 0 0 0
|
|
16
|
+
inset 0 0 0 var(--cui-choice-border-width) var(--cui-choice-border-color),
|
|
16
17
|
var(--cui-choice-shadow);
|
|
17
18
|
color: currentColor;
|
|
18
19
|
outline: none;
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
:where([data-control-family="choice"][data-choice-kind="radio-group"][data-slot="item"][data-invalid]) {
|
|
48
49
|
--cui-choice-border-color: var(--destructive);
|
|
49
50
|
box-shadow:
|
|
50
|
-
inset 0 0 0
|
|
51
|
+
inset 0 0 0 var(--cui-choice-border-width) var(--cui-choice-border-color),
|
|
51
52
|
var(--shadow-sm),
|
|
52
53
|
0 0 0 1px var(--destructive);
|
|
53
54
|
}
|
|
@@ -108,6 +109,12 @@
|
|
|
108
109
|
initial-value: transparent;
|
|
109
110
|
}
|
|
110
111
|
|
|
112
|
+
@property --cui-choice-border-width {
|
|
113
|
+
syntax: "<length>";
|
|
114
|
+
inherits: true;
|
|
115
|
+
initial-value: 1px;
|
|
116
|
+
}
|
|
117
|
+
|
|
111
118
|
@property --cui-choice-checked-background {
|
|
112
119
|
syntax: "<color>";
|
|
113
120
|
inherits: true;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
:where([data-control-family="code-diff"][data-slot="root"]) {
|
|
3
|
-
margin-block: calc(var(--spacing) * 4);
|
|
4
3
|
--cui-code-diff-background: var(--background);
|
|
5
4
|
--cui-code-diff-border-color: var(--border);
|
|
6
5
|
--cui-code-diff-border-width: 1px;
|
|
7
|
-
--
|
|
6
|
+
--_code-diff-corner-inset: calc(var(--spacing) * 1.5);
|
|
7
|
+
--cui-code-diff-radius: min(
|
|
8
|
+
var(--radius-panel),
|
|
9
|
+
calc(var(--control-h-xs) / 2 + var(--cui-code-diff-border-width) + var(--_code-diff-corner-inset))
|
|
10
|
+
);
|
|
8
11
|
--cui-code-diff-shadow: var(--shadow-sm);
|
|
9
12
|
--cui-code-diff-foreground: var(--code-foreground);
|
|
10
13
|
--cui-code-diff-add-background: var(--diff-add-line);
|
|
@@ -23,21 +26,30 @@
|
|
|
23
26
|
|
|
24
27
|
:where([data-control-family="code-diff"]:is([data-slot="header"], [data-slot="file-header"])) {
|
|
25
28
|
gap: calc(var(--spacing) * 3);
|
|
26
|
-
padding-block: calc(var(--spacing) * 1.5);
|
|
27
|
-
padding-inline: calc(var(--spacing) * 3);
|
|
28
29
|
border-bottom: 1px solid var(--border);
|
|
29
30
|
background: var(--diff-gutter-bg);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
:where([data-control-family="code-diff"][data-slot="header"]) {
|
|
33
34
|
min-block-size: calc(var(--spacing) * 10);
|
|
35
|
+
padding-block: var(--_code-diff-corner-inset);
|
|
36
|
+
padding-inline: calc(var(--spacing) * 3) var(--_code-diff-corner-inset);
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
:where([data-control-family="code-diff"][data-slot="file-header"]) {
|
|
37
40
|
min-block-size: calc(var(--spacing) * 9);
|
|
41
|
+
padding-block: calc(var(--spacing) * 1.5);
|
|
42
|
+
padding-inline: calc(var(--spacing) * 3);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:where([data-control-family="code-diff"][data-slot="root"] > [data-control-family="button"][data-code-floating="true"]) {
|
|
46
|
+
--nest-radius: max(0px, calc(var(--cui-code-diff-radius) - var(--cui-code-diff-border-width) - var(--_code-diff-corner-inset)));
|
|
47
|
+
inset-block-start: var(--_code-diff-corner-inset);
|
|
48
|
+
inset-inline-end: var(--_code-diff-corner-inset);
|
|
38
49
|
}
|
|
39
50
|
|
|
40
51
|
:where([data-control-family="code-diff"][data-slot="actions"]) {
|
|
52
|
+
--nest-radius: max(0px, calc(var(--cui-code-diff-radius) - var(--cui-code-diff-border-width) - var(--_code-diff-corner-inset)));
|
|
41
53
|
gap: calc(var(--spacing) * 2);
|
|
42
54
|
}
|
|
43
55
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
:where([data-control-family="code"][data-slot="root"]) {
|
|
3
|
-
margin-block: calc(var(--spacing) * 4);
|
|
4
3
|
--cui-code-background: var(--background);
|
|
5
4
|
--cui-code-border-color: var(--control-rim);
|
|
6
5
|
--cui-code-border-width: 1px;
|
|
7
|
-
--
|
|
6
|
+
--_code-corner-inset: calc(var(--spacing) * 1.5);
|
|
7
|
+
--cui-code-radius: min(var(--radius-panel), calc(var(--control-h-xs) / 2 + var(--cui-code-border-width) + var(--_code-corner-inset)));
|
|
8
8
|
--cui-code-shadow: var(--shadow-sm);
|
|
9
9
|
--cui-code-text-foreground: var(--code-foreground);
|
|
10
10
|
--cui-code-title-foreground: var(--muted-foreground);
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
:where([data-control-family="code"][data-slot="root"][data-chrome="embedded"]) {
|
|
22
|
-
margin-block: 0;
|
|
23
22
|
border: 0;
|
|
24
23
|
border-radius: 0;
|
|
25
24
|
background: transparent;
|
|
@@ -29,12 +28,19 @@
|
|
|
29
28
|
:where([data-control-family="code"][data-slot="header"]) {
|
|
30
29
|
min-block-size: calc(var(--spacing) * 10);
|
|
31
30
|
gap: calc(var(--spacing) * 3);
|
|
32
|
-
padding-block:
|
|
33
|
-
padding-inline: calc(var(--spacing) * 3);
|
|
31
|
+
padding-block: var(--_code-corner-inset);
|
|
32
|
+
padding-inline: calc(var(--spacing) * 3) var(--_code-corner-inset);
|
|
34
33
|
border-bottom: 1px solid var(--border);
|
|
35
34
|
}
|
|
36
35
|
|
|
36
|
+
:where([data-control-family="code"][data-slot="floating-frame"] > [data-control-family="button"][data-code-floating="true"]) {
|
|
37
|
+
--nest-radius: max(0px, calc(var(--cui-code-radius) - var(--cui-code-border-width) - var(--_code-corner-inset)));
|
|
38
|
+
inset-block-start: var(--_code-corner-inset);
|
|
39
|
+
inset-inline-end: var(--_code-corner-inset);
|
|
40
|
+
}
|
|
41
|
+
|
|
37
42
|
:where([data-control-family="code"][data-slot="actions"]) {
|
|
43
|
+
--nest-radius: max(0px, calc(var(--cui-code-radius) - var(--cui-code-border-width) - var(--_code-corner-inset)));
|
|
38
44
|
gap: calc(var(--spacing) * 1);
|
|
39
45
|
margin-inline-start: auto;
|
|
40
46
|
}
|
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
@layer components {
|
|
2
|
+
:where([data-control-family="collapsible"][data-slot="root"]) {
|
|
3
|
+
--cui-collapsible-trigger-radius: var(--radius-control);
|
|
4
|
+
--cui-collapsible-trigger-hover-background: var(--hover-fill);
|
|
5
|
+
}
|
|
6
|
+
|
|
2
7
|
:where([data-control-family="collapsible"][data-slot="trigger"]) {
|
|
8
|
+
display: flex;
|
|
9
|
+
width: 100%;
|
|
10
|
+
min-height: var(--control-h-sm);
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: calc(var(--spacing) * 2);
|
|
13
|
+
border-radius: var(--cui-collapsible-trigger-radius);
|
|
14
|
+
padding-inline: calc(var(--spacing) * 2);
|
|
15
|
+
color: var(--foreground);
|
|
16
|
+
font-size: var(--text-label);
|
|
17
|
+
font-weight: var(--font-weight-medium);
|
|
18
|
+
text-align: start;
|
|
3
19
|
outline: none;
|
|
20
|
+
transition: background-color var(--duration-fast) var(--ease-standard);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:where([data-control-family="collapsible"][data-slot="trigger"]:is(:hover, :focus-visible)) {
|
|
24
|
+
background: var(--cui-collapsible-trigger-hover-background);
|
|
4
25
|
}
|
|
5
26
|
|
|
6
27
|
:where([data-control-family="collapsible"][data-slot="trigger"] > svg) {
|
|
28
|
+
inline-size: 1rem;
|
|
29
|
+
block-size: 1rem;
|
|
30
|
+
flex-shrink: 0;
|
|
31
|
+
color: var(--muted-foreground);
|
|
7
32
|
transition: rotate var(--duration-base) var(--ease-standard);
|
|
8
33
|
}
|
|
9
34
|
|
|
@@ -22,3 +47,15 @@
|
|
|
22
47
|
rotate: 90deg;
|
|
23
48
|
}
|
|
24
49
|
}
|
|
50
|
+
|
|
51
|
+
@property --cui-collapsible-trigger-radius {
|
|
52
|
+
syntax: "<length-percentage>";
|
|
53
|
+
inherits: true;
|
|
54
|
+
initial-value: 0px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@property --cui-collapsible-trigger-hover-background {
|
|
58
|
+
syntax: "<color>";
|
|
59
|
+
inherits: true;
|
|
60
|
+
initial-value: transparent;
|
|
61
|
+
}
|
|
@@ -4,10 +4,20 @@
|
|
|
4
4
|
block-size: calc(var(--spacing) * 8);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
:where(
|
|
8
|
+
[data-control-family="field"][data-field-kind="input-group"][data-slot="addon"]
|
|
9
|
+
> [data-control-family="color-picker"][data-slot="trigger"]
|
|
10
|
+
) {
|
|
11
|
+
inline-size: calc(var(--cui-field-height) * 0.5);
|
|
12
|
+
block-size: calc(var(--cui-field-height) * 0.5);
|
|
13
|
+
}
|
|
14
|
+
|
|
7
15
|
:where([data-control-family="popup"][data-popup-kind="color-picker"][data-popup-part="surface"]) {
|
|
16
|
+
--_color-picker-surface-padding: calc(var(--spacing) * 3);
|
|
17
|
+
--_color-picker-area-radius-cap: max(var(--radius-sm), calc(var(--cui-popup-radius) - var(--_color-picker-surface-padding)));
|
|
8
18
|
inline-size: calc(var(--spacing) * 64);
|
|
9
19
|
gap: calc(var(--spacing) * 3);
|
|
10
|
-
padding:
|
|
20
|
+
padding: var(--_color-picker-surface-padding);
|
|
11
21
|
}
|
|
12
22
|
|
|
13
23
|
:where([data-control-family="color-picker"][data-slot="hue-track"]),
|
|
@@ -122,7 +132,7 @@
|
|
|
122
132
|
|
|
123
133
|
:where([data-control-family="color-picker"][data-slot="area"]) {
|
|
124
134
|
block-size: calc(var(--spacing) * 40);
|
|
125
|
-
border-radius: var(--cui-color-picker-area-radius);
|
|
135
|
+
border-radius: min(var(--cui-color-picker-area-radius), var(--_color-picker-area-radius-cap, 9999px));
|
|
126
136
|
box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--border) 60%, transparent);
|
|
127
137
|
--_color-picker-area-thumb-shadow: 0 0 0 1px oklch(from var(--foreground) l c h / 0.4);
|
|
128
138
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
:where([data-control-family="dockable-panel"][data-slot="root"]),
|
|
3
3
|
:where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-dockable-panel-root]) {
|
|
4
|
-
--
|
|
4
|
+
--_dockable-panel-header-inset: calc(var(--spacing) * 1.5);
|
|
5
|
+
--cui-dockable-panel-radius: min(
|
|
6
|
+
var(--radius-panel),
|
|
7
|
+
calc(var(--control-h-sm) / 2 + var(--_dockable-panel-header-inset) + var(--cui-dockable-panel-border-width))
|
|
8
|
+
);
|
|
5
9
|
--cui-dockable-panel-background: var(--card);
|
|
6
10
|
--cui-dockable-panel-foreground: var(--card-foreground);
|
|
7
11
|
--cui-dockable-panel-border-color: oklch(from var(--border) l c h / 0.8);
|
|
@@ -22,9 +26,13 @@
|
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
:where([data-control-family="dockable-panel"][data-slot="header"]) {
|
|
25
|
-
|
|
29
|
+
--nest-radius: max(
|
|
30
|
+
0px,
|
|
31
|
+
calc(var(--cui-dockable-panel-radius) - var(--cui-dockable-panel-border-width) - var(--_dockable-panel-header-inset))
|
|
32
|
+
);
|
|
33
|
+
min-block-size: calc(var(--control-h-sm) + var(--_dockable-panel-header-inset) * 2);
|
|
26
34
|
gap: calc(var(--spacing) * 2);
|
|
27
|
-
padding-inline:
|
|
35
|
+
padding-inline: var(--_dockable-panel-header-inset);
|
|
28
36
|
border-block-end: 1px solid oklch(from var(--border) l c h / 0.7);
|
|
29
37
|
}
|
|
30
38
|
|
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
color: var(--muted-foreground);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
:where([data-control-family="field"][data-slot="root"][data-control="true"]:is(button, a)) {
|
|
12
|
+
cursor: pointer;
|
|
13
|
+
color: var(--muted-foreground);
|
|
14
|
+
text-align: start;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
:where([data-control-family="field"][data-slot="root"][data-control="true"]:is(button, a):hover) {
|
|
18
|
+
color: var(--foreground);
|
|
19
|
+
}
|
|
20
|
+
|
|
11
21
|
:where([data-control-family="field"][data-field-kind="input-group"][data-slot="input"]),
|
|
12
22
|
:where([data-control-family="field"][data-field-kind="phone-input"][data-slot="input"]),
|
|
13
23
|
:where([data-control-family="field"][data-field-kind="number-field"][data-slot="input"]) {
|
|
@@ -80,6 +90,58 @@
|
|
|
80
90
|
color: oklch(from var(--muted-foreground) l c h / 0.5);
|
|
81
91
|
}
|
|
82
92
|
|
|
93
|
+
:where(
|
|
94
|
+
[data-control-family="field"][data-field-kind="number-field"][data-slot="group"]
|
|
95
|
+
> [data-control-family="field"][data-field-kind="number-field"][data-slot="scrub-area"]
|
|
96
|
+
) {
|
|
97
|
+
padding-inline: calc(var(--spacing) * 2);
|
|
98
|
+
color: var(--muted-foreground);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:where(
|
|
102
|
+
[data-control-family="field"][data-field-kind="number-field"][data-slot="input"]:has(
|
|
103
|
+
+ [data-control-family="field"][data-field-kind="number-field"][data-slot="scrub-area"]
|
|
104
|
+
)
|
|
105
|
+
) {
|
|
106
|
+
padding-inline-end: 0;
|
|
107
|
+
text-align: end;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
:where(
|
|
111
|
+
[data-control-family="field"][data-field-kind="number-field"][data-slot="scrub-area"]
|
|
112
|
+
+ [data-control-family="field"][data-field-kind="number-field"][data-slot="input"]
|
|
113
|
+
) {
|
|
114
|
+
padding-inline-start: 0;
|
|
115
|
+
text-align: start;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@media (hover: hover) {
|
|
119
|
+
:where(
|
|
120
|
+
[data-control-family="field"][data-field-kind="number-field"][data-slot="group"]
|
|
121
|
+
> [data-control-family="field"][data-field-kind="number-field"][data-slot="scrub-area"]:hover
|
|
122
|
+
) {
|
|
123
|
+
color: var(--foreground);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
:where(
|
|
128
|
+
[data-control-family="field"][data-field-kind="number-field"][data-slot="group"]:not([data-control])
|
|
129
|
+
> [data-control-family="field"][data-field-kind="number-field"][data-slot="input"]
|
|
130
|
+
) {
|
|
131
|
+
inline-size: 6ch;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@supports (field-sizing: content) {
|
|
135
|
+
:where(
|
|
136
|
+
[data-control-family="field"][data-field-kind="number-field"][data-slot="group"]:not([data-control])
|
|
137
|
+
> [data-control-family="field"][data-field-kind="number-field"][data-slot="input"]
|
|
138
|
+
) {
|
|
139
|
+
inline-size: auto;
|
|
140
|
+
min-inline-size: 2ch;
|
|
141
|
+
field-sizing: content;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
83
145
|
:where([data-control-family="field"][data-field-kind="number-field"][data-slot="scrub-cursor"]) {
|
|
84
146
|
color: var(--foreground);
|
|
85
147
|
filter: drop-shadow(0 1px 1px oklch(0 0 0 / 0.05));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
:where([data-control-family="field"][data-control="true"]) {
|
|
3
3
|
gap: calc(var(--spacing) * 1.5);
|
|
4
4
|
--cui-field-radius: var(--radius-control);
|
|
5
|
-
--cui-field-background:
|
|
5
|
+
--cui-field-background: var(--control-fill);
|
|
6
6
|
--cui-field-foreground: var(--foreground);
|
|
7
7
|
--cui-field-border-color: var(--control-rim);
|
|
8
8
|
--cui-field-border-width: var(--control-rim-width);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
--cui-field-padding-inline: var(--padding-x);
|
|
14
14
|
--cui-field-font-size: var(--text-body);
|
|
15
15
|
border: var(--cui-field-border-width) solid var(--cui-field-border-color);
|
|
16
|
-
border-radius: var(--cui-field-radius);
|
|
16
|
+
border-radius: var(--nest-radius, var(--cui-field-radius));
|
|
17
17
|
outline: none;
|
|
18
18
|
background: var(--cui-field-background);
|
|
19
19
|
box-shadow: var(--cui-field-shadow);
|
|
@@ -58,19 +58,37 @@
|
|
|
58
58
|
color: var(--muted-foreground);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
:where(input[type="search"][data-control-family="field"])::-webkit-search-cancel-button,
|
|
62
|
+
:where([data-control-family="field"] input[type="search"])::-webkit-search-cancel-button {
|
|
63
|
+
appearance: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
61
66
|
@media (hover: hover) {
|
|
62
67
|
:where([data-control-family="field"][data-control="true"][data-field-kind="autocomplete"]:hover),
|
|
63
68
|
:where([data-control-family="field"][data-control="true"][data-field-kind="combobox"]:hover),
|
|
64
69
|
:where([data-control-family="field"][data-control="true"][data-field-kind="native-select"]:hover),
|
|
70
|
+
:where([data-control-family="field"][data-control="true"][data-field-kind="select"]:hover),
|
|
65
71
|
:where([data-control-family="field"][data-control="true"][data-field-kind="number-field"]:hover) {
|
|
66
72
|
background: var(--hover-fill);
|
|
67
73
|
}
|
|
68
|
-
}
|
|
69
74
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
:where(
|
|
76
|
+
[data-control-family="field"][data-control="true"]:hover:has(
|
|
77
|
+
[data-control-family="field"]:is(
|
|
78
|
+
[data-slot="increment"],
|
|
79
|
+
[data-slot="decrement"],
|
|
80
|
+
[data-slot="trigger"],
|
|
81
|
+
[data-slot="clear"]
|
|
82
|
+
):hover
|
|
83
|
+
)
|
|
84
|
+
) {
|
|
85
|
+
background: var(--cui-field-background);
|
|
86
|
+
}
|
|
73
87
|
|
|
88
|
+
:where([data-control-family="field"][data-control="true"]:is(:focus-visible, :focus-within)) {
|
|
89
|
+
border-color: var(--cui-field-focus-border-color);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
74
92
|
:where([data-control-family="field"][data-control="true"][data-invalid]),
|
|
75
93
|
:where([data-control-family="field"][data-control="true"][aria-invalid="true"]) {
|
|
76
94
|
box-shadow:
|
|
@@ -83,6 +101,10 @@
|
|
|
83
101
|
cursor: not-allowed;
|
|
84
102
|
opacity: 0.5;
|
|
85
103
|
}
|
|
104
|
+
:where([data-control-family="field"][data-field-kind="select"][data-slot="trigger"]) {
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
font-weight: var(--font-weight-medium);
|
|
107
|
+
}
|
|
86
108
|
|
|
87
109
|
:where([data-control-family="field"][data-field-kind="input-otp"][data-slot="slot"]) {
|
|
88
110
|
text-align: center;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
:where([data-control-family="filter-bar"][data-slot="root"]) {
|
|
3
|
+
--cui-filter-bar-background: var(--control-fill);
|
|
4
|
+
--cui-filter-bar-foreground: var(--foreground);
|
|
5
|
+
--cui-filter-bar-border-color: var(--control-rim);
|
|
6
|
+
--cui-filter-bar-border-width: var(--control-rim-width);
|
|
7
|
+
--cui-filter-bar-radius: var(--radius-control);
|
|
8
|
+
--cui-filter-bar-height: var(--control-h-sm);
|
|
9
|
+
--cui-filter-bar-gap: calc(var(--spacing) * 1.5);
|
|
10
|
+
--cui-filter-bar-padding-inline: calc(var(--spacing) * 2);
|
|
11
|
+
--cui-filter-bar-font-size: var(--text-label);
|
|
12
|
+
--cui-filter-bar-hover-background: var(--hover-fill);
|
|
13
|
+
--cui-filter-bar-focus-ring-color: var(--ring);
|
|
14
|
+
gap: var(--cui-filter-bar-gap);
|
|
15
|
+
border: 0;
|
|
16
|
+
padding: 0;
|
|
17
|
+
margin: 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:where([data-control-family="filter-bar"][data-slot="chip"]) {
|
|
21
|
+
border: var(--cui-filter-bar-border-width) solid var(--cui-filter-bar-border-color);
|
|
22
|
+
border-radius: var(--cui-filter-bar-radius);
|
|
23
|
+
background: var(--cui-filter-bar-background);
|
|
24
|
+
color: var(--cui-filter-bar-foreground);
|
|
25
|
+
block-size: var(--cui-filter-bar-height);
|
|
26
|
+
font-size: var(--cui-filter-bar-font-size);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:where([data-control-family="filter-bar"]:is([data-slot="segment"], [data-slot="remove"])) {
|
|
30
|
+
display: inline-flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
min-inline-size: 0;
|
|
33
|
+
max-inline-size: 16rem;
|
|
34
|
+
padding-inline: var(--cui-filter-bar-padding-inline);
|
|
35
|
+
border: 0;
|
|
36
|
+
border-radius: 0;
|
|
37
|
+
background: transparent;
|
|
38
|
+
color: inherit;
|
|
39
|
+
font-size: inherit;
|
|
40
|
+
gap: calc(var(--spacing) * 1.5);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
:where([data-control-family="filter-bar"][data-slot="chip"] > :not(:first-child)) {
|
|
44
|
+
border-inline-start: var(--cui-filter-bar-border-width) solid var(--cui-filter-bar-border-color);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:where([data-control-family="filter-bar"]:is([data-slot="segment"], [data-slot="remove"]):focus-visible) {
|
|
48
|
+
outline: 2px solid var(--cui-filter-bar-focus-ring-color);
|
|
49
|
+
outline-offset: -2px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@media (hover: hover) {
|
|
53
|
+
:where([data-control-family="filter-bar"]:is([data-slot="segment"], [data-slot="remove"]):enabled:hover) {
|
|
54
|
+
background: var(--cui-filter-bar-hover-background);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:where([data-control-family="filter-bar"][data-draft] [data-slot="segment"]) {
|
|
59
|
+
opacity: 1;
|
|
60
|
+
animation: cui-filter-segment-enter var(--duration-fast) var(--ease-emphasized);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:where([data-control-family="filter-bar"][data-slot="exit"]) {
|
|
64
|
+
pointer-events: none;
|
|
65
|
+
transform-origin: left center;
|
|
66
|
+
animation: cui-filter-chip-exit var(--duration-fast) var(--ease-standard) forwards;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:where([data-control-family="filter-bar"][data-slot="exit"] [data-slot="chip"]) {
|
|
70
|
+
block-size: 100%;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:where([data-control-family="filter-bar"][data-disabled]) {
|
|
74
|
+
opacity: 0.5;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@media (prefers-reduced-motion: reduce) {
|
|
78
|
+
:where([data-control-family="filter-bar"]),
|
|
79
|
+
:where([data-control-family="filter-bar"] *) {
|
|
80
|
+
animation: none;
|
|
81
|
+
transition: none;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:where([data-motion="reduced"] [data-control-family="filter-bar"]),
|
|
86
|
+
:where([data-motion="reduced"] [data-control-family="filter-bar"] *) {
|
|
87
|
+
animation: none;
|
|
88
|
+
transition: none;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@keyframes cui-filter-segment-enter {
|
|
93
|
+
from {
|
|
94
|
+
opacity: 0;
|
|
95
|
+
translate: -4px 0;
|
|
96
|
+
}
|
|
97
|
+
to {
|
|
98
|
+
opacity: 1;
|
|
99
|
+
translate: 0 0;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@keyframes cui-filter-chip-exit {
|
|
104
|
+
to {
|
|
105
|
+
opacity: 0;
|
|
106
|
+
transform: translateX(-4px) scale(0.97);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@property --cui-filter-bar-background {
|
|
111
|
+
syntax: "<color>";
|
|
112
|
+
inherits: true;
|
|
113
|
+
initial-value: transparent;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@property --cui-filter-bar-foreground {
|
|
117
|
+
syntax: "<color>";
|
|
118
|
+
inherits: true;
|
|
119
|
+
initial-value: transparent;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@property --cui-filter-bar-border-color {
|
|
123
|
+
syntax: "<color>";
|
|
124
|
+
inherits: true;
|
|
125
|
+
initial-value: transparent;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@property --cui-filter-bar-border-width {
|
|
129
|
+
syntax: "<length>";
|
|
130
|
+
inherits: true;
|
|
131
|
+
initial-value: 0px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@property --cui-filter-bar-radius {
|
|
135
|
+
syntax: "<length>";
|
|
136
|
+
inherits: true;
|
|
137
|
+
initial-value: 0px;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
@property --cui-filter-bar-height {
|
|
141
|
+
syntax: "<length>";
|
|
142
|
+
inherits: true;
|
|
143
|
+
initial-value: 0px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@property --cui-filter-bar-gap {
|
|
147
|
+
syntax: "<length>";
|
|
148
|
+
inherits: true;
|
|
149
|
+
initial-value: 0px;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
@property --cui-filter-bar-padding-inline {
|
|
153
|
+
syntax: "<length>";
|
|
154
|
+
inherits: true;
|
|
155
|
+
initial-value: 0px;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@property --cui-filter-bar-font-size {
|
|
159
|
+
syntax: "<length>";
|
|
160
|
+
inherits: true;
|
|
161
|
+
initial-value: 0px;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
@property --cui-filter-bar-hover-background {
|
|
165
|
+
syntax: "<color>";
|
|
166
|
+
inherits: true;
|
|
167
|
+
initial-value: transparent;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@property --cui-filter-bar-focus-ring-color {
|
|
171
|
+
syntax: "<color>";
|
|
172
|
+
inherits: true;
|
|
173
|
+
initial-value: transparent;
|
|
174
|
+
}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
@layer components {
|
|
2
2
|
:where([data-control-family="infinite-canvas"][data-slot="root"]) {
|
|
3
|
-
--cui-infinite-canvas-radius: var(--radius-panel);
|
|
4
3
|
--cui-infinite-canvas-background: var(--canvas);
|
|
5
4
|
--cui-infinite-canvas-grid-dot-color: oklch(from var(--foreground) l c h / 0.16);
|
|
6
5
|
--cui-infinite-canvas-border-color: var(--border);
|
|
7
|
-
--cui-infinite-canvas-controls-radius: var(--radius-control);
|
|
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
|
+
--cui-infinite-canvas-radius: max(
|
|
13
|
+
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
|
+
)
|
|
18
|
+
);
|
|
19
|
+
--cui-infinite-canvas-padding: max(
|
|
20
|
+
calc(var(--spacing) * 2),
|
|
21
|
+
calc(var(--cui-infinite-canvas-radius) - var(--cui-infinite-canvas-controls-radius))
|
|
22
|
+
);
|
|
8
23
|
--cui-infinite-canvas-controls-background: var(--card);
|
|
9
24
|
--cui-infinite-canvas-controls-border-color: var(--border);
|
|
10
25
|
--cui-infinite-canvas-controls-shadow: var(--shadow-sm);
|
|
@@ -15,9 +30,24 @@
|
|
|
15
30
|
outline-style: none;
|
|
16
31
|
}
|
|
17
32
|
|
|
33
|
+
:where([data-control-family="infinite-canvas"][data-slot="root"][data-easing]) {
|
|
34
|
+
transition-property: background-position, background-size;
|
|
35
|
+
transition-duration: var(--duration-base);
|
|
36
|
+
transition-timing-function: var(--ease-standard);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:where(
|
|
40
|
+
[data-control-family="infinite-canvas"][data-slot="root"][data-easing] [data-control-family="infinite-canvas"][data-slot="content"]
|
|
41
|
+
) {
|
|
42
|
+
transition: transform var(--duration-base) var(--ease-standard);
|
|
43
|
+
}
|
|
44
|
+
|
|
18
45
|
:where([data-control-family="infinite-canvas"][data-slot="controls"]) {
|
|
46
|
+
--nest-radius: var(--cui-infinite-canvas-controls-item-radius);
|
|
47
|
+
inset-inline-end: var(--cui-infinite-canvas-padding);
|
|
48
|
+
inset-block-end: var(--cui-infinite-canvas-padding);
|
|
19
49
|
gap: calc(var(--spacing) * 0.5);
|
|
20
|
-
padding:
|
|
50
|
+
padding: var(--cui-infinite-canvas-controls-padding);
|
|
21
51
|
border-radius: var(--cui-infinite-canvas-controls-radius);
|
|
22
52
|
background-color: var(--cui-infinite-canvas-controls-background);
|
|
23
53
|
box-shadow:
|
|
@@ -54,6 +84,24 @@
|
|
|
54
84
|
initial-value: transparent;
|
|
55
85
|
}
|
|
56
86
|
|
|
87
|
+
@property --cui-infinite-canvas-padding {
|
|
88
|
+
syntax: "<length-percentage>";
|
|
89
|
+
inherits: true;
|
|
90
|
+
initial-value: 0px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@property --cui-infinite-canvas-controls-item-radius {
|
|
94
|
+
syntax: "<length-percentage>";
|
|
95
|
+
inherits: true;
|
|
96
|
+
initial-value: 0px;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@property --cui-infinite-canvas-controls-padding {
|
|
100
|
+
syntax: "<length-percentage>";
|
|
101
|
+
inherits: true;
|
|
102
|
+
initial-value: 0px;
|
|
103
|
+
}
|
|
104
|
+
|
|
57
105
|
@property --cui-infinite-canvas-controls-radius {
|
|
58
106
|
syntax: "<length-percentage>";
|
|
59
107
|
inherits: true;
|
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
--cui-inline-attachment-background: var(--card);
|
|
4
4
|
--cui-inline-attachment-hover-shadow: var(--shadow-md);
|
|
5
5
|
--cui-inline-attachment-padding: calc(var(--spacing) * 3);
|
|
6
|
-
--
|
|
6
|
+
--_inline-attachment-content-line-height: calc(var(--spacing) * 4);
|
|
7
|
+
--cui-inline-attachment-radius: min(
|
|
8
|
+
var(--radius-field),
|
|
9
|
+
calc(var(--cui-inline-attachment-padding) + var(--_inline-attachment-content-line-height) / 2 + var(--spacing))
|
|
10
|
+
);
|
|
7
11
|
--cui-inline-attachment-ring-color: var(--border);
|
|
8
12
|
--cui-inline-attachment-image-outline-color: oklch(from var(--foreground) l c h / 0.1);
|
|
9
13
|
--cui-inline-attachment-shadow: var(--shadow-sm);
|
|
@@ -126,6 +130,7 @@
|
|
|
126
130
|
box-shadow: var(--cui-inline-attachment-content-shadow);
|
|
127
131
|
backdrop-filter: blur(var(--backdrop-blur-popover));
|
|
128
132
|
font-size: var(--text-caption);
|
|
133
|
+
line-height: var(--_inline-attachment-content-line-height);
|
|
129
134
|
font-weight: var(--font-weight-medium);
|
|
130
135
|
}
|
|
131
136
|
|