@fusion.dev/helix 0.26.0 → 0.30.1

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 (133) hide show
  1. package/custom-elements.json +6072 -2074
  2. package/dist/accordion/root/accordion-root.css.js +1 -2
  3. package/dist/announcement/root/announcement-root.css.js +0 -1
  4. package/dist/area-chart/root/area-chart-root.css.js +2 -1
  5. package/dist/area-chart/root/area-chart-root.d.ts +1 -1
  6. package/dist/aura/{root/aura-axis.d.ts → axis.d.ts} +2 -2
  7. package/dist/aura/root/aura-root.d.ts +5 -1
  8. package/dist/aura/root/aura-root.js +3 -3
  9. package/dist/avatar/root/avatar-root.css.js +1 -1
  10. package/dist/bar-chart/root/bar-chart-root.css.js +2 -2
  11. package/dist/bar-chart/root/bar-chart-root.d.ts +1 -1
  12. package/dist/blockquote/root/blockquote-root.css.js +1 -2
  13. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +1 -1
  14. package/dist/callout/root/callout-root.css.js +0 -1
  15. package/dist/carousel/root/carousel-root.css.js +0 -1
  16. package/dist/chat/message/chat-message.css.js +4 -1
  17. package/dist/chat/root/chat-root.css.js +5 -1
  18. package/dist/chat/root/chat-root.js +2 -1
  19. package/dist/checkbox/root/checkbox-root.css.js +1 -1
  20. package/dist/checkbox/root/checkbox-root.d.ts +4 -3
  21. package/dist/checkbox-group/root/checkbox-group-root.css.js +0 -1
  22. package/dist/code/root/code-root.css.js +0 -1
  23. package/dist/code-block/root/code-block-root.css.js +0 -1
  24. package/dist/color-input/root/color-input-root.css.js +5 -82
  25. package/dist/color-input/root/color-input-root.js +11 -1
  26. package/dist/color-picker/root/color-picker-root.js +1 -1
  27. package/dist/combobox/root/combobox-root.css.js +4 -83
  28. package/dist/combobox/root/combobox-root.js +12 -1
  29. package/dist/data-table/root/data-table-root.css.js +0 -8
  30. package/dist/data-table/root/data-table-root.js +2 -1
  31. package/dist/date-input/root/date-input-root.css.js +4 -80
  32. package/dist/date-input/root/date-input-root.js +12 -1
  33. package/dist/divider/root/divider-root.css.js +1 -1
  34. package/dist/donut-chart/root/donut-chart-root.css.js +3 -2
  35. package/dist/drilldown/root/drilldown-root.css.js +0 -11
  36. package/dist/drilldown/root/drilldown-root.js +2 -1
  37. package/dist/empty/root/empty-root.css.js +1 -2
  38. package/dist/file-input/root/file-input-root.css.js +3 -21
  39. package/dist/file-input/root/file-input-root.js +9 -2
  40. package/dist/filter-input/root/filter-input-root.css.js +4 -82
  41. package/dist/filter-input/root/filter-input-root.js +7 -1
  42. package/dist/flex/root/flex-root.css.js +1 -1
  43. package/dist/grid/root/grid-root.css.js +1 -1
  44. package/dist/icon/root/icon-root.css.js +1 -1
  45. package/dist/image/root/image-root.css.js +1 -1
  46. package/dist/input/root/input-root.css.js +0 -32
  47. package/dist/input/root/input-root.js +9 -2
  48. package/dist/legend/root/legend-root.css.js +1 -2
  49. package/dist/line-chart/root/line-chart-root.css.js +2 -2
  50. package/dist/line-chart/root/line-chart-root.d.ts +3 -1
  51. package/dist/list/root/list-root.css.js +1 -1
  52. package/dist/listbox/root/listbox-root.css.js +2 -8
  53. package/dist/listbox/root/listbox-root.js +7 -1
  54. package/dist/loader/root/loader-root.css.js +9 -5
  55. package/dist/menu/root/menu-root.css.js +4 -64
  56. package/dist/menu/root/menu-root.js +9 -1
  57. package/dist/meter/root/meter-root.css.js +0 -1
  58. package/dist/notifications/group/notification-group.css.js +1 -0
  59. package/dist/notifications/notification/notification.js +1 -1
  60. package/dist/notifications/root/notifications-root.css.js +2 -7
  61. package/dist/notifications/root/notifications-root.js +2 -1
  62. package/dist/number-input/root/number-input-root.css.js +2 -40
  63. package/dist/number-input/root/number-input-root.d.ts +2 -0
  64. package/dist/number-input/root/number-input-root.js +7 -1
  65. package/dist/option/root/option-root.css.js +0 -1
  66. package/dist/orb/index.d.ts +1 -1
  67. package/dist/orb/index.js +1 -1
  68. package/dist/orb/root/orb-root.d.ts +5 -1
  69. package/dist/orb/root/orb-root.js +3 -3
  70. package/dist/outline/root/outline-root.css.js +1 -1
  71. package/dist/pin-input/root/pin-input-root.css.js +0 -1
  72. package/dist/progress/root/progress-root.css.js +0 -1
  73. package/dist/qr-code/root/qr-code-root.css.js +1 -1
  74. package/dist/quote/root/quote-root.css.js +1 -2
  75. package/dist/radio/root/radio-root.css.js +5 -2
  76. package/dist/rating/root/rating-root.css.js +0 -1
  77. package/dist/scroll-area/root/scroll-area-root.css.js +0 -2
  78. package/dist/select/root/select-root.css.js +3 -57
  79. package/dist/select/root/select-root.js +9 -1
  80. package/dist/shared/chart/series.css.js +4 -1
  81. package/dist/shared/chart/tooltip.css.js +1 -96
  82. package/dist/shared/collection/state.css.js +11 -0
  83. package/dist/shared/field/field-frame.css.d.ts +1 -0
  84. package/dist/shared/field/field-frame.css.js +36 -0
  85. package/dist/shared/field/field.css.js +0 -6
  86. package/dist/shared/floating/entrance.css.d.ts +1 -0
  87. package/dist/shared/floating/entrance.css.js +39 -0
  88. package/dist/shared/floating/panel.css.d.ts +1 -0
  89. package/dist/shared/floating/panel.css.js +18 -0
  90. package/dist/shared/glyph/glyph.css.d.ts +1 -0
  91. package/dist/sparkline/root/sparkline-root.css.js +0 -1
  92. package/dist/speed-dial/root/speed-dial-root.js +1 -1
  93. package/dist/splitter/root/splitter-root.css.js +0 -2
  94. package/dist/stat/root/stat-root.css.js +1 -1
  95. package/dist/steps/root/steps-root.css.js +1 -1
  96. package/dist/switch/root/switch-root.css.js +0 -1
  97. package/dist/table/cell/table-cell.d.ts +4 -3
  98. package/dist/table/root/table-root.css.js +1 -13
  99. package/dist/table/root/table-root.js +2 -1
  100. package/dist/table/row/table-row.d.ts +4 -3
  101. package/dist/tabs/panel/tab-panel.d.ts +3 -3
  102. package/dist/tabs/root/tabs-root.css.js +0 -1
  103. package/dist/tabs/tab/tab.d.ts +4 -3
  104. package/dist/tag/root/tag-root.css.js +1 -1
  105. package/dist/text/root/text-root.css.js +1 -1
  106. package/dist/textarea/root/textarea-root.css.js +2 -36
  107. package/dist/textarea/root/textarea-root.js +7 -1
  108. package/dist/time-input/root/time-input-root.css.js +7 -82
  109. package/dist/time-input/root/time-input-root.js +12 -1
  110. package/dist/time-picker/root/time-picker-root.css.js +0 -1
  111. package/dist/timeline/root/timeline-root.css.js +1 -1
  112. package/dist/tooltip/root/tooltip-root.css.js +1 -0
  113. package/dist/tour/stop/tour-stop.css.js +7 -6
  114. package/dist/tree/root/tree-root.css.js +1 -12
  115. package/dist/tree/root/tree-root.js +2 -1
  116. package/dist/trend/root/trend-root.css.js +1 -1
  117. package/dist/trend/root/trend-root.js +1 -1
  118. package/dist/video/root/video-root.css.js +11 -8
  119. package/dist/video/root/video-root.js +1 -1
  120. package/dist/video-playlist/menu/video-playlist-menu.js +1 -1
  121. package/dist/virtual-list/root/virtual-list-root.css.js +0 -2
  122. package/package.json +9 -8
  123. package/types/jsx.d.ts +493 -405
  124. package/types/vue.d.ts +142 -129
  125. /package/dist/aura/{root/aura-axis.js → axis.js} +0 -0
  126. /package/dist/aura/{root/aura-shader.d.ts → shader.d.ts} +0 -0
  127. /package/dist/aura/{root/aura-shader.js → shader.js} +0 -0
  128. /package/dist/orb/{root/orb-color.d.ts → color.d.ts} +0 -0
  129. /package/dist/orb/{root/orb-color.js → color.js} +0 -0
  130. /package/dist/orb/{root/orb-shapes.d.ts → shapes.d.ts} +0 -0
  131. /package/dist/orb/{root/orb-shapes.js → shapes.js} +0 -0
  132. /package/dist/{icon/glyph.css.d.ts → shared/collection/state.css.d.ts} +0 -0
  133. /package/dist/{icon → shared/glyph}/glyph.css.js +0 -0
