@xsynaptic/sonic-ui 0.24.1 → 0.25.1

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 (104) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/README.md +5 -3
  3. package/dist/default/define/region.js +7 -0
  4. package/dist/default/define.js +1 -0
  5. package/dist/default/elements/envelope.js +11 -11
  6. package/dist/default/elements/form-element.js +10 -0
  7. package/dist/default/elements/readout.js +1 -1
  8. package/dist/default/elements/region-layer.js +251 -0
  9. package/dist/default/elements/region.js +157 -0
  10. package/dist/default/elements/sonic-element.js +3 -0
  11. package/dist/default/elements/split.js +2 -2
  12. package/dist/default/elements/toggle.js +2 -2
  13. package/dist/default/elements/value-element.js +7 -3
  14. package/dist/default/elements/value-gestures.js +7 -5
  15. package/dist/default/elements/wave-element.js +12 -3
  16. package/dist/default/elements/waveform.js +38 -2
  17. package/dist/default/elements/wavestrip.js +90 -17
  18. package/dist/default/elements/xy.js +3 -11
  19. package/dist/default/index.js +2 -1
  20. package/dist/default/lib/clock.js +1 -0
  21. package/dist/default/lib/drag-step.js +1 -1
  22. package/dist/default/lib/marker-band.js +40 -29
  23. package/dist/default/lib/region-drag.js +48 -0
  24. package/dist/dev/define/region.d.ts +2 -0
  25. package/dist/dev/define/region.js +8 -0
  26. package/dist/dev/define/region.js.map +1 -0
  27. package/dist/dev/define.d.ts +3 -1
  28. package/dist/dev/define.js +1 -0
  29. package/dist/dev/elements/envelope.js +11 -11
  30. package/dist/dev/elements/envelope.js.map +1 -1
  31. package/dist/dev/elements/form-element.d.ts +1 -0
  32. package/dist/dev/elements/form-element.js +10 -0
  33. package/dist/dev/elements/form-element.js.map +1 -1
  34. package/dist/dev/elements/readout.js +1 -1
  35. package/dist/dev/elements/readout.js.map +1 -1
  36. package/dist/dev/elements/region-layer.js +252 -0
  37. package/dist/dev/elements/region-layer.js.map +1 -0
  38. package/dist/dev/elements/region.d.ts +29 -0
  39. package/dist/dev/elements/region.js +165 -0
  40. package/dist/dev/elements/region.js.map +1 -0
  41. package/dist/dev/elements/sonic-element.d.ts +1 -0
  42. package/dist/dev/elements/sonic-element.js +4 -1
  43. package/dist/dev/elements/sonic-element.js.map +1 -1
  44. package/dist/dev/elements/split.js +2 -2
  45. package/dist/dev/elements/split.js.map +1 -1
  46. package/dist/dev/elements/toggle.js +2 -2
  47. package/dist/dev/elements/toggle.js.map +1 -1
  48. package/dist/dev/elements/value-element.d.ts +3 -1
  49. package/dist/dev/elements/value-element.js +7 -3
  50. package/dist/dev/elements/value-element.js.map +1 -1
  51. package/dist/dev/elements/value-gestures.js +7 -5
  52. package/dist/dev/elements/value-gestures.js.map +1 -1
  53. package/dist/dev/elements/wave-element.d.ts +7 -1
  54. package/dist/dev/elements/wave-element.js +12 -3
  55. package/dist/dev/elements/wave-element.js.map +1 -1
  56. package/dist/dev/elements/waveform.d.ts +7 -0
  57. package/dist/dev/elements/waveform.js +38 -2
  58. package/dist/dev/elements/waveform.js.map +1 -1
  59. package/dist/dev/elements/wavestrip.d.ts +17 -1
  60. package/dist/dev/elements/wavestrip.js +90 -17
  61. package/dist/dev/elements/wavestrip.js.map +1 -1
  62. package/dist/dev/elements/xy.js +3 -11
  63. package/dist/dev/elements/xy.js.map +1 -1
  64. package/dist/dev/index.d.ts +3 -2
  65. package/dist/dev/index.js +2 -1
  66. package/dist/dev/lib/clock.js +1 -0
  67. package/dist/dev/lib/clock.js.map +1 -1
  68. package/dist/dev/lib/drag-step.js +1 -1
  69. package/dist/dev/lib/drag-step.js.map +1 -1
  70. package/dist/dev/lib/marker-band.d.ts +7 -0
  71. package/dist/dev/lib/marker-band.js +40 -29
  72. package/dist/dev/lib/marker-band.js.map +1 -1
  73. package/dist/dev/lib/region-drag.js +49 -0
  74. package/dist/dev/lib/region-drag.js.map +1 -0
  75. package/dist/styles/button.css +12 -4
  76. package/dist/styles/controls.css +1 -0
  77. package/dist/styles/dial.css +35 -18
  78. package/dist/styles/envelope.css +6 -5
  79. package/dist/styles/material/arc.css +2 -2
  80. package/dist/styles/material/cap.css +21 -11
  81. package/dist/styles/material/glass.css +1 -1
  82. package/dist/styles/material/groove.css +3 -3
  83. package/dist/styles/material/keycap.css +2 -2
  84. package/dist/styles/material/lens.css +1 -1
  85. package/dist/styles/material/pane.css +13 -5
  86. package/dist/styles/material/readout.css +4 -3
  87. package/dist/styles/material/{bracket.css → reticle.css} +15 -8
  88. package/dist/styles/material/well.css +2 -2
  89. package/dist/styles/material.css +1 -1
  90. package/dist/styles/meter.css +18 -5
  91. package/dist/styles/number.css +2 -1
  92. package/dist/styles/panel.css +3 -3
  93. package/dist/styles/region.css +88 -0
  94. package/dist/styles/ring.css +2 -1
  95. package/dist/styles/screen.css +7 -5
  96. package/dist/styles/segmented.css +2 -1
  97. package/dist/styles/slider.css +12 -3
  98. package/dist/styles/spectrum.css +9 -1
  99. package/dist/styles/switch.css +3 -2
  100. package/dist/styles/toggle.css +2 -1
  101. package/dist/styles/waveform.css +3 -2
  102. package/dist/styles/wavestrip.css +11 -8
  103. package/dist/styles/xy.css +9 -8
  104. package/package.json +3 -2
