@fusion.dev/helix 0.25.1 → 0.30.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 (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
@@ -37,105 +37,10 @@ grid-column: 3;
37
37
  }
38
38
 
39
39
  [part="tooltip-cell"][data-series]::before {
40
+ background-color: var(--chart-series);
40
41
  block-size: 0.5em;
41
42
  border-radius: var(--helix-radii-full);
42
43
  content: "";
43
44
  grid-column: 1;
44
45
  inline-size: 0.5em;
45
- }
46
-
47
- [part="tooltip-cell"][data-series="1"]::before {
48
- background-color: var(--chart-series-1);
49
- }
50
-
51
- [part="tooltip-cell"][data-series="2"]::before {
52
- background-color: var(--chart-series-2);
53
- }
54
-
55
- [part="tooltip-cell"][data-series="3"]::before {
56
- background-color: var(--chart-series-3);
57
- }
58
-
59
- [part="tooltip-cell"][data-series="4"]::before {
60
- background-color: var(--chart-series-4);
61
- }
62
-
63
- [part="tooltip-cell"][data-series="5"]::before {
64
- background-color: var(--chart-series-5);
65
- }
66
-
67
- [part="tooltip-cell"][data-series="6"]::before {
68
- background-color: var(--chart-series-6);
69
- }
70
-
71
- [part="tooltip-cell"][data-series="7"]::before {
72
- background-color: var(--chart-series-7);
73
- }
74
-
75
- [part="tooltip-cell"][data-series="8"]::before {
76
- background-color: var(--chart-series-8);
77
- }
78
-
79
- [part="tooltip-cell"][data-series="9"]::before {
80
- background-color: var(--chart-series-9);
81
- }
82
-
83
- [part="tooltip-cell"][data-series="10"]::before {
84
- background-color: var(--chart-series-10);
85
- }
86
-
87
- [part="tooltip-cell"][data-series="11"]::before {
88
- background-color: var(--chart-series-11);
89
- }
90
-
91
- [part="tooltip-cell"][data-series="12"]::before {
92
- background-color: var(--chart-series-12);
93
- }
94
-
95
- [part="tooltip-cell"][data-series="13"]::before {
96
- background-color: var(--chart-series-13);
97
- }
98
-
99
- [part="tooltip-cell"][data-series="14"]::before {
100
- background-color: var(--chart-series-14);
101
- }
102
-
103
- [part="tooltip-cell"][data-series="15"]::before {
104
- background-color: var(--chart-series-15);
105
- }
106
-
107
- [part="tooltip-cell"][data-series="16"]::before {
108
- background-color: var(--chart-series-16);
109
- }
110
-
111
- [part="tooltip-cell"][data-series="17"]::before {
112
- background-color: var(--chart-series-17);
113
- }
114
-
115
- [part="tooltip-cell"][data-series="18"]::before {
116
- background-color: var(--chart-series-18);
117
- }
118
-
119
- [part="tooltip-cell"][data-series="19"]::before {
120
- background-color: var(--chart-series-19);
121
- }
122
-
123
- [part="tooltip-cell"][data-series="20"]::before {
124
- background-color: var(--chart-series-20);
125
- }
126
-
127
- [part="tooltip-cell"][data-series="21"]::before {
128
- background-color: var(--chart-series-21);
129
- }
130
-
131
- [part="tooltip-cell"][data-series="22"]::before {
132
- background-color: var(--chart-series-22);
133
- }
134
-
135
- [part="tooltip-cell"][data-series="23"]::before {
136
- background-color: var(--chart-series-23);
137
- }
138
-
139
- [part="tooltip-cell"][data-series="24"]::before {
140
- background-color: var(--chart-series-24);
141
46
  }`);
@@ -0,0 +1,11 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`[part="empty"],
3
+ [part="loading"] {
4
+ color: var(--helix-color-foreground-subtle);
5
+ font-family: var(--helix-font-sans);
6
+ font-size: var(--helix-text-sm);
7
+ margin: var(--helix-space-none);
8
+ padding-block: var(--_collection-inset-block, var(--helix-space-md));
9
+ padding-inline: var(--_collection-inset-inline, var(--helix-space-sm));
10
+ text-align: center;
11
+ }`);
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,36 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`:host {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--helix-space-2xs);
6
+ }
7
+
8
+ :host(:not(:disabled)) [part="field"]:hover {
9
+ border-color: var(--helix-color-primary);
10
+ }
11
+
12
+ :host(:focus-within) [part="field"],
13
+ :host(:focus-within) [part="field"]:hover {
14
+ border-color: var(--helix-color-primary);
15
+ outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
16
+ outline-offset: 0;
17
+ }
18
+
19
+ :host(:state(invalid)) [part="field"],
20
+ :host(:state(invalid)) [part="field"]:hover,
21
+ :host(:state(invalid):focus-within) [part="field"],
22
+ :host(:state(invalid):focus-within) [part="field"]:hover {
23
+ border-color: var(--helix-color-danger);
24
+ outline-color: var(--helix-color-danger);
25
+ }
26
+
27
+ [part="control"] {
28
+ all: unset;
29
+ box-sizing: border-box;
30
+ color: var(--helix-color-foreground);
31
+ flex: 1 1 auto;
32
+ font-family: var(--helix-font-sans);
33
+ font-size: var(--helix-text-md);
34
+ font-weight: var(--helix-weight-medium);
35
+ min-inline-size: 0;
36
+ }`);
@@ -49,10 +49,4 @@ inline-size: 1px;
49
49
  overflow: hidden;
50
50
  position: absolute;
51
51
  white-space: nowrap;
52
- }
53
-
54
- @media print {
55
- :host {
56
- box-shadow: none;
57
- }
58
52
  }`);
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,39 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`[part="surface"] {
3
+ --_travel: calc(var(--helix-space-2xs) * -1);
4
+
5
+ opacity: 0;
6
+ scale: 0.96;
7
+ transform: translateY(var(--_travel));
8
+ transition:
9
+ opacity var(--helix-duration-fast) var(--helix-easing-standard),
10
+ scale var(--helix-duration-fast) var(--helix-easing-emphasized),
11
+ transform var(--helix-duration-fast) var(--helix-easing-emphasized),
12
+ display var(--helix-duration-fast) allow-discrete,
13
+ overlay var(--helix-duration-fast) allow-discrete;
14
+ }
15
+
16
+ [part="surface"][data-placement^="top"] {
17
+ --_travel: var(--helix-space-2xs);
18
+
19
+ transform-origin: var(--floating-arrow-x, 50%) 100%;
20
+ }
21
+
22
+ [part="surface"][data-placement^="bottom"] {
23
+ transform-origin: var(--floating-arrow-x, 50%) 0;
24
+ }
25
+
26
+ [part="surface"][data-placed] {
27
+ opacity: 1;
28
+ scale: 1;
29
+ transform: none;
30
+ }
31
+
32
+ @media (prefers-reduced-motion: reduce) {
33
+ [part="surface"],
34
+ [part="surface"][data-placed] {
35
+ scale: 1;
36
+ transform: none;
37
+ transition: none;
38
+ }
39
+ }`);
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,18 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`[part="surface"] {
3
+ background-color: var(--_floating-background-color, var(--helix-color-surface-overlay));
4
+ border: var(--_floating-border-width, var(--helix-border-floating)) solid
5
+ var(--_floating-border-color, var(--helix-color-border));
6
+ border-radius: var(--helix-radii-sm);
7
+ box-shadow: var(--_floating-shadow, var(--helix-shadow-floating));
8
+ inset: auto;
9
+ margin: var(--helix-space-none);
10
+ }
11
+
12
+ [part="surface"][hidden] {
13
+ display: none;
14
+ }
15
+
16
+ [part="surface"]:not(:popover-open) {
17
+ display: none;
18
+ }`);
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -76,7 +76,6 @@ circle at var(--chart-terminus-x) var(--chart-terminus-y),
76
76
 