@@ -15,28 +15,6 @@ background-color var(--helix-duration-fast) var(--helix-easing-standard),
15
15
  border-color var(--helix-duration-fast) var(--helix-easing-standard);
16
16
  }
17
17
 
18
- [part="control"] {
19
- all: unset;
20
- box-sizing: border-box;
21
- color: var(--helix-color-foreground);
22
- flex: 1 1 auto;
23
- font-family: var(--helix-font-sans);
24
- font-size: var(--helix-text-md);
25
- font-weight: var(--helix-weight-medium);
26
- min-inline-size: 0;
27
- }
28
-
29
- :host(:not(:disabled)) [part="field"]:hover {
30
- border-color: var(--helix-color-primary);
31
- }
32
-
33
- :host(:focus-within) [part="field"],
34
- :host(:focus-within) [part="field"]:hover {
35
- border-color: var(--helix-color-primary);
36
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
37
- outline-offset: 0;
38
- }
39
-
40
18
  [part="trigger"] {
41
19
  all: unset;
42
20
  block-size: var(--helix-size-icon);
@@ -64,53 +42,15 @@ outline-offset: var(--helix-size-focus-offset);
64
42
  }
65
43
 
66
44
  [part="surface"] {
67
- background-color: var(--helix-color-surface-overlay);
68
- border: var(--date-input-border-width, var(--helix-border-floating)) solid
69
- var(--date-input-border-color, var(--helix-color-border));
70
- border-radius: var(--helix-radii-sm);
71
- box-shadow: var(--date-input-shadow, var(--helix-shadow-floating));
45
+ --_floating-border-color: var(--date-input-border-color, var(--helix-color-border));
46
+ --_floating-border-width: var(--date-input-border-width, var(--helix-border-floating));
47
+ --_floating-shadow: var(--date-input-shadow, var(--helix-shadow-floating));
48
+
72
49
  inline-size: max-content;
73
- inset: auto;
74
- margin: var(--helix-space-none);
75
50
  padding: var(--helix-space-sm);
76
51
  position: absolute;
77
52
  }
