@fusion.dev/helix 0.143.0 → 0.144.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.
- package/custom-elements.json +10028 -511
- package/dist/badge/root/badge-root.css.js +35 -0
- package/dist/badge/root/badge-root.d.ts +16 -0
- package/dist/badge/root/badge-root.js +3 -0
- package/dist/blockquote/root/blockquote-root.css.js +5 -5
- package/dist/blockquote/root/blockquote-root.d.ts +5 -0
- package/dist/button/root/button-root.css.js +38 -1
- package/dist/button/root/button-root.d.ts +5 -0
- package/dist/button/root/button-root.js +2 -1
- package/dist/callout/root/callout-root.css.js +69 -11
- package/dist/callout/root/callout-root.d.ts +25 -2
- package/dist/callout/root/callout-root.js +4 -0
- package/dist/card/root/card-root.css.js +26 -1
- package/dist/card/root/card-root.d.ts +11 -0
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +2 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +2 -0
- package/dist/code-block/root/code-block-root.css.js +23 -0
- package/dist/code-block/root/code-block-root.d.ts +15 -0
- package/dist/code-block/root/code-block-root.js +8 -0
- package/dist/color-picker/root/color-picker-root.css.js +64 -0
- package/dist/color-picker/root/color-picker-root.d.ts +2 -0
- package/dist/copy-button/root/copy-button-root.css.js +5 -0
- package/dist/date-input/root/date-input-root.css.js +19 -0
- package/dist/date-input/root/date-input-root.d.ts +8 -0
- package/dist/date-input/root/date-input-root.js +2 -0
- package/dist/date-picker/root/date-picker-root.css.js +68 -0
- package/dist/date-picker/root/date-picker-root.d.ts +1 -0
- package/dist/dialog/root/dialog-root.css.js +47 -0
- package/dist/divider/root/divider-root.css.js +8 -3
- package/dist/divider/root/divider-root.d.ts +17 -1
- package/dist/divider/root/divider-root.js +4 -0
- package/dist/drawer/root/drawer-root.css.js +28 -1
- package/dist/element-events.generated.js +8 -5
- package/dist/empty/root/empty-root.css.js +9 -9
- package/dist/empty/root/empty-root.d.ts +9 -0
- package/dist/file-input/root/file-input-root.js +2 -0
- package/dist/filter-input/root/filter-input-root.js +2 -0
- package/dist/heatmap/root/heatmap-root.css.js +33 -5
- package/dist/heatmap/root/heatmap-root.d.ts +4 -1
- package/dist/icon/index.d.ts +1 -0
- package/dist/icon/index.js +1 -0
- package/dist/icon/root/icon-root.d.ts +1 -1
- package/dist/icon/root/icon-root.js +1 -1
- package/dist/icon/root/index.d.ts +2 -0
- package/dist/icon/root/index.js +2 -0
- package/dist/icon-button/root/icon-button-root.css.js +37 -0
- package/dist/icon-button/root/icon-button-root.d.ts +4 -0
- package/dist/icon-button/root/icon-button-root.js +2 -1
- package/dist/input/root/input-root.css.js +3 -3
- package/dist/input/root/input-root.d.ts +3 -0
- package/dist/legend/root/legend-root.css.js +40 -13
- package/dist/legend/root/legend-root.d.ts +6 -0
- package/dist/legend/root/legend-root.js +1 -1
- package/dist/lightbox/root/lightbox-root.css.js +84 -0
- package/dist/lightbox/root/lightbox-root.d.ts +1 -0
- package/dist/loader/root/loader-root.css.js +10 -0
- package/dist/loader/root/loader-root.d.ts +3 -0
- package/dist/meter/root/meter-root.css.js +23 -1
- package/dist/meter/root/meter-root.d.ts +5 -0
- package/dist/notifications/notification/notification.css.js +5 -0
- package/dist/number-input/root/number-input-root.css.js +3 -3
- package/dist/number-input/root/number-input-root.d.ts +3 -0
- package/dist/pin-input/root/pin-input-root.css.js +12 -5
- package/dist/pin-input/root/pin-input-root.d.ts +5 -0
- package/dist/popover/root/popover-root.css.js +36 -0
- package/dist/popover/root/popover-root.d.ts +1 -0
- package/dist/progress/root/progress-root.css.js +22 -1
- package/dist/progress/root/progress-root.d.ts +5 -0
- package/dist/quote/root/quote-root.css.js +1 -1
- package/dist/quote/root/quote-root.d.ts +1 -0
- package/dist/shared/chart/tooltip.css.js +25 -2
- package/dist/shared/field/field-segments.css.d.ts +1 -0
- package/dist/shared/field/field-segments.css.js +40 -0
- package/dist/skeleton/root/skeleton-root.css.js +56 -5
- package/dist/skeleton/root/skeleton-root.d.ts +17 -1
- package/dist/skeleton/root/skeleton-root.js +3 -0
- package/dist/stat/root/stat-root.css.js +7 -7
- package/dist/stat/root/stat-root.d.ts +8 -0
- package/dist/switch/root/switch-root.css.js +13 -5
- package/dist/switch/root/switch-root.d.ts +25 -1
- package/dist/switch/root/switch-root.js +7 -0
- package/dist/tag/group/tag-group.css.d.ts +1 -0
- package/dist/tag/group/tag-group.css.js +6 -0
- package/dist/tag/group/tag-group.d.ts +25 -0
- package/dist/tag/group/tag-group.js +16 -0
- package/dist/tag/index.d.ts +1 -0
- package/dist/tag/index.js +1 -0
- package/dist/tag/root/tag-root.css.js +50 -0
- package/dist/tag/root/tag-root.d.ts +4 -0
- package/dist/textarea/root/textarea-root.css.js +12 -4
- package/dist/textarea/root/textarea-root.d.ts +4 -0
- package/dist/time-input/root/time-input-root.css.js +19 -0
- package/dist/time-input/root/time-input-root.d.ts +8 -0
- package/dist/time-input/root/time-input-root.js +2 -0
- package/dist/toast/item/toast-item.css.js +16 -0
- package/dist/toggle/group/toggle-group.css.js +16 -0
- package/dist/tour/root/tour-root.css.js +8 -0
- package/dist/tour/stop/tour-stop.css.js +32 -0
- package/dist/trend/root/trend-root.css.js +12 -5
- package/dist/trend/root/trend-root.d.ts +6 -1
- package/lint.json +1 -1
- package/package.json +6 -6
- package/types/jsx.d.ts +4556 -111
- package/types/svelte.d.ts +1 -0
- package/types/vue.d.ts +1307 -24
|
@@ -235,6 +235,70 @@ border-color: var(--helix-color-danger);
|
|
|
235
235
|
outline-color: var(--helix-color-danger);
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
+
[part="fields"] {
|
|
239
|
+
display: grid;
|
|
240
|
+
gap: var(--color-picker-fields-gap, var(--helix-space-xs));
|
|
241
|
+
grid-auto-columns: minmax(0, 1fr);
|
|
242
|
+
grid-auto-flow: column;
|
|
243
|
+
margin-block-start: var(--helix-space-sm);
|
|
244
|
+
padding-inline: var(--color-picker-padding, var(--helix-space-none));
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
:host([alpha]) [part="fields"] {
|
|
248
|
+
grid-auto-flow: row;
|
|
249
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
[part="field"] {
|
|
253
|
+
display: flex;
|
|
254
|
+
flex-direction: column;
|
|
255
|
+
gap: var(--helix-space-2xs);
|
|
256
|
+
min-inline-size: 0;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
[part="field-label"] {
|
|
260
|
+
color: var(--color-picker-field-label-color, var(--helix-color-foreground-muted));
|
|
261
|
+
font-family: var(--helix-font-sans);
|
|
262
|
+
font-size: var(--helix-text-sm);
|
|
263
|
+
font-weight: var(--helix-weight-medium);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
[part="field-input"] {
|
|
267
|
+
all: unset;
|
|
268
|
+
|
|
269
|
+
appearance: textfield;
|
|
270
|
+
background-color: var(--helix-color-surface-sunken);
|
|
271
|
+
block-size: var(--helix-size-control);
|
|
272
|
+
border: var(--helix-border-thin) solid var(--helix-color-border);
|
|
273
|
+
border-radius: var(--helix-radii-sm);
|
|
274
|
+
box-sizing: border-box;
|
|
275
|
+
color: var(--helix-color-foreground);
|
|
276
|
+
font-family: var(--helix-font-sans);
|
|
277
|
+
font-size: var(--helix-text-control);
|
|
278
|
+
font-variant-numeric: tabular-nums;
|
|
279
|
+
font-weight: var(--helix-weight-medium);
|
|
280
|
+
inline-size: 100%;
|
|
281
|
+
min-inline-size: 0;
|
|
282
|
+
padding-inline: var(--helix-space-xs);
|
|
283
|
+
transition: border-color var(--helix-duration-fast) var(--helix-easing-standard);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
[part="field-input"]::-webkit-inner-spin-button,
|
|
287
|
+
[part="field-input"]::-webkit-outer-spin-button {
|
|
288
|
+
appearance: none;
|
|
289
|
+
margin: 0;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
[part="field-input"]:hover {
|
|
293
|
+
border-color: var(--helix-color-foreground-muted);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
[part="field-input"]:focus-visible {
|
|
297
|
+
border-color: var(--helix-color-primary);
|
|
298
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
299
|
+
outline-offset: 0;
|
|
300
|
+
}
|
|
301
|
+
|
|
238
302
|
[part="actions"] {
|
|
239
303
|
display: flex;
|
|
240
304
|
flex: 1 1 auto;
|
|
@@ -34,6 +34,8 @@ import '../../slider/index.js';
|
|
|
34
34
|
* @aliases Color, ColorArea, Swatch picker
|
|
35
35
|
* @documentation https://fusion.dev/helix/components/color-picker
|
|
36
36
|
*
|
|
37
|
+
* @cssproperty --color-picker-field-label-color - The color of the names above the channel number fields, in `channel-fields`.
|
|
38
|
+
* @cssproperty --color-picker-fields-gap - The space between the channel number fields, in `channel-fields`.
|
|
37
39
|
* @cssproperty --color-picker-grid-radius - The corner radius of the square.
|
|
38
40
|
* @cssproperty --color-picker-grid-ratio - The aspect ratio of the square.
|
|
39
41
|
* @cssproperty --color-picker-padding - The inset of the rows under the square and of the picker's bottom edge.
|
|
@@ -20,6 +20,11 @@ color: var(--helix-color-success);
|
|
|
20
20
|
color: var(--helix-color-success);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
[part="button"][data-failed],
|
|
24
|
+
:host(:not(:disabled)) [part="button"][data-failed]:hover {
|
|
25
|
+
color: var(--helix-color-danger);
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
slot > svg {
|
|
24
29
|
block-size: var(--helix-size-icon-tight);
|
|
25
30
|
inline-size: var(--helix-size-icon-tight);
|
|
@@ -77,6 +77,25 @@ flex-basis: 0;
|
|
|
77
77
|
min-inline-size: var(--helix-size-icon-loose);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
[part="segments"] {
|
|
81
|
+
--_segment-focus-background-color: var(
|
|
82
|
+
--date-input-segment-focus-background-color,
|
|
83
|
+
var(--helix-color-primary)
|
|
84
|
+
);
|
|
85
|
+
--_segment-focus-color: var(
|
|
86
|
+
--date-input-segment-focus-color,
|
|
87
|
+
var(--helix-color-foreground-on-primary)
|
|
88
|
+
);
|
|
89
|
+
--_segment-literal-color: var(
|
|
90
|
+
--date-input-segment-literal-color,
|
|
91
|
+
var(--helix-color-foreground-muted)
|
|
92
|
+
);
|
|
93
|
+
--_segment-placeholder-color: var(
|
|
94
|
+
--date-input-segment-placeholder-color,
|
|
95
|
+
var(--helix-color-foreground-subtle)
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
|
|
80
99
|
@media print {
|
|
81
100
|
:host {
|
|
82
101
|
print-color-adjust: exact;
|
|
@@ -27,6 +27,14 @@ import '../../tag/index.js';
|
|
|
27
27
|
* @cssproperty --date-input-border-width - The width of the panel's border. It
|
|
28
28
|
* follows `--helix-border-floating`, which is `0`, so the panel stands out by its
|
|
29
29
|
* shadow unless a theme sets a border.
|
|
30
|
+
* @cssproperty --date-input-segment-focus-background-color - The fill behind the
|
|
31
|
+
* segment with focus, in `segmented`. It follows `--helix-color-primary`.
|
|
32
|
+
* @cssproperty --date-input-segment-focus-color - The text of the segment with
|
|
33
|
+
* focus, in `segmented`.
|
|
34
|
+
* @cssproperty --date-input-segment-literal-color - The text the locale writes
|
|
35
|
+
* between two segments, in `segmented`.
|
|
36
|
+
* @cssproperty --date-input-segment-placeholder-color - The dashes of a segment
|
|
37
|
+
* with nothing in it, in `segmented`. It matches the text field's placeholder.
|
|
30
38
|
* @cssproperty --date-input-shadow - The shadow under the panel. It follows
|
|
31
39
|
* `--helix-shadow-floating`. The panel can sit over any content, so it has a
|
|
32
40
|
* shadow by default.
|
|
@@ -10,6 +10,7 @@ import '../../date-picker/index.js';
|
|
|
10
10
|
import '../../tag/index.js';
|
|
11
11
|
import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
12
12
|
import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
|
|
13
|
+
import { styles as fieldSegmentsStyles } from '../../shared/field/field-segments.css.js';
|
|
13
14
|
import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
|
|
14
15
|
import { styles as floatingEntranceStyles } from '../../shared/floating/entrance.css.js';
|
|
15
16
|
import { styles as floatingPanelStyles } from '../../shared/floating/panel.css.js';
|
|
@@ -21,6 +22,7 @@ let HelixDateInput = class HelixDateInput extends HelixHeadlessDateInput {
|
|
|
21
22
|
fieldStyles,
|
|
22
23
|
fieldFrameStyles,
|
|
23
24
|
fieldStackedStyles,
|
|
25
|
+
fieldSegmentsStyles,
|
|
24
26
|
tagRowStyles,
|
|
25
27
|
floatingPanelStyles,
|
|
26
28
|
floatingEntranceStyles,
|
|
@@ -68,6 +68,74 @@ outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
|
68
68
|
outline-offset: var(--helix-size-focus-offset);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
[part="heading-button"] {
|
|
72
|
+
all: unset;
|
|
73
|
+
box-sizing: border-box;
|
|
74
|
+
border-radius: var(--helix-radii-sm);
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
padding-inline: var(--helix-space-2xs);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
[part="heading-button"]:hover:not(:disabled) {
|
|
80
|
+
background-color: var(--helix-color-surface-sunken);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[part="heading-button"]:focus-visible {
|
|
84
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
85
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
[part="periods"] {
|
|
89
|
+
display: grid;
|
|
90
|
+
gap: var(--helix-space-2xs);
|
|
91
|
+
inline-size: calc(var(--_calendar-track) * 7);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
[part="period-row"] {
|
|
95
|
+
display: grid;
|
|
96
|
+
gap: var(--helix-space-2xs);
|
|
97
|
+
grid-template-columns: repeat(3, 1fr);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
[part~="period"] {
|
|
101
|
+
align-items: center;
|
|
102
|
+
block-size: var(--date-picker-period-size, calc(var(--_calendar-row) * 1.5));
|
|
103
|
+
border-radius: var(--helix-radii-sm);
|
|
104
|
+
cursor: pointer;
|
|
105
|
+
display: inline-flex;
|
|
106
|
+
font-size: var(--helix-text-sm);
|
|
107
|
+
justify-content: center;
|
|
108
|
+
transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
[part~="period"]:hover:not([aria-disabled]) {
|
|
112
|
+
background-color: var(--helix-color-surface-sunken);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
[part~="period-current"] {
|
|
116
|
+
box-shadow: inset 0 0 0 var(--helix-border-thin) var(--helix-color-border);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
[part~="period-selected"] {
|
|
120
|
+
background-color: var(--date-picker-selected-color, var(--helix-color-surface-inverse));
|
|
121
|
+
color: var(--helix-color-foreground-inverse);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
[part~="period-selected"]:hover:not([aria-disabled]) {
|
|
125
|
+
background-color: var(--date-picker-selected-color, var(--helix-color-surface-inverse));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
[part~="period-disabled"] {
|
|
129
|
+
color: var(--helix-color-foreground-subtle);
|
|
130
|
+
cursor: default;
|
|
131
|
+
opacity: 0.4;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[part~="period"]:focus-visible {
|
|
135
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
136
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
137
|
+
}
|
|
138
|
+
|
|
71
139
|
[part="previous"]:disabled,
|
|
72
140
|
[part="next"]:disabled {
|
|
73
141
|
cursor: default;
|
|
@@ -25,6 +25,7 @@ import type { CSSResultGroup } from 'lit';
|
|
|
25
25
|
*
|
|
26
26
|
* @cssproperty --date-picker-columns - Months per row. Two unless there is only one.
|
|
27
27
|
* @cssproperty --date-picker-day-size - Width and height of a day.
|
|
28
|
+
* @cssproperty --date-picker-period-size - Height of a month or a year in the months and years views, where `max-view` is set.
|
|
28
29
|
* @cssproperty --date-picker-range-color - Band behind the days in a range.
|
|
29
30
|
* @cssproperty --date-picker-row-size - Height of a week row.
|
|
30
31
|
* @cssproperty --date-picker-selected-color - Fill behind a selected day.
|
|
@@ -176,6 +176,53 @@ justify-content: center;
|
|
|
176
176
|
margin-inline: auto;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
[part="dismiss"] {
|
|
180
|
+
all: unset;
|
|
181
|
+
|
|
182
|
+
box-sizing: border-box;
|
|
183
|
+
position: absolute;
|
|
184
|
+
inset-block-start: calc(
|
|
185
|
+
var(--dialog-padding, var(--helix-space-lg)) +
|
|
186
|
+
(var(--helix-text-xl) * var(--helix-leading-tight) - var(--helix-size-control-sm)) /
|
|
187
|
+
2
|
|
188
|
+
);
|
|
189
|
+
inset-inline-end: var(--helix-space-md);
|
|
190
|
+
block-size: var(--helix-size-control-sm);
|
|
191
|
+
border-radius: var(--helix-radii-sm);
|
|
192
|
+
color: var(--helix-color-foreground-muted);
|
|
193
|
+
cursor: pointer;
|
|
194
|
+
display: inline-flex;
|
|
195
|
+
inline-size: var(--helix-size-control-sm);
|
|
196
|
+
place-content: center;
|
|
197
|
+
place-items: center;
|
|
198
|
+
transition: color var(--helix-duration-fast) var(--helix-easing-standard);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
[part="dismiss"] svg {
|
|
202
|
+
block-size: var(--helix-size-icon-sm);
|
|
203
|
+
inline-size: var(--helix-size-icon-sm);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
[part="dismiss"]:hover {
|
|
207
|
+
background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);
|
|
208
|
+
color: var(--helix-color-foreground);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
[part="dismiss"]:focus-visible {
|
|
212
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
213
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
:host([dismissible]) ::slotted([slot="header"]) {
|
|
217
|
+
padding-inline-end: calc(var(--helix-size-control-sm) + var(--helix-space-xs));
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
@media (prefers-reduced-motion: reduce) {
|
|
221
|
+
[part="dismiss"] {
|
|
222
|
+
transition: none;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
179
226
|
@media print {
|
|
180
227
|
:host {
|
|
181
228
|
display: none;
|
|
@@ -7,8 +7,8 @@ display: flex;
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
[part="content"] {
|
|
10
|
-
color: var(--helix-color-foreground-muted);
|
|
11
|
-
margin-inline: var(--helix-space-sm);
|
|
10
|
+
color: var(--divider-content-color, var(--helix-color-foreground-muted));
|
|
11
|
+
margin-inline: var(--divider-content-gap, var(--helix-space-sm));
|
|
12
12
|
display: inline-flex;
|
|
13
13
|
flex: 0 0 auto;
|
|
14
14
|
font-family: var(--helix-font-sans);
|
|
@@ -49,7 +49,7 @@ flex-direction: column;
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
:host([orientation="vertical"]) [part="content"] {
|
|
52
|
-
margin-block: var(--helix-space-sm);
|
|
52
|
+
margin-block: var(--divider-content-gap, var(--helix-space-sm));
|
|
53
53
|
margin-inline: var(--helix-space-none);
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -74,6 +74,11 @@ inline-size: var(--_divider-thickness);
|
|
|
74
74
|
min-block-size: 1em;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
:host([content-placement="start"]) [part="line"]:has(+ [part="content"]:not([data-empty])),
|
|
78
|
+
:host([content-placement="end"]) [part="content"]:not([data-empty]) + [part="line"] {
|
|
79
|
+
flex: 0 0 var(--divider-content-offset, var(--helix-space-lg));
|
|
80
|
+
}
|
|
81
|
+
|
|
77
82
|
@media print {
|
|
78
83
|
:host {
|
|
79
84
|
print-color-adjust: economy;
|
|
@@ -8,15 +8,23 @@ import type { CSSResultGroup } from 'lit';
|
|
|
8
8
|
* default. A vertical divider stretches to fit its flex parent, so it matches
|
|
9
9
|
* the height of what it sits beside.
|
|
10
10
|
*
|
|
11
|
+
* Content set into the line sits at its middle. `content-placement` moves it
|
|
12
|
+
* toward the start or the end, leaving a short length of line before or after
|
|
13
|
+
* it, the way a section label sits in a form.
|
|
14
|
+
*
|
|
11
15
|
* @since 0.1.0
|
|
12
16
|
* @status stable
|
|
13
17
|
* @category layout
|
|
14
18
|
* @aliases Separator, Rule
|
|
15
19
|
* @documentation https://fusion.dev/helix/components/divider
|
|
16
20
|
*
|
|
17
|
-
* @csspart
|
|
21
|
+
* @csspart content - The content set into the line.
|
|
22
|
+
* @csspart line - The line, or each half of it when content is set into it.
|
|
18
23
|
*
|
|
19
24
|
* @cssproperty --divider-color - The color of the line.
|
|
25
|
+
* @cssproperty --divider-content-color - The color of the content set into the line.
|
|
26
|
+
* @cssproperty --divider-content-gap - The space either side of the content set into the line.
|
|
27
|
+
* @cssproperty --divider-content-offset - The length of line before the content under `content-placement="start"`, or after it under `end`.
|
|
20
28
|
* @cssproperty --divider-length - The length of a vertical line. A horizontal line takes the divider's width.
|
|
21
29
|
* @cssproperty --divider-padding - The space removed from both ends of the line.
|
|
22
30
|
* @cssproperty --divider-padding-end - The space removed from the end of the line only.
|
|
@@ -24,6 +32,14 @@ import type { CSSResultGroup } from 'lit';
|
|
|
24
32
|
* @cssproperty --divider-thickness - The thickness of the line.
|
|
25
33
|
*/
|
|
26
34
|
export declare class HelixDivider extends HelixHeadlessDivider {
|
|
35
|
+
/**
|
|
36
|
+
* Where content set into the line sits along it.
|
|
37
|
+
*
|
|
38
|
+
* Absent is the middle. `start` and `end` move it toward one end, with a
|
|
39
|
+
* short length of line, `--divider-content-offset`, kept before or after it.
|
|
40
|
+
* A divider with nothing set into it is one line whatever this says.
|
|
41
|
+
*/
|
|
42
|
+
contentPlacement?: 'end' | 'start';
|
|
27
43
|
static styles: CSSResultGroup;
|
|
28
44
|
}
|
|
29
45
|
declare global {
|
|
@@ -6,10 +6,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { customElement } from '@fusion.dev/helix-core';
|
|
8
8
|
import { HelixHeadlessDivider } from '@fusion.dev/helix-headless/divider';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
9
10
|
import { styles } from './divider-root.css.js';
|
|
10
11
|
let HelixDivider = class HelixDivider extends HelixHeadlessDivider {
|
|
11
12
|
static { this.styles = styles; }
|
|
12
13
|
};
|
|
14
|
+
__decorate([
|
|
15
|
+
property({ attribute: 'content-placement', reflect: true })
|
|
16
|
+
], HelixDivider.prototype, "contentPlacement", void 0);
|
|
13
17
|
HelixDivider = __decorate([
|
|
14
18
|
customElement('helix-divider')
|
|
15
19
|
], HelixDivider);
|
|
@@ -134,7 +134,23 @@ inset-inline: 0;
|
|
|
134
134
|
border: var(--drawer-border-width, var(--helix-border-floating)) solid
|
|
135
135
|
var(--drawer-border-color, var(--helix-color-border));
|
|
136
136
|
box-shadow: var(--drawer-shadow, var(--helix-shadow-floating));
|
|
137
|
-
|
|
137
|
+
|
|
138
|
+
transform: translate(var(--drawer-swipe-x, 0), var(--drawer-swipe-y, 0));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
[part="panel"],
|
|
142
|
+
[part="content"] {
|
|
143
|
+
touch-action: pan-y;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
:host([placement="bottom"]) [part="panel"],
|
|
147
|
+
:host([placement="top"]) [part="panel"] {
|
|
148
|
+
touch-action: pan-x;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
[part="panel"][data-swiping] {
|
|
152
|
+
transition: none;
|
|
153
|
+
user-select: none;
|
|
138
154
|
}
|
|
139
155
|
|
|
140
156
|
@starting-style {
|
|
@@ -159,6 +175,17 @@ margin: var(--helix-space-none);
|
|
|
159
175
|
margin-block-end: var(--helix-space-md);
|
|
160
176
|
}
|
|
161
177
|
|
|
178
|
+
[part="footer"] {
|
|
179
|
+
flex: 0 0 auto;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
::slotted([slot="footer"]) {
|
|
183
|
+
display: flex;
|
|
184
|
+
flex-wrap: wrap;
|
|
185
|
+
gap: var(--helix-space-xs);
|
|
186
|
+
margin-block-start: var(--helix-space-md);
|
|
187
|
+
}
|
|
188
|
+
|
|
162
189
|
[part="content"] {
|
|
163
190
|
flex: 1 1 auto;
|
|
164
191
|
min-block-size: 0;
|
|
@@ -4,6 +4,7 @@ registerElementEvents({
|
|
|
4
4
|
'helix-announcement': ['helix-dismiss'],
|
|
5
5
|
'helix-app-header': ['helix-scrolled'],
|
|
6
6
|
'helix-avatar': ['error', 'load'],
|
|
7
|
+
'helix-callout': ['helix-dismiss'],
|
|
7
8
|
'helix-canvas': [
|
|
8
9
|
'helix-before-move',
|
|
9
10
|
'helix-before-reconnect',
|
|
@@ -58,7 +59,7 @@ registerElementEvents({
|
|
|
58
59
|
'helix-select',
|
|
59
60
|
'toggle',
|
|
60
61
|
],
|
|
61
|
-
'helix-copy-button': ['helix-copy'],
|
|
62
|
+
'helix-copy-button': ['helix-copy', 'helix-copy-error'],
|
|
62
63
|
'helix-data-table': [
|
|
63
64
|
'helix-activate',
|
|
64
65
|
'helix-filter',
|
|
@@ -84,7 +85,7 @@ registerElementEvents({
|
|
|
84
85
|
'helix-drawer': ['close', 'helix-before-close', 'helix-before-open', 'toggle'],
|
|
85
86
|
'helix-drilldown': ['helix-select'],
|
|
86
87
|
'helix-drilldown-item': ['helix-select'],
|
|
87
|
-
'helix-file-input': ['change', 'helix-before-change', 'input'],
|
|
88
|
+
'helix-file-input': ['change', 'helix-before-change', 'helix-reject', 'input'],
|
|
88
89
|
'helix-filter-chip': ['helix-dismiss'],
|
|
89
90
|
'helix-filter-input': [
|
|
90
91
|
'change',
|
|
@@ -110,10 +111,11 @@ registerElementEvents({
|
|
|
110
111
|
'helix-graph-zoom',
|
|
111
112
|
],
|
|
112
113
|
'helix-heatmap': ['helix-resize'],
|
|
113
|
-
'helix-icon': ['error'],
|
|
114
|
+
'helix-icon': ['error', 'load'],
|
|
114
115
|
'helix-image': ['error', 'load'],
|
|
115
|
-
'helix-input': ['change', 'helix-before-change', 'input'],
|
|
116
|
+
'helix-input': ['change', 'helix-before-change', 'helix-clear', 'input'],
|
|
116
117
|
'helix-kbd': ['helix-shortcut'],
|
|
118
|
+
'helix-legend': ['change', 'helix-before-change'],
|
|
117
119
|
'helix-lightbox': [
|
|
118
120
|
'close',
|
|
119
121
|
'helix-activate',
|
|
@@ -163,7 +165,7 @@ registerElementEvents({
|
|
|
163
165
|
'helix-qr-code': ['error'],
|
|
164
166
|
'helix-radio': ['helix-select'],
|
|
165
167
|
'helix-radio-group': ['change', 'helix-before-change', 'helix-select', 'input'],
|
|
166
|
-
'helix-rating': ['change', 'helix-before-change', 'input'],
|
|
168
|
+
'helix-rating': ['change', 'helix-before-change', 'helix-clear', 'input'],
|
|
167
169
|
'helix-sandbox': [
|
|
168
170
|
'helix-before-edit',
|
|
169
171
|
'helix-before-panel-resize',
|
|
@@ -200,6 +202,7 @@ registerElementEvents({
|
|
|
200
202
|
'helix-table-column': ['helix-before-resize'],
|
|
201
203
|
'helix-tabs': ['helix-activate', 'helix-before-activate', 'helix-select'],
|
|
202
204
|
'helix-tag': ['helix-dismiss'],
|
|
205
|
+
'helix-tag-group': ['change', 'helix-before-change', 'helix-dismiss'],
|
|
203
206
|
'helix-textarea': ['change', 'helix-before-change', 'input'],
|
|
204
207
|
'helix-time-input': [
|
|
205
208
|
'change',
|
|
@@ -3,37 +3,37 @@ export const styles = createSheet(`:host {
|
|
|
3
3
|
align-items: center;
|
|
4
4
|
display: flex;
|
|
5
5
|
flex-direction: column;
|
|
6
|
-
gap: var(--helix-space-sm);
|
|
6
|
+
gap: var(--empty-gap, var(--helix-space-sm));
|
|
7
7
|
padding: var(--empty-padding, var(--helix-space-2xl));
|
|
8
8
|
text-align: center;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
slot[name="icon"]::slotted(*) {
|
|
12
12
|
|
|
13
|
-
--icon-size: var(--helix-size-icon-lg);
|
|
13
|
+
--icon-size: var(--empty-icon-size, var(--helix-size-icon-lg));
|
|
14
14
|
|
|
15
|
-
color: var(--helix-color-foreground-subtle);
|
|
15
|
+
color: var(--empty-icon-color, var(--helix-color-foreground-subtle));
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
slot[name="heading"]::slotted(*) {
|
|
19
|
-
color: var(--helix-color-foreground);
|
|
20
|
-
font-size: var(--helix-text-lg);
|
|
19
|
+
color: var(--empty-heading-color, var(--helix-color-foreground));
|
|
20
|
+
font-size: var(--empty-heading-size, var(--helix-text-lg));
|
|
21
21
|
font-weight: var(--helix-weight-semibold);
|
|
22
22
|
letter-spacing: var(--helix-tracking-tight);
|
|
23
23
|
margin: var(--helix-space-none);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
slot:not([name]) {
|
|
27
|
-
color: var(--helix-color-foreground-muted);
|
|
28
|
-
font-size: var(--helix-text-sm);
|
|
27
|
+
color: var(--empty-message-color, var(--helix-color-foreground-muted));
|
|
28
|
+
font-size: var(--empty-message-size, var(--helix-text-sm));
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
slot:not([name])::slotted(*) {
|
|
32
32
|
margin: var(--helix-space-none);
|
|
33
|
-
max-inline-size: 46ch;
|
|
33
|
+
max-inline-size: var(--empty-message-measure, 46ch);
|
|
34
34
|
}
|
|
35
35
|
slot[name="actions"]::slotted(*) {
|
|
36
|
-
margin-block-start: var(--helix-space-sm);
|
|
36
|
+
margin-block-start: var(--empty-actions-gap, var(--helix-space-sm));
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
@media print {
|
|
@@ -13,6 +13,15 @@ import type { CSSResultGroup } from 'lit';
|
|
|
13
13
|
* @aliases Placeholder, NoResults, Blank
|
|
14
14
|
* @documentation https://fusion.dev/helix/components/empty
|
|
15
15
|
*
|
|
16
|
+
* @cssproperty --empty-actions-gap - Space added above the actions.
|
|
17
|
+
* @cssproperty --empty-gap - Space between the icon, the heading, the message and the actions.
|
|
18
|
+
* @cssproperty --empty-heading-color - Color of the heading.
|
|
19
|
+
* @cssproperty --empty-heading-size - Size of the heading.
|
|
20
|
+
* @cssproperty --empty-icon-color - Color of the icon.
|
|
21
|
+
* @cssproperty --empty-icon-size - Size of the icon.
|
|
22
|
+
* @cssproperty --empty-message-color - Color of the message.
|
|
23
|
+
* @cssproperty --empty-message-measure - Widest the message runs before it wraps.
|
|
24
|
+
* @cssproperty --empty-message-size - Size of the message.
|
|
16
25
|
* @cssproperty --empty-padding - Space around the whole block.
|
|
17
26
|
*/
|
|
18
27
|
export declare class HelixEmpty extends HelixHeadlessEmpty {
|
|
@@ -11,10 +11,12 @@ import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
|
11
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
13
|
import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
|
|
14
|
+
import { styles as liveStyles } from '../../shared/live/live.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
18
|
static { this.styles = [
|
|
19
|
+
liveStyles,
|
|
18
20
|
glyphStyles,
|
|
19
21
|
fieldStyles,
|
|
20
22
|
fieldFrameStyles,
|
|
@@ -13,10 +13,12 @@ import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.c
|
|
|
13
13
|
import { styles as floatingEntranceStyles } from '../../shared/floating/entrance.css.js';
|
|
14
14
|
import { styles as floatingPanelStyles } from '../../shared/floating/panel.css.js';
|
|
15
15
|
import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
|
|
16
|
+
import { styles as liveStyles } from '../../shared/live/live.css.js';
|
|
16
17
|
import { styles as tagRowStyles } from '../../shared/tags/tags.css.js';
|
|
17
18
|
import { styles } from './filter-input-root.css.js';
|
|
18
19
|
let HelixFilterInput = class HelixFilterInput extends HelixHeadlessFilterInput {
|
|
19
20
|
static { this.styles = [
|
|
21
|
+
liveStyles,
|
|
20
22
|
glyphStyles,
|
|
21
23
|
fieldStyles,
|
|
22
24
|
fieldFrameStyles,
|
|
@@ -49,7 +49,7 @@ justify-content: start;
|
|
|
49
49
|
position: relative;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
[part
|
|
52
|
+
[part~="cell"] {
|
|
53
53
|
background-color: var(--heatmap-tone, var(--helix-color-surface-sunken));
|
|
54
54
|
border-radius: var(--heatmap-cell-radius, calc(var(--helix-radii-sm) * 0.5));
|
|
55
55
|
inline-size: var(--_heatmap-cell-width);
|
|
@@ -74,7 +74,7 @@ font-weight: var(--helix-weight-medium);
|
|
|
74
74
|
opacity: 0.72;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
[part
|
|
77
|
+
[part~="tooltip-cell"] {
|
|
78
78
|
align-items: baseline;
|
|
79
79
|
display: flex;
|
|
80
80
|
gap: var(--helix-space-sm);
|
|
@@ -91,16 +91,44 @@ font-weight: var(--helix-weight-medium);
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
@media (hover: hover) {
|
|
94
|
-
[part
|
|
94
|
+
[part~="cell"]:hover {
|
|
95
95
|
outline: var(--helix-border-thin) solid var(--helix-color-foreground);
|
|
96
96
|
outline-offset: var(--helix-border-thin);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
[part="strip"]:not([data-spaced]) [part
|
|
99
|
+
[part="strip"]:not([data-spaced]) [part~="cell"]:hover {
|
|
100
100
|
outline-offset: calc(var(--helix-border-thin) * -1);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
[part~="cell-active"] {
|
|
105
|
+
outline: var(--helix-border-thin) solid var(--helix-color-foreground);
|
|
106
|
+
outline-offset: var(--helix-border-thin);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
[part="strip"]:not([data-spaced]) [part~="cell-active"] {
|
|
110
|
+
outline-offset: calc(var(--helix-border-thin) * -1);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
[part="strip"]:focus-visible {
|
|
114
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
115
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
[part~="tooltip-cell-current"] {
|
|
119
|
+
font-weight: var(--helix-weight-medium);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
[part="live"] {
|
|
123
|
+
block-size: 1px;
|
|
124
|
+
clip-path: inset(50%);
|
|
125
|
+
inline-size: 1px;
|
|
126
|
+
margin: var(--helix-space-none);
|
|
127
|
+
overflow: hidden;
|
|
128
|
+
position: absolute;
|
|
129
|
+
white-space: nowrap;
|
|
130
|
+
}
|
|
131
|
+
|
|
104
132
|
[part="footer"] {
|
|
105
133
|
align-items: baseline;
|
|
106
134
|
color: var(--helix-color-foreground-subtle);
|
|
@@ -133,7 +161,7 @@ text-align: center;
|
|
|
133
161
|
}
|
|
134
162
|
|
|
135
163
|
@media print {
|
|
136
|
-
[part
|
|
164
|
+
[part~="cell"] {
|
|
137
165
|
outline: var(--helix-border-thin) solid var(--helix-color-border);
|
|
138
166
|
outline-offset: calc(var(--helix-border-thin) * -1);
|
|
139
167
|
}
|
|
@@ -26,9 +26,11 @@ import '../../tooltip/index.js';
|
|
|
26
26
|
* @slot summary - Below the strip, in the middle.
|
|
27
27
|
*
|
|
28
28
|
* @csspart cell - One reading.
|
|
29
|
+
* @csspart cell-active - The cell the pointer or the keys rest on, ringed as a hovered cell is. Set alongside `cell`.
|
|
29
30
|
* @csspart footer - The three-slot row under the strip.
|
|
31
|
+
* @csspart live - The readout, a polite live region the sheet hides visually.
|
|
30
32
|
* @csspart mark - The invisible point the tooltip is anchored to.
|
|
31
|
-
* @csspart strip - The grid of cells.
|
|
33
|
+
* @csspart strip - The grid of cells, which takes focus to be read by key.
|
|
32
34
|
* @csspart tooltip - The bubble, forwarded from `Tooltip`.
|
|
33
35
|
* @csspart tooltip-anchor - The `Tooltip` element itself.
|
|
34
36
|
* @csspart tooltip-arrow - The bubble's point, forwarded from `Tooltip`.
|
|
@@ -38,6 +40,7 @@ import '../../tooltip/index.js';
|
|
|
38
40
|
* @csspart tooltip-arrow-top - The point while the bubble is above the reading, on its bottom edge. Set alongside `tooltip-arrow`.
|
|
39
41
|
* @csspart tooltip-bottom - The bubble while it is below the reading. Set alongside `tooltip`.
|
|
40
42
|
* @csspart tooltip-cell - One column's name and value inside the tooltip.
|
|
43
|
+
* @csspart tooltip-cell-current - The cell the series keys rest on, in the charts whose readings hold several series. A strip draws one, so it is never set here.
|
|
41
44
|
* @csspart tooltip-label - The reading's own name inside the tooltip.
|
|
42
45
|
* @csspart tooltip-left - The bubble while it is left of the reading. Set alongside `tooltip`.
|
|
43
46
|
* @csspart tooltip-name - A column's name inside the tooltip.
|
package/dist/icon/index.d.ts
CHANGED