@fusion.dev/helix 0.142.1 → 0.143.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 (83) hide show
  1. package/README.md +9 -5
  2. package/custom-elements.json +19275 -1410
  3. package/dist/accordion/item/accordion-item.css.js +6 -1
  4. package/dist/accordion/item/accordion-item.d.ts +1 -0
  5. package/dist/announcement/root/announcement-root.d.ts +3 -3
  6. package/dist/app-header/root/app-header-root.d.ts +1 -3
  7. package/dist/aura/shader.d.ts +5 -1
  8. package/dist/aura/shader.js +88 -613
  9. package/dist/avatar/root/avatar-root.d.ts +3 -3
  10. package/dist/badge/root/badge-root.css.js +3 -2
  11. package/dist/badge/root/badge-root.d.ts +1 -0
  12. package/dist/bar-chart/root/bar-chart-root.css.js +10 -0
  13. package/dist/blockquote/root/blockquote-root.css.js +4 -0
  14. package/dist/card/root/card-root.css.js +1 -0
  15. package/dist/carousel/root/carousel-root.js +2 -1
  16. package/dist/checkbox/root/checkbox-root.css.js +3 -3
  17. package/dist/color-picker/root/color-picker-root.d.ts +0 -1
  18. package/dist/color-picker/root/color-picker-root.js +0 -1
  19. package/dist/combobox/root/combobox-root.css.js +5 -4
  20. package/dist/data-table/root/data-table-root.css.js +7 -0
  21. package/dist/date-picker/root/date-picker-root.css.js +15 -3
  22. package/dist/donut-chart/root/donut-chart-root.css.js +10 -0
  23. package/dist/drawer/root/drawer-root.css.js +25 -4
  24. package/dist/element-events.generated.js +41 -10
  25. package/dist/file-input/root/file-input-root.d.ts +0 -1
  26. package/dist/file-input/root/file-input-root.js +0 -1
  27. package/dist/filter-input/root/filter-input-root.d.ts +0 -1
  28. package/dist/filter-input/root/filter-input-root.js +0 -1
  29. package/dist/grid/root/grid-root.d.ts +15 -11
  30. package/dist/grid/root/grid-root.js +49 -15
  31. package/dist/icon-button/root/icon-button-root.css.js +43 -16
  32. package/dist/icon-button/root/icon-button-root.d.ts +4 -1
  33. package/dist/image/root/image-root.css.js +1 -1
  34. package/dist/input/root/input-root.d.ts +0 -1
  35. package/dist/input/root/input-root.js +0 -1
  36. package/dist/line-chart/root/line-chart-root.css.js +10 -0
  37. package/dist/list/item/list-item.css.js +7 -1
  38. package/dist/loader/root/loader-root.d.ts +7 -4
  39. package/dist/menu/item/menu-item.css.js +1 -1
  40. package/dist/menu/root/menu-root.d.ts +0 -3
  41. package/dist/meter/root/meter-root.css.js +4 -4
  42. package/dist/number-input/root/number-input-root.d.ts +3 -0
  43. package/dist/orb/root/orb-root.d.ts +11 -2
  44. package/dist/orb/root/orb-root.js +5 -1
  45. package/dist/qr-code/root/qr-code-root.css.js +2 -1
  46. package/dist/qr-code/root/qr-code-root.d.ts +2 -2
  47. package/dist/rating/root/rating-root.d.ts +3 -0
  48. package/dist/sandbox/index.d.ts +2 -2
  49. package/dist/sandbox/root/sandbox-root.d.ts +20 -1
  50. package/dist/sandbox/root/sandbox-root.js +27 -10
  51. package/dist/sandbox/source/sandbox-source.d.ts +6 -1
  52. package/dist/sandbox/source/sandbox-source.js +13 -3
  53. package/dist/sandbox/terminal/sandbox-terminal.d.ts +3 -1
  54. package/dist/sandbox/terminal/sandbox-terminal.js +3 -1
  55. package/dist/skeleton/root/skeleton-root.css.js +4 -0
  56. package/dist/skeleton/root/skeleton-root.d.ts +4 -1
  57. package/dist/table/column/table-column.css.js +5 -0
  58. package/dist/tabs/panel/tab-panel.css.js +1 -1
  59. package/dist/tabs/panel/tab-panel.d.ts +2 -0
  60. package/dist/tabs/root/tabs-root.css.js +13 -7
  61. package/dist/tabs/root/tabs-root.d.ts +5 -0
  62. package/dist/tabs/tab/tab.css.js +4 -4
  63. package/dist/tabs/tab/tab.d.ts +5 -0
  64. package/dist/tag/root/tag-root.d.ts +2 -3
  65. package/dist/text/root/text-root.css.js +58 -1
  66. package/dist/text/root/text-root.d.ts +11 -2
  67. package/dist/text/root/text-root.js +19 -1
  68. package/dist/time-input/root/time-input-root.d.ts +0 -1
  69. package/dist/time-input/root/time-input-root.js +0 -1
  70. package/dist/toast/root/toast-root.css.js +31 -7
  71. package/dist/toast/root/toast-root.d.ts +6 -9
  72. package/dist/toggle/group/toggle-group.d.ts +3 -0
  73. package/dist/tour/stop/tour-stop.css.js +5 -0
  74. package/dist/trend/root/trend-root.d.ts +0 -1
  75. package/dist/trend/root/trend-root.js +0 -1
  76. package/dist/video/root/video-root.d.ts +0 -1
  77. package/dist/video/root/video-root.js +0 -1
  78. package/dist/video-playlist/menu/video-playlist-menu.d.ts +0 -1
  79. package/dist/video-playlist/menu/video-playlist-menu.js +0 -1
  80. package/lint.json +1 -1
  81. package/package.json +6 -6
  82. package/types/jsx.d.ts +4973 -1964
  83. package/types/vue.d.ts +998 -212