78
53
 
79
- [part="surface"] {
80
- --_travel: calc(var(--helix-space-2xs) * -1);
81
- opacity: 0;
82
- transform: translateY(var(--_travel));
83
- scale: 0.96;
84
- transition:
85
- opacity var(--helix-duration-fast) var(--helix-easing-standard),
86
- scale var(--helix-duration-fast) var(--helix-easing-emphasized),
87
- transform var(--helix-duration-fast) var(--helix-easing-emphasized),
88
- display var(--helix-duration-fast) allow-discrete,
89
- overlay var(--helix-duration-fast) allow-discrete;
90
- }
91
-
92
- [part="surface"][data-placement^="top"] {
93
- --_travel: var(--helix-space-2xs);
94
- }
95
-
96
- [part="surface"][data-placed] {
97
- opacity: 1;
98
- scale: 1;
99
- transform: none;
100
- }
101
-
102
- [part="surface"][data-placement^="top"] {
103
- transform-origin: var(--floating-arrow-x, 50%) 100%;
104
- }
105
-
106
- [part="surface"][data-placement^="bottom"] {
107
- transform-origin: var(--floating-arrow-x, 50%) 0;
108
- }
109
-
110
- [part="surface"][hidden] {
111
- display: none;
112
- }
113
-
114
54
  :host(:disabled) [part="field"] {
115
55
  color: var(--helix-color-foreground-subtle);
116
56
  }
@@ -125,13 +65,6 @@ cursor: not-allowed;
125
65
  [part="trigger"] {
126
66
  transition: none;
127
67
  }