@@ -112,7 +112,8 @@
112
112
  container-type: size;
113
113
  touch-action: var(--sonic-touch-action, pan-y);
114
114
  cursor: var(--_sonic-slider-cursor);
115
- user-select: none;
115
+ -webkit-user-select: none;
116
+ user-select: none;
116
117
  transition:
117
118
  --_sonic-slider-groove-hovered var(--_sonic-fade-duration) ease-out
118
119
  var(--_sonic-slider-groove-hover-delay),
@@ -254,7 +255,15 @@
254
255
  var(--_sonic-etch) 0 var(--_sonic-unit),
255
256
  transparent 0 var(--_sonic-slider-notch-pitch)
256
257
  );
257
- mask: linear-gradient(
258
+ -webkit-mask: linear-gradient(
259
+ var(--_sonic-slider-across),
260
+ transparent 15%,
261
+ #000 0 calc(var(--_sonic-slider-notch-mid) - var(--_sonic-slider-notch-lip)),
262
+ transparent 0 calc(var(--_sonic-slider-notch-mid) + var(--_sonic-slider-notch-lip)),
263
+ #000 0 85%,
264
+ transparent 0
265
+ );
266
+ mask: linear-gradient(
258
267
  var(--_sonic-slider-across),
259
268
  transparent 15%,
260
269
  #000 0 calc(var(--_sonic-slider-notch-mid) - var(--_sonic-slider-notch-lip)),
@@ -484,7 +493,7 @@
484
493
  background: var(--_sonic-slider-indicator);
485
494
  border-radius: calc(var(--_sonic-slider-indicator-width) / 2);
486
495
  box-shadow: inset 0 0 calc(0.75 * var(--_sonic-unit))
487
- rgb(from var(--_sonic-shade) r g b / calc(0.55 * var(--_sonic-relief)));
496
+ color-mix(in srgb, var(--_sonic-shade) calc(55% * var(--_sonic-relief)), transparent);
488
497
  }
489
498
 
490
499
  [orientation='vertical'] > .sonic-slider > .sonic-slider-cap {
@@ -85,7 +85,8 @@
85
85
 
86
86
  /* The canvas's backing size would otherwise feed an intrinsically sized parent */
87
87
  contain: size;
88
- user-select: none;
88
+ -webkit-user-select: none;
89
+ user-select: none;
89
90
  }
90
91
 
91
92
  [fill] > .sonic-spectrum,
@@ -94,9 +95,16 @@
94
95
  }
