@xsynaptic/sonic-ui 0.25.1 → 0.26.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 (80) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -1
  3. package/dist/default/elements/button.js +3 -0
  4. package/dist/default/elements/dial.js +3 -0
  5. package/dist/default/elements/envelope.js +3 -0
  6. package/dist/default/elements/meter.js +3 -0
  7. package/dist/default/elements/number.js +3 -0
  8. package/dist/default/elements/radio-group.js +4 -1
  9. package/dist/default/elements/region-layer.js +3 -1
  10. package/dist/default/elements/region.js +5 -1
  11. package/dist/default/elements/slider.js +3 -0
  12. package/dist/default/elements/sonic-element.js +4 -9
  13. package/dist/default/elements/toggle.js +2 -2
  14. package/dist/default/elements/value-element.js +15 -1
  15. package/dist/default/elements/wave-element.js +3 -0
  16. package/dist/default/elements/xy.js +3 -0
  17. package/dist/default/lib/canvas-surface.js +22 -1
  18. package/dist/default/lib/key-press.js +2 -2
  19. package/dist/dev/elements/button.d.ts +1 -0
  20. package/dist/dev/elements/button.js +3 -0
  21. package/dist/dev/elements/button.js.map +1 -1
  22. package/dist/dev/elements/dial.d.ts +1 -0
  23. package/dist/dev/elements/dial.js +3 -0
  24. package/dist/dev/elements/dial.js.map +1 -1
  25. package/dist/dev/elements/envelope.d.ts +1 -0
  26. package/dist/dev/elements/envelope.js +3 -0
  27. package/dist/dev/elements/envelope.js.map +1 -1
  28. package/dist/dev/elements/meter.d.ts +1 -0
  29. package/dist/dev/elements/meter.js +3 -0
  30. package/dist/dev/elements/meter.js.map +1 -1
  31. package/dist/dev/elements/number.d.ts +1 -0
  32. package/dist/dev/elements/number.js +3 -0
  33. package/dist/dev/elements/number.js.map +1 -1
  34. package/dist/dev/elements/radio-group.d.ts +1 -0
  35. package/dist/dev/elements/radio-group.js +4 -1
  36. package/dist/dev/elements/radio-group.js.map +1 -1
  37. package/dist/dev/elements/region-layer.js +3 -1
  38. package/dist/dev/elements/region-layer.js.map +1 -1
  39. package/dist/dev/elements/region.d.ts +1 -0
  40. package/dist/dev/elements/region.js +5 -1
  41. package/dist/dev/elements/region.js.map +1 -1
  42. package/dist/dev/elements/slider.d.ts +1 -0
  43. package/dist/dev/elements/slider.js +3 -0
  44. package/dist/dev/elements/slider.js.map +1 -1
  45. package/dist/dev/elements/sonic-element.d.ts +1 -0
  46. package/dist/dev/elements/sonic-element.js +4 -9
  47. package/dist/dev/elements/sonic-element.js.map +1 -1
  48. package/dist/dev/elements/toggle.js +2 -2
  49. package/dist/dev/elements/toggle.js.map +1 -1
  50. package/dist/dev/elements/value-element.js +15 -1
  51. package/dist/dev/elements/value-element.js.map +1 -1
  52. package/dist/dev/elements/wave-element.d.ts +1 -0
  53. package/dist/dev/elements/wave-element.js +3 -0
  54. package/dist/dev/elements/wave-element.js.map +1 -1
  55. package/dist/dev/elements/xy.d.ts +1 -0
  56. package/dist/dev/elements/xy.js +3 -0
  57. package/dist/dev/elements/xy.js.map +1 -1
  58. package/dist/dev/lib/canvas-surface.js +22 -1
  59. package/dist/dev/lib/canvas-surface.js.map +1 -1
  60. package/dist/dev/lib/key-press.js +2 -2
  61. package/dist/dev/lib/key-press.js.map +1 -1
  62. package/dist/styles/button.css +11 -9
  63. package/dist/styles/dial.css +6 -6
  64. package/dist/styles/envelope.css +6 -0
  65. package/dist/styles/led.css +8 -8
  66. package/dist/styles/material/cap.css +13 -2
  67. package/dist/styles/material/pane.css +7 -1
  68. package/dist/styles/material/readout.css +10 -2
  69. package/dist/styles/material/reticle.css +2 -2
  70. package/dist/styles/meter.css +11 -11
  71. package/dist/styles/number.css +1 -1
  72. package/dist/styles/region.css +6 -0
  73. package/dist/styles/segmented.css +3 -3
  74. package/dist/styles/slider.css +12 -12
  75. package/dist/styles/switch.css +6 -0
  76. package/dist/styles/toggle.css +3 -3
  77. package/dist/styles/waveform.css +7 -1
  78. package/dist/styles/wavestrip.css +6 -0
  79. package/dist/styles/xy.css +15 -3
  80. package/package.json +1 -1
@@ -128,7 +128,7 @@
128
128
  }
129
129
 
130
130
  :where(:not(:disabled)) > .sonic-slider:focus-visible,