128
-
129
- [part="surface"],
130
- [part="surface"][data-placed] {
131
- scale: 1;
132
- transform: none;
133
- transition: none;
134
- }
135
68
  }
136
69
 
137
70
  [part="date"] {
@@ -144,17 +77,8 @@ flex-basis: 0;
144
77
  min-inline-size: var(--helix-size-icon-loose);
145
78
  }
146
79
 
147
- :host(:state(invalid)) [part="field"],
148
- :host(:state(invalid)) [part="field"]:hover,
149
- :host(:state(invalid):focus-within) [part="field"],
150
- :host(:state(invalid):focus-within) [part="field"]:hover {
151
- border-color: var(--helix-color-danger);
152
- outline-color: var(--helix-color-danger);
153
- }
154
-
155
80
  @media print {
156
81
  :host {
157
- box-shadow: none;
158
82
  print-color-adjust: exact;
159
83
  }
160
84
  }`);
@@ -9,12 +9,23 @@ import { HelixHeadlessDateInput } from '@fusion.dev/helix-headless/date-input';
9
9
  import '../../date-picker/index.js';
10
10
  import '../../tag/index.js';
11
11
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
12
+ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
12
13
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
14
+ import { styles as floatingEntranceStyles } from '../../shared/floating/entrance.css.js';
15
+ import { styles as floatingPanelStyles } from '../../shared/floating/panel.css.js';
13
16
  import { styles as tagRowStyles } from '../../shared/tags/tags.css.js';
14
17
  import { styles } from './date-input-root.css.js';
15
18
  let HelixDateInput = class HelixDateInput extends HelixHeadlessDateInput {
16
19
  static { this.tier = 'helix-'; }
17
- static { this.styles = [fieldStyles, fieldStackedStyles, tagRowStyles, styles]; }
20
+ static { this.styles = [
21
+ fieldStyles,
22
+ fieldFrameStyles,
23
+ fieldStackedStyles,
24
+ tagRowStyles,
25
+ floatingPanelStyles,
26
+ floatingEntranceStyles,
27
+ styles,
28
+ ]; }
18
29
  };
19
30
  HelixDateInput = __decorate([
20
31
  customElement('helix-date-input')
@@ -76,6 +76,6 @@ min-block-size: 1em;
76
76
 
77
77
  @media print {
78
78
  :host {
79
- box-shadow: none;
79
+ print-color-adjust: economy;
80
80
  }
81
81
  }`);
@@ -56,9 +56,11 @@ translate: -50% -50%;
56
56
 
57
57
  box-sizing: border-box;
58
58
 
59
+ --_donut-chart-ring: 80;
60
+
59
61
  container-type: inline-size;
60
62
  display: grid;
61
- inline-size: calc(100% * (80 - var(--donut-chart-stroke, 16)) / 100);
63
+ inline-size: calc(100% * (var(--_donut-chart-ring) - var(--donut-chart-stroke, 16)) / 100);
62
64
  place-items: center;
63
65
  text-align: center;
64
66
  }
@@ -128,7 +130,6 @@ font-size: 6.5cqi;
128
130
 
129
131
  @media print {
130
132
  :host {
131
- box-shadow: none;
132
133
  print-color-adjust: exact;
133
134
  }
134
135
  }
@@ -102,17 +102,6 @@ animation: none;
102
102
  scale: -1 1;
103
103
  }
104
104
 
105
- [part="empty"],
106
- [part="loading"] {
107
- color: var(--helix-color-foreground-subtle);
108
- font-family: var(--helix-font-sans);
109
- font-size: var(--helix-text-sm);
110
- margin: var(--helix-space-none);
111
- padding-block: var(--helix-space-md);
112
- padding-inline: var(--helix-space-sm);
113
- text-align: center;
114
- }
115
-
116
105
  :host([loading]) [part="page"] {
117
106
  opacity: 0.5;
118
107
  }
@@ -6,9 +6,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessDrilldown } from '@fusion.dev/helix-headless/drilldown';
9
+ import { styles as collectionStateStyles } from '../../shared/collection/state.css.js';
9
10
  import { styles } from './drilldown-root.css.js';
10
11
  let HelixDrilldown = class HelixDrilldown extends HelixHeadlessDrilldown {
11
- static { this.styles = styles; }
12
+ static { this.styles = [collectionStateStyles, styles]; }
12
13
  };
