@fusion.dev/helix 0.23.0 → 0.24.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 +63152 -38228
- package/dist/accordion/item/accordion-item.css.js +4 -0
- package/dist/announcement/root/announcement-root.css.js +26 -12
- package/dist/announcement/root/announcement-root.d.ts +17 -0
- package/dist/announcement/root/announcement-root.js +4 -0
- package/dist/app-header/root/app-header-root.css.js +6 -0
- package/dist/area-chart/index.d.ts +1 -0
- package/dist/area-chart/index.js +1 -0
- package/dist/area-chart/root/area-chart-root.css.d.ts +1 -0
- package/dist/area-chart/root/area-chart-root.css.js +97 -0
- package/dist/area-chart/root/area-chart-root.d.ts +38 -0
- package/dist/area-chart/root/area-chart-root.js +20 -0
- package/dist/bar-chart/root/bar-chart-root.css.js +0 -141
- package/dist/bar-chart/root/bar-chart-root.js +2 -1
- package/dist/chat/composer/chat-composer.css.js +4 -0
- package/dist/chat/message/chat-message.css.js +20 -0
- package/dist/chat/root/chat-root.css.js +26 -0
- package/dist/code-block/root/code-block-root.css.js +122 -0
- package/dist/code-block/root/code-block-root.d.ts +5 -0
- package/dist/data-table/root/data-table-root.css.js +21 -3
- package/dist/data-table/root/data-table-root.d.ts +1 -0
- package/dist/data-table/root/data-table-root.js +1 -0
- package/dist/description-list/index.d.ts +2 -0
- package/dist/description-list/index.js +2 -0
- package/dist/description-list/item/description-list-item.css.d.ts +1 -0
- package/dist/description-list/item/description-list-item.css.js +31 -0
- package/dist/description-list/item/description-list-item.d.ts +21 -0
- package/dist/description-list/item/description-list-item.js +16 -0
- package/dist/description-list/root/description-list-root.css.d.ts +1 -0
- package/dist/description-list/root/description-list-root.css.js +35 -0
- package/dist/description-list/root/description-list-root.d.ts +62 -0
- package/dist/description-list/root/description-list-root.js +23 -0
- package/dist/donut-chart/root/donut-chart-root.css.js +0 -138
- package/dist/donut-chart/root/donut-chart-root.js +2 -1
- package/dist/element-events.generated.js +36 -8
- package/dist/filter-input/chip/filter-chip.css.d.ts +1 -0
- package/dist/filter-input/chip/filter-chip.css.js +85 -0
- package/dist/filter-input/chip/filter-chip.d.ts +32 -0
- package/dist/filter-input/chip/filter-chip.js +16 -0
- package/dist/filter-input/field/filter-field.css.d.ts +1 -0
- package/dist/filter-input/field/filter-field.css.js +4 -0
- package/dist/filter-input/field/filter-field.d.ts +29 -0
- package/dist/filter-input/field/filter-field.js +16 -0
- package/dist/filter-input/index.d.ts +4 -0
- package/dist/filter-input/index.js +4 -0
- package/dist/filter-input/menu/filter-menu.css.d.ts +1 -0
- package/dist/filter-input/menu/filter-menu.css.js +4 -0
- package/dist/filter-input/menu/filter-menu.d.ts +33 -0
- package/dist/filter-input/menu/filter-menu.js +19 -0
- package/dist/filter-input/operator/filter-operator.css.d.ts +1 -0
- package/dist/filter-input/operator/filter-operator.css.js +4 -0
- package/dist/filter-input/operator/filter-operator.d.ts +27 -0
- package/dist/filter-input/operator/filter-operator.js +16 -0
- package/dist/filter-input/root/filter-input-root.css.js +25 -2
- package/dist/filter-input/root/filter-input-root.d.ts +3 -0
- package/dist/heatmap/root/heatmap-root.d.ts +1 -0
- package/dist/heatmap/root/heatmap-root.js +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/line-chart/root/line-chart-root.css.js +0 -138
- package/dist/line-chart/root/line-chart-root.js +2 -1
- package/dist/menu/item/menu-item.css.js +8 -2
- package/dist/menu/root/menu-root.css.js +4 -0
- package/dist/navigation/root/navigation-root.css.js +2 -1
- package/dist/notifications/group/notification-group.css.d.ts +1 -0
- package/dist/notifications/group/notification-group.css.js +61 -0
- package/dist/notifications/group/notification-group.d.ts +37 -0
- package/dist/notifications/group/notification-group.js +16 -0
- package/dist/notifications/index.d.ts +1 -0
- package/dist/notifications/index.js +1 -0
- package/dist/notifications/notification/notification.css.js +74 -8
- package/dist/notifications/notification/notification.d.ts +25 -0
- package/dist/notifications/notification/notification.js +5 -0
- package/dist/notifications/root/notifications-root.css.js +8 -0
- package/dist/object-inspector/index.d.ts +1 -0
- package/dist/object-inspector/index.js +1 -0
- package/dist/object-inspector/root/object-inspector-root.css.d.ts +1 -0
- package/dist/object-inspector/root/object-inspector-root.css.js +148 -0
- package/dist/object-inspector/root/object-inspector-root.d.ts +35 -0
- package/dist/object-inspector/root/object-inspector-root.js +18 -0
- package/dist/sandbox/root/sandbox-root.d.ts +4 -0
- package/dist/sandbox/toolbar/sandbox-toolbar.css.js +7 -1
- package/dist/scatter-chart/index.d.ts +1 -0
- package/dist/scatter-chart/index.js +1 -0
- package/dist/scatter-chart/root/scatter-chart-root.css.d.ts +1 -0
- package/dist/scatter-chart/root/scatter-chart-root.css.js +138 -0
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +38 -0
- package/dist/scatter-chart/root/scatter-chart-root.js +20 -0
- package/dist/shared/chart/tooltip.css.d.ts +1 -0
- package/dist/shared/chart/tooltip.css.js +141 -0
- package/dist/skip-link/index.d.ts +1 -0
- package/dist/skip-link/index.js +1 -0
- package/dist/skip-link/root/skip-link-root.css.d.ts +1 -0
- package/dist/skip-link/root/skip-link-root.css.js +36 -0
- package/dist/skip-link/root/skip-link-root.d.ts +42 -0
- package/dist/skip-link/root/skip-link-root.js +17 -0
- package/dist/steps/step/step.css.js +4 -0
- package/dist/table/column/table-column.css.js +66 -0
- package/dist/tag/root/tag-root.d.ts +10 -0
- package/dist/text/root/text-root.d.ts +26 -13
- package/dist/text/root/text-root.js +3 -0
- package/dist/toast/item/toast-item.css.js +9 -4
- package/dist/toolbar/root/toolbar-root.css.js +6 -0
- package/package.json +6 -6
- package/types/jsx.d.ts +4790 -698
- package/types/svelte.d.ts +11 -0
- package/types/vue.d.ts +907 -51
|
@@ -2,14 +2,20 @@ import { createSheet } from '@fusion.dev/helix-core';
|
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
3
|
|
|
4
4
|
--helix-size-checkbox: var(--helix-size-checkbox-sm);
|
|
5
|
+
--helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
|
|
6
|
+
--helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
|
|
5
7
|
--helix-size-icon: var(--helix-size-icon-sm);
|
|
8
|
+
--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
|
|
9
|
+
--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
|
|
6
10
|
--helix-size-control: var(--helix-size-control-sm);
|
|
11
|
+
--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
|
|
12
|
+
--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
|
|
7
13
|
--helix-size-tag: var(--helix-size-tag-sm);
|
|
8
14
|
|
|
9
15
|
align-items: center;
|
|
10
16
|
background-color: var(--helix-color-background);
|
|
11
17
|
|
|
12
|
-
block-size: var(--sandbox-toolbar-size, var(--helix-size-control-
|
|
18
|
+
block-size: var(--sandbox-toolbar-size, var(--helix-size-control-lg));
|
|
13
19
|
|
|
14
20
|
border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
|
|
15
21
|
display: flex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/scatter-chart-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/scatter-chart-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
+
export const styles = createSheet(`:host {
|
|
3
|
+
column-gap: var(--helix-space-xs);
|
|
4
|
+
container-type: inline-size;
|
|
5
|
+
display: grid;
|
|
6
|
+
grid-template-areas:
|
|
7
|
+
"y-name ."
|
|
8
|
+
"y-axis plot"
|
|
9
|
+
". x-axis"
|
|
10
|
+
". x-name";
|
|
11
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
12
|
+
position: relative;
|
|
13
|
+
row-gap: var(--scatter-chart-gap, var(--helix-space-2xs));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[part="plot"] {
|
|
17
|
+
block-size: var(--scatter-chart-block-size, 14em);
|
|
18
|
+
cursor: crosshair;
|
|
19
|
+
grid-area: plot;
|
|
20
|
+
position: relative;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[part="plot"] svg {
|
|
24
|
+
block-size: 100%;
|
|
25
|
+
inline-size: 100%;
|
|
26
|
+
overflow: visible;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[part="gridline"] {
|
|
30
|
+
stroke: var(--scatter-chart-gridline-color, var(--helix-color-border));
|
|
31
|
+
stroke-width: var(--helix-border-thin);
|
|
32
|
+
vector-effect: non-scaling-stroke;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
[part="point"] {
|
|
36
|
+
background-color: var(--chart-series);
|
|
37
|
+
block-size: var(--scatter-chart-point-size, 8px);
|
|
38
|
+
border-radius: var(--helix-radii-full);
|
|
39
|
+
box-shadow: 0 0 0 var(--helix-border-thin)
|
|
40
|
+
var(--scatter-chart-point-ring-color, var(--helix-color-background));
|
|
41
|
+
inline-size: var(--scatter-chart-point-size, 8px);
|
|
42
|
+
inset-block-start: var(--chart-point-y);
|
|
43
|
+
inset-inline-start: var(--chart-point-x);
|
|
44
|
+
opacity: var(--scatter-chart-point-opacity, 0.8);
|
|
45
|
+
pointer-events: none;
|
|
46
|
+
position: absolute;
|
|
47
|
+
transition:
|
|
48
|
+
inset-block-start var(--helix-duration-normal) var(--helix-easing-decelerate),
|
|
49
|
+
inset-inline-start var(--helix-duration-normal) var(--helix-easing-decelerate),
|
|
50
|
+
scale var(--helix-duration-fast) var(--helix-easing-decelerate);
|
|
51
|
+
translate: -50% -50%;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
[part="point"][data-active] {
|
|
55
|
+
opacity: 1;
|
|
56
|
+
scale: 1.5;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
[part="x-axis"],
|
|
60
|
+
[part="y-axis"] {
|
|
61
|
+
display: grid;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
[part="x-axis"] {
|
|
65
|
+
grid-area: x-axis;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
[part="y-axis"] {
|
|
69
|
+
grid-area: y-axis;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
[part="x-tick"],
|
|
73
|
+
[part="y-tick"] {
|
|
74
|
+
color: var(--helix-color-foreground-muted);
|
|
75
|
+
font-size: var(--helix-text-xs);
|
|
76
|
+
font-variant-numeric: tabular-nums;
|
|
77
|
+
grid-area: 1 / 1;
|
|
78
|
+
line-height: 1;
|
|
79
|
+
position: relative;
|
|
80
|
+
white-space: nowrap;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[part="x-tick"] {
|
|
84
|
+
inset-inline-start: var(--chart-tick);
|
|
85
|
+
justify-self: start;
|
|
86
|
+
translate: -50% 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
[part="y-tick"] {
|
|
90
|
+
align-self: start;
|
|
91
|
+
inset-block-start: var(--chart-tick);
|
|
92
|
+
justify-self: end;
|
|
93
|
+
translate: 0 -50%;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@container (inline-size < 30rem) {
|
|
97
|
+
[part="x-tick"]:nth-last-child(even) {
|
|
98
|
+
visibility: hidden;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
[part="x-name"],
|
|
103
|
+
[part="y-name"] {
|
|
104
|
+
color: var(--helix-color-foreground-muted);
|
|
105
|
+
font-size: var(--helix-text-xs);
|
|
106
|
+
font-weight: var(--helix-weight-medium);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
[part="x-name"] {
|
|
110
|
+
grid-area: x-name;
|
|
111
|
+
justify-self: end;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
[part="y-name"] {
|
|
115
|
+
grid-area: y-name;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
[part="summary"] {
|
|
119
|
+
block-size: 1px;
|
|
120
|
+
clip-path: inset(50%);
|
|
121
|
+
inline-size: 1px;
|
|
122
|
+
margin: var(--helix-space-none);
|
|
123
|
+
overflow: hidden;
|
|
124
|
+
position: absolute;
|
|
125
|
+
white-space: nowrap;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@starting-style {
|
|
129
|
+
[part="point"] {
|
|
130
|
+
opacity: 0;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@media print {
|
|
135
|
+
:host {
|
|
136
|
+
print-color-adjust: exact;
|
|
137
|
+
}
|
|
138
|
+
}`);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { HelixHeadlessScatterChart } from '@fusion.dev/helix-headless/scatter-chart';
|
|
2
|
+
import type { CSSResultGroup } from 'lit';
|
|
3
|
+
import '../../tooltip/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* @summary Whether two measures move together, one point per row.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* The points take the series palette in order, so a table with one column
|
|
9
|
+
* measured up is series one and a table with three is the first three.
|
|
10
|
+
*
|
|
11
|
+
* Each point has a ring of the page around it and stops short of opaque, so a
|
|
12
|
+
* dense cluster reads as dense rather than as one blot, and two points that
|
|
13
|
+
* overlap each keep their edge.
|
|
14
|
+
*
|
|
15
|
+
* @since 0.1.0
|
|
16
|
+
* @status experimental
|
|
17
|
+
* @category charts
|
|
18
|
+
* @groups charts
|
|
19
|
+
* @aliases Scatter Plot, XY Chart, Correlation Chart, Dot Plot
|
|
20
|
+
* @documentation https://helix.fusion.dev/components/scatter-chart
|
|
21
|
+
*
|
|
22
|
+
* @cssproperty --scatter-chart-block-size - Height of the drawing.
|
|
23
|
+
* @cssproperty --scatter-chart-gap - Space between the drawing and its axes.
|
|
24
|
+
* @cssproperty --scatter-chart-gridline-color - One rule across the plot, under `gridlines`.
|
|
25
|
+
* @cssproperty --scatter-chart-point-opacity - How much of its color a point shows, so a cluster reads darker where it is denser.
|
|
26
|
+
* @cssproperty --scatter-chart-point-ring-color - The ring around each point, which is the page's color unless the chart sits on something else.
|
|
27
|
+
* @cssproperty --scatter-chart-point-size - Diameter of a point.
|
|
28
|
+
*/
|
|
29
|
+
export declare class HelixScatterChart extends HelixHeadlessScatterChart {
|
|
30
|
+
/** The styled tier, so the tooltip this renders is the styled one. */
|
|
31
|
+
static tier: string;
|
|
32
|
+
static styles: CSSResultGroup;
|
|
33
|
+
}
|
|
34
|
+
declare global {
|
|
35
|
+
interface HTMLElementTagNameMap {
|
|
36
|
+
'helix-scatter-chart': HelixScatterChart;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement } from '@fusion.dev/helix-core';
|
|
8
|
+
import { HelixHeadlessScatterChart } from '@fusion.dev/helix-headless/scatter-chart';
|
|
9
|
+
import { styles as seriesStyles } from '../../shared/chart/series.css.js';
|
|
10
|
+
import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
|
|
11
|
+
import { styles } from './scatter-chart-root.css.js';
|
|
12
|
+
import '../../tooltip/index.js';
|
|
13
|
+
let HelixScatterChart = class HelixScatterChart extends HelixHeadlessScatterChart {
|
|
14
|
+
static { this.tier = 'helix-'; }
|
|
15
|
+
static { this.styles = [seriesStyles, tooltipStyles, styles]; }
|
|
16
|
+
};
|
|
17
|
+
HelixScatterChart = __decorate([
|
|
18
|
+
customElement('helix-scatter-chart')
|
|
19
|
+
], HelixScatterChart);
|
|
20
|
+
export { HelixScatterChart };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
+
export const styles = createSheet(`[part="mark"] {
|
|
3
|
+
block-size: 1px;
|
|
4
|
+
inline-size: 1px;
|
|
5
|
+
pointer-events: none;
|
|
6
|
+
position: absolute;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
[part="tooltip-anchor"] {
|
|
10
|
+
inset: 0;
|
|
11
|
+
pointer-events: none;
|
|
12
|
+
position: absolute;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[part="tooltip-label"] {
|
|
16
|
+
display: block;
|
|
17
|
+
font-weight: var(--helix-weight-medium);
|
|
18
|
+
margin-block-end: var(--helix-space-2xs);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
[part="tooltip-cell"] {
|
|
22
|
+
align-items: baseline;
|
|
23
|
+
column-gap: var(--helix-space-sm);
|
|
24
|
+
display: grid;
|
|
25
|
+
grid-template-columns: 0.5em minmax(0, 1fr) auto;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
[part="tooltip-name"] {
|
|
29
|
+
grid-column: 2;
|
|
30
|
+
|
|
31
|
+
opacity: 0.72;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
[part="tooltip-value"] {
|
|
35
|
+
font-variant-numeric: tabular-nums;
|
|
36
|
+
grid-column: 3;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[part="tooltip-cell"][data-series]::before {
|
|
40
|
+
block-size: 0.5em;
|
|
41
|
+
border-radius: var(--helix-radii-full);
|
|
42
|
+
content: "";
|
|
43
|
+
grid-column: 1;
|
|
44
|
+
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
|
+
}`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { HelixSkipLink } from './root/skip-link-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { HelixSkipLink } from './root/skip-link-root.js';
|
|
@@ -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: block;
|
|
4
|
+
inset-block-start: var(--helix-space-sm);
|
|
5
|
+
inset-inline-start: var(--helix-space-sm);
|
|
6
|
+
position: fixed;
|
|
7
|
+
z-index: var(--helix-layer-overlay);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[part="link"] {
|
|
11
|
+
background-color: var(--helix-color-surface-inverse);
|
|
12
|
+
border: var(--skip-link-border-width, var(--helix-border-floating)) solid
|
|
13
|
+
var(--skip-link-border-color, var(--helix-color-border));
|
|
14
|
+
border-radius: var(--helix-radii-sm);
|
|
15
|
+
box-shadow: var(--skip-link-shadow, var(--helix-shadow-floating));
|
|
16
|
+
color: var(--helix-color-foreground-inverse);
|
|
17
|
+
display: inline-block;
|
|
18
|
+
font-family: var(--helix-font-sans);
|
|
19
|
+
font-size: var(--helix-text-sm);
|
|
20
|
+
font-weight: var(--helix-weight-medium);
|
|
21
|
+
line-height: var(--helix-leading-normal);
|
|
22
|
+
padding-block: var(--helix-space-sm);
|
|
23
|
+
padding-inline: var(--helix-space-md);
|
|
24
|
+
text-decoration: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[part="link"]:focus-visible {
|
|
28
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
29
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@media print {
|
|
33
|
+
:host {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
}`);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HelixHeadlessSkipLink } from '@fusion.dev/helix-headless/skip-link';
|
|
2
|
+
import type { CSSResultGroup } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary The first stop on a page, which moves the reader past everything
|
|
5
|
+
* repeated on every page.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* Out of sight until the keyboard reaches it, then in the corner of the
|
|
9
|
+
* viewport and impossible to miss. The hiding is the base layer's visually
|
|
10
|
+
* hidden helper, so the link stays in the tab order and in the accessibility
|
|
11
|
+
* tree while nobody can see it; `display: none` would have taken it out of
|
|
12
|
+
* both. The reveal is this sheet's.
|
|
13
|
+
*
|
|
14
|
+
* **Fixed to the viewport rather than placed where it sits in the document**,
|
|
15
|
+
* because it is first in the document and the page may already be scrolled
|
|
16
|
+
* when focus arrives, by a restored position or an anchor in the address. A
|
|
17
|
+
* link revealed above the top of the screen is revealed to nobody.
|
|
18
|
+
*
|
|
19
|
+
* Put it first inside `<body>`, before the header, and give the content
|
|
20
|
+
* region the id its `href` names.
|
|
21
|
+
*
|
|
22
|
+
* @since 0.1.0
|
|
23
|
+
* @status experimental
|
|
24
|
+
* @category navigation
|
|
25
|
+
* @documentation https://helix.fusion.dev/components/skip-link
|
|
26
|
+
*
|
|
27
|
+
* @cssproperty --skip-link-border-color - Color of the revealed link's edge.
|
|
28
|
+
* @cssproperty --skip-link-border-width - Width of the revealed link's edge. Follows
|
|
29
|
+
* `--helix-border-floating`, which is `0`, so the link is told apart by its lift unless a
|
|
30
|
+
* theme says otherwise.
|
|
31
|
+
* @cssproperty --skip-link-shadow - Lift under the revealed link. Follows
|
|
32
|
+
* `--helix-shadow-floating`, since it sits over whatever the page has at its corner.
|
|
33
|
+
*/
|
|
34
|
+
export declare class HelixSkipLink extends HelixHeadlessSkipLink {
|
|
35
|
+
static tier: string;
|
|
36
|
+
static styles: CSSResultGroup;
|
|
37
|
+
}
|
|
38
|
+
declare global {
|
|
39
|
+
interface HTMLElementTagNameMap {
|
|
40
|
+
'helix-skip-link': HelixSkipLink;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement } from '@fusion.dev/helix-core';
|
|
8
|
+
import { HelixHeadlessSkipLink } from '@fusion.dev/helix-headless/skip-link';
|
|
9
|
+
import { styles } from './skip-link-root.css.js';
|
|
10
|
+
let HelixSkipLink = class HelixSkipLink extends HelixHeadlessSkipLink {
|
|
11
|
+
static { this.tier = 'helix-'; }
|
|
12
|
+
static { this.styles = styles; }
|
|
13
|
+
};
|
|
14
|
+
HelixSkipLink = __decorate([
|
|
15
|
+
customElement('helix-skip-link')
|
|
16
|
+
], HelixSkipLink);
|
|
17
|
+
export { HelixSkipLink };
|
|
@@ -105,7 +105,11 @@ z-index: 1;
|
|
|
105
105
|
|
|
106
106
|
[part="label"] {
|
|
107
107
|
--helix-size-control: var(--helix-size-control-sm);
|
|
108
|
+
--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
|
|
109
|
+
--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
|
|
108
110
|
--helix-size-icon: var(--helix-size-icon-sm);
|
|
111
|
+
--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
|
|
112
|
+
--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
|
|
109
113
|
--helix-space-control: var(--_step-inset);
|
|
110
114
|
--helix-text-control: var(--helix-text-sm);
|
|
111
115
|
--button-foreground-color: var(--helix-color-foreground-muted);
|
|
@@ -17,4 +17,70 @@ font-weight: var(--helix-weight-semibold);
|
|
|
17
17
|
min-block-size: var(--helix-size-control-loose);
|
|
18
18
|
min-inline-size: 0;
|
|
19
19
|
padding-inline-end: var(--helix-space-md);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
[part="column"] {
|
|
23
|
+
position: relative;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
[part="sort"] {
|
|
27
|
+
all: unset;
|
|
28
|
+
align-items: center;
|
|
29
|
+
box-sizing: border-box;
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
display: inline-flex;
|
|
32
|
+
flex: 1;
|
|
33
|
+
gap: var(--helix-space-2xs);
|
|
34
|
+
min-inline-size: 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
[part="sort"]:focus-visible,
|
|
38
|
+
[part="grip"]:focus-visible,
|
|
39
|
+
[part="resizer"]:focus-visible {
|
|
40
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
41
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
[part="grip"] {
|
|
45
|
+
all: unset;
|
|
46
|
+
align-items: center;
|
|
47
|
+
border-radius: var(--helix-radii-sm);
|
|
48
|
+
box-sizing: border-box;
|
|
49
|
+
color: var(--helix-color-foreground-muted);
|
|
50
|
+
cursor: grab;
|
|
51
|
+
display: inline-flex;
|
|
52
|
+
flex: none;
|
|
53
|
+
margin-inline-end: var(--helix-space-2xs);
|
|
54
|
+
touch-action: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
[part="grip"]:active {
|
|
58
|
+
cursor: grabbing;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
[part="grip-mark"] {
|
|
62
|
+
block-size: 1em;
|
|
63
|
+
inline-size: 1em;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
[part="resizer"] {
|
|
67
|
+
cursor: col-resize;
|
|
68
|
+
inline-size: var(--helix-space-sm);
|
|
69
|
+
inset-block: 0;
|
|
70
|
+
inset-inline-end: 0;
|
|
71
|
+
position: absolute;
|
|
72
|
+
touch-action: none;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
[part="resizer"]::after {
|
|
76
|
+
border-inline-end: var(--helix-border-thin) solid transparent;
|
|
77
|
+
content: "";
|
|
78
|
+
inset-block: var(--helix-space-xs);
|
|
79
|
+
inset-inline-end: 0;
|
|
80
|
+
position: absolute;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[part="resizer"]:hover::after,
|
|
84
|
+
[part="resizer"]:focus-visible::after {
|
|
85
|
+
border-inline-end-color: var(--helix-color-foreground-muted);
|
|
20
86
|
}`);
|
|
@@ -46,6 +46,16 @@ export declare class HelixTag extends HelixHeadlessTag {
|
|
|
46
46
|
*
|
|
47
47
|
* `tone` is semantic color, which is what these are and what `helix-text`
|
|
48
48
|
* already calls them. `helix component`'s `axes` holds the vocabulary.
|
|
49
|
+
*
|
|
50
|
+
* **Not all seven are statuses, and `accent` is the one worth saying out
|
|
51
|
+
* loud**: it is the second emphasis, a rotation off the brand seed rather than
|
|
52
|
+
* a color of its own, so it stays in relation when somebody rethemes.
|
|
53
|
+
* `primary` is the seed itself. The four that are statuses are the four
|
|
54
|
+
* `HelixStatusTone` names, and those are the ones that would carry a glyph
|
|
55
|
+
* somewhere that draws one.
|
|
56
|
+
*
|
|
57
|
+
* `Badge` and `Announcement` take the same seven, all three being a mark that
|
|
58
|
+
* carries a meaning beside something else.
|
|
49
59
|
*/
|
|
50
60
|
tone?: 'accent' | 'danger' | 'info' | 'neutral' | 'primary' | 'success' | 'warning';
|
|
51
61
|
static styles: CSSResultGroup;
|
|
@@ -27,8 +27,9 @@ import type { CSSResultGroup } from 'lit';
|
|
|
27
27
|
* the ramp is named, and a page built from it is consistent because there was
|
|
28
28
|
* nothing else to choose.
|
|
29
29
|
*
|
|
30
|
-
* `tone`
|
|
31
|
-
*
|
|
30
|
+
* `tone` and `emphasis` stay separate, because color carries state rather than
|
|
31
|
+
* typography, and what a line means is not how loudly it says it. Folding
|
|
32
|
+
* either in would mean `caption-danger` and `label-muted` and the rest of the
|
|
32
33
|
* cross product, which is the explosion a named ramp exists to prevent.
|
|
33
34
|
*
|
|
34
35
|
* @since 0.1.0
|
|
@@ -49,23 +50,35 @@ export declare class HelixText extends HelixElement {
|
|
|
49
50
|
*/
|
|
50
51
|
as?: 'span' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'strong' | 'em' | 'code' | 'label';
|
|
51
52
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* How loud the text is, beside what it means.
|
|
54
|
+
*
|
|
55
|
+
* `muted` is the quiet ink that still has to be read, and `subtle` the
|
|
56
|
+
* quieter one below it. Two axes because the test says so: a line can be a
|
|
57
|
+
* danger *and* quiet at once, and a muted danger is what a validation hint
|
|
58
|
+
* under a field is.
|
|
59
|
+
*
|
|
60
|
+
* **With a `tone`, both are that tone's one quiet ink**: the tone's hue at half
|
|
61
|
+
* its chroma, as readable as the tone. The readable range holds one quiet step
|
|
62
|
+
* and not two, measured in #124 for the neutral ink, and a tone has less room
|
|
63
|
+
* there rather than more, so `subtle` on a tone is the same ink as `muted`
|
|
64
|
+
* rather than a second one that could not be read.
|
|
65
|
+
*
|
|
66
|
+
* The resting case is the absent attribute, full strength.
|
|
67
|
+
*/
|
|
68
|
+
emphasis?: 'muted' | 'subtle';
|
|
69
|
+
/**
|
|
70
|
+
* What the text means. A separate axis from the type ramp, because color
|
|
71
|
+
* carries state: folding it in would mean `caption-danger` and the rest of the
|
|
72
|
+
* cross product.
|
|
55
73
|
*
|
|
56
74
|
* **There is no `default` value**, and one must not be added: it would match
|
|
57
75
|
* no rule and fall through to the inherited ink, reading as working while
|
|
58
76
|
* saying nothing. The resting case is the absent attribute.
|
|
59
77
|
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* out is blocked on the palette rather than on the rename: there is a quiet
|
|
63
|
-
* step for the neutral ink and none for any other tone, so a muted danger has
|
|
64
|
-
* nothing to be made of. `primary-subtle` is a tinted *ground* and not a
|
|
65
|
-
* quiet ink. That is #141's to derive, and until it does, folding the two
|
|
66
|
-
* halves apart would leave three of the four combinations unsayable.
|
|
78
|
+
* Weight is not a tone. How loud the text is belongs on `emphasis`, which is
|
|
79
|
+
* why `muted` and `subtle` moved there.
|
|
67
80
|
*/
|
|
68
|
-
tone?: '
|
|
81
|
+
tone?: 'accent' | 'danger' | 'info' | 'primary' | 'success' | 'warning';
|
|
69
82
|
/**
|
|
70
83
|
* Type treatment.
|
|
71
84
|
*
|
|
@@ -32,6 +32,9 @@ let HelixText = class HelixText extends HelixElement {
|
|
|
32
32
|
__decorate([
|
|
33
33
|
property({ reflect: true })
|
|
34
34
|
], HelixText.prototype, "as", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
property({ reflect: true })
|
|
37
|
+
], HelixText.prototype, "emphasis", void 0);
|
|
35
38
|
__decorate([
|
|
36
39
|
property({ reflect: true })
|
|
37
40
|
], HelixText.prototype, "tone", void 0);
|