@@ -14,6 +14,8 @@ import type { CSSResultGroup } from 'lit';
14
14
  * @slot - The panel's content.
15
15
  *
16
16
  * @csspart panel - The panel container.
17
+ *
18
+ * @cssproperty --tabs-panel-padding-block-start - The space between the tab row and the panel's content.
17
19
  */
18
20
  export declare class HelixTabPanel extends HelixHeadlessTabPanel {
19
21
  static styles: CSSResultGroup;
@@ -18,12 +18,15 @@ background-position: bottom;
18
18
  background-repeat: repeat-x;
19
19
  background-size: 100% var(--helix-border-thin);
20
20
  display: flex;
21
- gap: var(--helix-space-2xs);
21
+ gap: var(--tabs-gap, var(--helix-space-2xs));
22
22
  overflow-x: auto;
23
23
  }
24
24
 
25
25
  :host([variant="underlined"]) {
26
- --_tabs-rule: linear-gradient(var(--helix-color-border), var(--helix-color-border));
26
+ --_tabs-rule: linear-gradient(
27
+ var(--tabs-rule-color, var(--helix-color-border)),
28
+ var(--tabs-rule-color, var(--helix-color-border))
29
+ );
27
30
  --_tab-radius: var(--helix-radii-none);
28
31
  --_tab-selected-shadow: none;
29
32
  --_tab-selected-surface: transparent;
@@ -87,14 +90,17 @@ z-index: var(--helix-layer-raised);
87
90
  }
88
91
 
89
92
  :host([variant="underlined"]) [part="indicator"] {
90
- --_indicator-block: var(--helix-border-thick);
91
- --_indicator-color: var(--helix-color-primary);
92
- --_indicator-offset: calc(var(--indicator-block-size, 0px) - var(--helix-border-thick));
93
+ --_indicator-block: var(--tabs-indicator-thickness, var(--helix-border-thick));
94
+ --_indicator-color: var(--tabs-indicator-color, var(--helix-color-primary));
95
+ --_indicator-offset: calc(
96
+ var(--indicator-block-size, 0px) -
97
+ var(--tabs-indicator-thickness, var(--helix-border-thick))
98
+ );
93
99
  }
94
100
 