13
14
  HelixDrilldown = __decorate([
14
15
  customElement('helix-drilldown')
@@ -38,7 +38,6 @@ margin-block-start: var(--helix-space-sm);
38
38
 
39
39
  @media print {
40
40
  :host {
41
- background-color: transparent;
42
- box-shadow: none;
41
+ print-color-adjust: economy;
43
42
  }
44
43
  }`);
@@ -21,13 +21,8 @@ opacity: 0;
21
21
  position: absolute;
22
22
  }
23
23
 
24
- :host {
25
- display: block;
26
- }
27
-
28
- [part="field"]:has([part="control"]:focus-visible) {
29
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
30
- outline-offset: 0;
24
+ :host(:focus-within) [part="field"]:not(:focus-within) {
25
+ outline: none;
31
26
  }
32
27
 
33
28
  [part="field"][data-dropping] {
@@ -55,7 +50,7 @@ display: flex;
55
50
  flex-direction: column;
56
51
  gap: var(--helix-space-2xs);
57
52
  list-style: none;
58
- margin-block: var(--helix-space-xs) 0;
53
+ margin-block: var(--helix-space-2xs) 0;
59
54
  padding: var(--helix-space-none);
60
55
  }
61
56
 
@@ -154,10 +149,6 @@ color: var(--helix-color-foreground-subtle);
154
149
  cursor: not-allowed;
155
150
  }
156
151
 
157
- :host(:not(:disabled)) [part="field"]:hover {
158
- border-color: var(--helix-color-foreground-muted);
159
- }
160
-
161
152
  @media (prefers-reduced-motion: reduce) {
162
153
  [part="field"],
163
154
  [part="file"],
@@ -177,17 +168,8 @@ scale: 1 1;
177
168
  color: var(--helix-color-foreground-muted);
178
169
  }
179
170
 
180
- :host(:state(invalid)) [part="field"],
181
- :host(:state(invalid)) [part="field"]:hover,
182
- :host(:state(invalid):focus-within) [part="field"],
183
- :host(:state(invalid):focus-within) [part="field"]:hover {
184
- border-color: var(--helix-color-danger);
185
- outline-color: var(--helix-color-danger);
186
- }
187
-
188
171
  @media print {
189
172
  :host {
190
- box-shadow: none;
191
173
  print-color-adjust: exact;
192
174
  }
193
175
  }`);
@@ -8,13 +8,20 @@ import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessFileInput } from '@fusion.dev/helix-headless/file-input';
9
9
  import '../../icon/index.js';
10
10
  import '../../tag/index.js';
11
- import { styles as glyphStyles } from '../../icon/glyph.css.js';
12
11
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
12
+ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
13
13
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
14
+ import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
14
15
  import { styles } from './file-input-root.css.js';
15
16
  let HelixFileInput = class HelixFileInput extends HelixHeadlessFileInput {
16
17
  static { this.tier = 'helix-'; }
17
- static { this.styles = [glyphStyles, fieldStyles, fieldStackedStyles, styles]; }
18
+ static { this.styles = [
19
+ glyphStyles,
20
+ fieldStyles,
21
+ fieldFrameStyles,
22
+ fieldStackedStyles,
23
+ styles,
24
+ ]; }
18
25
  };
