@ctrl-ui/react 0.8.20 → 0.9.0

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.
Files changed (161) hide show
  1. package/README.md +1 -0
  2. package/dist/action-bar.d.ts +1 -2
  3. package/dist/action-bar.js +7 -8
  4. package/dist/blocks/design-canvas-inspector.js +4 -1
  5. package/dist/blocks/file-explorer.js +1 -1
  6. package/dist/chat-message.js +4 -13
  7. package/dist/hooks/use-textarea-trigger-menu.d.ts +21 -3
  8. package/dist/hooks/use-textarea-trigger-menu.js +36 -40
  9. package/dist/hooks/use-user-ask.d.ts +1 -0
  10. package/dist/hooks/use-user-ask.js +5 -1
  11. package/dist/knob-contracts/audio-recorder-knobs.d.ts +1 -1
  12. package/dist/knob-contracts/audio-recorder-knobs.js +2 -1
  13. package/dist/knob-contracts/chart-knobs.d.ts +4 -0
  14. package/dist/knob-contracts/chart-knobs.js +24 -0
  15. package/dist/knob-contracts/choice-knobs.d.ts +1 -1
  16. package/dist/knob-contracts/choice-knobs.js +1 -0
  17. package/dist/knob-contracts/dockable-panel-knobs.d.ts +1 -1
  18. package/dist/knob-contracts/dockable-panel-knobs.js +2 -1
  19. package/dist/knob-contracts/emoji-picker-knobs.d.ts +1 -1
  20. package/dist/knob-contracts/emoji-picker-knobs.js +1 -0
  21. package/dist/knob-contracts/empty-knobs.d.ts +1 -1
  22. package/dist/knob-contracts/empty-knobs.js +2 -1
  23. package/dist/knob-contracts/icon-picker-knobs.d.ts +1 -1
  24. package/dist/knob-contracts/icon-picker-knobs.js +3 -1
  25. package/dist/knob-contracts/resizable-knobs.d.ts +1 -1
  26. package/dist/knob-contracts/resizable-knobs.js +2 -2
  27. package/dist/knob-contracts/sidebar-knobs.d.ts +1 -1
  28. package/dist/knob-contracts/sidebar-knobs.js +3 -1
  29. package/dist/knob-contracts/tabs-knobs.d.ts +1 -1
  30. package/dist/knob-contracts/tabs-knobs.js +2 -1
  31. package/dist/knob-contracts/tree-knobs.d.ts +1 -1
  32. package/dist/knob-contracts/tree-knobs.js +2 -1
  33. package/dist/lib/color.d.ts +2 -6
  34. package/dist/lib/color.js +45 -28
  35. package/dist/lib/contrast.d.ts +6 -0
  36. package/dist/lib/contrast.js +33 -1
  37. package/dist/lib/gradient.d.ts +17 -0
  38. package/dist/lib/gradient.js +69 -0
  39. package/dist/markdown-editor/drag-handle.js +73 -10
  40. package/dist/markdown-editor/drag-preview.d.ts +3 -0
  41. package/dist/markdown-editor/drag-preview.js +31 -0
  42. package/dist/markdown-editor/extensions.d.ts +2 -2
  43. package/dist/markdown-editor/extensions.js +25 -3
  44. package/dist/markdown-editor/suggestions.js +5 -5
  45. package/dist/markdown-editor/task-item.d.ts +3 -0
  46. package/dist/markdown-editor/task-item.js +50 -0
  47. package/dist/markdown-editor/toolbar.js +122 -63
  48. package/dist/markdown-editor.js +3 -3
  49. package/dist/skin.d.ts +0 -1
  50. package/dist/styles/index.css +3 -2
  51. package/dist/styles/recipes/action-bar.css +1 -1
  52. package/dist/styles/recipes/activity.css +1 -1
  53. package/dist/styles/recipes/alert.css +9 -10
  54. package/dist/styles/recipes/app-shell-header.css +2 -2
  55. package/dist/styles/recipes/audio-recorder.css +15 -4
  56. package/dist/styles/recipes/audio-visualizer.css +4 -4
  57. package/dist/styles/recipes/avatar.css +3 -3
  58. package/dist/styles/recipes/badge.css +2 -2
  59. package/dist/styles/recipes/button.css +2 -5
  60. package/dist/styles/recipes/card.css +0 -2
  61. package/dist/styles/recipes/chart.css +378 -0
  62. package/dist/styles/recipes/chat-composer-attachment.css +3 -3
  63. package/dist/styles/recipes/chat-composer.css +3 -3
  64. package/dist/styles/recipes/chat-layout.css +2 -2
  65. package/dist/styles/recipes/chat-message-social.css +1 -1
  66. package/dist/styles/recipes/chat-message.css +1 -1
  67. package/dist/styles/recipes/choice.css +9 -3
  68. package/dist/styles/recipes/code-diff.css +1 -1
  69. package/dist/styles/recipes/code.css +1 -1
  70. package/dist/styles/recipes/color-picker-details.css +17 -11
  71. package/dist/styles/recipes/color-picker-values.css +17 -7
  72. package/dist/styles/recipes/color-picker.css +88 -70
  73. package/dist/styles/recipes/context.css +2 -2
  74. package/dist/styles/recipes/dockable-panel.css +9 -2
  75. package/dist/styles/recipes/dynamic-notification-motion.css +1 -55
  76. package/dist/styles/recipes/dynamic-notification.css +0 -1
  77. package/dist/styles/recipes/emoji-picker.css +35 -19
  78. package/dist/styles/recipes/empty.css +19 -14
  79. package/dist/styles/recipes/field-parts.css +2 -2
  80. package/dist/styles/recipes/field.css +6 -4
  81. package/dist/styles/recipes/filter-bar.css +10 -10
  82. package/dist/styles/recipes/flow.css +5 -3
  83. package/dist/styles/recipes/gradient-editor.css +8 -0
  84. package/dist/styles/recipes/icon-picker.css +45 -10
  85. package/dist/styles/recipes/inline-attachment.css +4 -4
  86. package/dist/styles/recipes/inline-citation.css +2 -2
  87. package/dist/styles/recipes/item.css +4 -4
  88. package/dist/styles/recipes/markdown-editor.css +35 -24
  89. package/dist/styles/recipes/markdown.css +23 -27
  90. package/dist/styles/recipes/page-layout.css +13 -11
  91. package/dist/styles/recipes/popup-controls.css +2 -2
  92. package/dist/styles/recipes/popup-lists.css +3 -3
  93. package/dist/styles/recipes/popup.css +11 -9
  94. package/dist/styles/recipes/range.css +4 -5
  95. package/dist/styles/recipes/resizable.css +15 -10
  96. package/dist/styles/recipes/resize-handle.css +2 -2
  97. package/dist/styles/recipes/scroll-area.css +1 -1
  98. package/dist/styles/recipes/sidebar-menu.css +5 -15
  99. package/dist/styles/recipes/sidebar-mobile.css +4 -4
  100. package/dist/styles/recipes/sidebar-parts.css +26 -1
  101. package/dist/styles/recipes/sidebar.css +18 -31
  102. package/dist/styles/recipes/skeleton.css +10 -5
  103. package/dist/styles/recipes/stepper.css +1 -1
  104. package/dist/styles/recipes/switch.css +12 -11
  105. package/dist/styles/recipes/table-of-contents.css +6 -8
  106. package/dist/styles/recipes/table.css +4 -4
  107. package/dist/styles/recipes/tabs.css +10 -5
  108. package/dist/styles/recipes/task-list.css +3 -3
  109. package/dist/styles/recipes/tree.css +10 -3
  110. package/dist/styles/recipes/user-ask-details.css +5 -4
  111. package/dist/styles/recipes/user-ask.css +5 -5
  112. package/dist/styles/theme.css +158 -177
  113. package/dist/ui/chart-cartesian.d.ts +801 -0
  114. package/dist/ui/chart-cartesian.js +420 -0
  115. package/dist/ui/chart-colors.d.ts +7 -0
  116. package/dist/ui/chart-colors.js +27 -0
  117. package/dist/ui/chart-curves.d.ts +7 -0
  118. package/dist/ui/chart-curves.js +87 -0
  119. package/dist/ui/chart-marks.d.ts +68 -0
  120. package/dist/ui/chart-marks.js +227 -0
  121. package/dist/ui/chart-polar.d.ts +103 -0
  122. package/dist/ui/chart-polar.js +124 -0
  123. package/dist/ui/chart-series.d.ts +36 -0
  124. package/dist/ui/chart-series.js +71 -0
  125. package/dist/ui/chart.d.ts +32 -0
  126. package/dist/ui/chart.js +257 -0
  127. package/dist/ui/color-picker-area.d.ts +16 -0
  128. package/dist/ui/color-picker-area.js +175 -0
  129. package/dist/ui/color-picker-context.d.ts +27 -0
  130. package/dist/ui/color-picker-context.js +87 -0
  131. package/dist/ui/color-picker-contrast.d.ts +20 -0
  132. package/dist/ui/color-picker-contrast.js +129 -0
  133. package/dist/ui/color-picker-sliders.d.ts +15 -0
  134. package/dist/ui/color-picker-sliders.js +146 -0
  135. package/dist/ui/color-picker-swatches.d.ts +23 -0
  136. package/dist/ui/color-picker-swatches.js +94 -0
  137. package/dist/ui/color-picker-values.d.ts +59 -0
  138. package/dist/ui/color-picker-values.js +244 -0
  139. package/dist/ui/color-picker.d.ts +15 -110
  140. package/dist/ui/color-picker.js +30 -759
  141. package/dist/ui/emoji-picker.d.ts +10 -1
  142. package/dist/ui/emoji-picker.js +71 -14
  143. package/dist/ui/flow.js +1 -1
  144. package/dist/ui/gradient-editor-controls.d.ts +19 -0
  145. package/dist/ui/gradient-editor-controls.js +75 -0
  146. package/dist/ui/gradient-editor.d.ts +23 -22
  147. package/dist/ui/gradient-editor.js +77 -123
  148. package/dist/ui/icon-picker.d.ts +1 -1
  149. package/dist/ui/icon-picker.js +11 -6
  150. package/dist/ui/markdown-elements.d.ts +3 -1
  151. package/dist/ui/markdown-elements.js +62 -22
  152. package/dist/ui/markdown-heading.d.ts +9 -0
  153. package/dist/ui/markdown-heading.js +25 -0
  154. package/dist/ui/resizable.js +24 -9
  155. package/dist/ui/sidebar-provider.js +3 -12
  156. package/dist/ui/typography.d.ts +1 -0
  157. package/dist/ui/typography.js +12 -3
  158. package/dist/user-ask.js +4 -8
  159. package/package.json +7 -3
  160. package/dist/ui/emoji-icon-picker.d.ts +0 -13
  161. package/dist/ui/emoji-icon-picker.js +0 -50
