@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
@@ -10,7 +10,7 @@
10
10
  --cui-filter-bar-padding-inline: calc(var(--spacing) * 2);
11
11
  --cui-filter-bar-font-size: var(--text-label);
12
12
  --cui-filter-bar-hover-background: var(--hover-fill);
13
- --filter-bar-inline-sign: 1;
13
+ --_filter-bar-inline-sign: 1;
14
14
  gap: var(--cui-filter-bar-gap);
15
15
  border: 0;
16
16
  padding: 0;
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  :where([data-control-family="filter-bar"][data-slot="root"]:dir(rtl)) {
21
- --filter-bar-inline-sign: -1;
21
+ --_filter-bar-inline-sign: -1;
22
22
  }
23
23
 
24
24
  :where([data-control-family="filter-bar"][data-slot="chip"]) {
@@ -68,7 +68,7 @@
68
68
 
69
69
  :where([data-control-family="filter-bar"][data-slot="exit"]) {
70
70
  pointer-events: none;
71
- transform-origin: calc(50% - 50% * var(--filter-bar-inline-sign)) center;
71
+ transform-origin: calc(50% - 50% * var(--_filter-bar-inline-sign)) center;
72
72
  animation: cui-filter-chip-exit var(--duration-fast) var(--ease-standard) forwards;
73
73
  }
74
74
 
@@ -84,7 +84,7 @@
84
84
  @keyframes cui-filter-segment-enter {
85
85
  from {
86
86
  opacity: 0;
87
- translate: calc(-4px * var(--filter-bar-inline-sign)) 0;
87
+ translate: calc(-4px * var(--_filter-bar-inline-sign)) 0;
88
88
  }
89
89
  to {
90
90
  opacity: 1;
@@ -95,7 +95,7 @@
95
95
  @keyframes cui-filter-chip-exit {
96
96
  to {
97
97
  opacity: 0;
98
- translate: calc(-4px * var(--filter-bar-inline-sign)) 0;
98
+ translate: calc(-4px * var(--_filter-bar-inline-sign)) 0;
99
99
  scale: 0.97;
100
100
  }
101
101
  }
@@ -125,31 +125,31 @@
125
125
  }
126
126
 
127
127
  @property --cui-filter-bar-radius {
128
- syntax: "<length>";
128
+ syntax: "<length-percentage>";
129
129
  inherits: true;
130
130
  initial-value: 0px;
131
131
  }
132
132
 
133
133
  @property --cui-filter-bar-height {
134
- syntax: "<length>";
134
+ syntax: "<length-percentage>";
135
135
  inherits: true;
136
136
  initial-value: 0px;
137
137
  }
138
138
 
139
139
  @property --cui-filter-bar-gap {
140
- syntax: "<length>";
140
+ syntax: "<length-percentage>";
141
141
  inherits: true;
142
142
  initial-value: 0px;
143
143
  }
144
144
 
145
145
  @property --cui-filter-bar-padding-inline {
146
- syntax: "<length>";
146
+ syntax: "<length-percentage>";
147
147
  inherits: true;
148
148
  initial-value: 0px;
149
149
  }
150
150
 
151
151
  @property --cui-filter-bar-font-size {
152
- syntax: "<length>";
152
+ syntax: "<length-percentage>";
153
153
  inherits: true;
154
154
  initial-value: 0px;
155
155
  }
@@ -31,6 +31,7 @@
31
31
  --cui-flow-controls-border-color: var(--border);
32
32
  --cui-flow-controls-shadow: var(--shadow-sm);
33
33
  --xy-edge-stroke: var(--cui-flow-edge-stroke);
34
+ --xy-edge-stroke-selected: var(--cui-flow-selected-edge-stroke);
34
35
  --xy-connectionline-stroke: var(--cui-flow-edge-stroke);
35
36
  --xy-connectionline-stroke-width: var(--cui-flow-edge-size);
36
37
  --xy-selection-background-color: oklch(from var(--primary) l c h / 0.08);
@@ -123,7 +124,8 @@
123
124
  stroke-dasharray: 5 5;
124
125
  }
125
126
 
126
- :where(.react-flow__edge.selected [data-control-family="flow"][data-slot="edge"]) {
127
+ :where(.react-flow__edge.selected [data-control-family="flow"][data-slot="edge"]),
128
+ :where(.react-flow__edge.selectable:focus-visible [data-control-family="flow"][data-slot="edge"]) {
127
129
  stroke: var(--cui-flow-selected-edge-stroke);
128
130
  }
129
131
 
@@ -168,7 +170,7 @@
168
170
  }
169
171
 
170
172
  @property --cui-flow-edge-size {
171
- syntax: "<length>";
173
+ syntax: "<length-percentage>";
172
174
  inherits: true;
173
175
  initial-value: 0px;
174
176
  }
@@ -221,7 +223,7 @@
221
223
  }
