@fusion.dev/helix 0.31.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/custom-elements.json +1419 -173
  2. package/dist/aura/root/aura-root.css.js +4 -0
  3. package/dist/aura/root/aura-root.d.ts +66 -3
  4. package/dist/aura/root/aura-root.js +61 -5
  5. package/dist/bar-chart/root/bar-chart-root.css.js +4 -0
  6. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +0 -4
  7. package/dist/carousel/root/carousel-root.css.js +4 -7
  8. package/dist/color-picker/root/color-picker-root.css.js +13 -3
  9. package/dist/data-table/root/data-table-root.css.js +15 -10
  10. package/dist/date-picker/root/date-picker-root.css.js +0 -2
  11. package/dist/donut-chart/root/donut-chart-root.css.js +8 -0
  12. package/dist/drilldown/item/drilldown-item.css.js +7 -0
  13. package/dist/drilldown/root/drilldown-root.css.js +0 -4
  14. package/dist/heatmap/root/heatmap-root.d.ts +8 -0
  15. package/dist/menu/item/menu-item.css.js +0 -4
  16. package/dist/menu/root/menu-root.css.js +0 -4
  17. package/dist/object-inspector/root/object-inspector-root.css.js +0 -4
  18. package/dist/orb/root/orb-root.css.js +4 -0
  19. package/dist/orb/root/orb-root.d.ts +24 -1
  20. package/dist/orb/root/orb-root.js +30 -2
  21. package/dist/pagination/root/pagination-root.css.js +0 -4
  22. package/dist/pin-input/root/pin-input-root.css.js +1 -0
  23. package/dist/scatter-chart/root/scatter-chart-root.css.js +7 -2
  24. package/dist/scroll-area/root/scroll-area-root.css.js +9 -2
  25. package/dist/shared/chart/terminus.css.js +8 -0
  26. package/dist/slider/root/slider-root.css.js +43 -7
  27. package/dist/table/cell/table-cell.css.js +6 -1
  28. package/dist/table/column/table-column.css.js +23 -5
  29. package/dist/tooltip/root/tooltip-root.css.js +16 -32
  30. package/dist/tour/root/tour-root.css.js +3 -2
  31. package/dist/tour/stop/tour-stop.css.js +13 -17
  32. package/dist/tree/item/tree-item.css.js +4 -0
  33. package/package.json +6 -6
  34. package/types/jsx.d.ts +1570 -628
  35. package/types/vue.d.ts +61 -18