@@ -1,6 +1,7 @@
1
1
  @layer components {
2
2
  :where([data-control-family="tree"][data-slot="root"]) {
3
3
  --cui-tree-item-trigger-radius: var(--radius-popup-item);
4
+ --cui-tree-item-trigger-background: transparent;
4
5
  --cui-tree-item-trigger-foreground: var(--foreground);
5
6
  --cui-tree-item-trigger-hover-background: var(--hover-fill);
6
7
  --cui-tree-item-trigger-hover-foreground: var(--foreground);
@@ -36,7 +37,7 @@
36
37
  padding-inline-start: calc(var(--_tree-level, 1) * var(--cui-tree-indent-inset));
37
38
  padding-inline-end: calc(var(--spacing) * 2);
38
39
  border-radius: var(--cui-tree-item-trigger-radius);
39
- background-color: transparent;
40
+ background-color: var(--cui-tree-item-trigger-background);
40
41
  color: var(--cui-tree-item-trigger-foreground);
41
42
  font-size: var(--cui-tree-item-trigger-font-size);
42
43
  font-weight: var(--font-weight-normal);
@@ -166,7 +167,7 @@
166
167
  @property --cui-tree-item-trigger-font-size {
167
168
  syntax: "<length-percentage>";
168
169
  inherits: true;
169
- initial-value: 1rem;
170
+ initial-value: 0px;
170
171
  }
171
172
 
172
173
  @property --cui-tree-item-trigger-selected-font-weight {
@@ -176,7 +177,13 @@
176
177
  }
177
178
 
178
179
  @property --cui-tree-indent-inset {
179
- syntax: "<length>";
180
+ syntax: "<length-percentage>";
180
181
  inherits: true;
181
182
  initial-value: 0px;
182
183
  }
184
+
185
+ @property --cui-tree-item-trigger-background {
186
+ syntax: "<color>";
187
+ inherits: true;
188
+ initial-value: transparent;
189
+ }
@@ -1,12 +1,13 @@
1
1
  @layer components {
2
2
  :where([data-control-family="button"][data-user-ask-dismiss="true"]) {
3
- color: var(--muted-foreground);
3
+ --cui-button-foreground: var(--muted-foreground);
4
4
  }
5
5
 
6
6
  :where([data-control-family="kbd"][data-user-ask-submit-kbd="true"]) {
7
- background: oklch(from var(--primary-foreground) l c h / 0.15);
8
- color: var(--primary-foreground);
9
- box-shadow: inset 0 0 0 1px oklch(from var(--primary-foreground) l c h / 0.25);
7
+ --cui-kbd-background: oklch(from var(--primary-foreground) l c h / 0.15);
8
+ --cui-kbd-foreground: var(--primary-foreground);
9
+ --cui-kbd-border-color: transparent;
10
+ --cui-kbd-shadow: inset 0 0 0 1px oklch(from var(--primary-foreground) l c h / 0.25);
10
11
  }
11
12
 
12
13
  :where([data-control-family="user-ask"][data-slot="option-input"]) {
@@ -151,13 +151,13 @@
151
151
  }
152
152
 
153
153
  @property --cui-user-ask-radius {
154
- syntax: "<length>";
154
+ syntax: "<length-percentage>";
155
155
  inherits: true;
156
156
  initial-value: 0px;
157
157
  }
158
158
 
159
159
  @property --cui-user-ask-padding {
160
- syntax: "<length>";
160
+ syntax: "<length-percentage>";
161
161
  inherits: true;
162
162
  initial-value: 0px;
163
163
  }
@@ -168,13 +168,13 @@
168
168
  }
169
169
 
170
170
  @property --cui-user-ask-indicator-radius {
171
- syntax: "<length>";
171
+ syntax: "<length-percentage>";
172
172
  inherits: true;
173
173
  initial-value: 0px;
174
174
  }
175
175
 
176
176
  @property --cui-user-ask-indicator-multiple-radius {
177
- syntax: "<length>";
177
+ syntax: "<length-percentage>";
178
178
  inherits: true;
179
179
  initial-value: 0px;
180
180
  }
@@ -209,7 +209,7 @@
209
209
  }
210
210
 
211
211
  @property --cui-user-ask-option-radius {
212
- syntax: "<length>";
212
+ syntax: "<length-percentage>";
213
213
  inherits: true;
214
214
  initial-value: 0px;
215
215
  }
@@ -1,7 +1,41 @@
1
1
  :where(:root, [data-skin]) {
2
- --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
3
- --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
4
-
2
+ --background: var(--scale-neutral-1);
3
+ --foreground: var(--scale-neutral-12);
4
+ --card: var(--scale-neutral-1);
5
+ --card-foreground: var(--scale-neutral-12);
6
+ --popover: var(--scale-neutral-1);
7
+ --popover-foreground: var(--scale-neutral-12);
8
+ --primary: oklch(0.2046 0 0);
9
+ --primary-foreground: oklch(0.9851 0 0);
10
+ --primary-text: oklch(from var(--primary) var(--scale-lightness-11) c h);
11
+ --muted: var(--scale-neutral-3);
12
+ --muted-foreground: var(--scale-neutral-11);
13
+ --secondary: var(--scale-neutral-3);
14
+ --secondary-foreground: var(--scale-neutral-12);
15
+ --accent: var(--scale-neutral-4);
16
+ --accent-foreground: var(--scale-neutral-12);
17
+ --destructive: oklch(0.568 0.1961 32);
18
+ --destructive-foreground: oklch(0.9852 0.0058 85);
19
+ --destructive-text: oklch(from var(--destructive) var(--scale-lightness-11) c h);
20
+ --success: var(--scale-green-9);
21
+ --warning: var(--scale-yellow-9);
22
+ --info: var(--scale-blue-9);
23
+ --success-text: oklch(from var(--success) var(--scale-lightness-11) c h);
24
+ --warning-text: oklch(from var(--warning) var(--scale-lightness-11) c h);
25
+ --info-text: oklch(from var(--info) var(--scale-lightness-11) c h);
26
+ --border: oklch(from var(--scale-neutral-6) l c h / var(--ring-opacity));
27
+ --input: var(--control-rim);
28
+ --ring: oklch(0.5 0 0);
29
+ --focus-ring: oklch(from var(--ring) l c h / calc(alpha * 0.7));
30
+ --control-rim: var(--border);
31
+ --control-boundary: oklch(from var(--foreground) l c h / 0.6);
32
+ --image-outline: oklch(0 0 0 / 0.1);
33
+ --control-fill: oklch(from var(--card) l c h / 0.72);
34
+ --hover-fill: oklch(from var(--foreground) l c h / 0.06);
35
+ --active-fill: oklch(from var(--foreground) l c h / 0.08);
36
+ --canvas: var(--scale-neutral-1);
37
+ --canvas-grid-dot: oklch(from var(--foreground) l c h / 0.16);
38
+ --ring-opacity: 1;
5
39
  --scale-neutral-seed: oklch(0.5 0 0);
6
40
  --scale-primary-seed: var(--primary);
7
41
  --scale-red-seed: var(--color-red-500);
@@ -11,7 +45,6 @@
11
45
  --scale-blue-seed: var(--color-blue-500);
12
46
  --scale-purple-seed: var(--color-purple-500);
13
47
  --scale-pink-seed: var(--color-pink-500);
14
-
15
48
  --scale-neutral-lightness-1: 1;
16
49
  --scale-neutral-lightness-2: 0.97;
17
50
  --scale-neutral-lightness-3: 0.9425;
@@ -46,7 +79,6 @@
46
79
  --scale-chroma-10: 1;
47
80
  --scale-chroma-11: 1;
48
81
  --scale-chroma-12: 0.7;
49
-
50
82
  --scale-neutral-1: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-1) calc(c * var(--scale-chroma-1)) h);