222
224
 
223
225
  @property --cui-flow-handle-size {
224
- syntax: "<length>";
226
+ syntax: "<length-percentage>";
225
227
  inherits: true;
226
228
  initial-value: 0px;
227
229
  }
@@ -16,6 +16,14 @@
16
16
  --cui-gradient-editor-stop-shadow: 0 0 0 1px oklch(from var(--foreground) l c h / 0.4);
17
17
  --cui-gradient-editor-track-radius: 9999px;
18
18
  }
19
+ :where([data-control-family="gradient-editor"][data-slot="preview"]),
20
+ :where([data-control-family="gradient-editor"][data-slot="track"]) {
21
+ background-image: var(--_gradient-editor-image), repeating-conic-gradient(var(--border) 0 25%, transparent 0 50%);
22
+ background-size:
23
+ auto,
24
+ calc(var(--spacing) * 2.5) calc(var(--spacing) * 2.5);
25
+ }
26
+
19
27
  :where([data-control-family="gradient-editor"][data-slot="preview"]) {
20
28
  block-size: calc(var(--spacing) * 32);
21
29
  border-radius: var(--cui-gradient-editor-preview-radius);
@@ -2,8 +2,10 @@
2
2
  :where([data-control-family="icon-picker"][data-slot="root"]) {
3
3
  --cui-icon-picker-cell-size: calc(var(--spacing) * 10);
4
4
  --cui-icon-picker-cell-radius: var(--radius-control);
5
+ --cui-icon-picker-icon-size: calc(var(--spacing) * 4);
5
6
  --cui-icon-picker-foreground: var(--foreground);
6
- --cui-icon-picker-active-background: var(--accent);
7
+ --cui-icon-picker-cell-hover-background: var(--accent);
8
+ --cui-icon-picker-cell-pressed-background: var(--accent);
7
9
  inline-size: calc(var(--_icon-picker-columns) * var(--cui-icon-picker-cell-size) + var(--spacing) * 4);
8
10
  max-inline-size: 100%;
9
11
  color: var(--cui-icon-picker-foreground);
@@ -11,9 +13,6 @@
11
13
  :where([data-control-family="icon-picker"][data-slot="content"]) {
12
14
  padding: calc(var(--spacing) * 2);
13
15
  max-block-size: 16rem;
14
- overflow-y: auto;
15
- overscroll-behavior: contain;
16
- scrollbar-width: thin;
17
16
  }
18
17
  :where([data-control-family="icon-picker"][data-slot="grid"]) {
19
18
  display: grid;
@@ -30,13 +29,31 @@
30
29
  color: inherit;
31
30
  cursor: pointer;
32
31
  transition: background-color var(--duration-fast) var(--ease-standard);
32
+ animation: icon-picker-icon-enter var(--duration-slow) var(--ease-emphasized) both;
33
33
  }
34
- :where([data-control-family="icon-picker"][data-slot="icon"]:is(:hover, [aria-pressed="true"])) {
35
- background: var(--cui-icon-picker-active-background);
34
+ @supports (order: sibling-index()) {
35
+ :where([data-control-family="icon-picker"][data-slot="icon"]) {
36
+ --_icon-picker-cell-index: calc(sibling-index() - 1);
37
+ animation-delay: calc(
38
+ min(
39
+ mod(var(--_icon-picker-cell-index), var(--_icon-picker-columns)) +
40
+ round(down, var(--_icon-picker-cell-index) / var(--_icon-picker-columns)),
41
+ 16
42
+ ) *
43
+ var(--duration-fast) /
44
+ 8
45
+ );
46
+ }
47
+ }
48
+ :where([data-control-family="icon-picker"][data-slot="icon"]:hover) {
49
+ background: var(--cui-icon-picker-cell-hover-background);
50
+ }
51
+ :where([data-control-family="icon-picker"][data-slot="icon"][aria-pressed="true"]) {
52
+ background: var(--cui-icon-picker-cell-pressed-background);
36
53
  }
37
54
  :where([data-control-family="icon-picker"][data-slot="icon"] svg) {
38
- inline-size: calc(var(--spacing) * 5);
39
- block-size: calc(var(--spacing) * 5);
55
+ inline-size: var(--cui-icon-picker-icon-size);
56
+ block-size: var(--cui-icon-picker-icon-size);
40
57
  }
41
58
  :where([data-control-family="icon-picker"][data-slot="colors"]) {
42
59
  display: flex;
@@ -80,7 +97,7 @@
80
97
  }
81
98
  }
82
99
  @property --cui-icon-picker-cell-size {
83
- syntax: "<length>";
100
+ syntax: "<length-percentage>";
84
101
  inherits: true;
85
102
  initial-value: 0px;
86
103
  }
@@ -89,13 +106,31 @@
89
106
  inherits: true;
90
107
  initial-value: 0px;
91
108
  }
109
+ @property --cui-icon-picker-icon-size {
110
+ syntax: "<length-percentage>";
111
+ inherits: true;
112
+ initial-value: 0px;
113
+ }
92
114
  @property --cui-icon-picker-foreground {
93
115
  syntax: "<color>";
94
116
  inherits: true;
95
117
  initial-value: transparent;
96
118
  }
97
- @property --cui-icon-picker-active-background {
119
+ @property --cui-icon-picker-cell-hover-background {
98
120
  syntax: "<color>";
99
121
  inherits: true;
100
122
  initial-value: transparent;
101
123
  }
124
+
125
+ @property --cui-icon-picker-cell-pressed-background {
126
+ syntax: "<color>";
127
+ inherits: true;
128
+ initial-value: transparent;
129
+ }
130
+
131
+ @keyframes icon-picker-icon-enter {
132
+ from {
133
+ opacity: 0;
134
+ scale: 0.5;
135
+ }
136
+ }
@@ -155,7 +155,7 @@
155
155
  }
156
156
 
157
157
  @property --cui-inline-attachment-radius {
158
- syntax: "<length>";
158
+ syntax: "<length-percentage>";
159
159
  inherits: true;
160
160
  initial-value: 0px;
161
161
  }
@@ -173,13 +173,13 @@
173
173
  }
