@warp-ds/elements 2.9.1-next.4 → 2.9.1-next.6
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/custom-elements.json +25 -20
- package/dist/docs/slider/examples.md +30 -75
- package/dist/docs/slider/slider.md +30 -75
- package/dist/docs/step/api.md +11 -9
- package/dist/docs/step/step.md +11 -15
- package/dist/docs/step-indicator/api.md +4 -4
- package/dist/docs/step-indicator/examples.md +81 -0
- package/dist/docs/step-indicator/step-indicator.md +97 -6
- package/dist/docs/step-indicator/usage.md +12 -0
- package/dist/docs/switch/accessibility.md +2 -0
- package/dist/docs/switch/api.md +11 -17
- package/dist/docs/switch/examples.md +16 -0
- package/dist/docs/switch/switch.md +36 -18
- package/dist/docs/switch/usage.md +6 -0
- package/dist/index.d.ts +64 -56
- package/dist/packages/affix/affix.react.stories.d.ts +3 -1
- package/dist/packages/affix/affix.react.test.d.ts +1 -0
- package/dist/packages/affix/affix.react.test.js +3 -0
- package/dist/packages/affix/react.d.ts +4 -1
- package/dist/packages/affix/react.js +7 -1
- package/dist/packages/attention/attention.react.test.d.ts +1 -0
- package/dist/packages/attention/attention.react.test.js +8 -0
- package/dist/packages/attention/react.d.ts +2 -2
- package/dist/packages/attention/react.js +10 -1
- package/dist/packages/button/button.react.stories.d.ts +8 -2
- package/dist/packages/button/button.react.test.d.ts +1 -0
- package/dist/packages/button/button.react.test.js +16 -0
- package/dist/packages/button/react.d.ts +5 -1
- package/dist/packages/button/react.js +8 -1
- package/dist/packages/checkbox-group/checkbox-group.react.test.d.ts +1 -0
- package/dist/packages/checkbox-group/checkbox-group.react.test.js +5 -0
- package/dist/packages/checkbox-group/react.d.ts +4 -1
- package/dist/packages/checkbox-group/react.js +7 -1
- package/dist/packages/combobox/combobox.react.stories.d.ts +20 -8
- package/dist/packages/combobox/combobox.react.test.d.ts +1 -0
- package/dist/packages/combobox/combobox.react.test.js +9 -0
- package/dist/packages/combobox/react.d.ts +13 -6
- package/dist/packages/combobox/react.js +11 -1
- package/dist/packages/datepicker/datepicker.react.stories.d.ts +18 -10
- package/dist/packages/datepicker/datepicker.react.test.d.ts +1 -0
- package/dist/packages/datepicker/datepicker.react.test.js +7 -0
- package/dist/packages/datepicker/react.d.ts +13 -8
- package/dist/packages/datepicker/react.js +9 -1
- package/dist/packages/expandable/expandable.react.stories.d.ts +12 -2
- package/dist/packages/expandable/expandable.react.test.d.ts +1 -0
- package/dist/packages/expandable/expandable.react.test.js +8 -0
- package/dist/packages/expandable/react.d.ts +7 -1
- package/dist/packages/expandable/react.js +10 -1
- package/dist/packages/link/link.react.stories.d.ts +6 -2
- package/dist/packages/link/link.react.test.d.ts +1 -0
- package/dist/packages/link/link.react.test.js +3 -0
- package/dist/packages/link/react.d.ts +4 -1
- package/dist/packages/link/react.js +7 -1
- package/dist/packages/modal/modal.react.stories.d.ts +10 -6
- package/dist/packages/modal/modal.react.test.d.ts +1 -0
- package/dist/packages/modal/modal.react.test.js +6 -0
- package/dist/packages/modal/react.d.ts +10 -6
- package/dist/packages/modal/react.js +8 -1
- package/dist/packages/modal-header/modal-header.react.test.d.ts +1 -0
- package/dist/packages/modal-header/modal-header.react.test.js +3 -0
- package/dist/packages/modal-header/react.d.ts +7 -4
- package/dist/packages/modal-header/react.js +7 -1
- package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +8 -2
- package/dist/packages/page-indicator/page-indicator.react.test.d.ts +1 -0
- package/dist/packages/page-indicator/page-indicator.react.test.js +6 -0
- package/dist/packages/page-indicator/react.d.ts +5 -1
- package/dist/packages/page-indicator/react.js +8 -1
- package/dist/packages/pagination/pagination.react.stories.d.ts +14 -6
- package/dist/packages/pagination/pagination.react.test.d.ts +1 -0
- package/dist/packages/pagination/pagination.react.test.js +7 -0
- package/dist/packages/pagination/react.d.ts +9 -4
- package/dist/packages/pagination/react.js +9 -1
- package/dist/packages/pill/pill.react.stories.d.ts +20 -8
- package/dist/packages/pill/pill.react.test.d.ts +1 -0
- package/dist/packages/pill/pill.react.test.js +9 -0
- package/dist/packages/pill/react.d.ts +13 -6
- package/dist/packages/pill/react.js +11 -1
- package/dist/packages/radio-group/radio-group.react.test.d.ts +1 -0
- package/dist/packages/radio-group/radio-group.react.test.js +5 -0
- package/dist/packages/radio-group/react.d.ts +9 -6
- package/dist/packages/radio-group/react.js +7 -1
- package/dist/packages/select/react.d.ts +9 -4
- package/dist/packages/select/react.js +9 -1
- package/dist/packages/select/select.react.stories.d.ts +14 -6
- package/dist/packages/select/select.react.test.d.ts +1 -0
- package/dist/packages/select/select.react.test.js +7 -0
- package/dist/packages/slider/react.d.ts +6 -1
- package/dist/packages/slider/react.js +9 -1
- package/dist/packages/slider/slider.react.stories.d.ts +6 -1
- package/dist/packages/slider/slider.react.test.d.ts +1 -0
- package/dist/packages/slider/slider.react.test.js +7 -0
- package/dist/packages/slider-thumb/react.d.ts +8 -5
- package/dist/packages/slider-thumb/react.js +8 -1
- package/dist/packages/slider-thumb/slider-thumb.react.test.d.ts +1 -0
- package/dist/packages/slider-thumb/slider-thumb.react.test.js +6 -0
- package/dist/packages/step/step.d.ts +8 -4
- package/dist/packages/step/step.js.map +2 -2
- package/dist/packages/step-indicator/step-indicator.d.ts +5 -6
- package/dist/packages/step-indicator/step-indicator.js.map +2 -2
- package/dist/packages/switch/switch.d.ts +21 -8
- package/dist/packages/switch/switch.js +1 -1
- package/dist/packages/switch/switch.js.map +2 -2
- package/dist/packages/tab/react.d.ts +9 -6
- package/dist/packages/tab/react.js +7 -1
- package/dist/packages/tab/tab.react.test.d.ts +1 -0
- package/dist/packages/tab/tab.react.test.js +3 -0
- package/dist/packages/textarea/react.d.ts +16 -10
- package/dist/packages/textarea/react.js +10 -1
- package/dist/packages/textarea/textarea.react.stories.d.ts +22 -12
- package/dist/packages/textarea/textarea.react.test.d.ts +1 -0
- package/dist/packages/textarea/textarea.react.test.js +8 -0
- package/dist/packages/textfield/react.d.ts +16 -10
- package/dist/packages/textfield/react.js +10 -1
- package/dist/packages/textfield/textfield.react.stories.d.ts +22 -12
- package/dist/packages/textfield/textfield.react.test.d.ts +1 -0
- package/dist/packages/textfield/textfield.react.test.js +8 -0
- package/dist/tests/react-ssr-attributes.d.ts +8 -0
- package/dist/tests/react-ssr-attributes.js +12 -0
- package/dist/web-types.json +73 -15
- package/package.json +1 -1
- package/dist/docs/step/accessibility.md +0 -1
- package/dist/docs/step/examples.md +0 -1
- package/dist/docs/step/usage.md +0 -1
|
@@ -7219,6 +7219,7 @@
|
|
|
7219
7219
|
"text": "boolean"
|
|
7220
7220
|
},
|
|
7221
7221
|
"default": "false",
|
|
7222
|
+
"description": "Whether this step is active.\n\nThe active step displays a filled indicator.",
|
|
7222
7223
|
"attribute": "active",
|
|
7223
7224
|
"reflects": true
|
|
7224
7225
|
},
|
|
@@ -7229,6 +7230,7 @@
|
|
|
7229
7230
|
"text": "boolean"
|
|
7230
7231
|
},
|
|
7231
7232
|
"default": "false",
|
|
7233
|
+
"description": "Whether this step is completed.\n\nCompleted steps display a checkmark icon and a filled indicator.",
|
|
7232
7234
|
"attribute": "completed",
|
|
7233
7235
|
"reflects": true
|
|
7234
7236
|
},
|
|
@@ -7279,6 +7281,7 @@
|
|
|
7279
7281
|
"text": "boolean"
|
|
7280
7282
|
},
|
|
7281
7283
|
"default": "false",
|
|
7284
|
+
"description": "Whether this step is active.\n\nThe active step displays a filled indicator.",
|
|
7282
7285
|
"fieldName": "active"
|
|
7283
7286
|
},
|
|
7284
7287
|
{
|
|
@@ -7287,6 +7290,7 @@
|
|
|
7287
7290
|
"text": "boolean"
|
|
7288
7291
|
},
|
|
7289
7292
|
"default": "false",
|
|
7293
|
+
"description": "Whether this step is completed.\n\nCompleted steps display a checkmark icon and a filled indicator.",
|
|
7290
7294
|
"fieldName": "completed"
|
|
7291
7295
|
}
|
|
7292
7296
|
],
|
|
@@ -7294,6 +7298,10 @@
|
|
|
7294
7298
|
"name": "LitElement",
|
|
7295
7299
|
"package": "lit"
|
|
7296
7300
|
},
|
|
7301
|
+
"parent": {
|
|
7302
|
+
"name": "w-step-indicator",
|
|
7303
|
+
"description": ""
|
|
7304
|
+
},
|
|
7297
7305
|
"tagName": "w-step",
|
|
7298
7306
|
"customElement": true,
|
|
7299
7307
|
"modulePath": "packages/step/step.ts",
|
|
@@ -7325,7 +7333,7 @@
|
|
|
7325
7333
|
"declarations": [
|
|
7326
7334
|
{
|
|
7327
7335
|
"kind": "class",
|
|
7328
|
-
"description": "Steps are used to show progress through a process or to guide users through a multi-step task
|
|
7336
|
+
"description": "Steps are used to show progress through a process or to guide users through a multi-step task.",
|
|
7329
7337
|
"name": "WarpStepIndicator",
|
|
7330
7338
|
"members": [
|
|
7331
7339
|
{
|
|
@@ -7335,6 +7343,7 @@
|
|
|
7335
7343
|
"text": "boolean"
|
|
7336
7344
|
},
|
|
7337
7345
|
"default": "false",
|
|
7346
|
+
"description": "Display steps horizontally instead of vertically",
|
|
7338
7347
|
"attribute": "horizontal",
|
|
7339
7348
|
"reflects": true
|
|
7340
7349
|
},
|
|
@@ -7345,15 +7354,9 @@
|
|
|
7345
7354
|
"text": "boolean"
|
|
7346
7355
|
},
|
|
7347
7356
|
"default": "false",
|
|
7357
|
+
"description": "Align steps to the right (vertical layout only)",
|
|
7348
7358
|
"attribute": "right",
|
|
7349
7359
|
"reflects": true
|
|
7350
|
-
},
|
|
7351
|
-
{
|
|
7352
|
-
"kind": "method",
|
|
7353
|
-
"name": "updateStepsContext",
|
|
7354
|
-
"type": {
|
|
7355
|
-
"text": "updateStepsContext() => void"
|
|
7356
|
-
}
|
|
7357
7360
|
}
|
|
7358
7361
|
],
|
|
7359
7362
|
"attributes": [
|
|
@@ -7363,6 +7366,7 @@
|
|
|
7363
7366
|
"text": "boolean"
|
|
7364
7367
|
},
|
|
7365
7368
|
"default": "false",
|
|
7369
|
+
"description": "Display steps horizontally instead of vertically",
|
|
7366
7370
|
"fieldName": "horizontal"
|
|
7367
7371
|
},
|
|
7368
7372
|
{
|
|
@@ -7371,6 +7375,7 @@
|
|
|
7371
7375
|
"text": "boolean"
|
|
7372
7376
|
},
|
|
7373
7377
|
"default": "false",
|
|
7378
|
+
"description": "Align steps to the right (vertical layout only)",
|
|
7374
7379
|
"fieldName": "right"
|
|
7375
7380
|
}
|
|
7376
7381
|
],
|
|
@@ -7409,24 +7414,16 @@
|
|
|
7409
7414
|
"declarations": [
|
|
7410
7415
|
{
|
|
7411
7416
|
"kind": "class",
|
|
7412
|
-
"description": "",
|
|
7417
|
+
"description": "The Switch component allows users to toggle between two states.",
|
|
7413
7418
|
"name": "WarpSwitch",
|
|
7414
7419
|
"members": [
|
|
7415
|
-
{
|
|
7416
|
-
"kind": "field",
|
|
7417
|
-
"name": "shadowRootOptions",
|
|
7418
|
-
"type": {
|
|
7419
|
-
"text": "object"
|
|
7420
|
-
},
|
|
7421
|
-
"static": true,
|
|
7422
|
-
"default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
|
|
7423
|
-
},
|
|
7424
7420
|
{
|
|
7425
7421
|
"kind": "field",
|
|
7426
7422
|
"name": "name",
|
|
7427
7423
|
"type": {
|
|
7428
7424
|
"text": "string"
|
|
7429
7425
|
},
|
|
7426
|
+
"description": "Name used when submitting an HTML form.",
|
|
7430
7427
|
"attribute": "name",
|
|
7431
7428
|
"reflects": true
|
|
7432
7429
|
},
|
|
@@ -7436,6 +7433,7 @@
|
|
|
7436
7433
|
"type": {
|
|
7437
7434
|
"text": "string"
|
|
7438
7435
|
},
|
|
7436
|
+
"description": "Value submitted when the switch is checked.\n\nThe component reports `null` as the value in the `change` event when `value` is an empty string.",
|
|
7439
7437
|
"attribute": "value",
|
|
7440
7438
|
"reflects": true
|
|
7441
7439
|
},
|
|
@@ -7446,6 +7444,7 @@
|
|
|
7446
7444
|
"text": "boolean"
|
|
7447
7445
|
},
|
|
7448
7446
|
"default": "false",
|
|
7447
|
+
"description": "Whether the switch is on (checked).",
|
|
7449
7448
|
"attribute": "checked",
|
|
7450
7449
|
"reflects": true
|
|
7451
7450
|
},
|
|
@@ -7456,6 +7455,7 @@
|
|
|
7456
7455
|
"text": "boolean"
|
|
7457
7456
|
},
|
|
7458
7457
|
"default": "false",
|
|
7458
|
+
"description": "Whether the switch is disabled.",
|
|
7459
7459
|
"attribute": "disabled",
|
|
7460
7460
|
"reflects": true
|
|
7461
7461
|
},
|
|
@@ -7485,8 +7485,9 @@
|
|
|
7485
7485
|
{
|
|
7486
7486
|
"name": "change",
|
|
7487
7487
|
"type": {
|
|
7488
|
-
"text": "
|
|
7489
|
-
}
|
|
7488
|
+
"text": "WarpSwitchChangeEvent"
|
|
7489
|
+
},
|
|
7490
|
+
"description": "Dispatched when the switch toggles. Includes boolean `checked` and string/null `value` on `details`."
|
|
7490
7491
|
}
|
|
7491
7492
|
],
|
|
7492
7493
|
"attributes": [
|
|
@@ -7495,6 +7496,7 @@
|
|
|
7495
7496
|
"type": {
|
|
7496
7497
|
"text": "string"
|
|
7497
7498
|
},
|
|
7499
|
+
"description": "Name used when submitting an HTML form.",
|
|
7498
7500
|
"fieldName": "name"
|
|
7499
7501
|
},
|
|
7500
7502
|
{
|
|
@@ -7502,6 +7504,7 @@
|
|
|
7502
7504
|
"type": {
|
|
7503
7505
|
"text": "string"
|
|
7504
7506
|
},
|
|
7507
|
+
"description": "Value submitted when the switch is checked.\n\nThe component reports `null` as the value in the `change` event when `value` is an empty string.",
|
|
7505
7508
|
"fieldName": "value"
|
|
7506
7509
|
},
|
|
7507
7510
|
{
|
|
@@ -7510,6 +7513,7 @@
|
|
|
7510
7513
|
"text": "boolean"
|
|
7511
7514
|
},
|
|
7512
7515
|
"default": "false",
|
|
7516
|
+
"description": "Whether the switch is on (checked).",
|
|
7513
7517
|
"fieldName": "checked"
|
|
7514
7518
|
},
|
|
7515
7519
|
{
|
|
@@ -7518,6 +7522,7 @@
|
|
|
7518
7522
|
"text": "boolean"
|
|
7519
7523
|
},
|
|
7520
7524
|
"default": "false",
|
|
7525
|
+
"description": "Whether the switch is disabled.",
|
|
7521
7526
|
"fieldName": "disabled"
|
|
7522
7527
|
}
|
|
7523
7528
|
],
|
|
@@ -25,11 +25,7 @@
|
|
|
25
25
|
aria-label="From value"
|
|
26
26
|
name="from"
|
|
27
27
|
></w-slider-thumb>
|
|
28
|
-
<w-slider-thumb
|
|
29
|
-
slot="to"
|
|
30
|
-
aria-label="To value"
|
|
31
|
-
name="to"
|
|
32
|
-
></w-slider-thumb>
|
|
28
|
+
<w-slider-thumb slot="to" aria-label="To value" name="to"></w-slider-thumb>
|
|
33
29
|
</w-slider>
|
|
34
30
|
```
|
|
35
31
|
|
|
@@ -47,20 +43,20 @@ Users can also choose to enter values into the input field that are outside the
|
|
|
47
43
|
|
|
48
44
|
```html
|
|
49
45
|
<form id="openended">
|
|
50
|
-
<w-slider label="Production year" min="1950" max="2025" open-ended>
|
|
46
|
+
<w-slider label="Production year" min="1950" max="2025" open-ended data-testid="open-ended">
|
|
51
47
|
<w-slider-thumb slot="from" name="from-year"></w-slider-thumb>
|
|
52
48
|
<w-slider-thumb slot="to" name="to-year"></w-slider-thumb>
|
|
53
49
|
</w-slider>
|
|
54
50
|
</form>
|
|
55
51
|
<script>
|
|
56
|
-
const openEndedSlider = document.querySelector(
|
|
57
|
-
|
|
52
|
+
const openEndedSlider = document.querySelector('w-slider[data-testid="open-ended"]');
|
|
58
53
|
openEndedSlider.labelFormatter = function (slot) {
|
|
59
54
|
if (slot === "from") {
|
|
60
55
|
return "Before 1950";
|
|
61
56
|
}
|
|
62
57
|
return "2025+";
|
|
63
58
|
};
|
|
59
|
+
|
|
64
60
|
openEndedSlider.valueFormatter = function (value, slot) {
|
|
65
61
|
if (slot === "from" && value === "") {
|
|
66
62
|
return "Min";
|
|
@@ -70,13 +66,8 @@ Users can also choose to enter values into the input field that are outside the
|
|
|
70
66
|
}
|
|
71
67
|
return value;
|
|
72
68
|
};
|
|
73
|
-
|
|
74
|
-
document.forms["openended"].addEventListener("input", function () {
|
|
75
|
-
const formData = new FormData(this);
|
|
76
|
-
const from = formData.get("from-year");
|
|
77
|
-
const to = formData.get("to-year");
|
|
78
|
-
});
|
|
79
69
|
</script>
|
|
70
|
+
|
|
80
71
|
```
|
|
81
72
|
|
|
82
73
|
</elements-example>
|
|
@@ -92,8 +83,7 @@ You can set a `suffix` on `<w-slider>` and have it apply to any input field in t
|
|
|
92
83
|
label="Apartment size"
|
|
93
84
|
min="0"
|
|
94
85
|
max="250"
|
|
95
|
-
suffix="
|
|
96
|
-
data-testid="sqm"
|
|
86
|
+
suffix="sqm"
|
|
97
87
|
>
|
|
98
88
|
<w-slider-thumb
|
|
99
89
|
slot="from"
|
|
@@ -114,34 +104,22 @@ You can set a `suffix` on `<w-slider>` and have it apply to any input field in t
|
|
|
114
104
|
|
|
115
105
|
If you need to format numbers, use the [`valueFormatter`](#valueformatter) and [`labelFormatter`](#labelFormatter) properties.
|
|
116
106
|
|
|
117
|
-
<elements-example>
|
|
107
|
+
<elements-example >
|
|
118
108
|
|
|
119
109
|
```html
|
|
120
|
-
<w-slider
|
|
121
|
-
label="Price"
|
|
122
|
-
min="0"
|
|
123
|
-
max="250000"
|
|
124
|
-
suffix="${suffix}"
|
|
125
|
-
data-testid="currency"
|
|
126
|
-
>
|
|
110
|
+
<w-slider label="Price" min="0" max="250000" suffix="kr" data-testid="currency">
|
|
127
111
|
<w-slider-thumb
|
|
128
112
|
slot="from"
|
|
129
113
|
aria-label="From price"
|
|
130
114
|
name="from"
|
|
131
115
|
></w-slider-thumb>
|
|
132
|
-
<w-slider-thumb
|
|
133
|
-
slot="to"
|
|
134
|
-
aria-label="To price"
|
|
135
|
-
name="to"
|
|
136
|
-
></w-slider-thumb>
|
|
116
|
+
<w-slider-thumb slot="to" aria-label="To price" name="to"></w-slider-thumb>
|
|
137
117
|
</w-slider>
|
|
138
|
-
<script
|
|
139
|
-
const numberFormatter =
|
|
140
|
-
|
|
141
|
-
).format;
|
|
142
|
-
const currencySlider = document.querySelector(
|
|
143
|
-
'w-slider[data-testid="currency"]',
|
|
144
|
-
);
|
|
118
|
+
<script>
|
|
119
|
+
const numberFormatter = new Intl.NumberFormat("en", {
|
|
120
|
+
maximumFractionDigits: 0,
|
|
121
|
+
}).format;
|
|
122
|
+
const currencySlider = document.querySelector('w-slider[data-testid="currency"]');
|
|
145
123
|
currencySlider.valueFormatter = numberFormatter;
|
|
146
124
|
currencySlider.labelFormatter = (slot) => {
|
|
147
125
|
if (slot === "from") return "0";
|
|
@@ -159,7 +137,7 @@ Sets the [`step` HTML attribute](https://developer.mozilla.org/en-US/docs/Web/HT
|
|
|
159
137
|
<elements-example>
|
|
160
138
|
|
|
161
139
|
```html
|
|
162
|
-
<w-slider label="Single" step="
|
|
140
|
+
<w-slider label="Single" step="5" min="0" max="100">
|
|
163
141
|
<w-slider-thumb name="value"></w-slider-thumb>
|
|
164
142
|
</w-slider>
|
|
165
143
|
```
|
|
@@ -173,13 +151,7 @@ Show tick markers along the slider. Only works with a single slider.
|
|
|
173
151
|
<elements-example>
|
|
174
152
|
|
|
175
153
|
```html
|
|
176
|
-
<w-slider
|
|
177
|
-
label="Single"
|
|
178
|
-
min="0"
|
|
179
|
-
max="100"
|
|
180
|
-
step="5"
|
|
181
|
-
markers="5"
|
|
182
|
-
>
|
|
154
|
+
<w-slider label="Single" min="0" max="100" step="5" markers="5">
|
|
183
155
|
<w-slider-thumb name="value"></w-slider-thumb>
|
|
184
156
|
</w-slider>
|
|
185
157
|
```
|
|
@@ -228,11 +200,7 @@ Show tick markers along the slider. Only works with a single slider.
|
|
|
228
200
|
<elements-example>
|
|
229
201
|
|
|
230
202
|
```html
|
|
231
|
-
<w-slider
|
|
232
|
-
min="1950"
|
|
233
|
-
max="2025"
|
|
234
|
-
help-text="Model year of the car"
|
|
235
|
-
>
|
|
203
|
+
<w-slider min="1950" max="2025" help-text="Model year of the car">
|
|
236
204
|
<legend class="sr-only" slot="label">Model year</legend>
|
|
237
205
|
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
238
206
|
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
@@ -241,7 +209,6 @@ Show tick markers along the slider. Only works with a single slider.
|
|
|
241
209
|
|
|
242
210
|
</elements-example>
|
|
243
211
|
|
|
244
|
-
|
|
245
212
|
### Hidden min and max value labels
|
|
246
213
|
|
|
247
214
|
Give the component a label formatter and always return the empty string.
|
|
@@ -249,21 +216,13 @@ Give the component a label formatter and always return the empty string.
|
|
|
249
216
|
<elements-example>
|
|
250
217
|
|
|
251
218
|
```html
|
|
252
|
-
|
|
253
|
-
<w-slider
|
|
254
|
-
min="1950"
|
|
255
|
-
max="2025"
|
|
256
|
-
help-text="Model year of the car"
|
|
257
|
-
data-testid="hidden-minmax-label"
|
|
258
|
-
>
|
|
219
|
+
<w-slider min="1950" max="2025" help-text="Model year of the car" data-testid="hidden-minmax-label">
|
|
259
220
|
<legend class="sr-only" slot="label">Model year</legend>
|
|
260
221
|
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
261
222
|
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
262
223
|
</w-slider>
|
|
263
224
|
<script>
|
|
264
|
-
const hiddenMinMaxSlider = document.querySelector(
|
|
265
|
-
'w-slider[data-testid="hidden-minmax-label"]',
|
|
266
|
-
);
|
|
225
|
+
const hiddenMinMaxSlider = document.querySelector('w-slider[data-testid="hidden-minmax-label"]');
|
|
267
226
|
hiddenMinMaxSlider.labelFormatter = () => "";
|
|
268
227
|
</script>
|
|
269
228
|
```
|
|
@@ -279,7 +238,7 @@ The text field doubles as a visualization of the exact value, which is difficult
|
|
|
279
238
|
```html
|
|
280
239
|
<output class="text-xs">
|
|
281
240
|
<span class="font-bold">Distance:</span>
|
|
282
|
-
<span
|
|
241
|
+
<span data-testid="distance-value"></span>
|
|
283
242
|
</output>
|
|
284
243
|
<form name="map">
|
|
285
244
|
<w-slider min="0" max="20" hidden-textfield data-testid="map-radius">
|
|
@@ -288,44 +247,40 @@ The text field doubles as a visualization of the exact value, which is difficult
|
|
|
288
247
|
</w-slider>
|
|
289
248
|
</form>
|
|
290
249
|
<script>
|
|
250
|
+
const mapRadiusSlider = document.querySelector('w-slider[data-testid="map-radius"]');
|
|
251
|
+
|
|
291
252
|
const radiusSteps = [
|
|
292
|
-
200, 300, 400, 500, 700, 1000, 1500, 2000, 3000, 5000, 7000, 10000,
|
|
293
|
-
|
|
253
|
+
200, 300, 400, 500, 700, 1000, 1500, 2000, 3000, 5000, 7000, 10000, 20000,
|
|
254
|
+
30000, 50000, 75000, 100000, 200000, 300000, 400000, 500000,
|
|
294
255
|
];
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
)
|
|
298
|
-
const formatter = window.getNumberFormatter("${locale}");
|
|
299
|
-
function formatDistance(value) {
|
|
256
|
+
const formatter = new Intl.NumberFormat("en", { maximumFractionDigits: 0 });
|
|
257
|
+
|
|
258
|
+
const formatDistance = (value) => {
|
|
300
259
|
const index = Number.parseInt(value);
|
|
301
260
|
const numValue = radiusSteps[index];
|
|
302
261
|
|
|
303
262
|
let formattedValue = "";
|
|
304
263
|
|
|
305
264
|
if (numValue < 1000) {
|
|
306
|
-
// Use non-breaking space here
|
|
307
265
|
formattedValue = formatter.format(numValue) + " m";
|
|
308
266
|
} else {
|
|
309
267
|
formattedValue = formatter.format(numValue / 1000) + " km";
|
|
310
268
|
}
|
|
311
269
|
return formattedValue;
|
|
312
270
|
};
|
|
271
|
+
|
|
313
272
|
mapRadiusSlider.labelFormatter = (slot) => {
|
|
314
273
|
if (slot === "from") {
|
|
315
274
|
return formatDistance("0");
|
|
316
275
|
}
|
|
317
276
|
return formatDistance(String(radiusSteps.length - 1));
|
|
318
277
|
};
|
|
278
|
+
|
|
319
279
|
mapRadiusSlider.valueFormatter = (value) => {
|
|
320
280
|
const formattedValue = formatDistance(value);
|
|
321
|
-
document.
|
|
281
|
+
document.querySelector('[data-testid="distance-value"]').innerText = formattedValue;
|
|
322
282
|
return formattedValue;
|
|
323
283
|
};
|
|
324
|
-
|
|
325
|
-
document.forms["map"].addEventListener("input", function () {
|
|
326
|
-
const formData = new FormData(this);
|
|
327
|
-
const distance = formData.get("distance");
|
|
328
|
-
});
|
|
329
284
|
</script>
|
|
330
285
|
```
|
|
331
286
|
|
|
@@ -45,11 +45,7 @@ Sliders come in two main variants:
|
|
|
45
45
|
aria-label="From value"
|
|
46
46
|
name="from"
|
|
47
47
|
></w-slider-thumb>
|
|
48
|
-
<w-slider-thumb
|
|
49
|
-
slot="to"
|
|
50
|
-
aria-label="To value"
|
|
51
|
-
name="to"
|
|
52
|
-
></w-slider-thumb>
|
|
48
|
+
<w-slider-thumb slot="to" aria-label="To value" name="to"></w-slider-thumb>
|
|
53
49
|
</w-slider>
|
|
54
50
|
```
|
|
55
51
|
|
|
@@ -67,20 +63,20 @@ Users can also choose to enter values into the input field that are outside the
|
|
|
67
63
|
|
|
68
64
|
```html
|
|
69
65
|
<form id="openended">
|
|
70
|
-
<w-slider label="Production year" min="1950" max="2025" open-ended>
|
|
66
|
+
<w-slider label="Production year" min="1950" max="2025" open-ended data-testid="open-ended">
|
|
71
67
|
<w-slider-thumb slot="from" name="from-year"></w-slider-thumb>
|
|
72
68
|
<w-slider-thumb slot="to" name="to-year"></w-slider-thumb>
|
|
73
69
|
</w-slider>
|
|
74
70
|
</form>
|
|
75
71
|
<script>
|
|
76
|
-
const openEndedSlider = document.querySelector(
|
|
77
|
-
|
|
72
|
+
const openEndedSlider = document.querySelector('w-slider[data-testid="open-ended"]');
|
|
78
73
|
openEndedSlider.labelFormatter = function (slot) {
|
|
79
74
|
if (slot === "from") {
|
|
80
75
|
return "Before 1950";
|
|
81
76
|
}
|
|
82
77
|
return "2025+";
|
|
83
78
|
};
|
|
79
|
+
|
|
84
80
|
openEndedSlider.valueFormatter = function (value, slot) {
|
|
85
81
|
if (slot === "from" && value === "") {
|
|
86
82
|
return "Min";
|
|
@@ -90,13 +86,8 @@ Users can also choose to enter values into the input field that are outside the
|
|
|
90
86
|
}
|
|
91
87
|
return value;
|
|
92
88
|
};
|
|
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
89
|
</script>
|
|
90
|
+
|
|
100
91
|
```
|
|
101
92
|
|
|
102
93
|
</elements-example>
|
|
@@ -112,8 +103,7 @@ You can set a `suffix` on `<w-slider>` and have it apply to any input field in t
|
|
|
112
103
|
label="Apartment size"
|
|
113
104
|
min="0"
|
|
114
105
|
max="250"
|
|
115
|
-
suffix="
|
|
116
|
-
data-testid="sqm"
|
|
106
|
+
suffix="sqm"
|
|
117
107
|
>
|
|
118
108
|
<w-slider-thumb
|
|
119
109
|
slot="from"
|
|
@@ -134,34 +124,22 @@ You can set a `suffix` on `<w-slider>` and have it apply to any input field in t
|
|
|
134
124
|
|
|
135
125
|
If you need to format numbers, use the [`valueFormatter`](#valueformatter) and [`labelFormatter`](#labelFormatter) properties.
|
|
136
126
|
|
|
137
|
-
<elements-example>
|
|
127
|
+
<elements-example >
|
|
138
128
|
|
|
139
129
|
```html
|
|
140
|
-
<w-slider
|
|
141
|
-
label="Price"
|
|
142
|
-
min="0"
|
|
143
|
-
max="250000"
|
|
144
|
-
suffix="${suffix}"
|
|
145
|
-
data-testid="currency"
|
|
146
|
-
>
|
|
130
|
+
<w-slider label="Price" min="0" max="250000" suffix="kr" data-testid="currency">
|
|
147
131
|
<w-slider-thumb
|
|
148
132
|
slot="from"
|
|
149
133
|
aria-label="From price"
|
|
150
134
|
name="from"
|
|
151
135
|
></w-slider-thumb>
|
|
152
|
-
<w-slider-thumb
|
|
153
|
-
slot="to"
|
|
154
|
-
aria-label="To price"
|
|
155
|
-
name="to"
|
|
156
|
-
></w-slider-thumb>
|
|
136
|
+
<w-slider-thumb slot="to" aria-label="To price" name="to"></w-slider-thumb>
|
|
157
137
|
</w-slider>
|
|
158
|
-
<script
|
|
159
|
-
const numberFormatter =
|
|
160
|
-
|
|
161
|
-
).format;
|
|
162
|
-
const currencySlider = document.querySelector(
|
|
163
|
-
'w-slider[data-testid="currency"]',
|
|
164
|
-
);
|
|
138
|
+
<script>
|
|
139
|
+
const numberFormatter = new Intl.NumberFormat("en", {
|
|
140
|
+
maximumFractionDigits: 0,
|
|
141
|
+
}).format;
|
|
142
|
+
const currencySlider = document.querySelector('w-slider[data-testid="currency"]');
|
|
165
143
|
currencySlider.valueFormatter = numberFormatter;
|
|
166
144
|
currencySlider.labelFormatter = (slot) => {
|
|
167
145
|
if (slot === "from") return "0";
|
|
@@ -179,7 +157,7 @@ Sets the [`step` HTML attribute](https://developer.mozilla.org/en-US/docs/Web/HT
|
|
|
179
157
|
<elements-example>
|
|
180
158
|
|
|
181
159
|
```html
|
|
182
|
-
<w-slider label="Single" step="
|
|
160
|
+
<w-slider label="Single" step="5" min="0" max="100">
|
|
183
161
|
<w-slider-thumb name="value"></w-slider-thumb>
|
|
184
162
|
</w-slider>
|
|
185
163
|
```
|
|
@@ -193,13 +171,7 @@ Show tick markers along the slider. Only works with a single slider.
|
|
|
193
171
|
<elements-example>
|
|
194
172
|
|
|
195
173
|
```html
|
|
196
|
-
<w-slider
|
|
197
|
-
label="Single"
|
|
198
|
-
min="0"
|
|
199
|
-
max="100"
|
|
200
|
-
step="5"
|
|
201
|
-
markers="5"
|
|
202
|
-
>
|
|
174
|
+
<w-slider label="Single" min="0" max="100" step="5" markers="5">
|
|
203
175
|
<w-slider-thumb name="value"></w-slider-thumb>
|
|
204
176
|
</w-slider>
|
|
205
177
|
```
|
|
@@ -248,11 +220,7 @@ Show tick markers along the slider. Only works with a single slider.
|
|
|
248
220
|
<elements-example>
|
|
249
221
|
|
|
250
222
|
```html
|
|
251
|
-
<w-slider
|
|
252
|
-
min="1950"
|
|
253
|
-
max="2025"
|
|
254
|
-
help-text="Model year of the car"
|
|
255
|
-
>
|
|
223
|
+
<w-slider min="1950" max="2025" help-text="Model year of the car">
|
|
256
224
|
<legend class="sr-only" slot="label">Model year</legend>
|
|
257
225
|
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
258
226
|
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
@@ -261,7 +229,6 @@ Show tick markers along the slider. Only works with a single slider.
|
|
|
261
229
|
|
|
262
230
|
</elements-example>
|
|
263
231
|
|
|
264
|
-
|
|
265
232
|
### Hidden min and max value labels
|
|
266
233
|
|
|
267
234
|
Give the component a label formatter and always return the empty string.
|
|
@@ -269,21 +236,13 @@ Give the component a label formatter and always return the empty string.
|
|
|
269
236
|
<elements-example>
|
|
270
237
|
|
|
271
238
|
```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
|
-
>
|
|
239
|
+
<w-slider min="1950" max="2025" help-text="Model year of the car" data-testid="hidden-minmax-label">
|
|
279
240
|
<legend class="sr-only" slot="label">Model year</legend>
|
|
280
241
|
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
281
242
|
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
282
243
|
</w-slider>
|
|
283
244
|
<script>
|
|
284
|
-
const hiddenMinMaxSlider = document.querySelector(
|
|
285
|
-
'w-slider[data-testid="hidden-minmax-label"]',
|
|
286
|
-
);
|
|
245
|
+
const hiddenMinMaxSlider = document.querySelector('w-slider[data-testid="hidden-minmax-label"]');
|
|
287
246
|
hiddenMinMaxSlider.labelFormatter = () => "";
|
|
288
247
|
</script>
|
|
289
248
|
```
|
|
@@ -299,7 +258,7 @@ The text field doubles as a visualization of the exact value, which is difficult
|
|
|
299
258
|
```html
|
|
300
259
|
<output class="text-xs">
|
|
301
260
|
<span class="font-bold">Distance:</span>
|
|
302
|
-
<span
|
|
261
|
+
<span data-testid="distance-value"></span>
|
|
303
262
|
</output>
|
|
304
263
|
<form name="map">
|
|
305
264
|
<w-slider min="0" max="20" hidden-textfield data-testid="map-radius">
|
|
@@ -308,44 +267,40 @@ The text field doubles as a visualization of the exact value, which is difficult
|
|
|
308
267
|
</w-slider>
|
|
309
268
|
</form>
|
|
310
269
|
<script>
|
|
270
|
+
const mapRadiusSlider = document.querySelector('w-slider[data-testid="map-radius"]');
|
|
271
|
+
|
|
311
272
|
const radiusSteps = [
|
|
312
|
-
200, 300, 400, 500, 700, 1000, 1500, 2000, 3000, 5000, 7000, 10000,
|
|
313
|
-
|
|
273
|
+
200, 300, 400, 500, 700, 1000, 1500, 2000, 3000, 5000, 7000, 10000, 20000,
|
|
274
|
+
30000, 50000, 75000, 100000, 200000, 300000, 400000, 500000,
|
|
314
275
|
];
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
)
|
|
318
|
-
const formatter = window.getNumberFormatter("${locale}");
|
|
319
|
-
function formatDistance(value) {
|
|
276
|
+
const formatter = new Intl.NumberFormat("en", { maximumFractionDigits: 0 });
|
|
277
|
+
|
|
278
|
+
const formatDistance = (value) => {
|
|
320
279
|
const index = Number.parseInt(value);
|
|
321
280
|
const numValue = radiusSteps[index];
|
|
322
281
|
|
|
323
282
|
let formattedValue = "";
|
|
324
283
|
|
|
325
284
|
if (numValue < 1000) {
|
|
326
|
-
// Use non-breaking space here
|
|
327
285
|
formattedValue = formatter.format(numValue) + " m";
|
|
328
286
|
} else {
|
|
329
287
|
formattedValue = formatter.format(numValue / 1000) + " km";
|
|
330
288
|
}
|
|
331
289
|
return formattedValue;
|
|
332
290
|
};
|
|
291
|
+
|
|
333
292
|
mapRadiusSlider.labelFormatter = (slot) => {
|
|
334
293
|
if (slot === "from") {
|
|
335
294
|
return formatDistance("0");
|
|
336
295
|
}
|
|
337
296
|
return formatDistance(String(radiusSteps.length - 1));
|
|
338
297
|
};
|
|
298
|
+
|
|
339
299
|
mapRadiusSlider.valueFormatter = (value) => {
|
|
340
300
|
const formattedValue = formatDistance(value);
|
|
341
|
-
document.
|
|
301
|
+
document.querySelector('[data-testid="distance-value"]').innerText = formattedValue;
|
|
342
302
|
return formattedValue;
|
|
343
303
|
};
|
|
344
|
-
|
|
345
|
-
document.forms["map"].addEventListener("input", function () {
|
|
346
|
-
const formData = new FormData(this);
|
|
347
|
-
const distance = formData.get("distance");
|
|
348
|
-
});
|
|
349
304
|
</script>
|
|
350
305
|
```
|
|
351
306
|
|
package/dist/docs/step/api.md
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
### `<w-step>` API
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
### Properties
|
|
3
|
+
#### Properties
|
|
6
4
|
|
|
7
5
|
| Name | Type | Default | Summary |
|
|
8
6
|
|-|-|-|-|
|
|
9
|
-
| active | `boolean` | `false` |
|
|
10
|
-
| completed | `boolean` | `false` |
|
|
7
|
+
| active | `boolean` | `false` | Whether this step is active. |
|
|
8
|
+
| completed | `boolean` | `false` | Whether this step is completed. |
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
#### Property Details
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
##### active
|
|
15
13
|
|
|
14
|
+
Whether this step is active.
|
|
16
15
|
|
|
16
|
+
The active step displays a filled indicator.
|
|
17
17
|
|
|
18
18
|
- Type: `boolean`
|
|
19
19
|
- Default: `false`
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
##### completed
|
|
22
22
|
|
|
23
|
+
Whether this step is completed.
|
|
23
24
|
|
|
25
|
+
Completed steps display a checkmark icon and a filled indicator.
|
|
24
26
|
|
|
25
27
|
- Type: `boolean`
|
|
26
28
|
- Default: `false`
|