19
26
  HelixFileInput = __decorate([
20
27
  customElement('helix-file-input')
@@ -1,9 +1,6 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
2
  export const styles = createSheet(`:host {
3
3
  --_filter-input-size: var(--filter-input-size, var(--helix-size-control));
4
- display: flex;
5
- flex-direction: column;
6
- gap: var(--helix-space-2xs);
7
4
  }
8
5
 
9
6
  [part="field"] {
@@ -24,39 +21,13 @@ border-color var(--helix-duration-fast) var(--helix-easing-standard),
24
21
  background-color var(--helix-duration-fast) var(--helix-easing-standard);
25
22
  }
26
23
 
27
- :host(:not(:disabled)) [part="field"]:hover {
28
- border-color: var(--helix-color-primary);
29
- }
30
-
31
- :host(:focus-within) [part="field"],
32
- :host(:focus-within) [part="field"]:hover {
33
- border-color: var(--helix-color-primary);
34
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
35
- outline-offset: 0;
36
- }
37
-
38
- :host(:state(invalid)) [part="field"],
39
- :host(:state(invalid)) [part="field"]:hover,
40
- :host(:state(invalid):focus-within) [part="field"],
41
- :host(:state(invalid):focus-within) [part="field"]:hover {
42
- border-color: var(--helix-color-danger);
43
- outline-color: var(--helix-color-danger);
44
- }
45
-
46
24
  ::slotted([slot="tags"]) {
47
25
  flex: 0 0 auto;
48
26
  max-inline-size: 100%;
49
27
  }
50
28
 
51
29
  [part="control"] {
52
- all: unset;
53
- box-sizing: border-box;
54
- color: var(--helix-color-foreground);
55
30
  flex: 1 1 var(--filter-input-control-size, 6ch);
56
- font-family: var(--helix-font-sans);
57
- font-size: var(--helix-text-sm);
58
- font-weight: var(--helix-weight-medium);
59
- min-inline-size: 0;
60
31
  }
61
32
 
62
33
  [part="lead"] {
@@ -122,21 +93,17 @@ opacity: 0.5;
122
93
 
123
94
  @media print {
124
95
  :host {
125
- box-shadow: none;
126
96
  print-color-adjust: exact;
127
97
  }
128
98
  }
129
99
 
130
100
  [part="surface"] {
131
- background-color: var(--helix-color-surface-overlay);
132
- border: var(--filter-input-border-width, var(--helix-border-floating)) solid
133
- var(--filter-input-border-color, var(--helix-color-border));
134
- border-radius: var(--helix-radii-sm);
135
- box-shadow: var(--filter-input-shadow, var(--helix-shadow-floating));
101
+ --_floating-border-color: var(--filter-input-border-color, var(--helix-color-border));
102
+ --_floating-border-width: var(--filter-input-border-width, var(--helix-border-floating));
103
+ --_floating-shadow: var(--filter-input-shadow, var(--helix-shadow-floating));
104
+
136
105
  box-sizing: border-box;
137
106
  inline-size: var(--filter-input-panel-size, var(--floating-anchor-inline-size, 100%));
138
- inset: auto;
139
- margin: var(--helix-space-none);
140
107
 
141
108
  max-block-size: var(--floating-available-block-size, 20rem);
142
109
  min-inline-size: max-content;
@@ -144,49 +111,4 @@ overflow-y: auto;
144
111
  padding-block: var(--helix-space-2xs);
145
112
  padding-inline: var(--helix-space-none);
146
113
  position: absolute;
147
- }
148
-
149
- [part="surface"] {
150
- --_travel: calc(var(--helix-space-2xs) * -1);
151
-
152
- opacity: 0;
153
- scale: 0.96;
154
- transform: translateY(var(--_travel));
155
- transition:
156
- opacity var(--helix-duration-fast) var(--helix-easing-standard),
157
- scale var(--helix-duration-fast) var(--helix-easing-emphasized),
158
- transform var(--helix-duration-fast) var(--helix-easing-emphasized),
159
- display var(--helix-duration-fast) allow-discrete,
160
- overlay var(--helix-duration-fast) allow-discrete;
161
- }
162
-
163
- [part="surface"][data-placement^="top"] {
164
- --_travel: var(--helix-space-2xs);
165
-
166
- transform-origin: var(--floating-arrow-x, 50%) 100%;
167
- }
168
-
169
- [part="surface"][data-placement^="bottom"] {
170
- transform-origin: var(--floating-arrow-x, 50%) 0;
171
- }
172
-
173
- [part="surface"][data-placed] {
174
- opacity: 1;
175
- scale: 1;
176
- transform: none;
177
- }
178
-
179
- [part="surface"][hidden],
180
- [part="surface"]:not(:popover-open) {
181
- display: none;
182
- }
183
-
184
- @media (prefers-reduced-motion: reduce) {
185
-
186
- [part="surface"],
187
- [part="surface"][data-placed] {
188
- scale: 1;
189
- transform: none;
190
- transition: none;
191
- }
192
114
  }`);
@@ -8,17 +8,23 @@ import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessFilterInput } from '@fusion.dev/helix-headless/filter-input';
9
9
  import '../../icon/index.js';
10
10
  import '../../option/index.js';
11
- import { styles as glyphStyles } from '../../icon/glyph.css.js';
12
11
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
12
+ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
13
13
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
14
+ import { styles as floatingEntranceStyles } from '../../shared/floating/entrance.css.js';
15
+ import { styles as floatingPanelStyles } from '../../shared/floating/panel.css.js';
16
+ import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
14
17
  import { styles as tagRowStyles } from '../../shared/tags/tags.css.js';
15
18
  import { styles } from './filter-input-root.css.js';
16
19
  let HelixFilterInput = class HelixFilterInput extends HelixHeadlessFilterInput {
17
20
  static { this.styles = [
18
21
  glyphStyles,
19
22
  fieldStyles,
23
+ fieldFrameStyles,
20
24
  fieldStackedStyles,
21
25
  tagRowStyles,
26
+ floatingPanelStyles,
27
+ floatingEntranceStyles,
22
28
  styles,
23
29
  ]; }
24
30
  };
@@ -75,6 +75,6 @@ justify-content: space-around;
75
75
 
76
76
  @media print {
77
77
  :host {
78
- box-shadow: none;
78
+ print-color-adjust: economy;
79
79
  }
80
80
  }`);
@@ -68,6 +68,6 @@ align-items: end;
68
68
 
69
69
  @media print {
70
70
  :host {
71
- box-shadow: none;
71
+ print-color-adjust: economy;
72
72
  }
73
73
  }`);