77
77
  @media print {
78
78
  :host {
79
- box-shadow: none;
80
79
  print-color-adjust: exact;
81
80
  }
82
81
  }
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessSpeedDial } from '@fusion.dev/helix-headless/speed-dial';
9
- import { styles as glyphStyles } from '../../icon/glyph.css.js';
9
+ import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
10
10
  import { styles } from './speed-dial-root.css.js';
11
11
  import '../../icon/index.js';
12
12
  let HelixSpeedDial = class HelixSpeedDial extends HelixHeadlessSpeedDial {
@@ -182,8 +182,6 @@ pointer-events: none;
182
182
 
183
183
  @media print {
184
184
  :host {
185
- box-shadow: none;
186
- max-block-size: none;
187
185
  overflow: visible;
188
186
  }
189
187
  }`);
@@ -54,6 +54,6 @@ order: 1;
54
54
 
55
55
  @media print {
56
56
  :host {
57
- box-shadow: none;
57
+ print-color-adjust: economy;
58
58
  }
59
59
  }`);
@@ -86,6 +86,6 @@ flex-direction: column;
86
86
 
87
87
  @media print {
88
88
  :host {
89
- box-shadow: none;
89
+ print-color-adjust: economy;
90
90
  }
91
91
  }`);
@@ -98,7 +98,6 @@ display: none;
98
98
 
99
99
  @media print {
100
100
  :host {
101
- box-shadow: none;
102
101
  print-color-adjust: exact;
103
102
  }
104
103
  }`);