51
83
  --scale-neutral-2: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-2) calc(c * var(--scale-chroma-2)) h);
52
84
  --scale-neutral-3: oklch(from var(--scale-neutral-seed) var(--scale-neutral-lightness-3) calc(c * var(--scale-chroma-3)) h);
@@ -155,137 +187,13 @@
155
187
  --scale-pink-10: oklch(from var(--scale-pink-seed) calc(l - 0.05) c h);
156
188
  --scale-pink-11: oklch(from var(--scale-pink-seed) var(--scale-lightness-11) calc(c * var(--scale-chroma-11)) h);
157
189
  --scale-pink-12: oklch(from var(--scale-pink-seed) var(--scale-lightness-12) calc(c * var(--scale-chroma-12)) h);
158
-
159
- --primary: oklch(0.2046 0 0);
160
- --primary-foreground: oklch(0.9851 0 0);
161
- --foreground: var(--scale-neutral-12);
162
- --secondary-foreground: var(--scale-neutral-12);
163
- --accent-foreground: var(--scale-neutral-12);
164
-
165
- --background: var(--scale-neutral-1);
166
- --card: var(--scale-neutral-1);
167
- --card-foreground: var(--scale-neutral-12);
168
- --popover: var(--scale-neutral-1);
169
- --popover-foreground: var(--scale-neutral-12);
170
- --canvas: var(--scale-neutral-1);
171
- --canvas-grid-dot: oklch(from var(--foreground) l c h / 0.16);
172
-
173
- --radius: 0px;
174
- --shadow-size: 0;
175
- --scroll-fade-size: 0px;
176
- --backdrop-blur-popover: 0px;
177
- --backdrop-blur-overlay: 0px;
178
-
179
- --control-h: 36px;
180
- --popover-opacity: 1;
181
- --overlay-opacity: 0.2;
182
- --padding-x: 16px;
183
- --padding-y: 10px;
184
-
185
- --muted: var(--scale-neutral-3);
186
- --muted-foreground: var(--scale-neutral-11);
187
- --secondary: var(--scale-neutral-3);
188
- --accent: var(--scale-neutral-4);
189
- --destructive: oklch(0.568 0.1961 32);
190
- --destructive-foreground: oklch(0.9852 0.0058 85);
191
- --border: oklch(from var(--scale-neutral-6) l c h / var(--ring-opacity));
192
- --input: var(--scale-neutral-6);
193
- --ring: oklch(0.5 0 0);
194
- --text-label: 0.75rem;
195
- --radius-control: calc(var(--radius) * 2);
196
- --radius-field: calc(var(--radius) * 2.2);
197
- --radius-panel: calc(var(--radius) * 2.6);
198
- --radius-scene: calc(var(--radius) * 2.8);
199
- --radius-popup-item: calc(var(--radius-control) * 0.6);
200
- --shadow-color: oklch(0.2986 0 0);
201
- --shadow-opacity: 1;
202
- --duration-fast: 150ms;
203
- --duration-base: 200ms;
204
- --duration-slow: 300ms;
205
- --duration-loop: 1000ms;
206
- --ease-standard: cubic-bezier(0.2, 0, 0, 1);
207
- --ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
208
- --z-overlay: 70;
209
- --z-modal: 71;
210
- --z-popup: 80;
211
- --z-tooltip: 90;
212
- --z-toast: 95;
213
- --popover-padding: 0.25rem;
214
- --composer-padding: calc(var(--spacing) * 2.5);
215
- --font-body: var(--font-sans);
216
- --font-display: var(--font-sans);
217
- --primary-text: var(--scale-primary-11);
218
- --destructive-text: oklch(from var(--destructive) 0.48 c h);
219
- --success-text: var(--scale-green-11);
220
- --warning-text: var(--scale-yellow-11);
221
- --info-text: var(--scale-blue-11);
222
- --ring-opacity: 1;
223
- --focus-ring: oklch(from var(--ring) l c h / calc(alpha * 0.7));
224
- --focus-ring-width: 2px;
225
- --focus-ring-style: solid;
226
- --focus-ring-offset: 2px;
227
-
228
- --control-rim: var(--border);
229
- --control-rim-width: 1px;
230
- --control-boundary: oklch(from var(--foreground) l c h / 0.6);
231
- --control-fill: oklch(from var(--card) l c h / 0.72);
232
- --hover-fill: oklch(from var(--foreground) l c h / 0.06);
233
- --active-fill: oklch(from var(--foreground) l c h / 0.08);
234
- --image-outline: oklch(0 0 0 / 0.1);
235
- --disabled-opacity: 0.45;
236
- --touch-target: 44px;
237
- --target-min: 24px;
238
-
239
- --text-micro: 0.625rem;
240
- --text-caption: 0.6875rem;
241
- --text-body: 0.875rem;
242
- --text-body-lg: 1rem;
243
- --text-heading-4: 0.9375rem;
244
- --text-heading-4--line-height: 1.4;
245
- --text-heading-4--font-weight: 600;
246
- --text-heading-3: 1.125rem;
247
- --text-heading-3--line-height: 1.35;
248
- --text-heading-3--font-weight: 600;
249
- --text-heading-2: 1.375rem;
250
- --text-heading-2--line-height: 1.25;
251
- --text-heading-2--font-weight: 600;
252
- --text-heading-1: 1.875rem;
253
- --text-heading-1--line-height: 1.15;
254
- --text-heading-1--font-weight: 700;
255
- --text-heading-1--letter-spacing: -0.018em;
256
- --text-display: 2.25rem;
257
- --text-display--line-height: 1.1;
258
- --text-display--font-weight: 600;
259
- --text-display--letter-spacing: -0.026em;
260
- --text-input-min: 16px;
261
-
262
- --corner-shape: round;
263
- --corner-radius-fit: 0.5;
264
- --radius-popover: calc(var(--radius-popup-item-fit) + clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding)));
265
- --radius-composer: calc(
266
- min(var(--radius-control), calc(var(--control-h-xs) / 2)) +
267
- clamp(0px, min(var(--radius-control), calc(var(--control-h-xs) / 2)) * 1000, var(--composer-padding) + var(--control-rim-width))
268
- );
269
-
270
- --shadow-highlight: oklch(1 0 0 / 0.62);
271
- --shadow-y: 1;
272
- --shadow-control-multiplier: 1;
273
- --shadow-panel-multiplier: 2;
274
- --shadow-popover-multiplier: 4;
275
- --shadow-modal-multiplier: 5;
276
- --shadow-ambient-multiplier: 8;
277
-
278
- --control-h-xs: round(var(--control-h) * 0.78, 1px);
279
- --control-h-sm: round(var(--control-h) * 0.89, 1px);
280
- --control-h-lg: round(var(--control-h) * 1.11, 1px);
281
-
190
+ --badge-fill-alpha: 0.16;
191
+ --badge-border-alpha: 0.2;
192
+ --badge-hover-alpha: 0.24;
282
193
  --badge-neutral: oklch(from var(--foreground) l c h / 0.08);
