@fusion.dev/helix 0.0.0-dev → 0.0.3

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 (227) hide show
  1. package/custom-elements.json +5565 -5519
  2. package/dist/accordion/item/accordion-item.css.js +1 -19
  3. package/dist/accordion/root/accordion-root.css.js +1 -1
  4. package/dist/accordion/root/accordion-root.d.ts +1 -1
  5. package/dist/accordion/root/accordion-root.js +1 -1
  6. package/dist/announcement/root/announcement-root.css.js +1 -7
  7. package/dist/app-header/root/app-header-root.css.js +1 -7
  8. package/dist/app-header/root/app-header-root.d.ts +20 -23
  9. package/dist/app-header/root/app-header-root.js +4 -4
  10. package/dist/aura/root/aura-axis.d.ts +5 -7
  11. package/dist/aura/root/aura-axis.js +5 -7
  12. package/dist/aura/root/aura-root.css.js +1 -1
  13. package/dist/aura/root/aura-root.d.ts +75 -87
  14. package/dist/aura/root/aura-root.js +100 -109
  15. package/dist/aura/root/aura-shader.d.ts +10 -13
  16. package/dist/aura/root/aura-shader.js +165 -238
  17. package/dist/avatar/group/avatar-group.css.js +1 -1
  18. package/dist/avatar/root/avatar-root.css.js +1 -1
  19. package/dist/badge/root/badge-root.css.js +1 -13
  20. package/dist/badge/root/badge-root.d.ts +4 -5
  21. package/dist/bar-chart/root/bar-chart-root.css.js +1 -13
  22. package/dist/bar-chart/root/bar-chart-root.d.ts +51 -60
  23. package/dist/bar-chart/root/bar-chart-root.js +10 -17
  24. package/dist/blockquote/root/blockquote-root.css.js +1 -1
  25. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +1 -7
  26. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +1 -1
  27. package/dist/button/root/button-root.css.js +1 -7
  28. package/dist/button/root/button-root.d.ts +16 -25
  29. package/dist/button/root/button-root.js +3 -3
  30. package/dist/button-group/root/button-group-root.css.js +1 -1
  31. package/dist/button-group/root/button-group-root.d.ts +5 -7
  32. package/dist/callout/root/callout-root.css.js +1 -1
  33. package/dist/callout/root/callout-root.d.ts +4 -4
  34. package/dist/callout/root/callout-root.js +4 -4
  35. package/dist/card/root/card-root.css.js +2 -2
  36. package/dist/card/root/card-root.d.ts +38 -48
  37. package/dist/card/root/card-root.js +8 -11
  38. package/dist/carousel/root/carousel-root.css.js +1 -11
  39. package/dist/carousel/root/carousel-root.d.ts +39 -43
  40. package/dist/carousel/root/carousel-root.js +7 -7
  41. package/dist/chat/composer/chat-composer.css.js +1 -1
  42. package/dist/chat/message/chat-message.css.js +1 -7
  43. package/dist/chat/message/chat-message.d.ts +8 -13
  44. package/dist/chat/root/chat-root.css.js +1 -1
  45. package/dist/checkbox/root/checkbox-root.css.js +1 -14
  46. package/dist/checkbox-group/root/checkbox-group-root.css.js +1 -1
  47. package/dist/code/root/code-root.css.js +9 -7
  48. package/dist/code/root/code-root.d.ts +4 -0
  49. package/dist/code/root/code-root.js +4 -0
  50. package/dist/code-block/root/code-block-root.css.js +1 -1
  51. package/dist/color-input/root/color-input-root.css.js +2 -2
  52. package/dist/color-input/root/color-input-root.js +3 -3
  53. package/dist/color-picker/root/color-picker-root.css.js +1 -9
  54. package/dist/color-picker/root/color-picker-root.js +3 -3
  55. package/dist/combobox/root/combobox-root.css.js +1 -8
  56. package/dist/combobox/root/combobox-root.js +1 -1
  57. package/dist/command/root/command-root.css.js +1 -1
  58. package/dist/copy-button/root/copy-button-root.css.js +1 -1
  59. package/dist/data-table/root/data-table-root.css.js +9 -3
  60. package/dist/data-table/root/data-table-root.d.ts +4 -1
  61. package/dist/data-table/root/data-table-root.js +4 -1
  62. package/dist/date-input/root/date-input-root.css.js +1 -1
  63. package/dist/date-picker/root/date-picker-root.css.js +1 -7
  64. package/dist/date-picker/root/date-picker-root.d.ts +1 -1
  65. package/dist/date-picker/root/date-picker-root.js +1 -1
  66. package/dist/dialog/root/dialog-root.css.js +1 -1
  67. package/dist/dialog/root/dialog-root.d.ts +15 -20
  68. package/dist/dialog/root/dialog-root.js +2 -2
  69. package/dist/divider/root/divider-root.css.js +1 -1
  70. package/dist/donut-chart/root/donut-chart-root.css.js +2 -20
  71. package/dist/donut-chart/root/donut-chart-root.d.ts +14 -19
  72. package/dist/donut-chart/root/donut-chart-root.js +6 -7
  73. package/dist/drawer/root/drawer-root.css.js +1 -11
  74. package/dist/drawer/root/drawer-root.d.ts +3 -7
  75. package/dist/drilldown/item/drilldown-item.css.js +1 -1
  76. package/dist/drilldown/root/drilldown-root.css.js +1 -1
  77. package/dist/element-events.generated.js +1 -1
  78. package/dist/empty/root/empty-root.css.js +1 -1
  79. package/dist/file-input/root/file-input-root.css.js +1 -1
  80. package/dist/file-input/root/file-input-root.js +1 -2
  81. package/dist/flex/root/flex-root.css.js +1 -1
  82. package/dist/flex/root/flex-root.d.ts +6 -6
  83. package/dist/flex/root/flex-root.js +9 -9
  84. package/dist/format-date/root/format-date-root.css.js +1 -1
  85. package/dist/grid/root/grid-root.css.js +1 -1
  86. package/dist/grid/root/grid-root.d.ts +8 -8
  87. package/dist/grid/root/grid-root.js +8 -9
  88. package/dist/heatmap/root/heatmap-root.css.js +2 -2
  89. package/dist/heatmap/root/heatmap-root.d.ts +11 -12
  90. package/dist/heatmap/root/heatmap-root.js +11 -12
  91. package/dist/icon/glyph.css.js +1 -1
  92. package/dist/icon/root/icon-root.css.js +1 -1
  93. package/dist/icon-button/root/icon-button-root.css.js +1 -7
  94. package/dist/icon-button/root/icon-button-root.d.ts +10 -10
  95. package/dist/icon-button/root/icon-button-root.js +4 -4
  96. package/dist/image/root/image-root.css.js +1 -7
  97. package/dist/input/root/input-root.css.js +1 -9
  98. package/dist/kbd/root/kbd-root.css.js +1 -1
  99. package/dist/legend/root/legend-root.css.js +1 -1
  100. package/dist/legend/root/legend-root.d.ts +34 -37
  101. package/dist/legend/root/legend-root.js +10 -10
  102. package/dist/line-chart/root/line-chart-root.css.js +1 -8
  103. package/dist/line-chart/root/line-chart-root.d.ts +6 -9
  104. package/dist/list/item/list-item.css.js +1 -1
  105. package/dist/list/root/list-root.css.js +1 -1
  106. package/dist/list/root/list-root.d.ts +4 -7
  107. package/dist/listbox/root/listbox-root.css.js +3 -3
  108. package/dist/listbox/root/listbox-root.d.ts +2 -0
  109. package/dist/listbox/root/listbox-root.js +2 -0
  110. package/dist/loader/root/loader-root.css.js +1 -1
  111. package/dist/loader/root/loader-root.d.ts +5 -9
  112. package/dist/loader/root/loader-root.js +2 -2
  113. package/dist/megamenu/root/megamenu-root.css.js +3 -2
  114. package/dist/menu/item/menu-item.css.js +1 -7
  115. package/dist/menu/root/menu-root.css.js +1 -1
  116. package/dist/meter/root/meter-root.css.js +1 -14
  117. package/dist/meter/root/meter-root.d.ts +18 -18
  118. package/dist/meter/root/meter-root.js +6 -8
  119. package/dist/mixins/mixin-control-surface/mixin-control-surface.d.ts +1 -1
  120. package/dist/navigation/root/navigation-root.css.js +1 -7
  121. package/dist/notifications/notification/notification.css.js +1 -7
  122. package/dist/notifications/root/notifications-root.css.js +1 -1
  123. package/dist/number-input/root/number-input-root.css.js +1 -9
  124. package/dist/option/group/option-group.css.js +1 -1
  125. package/dist/option/root/option-root.css.js +1 -1
  126. package/dist/outline/root/outline-root.css.js +1 -14
  127. package/dist/outline/root/outline-root.d.ts +1 -1
  128. package/dist/outline/root/outline-root.js +1 -1
  129. package/dist/pagination/root/pagination-root.css.js +1 -12
  130. package/dist/pagination/size/pagination-size.css.js +1 -1
  131. package/dist/pagination/summary/pagination-summary.css.js +1 -1
  132. package/dist/pin-input/root/pin-input-root.css.js +1 -7
  133. package/dist/popover/root/popover-root.css.js +4 -2
  134. package/dist/progress/root/progress-root.css.js +1 -7
  135. package/dist/progress/root/progress-root.d.ts +10 -9
  136. package/dist/qr-code/root/qr-code-root.css.js +1 -1
  137. package/dist/qr-code/root/qr-code-root.d.ts +1 -1
  138. package/dist/qr-code/root/qr-code-root.js +1 -1
  139. package/dist/quote/root/quote-root.css.js +1 -1
  140. package/dist/radio/group/radio-group.css.js +1 -1
  141. package/dist/radio/root/radio-root.css.js +1 -14
  142. package/dist/radio/root/radio-root.d.ts +20 -18
  143. package/dist/radio/root/radio-root.js +5 -6
  144. package/dist/rating/root/rating-root.css.js +1 -1
  145. package/dist/rating/root/rating-root.d.ts +4 -5
  146. package/dist/sandbox/preview/sandbox-preview.css.js +1 -1
  147. package/dist/sandbox/preview/sandbox-preview.d.ts +48 -44
  148. package/dist/sandbox/preview/sandbox-preview.js +63 -50
  149. package/dist/sandbox/root/sandbox-root.css.js +1 -2
  150. package/dist/sandbox/root/sandbox-root.d.ts +50 -59
  151. package/dist/sandbox/root/sandbox-root.js +75 -91
  152. package/dist/sandbox/source/sandbox-source.css.js +1 -1
  153. package/dist/sandbox/source/sandbox-source.d.ts +21 -29
  154. package/dist/sandbox/source/sandbox-source.js +26 -34
  155. package/dist/sandbox/status-bar/sandbox-status-bar.css.js +1 -1
  156. package/dist/sandbox/terminal/sandbox-terminal.css.js +1 -1
  157. package/dist/sandbox/toolbar/sandbox-toolbar.css.js +1 -1
  158. package/dist/scroll-area/root/scroll-area-root.css.js +5 -5
  159. package/dist/select/root/select-root.css.js +2 -15
  160. package/dist/select/root/select-root.d.ts +4 -4
  161. package/dist/select/root/select-root.js +5 -7
  162. package/dist/shared/chart/series.css.js +1 -1
  163. package/dist/shared/chart/terminus.css.js +1 -1
  164. package/dist/shared/field/field-inline.css.js +1 -1
  165. package/dist/shared/field/field-stacked.css.js +1 -1
  166. package/dist/shared/field/field.css.js +1 -1
  167. package/dist/skeleton/root/skeleton-root.css.js +1 -1
  168. package/dist/slider/root/slider-root.css.js +1 -3
  169. package/dist/sparkline/root/sparkline-root.css.js +1 -1
  170. package/dist/sparkline/root/sparkline-root.d.ts +22 -24
  171. package/dist/sparkline/root/sparkline-root.js +6 -6
  172. package/dist/speed-dial/item/speed-dial-item.css.js +1 -7
  173. package/dist/speed-dial/root/speed-dial-root.css.js +1 -1
  174. package/dist/splitter/root/splitter-root.css.js +1 -14
  175. package/dist/stat/group/stat-group.css.js +1 -1
  176. package/dist/stat/root/stat-root.css.js +1 -1
  177. package/dist/steps/root/steps-root.css.js +1 -1
  178. package/dist/steps/step/step.css.js +1 -8
  179. package/dist/steps/step/step.js +1 -1
  180. package/dist/switch/root/switch-root.css.js +1 -8
  181. package/dist/table/cell/table-cell.css.js +1 -1
  182. package/dist/table/column/table-column.css.js +1 -1
  183. package/dist/table/root/table-root.css.js +1 -1
  184. package/dist/table/row/table-row.css.js +1 -1
  185. package/dist/tabs/panel/tab-panel.css.js +1 -1
  186. package/dist/tabs/root/tabs-root.css.js +1 -7
  187. package/dist/tabs/tab/tab.css.js +2 -8
  188. package/dist/tag/root/tag-root.css.js +1 -1
  189. package/dist/tag/root/tag-root.d.ts +10 -19
  190. package/dist/tag/root/tag-root.js +3 -3
  191. package/dist/text/root/text-root.css.js +1 -1
  192. package/dist/text/root/text-root.d.ts +13 -14
  193. package/dist/text/root/text-root.js +6 -6
  194. package/dist/textarea/root/textarea-root.css.js +1 -7
  195. package/dist/time-input/root/time-input-root.css.js +1 -1
  196. package/dist/time-input/root/time-input-root.js +1 -1
  197. package/dist/time-picker/root/time-picker-root.css.js +1 -7
  198. package/dist/time-picker/root/time-picker-root.js +1 -1
  199. package/dist/timeline/item/timeline-item.css.js +1 -1
  200. package/dist/timeline/root/timeline-root.css.js +1 -1
  201. package/dist/toast/item/toast-item.css.js +1 -1
  202. package/dist/toast/root/toast-root.css.js +1 -1
  203. package/dist/toggle/group/toggle-group.css.js +1 -7
  204. package/dist/toggle/group/toggle-group.d.ts +6 -9
  205. package/dist/toggle/root/toggle-root.css.js +1 -1
  206. package/dist/toolbar/root/toolbar-root.css.js +1 -1
  207. package/dist/tooltip/root/tooltip-root.css.js +1 -1
  208. package/dist/tooltip/root/tooltip-root.d.ts +6 -7
  209. package/dist/tour/root/tour-root.css.js +1 -7
  210. package/dist/tour/stop/tour-stop.css.js +2 -2
  211. package/dist/tree/item/tree-item.css.js +1 -17
  212. package/dist/tree/root/tree-root.css.js +1 -1
  213. package/dist/tree/root/tree-root.d.ts +0 -2
  214. package/dist/trend/root/trend-root.css.js +1 -1
  215. package/dist/trend/root/trend-root.d.ts +4 -7
  216. package/dist/trend/root/trend-root.js +4 -7
  217. package/dist/video/root/video-root.css.js +1 -12
  218. package/dist/video/root/video-root.d.ts +3 -8
  219. package/dist/video-playlist/item/video-playlist-item.css.js +1 -7
  220. package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -1
  221. package/dist/video-playlist/root/video-playlist-root.css.js +1 -1
  222. package/dist/virtual-list/root/virtual-list-root.css.js +1 -1
  223. package/elements.css +4 -5
  224. package/helix.css +31 -0
  225. package/jsx.d.ts +11625 -14561
  226. package/package.json +10 -8
  227. package/vue.d.ts +3594 -4231