@@ -1,7 +1,12 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
2
  export const styles = createSheet(`:host {
3
- column-gap: var(--helix-space-xs);
4
3
  container-type: inline-size;
4
+ display: block;
5
+ position: relative;
6
+ }
7
+
8
+ [part="plane"] {
9
+ column-gap: var(--helix-space-xs);
5
10
  display: grid;
6
11
  grid-template-areas:
7
12
  "y-name y-name"
@@ -9,7 +14,6 @@ grid-template-areas:
9
14
  ". x-axis"
10
15
  ". x-name";
11
16
  grid-template-columns: auto minmax(0, 1fr);
12
- position: relative;
13
17
  row-gap: var(--scatter-chart-gap, var(--helix-space-xs));
14
18
  }
15
19
 
@@ -113,6 +117,7 @@ justify-self: end;
113
117
 
114
118
  [part="y-name"] {
115
119
  grid-area: y-name;
120
+ justify-self: start;
116
121
  }
117
122
 
118
123
  [part="summary"] {
@@ -59,11 +59,18 @@ opacity: 1;
59
59
  }
60
60
 
61
61
  [part="edges"] {
62
+ --_scroll-area-from-start: to right;
63
+ --_scroll-area-from-end: to left;
62
64
  inset: 0;
63
65
  pointer-events: none;
64
66
  position: absolute;
65
67
  }
66
68
 
69
+ :host(:dir(rtl)) [part="edges"] {
70
+ --_scroll-area-from-start: to left;
71
+ --_scroll-area-from-end: to right;
72
+ }
73
+
67
74
  [part="edges"]::before,
68
75
  [part="edges"]::after {
69
76
  content: "";
@@ -76,7 +83,7 @@ z-index: var(--helix-layer-raised);
76
83
 
77
84
  [part="edges"]::before {
78
85
  background: linear-gradient(
79
- to right,
86
+ var(--_scroll-area-from-start),
80
87
  var(--scroll-area-fade-color, var(--helix-color-background)),
81
88
  transparent
82
89
  );
@@ -86,7 +93,7 @@ inset-inline-start: 0;
86
93
 
87
94
  [part="edges"]::after {
88
95
  background: linear-gradient(
89
- to left,
96
+ var(--_scroll-area-from-end),
90
97
  var(--scroll-area-fade-color, var(--helix-color-background)),
91
98
  transparent
92
99
  );
@@ -10,6 +10,10 @@ position: absolute;
10
10
  translate: -50% -50%;
11
11
  }
12
12
 
13
+ :host(:dir(rtl)) [part="terminus"] {
14
+ translate: 50% -50%;
15
+ }
16
+
13
17
  [part="terminus"] {
14
18
  border-radius: var(--helix-radii-full);
15
19
  }
@@ -37,4 +41,8 @@ inline-size: calc(var(--chart-terminus-size, 5px) * 1.6);
37
41
  background-color: currentColor;
38
42
  border-radius: var(--helix-radii-none);
39
43
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
44
+ }
45
+
46
+ :host([terminus="triangle"]:dir(rtl)) [part="terminus"] {
47
+ clip-path: polygon(100% 0%, 0% 50%, 100% 100%);
40
48
  }`);
@@ -14,11 +14,17 @@ transparent
14
14
  );
15
15
 
16
16
  --_slider-track-color: var(--slider-track-color, var(--helix-color-border));
17
+
18
+ --_slider-along: to right;
17
19
  display: flex;
18
20
  flex-direction: column;
19
21
  gap: var(--helix-space-2xs);
20
22
  }
21
23
 