95
96
 
96
97
  .sonic-spectrum-canvas {
98
+ --_sonic-spectrum-corner: max(
99
+ 0px,
100
+ var(--_sonic-screen-radius, 0px) - var(--_sonic-screen-inset, 0px)
101
+ );
102
+
97
103
  display: block;
98
104
  inline-size: 100%;
99
105
  block-size: 100%;
106
+ border-end-start-radius: var(--_sonic-spectrum-corner);
107
+ border-end-end-radius: var(--_sonic-spectrum-corner);
100
108
  }
101
109
 
102
110
  /* Opaque, since a system highlight carries alpha that would blend the bars into what is behind them */
@@ -60,7 +60,8 @@
60
60
  grid-template: var(--_sonic-switch-size) / var(--_sonic-switch-size);
61
61
  place-items: center;
62
62
  line-height: 1;
63
- user-select: none;
63
+ -webkit-user-select: none;
64
+ user-select: none;
64
65
  transition: --_sonic-switch-at 90ms cubic-bezier(0.4, 0, 0.2, 1);
65
66
  }
66
67
 
@@ -369,7 +370,7 @@
369
370
  calc((var(--_sonic-switch-ball) - var(--_sonic-switch-size)) / 2);
370
371
  box-shadow:
371
372
  inset 0 0 calc(1.5 * var(--_sonic-unit)) calc(0.4 * var(--_sonic-unit))
372
- rgb(from var(--_sonic-shade) r g b / calc(0.3 * var(--_sonic-relief))),
373
+ color-mix(in srgb, var(--_sonic-shade) calc(30% * var(--_sonic-relief)), transparent),
373
374
  0 0 0 var(--_sonic-switch-outline) var(--_sonic-switch-rim),
374
375
  var(--_sonic-focus-shadow);
375
376
  translate: calc(var(--_sonic-switch-along-x) * var(--_sonic-switch-throw))
@@ -105,7 +105,8 @@
105
105
  grid-auto-flow: column;
106
106
  line-height: 1;
107
107
  touch-action: pan-y;
108
- user-select: none;
108
+ -webkit-user-select: none;
109
+ user-select: none;
109
110
  transition:
110
111
  --_sonic-toggle-at 120ms cubic-bezier(0.4, 0, 0.2, 1),
111
112
  --_sonic-toggle-sink var(--_sonic-press-duration) cubic-bezier(0.4, 0, 0.2, 1);
@@ -135,7 +135,7 @@
135
135
  --_sonic-waveform-lit: var(--_sonic-lit);
136
136
  --_sonic-waveform-wave: var(--_sonic-waveform-lit);
137
137
  --_sonic-waveform-shade: var(--_sonic-shade);