@@ -4,9 +4,10 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One cell of a table.
5
5
  *
6
6
  * @description
7
- * Hairline rules between rows and no fill, per the rule that depth comes from a
8
- * single border rather than from elevation. A dense table earns its density by
9
- * decorating none of it.
7
+ * Every cell is the same height whatever it holds, so a row with a tag or an
8
+ * icon button in it sits level with a row of text. Content is set in full
9
+ * foreground, since the cells are what a reader is reading, and a long
10
+ * identifier breaks rather than running into the next column.
10
11
  *
11
12
  * @since 0.1.0
12
13
  * @status experimental
@@ -15,24 +15,12 @@ inline-size: 100%;
15
15
  display: contents;
16
16
  }
17
17
 
18
- [part="empty"],
19
- [part="loading"] {
20
- color: var(--helix-color-foreground-subtle);
21
- font-family: var(--helix-font-sans);
22
- font-size: var(--helix-text-sm);
23
- margin: var(--helix-space-none);
24
- padding-block: var(--helix-space-md);
25
- padding-inline: var(--helix-space-sm);
26
- text-align: center;
27
- }
28
-
29
18
  :host([loading]) [part="table"] {
30
19
  opacity: 0.5;
31
20
  }
32
21
 
33
22
  @media print {
34
23
  :host {
35
- background-color: transparent;
36
- box-shadow: none;
24
+ print-color-adjust: economy;
37
25
  }
38
26
  }`);
@@ -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 { HelixHeadlessTable } from '@fusion.dev/helix-headless/table';
9
+ import { styles as collectionStateStyles } from '../../shared/collection/state.css.js';
9
10
  import { styles } from './table-root.css.js';
10
11
  let HelixTable = class HelixTable extends HelixHeadlessTable {
11
- static { this.styles = styles; }
12
+ static { this.styles = [collectionStateStyles, styles]; }
12
13
  };
13
14
  HelixTable = __decorate([
14
15
  customElement('helix-table')
@@ -4,9 +4,10 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One row of a table.
5
5
  *
6
6
  * @description
7
- * Hairline rules between rows and no fill, per the rule that depth comes from a
8
- * single border rather than from elevation. A dense table earns its density by
9
- * decorating none of it.
7
+ * No box of its own, so its cells become items of the table's grid and line up
8
+ * with every other row's. The element still exists, which is what lets a row be
9
+ * selected, hidden or made interactive without a wrapper that would break the
10
+ * columns.
10
11
  *
11
12
  * @since 0.1.0
12
13
  * @status experimental
@@ -4,9 +4,9 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary The content shown for one tab.
5
5
  *
6
6
  * @description
7
- * Selection is marked with a rule under the active tab rather than a filled
8
- * pill, which keeps the row flat and lets the underline animate between tabs as
9
- * a movement instead of two separate fills.
7
+ * No box of its own, so only the panel that is showing takes space: a tab set
8
+ * with four panels gives the visible one the whole height rather than a
9
+ * quarter of it.
10
10
  *
11
11
  * @since 0.1.0
12
12
  * @status experimental
@@ -123,7 +123,6 @@ z-index: var(--helix-layer-raised);
123
123
  @media print {
124
124
  :host {
125
125
  box-shadow: none;
126
- max-block-size: none;
127
126
  overflow: visible;
128
127
  }
129
128
  }`);