283
194
  --badge-neutral-foreground: var(--foreground);
284
195
  --badge-neutral-border: oklch(from var(--foreground) l c h / 0.1);
285
196
  --badge-neutral-hover: oklch(from var(--foreground) l c h / 0.12);
286
- --badge-fill-alpha: 0.16;
287
- --badge-border-alpha: 0.2;
288
- --badge-hover-alpha: 0.24;
289
197
  --badge-red: oklch(from var(--scale-red-9) l c h / var(--badge-fill-alpha));
290
198
  --badge-red-foreground: var(--scale-red-11);
291
199
  --badge-red-border: oklch(from var(--scale-red-9) l c h / var(--badge-border-alpha));
@@ -314,21 +222,115 @@
314
222
  --badge-pink-foreground: var(--scale-pink-11);
315
223
  --badge-pink-border: oklch(from var(--scale-pink-9) l c h / var(--badge-border-alpha));
316
224
  --badge-pink-hover: oklch(from var(--scale-pink-9) l c h / var(--badge-hover-alpha));
225
+ --chart-blue: var(--scale-blue-9);
226
+ --chart-purple: var(--scale-purple-9);
227
+ --chart-pink: var(--scale-pink-9);
228
+ --chart-orange: var(--scale-orange-9);
229
+ --chart-green: var(--scale-green-9);
230
+ --chart-yellow: var(--scale-yellow-9);
231
+ --chart-red: var(--scale-red-9);
232
+ --chart-neutral: var(--scale-neutral-9);
233
+ --sidebar: var(--canvas);
234
+ --sidebar-foreground: var(--foreground);
235
+ --sidebar-primary: var(--primary);
236
+ --sidebar-accent: var(--hover-fill);
237
+ --sidebar-accent-foreground: var(--foreground);
238
+ --sidebar-border: var(--border);
239
+
240
+ --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
241
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
242
+ --font-body: var(--font-sans);
243
+ --font-display: var(--font-sans);
244
+ --text-micro: 0.625rem;
245
+ --text-caption: 0.6875rem;
246
+ --text-label: 0.75rem;
247
+ --text-body: 0.875rem;
248
+ --text-body-lg: 1rem;
249
+ --text-heading-4: 0.9375rem;
250
+ --text-heading-4--line-height: 1.4;
251
+ --text-heading-4--font-weight: 600;
252
+ --text-heading-3: 1.125rem;
253
+ --text-heading-3--line-height: 1.35;
254
+ --text-heading-3--font-weight: 600;
255
+ --text-heading-2: 1.375rem;
256
+ --text-heading-2--line-height: 1.25;
257
+ --text-heading-2--font-weight: 600;
258
+ --text-heading-1: 1.875rem;
259
+ --text-heading-1--line-height: 1.15;
260
+ --text-heading-1--font-weight: 700;
261
+ --text-heading-1--letter-spacing: -0.018em;
262
+ --text-display: 2.25rem;
263
+ --text-display--line-height: 1.1;
264
+ --text-display--font-weight: 600;
265
+ --text-display--letter-spacing: -0.026em;
266
+
267
+ --radius: 0px;
268
+ --radius-control: calc(var(--radius) * 2);
317
269
  --radius-sm: calc(var(--radius) * 0.6);