138
- --_sonic-waveform-shade-clear: rgb(from var(--_sonic-shade) r g b / 0%);
138
+ --_sonic-waveform-shade-clear: color-mix(in srgb, var(--_sonic-shade) 0%, transparent);
139
139
  --_sonic-waveform-edge-shade: var(--sonic-waveform-edge-shade, 0);
140
140
  --_sonic-waveform-band-opacity: calc(
141
141
  var(--sonic-waveform-band-opacity, 1) * var(--_sonic-waveform-band-dim, 1)
@@ -175,7 +175,8 @@
175
175
  overflow: hidden;
176
176
  touch-action: var(--sonic-touch-action, pan-y);
177
177
  cursor: grab;
178
- user-select: none;
178
+ -webkit-user-select: none;
179
+ user-select: none;
179
180
  box-shadow: var(--_sonic-focus-shadow);
180
181
  }
181
182
 
@@ -123,7 +123,7 @@
123
123
  --_sonic-marker-step: calc(var(--_sonic-marker-size) + var(--_sonic-marker-edge));
124
124
  --_sonic-marker-default: var(--sonic-marker, var(--_sonic-ink));
125
125
  --_sonic-wavestrip-wave: var(
126
- --sonic-wave,
126
+ --sonic-unplayed,
127
127
  color-mix(in oklab, var(--_sonic-ink) 30%, var(--_sonic-unlit))
128
128
  );
129
129
  --_sonic-wavestrip-buffered: var(
@@ -143,8 +143,8 @@
143
143
  container-type: size;
144
144
  touch-action: var(--sonic-touch-action, pan-y);
145
145
  cursor: ew-resize;
146
- user-select: none;
147
- box-shadow: var(--_sonic-focus-shadow);
146
+ -webkit-user-select: none;
147
+ user-select: none;
148
148
  }
149
149
 
150
150
  [fill] > .sonic-wavestrip,
@@ -166,9 +166,10 @@
166
166
  display: block;
167
167
  inline-size: 100%;
168
168
  block-size: 100%;
169
+ box-shadow: var(--_sonic-focus-shadow);
169
170
  }
170
171
 
171
- .sonic-wavestrip-markers {
172
+ :is(.sonic-wavestrip-markers, .sonic-wavestrip-regions) {
172
173
  position: absolute;
173
174
  inset: 0;
174
175
  pointer-events: none;
@@ -193,9 +194,11 @@
193
194
  calc(var(--_sonic-marker-from, 0) * 100% - var(--_sonic-marker-size) / 2);
194
195
  inline-size: var(--_sonic-marker-size);
195
196
  block-size: var(--_sonic-marker-size);
196
- background: var(--_sonic-marker-colour);
197
+ color: var(--_sonic-marker-colour);
198
+ background: var(--_sonic-marker-paint, var(--_sonic-marker-colour));
197
199
  border-radius: 50%;
198
- box-shadow: 0 0 0 var(--_sonic-marker-edge) var(--sonic-wavestrip-marker-edge, transparent);
200
+ box-shadow: 0 0 0 var(--_sonic-marker-edge)
201
+ var(--_sonic-marker-paint, var(--sonic-wavestrip-marker-edge, transparent));
199
202
  }
200
203
 
201
204
  .sonic-wavestrip-region {
@@ -240,8 +243,8 @@
240
243
  }
241
244
 
242
245
  .sonic-wavestrip-marker {
243
- background: var(--_sonic-marker-colour);
244
- box-shadow: 0 0 0 var(--_sonic-marker-edge) Canvas;
246
+ background: var(--_sonic-marker-paint, var(--_sonic-marker-colour));
247
+ box-shadow: 0 0 0 var(--_sonic-marker-edge) var(--_sonic-marker-paint, Canvas);
245
248
  }
246
249
 
247
250
  .sonic-wavestrip-region {
@@ -43,7 +43,8 @@
43
43
  container-type: size;
44
44
  touch-action: none;
45
45
  cursor: crosshair;
46
- user-select: none;
46
+ -webkit-user-select: none;
47
+ user-select: none;
47
48
  }
48
49
 
49
50
  :disabled > .sonic-xy {
@@ -84,12 +85,12 @@
84
85
  transparent
85
86
  calc(
86
87
  var(--_sonic-xy-x-low) * var(--_sonic-xy-travel-x) + var(--_sonic-xy-puck) / 2 *
87
- sign(var(--_sonic-xy-x-low))
88
+ clamp(0, var(--_sonic-xy-x-low) * 100000, 1)
88
89
  ),
89
90
  var(--_sonic-xy-lit) 0
90
91
  calc(
91
92
  var(--_sonic-xy-x-high) * var(--_sonic-xy-travel-x) + var(--_sonic-xy-puck) / 2 *
92
- (2 - sign(1 - var(--_sonic-xy-x-high)))
93
+ (2 - clamp(0, (1 - var(--_sonic-xy-x-high)) * 100000, 1))
93
94
  ),
94
95
  transparent 0
95
96
  ),
@@ -109,19 +110,19 @@
109
110
  transparent
110
111
  calc(
111
112
  var(--_sonic-xy-y-low) * var(--_sonic-xy-travel-y) + var(--_sonic-xy-puck) / 2 *
112
- sign(var(--_sonic-xy-y-low))
113
+ clamp(0, var(--_sonic-xy-y-low) * 100000, 1)
113
114
  ),
114
115
  var(--_sonic-xy-lit) 0
115
116
  calc(
116
117
  var(--_sonic-xy-y-high) * var(--_sonic-xy-travel-y) + var(--_sonic-xy-puck) / 2 *
117
- (2 - sign(1 - var(--_sonic-xy-y-high)))
118
+ (2 - clamp(0, (1 - var(--_sonic-xy-y-high)) * 100000, 1))
118
119
  ),
119
120
  transparent 0
120
121
  ),