@@ -4,9 +4,10 @@ import type { CSSResultGroup } from 'lit';
4
4
  * @summary One tab in a tab list.
5
5
  *
6
6
  * @description
7
- * Selection is marked with a rule under the active tab rather than a filled
8
- * pill, which keeps the row flat and lets the underline animate between tabs as
9
- * a movement instead of two separate fills.
7
+ * A control's height, so a tab row sits level with the buttons beside it. The
8
+ * current tab is not marked here: one indicator travels along the tab list, and
9
+ * each tab keeps a transparent edge of the same width so its box does not move
10
+ * when it becomes current.
10
11
  *
11
12
  * @since 0.1.0
12
13
  * @status experimental
@@ -105,6 +105,6 @@ opacity: 0.75;
105
105
 
106
106
  @media print {
107
107
  :host {
108
- box-shadow: none;
108
+ print-color-adjust: economy;
109
109
  }
110
110
  }`);
@@ -107,6 +107,6 @@ font-style: italic;
107
107
 
108
108
  @media print {
109
109
  :host {
110
- box-shadow: none;
110
+ print-color-adjust: economy;
111
111
  }
112
112
  }`);
@@ -1,11 +1,5 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: flex;
4
- flex-direction: column;
5
- gap: var(--helix-space-2xs);
6
- }
7
-
8
- [part="field"] {
2
+ export const styles = createSheet(`[part="field"] {
9
3
  background-color: var(--textarea-background-color, var(--helix-color-well));
10
4
  border: var(--helix-border-thin) solid var(--helix-color-border);
11
5
  border-radius: var(--helix-radii-sm);
@@ -16,36 +10,9 @@ border-color var(--helix-duration-fast) var(--helix-easing-standard),
16
10
  background-color var(--helix-duration-fast) var(--helix-easing-standard);
17
11
  }
18
12
 
19
- :host(:not(:disabled)) [part="field"]:hover {
20
- border-color: var(--helix-color-primary);
21
- }
22
-
23
- :host(:focus-within) [part="field"],
24
- :host(:focus-within) [part="field"]:hover {
25
- border-color: var(--helix-color-primary);
26
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
27
- outline-offset: 0;
28
- }
29
-
30
- :host(:state(invalid)) [part="field"],
31
- :host(:state(invalid)) [part="field"]:hover,
32
- :host(:state(invalid):focus-within) [part="field"],
33
- :host(:state(invalid):focus-within) [part="field"]:hover {
34
- border-color: var(--helix-color-danger);
35
- outline-color: var(--helix-color-danger);
36
- }
37
-
38
13
  [part="control"] {
39
- all: unset;
40
-
41
- box-sizing: border-box;
42
- overflow-wrap: break-word;
43
- color: var(--helix-color-foreground);
44
- font-family: var(--helix-font-sans);
45
- font-size: var(--helix-text-sm);
46
- font-weight: var(--helix-weight-medium);
47
- inline-size: 100%;
48
14
  line-height: var(--helix-leading-normal);
15
+ overflow-wrap: break-word;
49
16
 
50
17
  resize: vertical;
51
18
  }
@@ -66,7 +33,6 @@ background-color: transparent;
66
33
 
67
34
  @media print {
68
35
  :host {
69
- box-shadow: none;
70
36
  print-color-adjust: exact;
71
37
  }
72
38
  }`);
@@ -7,10 +7,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessTextarea } from '@fusion.dev/helix-headless/textarea';
9
9
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
10
+ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
10
11
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
11
12
  import { styles } from './textarea-root.css.js';