24
+ :host(:dir(rtl)) {
25
+ --_slider-along: to left;
26
+ }
27
+
22
28
  [part="field"] {
23
29
  align-items: center;
24
30
  display: flex;
@@ -66,7 +72,7 @@ grid-row: 1;
66
72
  --_slider-track-image: var(
67
73
  --slider-track-image,
68
74
  linear-gradient(
69
- to right,
75
+ var(--_slider-along),
70
76
  var(--slider-fill-color, var(--helix-color-primary)) calc(var(--slider-fraction, 0) * 100%),
71
77
  var(--_slider-track-color) calc(var(--slider-fraction, 0) * 100%)
72
78
  )
@@ -86,6 +92,14 @@ z-index: var(--helix-layer-raised);
86
92
  padding-block-end: var(--helix-space-lg);
87
93
  }
88
94
 
95
+ :host([marker-labels]:not([orientation="vertical"])) [part="markers"] {
96
+ block-size: calc(var(--_slider-track) + var(--helix-space-lg));
97
+ border-inline: var(--helix-space-lg) solid transparent;
98
+ margin-block-end: calc(var(--helix-space-lg) * -1);
99
+ margin-inline: calc(var(--_slider-thumb-length) / 2 - var(--helix-space-lg));
100
+ mask-origin: padding-box;
101
+ }
102
+
89
103
  [part="marker-label"] {
90
104
  color: var(--helix-color-foreground-subtle);
91
105
  font-family: var(--helix-font-sans);
@@ -97,26 +111,44 @@ position: absolute;
97
111
  translate: -50% 0;
98
112
  }
99
113
 
114
+ :host(:dir(rtl)) [part="marker-label"] {
115
+ translate: 50% 0;
116
+ }
117
+
100
118
  [part="markers"] {
119
+
101
120
  --_slider-hole: calc(var(--_slider-thumb-length) / 2 + var(--helix-border-thin));
121
+ --_slider-hole-at: calc(var(--slider-fraction, 0) * 100%);
122
+ --_slider-hole-from: calc(var(--slider-from, 0) * 100%);
123
+ --_slider-hole-to: calc(var(--slider-to, 0) * 100%);
124
+ --_slider-under: linear-gradient(transparent var(--_slider-track), currentColor 0);
102
125
 
103
- mask-image: radial-gradient(
104
- circle at calc(var(--slider-fraction, 0) * 100%) 50%,
126
+ mask-image:
127
+ var(--_slider-under),
128
+ radial-gradient(
129
+ circle at var(--_slider-hole-at) calc(var(--_slider-track) / 2),
105
130
  transparent var(--_slider-hole),
106
131
  currentColor var(--_slider-hole)
107
132
  );
108
133
  }
109
134
 
135
+ :host(:dir(rtl)) [part="markers"] {
136
+ --_slider-hole-at: calc(100% - var(--slider-fraction, 0) * 100%);
137
+ --_slider-hole-from: calc(100% - var(--slider-from, 0) * 100%);
138
+ --_slider-hole-to: calc(100% - var(--slider-to, 0) * 100%);
139
+ }
140
+
110
141
  [part="field"][data-range] [part="markers"] {
111
- mask-composite: intersect;
142
+ mask-composite: add, intersect;
112
143
  mask-image:
144
+ var(--_slider-under),
113
145
  radial-gradient(
114
- circle at calc(var(--slider-from, 0) * 100%) 50%,
146
+ circle at var(--_slider-hole-from) calc(var(--_slider-track) / 2),
115
147
  transparent var(--_slider-hole),
116
148
  currentColor var(--_slider-hole)
117
149
  ),
118
150
  radial-gradient(
119
- circle at calc(var(--slider-to, 0) * 100%) 50%,
151
+ circle at var(--_slider-hole-to) calc(var(--_slider-track) / 2),
120
152
  transparent var(--_slider-hole),
121
153
  currentColor var(--_slider-hole)
122
154
  );
@@ -142,6 +174,10 @@ position: absolute;
142
174
  translate: -50% 0;
143
175
  }
144
176
 
177
+ :host(:dir(rtl)) [part="marker"] {
178
+ translate: 50% 0;
179
+ }
180
+
145
181
  :host(:disabled) [part="control"] {
146
182
  cursor: not-allowed;
147
183
  }
@@ -246,7 +282,7 @@ grid-row: 1;
246
282
  --_slider-track-image: var(
247
283
  --slider-track-image,
248
284
  linear-gradient(
249
- to right,
285
+ var(--_slider-along),
250
286
  var(--_slider-track-color) calc(var(--slider-from, 0) * 100%),
251
287
  var(--slider-fill-color, var(--helix-color-primary)) calc(var(--slider-from, 0) * 100%),
252
288
  var(--slider-fill-color, var(--helix-color-primary)) calc(var(--slider-to, 1) * 100%),
@@ -8,11 +8,16 @@ box-sizing: border-box;
8
8
  color: var(--helix-color-foreground);
9
9
  display: flex;
10
10
  font-size: var(--helix-text-sm);
11
+
12
+ justify-content: var(--table-cell-align);
11
13
  min-block-size: var(--helix-size-control);
12
14
  min-inline-size: 0;
13
15
 
14
16
  overflow-wrap: anywhere;
15
- padding: var(--helix-space-xs) var(--helix-space-md) var(--helix-space-xs) var(--helix-space-none);
17
+
18
+ padding-block: var(--helix-space-xs);
19
+ padding-inline: var(--helix-space-none) var(--helix-space-md);
20
+ text-align: var(--table-cell-align);
16
21
  }
17
22
 
18
23
  ::slotted(*) {
@@ -5,22 +5,30 @@ display: contents;
5
5
 
6
6
  [part="column"] {
7
7
  align-items: center;
8
- border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
8
+ border-block-end: var(--helix-border-thin) solid
9
+ var(--_table-heading-rule-color, var(--helix-color-border));
9
10
  box-sizing: border-box;
10
11
 
11
- color: var(--helix-color-foreground-muted);
12
+ color: var(--_table-heading-color, var(--helix-color-foreground-muted));
12
13
  display: flex;
13
14
  font-family: var(--helix-font-sans);
14
- font-size: var(--helix-text-sm);
15
+ font-size: var(--_table-heading-text, var(--helix-text-sm));
15
16
  font-weight: var(--helix-weight-semibold);
16
17
 
17
18
  min-block-size: var(--helix-size-control-loose);
18
19
  min-inline-size: 0;
19
- padding-inline-end: var(--helix-space-md);
20
+ padding-block: var(--_table-heading-padding-block, var(--helix-space-none));
21
+ padding-inline: var(
22
+ --_table-heading-padding-inline,
23
+ var(--helix-space-none) var(--helix-space-md)
24
+ );
20
25
  }
21
26
 
22
27
  [part="column"] {
23
- position: relative;
28
+ background-color: var(--_table-heading-background-color, transparent);
29
+ inset-block-start: 0;
30
+ position: var(--_table-heading-position, relative);
31
+ z-index: var(--_table-heading-layer, auto);
24
32
  }
25
33
 
26
34
  [part="sort"] {
@@ -34,6 +42,16 @@ gap: var(--helix-space-2xs);
34
42
  min-inline-size: 0;
35
43
  }
36
44
 
45
+ :host([align="center"]) [part="column"],
46
+ :host([align="center"]) [part="sort"] {
47
+ justify-content: center;
48
+ }
49
+
50
+ :host([align="end"]) [part="column"],
51
+ :host([align="end"]) [part="sort"] {
52
+ justify-content: flex-end;
53
+ }
54
+
37
55
  [part="sort"]:focus-visible,
38
56
  [part="grip"]:focus-visible,
39
57
  [part="resizer"]:focus-visible {
@@ -3,7 +3,7 @@ export const styles = createSheet(`:host {
3
3
  display: contents;
4
4
  }
5
5
 
6
- [part="tooltip"] {
6
+ [part~="tooltip"] {
7
7
  overflow: visible;
8
8
  align-items: center;
9
9
  display: flex;
@@ -34,12 +34,12 @@ display var(--helix-duration-fast) allow-discrete,
34
34
  overlay var(--helix-duration-fast) allow-discrete;
35
35
  }
36
36
 
37
- [part="tooltip"][data-placed] {
37
+ [part~="tooltip"][data-placed] {
38
38
  opacity: 1;
39
39
  scale: 1;
40
40
  }
41
41
 
42
- [part="arrow"] {
42
+ [part~="arrow"] {
43
43
  background-color: var(--tooltip-background-color, var(--helix-color-surface-inverse));
44
44
 
45
45
  block-size: var(--tooltip-arrow-size, 0.5rem);
@@ -48,68 +48,52 @@ position: absolute;
48
48
  rotate: 45deg;
49
49
  }
50
50
 
51
- :host([material="glass"]) [part="tooltip"],
52
- :host([material="glass"]) [part="arrow"] {
51
+ :host([material="glass"]) [part~="tooltip"],
52
+ :host([material="glass"]) [part~="arrow"] {
53
53
  backdrop-filter: var(--tooltip-backdrop, var(--helix-material-backdrop));
54
54
  background-color: var(--tooltip-background-color, var(--helix-material-translucent));
55
55
  }
56
56
 
57
- :host([material="frosted"]) [part="tooltip"],
58
- :host([material="frosted"]) [part="arrow"] {
57
+ :host([material="frosted"]) [part~="tooltip"],
58
+ :host([material="frosted"]) [part~="arrow"] {
59
59
  backdrop-filter: var(--tooltip-backdrop, blur(var(--helix-material-blur-lg)));
60
60
  background-color: var(--tooltip-background-color, var(--helix-material-translucent-strong));
61
61
  }
62
62
 
63
- :host([material="frosted"]) [part="tooltip"],
64
- :host([material="glass"]) [part="tooltip"] {
63
+ :host([material="frosted"]) [part~="tooltip"],
64
+ :host([material="glass"]) [part~="tooltip"] {
65
65
  border: var(--helix-border-thin) solid var(--helix-color-border);
66
66
  color: var(--helix-color-foreground);
67
67
  }
68
68
 
69
- [part="tooltip"][data-placement^="bottom"] [part="arrow"] {
70
- inset-block-start: calc(var(--tooltip-arrow-size, 0.5rem) / -2);
71
- }
72
-
73
- [part="tooltip"][data-placement^="top"] [part="arrow"] {
74
- inset-block-end: calc(var(--tooltip-arrow-size, 0.5rem) / -2);
75
- }
76
-
77
- [part="tooltip"][data-placement^="right"] [part="arrow"] {
78
- inset-inline-start: calc(var(--tooltip-arrow-size, 0.5rem) / -2);
79
- }
80
-
81
- [part="tooltip"][data-placement^="left"] [part="arrow"] {
82
- inset-inline-end: calc(var(--tooltip-arrow-size, 0.5rem) / -2);
83
- }
84
-
85
- [part="tooltip"][data-placement^="top"] {
69
+ [part~="tooltip"][data-placement^="top"] {
86
70
  transform-origin: var(--floating-arrow-x, 50%) 100%;
87
71
  }
88
72
 
89
- [part="tooltip"][data-placement^="bottom"] {
73
+ [part~="tooltip"][data-placement^="bottom"] {
90
74
  transform-origin: var(--floating-arrow-x, 50%) 0;
91
75
  }
92
76
 
93
- [part="tooltip"][data-placement^="left"] {
77
+ [part~="tooltip"][data-placement^="left"] {
94
78
  transform-origin: 100% var(--floating-arrow-y, 50%);
95
79
  }
96
80
 
97
- [part="tooltip"][data-placement^="right"] {
81
+ [part~="tooltip"][data-placement^="right"] {
98
82
  transform-origin: 0 var(--floating-arrow-y, 50%);
99
83
  }
100
84
 
101
- [part="tooltip"]:not(:popover-open) {
85
+ [part~="tooltip"]:not(:popover-open) {
102
86
  display: none;
103
87
  }
104
88
 
105
89
  @media (prefers-reduced-motion: reduce) {
106
90
 
107
- [part="tooltip"] {
91
+ [part~="tooltip"] {
108
92
  scale: 1;
109
93
  transition: none;
110
94
  }
111
95
 
112
- [part="tooltip"][data-placed] {
96
+ [part~="tooltip"][data-placed] {
113
97
  scale: 1;
114
98
  }
115
99
  }
@@ -8,9 +8,10 @@ border-radius: var(--tour-spotlight-radius, var(--helix-radii-md));
8
8
  box-shadow: 0 0 0 100vmax var(--tour-scrim-color, var(--helix-color-overlay));
9
9
  pointer-events: none;
10
10
  position: fixed;
11
+
11
12
  transition:
12
- inset-block-start var(--helix-duration-normal) var(--helix-easing-standard),
13
- inset-inline-start var(--helix-duration-normal) var(--helix-easing-standard),
13
+ left var(--helix-duration-normal) var(--helix-easing-standard),
14
+ top var(--helix-duration-normal) var(--helix-easing-standard),
14
15
  block-size var(--helix-duration-normal) var(--helix-easing-standard),
15
16
  inline-size var(--helix-duration-normal) var(--helix-easing-standard);
16
17
  z-index: var(--helix-layer-overlay);
@@ -43,7 +43,7 @@ justify-content: flex-end;
43
43
  margin-inline-end: auto;
44
44
  }
45
45
 
46
- [part="arrow"] {
46
+ [part~="arrow"] {
47
47
  background-color: var(--tour-surface-color, var(--helix-color-surface-raised));
48
48
 
49
49
  block-size: var(--tour-arrow-size, 0.5rem);
@@ -52,26 +52,22 @@ position: absolute;
52
52
  rotate: 45deg;
53
53
  }
54
54
 
55
- [part="bubble"][data-placement^="bottom"] [part="arrow"] {
56
- border-block-start: var(--helix-border-thin) solid var(--helix-color-border);
57
- border-inline-start: var(--helix-border-thin) solid var(--helix-color-border);
58
- inset-block-start: calc(var(--tour-arrow-size, 0.5rem) / -2);
55
+ [part="bubble"][data-placement^="bottom"] [part~="arrow"] {
56
+ border-left: var(--helix-border-thin) solid var(--helix-color-border);
57
+ border-top: var(--helix-border-thin) solid var(--helix-color-border);
59
58
  }
60
59
 
61
- [part="bubble"][data-placement^="top"] [part="arrow"] {
62
- border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
63
- border-inline-end: var(--helix-border-thin) solid var(--helix-color-border);
64
- inset-block-end: calc(var(--tour-arrow-size, 0.5rem) / -2);
60
+ [part="bubble"][data-placement^="top"] [part~="arrow"] {
61
+ border-bottom: var(--helix-border-thin) solid var(--helix-color-border);
62
+ border-right: var(--helix-border-thin) solid var(--helix-color-border);
65
63
  }
66
64
 
67
- [part="bubble"][data-placement^="right"] [part="arrow"] {
68
- border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
69
- border-inline-start: var(--helix-border-thin) solid var(--helix-color-border);
70
- inset-inline-start: calc(var(--tour-arrow-size, 0.5rem) / -2);
65
+ [part="bubble"][data-placement^="right"] [part~="arrow"] {
66
+ border-bottom: var(--helix-border-thin) solid var(--helix-color-border);
67
+ border-left: var(--helix-border-thin) solid var(--helix-color-border);
71
68
  }
72
69
 
73
- [part="bubble"][data-placement^="left"] [part="arrow"] {
74
- border-block-start: var(--helix-border-thin) solid var(--helix-color-border);
75
- border-inline-end: var(--helix-border-thin) solid var(--helix-color-border);
76
- inset-inline-end: calc(var(--tour-arrow-size, 0.5rem) / -2);
70
+ [part="bubble"][data-placement^="left"] [part~="arrow"] {
71
+ border-right: var(--helix-border-thin) solid var(--helix-color-border);
72
+ border-top: var(--helix-border-thin) solid var(--helix-color-border);
77
73
  }`);
@@ -86,6 +86,10 @@ transform: rotate(-90deg);
86
86
  transition: transform var(--helix-duration-fast) var(--helix-easing-standard);
87
87
  }
88
88
 
89
+ :host(:dir(rtl)) [part="toggle"] {
90
+ transform: rotate(90deg);
91
+ }
92
+
89
93
  :host(:state(open)) [part="toggle"] {
90
94
  transform: rotate(0deg);
91
95
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.31.0",
4
+ "version": "0.33.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -47,14 +47,14 @@
47
47
  },
48
48
  "bugs": "https://github.com/project-fusion/fusion/issues",
49
49
  "dependencies": {
50
- "@fusion.dev/helix-core": "0.31.0",
51
- "@fusion.dev/helix-headless": "0.31.0",
52
- "@fusion.dev/helix-styles": "0.31.0"
50
+ "@fusion.dev/helix-core": "0.33.0",
51
+ "@fusion.dev/helix-headless": "0.33.0",
52
+ "@fusion.dev/helix-styles": "0.33.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@custom-elements-manifest/analyzer": "^0.11.0",
56
- "@fusion.dev/helix-cem": "0.31.0",
57
- "@fusion.dev/helix-testing": "0.31.0",
56
+ "@fusion.dev/helix-cem": "0.33.0",
57
+ "@fusion.dev/helix-testing": "0.33.0",
58
58
  "@fusion.dev/scripts": "0.0.0-dev",
59
59
  "@happy-dom/global-registrator": "^20.0.0",
60
60
  "@lit-labs/ssr": "^4.1.0",