131
- :state(dragging) > .sonic-slider {
131
+ .sonic-slider[data-sonic-dragging] {
132
132
  --_sonic-slider-groove-held: 1;
133
133
  }
134
134
 
@@ -160,11 +160,11 @@
160
160
  touch-action: var(--sonic-touch-action, pan-x);
161
161
  }
162
162
 
163
- :state(dragging) > .sonic-slider {
163
+ .sonic-slider[data-sonic-dragging] {
164
164
  --_sonic-cap: var(--_sonic-cap-hover);
165
165
  }
166
166
 
167
- :state(springing) > .sonic-slider {
167
+ .sonic-slider[data-sonic-springing] {
168
168
  /* A damped spring with 10% bounce, sampled into `linear()` */
169
169
  transition: --_sonic-slider-value 200ms
170
170
  linear(
@@ -214,7 +214,7 @@
214
214
 
215
215
  @media (prefers-reduced-motion: reduce) {
216
216
 
217
- :state(springing) > .sonic-slider {
217
+ .sonic-slider[data-sonic-springing] {
218
218
  transition: none;
219
219
  }
220
220
  }
@@ -232,7 +232,7 @@
232
232
  --_sonic-slider-scale-band: calc(var(--_sonic-slider-size) * var(--_sonic-slider-scale-ratio));
233
233
  }
234
234
 
235
- [groove-press='none']:not(:state(dragging)) > .sonic-slider {
235
+ [groove-press='none'] > .sonic-slider:not([data-sonic-dragging]) {
236
236
  cursor: default;
237
237
  }
238
238
 
@@ -383,7 +383,7 @@
383
383
  display: none;
384
384
  }
385
385
 
386
- :state(modulated) > .sonic-slider > .sonic-slider-modulation {
386
+ .sonic-slider[data-sonic-modulated] > .sonic-slider-modulation {
387
387
  --_sonic-slider-live-low: min(
388
388
  var(--_sonic-slider-value, 0),
389
389
  var(--_sonic-slider-modulation-value, 0)
@@ -416,31 +416,31 @@
416
416
  background: color-mix(in oklab, var(--_sonic-slider-modulation) 50%, transparent);
417
417
  }
418
418
 
419
- :is(:state(modulated) > .sonic-slider > .sonic-slider-modulation)::before,:is(:state(modulated) > .sonic-slider > .sonic-slider-modulation)::after {
419
+ :is(.sonic-slider[data-sonic-modulated] > .sonic-slider-modulation)::before,:is(.sonic-slider[data-sonic-modulated] > .sonic-slider-modulation)::after {
420
420
  position: absolute;
421
421
  content: '';
422
422
  }
423
423
 
424
- :is(:state(modulated) > .sonic-slider > .sonic-slider-modulation)::before {
424
+ :is(.sonic-slider[data-sonic-modulated] > .sonic-slider-modulation)::before {
425
425
  inset: 0 auto 0 var(--_sonic-slider-live-start);
426
426
  inline-size: var(--_sonic-slider-live-length);
427
427
  background: var(--_sonic-slider-modulation);
428
428
  border-radius: inherit;
429
429
  }
430
430
 
431
- :is(:state(modulated) > .sonic-slider > .sonic-slider-modulation)::after {
431
+ :is(.sonic-slider[data-sonic-modulated] > .sonic-slider-modulation)::after {
432
432
  inset: var(--_sonic-slider-tick-overhang) auto var(--_sonic-slider-tick-overhang)
433
433
  var(--_sonic-slider-tick-start);
434
434
  inline-size: var(--_sonic-unit);
435
435
  background: var(--_sonic-slider-modulation-tick);
436
436
  }
437
- :is(:where([orientation='vertical']):state(modulated) > .sonic-slider > .sonic-slider-modulation)::before {
437
+ :is(:where([orientation='vertical']) > .sonic-slider[data-sonic-modulated] > .sonic-slider-modulation)::before {
438
438
  inset: auto 0 var(--_sonic-slider-live-start);
439
439
  inline-size: auto;
440
440
  block-size: var(--_sonic-slider-live-length);
441
441
  }
442
442
 
443
- :is(:where([orientation='vertical']):state(modulated) > .sonic-slider > .sonic-slider-modulation)::after {
443
+ :is(:where([orientation='vertical']) > .sonic-slider[data-sonic-modulated] > .sonic-slider-modulation)::after {
444
444
  inset: auto var(--_sonic-slider-tick-overhang) var(--_sonic-slider-tick-start);
445
445
  inline-size: auto;
446
446
  block-size: var(--_sonic-unit);
@@ -538,7 +538,7 @@
538
538
  --_sonic-slider-modulation: CanvasText;
539
539
  }
540
540
 
541
- :state(modulated) > .sonic-slider > .sonic-slider-modulation {
541
+ .sonic-slider[data-sonic-modulated] > .sonic-slider-modulation {
542
542
  --_sonic-slider-modulation-tick: CanvasText;
543
543
 
544
544
  background: GrayText;
@@ -12,6 +12,12 @@
12
12
  initial-value: 0;
13
13
  }
14
14
 
15
+ @property --_sonic-switch-outline {
16
+ syntax: '<length>';
17
+ inherits: true;
18
+ initial-value: 1px;
19
+ }
20
+
15
21
  @layer sonic.control {
16
22
  :is(sonic-switch, .sonic-switch) {
17
23
  --_sonic-switch-size: var(--sonic-switch-size, 2rem);
@@ -123,7 +123,7 @@
123
123
  touch-action: pan-x;
124
124
  }
125
125
 
126
- :state(dragging) > .sonic-toggle {
126
+ .sonic-toggle[data-sonic-dragging] {
127
127
  transition: --_sonic-toggle-sink var(--_sonic-press-duration) cubic-bezier(0.4, 0, 0.2, 1);
128
128
  }
129
129
 
@@ -179,7 +179,7 @@
179
179
  }
180
180
 
181
181
  /* Held, never resting: the chosen position's cap stands as proud as any other */
182
- .sonic-toggle:has(> .sonic-toggle-position[data-sonic-pressed]):has(
182
+ .sonic-toggle:has(> .sonic-toggle-position[data-sonic-active]):has(
183
183
  > .sonic-toggle-position:not(:disabled)
184
184
  ) {
185
185
  --_sonic-toggle-sink: calc(var(--_sonic-keycap-depth) / 2);
@@ -438,7 +438,7 @@
438
438
 
439
439
  @media (prefers-reduced-motion: reduce) {
440
440
  .sonic-toggle,
441
- :state(dragging) > .sonic-toggle,
441
+ .sonic-toggle[data-sonic-dragging],
442
442
  .sonic-toggle-well,
443
443
  .sonic-toggle-cap,
444
444
  .sonic-toggle-legend {
@@ -108,6 +108,12 @@
108
108
  initial-value: rgb(200 200 208);
109
109
  }
110
110
 
111
+ @property --_sonic-waveform-line {
112
+ syntax: '<length>';
113
+ inherits: true;
114
+ initial-value: 1px;
115
+ }
116
+
111
117
  @layer sonic.control {
112
118
  :is(sonic-waveform, .sonic-waveform) {
113
119
  --_sonic-waveform-size: var(--sonic-waveform-size, 6rem);
@@ -185,7 +191,7 @@
185
191
  block-size: 100%;
186
192
  }
187
193
 
188
- :state(dragging) > .sonic-waveform {
194
+ .sonic-waveform[data-sonic-dragging] {
189
195
  cursor: grabbing;
190
196
  }
191
197
 
@@ -72,6 +72,12 @@
72
72
  initial-value: 0;
73
73
  }
74
74
 
75
+ @property --_sonic-marker-edge {
76
+ syntax: '<length>';
77
+ inherits: true;
78
+ initial-value: 1px;
79
+ }
80
+
75
81
  @property --_sonic-marker-step {
76
82
  syntax: '<length>';
77
83
  inherits: true;
@@ -6,6 +6,18 @@
6
6
  initial-value: 128px;
7
7
  }
8
8
 
9
+ @property --_sonic-xy-line {
10
+ syntax: '<length>';
11
+ inherits: true;
12
+ initial-value: 1px;
13
+ }
14
+
15
+ @property --_sonic-xy-puck-ring-width {
16
+ syntax: '<length>';
17
+ inherits: true;
18
+ initial-value: 2px;
19
+ }
20
+
9
21
  @layer sonic.control {
10
22
  :is(sonic-xy, .sonic-xy) {
11
23
  --_sonic-xy-size: var(--sonic-xy-size, 8rem);
@@ -165,7 +177,7 @@
165
177
  }
166
178
 
167
179
  @media (hover: hover) {
168
- :not(:disabled, :state(dragging)) > .sonic-xy > .sonic-xy-puck:hover {
180
+ :not(:disabled) > .sonic-xy:where(:not([data-sonic-dragging])) > .sonic-xy-puck:hover {
169
181
  --_sonic-xy-puck-fill: var(--_sonic-xy-puck-lift);
170
182
  }
171
183
  }
@@ -175,7 +187,7 @@
175
187
  --_sonic-xy-puck-ring: var(--_sonic-focus);
176
188
  }
177
189
 
178
- :state(dragging) > .sonic-xy > .sonic-xy-puck {
190
+ .sonic-xy[data-sonic-dragging] > .sonic-xy-puck {
179
191
  --_sonic-xy-puck-glow: color-mix(
180
192
  in oklab,
181
193
  var(--_sonic-xy-lit) calc(30% * var(--_sonic-relief)),
@@ -213,7 +225,7 @@
213
225
  outline-style: none;
214
226
  }
215
227
 
216
- :state(dragging) > .sonic-xy > .sonic-xy-puck {
228
+ .sonic-xy[data-sonic-dragging] > .sonic-xy-puck {
217
229
  --_sonic-xy-puck-fill: Canvas;
218
230
  --_sonic-xy-puck-edge: var(--_sonic-xy-lit);
219
231
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsynaptic/sonic-ui",
3
- "version": "0.25.1",
3
+ "version": "0.26.0",
4
4
  "description": "Native custom elements for audio interfaces, skinned with CSS custom properties",
5
5
  "keywords": [
6
6
  "custom-elements",