@@ -14,6 +14,6 @@ inline-size: 100%;
14
14
 
15
15
  @media print {
16
16
  :host {
17
- box-shadow: none;
17
+ print-color-adjust: economy;
18
18
  }
19
19
  }`);
@@ -61,6 +61,6 @@ opacity: 1;
61
61
 
62
62
  @media print {
63
63
  :host {
64
- box-shadow: none;
64
+ print-color-adjust: economy;
65
65
  }
66
66
  }`);
@@ -1,9 +1,6 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
2
  export const styles = createSheet(`:host {
3
3
  --_input-size: var(--input-size, var(--helix-size-control));
4
- display: flex;
5
- flex-direction: column;
6
- gap: var(--helix-space-2xs);
7
4
  }
8
5
 
9
6
  [part="field"] {
@@ -21,36 +18,8 @@ border-color var(--helix-duration-fast) var(--helix-easing-standard),
21
18
  background-color var(--helix-duration-fast) var(--helix-easing-standard);
22
19
  }
23
20
 
24
- :host(:not(:disabled)) [part="field"]:hover {
25
- border-color: var(--helix-color-primary);
26
- }
27
-
28
- :host(:focus-within) [part="field"],
29
- :host(:focus-within) [part="field"]:hover {
30
- border-color: var(--helix-color-primary);
31
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
32
- outline-offset: 0;
33
- }
34
-
35
- :host(:state(invalid)) [part="field"],
36
- :host(:state(invalid)) [part="field"]:hover,
37
- :host(:state(invalid):focus-within) [part="field"],
38
- :host(:state(invalid):focus-within) [part="field"]:hover {
39
- border-color: var(--helix-color-danger);
40
- outline-color: var(--helix-color-danger);
41
- }
42
-
43
21
  [part="control"] {
44
- all: unset;
45
-
46
- box-sizing: border-box;
47
22
  block-size: 100%;
48
- color: var(--helix-color-foreground);
49
- flex: 1 1 auto;
50
- font-family: var(--helix-font-sans);
51
- font-size: var(--helix-text-sm);
52
- font-weight: var(--helix-weight-medium);
53
- min-inline-size: 0;
54
23
  }
55
24
 
56
25
  [part="control"]::-webkit-search-cancel-button {
@@ -107,7 +76,6 @@ color: var(--helix-color-foreground);
107
76
 
108
77
  @media print {
109
78
  :host {
110
- box-shadow: none;
111
79
  print-color-adjust: exact;
112
80
  }
113
81
  }`);
@@ -7,12 +7,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessInput } from '@fusion.dev/helix-headless/input';
9
9
  import '../../icon/index.js';
10
- import { styles as glyphStyles } from '../../icon/glyph.css.js';
11
10
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
11
+ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
12
12
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
13
+ import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
13
14
  import { styles } from './input-root.css.js';
14
15
  let HelixInput = class HelixInput extends HelixHeadlessInput {
15
- static { this.styles = [glyphStyles, fieldStyles, fieldStackedStyles, styles]; }
16
+ static { this.styles = [
17
+ glyphStyles,
18
+ fieldStyles,
19
+ fieldFrameStyles,
20
+ fieldStackedStyles,
21
+ styles,
22
+ ]; }
16
23
  };