12
13
  let HelixTextarea = class HelixTextarea extends HelixHeadlessTextarea {
13
- static { this.styles = [fieldStyles, fieldStackedStyles, styles]; }
14
+ static { this.styles = [
15
+ fieldStyles,
16
+ fieldFrameStyles,
17
+ fieldStackedStyles,
18
+ styles,
19
+ ]; }
14
20
  };
15
21
  HelixTextarea = __decorate([
16
22
  customElement('helix-textarea')
@@ -1,9 +1,5 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: block;
4
- }
5
-
6
- [part="field"] {
2
+ export const styles = createSheet(`[part="field"] {
7
3
  align-items: center;
8
4
  background-color: var(--time-input-background-color, var(--helix-color-well));
9
5
  flex-wrap: wrap;
@@ -19,28 +15,6 @@ background-color var(--helix-duration-fast) var(--helix-easing-standard),
19
15
  border-color var(--helix-duration-fast) var(--helix-easing-standard);
20
16
  }
21
17
 
22
- [part="control"] {
23
- all: unset;
24
- box-sizing: border-box;
25
- color: var(--helix-color-foreground);
26
- flex: 1 1 auto;
27
- font-family: var(--helix-font-sans);
28
- font-size: var(--helix-text-md);
29
- font-weight: var(--helix-weight-medium);
30
- min-inline-size: 0;
31
- }
32
-
33
- :host(:not(:disabled)) [part="field"]:hover {
34
- border-color: var(--helix-color-primary);
35
- }
36
-
37
- :host(:focus-within) [part="field"],
38
- :host(:focus-within) [part="field"]:hover {
39
- border-color: var(--helix-color-primary);
40
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
41
- outline-offset: 0;
42
- }
43
-
44
18
  :host(:disabled) [part="field"] {
45
19
  color: var(--helix-color-foreground-subtle);
46
20
  }
@@ -50,6 +24,8 @@ color: var(--helix-color-foreground-subtle);
50
24
  all: unset;
51
25
 
52
26
  align-items: center;
27
+
28
+ box-sizing: border-box;
53
29
  color: var(--helix-color-foreground-muted);
54
30
  cursor: pointer;
55
31
  display: flex;
@@ -80,14 +56,11 @@ cursor: not-allowed;
80
56
  }
81
57
 
82
58
  [part="surface"] {
83
- background-color: var(--helix-color-surface-overlay);
84
- border: var(--time-input-border-width, var(--helix-border-floating)) solid
85
- var(--time-input-border-color, var(--helix-color-border));
86
- border-radius: var(--helix-radii-sm);
87
- box-shadow: var(--time-input-shadow, var(--helix-shadow-floating));
59
+ --_floating-border-color: var(--time-input-border-color, var(--helix-color-border));
60
+ --_floating-border-width: var(--time-input-border-width, var(--helix-border-floating));
61
+ --_floating-shadow: var(--time-input-shadow, var(--helix-shadow-floating));
62
+
88
63
  inline-size: var(--floating-anchor-inline-size, 100%);
89
- inset: auto;
90
- margin: var(--helix-space-none);
91
64
  min-inline-size: max-content;
92
65
 
93
66
  overflow: hidden;
@@ -96,50 +69,11 @@ padding-inline: var(--helix-space-none);
96
69
  position: absolute;
97
70
  }
98
71
 
99
- [part="surface"] {
100
- --_travel: calc(var(--helix-space-2xs) * -1);
101
- opacity: 0;
102
- scale: 0.96;
103
- transform: translateY(var(--_travel));
104
- transition:
105
- opacity var(--helix-duration-fast) var(--helix-easing-standard),
106
- scale var(--helix-duration-fast) var(--helix-easing-emphasized),
107
- transform var(--helix-duration-fast) var(--helix-easing-emphasized),
108
- display var(--helix-duration-fast) allow-discrete,
109
- overlay var(--helix-duration-fast) allow-discrete;
110
- }
111
-
112
- [part="surface"][data-placement^="top"] {
113
- --_travel: var(--helix-space-2xs);
114
- transform-origin: var(--floating-arrow-x, 50%) 100%;
115
- }
116
-
117
- [part="surface"][data-placement^="bottom"] {
118
- transform-origin: var(--floating-arrow-x, 50%) 0;
119
- }
120
-
121
- [part="surface"][data-placed] {
122
- opacity: 1;
123
- scale: 1;
124
- transform: none;
125
- }
126
-
127
- [part="surface"][hidden] {
128
- display: none;
129
- }
130
-
131
72
  @media (prefers-reduced-motion: reduce) {
132
73
  [part="field"],
133
74
  [part="trigger"] {
134
75
  transition: none;
135
76
  }
136
-
137
- [part="surface"],
138
- [part="surface"][data-placed] {
139
- scale: 1;
140
- transform: none;
141
- transition: none;
142
- }
143
77
  }
144
78
 
145
79
  :host([variant="wheels"]) [part="surface"] {
@@ -156,17 +90,8 @@ flex-basis: 0;
156
90
  min-inline-size: var(--helix-size-icon-loose);
157
91
  }
158
92
 
159
- :host(:state(invalid)) [part="field"],
160
- :host(:state(invalid)) [part="field"]:hover,
161
- :host(:state(invalid):focus-within) [part="field"],
162
- :host(:state(invalid):focus-within) [part="field"]:hover {
163
- border-color: var(--helix-color-danger);
164
- outline-color: var(--helix-color-danger);
165
- }
166
-
167
93
  @media print {
168
94
  :host {
169
- box-shadow: none;
170
95
  print-color-adjust: exact;
171
96
  }
172
97
  }`);
@@ -10,12 +10,23 @@ import '../../icon/index.js';
10
10
  import '../../tag/index.js';
11
11
  import '../../time-picker/index.js';
12
12
  import { styles as fieldStyles } from '../../shared/field/field.css.js';
13
+ import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
13
14
  import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
15
+ import { styles as floatingEntranceStyles } from '../../shared/floating/entrance.css.js';
16
+ import { styles as floatingPanelStyles } from '../../shared/floating/panel.css.js';
14
17
  import { styles as tagRowStyles } from '../../shared/tags/tags.css.js';
15
18
  import { styles } from './time-input-root.css.js';
16
19
  let HelixTimeInput = class HelixTimeInput extends HelixHeadlessTimeInput {
17
20
  static { this.tier = 'helix-'; }
18
- static { this.styles = [fieldStyles, fieldStackedStyles, tagRowStyles, styles]; }
21
+ static { this.styles = [
22
+ fieldStyles,
23
+ fieldFrameStyles,
24
+ fieldStackedStyles,
25
+ tagRowStyles,
26
+ floatingPanelStyles,
27
+ floatingEntranceStyles,
28
+ styles,
29
+ ]; }
19
30
  };
20
31
  HelixTimeInput = __decorate([
21
32
  customElement('helix-time-input')
@@ -134,7 +134,6 @@ outline-offset: var(--helix-size-focus-offset);
134
134
 
135
135
  @media print {
136
136
  :host {
137
- box-shadow: none;
138
137
  print-color-adjust: exact;
139
138
  }
140
139
  }`);