318
270
  --radius-md: calc(var(--radius) * 0.8);
319
271
  --radius-lg: var(--radius);
320
272
  --radius-xl: calc(var(--radius) * 1.4);
321
273
  --radius-2xl: calc(var(--radius) * 1.6);
322
274
  --radius-popup-item-fit: min(var(--radius-popup-item), calc(var(--control-h-xs) / 2));
275
+ --radius-field: calc(var(--radius) * 2.2);
276
+ --radius-composer: calc(
277
+ min(var(--radius-control), calc(var(--control-h-xs) / 2)) +
278
+ clamp(0px, min(var(--radius-control), calc(var(--control-h-xs) / 2)) * 1000, var(--composer-padding) + var(--control-rim-width))
279
+ );
280
+ --radius-panel: calc(var(--radius) * 2.6);
281
+ --radius-scene: calc(var(--radius) * 2.8);
282
+ --corner-shape: round;
283
+ --radius-popup-item: calc(var(--radius-control) * 0.6);
284
+ --radius-popover: calc(var(--radius-popup-item-fit) + clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding)));
285
+
286
+ --composer-padding: calc(var(--spacing) * 2.5);
287
+ --popover-padding: 0.25rem;
288
+ --padding-x: 16px;
289
+ --padding-y: 10px;
290
+ --control-h: 36px;
291
+ --control-h-xs: round(var(--control-h) * 0.78, 1px);
292
+ --control-h-sm: round(var(--control-h) * 0.89, 1px);
323
293
  --control-h-md: var(--control-h);
