slexkit 0.3.2 → 0.3.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/dist/slexkit.js CHANGED
@@ -1753,7 +1753,7 @@ ${parseSource}
1753
1753
  var parseSlexKitDsl = parseSlexSource;
1754
1754
 
1755
1755
  // src/version.ts
1756
- var SLEXKIT_VERSION = "0.3.2";
1756
+ var SLEXKIT_VERSION = "0.3.3";
1757
1757
  var SLEX_PROTOCOL_VERSION = "0.1";
1758
1758
  var SLEXKIT_COMPONENTS_VERSION = SLEXKIT_VERSION;
1759
1759
  function getSlexKitInfo() {
@@ -12160,7 +12160,7 @@ function Row($$anchor, $$props) {
12160
12160
  }
12161
12161
 
12162
12162
  // src/components/svelte/input/Slider.svelte
12163
- var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <input type="range" class="slex-slider"/></div>`);
12163
+ var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <div class="slex-slider-control"><span class="slex-slider-track" aria-hidden="true"></span> <input type="range" class="slex-slider"/></div></div>`);
12164
12164
  function Slider($$anchor, $$props) {
12165
12165
  push($$props, true);
12166
12166
  let p = state(proxy({}));
@@ -12260,30 +12260,32 @@ function Slider($$anchor, $$props) {
12260
12260
  }
12261
12261
  reset(span_2);
12262
12262
  reset(div_1);
12263
- var input_1 = sibling(div_1, 2);
12263
+ var div_2 = sibling(div_1, 2);
12264
+ var input_1 = sibling(child(div_2), 2);
12264
12265
  remove_input_defaults(input_1);
12266
+ reset(div_2);
12265
12267
  reset(div);
12266
12268
  template_effect(($0, $1, $2, $3, $4, $5, $6, $7, $8) => {
12267
12269
  set_attribute2(div, "data-orientation", $0);
12268
12270
  set_text(text_1, $1);
12269
12271
  set_text(text_2, $2);
12270
- set_attribute2(input_1, "min", $3);
12271
- set_attribute2(input_1, "max", $4);
12272
- set_attribute2(input_1, "step", $5);
12273
- set_value(input_1, $6);
12272
+ set_style(div_2, $3);
12273
+ set_attribute2(input_1, "min", $4);
12274
+ set_attribute2(input_1, "max", $5);
12275
+ set_attribute2(input_1, "step", $6);
12276
+ set_value(input_1, $7);
12274
12277
  input_1.disabled = !!get2(p).disabled;
12275
- set_attribute2(input_1, "aria-label", $7);
12276
- set_style(input_1, $8);
12278
+ set_attribute2(input_1, "aria-label", $8);
12277
12279
  }, [
12278
12280
  () => text2(get2(p).orientation, "horizontal"),
12279
12281
  () => text2(get2(p).label ?? $$props.componentName),
12280
12282
  () => text2(get2(value) ?? 0),
12283
+ () => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`,
12281
12284
  () => Number(get2(p).min ?? 0),
12282
12285
  () => Number(get2(p).max ?? 100),
12283
12286
  () => Number(get2(p).step ?? 1),
12284
12287
  () => Number(get2(value) ?? 0),
12285
- () => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName),
12286
- () => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`
12288
+ () => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName)
12287
12289
  ]);
12288
12290
  delegated("pointerdown", input_1, grabSlider);
12289
12291
  delegated("input", input_1, (event2) => choose(Number(event2.target.value)));
@@ -1,6 +1,6 @@
1
- export declare const SLEXKIT_VERSION = "0.3.2";
1
+ export declare const SLEXKIT_VERSION = "0.3.3";
2
2
  export declare const SLEX_PROTOCOL_VERSION = "0.1";
3
- export declare const SLEXKIT_COMPONENTS_VERSION = "0.3.2";
3
+ export declare const SLEXKIT_COMPONENTS_VERSION = "0.3.3";
4
4
  export declare function getSlexKitInfo(): {
5
5
  version: string;
6
6
  protocolVersion: string;
@@ -11156,7 +11156,7 @@ ${pad}}`;
11156
11156
  }
11157
11157
 
11158
11158
  // src/components/svelte/input/Slider.svelte
11159
- var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <input type="range" class="slex-slider"/></div>`);
11159
+ var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <div class="slex-slider-control"><span class="slex-slider-track" aria-hidden="true"></span> <input type="range" class="slex-slider"/></div></div>`);
11160
11160
  function Slider($$anchor, $$props) {
11161
11161
  push($$props, true);
11162
11162
  let p = state(proxy({}));
@@ -11256,30 +11256,32 @@ ${pad}}`;
11256
11256
  }