@@ -1,4 +1,4 @@
1
- // Generated from src/avatar/group/avatar-group.css by `bun run styles`. Do not edit.
1
+ // Generated from src/avatar/group/avatar-group.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  --_avatar-group-ring: var(--avatar-group-ring-color, var(--helix-color-background));
@@ -1,4 +1,4 @@
1
- // Generated from src/avatar/root/avatar-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/avatar/root/avatar-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  --_avatar-size: var(--avatar-size, var(--helix-size-avatar));
@@ -1,4 +1,4 @@
1
- // Generated from src/badge/root/badge-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/badge/root/badge-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  display: inline-flex;
@@ -63,12 +63,6 @@ opacity var(--helix-duration-fast) var(--helix-easing-standard),
63
63
  scale var(--helix-duration-fast) var(--helix-easing-accelerate);
64
64
  }
65
65
 
66
- @media (prefers-reduced-motion: reduce) {
67
- [part="indicator"] {
68
- transition: none;
69
- }
70
- }
71
-
72
66
  :host([tone="danger"]) [part="indicator"] {
73
67
  background-color: var(--badge-background-color, var(--helix-color-danger-surface));
74
68
  }
@@ -78,12 +72,6 @@ background-color: var(--badge-background-color, var(--helix-color-surface-raised
78
72
  color: var(--helix-color-foreground);
79
73
  }
80
74
 
81
- @media (prefers-reduced-motion: reduce) {
82
- [part="indicator"][data-blank] {
83
- transition: none;
84
- }
85
- }
86
-
87
75
  @media print {
88
76
  :host {
89
77
  box-shadow: none;
@@ -22,11 +22,10 @@ export declare class HelixBadge extends HelixHeadlessBadge {
22
22
  /**
23
23
  * What the mark means.
24
24
  *
25
- * **The docstring said "how much attention the mark asks for", which is the
26
- * emphasis question, and the values answer a different one.** `danger` and
27
- * `neutral` are meanings: the stylesheet picks a fill by what the count *is*,
28
- * not by how loudly it is drawn. Filed under `appearance` it read as a
29
- * treatment, which is the confusion `check:axes` exists to stop.
25
+ * `danger` and `neutral` are meanings, not treatments: the stylesheet picks a
26
+ * fill by what the count *is*, not by how loudly it is drawn. Filed under
27
+ * `appearance` it would read as a treatment, which is the confusion the split
28
+ * exists to stop.
30
29
  */
31
30
  tone?: 'danger' | 'neutral';
32
31
  static styles: CSSResultGroup;
@@ -1,4 +1,4 @@
1
- // Generated from src/bar-chart/root/bar-chart-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/bar-chart/root/bar-chart-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  display: grid;
@@ -232,12 +232,6 @@ opacity: 0.45;
232
232
  transition: opacity var(--helix-duration-fast) var(--helix-easing-decelerate);
233
233
  }
234
234
 
235
- @media (prefers-reduced-motion: reduce) {
236
- [part="group"] {
237
- transition: none;
238
- }
239
- }
240
-
241
235
  [part="bar"] {
242
236
  transition:
243
237
  height var(--helix-duration-normal) var(--helix-easing-decelerate),
@@ -257,12 +251,6 @@ width: 0;
257
251
  }
258
252
  }
259
253
 
260
- @media (prefers-reduced-motion: reduce) {
261
- [part="bar"] {
262
- transition: none;
263
- }
264
- }
265
-
266
254
  [part="plot"] {
267
255
  cursor: crosshair;
268
256
  }
@@ -32,20 +32,42 @@ export declare class HelixBarChart extends HelixHeadlessBarChart {
32
32
  * **The styled tier, so the tooltip this renders is the styled one.**
33
33
  *
34
34
  * `tag()` builds a child's tag name from this prefix, and the base declares
35
- * `helix-headless-`. Every other styled component that renders a child
36
- * overrides it; the three charts that draw a tooltip did not, so a
37
- * `helix-bar-chart` on a page put a `helix-headless-tooltip` in its shadow
38
- * root: the behavior with none of the surface. What showed was the browser's
39
- * own popover defaults, a white 1.5px border, square corners, `0.25em` of
40
- * padding and the page's font size, which is why the reading bubble looked
41
- * like no other tooltip on the site.
42
- *
43
- * Measured before the fix: the chart's bubble computed
44
- * `border: 1.5px solid rgb(255, 255, 255)`, `border-radius: 0px`,
45
- * `padding: 3.5px`, `font-size: 14px`. The masthead's, a `helix-tooltip`,
46
- * had the component's own `none`, `radii-sm`, `2xs xs` and `text-xs`.
35
+ * `helix-headless-`. Without this override the chart puts a
36
+ * `helix-headless-tooltip` in its shadow root: the behavior with none of the
37
+ * surface, so the reading bubble falls back to the browser's popover defaults,
38
+ * a white 1.5px border, square corners, `0.25em` of padding and the page's
39
+ * font size, and looks like no other tooltip on the site.
47
40
  */
48
41
  static tier: string;
42
+ /**
43
+ * How much ink the columns claim.
44
+ *
45
+ * The chart's treatment, which every series takes unless `outlined` or
46
+ * `subtle` names it. `outlined` is the mark as its edge alone, `subtle` a wash
47
+ * of the series color with that edge on it, and absent is the filled column,
48
+ * per the rule that a reflected property takes no default.
49
+ *
50
+ * **It composes with `material` rather than competing with it.** Emphasis
51
+ * decides what is drawn and material decides how much of it comes through, so
52
+ * `glass` thins whatever emphasis put there: the fill on a solid column, the
53
+ * stroke on an outlined one. Without that the corner is inert, `glass` setting
54
+ * a fill opacity on a mark whose fill is `none`, and a combination that
55
+ * silently does nothing is the worst shape this can take.
56
+ */
57
+ emphasis?: 'outlined' | 'solid' | 'subtle';
58
+ /**
59
+ * Which series are glass rather than solid, by name.
60
+ *
61
+ * Matched the way `outlined` is, against the column headings the table gives.
62
+ *
63
+ * **Per series for the reason `emphasis` is.** A
64
+ * chart-wide material puts every column in the same substance, which is right
65
+ * when the whole chart is joining the page's language and wrong the moment one
66
+ * series is a different kind of fact from the others. The two axes take the
67
+ * same shape because they answer the same question about the same thing: what
68
+ * is *this series* made of, and how much ink does *this series* claim.
69
+ */
70
+ glass?: string;
49
71
  /**
50
72
  * What the columns are made of.
51
73
  *
@@ -57,11 +79,10 @@ export declare class HelixBarChart extends HelixHeadlessBarChart {
57
79
  * chart in the same language as a glass header rather than leaving it the one
58
80
  * opaque slab on the page.
59
81
  *
60
- * **`gradient` was here and is `wash` now, which is #156.** The two set
82
+ * **`gradient` belongs to `wash` and never here (#156).** The two set
61
83
  * different properties, `fill-opacity` against `fill`, and a chart forced into
62
84
  * both renders as a translucent gradient that is distinct from either: one
63
- * enum was holding two independent things, which is the mistake `Card`'s own
64
- * doc warns about arriving on the component that borrowed the word.
85
+ * enum holding two independent things.
65
86
  *
66
87
  * Absent is solid, per the rule that a reflected property takes no default,
67
88
  * so the stylesheet describes only the departure. The strength is the
@@ -82,53 +103,9 @@ export declare class HelixBarChart extends HelixHeadlessBarChart {
82
103
  *
83
104
  * **`transparent` is where this one stops.** A mark with no ink is not a
84
105
  * material choice, it is an absent series, and a chart says that by not
85
- * having the datum rather than by painting it invisibly. See 270.
106
+ * having the datum rather than by painting it invisibly.
86
107
  */
87
108
  material?: 'frosted' | 'glass';
88
- /**
89
- * How a column's fill is distributed across it.
90
- *
91
- * `gradient` fades each column toward its base, into the wash the headless
92
- * tier draws whether or not anything points at it.
93
- *
94
- * **A chart-domain axis and deliberately not a library one.** It lives on this
95
- * family alone, and here it is a way of encoding data rather than a way of
96
- * expressing a theme: promoted to the registry it would put an attribute on
97
- * eighty-eight components that means nothing on eighty-seven. `wash` because
98
- * that is what the tier below already calls it, in `--chart-bar-wash` and in
99
- * the `bar-wash-start` and `bar-wash-end` stops.
100
- */
101
- wash?: 'gradient';
102
- /**
103
- * Which series are glass rather than solid, by name.
104
- *
105
- * Matched the way `outlined` is, against the column headings the table gives.
106
- *
107
- * **Per series for the reason `emphasis` is, arrived at one axis later.** A
108
- * chart-wide material puts every column in the same substance, which is right
109
- * when the whole chart is joining the page's language and wrong the moment one
110
- * series is a different kind of fact from the others. The two axes take the
111
- * same shape because they answer the same question about the same thing: what
112
- * is *this series* made of, and how much ink does *this series* claim.
113
- */
114
- glass?: string;
115
- /**
116
- * How much ink the columns claim.
117
- *
118
- * The chart's treatment, which every series takes unless `outlined` or
119
- * `subtle` names it. `outlined` is the mark as its edge alone, `subtle` a wash
120
- * of the series color with that edge on it, and absent is the filled column,
121
- * per the rule that a reflected property takes no default.
122
- *
123
- * **It composes with `material` rather than competing with it.** Emphasis
124
- * decides what is drawn and material decides how much of it comes through, so
125
- * `glass` thins whatever emphasis put there: the fill on a solid column, the
126
- * stroke on an outlined one. That corner was inert when the two were first
127
- * put side by side, `glass` setting a fill opacity on a mark whose fill is
128
- * `none`, and a combination that silently does nothing is the trap
129
- * `--card-backdrop` was for the one commit it shipped alone.
130
- */
131
- emphasis?: 'outlined' | 'solid' | 'subtle';
132
109
  /**
133
110
  * Which series are drawn as an outline rather than a fill, by name.
134
111
  *
@@ -153,6 +130,20 @@ export declare class HelixBarChart extends HelixHeadlessBarChart {
153
130
  * Matched as `outlined` is.
154
131
  */
155
132
  subtle?: string;
133
+ /**
134
+ * How a column's fill is distributed across it.
135
+ *
136
+ * `gradient` fades each column toward its base, into the wash the headless
137
+ * tier draws whether or not anything points at it.
138
+ *
139
+ * **A chart-domain axis and deliberately not a library one.** It lives on this
140
+ * family alone, and here it is a way of encoding data rather than a way of
141
+ * expressing a theme: promoted to the registry it would put an attribute on
142
+ * eighty-eight components that means nothing on eighty-seven. `wash` because
143
+ * that is what the tier below already calls it, in `--chart-bar-wash` and in
144
+ * the `bar-wash-start` and `bar-wash-end` stops.
145
+ */
146
+ wash?: 'gradient';
156
147
  /**
157
148
  * Marks each column with the treatments its series asked for.
158
149
  *
@@ -41,18 +41,11 @@ let HelixBarChart = class HelixBarChart extends HelixHeadlessBarChart {
41
41
  * **The styled tier, so the tooltip this renders is the styled one.**
42
42
  *
43
43
  * `tag()` builds a child's tag name from this prefix, and the base declares
44
- * `helix-headless-`. Every other styled component that renders a child
45
- * overrides it; the three charts that draw a tooltip did not, so a
46
- * `helix-bar-chart` on a page put a `helix-headless-tooltip` in its shadow
47
- * root: the behavior with none of the surface. What showed was the browser's
48
- * own popover defaults, a white 1.5px border, square corners, `0.25em` of
49
- * padding and the page's font size, which is why the reading bubble looked
50
- * like no other tooltip on the site.
51
- *
52
- * Measured before the fix: the chart's bubble computed
53
- * `border: 1.5px solid rgb(255, 255, 255)`, `border-radius: 0px`,
54
- * `padding: 3.5px`, `font-size: 14px`. The masthead's, a `helix-tooltip`,
55
- * had the component's own `none`, `radii-sm`, `2xs xs` and `text-xs`.
44
+ * `helix-headless-`. Without this override the chart puts a
45
+ * `helix-headless-tooltip` in its shadow root: the behavior with none of the
46
+ * surface, so the reading bubble falls back to the browser's popover defaults,
47
+ * a white 1.5px border, square corners, `0.25em` of padding and the page's
48
+ * font size, and looks like no other tooltip on the site.
56
49
  */
57
50
  static { this.tier = 'helix-'; }
58
51
  /**
@@ -100,22 +93,22 @@ let HelixBarChart = class HelixBarChart extends HelixHeadlessBarChart {
100
93
  };
101
94
  __decorate([
102
95
  property({ reflect: true })
103
- ], HelixBarChart.prototype, "material", void 0);
104
- __decorate([
105
- property({ reflect: true })
106
- ], HelixBarChart.prototype, "wash", void 0);
96
+ ], HelixBarChart.prototype, "emphasis", void 0);
107
97
  __decorate([
108
98
  property()
109
99
  ], HelixBarChart.prototype, "glass", void 0);
110
100
  __decorate([
111
101
  property({ reflect: true })
112
- ], HelixBarChart.prototype, "emphasis", void 0);
102
+ ], HelixBarChart.prototype, "material", void 0);
113
103
  __decorate([
114
104
  property()
115
105
  ], HelixBarChart.prototype, "outlined", void 0);
116
106
  __decorate([
117
107
  property()
118
108
  ], HelixBarChart.prototype, "subtle", void 0);
109
+ __decorate([
110
+ property({ reflect: true })
111
+ ], HelixBarChart.prototype, "wash", void 0);
119
112
  HelixBarChart = __decorate([
120
113
  customElement('helix-bar-chart')
121
114
  ], HelixBarChart);
@@ -1,4 +1,4 @@
1
- // Generated from src/blockquote/root/blockquote-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/blockquote/root/blockquote-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  display: block;
@@ -1,4 +1,4 @@
1
- // Generated from src/breadcrumbs/breadcrumb/breadcrumb.css by `bun run styles`. Do not edit.
1
+ // Generated from src/breadcrumbs/breadcrumb/breadcrumb.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
 
@@ -60,12 +60,6 @@ outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
60
60
  outline-offset: var(--helix-size-focus-offset);
61
61
  }
62
62
 
63
- @media (prefers-reduced-motion: reduce) {
64
- ::slotted(a) {
65
- transition: none;
66
- }
67
- }
68
-
69
63
  :host {
70
64
  font-weight: var(--helix-weight-medium);
71
65
  }
@@ -1,4 +1,4 @@
1
- // Generated from src/breadcrumbs/root/breadcrumbs-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/breadcrumbs/root/breadcrumbs-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  display: block;
@@ -1,4 +1,4 @@
1
- // Generated from src/button/root/button-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/button/root/button-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  display: inline-flex;
@@ -177,12 +177,6 @@ opacity: 0.5;
177
177
  --icon-size: 1.15em;
178
178
  }
179
179
 
180
- @media (prefers-reduced-motion: reduce) {
181
- [part="button"] {
182
- transition: none;
183
- }
184
- }
185
-
186
180
  @media print {
187
181
  :host {
188
182
  display: none;
@@ -9,9 +9,9 @@ declare const HelixButton_base: (new (...args: any[]) => import("../../mixins/mi
9
9
  * real button are indistinguishable to a reader. There are no sizes: a control
10
10
  * takes its height from the region it is in, through `data-density`, which is
11
11
  * the one size axis in the library and the reason a row of controls cannot come
12
- * out ragged. The focus
13
- * ring is declared here rather than inherited, because the base layer's
14
- * `:focus-visible` rule is a light-DOM rule and stops at the shadow boundary.
12
+ * out ragged. The focus ring is declared here rather than inherited, because the
13
+ * base layer's `:focus-visible` rule is a light-DOM rule and stops at the shadow
14
+ * boundary.
15
15
  *
16
16
  * @since 0.1.0
17
17
  * @status stable
@@ -50,24 +50,17 @@ export declare class HelixButton extends HelixButton_base {
50
50
  * - `full` fills the container, for a single action at the foot of a form or
51
51
  * a card, and on a phone where a control is a target before it is a label.
52
52
  *
53
- * **This was `fill`, and the name had to disclaim itself.** The paragraph here
54
- * opened "Width and not weight", which is a sentence a name should not need:
55
- * `emphasis` on this same element is documented as "How filled it is drawn",
56
- * so a button carried a property called `fill` beside a property about being
57
- * filled, meaning different things. `separation="filled"` and
58
- * `ThemeIntent.separation`'s `fill` mechanism both mean a surface's own
59
- * color, and every chart in the library writes `fill` for paint, which left
60
- * this the only use of the word meaning geometry.
53
+ * **Not `fill`, and not `size`.** `fill` means a surface's own color
54
+ * everywhere else in the library, in `separation="filled"`, in
55
+ * `ThemeIntent.separation`'s `fill` mechanism and in every chart, so it cannot
56
+ * also mean geometry beside an `emphasis` documented as "How filled it is
57
+ * drawn". `size` fails the rule's own test, which is whether two of them
58
+ * sitting together could legitimately differ: two buttons can, because this is
59
+ * a width *policy* rather than a scale, and `standard` exists precisely to
60
+ * stop a row being ragged.
61
61
  *
62
- * `Dialog` had already made the same move for the same reason, its
63
- * `appearance` becoming `size` for saying how wide a panel is, "which its own
64
- * description admitted in as many words". `size` is not available here,
65
- * because that rule's test is whether two of them sitting together could
66
- * legitimately differ, and two buttons do: this is a width *policy* rather
67
- * than a scale, and `standard` exists precisely to stop a row being ragged.
68
- *
69
- * Width and not weight, still. `emphasis` says how much a button matters and
70
- * this says how much room it takes, and the three are independent: a `ghost
62
+ * Width and not weight. `emphasis` says how much a button matters and this
63
+ * says how much room it takes, and the three are independent: a `ghost
71
64
  * standard` Cancel beside a `solid primary standard` Save is exactly the
72
65
  * pairing a dialog wants.
73
66
  *
@@ -78,11 +71,9 @@ export declare class HelixButton extends HelixButton_base {
78
71
  * <a data-button="solid" data-button-width="standard" data-button-tone="primary" href="/save">Save</a>
79
72
  * ```
80
73
  *
81
- * Both are one declaration in the base layer. They were not, and that was a
82
- * real gap rather than a missing convenience: this class promises a link
83
- * styled as a button and a real button are indistinguishable, and a dialog's
84
- * button row is built on `standard`, so the one place the promise mattered
85
- * most was the one place it did not hold.
74
+ * Both are one declaration in the base layer, and both are needed: this class
75
+ * promises a link styled as a button and a real button are indistinguishable,
76
+ * and a dialog's button row is built on `standard`.
86
77
  */
87
78
  width?: 'auto' | 'full' | 'standard';
88
79
  static styles: CSSResultGroup;
@@ -17,9 +17,9 @@ import { styles } from './button-root.css.js';
17
17
  * real button are indistinguishable to a reader. There are no sizes: a control
18
18
  * takes its height from the region it is in, through `data-density`, which is
19
19
  * the one size axis in the library and the reason a row of controls cannot come
20
- * out ragged. The focus
21
- * ring is declared here rather than inherited, because the base layer's
22
- * `:focus-visible` rule is a light-DOM rule and stops at the shadow boundary.
20
+ * out ragged. The focus ring is declared here rather than inherited, because the
21
+ * base layer's `:focus-visible` rule is a light-DOM rule and stops at the shadow
22
+ * boundary.
23
23
  *
24
24
  * @since 0.1.0
25
25
  * @status stable
@@ -1,4 +1,4 @@
1
- // Generated from src/button-group/root/button-group-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/button-group/root/button-group-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  display: inline-flex;
@@ -29,15 +29,13 @@ export declare class HelixButtonGroup extends HelixHeadlessButtonGroup {
29
29
  /**
30
30
  * Whether the buttons are one bar or a spaced row.
31
31
  *
32
- * Joined by default, which is what a button group has always meant here: one
33
- * control made of parts, sharing borders, reading as a segmented bar.
32
+ * Joined by default: one control made of parts, sharing borders, reading as a
33
+ * segmented bar.
34
34
  *
35
35
  * `spaced` is the same set with air between them, for a row of related but
36
- * separate actions. It exists because the semantics and the joining were one
37
- * thing and should not have been: `role="group"` and a shared name are what
38
- * make a set of buttons a set, and a consumer who wanted that *and* ordinary
39
- * spacing had to choose. `helix-flex` gives the spacing and no group; this
40
- * gave the group and no choice about the spacing.
36
+ * separate actions. The semantics and the joining are separate questions:
37
+ * `role="group"` and a shared name are what make a set of buttons a set, and
38
+ * `helix-flex` gives the spacing without the group.
41
39
  */
42
40
  variant?: 'joined' | 'spaced';
43
41
  }
@@ -1,4 +1,4 @@
1
- // Generated from src/callout/root/callout-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/callout/root/callout-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
 
@@ -4,9 +4,9 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary Sets a passage apart as information, a warning, or an error.
5
5
  *
6
6
  * @description
7
- * Tinted from the severity's status color with `color-mix`, and marked with a
8
- * bar on the inline start so the severity survives being read in grayscale or
9
- * by anyone who does not distinguish the hues.
7
+ * Tinted from the tone's status color with `color-mix`, and marked with a bar
8
+ * on the inline start so the tone survives being read in grayscale or by anyone
9
+ * who does not distinguish the hues.
10
10
  *
11
11
  * There is no treatment axis here. `tone` carries the meaning and lives on the
12
12
  * headless tier; this tier only decides what that meaning looks like.
@@ -18,7 +18,7 @@ import type { CSSResultGroup } from 'lit';
18
18
  * @documentation https://helix.fusion.dev/components/callout
19
19
  *
20
20
  * @slot - The callout's content.
21
- * @slot icon - Replaces the icon chosen by `severity`.
21
+ * @slot icon - Replaces the icon chosen by `tone`.
22
22
  *
23
23
  * @csspart content - The content region.
24
24
  * @csspart icon - The icon region.
@@ -11,9 +11,9 @@ import { styles } from './callout-root.css.js';
11
11
  * @summary Sets a passage apart as information, a warning, or an error.
12
12
  *
13
13
  * @description
14
- * Tinted from the severity's status color with `color-mix`, and marked with a
15
- * bar on the inline start so the severity survives being read in grayscale or
16
- * by anyone who does not distinguish the hues.
14
+ * Tinted from the tone's status color with `color-mix`, and marked with a bar
15
+ * on the inline start so the tone survives being read in grayscale or by anyone
16
+ * who does not distinguish the hues.
17
17
  *
18
18
  * There is no treatment axis here. `tone` carries the meaning and lives on the
19
19
  * headless tier; this tier only decides what that meaning looks like.
@@ -25,7 +25,7 @@ import { styles } from './callout-root.css.js';
25
25
  * @documentation https://helix.fusion.dev/components/callout
26
26
  *
27
27
  * @slot - The callout's content.
28
- * @slot icon - Replaces the icon chosen by `severity`.
28
+ * @slot icon - Replaces the icon chosen by `tone`.
29
29
  *
30
30
  * @csspart content - The content region.
31
31
  * @csspart icon - The icon region.
@@ -1,4 +1,4 @@
1
- // Generated from src/card/root/card-root.css by `bun run styles`. Do not edit.
1
+ // Generated from src/card/root/card-root.css by `turbo run styles`. Do not edit.
2
2
  import { createSheet } from '@fusion.dev/helix-core';
3
3
  export const styles = createSheet(`:host {
4
4
  background-color: var(--card-background-color, var(--helix-color-surface));
@@ -28,7 +28,7 @@ box-shadow var(--helix-duration-fast) var(--helix-easing-standard);
28
28
  }
29
29
 
30
30
  :host([separation="elevated"]) {
31
- border-color: transparent;
31
+ border-color: light-dark(transparent, var(--helix-color-border));
32
32
 
33
33
  --card-shadow: var(--helix-shadow-md);
34
34
  }