174
174
 
175
175
  @property --cui-inline-attachment-padding {
176
- syntax: "<length>";
176
+ syntax: "<length-percentage>";
177
177
  inherits: true;
178
178
  initial-value: 0px;
179
179
  }
180
180
 
181
181
  @property --cui-inline-attachment-document-padding {
182
- syntax: "<length>";
182
+ syntax: "<length-percentage>";
183
183
  inherits: true;
184
184
  initial-value: 0px;
185
185
  }
@@ -206,7 +206,7 @@
206
206
  }
207
207
 
208
208
  @property --cui-inline-attachment-content-radius {
209
- syntax: "<length>";
209
+ syntax: "<length-percentage>";
210
210
  inherits: true;
211
211
  initial-value: 0px;
212
212
  }
@@ -150,7 +150,7 @@
150
150
  }
151
151
 
152
152
  @property --cui-inline-citation-trigger-radius {
153
- syntax: "<length>";
153
+ syntax: "<length-percentage>";
154
154
  inherits: true;
155
155
  initial-value: 0px;
156
156
  }
@@ -204,7 +204,7 @@
204
204
  }
205
205
 
206
206
  @property --cui-inline-citation-quote-radius {
207
- syntax: "<length>";
207
+ syntax: "<length-percentage>";
208
208
  inherits: true;
209
209
  initial-value: 0px;
210
210
  }
@@ -118,7 +118,7 @@
118
118
  }
119
119
 
120
120
  @property --cui-item-hover-background {
121
- syntax: "*";
121
+ syntax: "<color>";
122
122
  inherits: true;
123
123
  initial-value: transparent;
124
124
  }
@@ -142,19 +142,19 @@
142
142
  }
143
143
 
144
144
  @property --cui-item-gap {
145
- syntax: "<length>";
145
+ syntax: "<length-percentage>";
146
146
  inherits: true;
147
147
  initial-value: 0px;
148
148
  }
149
149
 
150
150
  @property --cui-item-padding-block {
151
- syntax: "<length>";
151
+ syntax: "<length-percentage>";
152
152
  inherits: true;
153
153
  initial-value: 0px;
154
154
  }
155
155
 
156
156
  @property --cui-item-padding-inline {
157
- syntax: "<length>";
157
+ syntax: "<length-percentage>";
158
158
  inherits: true;
159
159
  initial-value: 0px;
160
160
  }