11257
11257
  reset(span_2);
11258
11258
  reset(div_1);
11259
- var input_1 = sibling(div_1, 2);
11259
+ var div_2 = sibling(div_1, 2);
11260
+ var input_1 = sibling(child(div_2), 2);
11260
11261
  remove_input_defaults(input_1);
11262
+ reset(div_2);
11261
11263
  reset(div);
11262
11264
  template_effect(($0, $1, $2, $3, $4, $5, $6, $7, $8) => {
11263
11265
  set_attribute2(div, "data-orientation", $0);
11264
11266
  set_text(text_1, $1);
11265
11267
  set_text(text_2, $2);
11266
- set_attribute2(input_1, "min", $3);
11267
- set_attribute2(input_1, "max", $4);
11268
- set_attribute2(input_1, "step", $5);
11269
- set_value(input_1, $6);
11268
+ set_style(div_2, $3);
11269
+ set_attribute2(input_1, "min", $4);
11270
+ set_attribute2(input_1, "max", $5);
11271
+ set_attribute2(input_1, "step", $6);
11272
+ set_value(input_1, $7);
11270
11273
  input_1.disabled = !!get2(p).disabled;
11271
- set_attribute2(input_1, "aria-label", $7);
11272
- set_style(input_1, $8);
11274
+ set_attribute2(input_1, "aria-label", $8);
11273
11275
  }, [
11274
11276
  () => text2(get2(p).orientation, "horizontal"),
11275
11277
  () => text2(get2(p).label ?? $$props.componentName),
11276
11278
  () => text2(get2(value) ?? 0),
11279
+ () => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`,
11277
11280
  () => Number(get2(p).min ?? 0),
11278
11281
  () => Number(get2(p).max ?? 100),
11279
11282
  () => Number(get2(p).step ?? 1),
11280
11283
  () => Number(get2(value) ?? 0),
11281
- () => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName),
11282
- () => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`
11284
+ () => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName)
11283
11285
  ]);
11284
11286
  delegated("pointerdown", input_1, grabSlider);
11285
11287
  delegated("input", input_1, (event2) => choose(Number(event2.target.value)));
@@ -1856,7 +1856,7 @@ ${parseSource}
1856
1856
  var parseSlexKitDsl = parseSlexSource;
1857
1857
 
1858
1858
  // src/version.ts
1859
- var SLEXKIT_VERSION = "0.3.2";
1859
+ var SLEXKIT_VERSION = "0.3.3";
1860
1860
  var SLEX_PROTOCOL_VERSION = "0.1";
1861
1861
  var SLEXKIT_COMPONENTS_VERSION = SLEXKIT_VERSION;
1862
1862
  function getSlexKitInfo() {
@@ -12263,7 +12263,7 @@ ${component_stack}
12263
12263
  }
12264
12264
 
12265
12265
  // src/components/svelte/input/Slider.svelte
12266
- var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <input type="range" class="slex-slider"/></div>`);
12266
+ var root5 = from_html(`<div class="slex-slider-field"><div class="slex-slider-label"><span class="slex-slider-label-text"><!> <span> </span></span> <span class="slex-slider-value"> <!></span></div> <div class="slex-slider-control"><span class="slex-slider-track" aria-hidden="true"></span> <input type="range" class="slex-slider"/></div></div>`);
12267
12267
  function Slider($$anchor, $$props) {
12268
12268
  push($$props, true);
12269
12269
  let p = state(proxy({}));
@@ -12363,30 +12363,32 @@ ${component_stack}
12363
12363
  }
12364
12364
  reset(span_2);
12365
12365
  reset(div_1);
12366
- var input_1 = sibling(div_1, 2);
12366
+ var div_2 = sibling(div_1, 2);
12367
+ var input_1 = sibling(child(div_2), 2);
12367
12368
  remove_input_defaults(input_1);
12369
+ reset(div_2);
12368
12370
  reset(div);
12369
12371
  template_effect(($0, $1, $2, $3, $4, $5, $6, $7, $8) => {
12370
12372
  set_attribute2(div, "data-orientation", $0);
12371
12373
  set_text(text_1, $1);
12372
12374
  set_text(text_2, $2);
12373
- set_attribute2(input_1, "min", $3);
12374
- set_attribute2(input_1, "max", $4);
12375
- set_attribute2(input_1, "step", $5);
12376
- set_value(input_1, $6);
12375
+ set_style(div_2, $3);
12376
+ set_attribute2(input_1, "min", $4);
12377
+ set_attribute2(input_1, "max", $5);
12378
+ set_attribute2(input_1, "step", $6);
12379
+ set_value(input_1, $7);
12377
12380
  input_1.disabled = !!get2(p).disabled;
12378
- set_attribute2(input_1, "aria-label", $7);
12379
- set_style(input_1, $8);
12381
+ set_attribute2(input_1, "aria-label", $8);
12380
12382
  }, [
12381
12383
  () => text2(get2(p).orientation, "horizontal"),
12382
12384
  () => text2(get2(p).label ?? $$props.componentName),
12383
12385
  () => text2(get2(value) ?? 0),
12386
+ () => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`,
12384
12387
  () => Number(get2(p).min ?? 0),
