@fusion.dev/helix 0.4.1 → 0.4.3
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 +119 -119
- package/dist/aura/root/aura-root.d.ts +10 -31
- package/dist/badge/root/badge-root.css.js +3 -3
- package/dist/bar-chart/root/bar-chart-root.css.js +7 -9
- package/dist/button/root/button-root.d.ts +1 -1
- package/dist/button/root/button-root.js +1 -1
- package/dist/button-group/root/button-group-root.css.js +3 -3
- package/dist/callout/root/callout-root.css.js +1 -2
- package/dist/card/root/card-root.css.js +6 -8
- package/dist/carousel/root/carousel-root.css.js +2 -2
- package/dist/checkbox/root/checkbox-root.css.js +3 -4
- package/dist/copy-button/root/copy-button-root.d.ts +1 -1
- package/dist/copy-button/root/copy-button-root.js +1 -1
- package/dist/date-input/root/date-input-root.css.js +1 -1
- package/dist/date-picker/root/date-picker-root.css.js +1 -1
- package/dist/divider/root/divider-root.css.js +2 -2
- package/dist/drawer/root/drawer-root.css.js +1 -2
- package/dist/file-input/root/file-input-root.css.js +1 -1
- package/dist/heatmap/root/heatmap-root.css.js +3 -3
- package/dist/icon-button/root/icon-button-root.css.js +1 -2
- package/dist/icon-button/root/icon-button-root.d.ts +1 -1
- package/dist/icon-button/root/icon-button-root.js +1 -1
- package/dist/input/root/input-root.css.js +2 -3
- package/dist/kbd/root/kbd-root.css.js +4 -4
- package/dist/legend/root/legend-root.css.js +1 -2
- package/dist/loader/root/loader-root.css.js +2 -2
- package/dist/menu/root/menu-root.css.js +4 -4
- package/dist/meter/root/meter-root.css.js +9 -16
- package/dist/outline/root/outline-root.css.js +1 -1
- package/dist/popover/root/popover-root.css.js +1 -1
- package/dist/radio/root/radio-root.css.js +1 -2
- package/dist/sandbox/preview/sandbox-preview.d.ts +11 -31
- package/dist/sandbox/root/sandbox-root.d.ts +11 -32
- package/dist/select/root/select-root.css.js +1 -1
- package/dist/slider/root/slider-root.css.js +8 -8
- package/dist/sparkline/root/sparkline-root.css.js +1 -2
- package/dist/speed-dial/root/speed-dial-root.css.js +1 -1
- package/dist/steps/root/steps-root.css.js +4 -6
- package/dist/steps/step/step.css.js +2 -2
- package/dist/switch/root/switch-root.css.js +3 -4
- package/dist/tag/root/tag-root.css.js +9 -10
- package/dist/time-input/root/time-input-root.css.js +1 -1
- package/dist/toast/item/toast-item.css.js +5 -5
- package/dist/toast/root/toast-root.css.js +5 -8
- package/dist/toggle/group/toggle-group.css.js +9 -10
- package/dist/trend/root/trend-root.css.js +1 -1
- package/dist/video/root/video-root.css.js +2 -2
- package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -2
- package/package.json +16 -21
- package/{jsx.d.ts → types/jsx.d.ts} +66 -190
- package/{vue.d.ts → types/vue.d.ts} +3 -3
- package/elements.css +0 -286
- package/helix.css +0 -31
- /package/dist/{mixins → shared}/mixin-control-surface/mixin-control-surface.d.ts +0 -0
- /package/dist/{mixins → shared}/mixin-control-surface/mixin-control-surface.js +0 -0
- /package/{svelte.d.ts → types/svelte.d.ts} +0 -0
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { customElement } from '@fusion.dev/helix-core';
|
|
8
8
|
import { HelixHeadlessCopyButton } from '@fusion.dev/helix-headless/copy-button';
|
|
9
9
|
import { HelixIconButton } from '../../icon-button/root/icon-button-root.js';
|
|
10
|
-
import { MixinControlSurface } from '../../
|
|
10
|
+
import { MixinControlSurface } from '../../shared/mixin-control-surface/mixin-control-surface.js';
|
|
11
11
|
import { styles } from './copy-button-root.css.js';
|
|
12
12
|
import '../../tooltip/index.js';
|
|
13
13
|
let HelixCopyButton = class HelixCopyButton extends MixinControlSurface(HelixHeadlessCopyButton) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
display: inline-block;
|
|
4
3
|
|
|
5
4
|
--_calendar-track: var(--date-picker-track-size, 2.5rem);
|
|
6
5
|
--_calendar-row: var(--date-picker-row-size, 2.25rem);
|
|
7
6
|
--_calendar-day: var(--date-picker-day-size, 1.875rem);
|
|
7
|
+
display: inline-block;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
[part="months"] {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
align-items: center;
|
|
4
|
-
display: flex;
|
|
5
3
|
|
|
6
4
|
--_divider-thickness: var(--divider-thickness, var(--helix-border-thin));
|
|
5
|
+
align-items: center;
|
|
6
|
+
display: flex;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
[part="content"] {
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
3
|
|
|
4
|
-
display: grid;
|
|
5
|
-
grid-template-columns: minmax(0, max-content);
|
|
6
|
-
|
|
7
4
|
--_heatmap-cell-width: var(--heatmap-cell-inline-size, var(--heatmap-cell-size, 0.75rem));
|
|
8
5
|
--_heatmap-cell-height: var(--heatmap-cell-height, var(--heatmap-cell-size, 0.75rem));
|
|
9
6
|
|
|
@@ -36,6 +33,9 @@ var(--helix-color-primary-active) 80%,
|
|
|
36
33
|
var(--helix-color-surface-sunken)
|
|
37
34
|
);
|
|
38
35
|
--heatmap-tone-5: var(--helix-color-primary-active);
|
|
36
|
+
|
|
37
|
+
display: grid;
|
|
38
|
+
grid-template-columns: minmax(0, max-content);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
[part="strip"] {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HelixHeadlessIconButton } from '@fusion.dev/helix-headless/icon-button';
|
|
2
2
|
import type { CSSResultGroup } from 'lit';
|
|
3
|
-
declare const HelixIconButton_base: (new (...args: any[]) => import("../../
|
|
3
|
+
declare const HelixIconButton_base: (new (...args: any[]) => import("../../shared/mixin-control-surface/mixin-control-surface.js").MixinControlSurfaceInterface) & typeof HelixHeadlessIconButton;
|
|
4
4
|
/**
|
|
5
5
|
* @summary A square button whose content is an icon.
|
|
6
6
|
*
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { customElement } from '@fusion.dev/helix-core';
|
|
8
8
|
import { HelixHeadlessIconButton } from '@fusion.dev/helix-headless/icon-button';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
|
-
import { MixinControlSurface } from '../../
|
|
10
|
+
import { MixinControlSurface } from '../../shared/mixin-control-surface/mixin-control-surface.js';
|
|
11
11
|
import { styles } from './icon-button-root.css.js';
|
|
12
12
|
let HelixIconButton = class HelixIconButton extends MixinControlSurface(HelixHeadlessIconButton) {
|
|
13
13
|
constructor() {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
+
--_input-size: var(--input-size, var(--helix-size-control));
|
|
3
4
|
display: flex;
|
|
4
5
|
flex-direction: column;
|
|
5
6
|
gap: var(--helix-space-2xs);
|
|
6
|
-
|
|
7
|
-
--_input-size: var(--input-size, var(--helix-size-control));
|
|
8
7
|
}
|
|
9
8
|
|
|
10
9
|
[part="field"] {
|
|
@@ -75,8 +74,8 @@ background-color: transparent;
|
|
|
75
74
|
|
|
76
75
|
[part="clear"],
|
|
77
76
|
[part="reveal"] {
|
|
78
|
-
all: unset;
|
|
79
77
|
--icon-size: var(--helix-size-icon-tight);
|
|
78
|
+
all: unset;
|
|
80
79
|
|
|
81
80
|
align-items: center;
|
|
82
81
|
border-radius: var(--helix-radii-sm);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
display: inline-flex;
|
|
4
|
-
font: inherit;
|
|
5
|
-
|
|
6
|
-
vertical-align: -0.05em;
|
|
7
3
|
|
|
8
4
|
--_kbd-size: 0.85em;
|
|
9
5
|
--_kbd-height: 1.5em;
|
|
10
6
|
--_kbd-inset: 0.4em;
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
font: inherit;
|
|
9
|
+
|
|
10
|
+
vertical-align: -0.05em;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
[part="kbd"] {
|
|
@@ -62,10 +62,9 @@ color-mix(in oklab, var(--chart-series) calc(var(--_legend-through, 1) * 100%),
|
|
|
62
62
|
|
|
63
63
|
[part="entry"][data-emphasis="subtle"] [part="swatch"],
|
|
64
64
|
:host([emphasis="subtle"]) [part="entry"]:not([data-emphasis]) [part="swatch"] {
|
|
65
|
+
--_legend-area: 0.2;
|
|
65
66
|
border: var(--legend-swatch-stroke, var(--helix-border-thick)) solid
|
|
66
67
|
color-mix(in oklab, var(--chart-series) calc(var(--_legend-through, 1) * 100%), transparent);
|
|
67
|
-
|
|
68
|
-
--_legend-area: 0.2;
|
|
69
68
|
}
|
|
70
69
|
|
|
71
70
|
[part="swatch"] {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
+
|
|
4
|
+
--_loader-size: var(--helix-size-loader-md);
|
|
3
5
|
color: inherit;
|
|
4
6
|
|
|
5
7
|
display: inline-grid;
|
|
6
8
|
flex-shrink: 0;
|
|
7
9
|
place-items: center;
|
|
8
10
|
vertical-align: middle;
|
|
9
|
-
|
|
10
|
-
--_loader-size: var(--helix-size-loader-md);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
:host([size="sm"]) {
|
|
@@ -6,12 +6,12 @@ display: contents;
|
|
|
6
6
|
|
|
7
7
|
[part="surface"] {
|
|
8
8
|
|
|
9
|
-
max-block-size: var(--menu-max-block-size, var(--floating-available-block-size, none));
|
|
10
|
-
overflow-y: auto;
|
|
11
|
-
|
|
12
9
|
--helix-size-control: var(--helix-size-control-sm);
|
|
13
10
|
--helix-size-icon: var(--helix-size-icon-sm);
|
|
14
11
|
|
|
12
|
+
max-block-size: var(--menu-max-block-size, var(--floating-available-block-size, none));
|
|
13
|
+
overflow-y: auto;
|
|
14
|
+
|
|
15
15
|
background-color: var(--menu-background-color, var(--helix-color-surface-overlay));
|
|
16
16
|
|
|
17
17
|
border: var(--menu-border-width, var(--helix-border-floating)) solid
|
|
@@ -33,8 +33,8 @@ display: none;
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
[part="surface"] {
|
|
36
|
-
opacity: 0;
|
|
37
36
|
--_travel: calc(var(--helix-space-2xs) * -1);
|
|
37
|
+
opacity: 0;
|
|
38
38
|
transform: translateY(var(--_travel));
|
|
39
39
|
scale: 0.96;
|
|
40
40
|
transition:
|
|
@@ -31,9 +31,8 @@ position: relative;
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
[part="indicator"] {
|
|
34
|
-
background-color: var(--_meter-hue);
|
|
35
|
-
|
|
36
34
|
--_meter-hue: var(--meter-color, var(--helix-color-primary));
|
|
35
|
+
background-color: var(--_meter-hue);
|
|
37
36
|
block-size: 100%;
|
|
38
37
|
border-radius: inherit;
|
|
39
38
|
inline-size: 100%;
|
|
@@ -49,21 +48,18 @@ transform-origin: right center;
|
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
[part="indicator"][data-band="good"] {
|
|
52
|
-
background-color: var(--_meter-hue);
|
|
53
|
-
|
|
54
51
|
--_meter-hue: var(--meter-color, var(--helix-color-success));
|
|
52
|
+
background-color: var(--_meter-hue);
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
[part="indicator"][data-band="fair"] {
|
|
58
|
-
background-color: var(--_meter-hue);
|
|
59
|
-
|
|
60
56
|
--_meter-hue: var(--meter-color, var(--helix-color-warning));
|
|
57
|
+
background-color: var(--_meter-hue);
|
|
61
58
|
}
|
|
62
59
|
|
|
63
60
|
[part="indicator"][data-band="poor"] {
|
|
64
|
-
background-color: var(--_meter-hue);
|
|
65
|
-
|
|
66
61
|
--_meter-hue: var(--meter-color, var(--helix-color-danger));
|
|
62
|
+
background-color: var(--_meter-hue);
|
|
67
63
|
}
|
|
68
64
|
|
|
69
65
|
[part="indicator"][data-beyond="over"] {
|
|
@@ -134,10 +130,10 @@ stroke-dasharray: var(--meter-sweep) 100;
|
|
|
134
130
|
|
|
135
131
|
:host([shape="arc"]) [part="indicator"],
|
|
136
132
|
:host([shape="ring"]) [part="indicator"] {
|
|
137
|
-
scale: none;
|
|
138
|
-
stroke: var(--_meter-hue);
|
|
139
133
|
|
|
140
134
|
--_meter-hue: var(--helix-color-foreground-muted);
|
|
135
|
+
scale: none;
|
|
136
|
+
stroke: var(--_meter-hue);
|
|
141
137
|
stroke-dasharray: var(--meter-along) 100;
|
|
142
138
|
stroke-linecap: round;
|
|
143
139
|
transition: stroke-dasharray var(--helix-duration-normal) var(--helix-easing-standard);
|
|
@@ -155,23 +151,20 @@ stroke-dashoffset: calc(var(--meter-along) * -1);
|
|
|
155
151
|
|
|
156
152
|
:host([shape="arc"]) [part="indicator"][data-band="good"],
|
|
157
153
|
:host([shape="ring"]) [part="indicator"][data-band="good"] {
|
|
158
|
-
stroke: var(--_meter-hue);
|
|
159
|
-
|
|
160
154
|
--_meter-hue: var(--helix-color-success);
|
|
155
|
+
stroke: var(--_meter-hue);
|
|
161
156
|
}
|
|
162
157
|
|
|
163
158
|
:host([shape="arc"]) [part="indicator"][data-band="fair"],
|
|
164
159
|
:host([shape="ring"]) [part="indicator"][data-band="fair"] {
|
|
165
|
-
stroke: var(--_meter-hue);
|
|
166
|
-
|
|
167
160
|
--_meter-hue: var(--helix-color-warning);
|
|
161
|
+
stroke: var(--_meter-hue);
|
|
168
162
|
}
|
|
169
163
|
|
|
170
164
|
:host([shape="arc"]) [part="indicator"][data-band="poor"],
|
|
171
165
|
:host([shape="ring"]) [part="indicator"][data-band="poor"] {
|
|
172
|
-
stroke: var(--_meter-hue);
|
|
173
|
-
|
|
174
166
|
--_meter-hue: var(--helix-color-danger);
|
|
167
|
+
stroke: var(--_meter-hue);
|
|
175
168
|
}
|
|
176
169
|
|
|
177
170
|
:host([shape="arc"]) [part="value"],
|
|
@@ -33,10 +33,10 @@ padding: var(--popover-padding, var(--helix-space-none));
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
[part="popover"] {
|
|
36
|
-
opacity: 0;
|
|
37
36
|
--_travel: calc(var(--helix-space-2xs) * -1);
|
|
38
37
|
|
|
39
38
|
--_popover-from: 0.96;
|
|
39
|
+
opacity: 0;
|
|
40
40
|
transform: translateY(var(--_travel));
|
|
41
41
|
scale: var(--_popover-from);
|
|
42
42
|
transition:
|
|
@@ -42,41 +42,21 @@ export type PreviewMessage = PreviewConsole | PreviewPress | PreviewReady | Prev
|
|
|
42
42
|
* @summary Renders sandbox source in a frame of its own.
|
|
43
43
|
*
|
|
44
44
|
* @description
|
|
45
|
-
* A sandboxed `<iframe>` pointed at `src`,
|
|
46
|
-
*
|
|
47
|
-
*
|
|
45
|
+
* A sandboxed `<iframe>` pointed at `src`, a document the consumer provides.
|
|
46
|
+
* That document imports whatever the examples need, listens for a render
|
|
47
|
+
* message, and writes the markup into itself.
|
|
48
48
|
*
|
|
49
49
|
* **A frame rather than the page.** Rendering into the page meant an example
|
|
50
|
-
* was styled by whatever surrounded it
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* The cost is that the frame starts empty. Styles and element definitions do
|
|
57
|
-
* not cross into it, because a document has its own stylesheets and a window
|
|
58
|
-
* has its own custom element registry, so `src` has to load them. That is the
|
|
59
|
-
* consumer's document rather than something guessed at here.
|
|
50
|
+
* was styled by whatever surrounded it: an example restyling `helix-card`
|
|
51
|
+
* restyled the sandbox too, a script ran against the real document, and a stray
|
|
52
|
+
* `position: fixed` escaped the pane. The cost is that the frame starts empty,
|
|
53
|
+
* a document having its own stylesheets and a window its own registry, so `src`
|
|
54
|
+
* has to load them.
|
|
60
55
|
*
|
|
61
56
|
* **The source is not trusted, and the frame is what makes that safe.**
|
|
62
|
-
* `sandbox="allow-scripts"` and
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* measured, through an `onerror` handler on an image that fails to load, which
|
|
66
|
-
* `innerHTML` does not strip the way it refuses a `<script>` tag. That is what
|
|
67
|
-
* lets a sandbox hold markup a reader pasted from somewhere, or one day arrived
|
|
68
|
-
* in a shared link, rather than only what its owner typed.
|
|
69
|
-
*
|
|
70
|
-
* `allow-forms` is granted because examples have forms in them and a submit
|
|
71
|
-
* that silently does nothing is a worse lie than one that navigates a frame
|
|
72
|
-
* nobody is looking at. Top-level navigation, popups and modals are not.
|
|
73
|
-
*
|
|
74
|
-
* **`allow="clipboard-write *; fullscreen *"`, and the stars matter.** Both
|
|
75
|
-
* policies default to `self`, and a frame on an opaque origin is not `self`, so
|
|
76
|
-
* the default denies both: a component that copies to the clipboard and a video
|
|
77
|
-
* offering a fullscreen button each become a control that silently does nothing,
|
|
78
|
-
* a denied request rejecting a promise nobody was watching. Nothing else is
|
|
79
|
-
* granted, and a copy still needs the reader's own gesture.
|
|
57
|
+
* `sandbox="allow-scripts"` and never `allow-same-origin`: the two together are
|
|
58
|
+
* the same as no sandbox at all, a document on its own origin being able to
|
|
59
|
+
* reach up and remove the attribute.
|
|
80
60
|
*
|
|
81
61
|
* @since 0.1.0
|
|
82
62
|
* @status experimental
|
|
@@ -5,41 +5,20 @@ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
|
|
|
5
5
|
* @summary Pairs an editable source pane with a live preview.
|
|
6
6
|
*
|
|
7
7
|
* @description
|
|
8
|
-
* Coordination is by event
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Coordination is by event: a source pane dispatches `helix-before-edit`, which
|
|
9
|
+
* bubbles, and the sandbox hands the value to whatever preview is slotted into
|
|
10
|
+
* it. Neither child knows the other exists, so either can be replaced or used
|
|
11
|
+
* alone.
|
|
12
12
|
*
|
|
13
13
|
* The event carries the pane's `name`, which is what lets one sandbox hold
|
|
14
|
-
* several panes
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* a pane rendering the example as JSX, and guessing would have put the text of
|
|
18
|
-
* a React component into the preview.
|
|
14
|
+
* several panes: `html` is the preview's markup and `css` its stylesheet. A
|
|
15
|
+
* pane named anything else is showing something rather than driving it, and is
|
|
16
|
+
* ignored.
|
|
19
17
|
*
|
|
20
|
-
* **The dividers are two nested `helix-splitter`s
|
|
21
|
-
* drags itself
|
|
22
|
-
* all the splitter's
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* The panes are the inner splitter and the panel is the outer one, which is the
|
|
26
|
-
* order that makes the panel span the full width: the outer divider runs edge to
|
|
27
|
-
* edge and the inner stops at it.
|
|
28
|
-
*
|
|
29
|
-
* **Both are controlled from here, so `split` and `panel-size` stay the truth.**
|
|
30
|
-
* A splitter that owned its own position would leave this element reporting one
|
|
31
|
-
* arrangement and showing another, and a consumer restoring a saved layout
|
|
32
|
-
* writes to these two properties. Each splitter announces where it wants to go
|
|
33
|
-
* and this answers, which is the same contract a form control has with a
|
|
34
|
-
* framework.
|
|
35
|
-
*
|
|
36
|
-
* **The panel is in pixels here and a percentage in the splitter, and the
|
|
37
|
-
* conversion belongs here.** A terminal wants a number of lines rather than a
|
|
38
|
-
* share of the window, so its height should not change when the window does. A
|
|
39
|
-
* splitter has no business knowing that, so it stays percentage-pure and this
|
|
40
|
-
* element, which does know what is in the panel, holds the box and converts.
|
|
41
|
-
* That is also what keeps a stored `panelSize` from a previous visit meaning
|
|
42
|
-
* what it meant when it was written.
|
|
18
|
+
* **The dividers are two nested `helix-splitter`s**, not a grid this element
|
|
19
|
+
* drags itself, so the pointer handling, the keyboard handling and the corner
|
|
20
|
+
* are all the splitter's. The panes are the inner splitter and the panel is the
|
|
21
|
+
* outer one, which is the order that makes the panel span the full width.
|
|
43
22
|
*
|
|
44
23
|
* @since 0.1.0
|
|
45
24
|
* @status experimental
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
display: flex;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
gap: var(--helix-space-2xs);
|
|
6
3
|
|
|
7
4
|
--_slider-track: var(--slider-track-size, var(--helix-size-progress));
|
|
8
5
|
|
|
@@ -17,6 +14,9 @@ transparent
|
|
|
17
14
|
);
|
|
18
15
|
|
|
19
16
|
--_slider-track-color: var(--slider-track-color, var(--helix-color-border));
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
gap: var(--helix-space-2xs);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
[part="field"] {
|
|
@@ -285,11 +285,6 @@ grid-template-rows: 1fr auto;
|
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
:host([orientation="vertical"]) [part="control"] {
|
|
288
|
-
direction: rtl;
|
|
289
|
-
inline-size: var(--slider-length, 9rem);
|
|
290
|
-
margin-block: calc(var(--_slider-thumb-length) / 2);
|
|
291
|
-
margin-inline: 0;
|
|
292
|
-
writing-mode: vertical-lr;
|
|
293
288
|
|
|
294
289
|
--_slider-track-image: var(
|
|
295
290
|
--slider-track-image,
|
|
@@ -299,6 +294,11 @@ var(--slider-fill-color, var(--helix-color-primary)) calc(var(--slider-fraction,
|
|
|
299
294
|
var(--_slider-track-color) calc(var(--slider-fraction, 0) * 100%)
|
|
300
295
|
)
|
|
301
296
|
);
|
|
297
|
+
direction: rtl;
|
|
298
|
+
inline-size: var(--slider-length, 9rem);
|
|
299
|
+
margin-block: calc(var(--_slider-thumb-length) / 2);
|
|
300
|
+
margin-inline: 0;
|
|
301
|
+
writing-mode: vertical-lr;
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
:host([orientation="vertical"]) [part="marker"] {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
+
--_sparkline-ink: var(--sparkline-color, var(--helix-color-series-1));
|
|
3
4
|
block-size: var(--sparkline-block-size, 2.5em);
|
|
4
5
|
|
|
5
6
|
color: var(--_sparkline-ink);
|
|
6
7
|
|
|
7
|
-
--_sparkline-ink: var(--sparkline-color, var(--helix-color-series-1));
|
|
8
|
-
|
|
9
8
|
position: relative;
|
|
10
9
|
|
|
11
10
|
display: inline-block;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
counter-reset: helix-step;
|
|
4
|
-
display: flex;
|
|
5
|
-
gap: var(--steps-gap, var(--helix-space-md));
|
|
6
|
-
|
|
7
3
|
--_steps-m: var(--steps-marker-size, var(--helix-size-icon));
|
|
8
4
|
--_steps-mark-box: var(--_steps-m);
|
|
9
5
|
|
|
@@ -44,6 +40,9 @@ var(--_steps-connector-inset)
|
|
|
44
40
|
);
|
|
45
41
|
--_steps-trail-block-start: calc(var(--_steps-mark-box) / 2);
|
|
46
42
|
--_steps-trail-block-size: var(--helix-border-thin);
|
|
43
|
+
counter-reset: helix-step;
|
|
44
|
+
display: flex;
|
|
45
|
+
gap: var(--steps-gap, var(--helix-space-md));
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
:host(:not([orientation="vertical"])) ::slotted(*) {
|
|
@@ -52,8 +51,6 @@ min-inline-size: 0;
|
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
:host([orientation="vertical"]) {
|
|
55
|
-
flex-direction: column;
|
|
56
|
-
|
|
57
54
|
--_steps-mark-box: var(--helix-size-control-tight);
|
|
58
55
|
--_steps-columns: auto minmax(0, 1fr);
|
|
59
56
|
--_steps-marker-justify: start;
|
|
@@ -76,6 +73,7 @@ var(--_steps-mark-box) +
|
|
|
76
73
|
var(--steps-gap, var(--helix-space-md)) /
|
|
77
74
|
2
|
|
78
75
|
);
|
|
76
|
+
flex-direction: column;
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
:host([variant="numeric"]) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
+
|
|
4
|
+
--_step-inset: var(--helix-space-sm);
|
|
3
5
|
align-items: start;
|
|
4
6
|
column-gap: var(--helix-space-2xs);
|
|
5
7
|
counter-increment: helix-step;
|
|
@@ -9,8 +11,6 @@ grid-template-columns: var(--_steps-columns, minmax(0, 1fr));
|
|
|
9
11
|
min-inline-size: 0;
|
|
10
12
|
position: relative;
|
|
11
13
|
row-gap: var(--_steps-row-gap, var(--helix-space-2xs));
|
|
12
|
-
|
|
13
|
-
--_step-inset: var(--helix-space-sm);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
[part="lead"],
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
display: inline-flex;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
gap: var(--helix-space-2xs);
|
|
6
|
-
|
|
7
3
|
--_switch-height: var(--switch-block-size, var(--helix-size-switch));
|
|
8
4
|
|
|
9
5
|
--_switch-width: var(--switch-inline-size, calc(var(--_switch-height) * 1.75));
|
|
@@ -11,6 +7,9 @@ gap: var(--helix-space-2xs);
|
|
|
11
7
|
--_switch-inset: calc(var(--helix-space-2xs) / 2);
|
|
12
8
|
|
|
13
9
|
--_field-control-inline-size: var(--_switch-width);
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: var(--helix-space-2xs);
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
[part="field"] {
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
+
--_tag-height: var(--helix-size-tag);
|
|
4
|
+
|
|
5
|
+
--_tag-color: var(--helix-color-foreground-muted);
|
|
6
|
+
--_tag-text: var(--helix-text-xs);
|
|
7
|
+
--_tag-inset: var(--helix-space-xs);
|
|
8
|
+
|
|
9
|
+
--_tag-fill: color-mix(in srgb, var(--_tag-color) 14%, var(--helix-color-background));
|
|
10
|
+
--_tag-edge: color-mix(in srgb, var(--_tag-color) 28%, var(--helix-color-background));
|
|
11
|
+
--_tag-label: color-mix(in oklab, var(--_tag-color) 55%, var(--helix-color-foreground));
|
|
3
12
|
align-items: center;
|
|
4
13
|
background-color: var(--tag-background-color, var(--_tag-fill));
|
|
5
14
|
block-size: var(--_tag-height);
|
|
@@ -13,16 +22,6 @@ gap: var(--helix-space-2xs);
|
|
|
13
22
|
line-height: var(--helix-leading-tight);
|
|
14
23
|
padding-inline: var(--_tag-inset);
|
|
15
24
|
white-space: nowrap;
|
|
16
|
-
|
|
17
|
-
--_tag-height: var(--helix-size-tag);
|
|
18
|
-
|
|
19
|
-
--_tag-color: var(--helix-color-foreground-muted);
|
|
20
|
-
--_tag-text: var(--helix-text-xs);
|
|
21
|
-
--_tag-inset: var(--helix-space-xs);
|
|
22
|
-
|
|
23
|
-
--_tag-fill: color-mix(in srgb, var(--_tag-color) 14%, var(--helix-color-background));
|
|
24
|
-
--_tag-edge: color-mix(in srgb, var(--_tag-color) 28%, var(--helix-color-background));
|
|
25
|
-
--_tag-label: color-mix(in oklab, var(--_tag-color) 55%, var(--helix-color-foreground));
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
slot:not([name]) {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
3
|
|
|
4
|
+
--helix-size-icon: var(--helix-size-icon-sm);
|
|
5
|
+
--helix-size-control: var(--helix-size-control-sm);
|
|
6
|
+
|
|
7
|
+
--_toast-line: calc(var(--helix-text-sm) * var(--helix-leading-normal));
|
|
8
|
+
|
|
4
9
|
display: grid;
|
|
5
10
|
|
|
6
11
|
grid-template-rows: minmax(0, 1fr);
|
|
@@ -12,11 +17,6 @@ margin-block-start var(--helix-duration-normal) var(--helix-easing-standard),
|
|
|
12
17
|
opacity var(--helix-duration-fast) var(--helix-easing-standard),
|
|
13
18
|
translate var(--helix-duration-normal) var(--helix-easing-standard);
|
|
14
19
|
|
|
15
|
-
--helix-size-icon: var(--helix-size-icon-sm);
|
|
16
|
-
--helix-size-control: var(--helix-size-control-sm);
|
|
17
|
-
|
|
18
|
-
--_toast-line: calc(var(--helix-text-sm) * var(--helix-leading-normal));
|
|
19
|
-
|
|
20
20
|
inline-size: var(--toast-inline-size, 22rem);
|
|
21
21
|
max-inline-size: calc(100vw - var(--helix-space-xl));
|
|
22
22
|
}
|