@warp-ds/elements 2.9.1-next.2 → 2.9.1-next.4

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 (168) hide show
  1. package/dist/custom-elements.json +91 -262
  2. package/dist/docs/affix/affix.md +9 -10
  3. package/dist/docs/affix/api.md +9 -10
  4. package/dist/docs/alert/alert.md +4 -2
  5. package/dist/docs/alert/api.md +4 -2
  6. package/dist/docs/attention/api.md +21 -16
  7. package/dist/docs/attention/attention.md +21 -16
  8. package/dist/docs/badge/api.md +5 -6
  9. package/dist/docs/badge/badge.md +5 -6
  10. package/dist/docs/box/api.md +3 -4
  11. package/dist/docs/box/box.md +3 -4
  12. package/dist/docs/breadcrumbs/accessibility.md +46 -0
  13. package/dist/docs/breadcrumbs/api.md +8 -8
  14. package/dist/docs/breadcrumbs/breadcrumbs.md +127 -9
  15. package/dist/docs/breadcrumbs/examples.md +35 -0
  16. package/dist/docs/breadcrumbs/usage.md +36 -0
  17. package/dist/docs/button/api.md +15 -13
  18. package/dist/docs/button/button.md +15 -13
  19. package/dist/docs/card/api.md +5 -6
  20. package/dist/docs/card/card.md +5 -6
  21. package/dist/docs/combobox/api.md +18 -19
  22. package/dist/docs/combobox/combobox.md +18 -19
  23. package/dist/docs/datepicker/api.md +38 -39
  24. package/dist/docs/datepicker/datepicker.md +38 -39
  25. package/dist/docs/expandable/api.md +11 -12
  26. package/dist/docs/expandable/expandable.md +11 -12
  27. package/dist/docs/link/api.md +8 -6
  28. package/dist/docs/link/link.md +8 -6
  29. package/dist/docs/page-indicator/api.md +7 -8
  30. package/dist/docs/page-indicator/page-indicator.md +7 -8
  31. package/dist/docs/pagination/api.md +17 -9
  32. package/dist/docs/pagination/pagination.md +17 -9
  33. package/dist/docs/pill/api.md +30 -17
  34. package/dist/docs/pill/pill.md +30 -17
  35. package/dist/docs/select/api.md +17 -9
  36. package/dist/docs/select/select.md +17 -9
  37. package/dist/docs/slider/api.md +37 -116
  38. package/dist/docs/slider/examples.md +331 -0
  39. package/dist/docs/slider/slider.md +378 -118
  40. package/dist/docs/slider/usage.md +10 -0
  41. package/dist/docs/slider-thumb/api.md +26 -79
  42. package/dist/docs/slider-thumb/slider-thumb.md +26 -81
  43. package/dist/docs/step/api.md +3 -4
  44. package/dist/docs/step/step.md +3 -4
  45. package/dist/docs/step-indicator/api.md +3 -4
  46. package/dist/docs/step-indicator/step-indicator.md +3 -4
  47. package/dist/docs/switch/api.md +13 -5
  48. package/dist/docs/switch/switch.md +13 -5
  49. package/dist/docs/tab/api.md +9 -62
  50. package/dist/docs/tab/tab.md +9 -70
  51. package/dist/docs/tab-panel/api.md +7 -11
  52. package/dist/docs/tab-panel/tab-panel.md +7 -19
  53. package/dist/docs/tabs/accessibility.md +11 -0
  54. package/dist/docs/tabs/api.md +10 -18
  55. package/dist/docs/tabs/examples.md +68 -0
  56. package/dist/docs/tabs/tabs.md +97 -20
  57. package/dist/docs/tabs/usage.md +8 -0
  58. package/dist/docs/textarea/api.md +15 -16
  59. package/dist/docs/textarea/textarea.md +15 -16
  60. package/dist/docs/textfield/api.md +14 -15
  61. package/dist/docs/textfield/textfield.md +14 -15
  62. package/dist/index.d.ts +124 -242
  63. package/dist/packages/affix/affix.js +11 -12
  64. package/dist/packages/affix/affix.js.map +4 -4
  65. package/dist/packages/alert/alert.d.ts +1 -1
  66. package/dist/packages/alert/alert.js.map +1 -1
  67. package/dist/packages/attention/attention.d.ts +3 -2
  68. package/dist/packages/attention/attention.js +27 -28
  69. package/dist/packages/attention/attention.js.map +4 -4
  70. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +7 -1
  71. package/dist/packages/breadcrumbs/breadcrumbs.js +7 -8
  72. package/dist/packages/breadcrumbs/breadcrumbs.js.map +4 -4
  73. package/dist/packages/button/button.d.ts +4 -2
  74. package/dist/packages/button/button.js +14 -15
  75. package/dist/packages/button/button.js.map +4 -4
  76. package/dist/packages/card/card.js +8 -9
  77. package/dist/packages/card/card.js.map +4 -4
  78. package/dist/packages/checkbox/checkbox.d.ts +2 -0
  79. package/dist/packages/checkbox-group/checkbox-group.d.ts +2 -0
  80. package/dist/packages/checkbox-group/checkbox-group.js +15 -16
  81. package/dist/packages/checkbox-group/checkbox-group.js.map +4 -4
  82. package/dist/packages/checkbox-group/locales/da/messages.mjs +1 -1
  83. package/dist/packages/checkbox-group/locales/en/messages.mjs +1 -1
  84. package/dist/packages/checkbox-group/locales/fi/messages.mjs +1 -1
  85. package/dist/packages/checkbox-group/locales/nb/messages.mjs +1 -1
  86. package/dist/packages/checkbox-group/locales/sv/messages.mjs +1 -1
  87. package/dist/packages/combobox/combobox.js +13 -14
  88. package/dist/packages/combobox/combobox.js.map +4 -4
  89. package/dist/packages/combobox/locales/da/messages.mjs +1 -1
  90. package/dist/packages/combobox/locales/en/messages.mjs +1 -1
  91. package/dist/packages/combobox/locales/fi/messages.mjs +1 -1
  92. package/dist/packages/combobox/locales/nb/messages.mjs +1 -1
  93. package/dist/packages/combobox/locales/sv/messages.mjs +1 -1
  94. package/dist/packages/datepicker/datepicker.d.ts +2 -0
  95. package/dist/packages/datepicker/datepicker.js +51 -52
  96. package/dist/packages/datepicker/datepicker.js.map +4 -4
  97. package/dist/packages/datepicker/locales/da/messages.mjs +1 -1
  98. package/dist/packages/datepicker/locales/en/messages.mjs +1 -1
  99. package/dist/packages/datepicker/locales/fi/messages.mjs +1 -1
  100. package/dist/packages/datepicker/locales/nb/messages.mjs +1 -1
  101. package/dist/packages/datepicker/locales/sv/messages.mjs +1 -1
  102. package/dist/packages/link/link.d.ts +2 -0
  103. package/dist/packages/modal-header/modal-header.js +13 -14
  104. package/dist/packages/modal-header/modal-header.js.map +4 -4
  105. package/dist/packages/page-indicator/page-indicator.js +7 -8
  106. package/dist/packages/page-indicator/page-indicator.js.map +4 -4
  107. package/dist/packages/pagination/locales/da/messages.mjs +1 -1
  108. package/dist/packages/pagination/locales/en/messages.mjs +1 -1
  109. package/dist/packages/pagination/locales/fi/messages.mjs +1 -1
  110. package/dist/packages/pagination/locales/nb/messages.mjs +1 -1
  111. package/dist/packages/pagination/locales/sv/messages.mjs +1 -1
  112. package/dist/packages/pagination/pagination.js +31 -32
  113. package/dist/packages/pagination/pagination.js.map +4 -4
  114. package/dist/packages/pagination/pagination.test.js +38 -0
  115. package/dist/packages/pill/pill.js +11 -12
  116. package/dist/packages/pill/pill.js.map +4 -4
  117. package/dist/packages/radio/radio.d.ts +2 -0
  118. package/dist/packages/radio-group/radio-group.d.ts +2 -0
  119. package/dist/packages/radio-group/radio-group.js +17 -18
  120. package/dist/packages/radio-group/radio-group.js.map +4 -4
  121. package/dist/packages/select/select.js +19 -20
  122. package/dist/packages/select/select.js.map +4 -4
  123. package/dist/packages/slider/locales/da/messages.mjs +1 -1
  124. package/dist/packages/slider/locales/en/messages.mjs +1 -1
  125. package/dist/packages/slider/locales/fi/messages.mjs +1 -1
  126. package/dist/packages/slider/locales/nb/messages.mjs +1 -1
  127. package/dist/packages/slider/locales/sv/messages.mjs +1 -1
  128. package/dist/packages/slider/slider.d.ts +36 -45
  129. package/dist/packages/slider/slider.js +22 -23
  130. package/dist/packages/slider/slider.js.map +4 -4
  131. package/dist/packages/slider-thumb/slider-thumb.d.ts +41 -31
  132. package/dist/packages/slider-thumb/slider-thumb.js +33 -34
  133. package/dist/packages/slider-thumb/slider-thumb.js.map +4 -4
  134. package/dist/packages/step/locales/da/messages.mjs +1 -1
  135. package/dist/packages/step/locales/en/messages.mjs +1 -1
  136. package/dist/packages/step/locales/fi/messages.mjs +1 -1
  137. package/dist/packages/step/locales/nb/messages.mjs +1 -1
  138. package/dist/packages/step/locales/sv/messages.mjs +1 -1
  139. package/dist/packages/step/step.js +11 -12
  140. package/dist/packages/step/step.js.map +4 -4
  141. package/dist/packages/switch/switch.d.ts +2 -0
  142. package/dist/packages/tab/tab.d.ts +31 -24
  143. package/dist/packages/tab/tab.js +3 -3
  144. package/dist/packages/tab/tab.js.map +2 -2
  145. package/dist/packages/tab-panel/tab-panel.d.ts +9 -8
  146. package/dist/packages/tab-panel/tab-panel.js +3 -3
  147. package/dist/packages/tab-panel/tab-panel.js.map +2 -2
  148. package/dist/packages/tabs/index.d.ts +1 -0
  149. package/dist/packages/tabs/index.js +0 -1
  150. package/dist/packages/tabs/react.d.ts +4 -3
  151. package/dist/packages/tabs/tabs.d.ts +9 -3
  152. package/dist/packages/tabs/tabs.js +1 -1
  153. package/dist/packages/tabs/tabs.js.map +3 -3
  154. package/dist/packages/tabs/tabs.react.stories.d.ts +2 -2
  155. package/dist/packages/textarea/textarea.d.ts +2 -0
  156. package/dist/packages/textarea/textarea.js +20 -21
  157. package/dist/packages/textarea/textarea.js.map +4 -4
  158. package/dist/packages/textfield/textfield.d.ts +2 -0
  159. package/dist/packages/toast/toast.js +13 -14
  160. package/dist/packages/toast/toast.js.map +4 -4
  161. package/dist/web-types.json +206 -98
  162. package/package.json +20 -19
  163. package/dist/docs/tab/accessibility.md +0 -1
  164. package/dist/docs/tab/examples.md +0 -1
  165. package/dist/docs/tab/usage.md +0 -1
  166. package/dist/docs/tab-panel/accessibility.md +0 -1
  167. package/dist/docs/tab-panel/examples.md +0 -1
  168. package/dist/docs/tab-panel/usage.md +0 -1