12385
12388
  () => Number(get2(p).max ?? 100),
12386
12389
  () => Number(get2(p).step ?? 1),
12387
12390
  () => Number(get2(value) ?? 0),
12388
- () => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName),
12389
- () => `--slex-slider-progress: ${sliderProgress(get2(value), get2(p).min, get2(p).max)}`
12391
+ () => text2(get2(p)["aria-label"] ?? get2(p).ariaLabel ?? get2(p).label ?? $$props.componentName)
12390
12392
  ]);
12391
12393
  delegated("pointerdown", input_1, grabSlider);
12392
12394
  delegated("input", input_1, (event2) => choose(Number(event2.target.value)));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slexkit",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "Zero-build, Markdown-friendly reactive UI runtime for AI output.",
5
5
  "author": "SlexKit contributors",
6
6
  "type": "module",
@@ -80,17 +80,19 @@
80
80
  </span>
81
81
  <span class="slex-slider-value">{text(value ?? 0)}{#if p.unit} {text(p.unit)}{/if}</span>
82
82
  </div>
83
- <input
84
- type="range"
85
- class="slex-slider"
86
- min={Number(p.min ?? 0)}
87
- max={Number(p.max ?? 100)}
88
- step={Number(p.step ?? 1)}
89
- value={Number(value ?? 0)}
90
- disabled={!!p.disabled}
91
- aria-label={text(p["aria-label"] ?? p.ariaLabel ?? p.label ?? componentName)}
92
- style={`--slex-slider-progress: ${sliderProgress(value, p.min, p.max)}`}
93
- onpointerdown={grabSlider}
94
- oninput={(event) => choose(Number((event.target as HTMLInputElement).value))}
95
- />
83
+ <div class="slex-slider-control" style={`--slex-slider-progress: ${sliderProgress(value, p.min, p.max)}`}>
84
+ <span class="slex-slider-track" aria-hidden="true"></span>
85
+ <input
86
+ type="range"
87
+ class="slex-slider"
88
+ min={Number(p.min ?? 0)}
89
+ max={Number(p.max ?? 100)}
90
+ step={Number(p.step ?? 1)}
91
+ value={Number(value ?? 0)}
92
+ disabled={!!p.disabled}
93
+ aria-label={text(p["aria-label"] ?? p.ariaLabel ?? p.label ?? componentName)}
94
+ onpointerdown={grabSlider}
95
+ oninput={(event) => choose(Number((event.target as HTMLInputElement).value))}
96
+ />
97
+ </div>
96
98
  </div>
@@ -30,22 +30,71 @@
30
30
  font-weight: 600;
31
31
  }
32
32
 
33
+ .slex-slider-control {
34
+ position: relative;
35
+ box-sizing: border-box;
36
+ width: 100%;
37
+ height: 1rem;
38
+ }
39
+
40
+ .slex-slider-track {
41
+ position: absolute;
42
+ inset-inline: 0;
43
+ top: 50%;
44
+ height: 0.5rem;
45
+ border-radius: 999px;
46
+ background: linear-gradient(
47
+ to right,
48
+ var(--primary) 0%,
49
+ var(--primary) var(--slex-slider-progress, 0%),
50
+ var(--secondary) var(--slex-slider-progress, 0%),
51
+ var(--secondary) 100%
52
+ );
53
+ pointer-events: none;
54
+ transform: translateY(-50%);
55
+ }
56
+
33
57
  .slex-slider {
58
+ position: relative;
59
+ z-index: 1;
34
60
  box-sizing: border-box;
61
+ display: block;
35
62
  width: 100%;
36
63
  height: 1rem;
64
+ margin: 0;
37
65
  padding: 0;
38
66
  border: 0;
39
67
  border-radius: 999px;
40
68
  -webkit-appearance: none;
41
69
  appearance: none;
42
70
  background: transparent;
71
+ color: transparent;
43
72
  accent-color: var(--primary);
44
73
  cursor: pointer;
45
74
  overflow: visible;
46
75
  transition: box-shadow 150ms ease, filter 150ms ease;
47
76
  }