121
122
  var(--_sonic-unlit);
122
123
  }
123
124
 
124
- :is(.sonic-xy-bracket, .sonic-xy-puck) {
125
+ :is(.sonic-xy-reticle, .sonic-xy-puck) {
125
126
  position: absolute;
126
127
  inset: auto auto calc(var(--_sonic-xy-y, 0) * var(--_sonic-xy-travel-y))
127
128
  calc(var(--_sonic-xy-x, 0) * var(--_sonic-xy-travel-x));
@@ -130,8 +131,8 @@
130
131
  border-radius: 50%;
131
132
  }
132
133
 
133
- .sonic-xy-bracket {
134
- --_sonic-bracket-size: var(--_sonic-xy-puck);
134
+ .sonic-xy-reticle {
135
+ --_sonic-reticle-size: var(--_sonic-xy-puck);
135
136
  }
136
137
 
137
138
  .sonic-xy-puck {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsynaptic/sonic-ui",
3
- "version": "0.24.1",
3
+ "version": "0.25.1",
4
4
  "description": "Native custom elements for audio interfaces, skinned with CSS custom properties",
5
5
  "keywords": [
6
6
  "custom-elements",
@@ -58,6 +58,7 @@
58
58
  "./meter.css": "./dist/styles/meter.css",
59
59
  "./number.css": "./dist/styles/number.css",
60
60
  "./panel.css": "./dist/styles/panel.css",
61
+ "./region.css": "./dist/styles/region.css",
61
62
  "./ring.css": "./dist/styles/ring.css",
62
63
  "./screen.css": "./dist/styles/screen.css",
63
64
  "./segmented.css": "./dist/styles/segmented.css",
@@ -81,7 +82,7 @@
81
82
  "typescript": "^6.0.3"
82
83
  },
83
84
  "scripts": {
84
- "build": "tsdown && node ../../scripts/lower-sheets.ts",
85
+ "build": "tsdown && node ../../scripts/compile-sheets.ts",
85
86
  "check-types": "tsc --noEmit"
86
87
  }
87
88
  }