@@ -4,84 +4,380 @@
4
4
 
5
5
  Parent component for sliders (both single and range sliders). Used in combination with a `<w-slider-thumb>`.
6
6
 
7
- [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-slider-and-range-slider--docs)
8
-
9
7
  ## Usage
10
8
 
9
+ A slider consists of two custom elements that work together:
10
+
11
+ - `<w-slider>` - A container that creates a `<fieldset>` and coordinates shared state and attributes.
12
+ - `<w-slider-thumb>` - The `<input type="range">`, tooltip and text field for each slider in the range (from and to values).
13
+
14
+ Sliders come in two main variants:
15
+
16
+ - Single slider with one thumb and one input field.
17
+ - Range slider with two thumbs and input fields.
18
+
11
19
  ## Accessibility
12
20
 
13
21
  ## Examples
14
22
 
15
- ## API Documentation
23
+ ### Single slider
24
+
25
+ <elements-example>
26
+
27
+ ```html
28
+ <form id="audio">
29
+ <w-slider label="Volume" min="0" max="100">
30
+ <w-slider-thumb name="volume"></w-slider-thumb>
31
+ </w-slider>
32
+ </form>
33
+ ```
34
+
35
+ </elements-example>
36
+
37
+ ### Range slider
38
+
39
+ <elements-example>
40
+
41
+ ```html
42
+ <w-slider label="Range" min="0" max="100">
43
+ <w-slider-thumb
44
+ slot="from"
45
+ aria-label="From value"
46
+ name="from"
47
+ ></w-slider-thumb>
48
+ <w-slider-thumb
49
+ slot="to"
50
+ aria-label="To value"
51
+ name="to"
52
+ ></w-slider-thumb>
53
+ </w-slider>
54
+ ```
55
+
56
+ </elements-example>
57
+
58
+ ### Open ended range slider
59
+
60
+ An open ended range slider covers a case where you want to offer a selection in a common range of values, but allow values outside of that range.
61
+
62
+ In the example below the case is production year. The edges of the open ended range slider are taken to mean "anything before 1950" and "anything after 2025". This is indicated by an empty string value (`""`).
63
+
64
+ Users can also choose to enter values into the input field that are outside the range of the slider, for example `1932` or `2027`.
65
+
66
+ <elements-example>
67
+
68
+ ```html
69
+ <form id="openended">
70
+ <w-slider label="Production year" min="1950" max="2025" open-ended>
71
+ <w-slider-thumb slot="from" name="from-year"></w-slider-thumb>
72
+ <w-slider-thumb slot="to" name="to-year"></w-slider-thumb>
73
+ </w-slider>
74
+ </form>
75
+ <script>
76
+ const openEndedSlider = document.querySelector("w-slider");
77
+
78
+ openEndedSlider.labelFormatter = function (slot) {
79
+ if (slot === "from") {
80
+ return "Before 1950";
81
+ }
82
+ return "2025+";
83
+ };
84
+ openEndedSlider.valueFormatter = function (value, slot) {
85
+ if (slot === "from" && value === "") {
86
+ return "Min";
87
+ }
88
+ if (slot === "to" && value === "") {
89
+ return "Max";
90
+ }
91
+ return value;
92
+ };
93
+
94
+ document.forms["openended"].addEventListener("input", function () {
95
+ const formData = new FormData(this);
96
+ const from = formData.get("from-year");
97
+ const to = formData.get("to-year");
98
+ });
99
+ </script>
100
+ ```
101
+
102
+ </elements-example>
103
+
104
+ ### Suffix in the input field
105
+
106
+ You can set a `suffix` on `<w-slider>` and have it apply to any input field in the component.
107
+
108
+ <elements-example>
109
+
110
+ ```html
111
+ <w-slider
112
+ label="Apartment size"
113
+ min="0"
114
+ max="250"
115
+ suffix="${suffix}"
116
+ data-testid="sqm"
117
+ >
118
+ <w-slider-thumb
119
+ slot="from"
120
+ aria-label="From size"
121
+ name="from"
122
+ ></w-slider-thumb>
123
+ <w-slider-thumb
124
+ slot="to"
125
+ aria-label="To size"
126
+ name="to"
127
+ ></w-slider-thumb>
128
+ </w-slider>
129
+ ```
130
+
131
+ </elements-example>
132
+
133
+ ### Number formatter
134
+
135
+ If you need to format numbers, use the [`valueFormatter`](#valueformatter) and [`labelFormatter`](#labelFormatter) properties.
136
+
137
+ <elements-example>
138
+
139
+ ```html
140
+ <w-slider
141
+ label="Price"
142
+ min="0"
143
+ max="250000"
144
+ suffix="${suffix}"
145
+ data-testid="currency"
146
+ >
147
+ <w-slider-thumb
148
+ slot="from"
149
+ aria-label="From price"
150
+ name="from"
151
+ ></w-slider-thumb>
152
+ <w-slider-thumb
153
+ slot="to"
154
+ aria-label="To price"
155
+ name="to"
156
+ ></w-slider-thumb>
157
+ </w-slider>
158
+ <script type="module">
159
+ const numberFormatter = window.getNumberFormatter(
160
+ "${locale}",
161
+ ).format;
162
+ const currencySlider = document.querySelector(
163
+ 'w-slider[data-testid="currency"]',
164
+ );
165
+ currencySlider.valueFormatter = numberFormatter;
166
+ currencySlider.labelFormatter = (slot) => {
167
+ if (slot === "from") return "0";
168
+ return numberFormatter("250000");
169
+ };
170
+ </script>
171
+ ```
172
+
173
+ </elements-example>
174
+
175
+ ### Steps
176
+
177
+ Sets the [`step` HTML attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/step) on the inputs.
178
+
179
+ <elements-example>
180
+
181
+ ```html
182
+ <w-slider label="Single" step="${step}" min="0" max="100">
183
+ <w-slider-thumb name="value"></w-slider-thumb>
184
+ </w-slider>
185
+ ```
186
+
187
+ </elements-example>
188
+
189
+ ### Marks
190
+
191
+ Show tick markers along the slider. Only works with a single slider.
192
+
193
+ <elements-example>
194
+
195
+ ```html
196
+ <w-slider
197
+ label="Single"
198
+ min="0"
199
+ max="100"
200
+ step="5"
201
+ markers="5"
202
+ >
203
+ <w-slider-thumb name="value"></w-slider-thumb>
204
+ </w-slider>
205
+ ```
206
+
207
+ </elements-example>
208
+
209
+ ### With help text
210
+
211
+ <elements-example>
212
+
213
+ ```html
214
+ <w-slider
215
+ label="Model year"
216
+ min="1950"
217
+ max="2025"
218
+ help-text="Model year of the car"
219
+ >
220
+ <w-slider-thumb slot="from" name="from"></w-slider-thumb>
221
+ <w-slider-thumb slot="to" name="to"></w-slider-thumb>
222
+ </w-slider>
223
+ ```
224
+
225
+ </elements-example>
226
+
227
+ ### With validation error
228
+
229
+ <elements-example>
230
+
231
+ ```html
232
+ <w-slider
233
+ label="Model year"
234
+ min="1950"
235
+ max="2025"
236
+ error="Something is wrong and this should help you solve the problem"
237
+ invalid
238
+ >
239
+ <w-slider-thumb slot="from" name="from"></w-slider-thumb>
240
+ <w-slider-thumb slot="to" name="to"></w-slider-thumb>
241
+ </w-slider>
242
+ ```
243
+
244
+ </elements-example>
245
+
246
+ ### Visually hidden labels
247
+
248
+ <elements-example>
249
+
250
+ ```html
251
+ <w-slider
252
+ min="1950"
253
+ max="2025"
254
+ help-text="Model year of the car"
255
+ >
256
+ <legend class="sr-only" slot="label">Model year</legend>
257
+ <w-slider-thumb slot="from" name="from"></w-slider-thumb>
258
+ <w-slider-thumb slot="to" name="to"></w-slider-thumb>
259
+ </w-slider>
260
+ ```
261
+
262
+ </elements-example>
263
+
264
+
265
+ ### Hidden min and max value labels
266
+
267
+ Give the component a label formatter and always return the empty string.
268
+
269
+ <elements-example>
270
+
271
+ ```html
272
+
273
+ <w-slider
274
+ min="1950"
275
+ max="2025"
276
+ help-text="Model year of the car"
277
+ data-testid="hidden-minmax-label"
278
+ >
279
+ <legend class="sr-only" slot="label">Model year</legend>
280
+ <w-slider-thumb slot="from" name="from"></w-slider-thumb>
281
+ <w-slider-thumb slot="to" name="to"></w-slider-thumb>
282
+ </w-slider>
283
+ <script>
284
+ const hiddenMinMaxSlider = document.querySelector(
285
+ 'w-slider[data-testid="hidden-minmax-label"]',
286
+ );
287
+ hiddenMinMaxSlider.labelFormatter = () => "";
288
+ </script>
289
+ ```
290
+
291
+ </elements-example>
292
+
293
+ ### Visually hiden text field
294
+
295
+ The text field doubles as a visualization of the exact value, which is difficult to see on a slider. If you visually hide the text field with the `hidden-textfield` attribute always make sure to show the value some place, unless the exact value is irrellevant.
296
+
297
+ <elements-example>
298
+
299
+ ```html
300
+ <output class="text-xs">
301
+ <span class="font-bold">Distance:</span>
302
+ <span id="distance-value"></span>
303
+ </output>
304
+ <form name="map">
305
+ <w-slider min="0" max="20" hidden-textfield data-testid="map-radius">
306
+ <legend class="sr-only" slot="label">Location filter radius</legend>
307
+ <w-slider-thumb name="distance"></w-slider-thumb>
308
+ </w-slider>
309
+ </form>
310
+ <script>
311
+ const radiusSteps = [
312
+ 200, 300, 400, 500, 700, 1000, 1500, 2000, 3000, 5000, 7000, 10000,
313
+ 20000, 30000, 50000, 75000, 100000, 200000, 300000, 400000, 500000,
314
+ ];
315
+ const mapRadiusSlider = document.querySelector(
316
+ 'w-slider[data-testid="map-radius"]',
317
+ );
318
+ const formatter = window.getNumberFormatter("${locale}");
319
+ function formatDistance(value) {
320
+ const index = Number.parseInt(value);
321
+ const numValue = radiusSteps[index];
322
+
323
+ let formattedValue = "";
324
+
325
+ if (numValue < 1000) {
326
+ // Use non-breaking space here
327
+ formattedValue = formatter.format(numValue) + " m";
328
+ } else {
329
+ formattedValue = formatter.format(numValue / 1000) + " km";
330
+ }
331
+ return formattedValue;
332
+ };
333
+ mapRadiusSlider.labelFormatter = (slot) => {
334
+ if (slot === "from") {
335
+ return formatDistance("0");
336
+ }
337
+ return formatDistance(String(radiusSteps.length - 1));
338
+ };
339
+ mapRadiusSlider.valueFormatter = (value) => {
340
+ const formattedValue = formatDistance(value);
341
+ document.getElementById("distance-value").innerText = formattedValue;
342
+ return formattedValue;
343
+ };
344
+
345
+ document.forms["map"].addEventListener("input", function () {
346
+ const formData = new FormData(this);
347
+ const distance = formData.get("distance");
348
+ });
349
+ </script>
350
+ ```
351
+
352
+ </elements-example>
353
+
354
+ ## `<w-slider>` API
355
+
356
+ Unless otherwise noted all properties are HTML attributes (as opposed to JavaScript object properties).
16
357
 
17
358
  ### Properties
18
359
 
19
360
  | Name | Type | Default | Summary |
20
361
  |-|-|-|-|
21
- | _hasInternalError | `boolean` | `false` | - |
22
- | _invalidMessage | `string` | `''` | - |
23
- | _showError | `boolean` | `false` | - |
24
- | _tabbableElements | `Array<HTMLElement>` | `[]` | - |
25
- | componentHasError | `boolean` | `-` | - |
26
362
  | disabled | `boolean` | `false` | - |
27
- | edgeMax | `unknown` | `-` | - |
28
- | edgeMin | `unknown` | `-` | - |
29
- | error | `string` | `-` | - |
30
- | errorText | `string` | `-` | - |
31
- | fieldset | `HTMLFieldSetElement` | `-` | - |
32
- | helpText | `string` | `-` | - |
33
- | hiddenTextfield | `boolean` | `false` | - |
34
- | invalid | `boolean` | `false` | - |
363
+ | error | `string` | `-` | Validation error text, if any |
364
+ | help-text | `string` | `-` | Additional description to show below the fieldset |
365
+ | hidden-textfield | `boolean` | `false` | Should only be used in special cases |
366
+ | invalid | `boolean` | `false` | Sets the form fields and fieldset in an invalid state |
35
367
  | label | `string` | `-` | The slider fieldset label. Required for proper accessibility. |
36
- | labelFormatter | `(slot: SliderSlot) => string` | `-` | Formatter for the min and max labels below the range. |
368
+ | labelFormatter (JS only) | `(slot: SliderSlot) => string` | `-` | Formatter for the min and max labels below the range. |
37
369
  | markers | `number` | `-` | Pass a value similar to step to create visual markers at that interval |
38
- | max | `string` | `-` | - |
39
- | min | `string` | `-` | - |
40
- | openEnded | `boolean` | `false` | Whether or not to allow values outside the range such as "Before 1950" and "2025+". |
41
- | required | `boolean` | `false` | Ensures a child slider thumb has a value before allowing the containing form to submit. |
42
- | shadowRootOptions | `object` | `{ ...LitElement.shadowRootOptions, delegatesFocus: true, }` | - |
43
- | step | `number` | `-` | - |
44
- | suffix | `string` | `-` | Suffix used in text input fields and for the min and max values of the slider. |
45
- | tooltipFormatter | `(value: string, slot: SliderSlot) => string` | `-` | Replaces valueFormatter for the tooltip. Use in open-ended sliders to show for example "300+ hk" instead of "Max" in the tooltip. |
46
- | valueFormatter | `(value: string, slot: SliderSlot) => string` | `-` | Formatter for the tooltip and input mask values. |
370
+ | max | `string` | `100` | The maximum allowed value in the range inputs |
371
+ | min | `string` | `0` | The minimum allowed value in the range inputs |
372
+ | open-ended | `boolean` | `false` | Whether or not to allow values outside the range such as "Before 1950" and "2025+". |
373
+ | required | `boolean` | `false` | Ensures a child slider thumb has a value before allowing the containing form to submit |
374
+ | step | `number` | `-` | ets step on the range input to jump between values when dragging |
375
+ | suffix | `string` | `-` | Suffix used in text input fields and for the min and max values of the slider |
376
+ | tooltipFormatter (JS only) | `(value: string, slot: SliderSlot) => string` | `-` | Overrides valueFormatter for the tooltip. |
377
+ | valueFormatter (JS only) | `(value: string, slot: SliderSlot) => string` | `-` | Formatter for the tooltip and input mask values |
47
378
 
48
379
  ### Property Details
49
380
 
50
- #### _hasInternalError
51
-
52
-
53
-
54
- - Type: `boolean`
55
- - Default: `false`
56
-
57
- #### _invalidMessage
58
-
59
-
60
-
61
- - Type: `string`
62
- - Default: `''`
63
-
64
- #### _showError
65
-
66
-
67
-
68
- - Type: `boolean`
69
- - Default: `false`
70
-
71
- #### _tabbableElements
72
-
73
-
74
-
75
- - Type: `Array<HTMLElement>`
76
- - Default: `[]`
77
-
78
- #### componentHasError
79
-
80
-
81
-
82
- - Type: `boolean`
83
- - Default: `-`
84
-
85
381
  #### disabled
86
382
 
87
383
 
@@ -89,58 +385,30 @@ Parent component for sliders (both single and range sliders). Used in combinatio
89
385
  - Type: `boolean`
90
386
  - Default: `false`
91
387
 
92
- #### edgeMax
93
-
94
-
95
-
96
- - Type: `unknown`
97
- - Default: `-`
98
-
99
- #### edgeMin
100
-
101
-
102
-
103
- - Type: `unknown`
104
- - Default: `-`
105
-
106
388
  #### error
107
389
 
108
-
390
+ Validation error text, if any
109
391
 
110
392
  - Type: `string`
111
393
  - Default: `-`
112
394
 
113
- #### errorText
114
-
115
-
116
-
117
- - Type: `string`
118
- - Default: `-`
119
-
120
- #### fieldset
121
-
122
-
123
-
124
- - Type: `HTMLFieldSetElement`
125
- - Default: `-`
126
-
127
- #### helpText
128
-
395
+ #### help-text
129
396
 
397
+ Additional description to show below the fieldset
130
398
 
131
399
  - Type: `string`
132
400
  - Default: `-`
133
401
 
134
- #### hiddenTextfield
135
-
402
+ #### hidden-textfield
136
403
 
404
+ Should only be used in special cases
137
405
 
138
406
  - Type: `boolean`
139
407
  - Default: `false`
140
408
 
141
409
  #### invalid
142
410
 
143
-
411
+ Sets the form fields and fieldset in an invalid state
144
412
 
145
413
  - Type: `boolean`
146
414
  - Default: `false`
@@ -154,7 +422,7 @@ If you need to display HTML, use the `label` slot instead (f. ex. `<legend class
154
422
  - Type: `string`
155
423
  - Default: `-`
156
424
 
157
- #### labelFormatter
425
+ #### labelFormatter (JS only)
158
426
 
159
427
  Formatter for the min and max labels below the range.
160
428
 
@@ -170,19 +438,19 @@ Pass a value similar to step to create visual markers at that interval
170
438
 
171
439
  #### max
172
440
 
173
-
441
+ The maximum allowed value in the range inputs
174
442
 
175
443
  - Type: `string`
176
- - Default: `-`
444
+ - Default: `100`
177
445
 
178
446
  #### min
179
447
 
180
-
448
+ The minimum allowed value in the range inputs
181
449
 
182
450
  - Type: `string`
183
- - Default: `-`
451
+ - Default: `0`
184
452
 
185
- #### openEnded
453
+ #### open-ended
186
454
 
187
455
  Whether or not to allow values outside the range such as "Before 1950" and "2025+".
188
456
 
@@ -191,46 +459,38 @@ Whether or not to allow values outside the range such as "Before 1950" and "2025
191
459
 
192
460
  #### required
193
461
 
194
- Ensures a child slider thumb has a value before allowing the containing form to submit.
462
+ Ensures a child slider thumb has a value before allowing the containing form to submit
195
463
 
196
464
  - Type: `boolean`
197
465
  - Default: `false`
198
466
 
199
- #### shadowRootOptions
200
-
201
-
202
-
203
- - Type: `object`
204
- - Default: `{ ...LitElement.shadowRootOptions, delegatesFocus: true, }`
205
-
206
467
  #### step
207
468
 
208
-
469
+ ets step on the range input to jump between values when dragging
209
470
 
210
471
  - Type: `number`
211
472
  - Default: `-`
212
473
 
213
474
  #### suffix
214
475
 
215
- Suffix used in text input fields and for the min and max values of the slider.
476
+ Suffix used in text input fields and for the min and max values of the slider
216
477
 
217
478
  - Type: `string`
218
479
  - Default: `-`
219
480
 
220
- #### tooltipFormatter
481
+ #### tooltipFormatter (JS only)
221
482
 
222
- Replaces valueFormatter for the tooltip. Use in open-ended sliders to show for example "300+ hk" instead of "Max" in the tooltip.
483
+ Overrides valueFormatter for the tooltip.
484
+
485
+ Use in open-ended sliders to show for example "300+ hk" instead of "Max" in the tooltip.
223
486
 
224
487
  - Type: `(value: string, slot: SliderSlot) => string`
225
488
  - Default: `-`
226
489
 
227
- #### valueFormatter
490
+ #### valueFormatter (JS only)
228
491
 
229
- Formatter for the tooltip and input mask values.
492
+ Formatter for the tooltip and input mask values
230
493
 
231
494
  - Type: `(value: string, slot: SliderSlot) => string`
232
495
  - Default: `-`
233
496
 
234
- ### Types
235
-
236
- No types documented.
@@ -1 +1,11 @@
1
1
  ## Usage
2
+
3
+ A slider consists of two custom elements that work together:
4
+
5
+ - `<w-slider>` - A container that creates a `<fieldset>` and coordinates shared state and attributes.
6
+ - `<w-slider-thumb>` - The `<input type="range">`, tooltip and text field for each slider in the range (from and to values).
7
+
8
+ Sliders come in two main variants:
9
+
10
+ - Single slider with one thumb and one input field.
11
+ - Range slider with two thumbs and input fields.