@@ -33,13 +33,13 @@
33
33
  white-space: pre-wrap;
34
34
  outline: none;
35
35
  }
36
- :where([data-control-family="markdown-editor"][data-slot="root"]:has(.tiptap:focus-visible, textarea:focus-visible)) {
37
- outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring);
38
- outline-offset: var(--focus-ring-offset);
36
+ :where([data-control-family="markdown-editor"][data-slot="toolbar"]) {
37
+ min-inline-size: 0;
38
+ border-block-end: var(--cui-markdown-editor-border-width) solid var(--cui-markdown-editor-border-color);
39
39
  }
40
- :where([data-control-family="markdown-editor"] > [data-control-family="toolbar"]) {
40
+ :where([data-control-family="markdown-editor"][data-slot="toolbar"] [data-control-family="toolbar"][data-slot="root"]) {
41
41
  padding-inline: var(--cui-markdown-editor-padding);
42
- border-block-end: var(--cui-markdown-editor-border-width) solid var(--cui-markdown-editor-border-color);
42
+ white-space: nowrap;
43
43
  }
44
44
  :where([data-control-family="markdown-editor"] [data-markdown-drag-handle]) {
45
45
  position: absolute;
@@ -77,17 +77,11 @@
77
77
  float: inline-start;
78
78
  block-size: 0;
79
79
  }
80
- :where([data-control-family="markdown-editor"] .tiptap h1) {
81
- font-size: var(--text-heading-2);
82
- font-weight: var(--font-weight-semibold);
80
+ :where([data-control-family="markdown-editor"] .tiptap :is(h1, h2, h3, h4, h5, h6)) {
81
+ margin-block: var(--cui-markdown-editor-gap) 0;
83
82
  }
84
- :where([data-control-family="markdown-editor"] .tiptap h2) {
85
- font-size: var(--text-heading-3);
86
- font-weight: var(--font-weight-semibold);
87
- }
88
- :where([data-control-family="markdown-editor"] .tiptap :is(h3, h4, h5, h6)) {
89
- font-size: var(--text-heading-4);
90
- font-weight: var(--font-weight-semibold);
83
+ :where([data-control-family="markdown-editor"] .tiptap > :first-child) {
84
+ margin-block-start: 0;
91
85
  }
92
86
  :where([data-control-family="markdown-editor"] .tiptap strong) {
93
87
  font-weight: var(--font-weight-semibold);
@@ -114,12 +108,18 @@
114
108
  list-style: none;
115
109
  padding-inline-start: 0;
116
110
  }
117
- :where([data-control-family="markdown-editor"] .tiptap li[data-type="taskItem"]) {
111
+ :where([data-control-family="markdown-editor"] .tiptap [data-slot="task-item"]) {
118
112
  display: flex;
119
- align-items: baseline;
113
+ align-items: flex-start;
120
114
  gap: var(--cui-markdown-editor-gap);
121
115
  }
122
- :where([data-control-family="markdown-editor"] .tiptap li[data-type="taskItem"] > div) {
116
+ :where([data-control-family="markdown-editor"] .tiptap [data-slot="task-checkbox"]) {
117
+ display: inline-flex;
118
+ align-items: center;
119
+ block-size: 1lh;
120
+ flex-shrink: 0;
121
+ }
122
+ :where([data-control-family="markdown-editor"] .tiptap [data-slot="task-content"]) {
123
123
  flex: 1;
124
124
  min-inline-size: 0;
125
125
  }
@@ -144,7 +144,18 @@
144
144
  border-radius: var(--radius-sm);
145
145
  }
146
146
  :where([data-control-family="markdown-editor"] .tiptap .ProseMirror-selectednode) {
147
- outline: 2px solid var(--ring);
147
+ outline: none;
148
+ }
149
+ :where([data-control-family="markdown-editor"] [data-markdown-drag-preview]) {
150
+ position: fixed;
151
+ inset: -10000px auto auto -10000px;
152
+ min-block-size: 0;
153
+ max-block-size: calc(var(--spacing) * 24);
154
+ padding: 0;
155
+ overflow: hidden;
156
+ contain: layout paint;
157
+ background: transparent;
158
+ pointer-events: none;
148
159
  }
149
160
  :where([data-control-family="markdown-editor"] .tiptap [data-image-upload]) {
150
161
  padding: var(--cui-markdown-editor-padding);
@@ -186,31 +197,31 @@
186
197
  }
187
198
 
188
199
  @property --cui-markdown-editor-padding {
189
- syntax: "<length>";
200
+ syntax: "<length-percentage>";
190
201
  inherits: true;
191
202
  initial-value: 0px;
192
203
  }
193
204
 
194
205
  @property --cui-markdown-editor-gutter-size {
195
- syntax: "<length>";
206
+ syntax: "<length-percentage>";
196
207
  inherits: true;
197
208
  initial-value: 0px;
198
209
  }
199
210
 
200
211
  @property --cui-markdown-editor-min-height {
201
- syntax: "<length>";
212
+ syntax: "<length-percentage>";
202
213
  inherits: true;
203
214
  initial-value: 0px;
204
215
  }
205
216
 
206
217
  @property --cui-markdown-editor-max-height {
207
- syntax: "<length>";
218
+ syntax: "<length-percentage>";
208
219
  inherits: true;
209
220
  initial-value: 0px;
210
221
  }
211
222
 
212
223
  @property --cui-markdown-editor-gap {
213
- syntax: "<length>";
224
+ syntax: "<length-percentage>";
214
225
  inherits: true;
215
226
  initial-value: 0px;
216
227
  }
@@ -118,30 +118,6 @@
118
118
  margin-block: calc(var(--spacing) * 5) calc(var(--spacing) * 2);
119
119
  }
120
120
 
121
- :where([data-control-family="markdown"]:is([data-slot="h4"], [data-slot="h5"], [data-slot="h6"])) {
122
- font-weight: var(--font-weight-semibold);
123
- font-size: var(--text-body);
124
- line-height: var(--leading-tight);
125
- }
126
-
127
- :where([data-control-family="markdown"][data-slot="h3"]) {
128
- font-weight: var(--text-heading-4--font-weight);
129
- font-size: var(--text-heading-4);
130
- line-height: var(--text-heading-4--line-height);
131
- }
132
-
133
- :where([data-control-family="markdown"][data-slot="h2"]) {
134
- font-weight: var(--text-heading-3--font-weight);
135
- font-size: var(--text-heading-3);
136
- line-height: var(--text-heading-3--line-height);
137
- }
138
-
139
- :where([data-control-family="markdown"][data-slot="h1"]) {
140
- font-weight: var(--text-heading-2--font-weight);
141
- font-size: var(--text-heading-2);
142
- line-height: var(--text-heading-2--line-height);
143
- }
144
-
145
121
  :where([data-control-family="markdown"][data-slot="h1"]),
146
122
  :where([data-control-family="markdown"][data-slot="h2"]) {
147
123
  margin-block: calc(var(--spacing) * 6) calc(var(--spacing) * 3);
@@ -178,6 +154,26 @@
178
154
  margin-block-start: calc(var(--spacing) * 1);
179
155
  }
180
156
 
157
+ :where([data-control-family="markdown"][data-slot="unordered-list"].contains-task-list) {
158
+ padding-inline-start: 0;
159
+ }
160
+
161
+ :where([data-control-family="markdown"][data-slot="list-item"].task-list-item) {
162
+ list-style-type: none;
163
+ }
164
+
165
+ :where([data-control-family="markdown"][data-slot="unordered-list"].contains-task-list > li:not(.task-list-item)) {
166
+ margin-inline-start: calc(var(--spacing) * 6);
167
+ }
168
+
169
+ :where(
170
+ [data-control-family="markdown"][data-slot="list-item"].task-list-item
171
+ [data-control-family="choice"][data-choice-kind="checkbox"][data-slot="root"]
172
+ ) {
173
+ vertical-align: middle;
174
+ margin-inline-end: calc(var(--spacing) * 2);
175
+ }
176
+
181
177
  :where([data-control-family="markdown"][data-slot="table-scroll"]) {
182
178
  margin-block: calc(var(--spacing) * 4);
183
179
  }
@@ -307,7 +303,7 @@
307
303
  }
308
304
 
309
305
  @property --cui-markdown-font-size {
310
- syntax: "<length>";
306
+ syntax: "<length-percentage>";
311
307
  inherits: true;
312
308
  initial-value: 0px;
313
309
  }
@@ -319,13 +315,13 @@
319
315
  }
320
316
 
321
317
  @property --cui-markdown-flow-gap {
322
- syntax: "<length>";
318
+ syntax: "<length-percentage>";
323
319
  inherits: true;
324
320
  initial-value: 0px;
325
321
  }
326
322
 
327
323
  @property --cui-markdown-heading-gap {
328
- syntax: "<length>";
324
+ syntax: "<length-percentage>";
329
325
  inherits: true;
330
326
  initial-value: 0px;
331
327
  }
@@ -174,65 +174,67 @@
174
174
  }