48
77
 
78
+ .slexkit-root .slex-slider-control input.slex-slider {
79
+ position: relative;
80
+ z-index: 1;
81
+ box-sizing: border-box;
82
+ display: block;
83
+ width: 100%;
84
+ height: 1rem;
85
+ min-height: 0;
86
+ margin: 0;
87
+ padding: 0;
88
+ border: 0;
89
+ border-radius: 999px;
90
+ box-shadow: none;
91
+ background: transparent;
92
+ color: transparent;
93
+ -webkit-appearance: none;
94
+ appearance: none;
95
+ overflow: visible;
96
+ }
97
+
49
98
  .slex-slider:focus-visible {
50
99
  outline: 2px solid var(--ring);
51
100
  outline-offset: 4px;
@@ -55,7 +104,7 @@
55
104
  box-sizing: border-box;
56
105
  width: 1rem;
57
106
  height: 1rem;
58
- margin-top: -0.25rem;
107
+ margin-top: 0;
59
108
  border: 2px solid var(--primary);
60
109
  border-radius: 999px;
61
110
  background-color: var(--background);
@@ -69,16 +118,10 @@
69
118
  .slex-slider::-webkit-slider-runnable-track {
70
119
  box-sizing: border-box;
71
120
  width: 100%;
72
- height: 0.5rem;
121
+ height: 1rem;
73
122
  border: 0;
74
123
  border-radius: 999px;
75
- background: linear-gradient(
76
- to right,
77
- var(--primary) 0%,
78
- var(--primary) var(--slex-slider-progress, 0%),
79
- var(--secondary) var(--slex-slider-progress, 0%),
80
- var(--secondary) 100%
81
- );
124
+ background: transparent;
82
125
  }
83
126
 
84
127
  .slex-slider::-moz-range-thumb {
@@ -114,16 +157,16 @@
114
157
  }
115
158
 
116
159
  .slex-slider::-moz-range-track {
117
- height: 0.5rem;
160
+ height: 1rem;
118
161
  border: 0;
119
162
  border-radius: 999px;
120
- background: var(--secondary);
163
+ background: transparent;
121
164
  }
122
165
 
123
166
  .slex-slider::-moz-range-progress {
124
- height: 0.5rem;
167
+ height: 1rem;
125
168
  border-radius: 999px;
126
- background: var(--primary);
169
+ background: transparent;
127
170
  }
128
171
 
129
172
  .slex-slider-label-text {
@@ -56,11 +56,40 @@
56
56
  transition: border-color 150ms ease, box-shadow 150ms ease;
57
57
  }
58
58
 
59
+ .slexkit-root .slex-input-control input.slex-input {
60
+ box-sizing: border-box;
61
+ display: block;
62
+ flex: 1 1 auto;
63
+ width: 100%;
64
+ min-width: 0;
65
+ min-height: 2.5625rem;
66
+ height: auto;
67
+ margin: 0;
68
+ padding: 0.5rem 0.75rem;
69
+ border: 1px solid var(--input);
70
+ border-radius: var(--radius);
71
+ box-shadow: none;
72
+ background: var(--background);
73
+ background-clip: padding-box;
74
+ color: var(--foreground);
75
+ font-family: inherit;
76
+ font-size: 0.875rem;
77
+ line-height: 1.5;
78
+ outline: none;
79
+ -webkit-appearance: none;
80
+ appearance: none;
81
+ }
82
+
59
83
  .slex-input-control[data-has-unit="true"] .slex-input {
60
84
  border-top-right-radius: 0;
61
85
  border-bottom-right-radius: 0;
62
86
  }
63
87
 
88
+ .slexkit-root .slex-input-control[data-has-unit="true"] input.slex-input {
89
+ border-top-right-radius: 0;
90
+ border-bottom-right-radius: 0;
91
+ }
92
+
64
93
  .slex-input-unit {
65
94
  box-sizing: border-box;
66
95
  display: inline-flex;