95
101
  :host([variant="segmented"]) [part="indicator"] {
96
102
  --_indicator-block: var(--indicator-block-size, 0);
97
- --_indicator-color: var(--helix-color-surface-overlay);
103
+ --_indicator-color: var(--tabs-indicator-color, var(--helix-color-surface-overlay));
98
104
  --_indicator-radius: calc(var(--helix-radii-sm) - var(--helix-border-thin));
99
105
  --_indicator-shadow: var(--helix-shadow-sm);
100
106
  --_indicator-offset: 0px;
@@ -109,7 +115,7 @@ z-index: var(--helix-layer-raised);
109
115
 
110
116
  --_indicator-border: var(--helix-border-thin);
111
117
  --_indicator-border-color: var(--helix-color-border);
112
- --_indicator-color: var(--helix-color-surface-overlay);
118
+ --_indicator-color: var(--tabs-indicator-color, var(--helix-color-surface-overlay));
113
119
  --_indicator-radius: var(--helix-radii-sm);
114
120
  --_indicator-shadow: var(--helix-shadow-sm);
115
121
  --_indicator-offset: 0px;
@@ -26,6 +26,11 @@ import type { CSSResultGroup } from 'lit';
26
26
  *
27
27
  * @csspart panels - The panel container.
28
28
  * @csspart tabs - The tab list.
29
+ *
30
+ * @cssproperty --tabs-gap - The space between tabs.
31
+ * @cssproperty --tabs-indicator-color - The fill of the mark on the current tab: the bar under `underlined`, and the pill otherwise.
32
+ * @cssproperty --tabs-indicator-thickness - The height of the bar under `underlined`.
33
+ * @cssproperty --tabs-rule-color - The color of the rule under the row in `underlined`.
29
34
  */
30
35
  export declare class HelixTabs extends HelixHeadlessTabs {
31
36
  static styles: CSSResultGroup;
@@ -7,19 +7,19 @@ display: inline-flex;
7
7
  align-items: center;
8
8
  background-color: transparent;
9
9
 
10
- block-size: var(--_tab-height, var(--helix-size-control));
10
+ block-size: var(--_tab-height, var(--tabs-tab-block-size, var(--helix-size-control)));
11
11
  border: none;
12
12
 
13
13
  border-block-end: var(--helix-border-thick) solid transparent;
14
14
  border-radius: var(--_tab-radius, var(--helix-radii-none));
15
- color: var(--helix-color-foreground-subtle);
15
+ color: var(--tabs-tab-color, var(--helix-color-foreground-subtle));
16
16
  cursor: pointer;
17
17
  font: inherit;
18
18
  font-size: var(--helix-text-sm);
19
19
  font-weight: var(--helix-weight-medium);
20
20
  display: inline-flex;
21
21
  justify-content: center;
22
- padding-inline: var(--helix-space-sm);
22
+ padding-inline: var(--tabs-tab-padding-inline, var(--helix-space-sm));
23
23
  transition:
24
24
  background-color var(--helix-duration-fast) var(--helix-easing-standard),
25
25
  border-color var(--helix-duration-normal) var(--helix-easing-emphasized),
@@ -36,7 +36,7 @@ color: var(--helix-color-foreground);
36
36
  :host(:state(selected)) [part="tab"]:hover {
37
37
  background-color: var(--_tab-selected-surface, transparent);
38
38
  box-shadow: var(--_tab-selected-shadow, none);
39
- color: var(--helix-color-foreground);
39
+ color: var(--tabs-tab-selected-color, var(--helix-color-foreground));
40
40
  }
41
41
 
42
42
  [part="tab"]:disabled {
@@ -16,6 +16,11 @@ import type { CSSResultGroup } from 'lit';
16
16
  * @slot - The tab's label.
17
17
  *
18
18
  * @csspart tab - The tab itself.
19
+ *
20
+ * @cssproperty --tabs-tab-block-size - The height of a tab. `segmented` sizes its tabs to the track and does not read it.
21
+ * @cssproperty --tabs-tab-color - The label color of a tab that is not current.
22
+ * @cssproperty --tabs-tab-padding-inline - The space either side of the label.
23
+ * @cssproperty --tabs-tab-selected-color - The label color of the current tab.
19
24
  */
20
25
  export declare class HelixTab extends HelixHeadlessTab {
21
26
  static styles: CSSResultGroup;
@@ -47,9 +47,8 @@ export declare class HelixTag extends HelixHeadlessTag {
47
47
  * already calls them. `helix component`'s `axes` holds the vocabulary.
48
48
  *
49
49
  * **Not all seven are statuses, and `accent` is the one worth saying out
50
- * loud**: it is the second emphasis, a rotation off the brand seed rather than
51
- * a color of its own, so it stays in relation when somebody rethemes.
52
- * `primary` is the seed itself. The four that are statuses are the four
50
+ * loud**: it is the second emphasis, the second color a theme names, and the
51
+ * brand itself until one is named. `primary` is the brand. The four that are statuses are the four
53
52
  * `HelixStatusTone` names, and those are the ones that would carry a glyph
54
53
  * somewhere that draws one.
55
54
  *
@@ -49,7 +49,8 @@ letter-spacing: var(--helix-tracking-normal);
49
49
  line-height: var(--helix-leading-heading);
50
50
  }
51
51
 
52
- :host([variant="body"]) {
52
+ :host([variant="body"]),
53
+ :host(:not([variant])[as="p"]) {
53
54
  font-family: var(--helix-font-sans);
54
55
  font-size: var(--helix-text-md);
55
56
  font-weight: var(--helix-weight-regular);
@@ -111,6 +112,62 @@ line-height: var(--helix-leading-normal);
111
112
  color: var(--_heading-ink, currentColor);
112
113
  }
113
114
 
115
+ :host([emphasis="muted"]) {
116
+ color: var(--helix-color-foreground-muted);
117
+ }
118
+
119
+ :host([emphasis="subtle"]) {
120
+ color: var(--helix-color-foreground-subtle);
121
+ }
122
+
123
+ :host([tone="accent"]) {
124
+ color: var(--helix-color-accent);
125
+ }
126
+
127
+ :host([tone="danger"]) {
128
+ color: var(--helix-color-danger);
129
+ }
130
+
131
+ :host([tone="info"]) {
132
+ color: var(--helix-color-info);
133
+ }
134
+
135
+ :host([tone="primary"]) {
136
+ color: var(--helix-color-primary);
137
+ }
138
+
139
+ :host([tone="success"]) {
140
+ color: var(--helix-color-success);
141
+ }
142
+
143
+ :host([tone="warning"]) {
144
+ color: var(--helix-color-warning);
145
+ }
146
+
147
+ :host([tone="accent"]:is([emphasis="muted"], [emphasis="subtle"])) {
148
+ color: var(--helix-color-accent-muted);
149
+ }
150
+
151
+ :host([tone="danger"]:is([emphasis="muted"], [emphasis="subtle"])) {
152
+ color: var(--helix-color-danger-muted);
153
+ }
154
+
155
+ :host([tone="info"]:is([emphasis="muted"], [emphasis="subtle"])) {
156
+ color: var(--helix-color-info-muted);
157
+ }
158
+
159
+ :host([tone="primary"]:is([emphasis="muted"], [emphasis="subtle"])) {
160
+ color: var(--helix-color-primary-muted);
161
+ }
162
+
163
+ :host([tone="success"]:is([emphasis="muted"], [emphasis="subtle"])) {
164
+ color: var(--helix-color-success-muted);
165
+ }
166
+
167
+ :host([tone="warning"]:is([emphasis="muted"], [emphasis="subtle"])) {
168
+ color: var(--helix-color-warning-muted);
169
+ }
170
+
114
171
  [part="text"] {
115
172
  color: inherit;
116
173
  font: inherit;
@@ -1,5 +1,5 @@
1
1
  import { HelixElement } from '@fusion.dev/helix-core';
2
- import type { CSSResultGroup } from 'lit';
2
+ import type { CSSResultGroup, PropertyValues } from 'lit';
3
3
  /**
4
4
  * @summary Text, with its HTML element and its type style set separately.
5
5
  *
@@ -40,6 +40,11 @@ export declare class HelixText extends HelixElement {
40
40
  * The HTML element to render.
41
41
  *
42
42
  * Decides the outline and the semantics.
43
+ *
44
+ * **`label` gives the label ramp and labels no control.** The element is in
45
+ * this one's shadow root, which neither `for` nor a wrapped control can
46
+ * reach, so a page that writes either is warned. Name a Helix field with its
47
+ * own `label`, and a native control with `<label data-text="label">`.
43
48
  */
44
49
  as?: 'span' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'strong' | 'em' | 'code' | 'label';
45
50
  /**
@@ -74,9 +79,13 @@ export declare class HelixText extends HelixElement {
74
79
  /**
75
80
  * The type style, which sets the size, weight, leading, and tracking.
76
81
  *
77
- * Defaults to the one that matches `as`.
82
+ * Defaults to the one that matches `as`: `body` for `p`, `body-strong` for
83
+ * `strong`, `h5` and `h6`. A `span` or an `em` keeps the type around it.
78
84
  */
79
85
  variant?: 'display' | 'heading' | 'subheading' | 'title' | 'body' | 'body-strong' | 'caption' | 'label' | 'code';
86
+ protected updated(changed: PropertyValues): void;
87
+ /** Whether the page wrote this as the label of a control, which it cannot be. */
88
+ private labelsNothing;
80
89
  protected render(): unknown;
81
90
  static styles: CSSResultGroup;
82
91
  }
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { customElement, HelixElement } from '@fusion.dev/helix-core';
7
+ import { customElement, HelixElement, reportRuntime } from '@fusion.dev/helix-core';
8
8
  import { property } from 'lit/decorators.js';
9
9
  import { literal, html as staticHtml } from 'lit/static-html.js';
10
10
  import { styles } from './text-root.css.js';
@@ -23,6 +23,24 @@ const TAGS = {
23
23
  strong: literal `strong`,
24
24
  };
25
25
  let HelixText = class HelixText extends HelixElement {
26
+ updated(changed) {
27
+ super.updated(changed);
28
+ if (changed.has('as') && this.as === 'label' && this.labelsNothing()) {
29
+ reportRuntime({
30
+ kind: 'unreachable-label',
31
+ message: '<helix-text as="label"> names no control: its label is in a shadow root, which ' +
32
+ '`for` and a wrapped control cannot reach. Give a Helix field its own `label`, or ' +
33
+ 'write `<label data-text="label">` for a native control.',
34
+ tag: this.localName,
35
+ });
36
+ }
37
+ }
38
+ labelsNothing() {
39
+ const fields = [...this.querySelectorAll('*')].some((element) => element.constructor.formAssociated === true);
40
+ return (fields ||
41
+ this.hasAttribute('for') ||
42
+ this.querySelector('input, select, textarea, button, meter, output, progress') !== null);
43
+ }
26
44
  render() {
27
45
  const tag = (this.as && Object.hasOwn(TAGS, this.as) ? TAGS[this.as] : undefined) ?? literal `span`;
28
46
  return staticHtml `<${tag} part="text"><slot></slot></${tag}>`;
@@ -1,6 +1,5 @@
1
1
  import { HelixHeadlessTimeInput } from '@fusion.dev/helix-headless/time-input';
2
2
  import type { CSSResultGroup } from 'lit';
3
- import '../../icon/index.js';
4
3
  import '../../tag/index.js';
5
4
  import '../../time-picker/index.js';
6
5
  /**
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessTimeInput } from '@fusion.dev/helix-headless/time-input';
9
- import '../../icon/index.js';
10
9
  import '../../tag/index.js';
11
10
  import '../../time-picker/index.js';
12
11
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
@@ -1,24 +1,42 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
2
  export const styles = createSheet(`:host {
3
3
  --_toast-inset: var(--toast-inset, var(--helix-space-lg));
4
-
5
- inset-inline: var(--_toast-inset);
6
- pointer-events: none;
7
- position: fixed;
8
-
9
- z-index: var(--helix-layer-toast);
4
+ display: contents;
10
5
  }
11
6
 
12
7
  :host(:not([placement])) {
13
8
  --_toast-enter: var(--helix-space-lg);
14
- inset-block-end: var(--_toast-inset);
15
9
  }
16
10
 
17
11
  [part="region"] {
18
12
 
19
13
  --_toast-gap: var(--toast-gap, var(--helix-space-xs));
14
+ background: none;
15
+ block-size: auto;
16
+ border: none;
17
+ color: inherit;
20
18
  display: flex;
21
19
  flex-direction: column;
20
+ inline-size: auto;
21
+ inset: auto;
22
+ inset-inline: var(--_toast-inset);
23
+ margin: var(--helix-space-none);
24
+ max-block-size: none;
25
+ max-inline-size: none;
26
+ overflow: visible;
27
+ padding: var(--helix-space-none);
28
+ pointer-events: none;
29
+ position: fixed;
30
+
31
+ z-index: var(--helix-layer-toast);
32
+ }
33
+
34
+ :host(:not([placement])) [part="region"] {
35
+ inset-block-end: var(--_toast-inset);
36
+ }
37
+
38
+ [part="region"]:not(:popover-open) {
39
+ display: none;
22
40
  }
23
41
 
24
42
  ::slotted(*) {
@@ -27,11 +45,17 @@ pointer-events: auto;
27
45
 
28
46
  :host([placement^="bottom"]) {
29
47
  --_toast-enter: var(--helix-space-lg);
48
+ }
49
+
50
+ :host([placement^="bottom"]) [part="region"] {
30
51
  inset-block-end: var(--_toast-inset);
31
52
  }
32
53
 
33
54
  :host([placement^="top"]) {
34
55
  --_toast-enter: calc(var(--helix-space-lg) * -1);
56
+ }
57
+
58
+ :host([placement^="top"]) [part="region"] {
35
59
  inset-block-start: var(--_toast-inset);
36
60
  }
37
61
 
@@ -4,16 +4,13 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary The region that holds toast messages, and the only element that announces them.
5
5
  *
6
6
  * @description
7
- * Fixed to the window. The region spans a whole edge, so it ignores the pointer
8
- * and only the messages receive clicks. Content beside a message stays
9
- * clickable.
7
+ * Fixed to the window, in the top layer. The region spans a whole edge, so it
8
+ * ignores the pointer and only the messages receive clicks. Content beside a
9
+ * message stays clickable.
10
10
  *
11
- * **Place the region at the root of your application.** `position: fixed`
12
- * positions against the viewport only while no ancestor has `transform`,
13
- * `filter`, `perspective`, or `contain`. Any of these makes that ancestor the
14
- * containing block, and an ancestor with `overflow: hidden` still clips the
15
- * region. The other floating surfaces in Helix use the top layer for the same
16
- * reason.
11
+ * Because the stack is in the top layer, an ancestor with `transform`,
12
+ * `filter`, `contain`, or `overflow: hidden` does not move or clip it, and a
13
+ * message that arrives while a modal dialog is open shows above the dialog.
17
14
  *
18
15
  * @since 0.1.0
19
16
  * @status stable
@@ -19,6 +19,9 @@ import type { CSSResultGroup } from 'lit';
19
19
  *
20
20
  * @slot - The group's items.
21
21
  * @slot end - Content after the track, on the same line, such as a count or a reset.
22
+ * @slot feedback - The message that says what is wrong, for content richer than a string. It shows while there is a message.
23
+ * @slot hint - Help under the control, for content richer than the `hint` text.
24
+ * @slot label - The label, for content richer than the `label` text.
22
25
  * @slot start - Content before the track, on the same line, such as an icon or a caption.
23
26
  *
24
27
  * @csspart indicator - The moving marker behind the selected item.
@@ -22,6 +22,11 @@ padding: var(--tour-padding, var(--helix-space-md));
22
22
  position: fixed;
23
23
  }
24
24
 
25
+ [part="bubble"]:focus,
26
+ [part="bubble"]:focus-visible {
27
+ outline: none;
28
+ }
29
+
25
30
  :host [part="bubble"][hidden] {
26
31
  display: none;
27
32
  }
@@ -1,6 +1,5 @@
1
1
  import { HelixHeadlessTrend } from '@fusion.dev/helix-headless/trend';
2
2
  import type { CSSResultGroup } from 'lit';
3
- import '../../icon/index.js';
4
3
  /**
5
4
  * @summary An indicator that shows which way a measurement moved, and whether the change is good.
6
5
  *
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessTrend } from '@fusion.dev/helix-headless/trend';
9
- import '../../icon/index.js';
10
9
  import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
11
10
  import { styles } from './trend-root.css.js';
12
11
  let HelixTrend = class HelixTrend extends HelixHeadlessTrend {
@@ -1,6 +1,5 @@
1
1
  import { HelixHeadlessVideo } from '@fusion.dev/helix-headless/video';
2
2
  import type { CSSResultGroup } from 'lit';
3
- import '../../icon/index.js';
4
3
  import '../../menu/index.js';
5
4
  /**
6
5
  * @summary A video player with controls drawn by Helix.
@@ -7,7 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessVideo } from '@fusion.dev/helix-headless/video';
9
9
  import { property } from 'lit/decorators.js';
10
- import '../../icon/index.js';
11
10
  import '../../menu/index.js';
12
11
  import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
13
12
  import { styles as liveStyles } from '../../shared/live/live.css.js';
@@ -1,6 +1,5 @@
1
1
  import { HelixHeadlessVideoPlaylistMenu } from '@fusion.dev/helix-headless/video-playlist';
2
2
  import type { CSSResultGroup } from 'lit';
3
- import '../../icon/index.js';
4
3
  import '../../menu/index.js';
5
4
  /**
6
5
  * @summary The playlist's entries, as a menu inside the player's control bar.
@@ -8,7 +8,6 @@ import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessVideoPlaylistMenu } from '@fusion.dev/helix-headless/video-playlist';
9
9
  import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
10
10
  import { styles } from './video-playlist-menu.css.js';
11
- import '../../icon/index.js';
12
11
  import '../../menu/index.js';
13
12
  let HelixVideoPlaylistMenu = class HelixVideoPlaylistMenu extends HelixHeadlessVideoPlaylistMenu {
14
13
  static { this.tier = 'helix-'; }