17
24
  HelixInput = __decorate([
18
25
  customElement('helix-input')
@@ -76,13 +76,12 @@ color-mix(in oklab, var(--chart-series) calc(var(--_legend-through, 1) * 100%),
76
76
  --_legend-through: calc(0.62 * var(--helix-material-opacity));
77
77
  }
78
78
 
79
- [part="entry"][data-material="frosted"],
80
79
  :host([material="frosted"]) [part="entry"]:not([data-material]) [part="swatch"] {
81
80
  --_legend-through: calc(0.88 * var(--helix-material-opacity));
82
81
  }
83
82
 
84
83
  @media print {
85
84
  :host {
86
- box-shadow: none;
85
+ print-color-adjust: economy;
87
86
  }
88
87
  }`);
@@ -21,7 +21,8 @@ overflow: visible;
21
21
  [part="line"] {
22
22
  stroke-linecap: round;
23
23
  stroke-linejoin: round;
24
- stroke-width: var(--line-chart-width, 2px);
24
+
25
+ stroke-width: var(--line-chart-width, var(--_chart-stroke));
25
26
  vector-effect: non-scaling-stroke;
26
27
  }
27
28
 
@@ -117,7 +118,6 @@ fill: var(--line-chart-band-color, var(--helix-color-surface-sunken));
117
118
 
118
119
  @media print {
119
120
  :host {
120
- box-shadow: none;
121
121
  print-color-adjust: exact;
122
122
  }
123
123
  }
@@ -24,12 +24,14 @@ import '../../tooltip/index.js';
24
24
  * @aliases Time Series, Trend Chart, Multi-line Chart
25
25
  * @documentation https://helix.fusion.dev/components/line-chart
26
26
  *
27
+ * @cssproperty --chart-stroke - Thickness of a series drawn as a line, here and on Area
28
+ * Chart's top edge and Bar Chart's `lines`. Each family's own width hook overrides it.
27
29
  * @cssproperty --line-chart-area-opacity - How much of a line's color its wash takes.
28
30
  * @cssproperty --line-chart-band-color - The slot the pointer is resting in.
29
31
  * @cssproperty --line-chart-block-size - Height of the drawing.
30
32
  * @cssproperty --line-chart-gap - Space between the drawing and its labels.
31
33
  * @cssproperty --line-chart-gridline-color - One rule across the plot, under `gridlines`.
32
- * @cssproperty --line-chart-width - Thickness of a line.
34
+ * @cssproperty --line-chart-width - Thickness of a line, over `--chart-stroke`.
33
35
  */
34
36
  export declare class HelixLineChart extends HelixHeadlessLineChart {
35
37
  /**
@@ -70,6 +70,6 @@ list-style: none;
70
70
 
71
71
  @media print {
72
72
  :host {
73
- box-shadow: none;
73
+ print-color-adjust: economy;
74
74
  }
75
75
  }`);
@@ -44,13 +44,8 @@ cursor: not-allowed;
44
44
 
45
45
  [part="empty"],
46
46
  [part="loading"] {
47
- color: var(--helix-color-foreground-subtle);
48
- font-family: var(--helix-font-sans);
49
- font-size: var(--helix-text-sm);
50
- margin: var(--helix-space-none);
51
- padding-block: var(--helix-space-xs);
52
- padding-inline: var(--helix-space-xs);
53
- text-align: center;
47
+ --_collection-inset-block: var(--helix-space-xs);
48
+ --_collection-inset-inline: var(--helix-space-xs);
54
49
  }
55
50
 
56
51
  [part="filter-icon"] {
@@ -103,7 +98,6 @@ opacity: 0.5;
103
98
 
104
99
  @media print {
105
100
  :host {
106
- box-shadow: none;
107
101
  print-color-adjust: exact;
108
102
  }
109
103
  }`);
@@ -6,11 +6,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessListbox } from '@fusion.dev/helix-headless/listbox';
9
+ import { styles as collectionStateStyles } from '../../shared/collection/state.css.js';
9
10
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
10
11
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
11
12
  import { styles } from './listbox-root.css.js';
12
13
  let HelixListbox = class HelixListbox extends HelixHeadlessListbox {
13
- static { this.styles = [fieldStyles, fieldStackedStyles, styles]; }
14
+ static { this.styles = [
15
+ collectionStateStyles,
16
+ fieldStyles,
17
+ fieldStackedStyles,
18
+ styles,
19
+ ]; }
14
20
  };
15
21
  HelixListbox = __decorate([
16
22
  customElement('helix-listbox')