@fusion.dev/helix 0.144.0 → 0.146.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 (213) hide show
  1. package/custom-elements.json +17914 -4368
  2. package/dist/accordion/item/accordion-item.css.js +25 -10
  3. package/dist/accordion/item/accordion-item.d.ts +10 -0
  4. package/dist/aura/palette.d.ts +38 -0
  5. package/dist/aura/palette.js +22 -0
  6. package/dist/aura/root/aura-root.css.js +27 -3
  7. package/dist/aura/root/aura-root.d.ts +61 -14
  8. package/dist/aura/root/aura-root.js +40 -23
  9. package/dist/badge/root/badge-root.css.js +86 -16
  10. package/dist/badge/root/badge-root.d.ts +18 -0
  11. package/dist/badge/root/badge-root.js +6 -0
  12. package/dist/blockquote/root/blockquote-root.css.js +2 -2
  13. package/dist/blockquote/root/blockquote-root.d.ts +2 -0
  14. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +7 -7
  15. package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +5 -0
  16. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +24 -1
  17. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +4 -0
  18. package/dist/breadcrumbs/root/breadcrumbs-root.js +2 -0
  19. package/dist/button/root/button-root.css.js +4 -3
  20. package/dist/button/root/button-root.d.ts +2 -0
  21. package/dist/button-group/root/button-group-root.d.ts +3 -0
  22. package/dist/callout/root/callout-root.css.js +4 -3
  23. package/dist/callout/root/callout-root.d.ts +6 -2
  24. package/dist/canvas/root/canvas-root.css.js +1 -0
  25. package/dist/card/root/card-root.d.ts +6 -0
  26. package/dist/carousel/root/carousel-root.css.js +17 -1
  27. package/dist/chat/message/chat-message.css.js +0 -62
  28. package/dist/chat/message/chat-message.js +2 -1
  29. package/dist/chat/root/chat-root.css.js +7 -0
  30. package/dist/chat/root/chat-root.d.ts +2 -0
  31. package/dist/chat/root/chat-root.js +2 -1
  32. package/dist/chat/typing.css.d.ts +1 -0
  33. package/dist/chat/typing.css.js +62 -0
  34. package/dist/checkbox/root/checkbox-root.css.js +15 -0
  35. package/dist/checkbox/root/checkbox-root.d.ts +2 -1
  36. package/dist/code/root/code-root.css.js +2 -2
  37. package/dist/code/root/code-root.d.ts +2 -0
  38. package/dist/code-block/root/code-block-root.css.js +24 -0
  39. package/dist/code-block/root/code-block-root.d.ts +2 -1
  40. package/dist/color-input/root/color-input-root.css.js +10 -0
  41. package/dist/color-picker/root/color-picker-root.css.js +8 -0
  42. package/dist/color-picker/root/color-picker-root.d.ts +1 -0
  43. package/dist/copy-button/root/copy-button-root.css.js +15 -6
  44. package/dist/copy-button/root/copy-button-root.d.ts +7 -0
  45. package/dist/data-table/root/data-table-root.css.js +70 -0
  46. package/dist/data-table/root/data-table-root.d.ts +6 -0
  47. package/dist/date-input/root/date-input-root.css.js +10 -0
  48. package/dist/description-list/item/description-list-item.css.js +11 -0
  49. package/dist/donut-chart/root/donut-chart-root.css.js +19 -0
  50. package/dist/donut-chart/root/donut-chart-root.d.ts +3 -0
  51. package/dist/drawer/root/drawer-root.css.js +47 -0
  52. package/dist/drawer/root/drawer-root.d.ts +5 -0
  53. package/dist/drilldown/item/drilldown-item.css.js +8 -7
  54. package/dist/drilldown/item/drilldown-item.d.ts +6 -0
  55. package/dist/drilldown/root/drilldown-root.css.js +27 -13
  56. package/dist/drilldown/root/drilldown-root.d.ts +10 -0
  57. package/dist/element-events.generated.js +72 -13
  58. package/dist/file-input/root/file-input-root.css.js +12 -11
  59. package/dist/file-input/root/file-input-root.d.ts +11 -0
  60. package/dist/filter-input/root/filter-input-root.css.js +6 -5
  61. package/dist/filter-input/root/filter-input-root.d.ts +5 -0
  62. package/dist/flex/root/flex-root.css.js +143 -9
  63. package/dist/flex/root/flex-root.d.ts +62 -5
  64. package/dist/flex/root/flex-root.js +17 -1
  65. package/dist/graph/root/graph-root.css.js +11 -8
  66. package/dist/graph/root/graph-root.d.ts +8 -0
  67. package/dist/grid/root/grid-root.css.js +114 -11
  68. package/dist/grid/root/grid-root.d.ts +40 -0
  69. package/dist/grid/root/grid-root.js +13 -1
  70. package/dist/heatmap/root/heatmap-root.css.js +2 -1
  71. package/dist/icon-button/root/icon-button-root.css.js +68 -13
  72. package/dist/icon-button/root/icon-button-root.d.ts +4 -0
  73. package/dist/kbd/root/kbd-root.css.js +27 -0
  74. package/dist/kbd/root/kbd-root.d.ts +2 -0
  75. package/dist/lightbox/item/lightbox-item.css.js +4 -0
  76. package/dist/lightbox/root/lightbox-root.css.js +41 -0
  77. package/dist/line-chart/root/line-chart-root.css.js +16 -0
  78. package/dist/line-chart/root/line-chart-root.d.ts +2 -0
  79. package/dist/list/item/list-item.css.js +21 -1
  80. package/dist/list/item/list-item.d.ts +3 -0
  81. package/dist/list/root/list-root.css.js +13 -1
  82. package/dist/listbox/root/listbox-root.css.js +9 -0
  83. package/dist/listbox/root/listbox-root.d.ts +1 -0
  84. package/dist/loader/root/loader-root.css.js +3 -3
  85. package/dist/loader/root/loader-root.d.ts +2 -0
  86. package/dist/megamenu/root/megamenu-root.css.js +16 -13
  87. package/dist/megamenu/root/megamenu-root.d.ts +11 -0
  88. package/dist/menu/index.d.ts +1 -0
  89. package/dist/menu/index.js +1 -0
  90. package/dist/menu/item/menu-item.css.js +39 -4
  91. package/dist/menu/item/menu-item.d.ts +4 -0
  92. package/dist/menu/item/menu-item.js +2 -0
  93. package/dist/menu/section/menu-section.css.d.ts +1 -0
  94. package/dist/menu/section/menu-section.css.js +14 -0
  95. package/dist/menu/section/menu-section.d.ts +24 -0
  96. package/dist/menu/section/menu-section.js +16 -0
  97. package/dist/meter/root/meter-root.css.js +6 -3
  98. package/dist/meter/root/meter-root.d.ts +1 -0
  99. package/dist/navigation/root/navigation-root.css.js +3 -2
  100. package/dist/navigation/root/navigation-root.d.ts +13 -0
  101. package/dist/notifications/root/notifications-root.css.js +30 -1
  102. package/dist/notifications/root/notifications-root.d.ts +1 -0
  103. package/dist/number-input/root/number-input-root.css.js +12 -9
  104. package/dist/number-input/root/number-input-root.d.ts +8 -0
  105. package/dist/object-inspector/root/object-inspector-root.css.js +38 -7
  106. package/dist/object-inspector/root/object-inspector-root.d.ts +4 -1
  107. package/dist/object-inspector/root/object-inspector-root.js +2 -1
  108. package/dist/option/root/option-root.css.js +1 -1
  109. package/dist/orb/index.d.ts +1 -1
  110. package/dist/orb/index.js +1 -1
  111. package/dist/orb/root/orb-root.d.ts +40 -6
  112. package/dist/orb/root/orb-root.js +29 -11
  113. package/dist/outline/root/outline-root.css.js +10 -0
  114. package/dist/outline/root/outline-root.d.ts +7 -0
  115. package/dist/pin-input/root/pin-input-root.css.js +4 -4
  116. package/dist/pin-input/root/pin-input-root.d.ts +4 -0
  117. package/dist/progress/root/progress-root.css.js +4 -2
  118. package/dist/progress/root/progress-root.d.ts +1 -0
  119. package/dist/qr-code/root/qr-code-root.css.js +11 -0
  120. package/dist/quote/root/quote-root.css.js +3 -0
  121. package/dist/quote/root/quote-root.d.ts +2 -0
  122. package/dist/radio/root/radio-root.css.js +16 -0
  123. package/dist/radio/root/radio-root.d.ts +2 -1
  124. package/dist/sandbox/frame.d.ts +64 -0
  125. package/dist/sandbox/frame.js +146 -0
  126. package/dist/sandbox/index.d.ts +2 -0
  127. package/dist/sandbox/index.js +1 -0
  128. package/dist/sandbox/levels.d.ts +10 -0
  129. package/dist/sandbox/levels.js +5 -0
  130. package/dist/sandbox/root/sandbox-root.d.ts +3 -0
  131. package/dist/sandbox/root/sandbox-root.js +13 -3
  132. package/dist/sandbox/source/sandbox-source.css.js +70 -0
  133. package/dist/sandbox/source/sandbox-source.d.ts +35 -0
  134. package/dist/sandbox/source/sandbox-source.js +22 -3
  135. package/dist/sandbox/terminal/sandbox-terminal.css.js +39 -0
  136. package/dist/sandbox/terminal/sandbox-terminal.d.ts +50 -1
  137. package/dist/sandbox/terminal/sandbox-terminal.js +61 -4
  138. package/dist/sandbox/tokens.d.ts +39 -0
  139. package/dist/sandbox/tokens.js +9 -0
  140. package/dist/scatter-chart/root/scatter-chart-root.css.js +9 -0
  141. package/dist/scatter-chart/root/scatter-chart-root.d.ts +2 -0
  142. package/dist/scroll-area/root/scroll-area-root.css.js +83 -1
  143. package/dist/scroll-area/root/scroll-area-root.d.ts +6 -0
  144. package/dist/skeleton/root/skeleton-root.css.js +11 -11
  145. package/dist/skeleton/root/skeleton-root.d.ts +1 -0
  146. package/dist/skip-link/root/skip-link-root.css.js +20 -8
  147. package/dist/skip-link/root/skip-link-root.d.ts +12 -3
  148. package/dist/slider/root/slider-root.css.js +26 -0
  149. package/dist/sparkline/root/sparkline-root.css.js +49 -0
  150. package/dist/sparkline/root/sparkline-root.d.ts +6 -0
  151. package/dist/sparkline/root/sparkline-root.js +2 -1
  152. package/dist/speed-dial/item/speed-dial-item.css.js +18 -10
  153. package/dist/speed-dial/item/speed-dial-item.d.ts +7 -0
  154. package/dist/speed-dial/root/speed-dial-root.css.js +17 -8
  155. package/dist/speed-dial/root/speed-dial-root.d.ts +16 -1
  156. package/dist/speed-dial/root/speed-dial-root.js +4 -1
  157. package/dist/stat/root/stat-root.css.js +4 -0
  158. package/dist/steps/root/steps-root.css.js +28 -0
  159. package/dist/steps/root/steps-root.d.ts +5 -0
  160. package/dist/steps/step/step.js +2 -1
  161. package/dist/table/root/table-root.css.js +18 -0
  162. package/dist/table/root/table-root.d.ts +6 -0
  163. package/dist/table/root/table-root.js +2 -0
  164. package/dist/table/row/table-row.css.js +18 -0
  165. package/dist/table/row/table-row.d.ts +2 -0
  166. package/dist/table/row/table-row.js +2 -0
  167. package/dist/tabs/panel/tab-panel.css.js +5 -1
  168. package/dist/tabs/root/tabs-root.css.js +58 -3
  169. package/dist/tabs/root/tabs-root.d.ts +4 -0
  170. package/dist/tabs/tab/tab.css.js +21 -10
  171. package/dist/tabs/tab/tab.d.ts +7 -0
  172. package/dist/tag/group/tag-group.css.js +6 -0
  173. package/dist/text/clamp.d.ts +11 -0
  174. package/dist/text/clamp.js +3 -0
  175. package/dist/text/root/text-root.css.js +79 -45
  176. package/dist/text/root/text-root.d.ts +49 -7
  177. package/dist/text/root/text-root.js +17 -11
  178. package/dist/textarea/root/textarea-root.css.js +27 -0
  179. package/dist/time-input/root/time-input-root.css.js +12 -0
  180. package/dist/time-picker/root/time-picker-root.css.js +1 -1
  181. package/dist/timeline/group/timeline-group.css.d.ts +1 -0
  182. package/dist/timeline/group/timeline-group.css.js +32 -0
  183. package/dist/timeline/group/timeline-group.d.ts +25 -0
  184. package/dist/timeline/group/timeline-group.js +16 -0
  185. package/dist/timeline/index.d.ts +1 -0
  186. package/dist/timeline/index.js +1 -0
  187. package/dist/timeline/item/timeline-item.css.js +43 -16
  188. package/dist/timeline/root/timeline-root.css.js +56 -0
  189. package/dist/timeline/root/timeline-root.d.ts +26 -0
  190. package/dist/timeline/root/timeline-root.js +7 -0
  191. package/dist/toast/item/toast-item.css.js +10 -0
  192. package/dist/toast/root/toast-root.d.ts +1 -0
  193. package/dist/toast/root/toast-root.js +1 -0
  194. package/dist/toggle/group/toggle-group.css.js +10 -7
  195. package/dist/toggle/group/toggle-group.d.ts +6 -1
  196. package/dist/toggle/root/toggle-root.d.ts +6 -0
  197. package/dist/toolbar/root/toolbar-root.css.js +4 -0
  198. package/dist/toolbar/root/toolbar-root.d.ts +5 -0
  199. package/dist/tooltip/root/tooltip-root.css.js +5 -5
  200. package/dist/tooltip/root/tooltip-root.d.ts +4 -0
  201. package/dist/tree/item/tree-item.css.js +89 -7
  202. package/dist/tree/item/tree-item.d.ts +19 -0
  203. package/dist/trend/root/trend-root.css.js +3 -5
  204. package/dist/trend/root/trend-root.d.ts +2 -2
  205. package/dist/video/root/video-root.css.js +6 -0
  206. package/dist/video/root/video-root.d.ts +3 -0
  207. package/dist/virtual-list/root/virtual-list-root.css.js +19 -0
  208. package/dist/virtual-list/root/virtual-list-root.d.ts +10 -3
  209. package/lint.json +1 -1
  210. package/package.json +9 -9
  211. package/types/jsx.d.ts +8253 -1233
  212. package/types/svelte.d.ts +2 -0
  213. package/types/vue.d.ts +2357 -312