324
- --sidebar: var(--canvas);
325
- --sidebar-foreground: var(--foreground);
326
- --sidebar-primary: var(--primary);
327
- --sidebar-primary-foreground: var(--primary-foreground);
328
- --sidebar-accent: var(--hover-fill);
329
- --sidebar-accent-foreground: var(--foreground);
330
- --sidebar-border: var(--border);
331
- --sidebar-ring: var(--focus-ring);
294
+ --control-h-lg: round(var(--control-h) * 1.11, 1px);
295
+ --sidebar-width: 16rem;
296
+ --sidebar-width-icon: 3rem;
297
+ --z-overlay: 70;
298
+ --z-modal: 71;
299
+ --z-popup: 80;
300
+ --z-tooltip: 90;
301
+ --z-toast: 95;
302
+ --focus-ring-width: 2px;
303
+ --focus-ring-style: solid;
304
+ --focus-ring-offset: 2px;
305
+ --control-rim-width: 1px;
306
+ --touch-target: 44px;
307
+ --target-min: 24px;
308
+ --text-input-min: 16px;
309
+
310
+ --shadow-color: oklch(0.2986 0 0);
311
+ --shadow-highlight: oklch(1 0 0 / 0.62);
312
+ --shadow-size: 0;
313
+ --shadow-opacity: 1;
314
+ --shadow-y: 1;
315
+ --shadow-control-multiplier: 1;
316
+ --shadow-panel-multiplier: 2;
317
+ --shadow-popover-multiplier: 4;
318
+ --shadow-modal-multiplier: 5;
319
+ --shadow-ambient-multiplier: 8;
320
+
321
+ --ease-standard: cubic-bezier(0.2, 0, 0, 1);
322
+ --ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
323
+ --duration-fast: 150ms;
324
+ --duration-base: 200ms;
325
+ --duration-slow: 300ms;
326
+ --duration-loop: 1000ms;
327
+
328
+ --popover-opacity: 1;
329
+ --backdrop-blur-popover: 0px;
330
+ --overlay-opacity: 0.2;
331
+ --backdrop-blur-overlay: 0px;
332
+ --scroll-fade-size: 0px;
333
+ --disabled-opacity: 0.45;
332
334
  }