175
175
 
176
176
  @property --cui-page-layout-article-size {
177
- syntax: "<length>";
177
+ syntax: "<length-percentage>";
178
178
  inherits: true;
179
179
  initial-value: 0px;
180
180
  }
181
181
 
182
182
  @property --cui-page-layout-aside-size {
183
- syntax: "<length>";
183
+ syntax: "<length-percentage>";
184
184
  inherits: true;
185
185
  initial-value: 0px;
186
186
  }
187
187
 
188
188
  @property --cui-page-layout-padding-inline {
189
- syntax: "<length>";
189
+ syntax: "<length-percentage>";
190
190
  inherits: true;
191
191
  initial-value: 0px;
192
192
  }
193
193
 
194
194
  @property --cui-page-layout-padding-block {
195
- syntax: "*";
195
+ syntax: "<length-percentage>+";
196
196
  inherits: true;
197
+ initial-value: 0px;
197
198
  }
198
199
 
199
200
  @property --cui-page-layout-column-gap {
200
- syntax: "<length>";
201
+ syntax: "<length-percentage>";
201
202
  inherits: true;
202
203
  initial-value: 0px;
203
204
  }
204
205
 
205
206
  @property --cui-page-layout-header-start-gap {
206
- syntax: "<length>";
207
+ syntax: "<length-percentage>";
207
208
  inherits: true;
208
209
  initial-value: 0px;
209
210
  }