@@ -1,5 +1,14 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`[part="button"] {
2
+ export const styles = createSheet(`:host {
3
+ --_icon-button-ink: var(--copy-button-color, var(--helix-color-foreground-muted));
4
+ --_icon-button-ink-hover: var(
5
+ --copy-button-color-hover,
6
+ var(--copy-button-color, var(--helix-color-foreground))
7
+ );
8
+ --_icon-button-size: var(--copy-button-size, var(--icon-button-size, var(--helix-size-control)));
9
+ }
10
+
11
+ [part="button"] {
3
12
  display: inline-grid;
4
13
  place-items: center;
5
14
  }
@@ -13,21 +22,21 @@ display: none;
13
22
  }
14
23
 
15
24
  [part="button"][data-copied] {
16
- color: var(--helix-color-success);
25
+ color: var(--copy-button-success-color, var(--helix-color-success));
17
26
  }
18
27
 
19
28
  :host(:not(:disabled)) [part="button"][data-copied]:hover {
20
- color: var(--helix-color-success);
29
+ color: var(--copy-button-success-color, var(--helix-color-success));
21
30
  }
22
31
 
23
32
  [part="button"][data-failed],
24
33
  :host(:not(:disabled)) [part="button"][data-failed]:hover {
25
- color: var(--helix-color-danger);
34
+ color: var(--copy-button-error-color, var(--helix-color-danger));
26
35
  }