333
335
 
334
336
  :where(.dark:root, .dark[data-skin], .dark [data-skin]) {
@@ -364,7 +366,6 @@
364
366
  --destructive-foreground: oklch(0.9645 0.008 84);
365
367
  --ring: oklch(0.66 0 0);
366
368
  --shadow-color: oklch(0 0 0);
367
- --destructive-text: oklch(from var(--destructive) 0.78 c h);
368
369
  --shadow-highlight: oklch(1 0 0 / 0.055);
369
370
  --badge-neutral: oklch(from var(--foreground) l c h / 0.1);
370
371
  --badge-neutral-border: oklch(from var(--foreground) l c h / 0.12);
@@ -443,6 +444,9 @@
443
444
  --color-destructive: var(--destructive);
444
445
  --color-destructive-foreground: var(--destructive-foreground);
445
446
  --color-destructive-text: var(--destructive-text);
447
+ --color-success: var(--success);
448
+ --color-warning: var(--warning);
449
+ --color-info: var(--info);
446
450
  --color-success-text: var(--success-text);
447
451
  --color-warning-text: var(--warning-text);
448
452
  --color-info-text: var(--info-text);
@@ -452,11 +456,17 @@
452
456
  --color-sidebar: var(--sidebar);
453
457
  --color-sidebar-foreground: var(--sidebar-foreground);
454
458
  --color-sidebar-primary: var(--sidebar-primary);
455
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
456
459
  --color-sidebar-accent: var(--sidebar-accent);
457
460
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
458
461
  --color-sidebar-border: var(--sidebar-border);
459
- --color-sidebar-ring: var(--sidebar-ring);
462
+ --color-chart-blue: var(--chart-blue);
463
+ --color-chart-purple: var(--chart-purple);
464
+ --color-chart-pink: var(--chart-pink);
465
+ --color-chart-orange: var(--chart-orange);
466
+ --color-chart-green: var(--chart-green);
467
+ --color-chart-yellow: var(--chart-yellow);
468
+ --color-chart-red: var(--chart-red);
469
+ --color-chart-neutral: var(--chart-neutral);
460
470
 
461
471
  --radius-sm: var(--radius-sm);
462
472
  --radius-md: var(--radius-md);
@@ -500,14 +510,6 @@
500
510
  --font-body: var(--font-body);
501
511
  --font-display: var(--font-display);
502
512
 
503
- --shadow-xs:
504
- inset 0 1px 0 oklch(from var(--shadow-highlight) l c h / calc(alpha * var(--shadow-opacity) * min(var(--shadow-size), 1))),
505
- 0 calc(1px * var(--shadow-size) * var(--shadow-control-multiplier) * var(--shadow-y))
506
- calc(1.5px * var(--shadow-size) * var(--shadow-control-multiplier)) calc(-0.5px * var(--shadow-size) * var(--shadow-control-multiplier))
507
- oklch(from var(--shadow-color) l c h / calc(0.05 * var(--shadow-opacity))),
508
- 0 calc(2px * var(--shadow-size) * var(--shadow-control-multiplier) * var(--shadow-y))
509
- calc(4px * var(--shadow-size) * var(--shadow-control-multiplier)) calc(-2px * var(--shadow-size) * var(--shadow-control-multiplier))
510
- oklch(from var(--shadow-color) l c h / calc(0.04 * var(--shadow-opacity)));
511
513
  --shadow-sm:
512
514
  inset 0 1px 0
513
515
  oklch(from var(--shadow-highlight) l c h / calc(alpha * var(--shadow-opacity) * min(var(--shadow-size), 1))),
@@ -588,8 +590,11 @@
588
590
  oklch(from var(--shadow-color) l c h / calc(0.05 * var(--shadow-opacity)));
589
591
 
590
592
  --shadow-overlay:
591
- 0 0 16px -4px oklch(from var(--shadow-color) l c h / calc(0.03 * var(--shadow-opacity))),
592
- 0 0 56px -8px oklch(from var(--shadow-color) l c h / calc(0.07 * var(--shadow-opacity)));
593
+ 0 0 calc(3.2px * var(--shadow-size) * var(--shadow-modal-multiplier)) calc(-0.8px * var(--shadow-size) * var(--shadow-modal-multiplier))
594
+ oklch(from var(--shadow-color) l c h / calc(0.03 * var(--shadow-opacity))),
595
+ 0 0 calc(11.2px * var(--shadow-size) * var(--shadow-modal-multiplier))
596
+ calc(-1.6px * var(--shadow-size) * var(--shadow-modal-multiplier))
597
+ oklch(from var(--shadow-color) l c h / calc(0.07 * var(--shadow-opacity)));
593
598
 
594
599
  --shadow-inset:
595
600
  inset 0 calc(1px * var(--shadow-size) * var(--shadow-control-multiplier) * var(--shadow-y))
@@ -641,30 +646,6 @@
641
646
  }