210
211
 
211
212
  @property --cui-page-layout-header-gap {
212
- syntax: "<length>";
213
+ syntax: "<length-percentage>";
213
214
  inherits: true;
214
215
  initial-value: 0px;
215
216
  }
216
217
 
217
218
  @property --cui-page-layout-header-column-gap {
218
- syntax: "<length>";
219
+ syntax: "<length-percentage>";
219
220
  inherits: true;
220
221
  initial-value: 0px;
221
222
  }
222
223
 
223
224
  @property --cui-page-layout-header-row-gap {
224
- syntax: "<length>";
225
+ syntax: "<length-percentage>";
225
226
  inherits: true;
226
227
  initial-value: 0px;
227
228
  }
228
229
 
229
230
  @property --cui-page-layout-size {
230
- syntax: "*";
231
+ syntax: "<length-percentage> | none";
231
232
  inherits: true;
233
+ initial-value: none;
232
234
  }
233
235
 
234
236
  @property --cui-page-layout-sticky-gap {
235
- syntax: "<length>";
237
+ syntax: "<length-percentage>";
236
238
  inherits: true;
237
239
  initial-value: 0px;
238
240
  }
@@ -183,7 +183,7 @@
183
183
  }
184
184
 
185
185
  @property --cui-popup-title-font-size {
186
- syntax: "<length>";
186
+ syntax: "<length-percentage>";
187
187
  inherits: true;
188
188
  initial-value: 0px;
189
189
  }
@@ -197,7 +197,7 @@
197
197
  @property --cui-popup-title-line-height {
198
198
  syntax: "<number>";
199
199
  inherits: true;
200
- initial-value: 1;
200
+ initial-value: 1.5;
201
201
  }
202
202
 
203
203
  @property --cui-popup-title-letter-spacing {
@@ -188,7 +188,7 @@
188
188
  padding: var(--_popup-bar-padding);
189
189
  gap: calc(var(--spacing) * 0.5);
190
190
  --cui-popup-background: var(--card);
191
- --cui-popup-shadow: var(--shadow-xs);
191
+ --cui-popup-shadow: var(--shadow-sm);
192
192
  }
193
193
 
194
194
  :where([data-control-family="popup"][data-popup-kind="navigation-menu"][data-slot="list"]) {
@@ -277,7 +277,7 @@
277
277
  }
278
278
 
279
279
  @property --cui-popup-label-font-size {
280
- syntax: "<length>";
280
+ syntax: "<length-percentage>";
281
281
  inherits: true;
282
282
  initial-value: 0px;
283
283
  }
@@ -307,7 +307,7 @@
307
307
  }
308
308
 
309
309
  @property --cui-popup-shortcut-font-size {
310
- syntax: "<length>";
310
+ syntax: "<length-percentage>";
311
311
  inherits: true;
312
312
  initial-value: 0px;
313
313
  }