27
36
 
28
37
  slot > svg {
29
- block-size: var(--helix-size-icon-tight);
30
- inline-size: var(--helix-size-icon-tight);
38
+ block-size: var(--copy-button-icon-size, var(--helix-size-icon-tight));
39
+ inline-size: var(--copy-button-icon-size, var(--helix-size-icon-tight));
31
40
  }
32
41
 
33
42
  @media print {
@@ -14,6 +14,13 @@ declare const HelixCopyButton_base: (new (...args: any[]) => import("../../share
14
14
  * @status stable
15
15
  * @category actions
16
16
  * @documentation https://fusion.dev/helix/components/copy-button
17
+ *
18
+ * @cssproperty --copy-button-color - The icon's color at rest. A `tone` keeps its own.
19
+ * @cssproperty --copy-button-color-hover - The icon's color under the pointer. Without it, `--copy-button-color` also applies on hover.
20
+ * @cssproperty --copy-button-error-color - The cross's color after a copy that put nothing on the clipboard.
21
+ * @cssproperty --copy-button-icon-size - The width and height of the clipboard, check, and cross icons drawn by default.
22
+ * @cssproperty --copy-button-size - Edge length of the button. Without it, `--icon-button-size` applies.
23
+ * @cssproperty --copy-button-success-color - The check mark's color after a copy.
17
24
  */
18
25
  export declare class HelixCopyButton extends HelixCopyButton_base {
19
26
  static tier: string;
@@ -87,6 +87,7 @@ cursor: pointer;
87
87
  }
88
88
 
89
89
  [part~="cell"]:focus-visible,
90
+ [part="more-cell"]:focus-visible,
90
91
  [part~="select"]:focus-visible,
91
92
  [part="select-all"]:focus-visible {
92
93
  outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
@@ -142,6 +143,75 @@ margin-inline-start: auto;
142
143
  grid-column: 1 / -1;
143
144
  }
144
145
 
146
+ :host([child-field]) [part~="cell-header"] {
147
+ --_data-table-gutter: calc(
148
+ var(--data-table-toggle-size, var(--helix-size-icon-tight)) +
149
+ var(--helix-space-2xs)
150
+ );
151
+ padding-inline-start: calc(
152
+ (var(--data-table-level, 1) - 1) *
153
+ var(--data-table-indent, var(--_data-table-gutter))
154
+ );
155
+ }
156
+
157
+ :host([child-field]) [part~="cell-header"]:not(:has([part~="toggle"])) {
158
+ padding-inline-start: calc(
159
+ (var(--data-table-level, 1) - 1) *
160
+ var(--data-table-indent, var(--_data-table-gutter)) +
161
+ var(--_data-table-gutter)
162
+ );
163
+ }
164
+
165
+ [part~="toggle"] {
166
+ align-items: center;
167
+ background: none;
168
+ block-size: var(--data-table-toggle-size, var(--helix-size-icon-tight));
169
+ border: none;
170
+ color: var(--data-table-toggle-color, var(--helix-color-foreground-muted));
171
+ cursor: pointer;
172
+ display: inline-flex;
173
+ inline-size: var(--data-table-toggle-size, var(--helix-size-icon-tight));
174
+ justify-content: center;
175
+ margin-inline-end: var(--helix-space-2xs);
176
+ padding: 0;
177
+ vertical-align: middle;
178
+ }
179
+
180
+ [part="toggle-mark"] {
181
+ block-size: 100%;
182
+ inline-size: 100%;
183
+ }
184
+
185
+ [part="more"] {
186
+ display: contents;
187
+ }
188
+
189
+ [part="more-cell"] {
190
+ display: flex;
191
+ grid-column: 1 / -1;
192
+ padding-block: var(--data-table-padding-block, var(--helix-space-sm));
193
+ }
194
+
195
+ [part="more-button"] {
196
+ background: none;
197
+ border: var(--helix-border-thin) solid
198
+ var(--data-table-more-border-color, var(--helix-color-border));
199
+ border-radius: var(--data-table-more-radius, var(--helix-radii-sm));
200
+ color: var(--data-table-color, var(--helix-color-foreground));
201
+ cursor: pointer;
202
+ font-family: var(--helix-font-sans);
203
+ font-size: var(--data-table-text, var(--helix-text-sm));
204
+ padding-block: var(--helix-space-2xs);
205
+ padding-inline: var(--helix-space-sm);
206
+ }
207
+
208
+ [part="more-button"]:hover {
209
+ background-color: var(
210
+ --data-table-more-hover-background-color,
211
+ var(--helix-color-surface-raised)
212
+ );
213
+ }
214
+
145
215
  :host([windowed]) [part="table"] {
146
216
  block-size: var(--data-table-block-size, 24em);
147
217
  overflow-y: auto;
@@ -44,12 +44,18 @@ import '../../table/index.js';
44
44
  * @cssproperty --data-table-heading-background-color - The fill behind a heading while `windowed`.
45
45
  * It is opaque, because rows scroll under the sticky heading. Unset otherwise.
46
46
  * @cssproperty --data-table-heading-color - The text color of a heading.
47
+ * @cssproperty --data-table-indent - How far a tree grid's row header steps in for each level. It defaults to the width of the mark that opens a row.
48
+ * @cssproperty --data-table-more-border-color - The color of the edge around the button in the `load-more` row.
49
+ * @cssproperty --data-table-more-hover-background-color - The fill behind the button in the `load-more` row while the pointer is over it.
50
+ * @cssproperty --data-table-more-radius - The corner radius of the button in the `load-more` row.
47
51
  * @cssproperty --data-table-padding-block - The space above and below a cell's content.
48
52
  * @cssproperty --data-table-padding-inline - The space on either side of a cell's content.
49
53
  * @cssproperty --data-table-rule-color - The color of the line between rows. It takes a
50
54
  * color only, because it fills the color in a border shorthand, and a full border value
51
55
  * makes the rule invalid. It is drawn on the cells, because the row is `display: contents`.
52
56
  * @cssproperty --data-table-text - The font size of headings and cells.
57
+ * @cssproperty --data-table-toggle-color - The color of the mark that opens and closes a row of a tree grid.
58
+ * @cssproperty --data-table-toggle-size - The size of the mark that opens and closes a row of a tree grid, and of the room a row with no children keeps for it.
53
59
  */
54
60
  export declare class HelixDataTable extends HelixHeadlessDataTable {
55
61
  static tier: string;
@@ -51,6 +51,16 @@ padding: var(--helix-space-sm);
51
51
  position: absolute;
52
52
  }
53
53
 
54
+ ::slotted([slot="panel-header"]) {
55
+ display: block;
56
+ margin-block-end: var(--helix-space-sm);
57
+ }
58
+
59
+ ::slotted([slot="panel-footer"]) {
60
+ display: block;
61
+ margin-block-start: var(--helix-space-sm);
62
+ }
63
+
54
64
  :host(:disabled) [part="field"] {
55
65
  color: var(--helix-color-foreground-subtle);
56
66
  }
@@ -24,6 +24,17 @@ overflow-wrap: anywhere;
24
24
  text-align: var(--_description-list-value-align, start);
25
25
  }
26
26
 
27
+ ::slotted(dd) {
28
+ color: var(--helix-color-foreground);
29
+ font-variant-numeric: var(--_description-list-value-figures, normal);
30
+ grid-column: -2 / -1;
31
+ justify-self: var(--_description-list-value-align, stretch);
32
+ margin: 0;
33
+ min-inline-size: 0;
34
+ overflow-wrap: anywhere;
35
+ text-align: var(--_description-list-value-align, start);
36
+ }
37
+
27
38
  @media print {
28
39
  :host {
29
40
  break-inside: avoid;
@@ -185,4 +185,23 @@ margin: var(--helix-space-none);
185
185
  overflow: hidden;
186
186
  position: absolute;
187
187
  white-space: nowrap;
188
+ }
189
+
190
+ [part="slice-label"] {
191
+ background-color: var(--donut-chart-slice-label-background-color, var(--helix-color-surface));
192
+ border-radius: var(--helix-radii-sm);
193
+ color: var(--donut-chart-slice-label-color, var(--helix-color-foreground));
194
+ font-family: var(--helix-font-sans);
195
+ font-size: var(--donut-chart-slice-label-font-size, var(--helix-text-xs));
196
+ font-variant-numeric: tabular-nums;
197
+ line-height: 1.4;
198
+ padding: 0 var(--helix-space-2xs);
199
+ pointer-events: none;
200
+ position: absolute;
201
+ translate: -50% -50%;
202
+ white-space: nowrap;
203
+ }
204
+
205
+ :host([sweep="half"]:dir(rtl)) [part="slice-label"] {
206
+ translate: 50% -50%;
188
207
  }`);
@@ -28,6 +28,9 @@ import '../../tooltip/index.js';
28
28
  *
29
29
  * @cssproperty --donut-chart-edge-stroke - Thickness of the slice boundary under `outlined`.
30
30
  * @cssproperty --donut-chart-size - Width and height of the ring.
31
+ * @cssproperty --donut-chart-slice-label-background-color - Plate behind a slice's share, under `slice-labels`.
32
+ * @cssproperty --donut-chart-slice-label-color - Color of a slice's share, under `slice-labels`.
33
+ * @cssproperty --donut-chart-slice-label-font-size - Size of a slice's share, under `slice-labels`.
31
34
  * @cssproperty --donut-chart-track-color - Color of the ring under the slices.
32
35
  */
33
36
  export declare class HelixDonutChart extends HelixHeadlessDonutChart {
@@ -195,6 +195,53 @@ overflow-y: auto;
195
195
  padding-inline: var(--helix-size-focus-reach);
196
196
  }
197
197
 
198
+ [part="dismiss"] {
199
+ all: unset;
200
+
201
+ box-sizing: border-box;
202
+ position: absolute;
203
+ inset-block-start: calc(
204
+ var(--drawer-padding-block-start, var(--drawer-padding, var(--helix-space-2xl))) +
205
+ (var(--helix-text-lg) * var(--helix-leading-tight) - var(--helix-size-control-sm)) /
206
+ 2
207
+ );
208
+ inset-inline-end: var(--helix-space-md);
209
+ block-size: var(--helix-size-control-sm);
210
+ border-radius: var(--helix-radii-sm);
211
+ color: var(--helix-color-foreground-muted);
212
+ cursor: pointer;
213
+ display: inline-flex;
214
+ inline-size: var(--helix-size-control-sm);
215
+ place-content: center;
216
+ place-items: center;
217
+ transition: color var(--helix-duration-fast) var(--helix-easing-standard);
218
+ }
219
+
220
+ [part="dismiss"] svg {
221
+ block-size: var(--helix-size-icon-sm);
222
+ inline-size: var(--helix-size-icon-sm);
223
+ }
224
+
225
+ [part="dismiss"]:hover {
226
+ background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);
227
+ color: var(--helix-color-foreground);
228
+ }
229
+
230
+ [part="dismiss"]:focus-visible {
231
+ outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
232
+ outline-offset: var(--helix-size-focus-offset);
233
+ }
234
+
235
+ :host([dismissible]) ::slotted([slot="header"]) {
236
+ padding-inline-end: calc(var(--helix-size-control-sm) + var(--helix-space-xs));
237
+ }
238
+
239
+ @media (prefers-reduced-motion: reduce) {
240
+ [part="dismiss"] {
241
+ transition: none;
242
+ }
243
+ }
244
+
198
245
  @media print {
199
246
  :host {
200
247
  display: none;
@@ -15,9 +15,14 @@ import type { CSSResultGroup } from 'lit';
15
15
  * @documentation https://fusion.dev/helix/components/drawer
16
16
  *
17
17
  * @slot - The drawer's content.
18
+ * @slot dismiss-icon - Replaces the glyph inside the close control.
19
+ * @slot footer - Content pinned below the scrolling area, such as the drawer's actions.
18
20
  * @slot header - Content pinned above the scrolling area.
19
21
  *
20
22
  * @csspart content - The scrolling content region.
23
+ * @csspart dismiss - The close control, drawn when the drawer is `dismissible`, in the corner by the title.
24
+ * @csspart dismiss-mark - The glyph on the close control, where none is slotted.
25
+ * @csspart footer - The footer region.
21
26
  * @csspart header - The header region.
22
27
  * @csspart panel - The sliding panel.
23
28
  *
@@ -6,17 +6,17 @@ display: block;
6
6
  [part="item"] {
7
7
  all: unset;
8
8
  align-items: center;
9
- block-size: var(--helix-size-control-tight);
9
+ block-size: var(--drilldown-item-block-size, var(--helix-size-control-tight));
10
10
  box-sizing: border-box;
11
11
  inline-size: 100%;
12
- color: var(--helix-color-foreground);
12
+ color: var(--drilldown-item-color, var(--helix-color-foreground));
13
13
  cursor: pointer;
14
14
  display: flex;
15
15
  font-family: var(--helix-font-sans);
16
- font-size: var(--helix-text-sm);
16
+ font-size: var(--drilldown-item-font-size, var(--helix-text-sm));
17
17
  gap: var(--helix-space-xs);
18
18
 
19
- padding-inline: var(--helix-space-sm);
19
+ padding-inline: var(--drilldown-item-padding-inline, var(--helix-space-sm));
20
20
  user-select: none;
21
21
  }
22
22
 
@@ -27,9 +27,10 @@ text-overflow: ellipsis;
27
27
  white-space: nowrap;
28
28
  }
29
29
 
30
- [part="mark"] {
30
+ [part="mark"],
31
+ slot[name="chevron"]::slotted(*) {
31
32
  block-size: var(--helix-size-icon-tight);
32
- color: var(--helix-color-foreground-subtle);
33
+ color: var(--drilldown-item-mark-color, var(--helix-color-foreground-subtle));
33
34
  flex: none;
34
35
  inline-size: var(--helix-size-icon-tight);
35
36
  }
@@ -49,5 +50,5 @@ outline-offset: calc(var(--helix-size-focus-offset) * -1);
49
50
 
50
51
  :host([disabled]) [part="item"] {
51
52
  cursor: default;
52
- opacity: 0.5;
53
+ opacity: var(--drilldown-item-disabled-opacity, 0.5);
53
54
  }`);
@@ -12,7 +12,13 @@ import type { CSSResultGroup } from 'lit';
12
12
  * @aliases Panel item, Drill row
13
13
  * @documentation https://fusion.dev/helix/components/drilldown
14
14
  *
15
+ * @cssproperty --drilldown-item-block-size - Height of a row.
16
+ * @cssproperty --drilldown-item-color - Color of a row's words.
17
+ * @cssproperty --drilldown-item-disabled-opacity - How faint a disabled row is drawn.
18
+ * @cssproperty --drilldown-item-font-size - Size of a row's words.
15
19
  * @cssproperty --drilldown-item-hover-color - Fill when a row is under the pointer.
20
+ * @cssproperty --drilldown-item-mark-color - Color of the caret on a row that opens a page.
21
+ * @cssproperty --drilldown-item-padding-inline - Space at either end of a row.
16
22
  */
17
23
  export declare class HelixDrilldownItem extends HelixHeadlessDrilldownItem {
18
24
  static styles: CSSResultGroup;
@@ -11,8 +11,9 @@ overflow: hidden;
11
11
  [part="header"] {
12
12
  align-items: center;
13
13
 
14
- block-size: var(--helix-size-control);
15
- border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
14
+ block-size: var(--drilldown-header-block-size, var(--helix-size-control));
15
+ border-block-end: var(--helix-border-thin) solid
16
+ var(--drilldown-header-border-color, var(--helix-color-border));
16
17
  display: flex;
17
18
  gap: var(--helix-space-2xs);
18
19
  padding-inline: var(--helix-space-2xs);
@@ -24,20 +25,24 @@ align-items: center;
24
25
  block-size: var(--helix-size-control-tight);
25
26
  border-radius: var(--helix-radii-sm);
26
27
  box-sizing: border-box;
27
- color: var(--helix-color-foreground-muted);
28
+ color: var(--drilldown-back-color, var(--helix-color-foreground-muted));
28
29
  cursor: pointer;
29
30
  display: flex;
30
31
  inline-size: var(--helix-size-control-tight);
31
32
  justify-content: center;
32
33
  }
33
34
 
34
- [part="back"] svg {
35
+ [part="back"] svg,
36
+ slot[name="back-icon"]::slotted(*) {
35
37
  block-size: var(--helix-size-icon-tight);
36
38
  inline-size: var(--helix-size-icon-tight);
37
39
  }
38
40
 
39
41
  [part="back"]:hover {
40
- background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);
42
+ background-color: var(
43
+ --drilldown-back-hover-background-color,
44
+ color-mix(in oklab, var(--helix-color-foreground) 8%, transparent)
45
+ );
41
46
  color: var(--helix-color-foreground);
42
47
  }
43
48
 
@@ -47,38 +52,47 @@ outline-offset: var(--helix-size-focus-offset);
47
52
  }
48
53
 
49
54
  [part="title"] {
50
- color: var(--helix-color-foreground);
55
+ color: var(--drilldown-title-color, var(--helix-color-foreground));
51
56
  font-family: var(--helix-font-sans);
52
- font-size: var(--helix-text-sm);
53
- font-weight: var(--helix-weight-medium);
57
+ font-size: var(--drilldown-title-font-size, var(--helix-text-sm));
58
+ font-weight: var(--drilldown-title-font-weight, var(--helix-weight-medium));
54
59
  overflow: hidden;
55
60
  text-overflow: ellipsis;
56
61
  white-space: nowrap;
57
62
  }
58
63
 
59
64
  [part="page"] {
60
- padding-block: var(--helix-space-2xs);
65
+
66
+ --_drilldown-sign: 1;
67
+
68
+ padding-block: var(--drilldown-page-padding-block, var(--helix-space-2xs));
69
+ }
70
+
71
+ :host(:dir(rtl)) [part="page"] {
72
+ --_drilldown-sign: -1;
61
73
  }
62
74
 
63
75
  :host([data-direction="forward"]) [part="page"] {
64
- animation: drilldown-forward var(--helix-duration-normal) var(--helix-easing-decelerate);
76
+ animation: drilldown-forward var(--drilldown-duration, var(--helix-duration-normal))
77
+ var(--helix-easing-decelerate);
65
78
  }
66
79
 
67
80
  :host([data-direction="back"]) [part="page"] {
68
- animation: drilldown-back var(--helix-duration-normal) var(--helix-easing-decelerate);
81
+ animation: drilldown-back var(--drilldown-duration, var(--helix-duration-normal))
82
+ var(--helix-easing-decelerate);
69
83
  }
70
84
 
71
85
  @keyframes drilldown-forward {
72
86
  from {
73
87
  opacity: 0;
74
- translate: 12% 0;
88
+ translate: calc(var(--drilldown-travel, 12%) * var(--_drilldown-sign, 1)) 0;
75
89
  }
76
90
  }
77
91
 
78
92
  @keyframes drilldown-back {
79
93
  from {
80
94
  opacity: 0;
81
- translate: -12% 0;
95
+ translate: calc(var(--drilldown-travel, 12%) * var(--_drilldown-sign, 1) * -1) 0;
82
96
  }
83
97
  }
84
98
 
@@ -17,8 +17,18 @@ import type { CSSResultGroup } from 'lit';
17
17
  * @aliases Panel, Nested list, Drill-in
18
18
  * @documentation https://fusion.dev/helix/components/drilldown
19
19
  *
20
+ * @cssproperty --drilldown-back-color - Color of the back button's icon.
21
+ * @cssproperty --drilldown-back-hover-background-color - Fill of the back button under the pointer.
20
22
  * @cssproperty --drilldown-background-color - Fill behind the pages.
23
+ * @cssproperty --drilldown-duration - How long a page takes to slide in.
24
+ * @cssproperty --drilldown-header-block-size - Height of the bar above a page.
25
+ * @cssproperty --drilldown-header-border-color - Color of the rule under the bar above a page.
21
26
  * @cssproperty --drilldown-inline-size - Width of the region.
27
+ * @cssproperty --drilldown-page-padding-block - Space above and below a page's rows.
28
+ * @cssproperty --drilldown-title-color - Color of the page's name.
29
+ * @cssproperty --drilldown-title-font-size - Size of the page's name.
30
+ * @cssproperty --drilldown-title-font-weight - Weight of the page's name.
31
+ * @cssproperty --drilldown-travel - How far a page slides as it arrives, along the line of text.
22
32
  */
23
33
  export declare class HelixDrilldown extends HelixHeadlessDrilldown {
24
34
  static styles: CSSResultGroup;
@@ -3,7 +3,9 @@ registerElementEvents({
3
3
  'helix-accordion-item': ['helix-before-close', 'helix-before-open', 'toggle'],
4
4
  'helix-announcement': ['helix-dismiss'],
5
5
  'helix-app-header': ['helix-scrolled'],
6
+ 'helix-aura': ['helix-aura-fallback'],
6
7
  'helix-avatar': ['error', 'load'],
8
+ 'helix-button': ['helix-press'],
7
9
  'helix-callout': ['helix-dismiss'],
8
10
  'helix-canvas': [
9
11
  'helix-before-move',
@@ -22,7 +24,7 @@ registerElementEvents({
22
24
  ],
23
25
  'helix-carousel': ['helix-activate', 'helix-select'],
24
26
  'helix-chat': ['helix-before-pin', 'helix-history', 'helix-pin', 'helix-send'],
25
- 'helix-chat-composer': ['helix-send', 'input'],
27
+ 'helix-chat-composer': ['helix-send', 'helix-typing', 'input'],
26
28
  'helix-chat-message': ['helix-send'],
27
29
  'helix-checkbox': ['change', 'helix-before-toggle', 'input'],
28
30
  'helix-checkbox-group': ['change', 'helix-before-change', 'input'],
@@ -49,6 +51,7 @@ registerElementEvents({
49
51
  'helix-before-open',
50
52
  'helix-create',
51
53
  'helix-filter',
54
+ 'helix-load-more',
52
55
  'input',
53
56
  'toggle',
54
57
  ],
@@ -56,14 +59,17 @@ registerElementEvents({
56
59
  'helix-before-close',
57
60
  'helix-before-open',
58
61
  'helix-filter',
62
+ 'helix-load-more',
59
63
  'helix-select',
60
64
  'toggle',
61
65
  ],
62
- 'helix-copy-button': ['helix-copy', 'helix-copy-error'],
66
+ 'helix-copy-button': ['helix-copy', 'helix-copy-error', 'helix-press'],
63
67
  'helix-data-table': [
64
68
  'helix-activate',
69
+ 'helix-expand',
65
70
  'helix-filter',
66
71
  'helix-filtered',
72
+ 'helix-load-more',
67
73
  'helix-navigate',
68
74
  'helix-reorder',
69
75
  'helix-reordered',
@@ -112,6 +118,7 @@ registerElementEvents({
112
118
  ],
113
119
  'helix-heatmap': ['helix-resize'],
114
120
  'helix-icon': ['error', 'load'],
121
+ 'helix-icon-button': ['helix-press'],
115
122
  'helix-image': ['error', 'load'],
116
123
  'helix-input': ['change', 'helix-before-change', 'helix-clear', 'input'],
117
124
  'helix-kbd': ['helix-shortcut'],
@@ -124,7 +131,9 @@ registerElementEvents({
124
131
  'helix-before-open',
125
132
  'toggle',
126
133
  ],
127
- 'helix-listbox': ['change', 'helix-before-change', 'helix-filter', 'input'],
134
+ 'helix-list': ['change', 'helix-action', 'helix-before-change'],
135
+ 'helix-list-item': ['helix-action'],
136
+ 'helix-listbox': ['change', 'helix-before-change', 'helix-filter', 'helix-load-more', 'input'],
128
137
  'helix-map': [
129
138
  'change',
130
139
  'helix-activate',
@@ -137,6 +146,7 @@ registerElementEvents({
137
146
  'helix-map-rotate',
138
147
  'helix-map-tilt',
139
148
  'helix-map-zoom',
149
+ 'helix-toggle',
140
150
  ],
141
151
  'helix-map-area': ['helix-map-part-change'],
142
152
  'helix-map-buildings': ['helix-map-part-change'],
@@ -153,9 +163,18 @@ registerElementEvents({
153
163
  'helix-menu-item': ['helix-before-toggle', 'helix-select'],
154
164
  'helix-notification': ['helix-dismiss', 'helix-read'],
155
165
  'helix-notification-group': ['helix-before-close', 'helix-before-open', 'toggle'],
156
- 'helix-notifications': ['helix-dismiss', 'helix-read'],
166
+ 'helix-notifications': ['helix-dismiss', 'helix-load-more', 'helix-read'],
157
167
  'helix-number-input': ['change', 'helix-before-change', 'input'],
158
- 'helix-object-inspector': ['helix-copy'],
168
+ 'helix-object-inspector': [
169
+ 'helix-activate',
170
+ 'helix-before-activate',
171
+ 'helix-before-close',
172
+ 'helix-before-open',
173
+ 'helix-copy',
174
+ 'helix-filter',
175
+ 'helix-filtered',
176
+ 'toggle',
177
+ ],
159
178
  'helix-option': ['helix-select'],
160
179
  'helix-outline': ['helix-activate'],
161
180
  'helix-pagination': ['helix-activate', 'helix-navigate'],
@@ -165,23 +184,29 @@ registerElementEvents({
165
184
  'helix-qr-code': ['error'],
166
185
  'helix-radio': ['helix-select'],
167
186
  'helix-radio-group': ['change', 'helix-before-change', 'helix-select', 'input'],
168
- 'helix-rating': ['change', 'helix-before-change', 'helix-clear', 'input'],
187
+ 'helix-rating': ['change', 'helix-before-change', 'helix-clear', 'helix-preview', 'input'],
169
188
  'helix-sandbox': [
170
189
  'helix-before-edit',
171
190
  'helix-before-panel-resize',
172
191
  'helix-before-split',
173
192
  'helix-caret',
174
193
  'helix-console',
194
+ 'helix-edit',
195
+ 'helix-panel-resize',
175
196
  'helix-resize',
197
+ 'helix-split',
176
198
  ],
177
199
  'helix-sandbox-preview': ['helix-console', 'helix-resize'],
178
- 'helix-sandbox-source': ['helix-before-edit', 'helix-caret'],
200
+ 'helix-sandbox-source': ['helix-before-edit', 'helix-caret', 'helix-edit'],
201
+ 'helix-sandbox-terminal': ['change', 'helix-before-change'],
202
+ 'helix-scroll-area': ['scroll', 'scrollend'],
179
203
  'helix-select': [
180
204
  'change',
181
205
  'helix-before-change',
182
206
  'helix-before-close',
183
207
  'helix-before-open',
184
208
  'helix-filter',
209
+ 'helix-load-more',
185
210
  'input',
186
211
  'toggle',
187
212
  ],
@@ -198,12 +223,12 @@ registerElementEvents({
198
223
  'helix-steps': ['helix-activate', 'helix-before-activate', 'helix-select'],
199
224
  'helix-switch': ['change', 'helix-before-toggle', 'input'],
200
225
  'helix-tab': ['helix-select'],
201
- 'helix-table': ['helix-sort'],
202
- 'helix-table-column': ['helix-before-resize'],
226
+ 'helix-table': ['helix-select', 'helix-selected', 'helix-sort', 'helix-sorted'],
227
+ 'helix-table-column': ['helix-before-resize', 'helix-resized'],
203
228
  'helix-tabs': ['helix-activate', 'helix-before-activate', 'helix-select'],
204
229
  'helix-tag': ['helix-dismiss'],
205
230
  'helix-tag-group': ['change', 'helix-before-change', 'helix-dismiss'],
206
- 'helix-textarea': ['change', 'helix-before-change', 'input'],
231
+ 'helix-textarea': ['change', 'helix-before-change', 'helix-clear', 'input'],
207
232
  'helix-time-input': [
208
233
  'change',
209
234
  'helix-before-change',
@@ -225,13 +250,47 @@ registerElementEvents({
225
250
  'helix-before-open',
226
251
  'helix-complete',
227
252
  'helix-tour-ask',
253
+ 'helix-tour-status',
228
254
  'toggle',
229
255
  ],
230
256
  'helix-tour-stop': ['helix-tour-ask'],
231
257
  'helix-tree': ['helix-activate', 'helix-before-activate', 'helix-select'],
232
- 'helix-tree-item': ['helix-before-close', 'helix-before-open', 'helix-select', 'toggle'],
233
- 'helix-video': ['ended', 'helix-next', 'helix-previous', 'pause', 'play'],
234
- 'helix-video-playlist': ['helix-activate', 'helix-before-activate'],
258
+ 'helix-tree-item': [
259
+ 'helix-before-close',
260
+ 'helix-before-open',
261
+ 'helix-load',
262
+ 'helix-select',
263
+ 'toggle',
264
+ ],
265
+ 'helix-video': [
266
+ 'abort',
267
+ 'canplay',
268
+ 'canplaythrough',
269
+ 'durationchange',
270
+ 'emptied',
271
+ 'ended',
272
+ 'error',
273
+ 'helix-next',
274
+ 'helix-previous',
275
+ 'loadeddata',
276
+ 'loadedmetadata',
277
+ 'loadstart',
278
+ 'pause',
279
+ 'play',
280
+ 'playing',
281
+ 'progress',
282
+ 'ratechange',
283
+ 'resize',
284
+ 'seeked',
285
+ 'seeking',
286
+ 'stalled',
287
+ 'suspend',
288
+ 'timeupdate',
289
+ 'volumechange',
290
+ 'waiting',
291
+ ],
292
+ 'helix-video-playlist': ['helix-activate', 'helix-before-activate', 'helix-end'],
235
293
  'helix-video-playlist-item': ['helix-select'],
236
294
  'helix-video-playlist-menu': ['helix-select'],
295
+ 'helix-virtual-list': ['change', 'helix-before-change', 'helix-load-more', 'helix-range-change'],
237
296
  });