642
647
  }
643
648
 
644
- @supports not (corner-shape: squircle) {
645
- @container style(--corner-shape: squircle) {
646
- :where([data-control-ui][data-slot]) {
647
- --radius-control: calc(var(--radius) * 2 * var(--corner-radius-fit));
648
- --radius-popup-item: calc(var(--radius-control) * 0.6);
649
- --radius-popup-item-fit: min(var(--radius-popup-item), calc(var(--control-h-xs) / 2));
650
- --radius-popover: calc(var(--radius-popup-item-fit) + clamp(0px, var(--radius-popup-item-fit) * 1000, var(--popover-padding)));
651
- --radius-composer: calc(
652
- min(var(--radius-control), calc(var(--control-h-xs) / 2)) +
653
- clamp(0px, min(var(--radius-control), calc(var(--control-h-xs) / 2)) * 1000, var(--composer-padding) + var(--control-rim-width))
654
- );
655
-
656
- --radius-sm: calc(var(--radius) * 0.6 * var(--corner-radius-fit));
657
- --radius-md: calc(var(--radius) * 0.8 * var(--corner-radius-fit));
658
- --radius-lg: calc(var(--radius) * var(--corner-radius-fit));
659
- --radius-xl: calc(var(--radius) * 1.4 * var(--corner-radius-fit));
660
- --radius-2xl: calc(var(--radius) * 1.6 * var(--corner-radius-fit));
661
- --radius-field: calc(var(--radius) * 2.2 * var(--corner-radius-fit));
662
- --radius-panel: calc(var(--radius) * 2.6 * var(--corner-radius-fit));
663
- --radius-scene: calc(var(--radius) * 2.8 * var(--corner-radius-fit));
664
- }
665
- }
666
- }
667
-
668
649
  body {
669
650
  font-synthesis: none;
670
651
  -webkit-font-smoothing: antialiased;