@warp-ds/elements 2.3.0-next.3 → 2.3.0-next.31
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 +1139 -144
- package/dist/index.d.ts +413 -34
- package/dist/packages/affix/index.js.map +2 -2
- package/dist/packages/affix/react.d.ts +1 -1
- package/dist/packages/alert/index.js.map +2 -2
- package/dist/packages/alert/react.d.ts +1 -1
- package/dist/packages/attention/attention.stories.js +4 -1
- package/dist/packages/attention/index.js +58 -22
- package/dist/packages/attention/index.js.map +3 -3
- package/dist/packages/attention/react.d.ts +1 -1
- package/dist/packages/attention/styles.js +1 -1
- package/dist/packages/badge/index.js.map +2 -2
- package/dist/packages/badge/react.d.ts +1 -1
- package/dist/packages/box/index.js.map +2 -2
- package/dist/packages/box/react.d.ts +1 -1
- package/dist/packages/breadcrumbs/index.js.map +2 -2
- package/dist/packages/breadcrumbs/react.d.ts +1 -1
- package/dist/packages/button/button.react.stories.d.ts +1 -1
- package/dist/packages/button/button.stories.d.ts +4 -4
- package/dist/packages/button/button.stories.js +4 -4
- package/dist/packages/button/button.test.js +30 -1
- package/dist/packages/button/index.d.ts +2 -0
- package/dist/packages/button/index.js +52 -16
- package/dist/packages/button/index.js.map +3 -3
- package/dist/packages/button/react.d.ts +1 -1
- package/dist/packages/card/index.js.map +2 -2
- package/dist/packages/card/react.d.ts +1 -1
- package/dist/packages/checkbox/checkbox-group.d.ts +10 -0
- package/dist/packages/checkbox/checkbox-group.js +7 -0
- package/dist/packages/checkbox/checkbox-group.js.map +7 -0
- package/dist/packages/{rip-and-tear-checkbox → checkbox}/checkbox.d.ts +2 -2
- package/dist/packages/{rip-and-tear-checkbox → checkbox}/checkbox.js +3 -4
- package/dist/packages/checkbox/checkbox.js.map +7 -0
- package/dist/packages/{rip-and-tear-checkbox → checkbox}/checkbox.stories.d.ts +3 -0
- package/dist/packages/checkbox/checkbox.stories.js +25 -0
- package/dist/packages/checkbox/index.d.ts +2 -0
- package/dist/packages/checkbox/index.js +2 -0
- package/dist/packages/checkbox/react.d.ts +7 -0
- package/dist/packages/{rip-and-tear-checkbox → checkbox}/react.js +5 -0
- package/dist/packages/combobox/combobox.react.stories.d.ts +1 -1
- package/dist/packages/combobox/combobox.stories.d.ts +1 -0
- package/dist/packages/combobox/combobox.stories.js +29 -3
- package/dist/packages/combobox/index.d.ts +7 -1
- package/dist/packages/combobox/index.js +20 -19
- package/dist/packages/combobox/index.js.map +4 -4
- package/dist/packages/combobox/react.d.ts +1 -1
- package/dist/packages/combobox/styles.js +2 -1
- package/dist/packages/datepicker/datepicker.d.ts +1 -0
- package/dist/packages/datepicker/datepicker.js +35 -35
- package/dist/packages/datepicker/datepicker.js.map +3 -3
- package/dist/packages/datepicker/datepicker.react.stories.d.ts +1 -1
- package/dist/packages/datepicker/datepicker.test.js +27 -0
- package/dist/packages/datepicker/react.d.ts +1 -1
- package/dist/packages/{dead-toggle → deadtoggle}/index.js +2 -3
- package/dist/packages/deadtoggle/index.js.map +7 -0
- package/dist/packages/{dead-toggle → deadtoggle}/react.d.ts +1 -1
- package/dist/packages/expandable/index.js.map +2 -2
- package/dist/packages/expandable/react.d.ts +1 -1
- package/dist/packages/link/index.d.ts +2 -8
- package/dist/packages/link/index.js +46 -10
- package/dist/packages/link/index.js.map +4 -4
- package/dist/packages/link/link.react.stories.d.ts +6 -3
- package/dist/packages/link/link.react.stories.js +27 -10
- package/dist/packages/link/link.stories.d.ts +5 -2
- package/dist/packages/link/link.stories.js +27 -10
- package/dist/packages/link/react.d.ts +1 -1
- package/dist/packages/link/styles.js +39 -3
- package/dist/packages/modal/index.js.map +2 -2
- package/dist/packages/modal/modal-header.js.map +2 -2
- package/dist/packages/modal/modal.stories.d.ts +3 -3
- package/dist/packages/modal/modal.stories.js +32 -32
- package/dist/packages/modal/react.d.ts +1 -1
- package/dist/packages/pageindicator/react.d.ts +1 -1
- package/dist/packages/pagination/index.js.map +2 -2
- package/dist/packages/pagination/react.d.ts +1 -1
- package/dist/packages/pill/index.js.map +2 -2
- package/dist/packages/pill/react.d.ts +1 -1
- package/dist/packages/radio/index.d.ts +2 -0
- package/dist/packages/radio/index.js +2 -0
- package/dist/packages/{rip-and-tear-radio → radio}/radio-group-styles.js.map +1 -1
- package/dist/packages/{rip-and-tear-radio → radio}/radio-group.js +7 -8
- package/dist/packages/radio/radio-group.js.map +7 -0
- package/dist/packages/{rip-and-tear-radio → radio}/radio.js +3 -4
- package/dist/packages/radio/radio.js.map +7 -0
- package/dist/packages/radio/radio.stories.d.ts +15 -0
- package/dist/packages/radio/radio.stories.js +3702 -0
- package/dist/packages/radio/radio.stories.js.map +7 -0
- package/dist/packages/{rip-and-tear-radio → radio}/react.d.ts +2 -2
- package/dist/packages/select/index.d.ts +26 -5
- package/dist/packages/select/index.js +17 -16
- package/dist/packages/select/index.js.map +3 -3
- package/dist/packages/select/react.d.ts +1 -1
- package/dist/packages/select/select.react.stories.d.ts +1 -1
- package/dist/packages/select/select.stories.d.ts +1 -1
- package/dist/packages/select/select.stories.js +3 -4
- package/dist/packages/select/select.test.js +30 -0
- package/dist/packages/slider/locales/da/messages.mjs +1 -0
- package/dist/packages/slider/locales/en/messages.mjs +1 -0
- package/dist/packages/slider/locales/fi/messages.mjs +1 -0
- package/dist/packages/slider/locales/nb/messages.mjs +1 -0
- package/dist/packages/slider/locales/sv/messages.mjs +1 -0
- package/dist/packages/slider/react.d.ts +2 -2
- package/dist/packages/slider/slider-thumb.d.ts +13 -7
- package/dist/packages/slider/slider-thumb.js +92 -49
- package/dist/packages/slider/slider-thumb.js.map +4 -4
- package/dist/packages/slider/slider.d.ts +12 -3
- package/dist/packages/slider/slider.js +109 -31
- package/dist/packages/slider/slider.js.map +4 -4
- package/dist/packages/slider/slider.react.stories.d.ts +1 -0
- package/dist/packages/slider/slider.react.stories.js +22 -0
- package/dist/packages/slider/slider.stories.d.ts +3 -0
- package/dist/packages/slider/slider.stories.js +240 -33
- package/dist/packages/slider/slider.test.js +28 -0
- package/dist/packages/slider/styles/w-slider-thumb.styles.js +24 -16
- package/dist/packages/slider/styles/w-slider.styles.js +65 -18
- package/dist/packages/{steps → stepindicator}/index.d.ts +3 -2
- package/dist/packages/{steps → stepindicator}/index.js +8 -8
- package/dist/packages/stepindicator/index.js.map +7 -0
- package/dist/packages/stepindicator/locales/da/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/en/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/fi/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/nb/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/sv/messages.d.mts +1 -0
- package/dist/packages/stepindicator/react.d.ts +3 -0
- package/dist/packages/{steps → stepindicator}/react.js +2 -2
- package/dist/packages/{steps/steps.react.stories.d.ts → stepindicator/stepindicator.react.stories.d.ts} +4 -4
- package/dist/packages/{steps/steps.react.stories.js → stepindicator/stepindicator.react.stories.js} +11 -11
- package/dist/packages/{steps/steps.stories.js → stepindicator/stepindicator.stories.js} +16 -16
- package/dist/packages/switch/index.d.ts +10 -2
- package/dist/packages/switch/index.js +7 -6
- package/dist/packages/switch/index.js.map +4 -4
- package/dist/packages/switch/react.d.ts +1 -1
- package/dist/packages/switch/styles.js +1 -1
- package/dist/packages/switch/switch.react.stories.js +4 -4
- package/dist/packages/switch/switch.stories.js +6 -5
- package/dist/packages/switch/switch.test.d.ts +1 -0
- package/dist/packages/switch/switch.test.js +40 -0
- package/dist/packages/tabs/tab.js +4 -3
- package/dist/packages/tabs/tab.js.map +2 -2
- package/dist/packages/tabs/tabs.js +5 -5
- package/dist/packages/tabs/tabs.js.map +3 -3
- package/dist/packages/tabs/tabs.stories.d.ts +3 -0
- package/dist/packages/tabs/tabs.stories.js +16 -7
- package/dist/packages/textarea/index.d.ts +1 -0
- package/dist/packages/textarea/index.js +1 -0
- package/dist/packages/textarea/locales/da/messages.d.mts +1 -0
- package/dist/packages/textarea/locales/da/messages.mjs +1 -0
- package/dist/packages/textarea/locales/en/messages.d.mts +1 -0
- package/dist/packages/textarea/locales/en/messages.mjs +1 -0
- package/dist/packages/textarea/locales/fi/messages.d.mts +1 -0
- package/dist/packages/textarea/locales/fi/messages.mjs +1 -0
- package/dist/packages/textarea/locales/nb/messages.d.mts +1 -0
- package/dist/packages/textarea/locales/nb/messages.mjs +1 -0
- package/dist/packages/textarea/locales/sv/messages.d.mts +1 -0
- package/dist/packages/textarea/locales/sv/messages.mjs +1 -0
- package/dist/packages/textarea/react.d.ts +11 -0
- package/dist/packages/textarea/react.js +21 -0
- package/dist/packages/textarea/styles.d.ts +1 -0
- package/dist/packages/textarea/styles.js +2 -0
- package/dist/packages/textarea/textarea.d.ts +49 -0
- package/dist/packages/{rip-and-tear-radio/radio.stories.js → textarea/textarea.js} +35 -214
- package/dist/packages/textarea/textarea.js.map +7 -0
- package/dist/packages/textarea/textarea.react.stories.d.ts +33 -0
- package/dist/packages/textarea/textarea.react.stories.js +41 -0
- package/dist/packages/textarea/textarea.stories.d.ts +19 -0
- package/dist/packages/textarea/textarea.stories.js +85 -0
- package/dist/packages/textarea/textarea.test.d.ts +1 -0
- package/dist/packages/textarea/textarea.test.js +68 -0
- package/dist/packages/textfield/index.d.ts +6 -0
- package/dist/packages/textfield/index.js +21 -20
- package/dist/packages/textfield/index.js.map +3 -3
- package/dist/packages/textfield/react.d.ts +1 -1
- package/dist/packages/textfield/textfield.react.stories.d.ts +1 -1
- package/dist/packages/textfield/textfield.stories.d.ts +1 -0
- package/dist/packages/textfield/textfield.stories.js +17 -0
- package/dist/packages/toggle-styles.js +2 -3
- package/dist/web-types.json +473 -30
- package/package.json +37 -31
- package/dist/packages/dead-toggle/index.js.map +0 -7
- package/dist/packages/rip-and-tear-checkbox/checkbox.js.map +0 -7
- package/dist/packages/rip-and-tear-checkbox/checkbox.stories.js +0 -11
- package/dist/packages/rip-and-tear-checkbox/index.d.ts +0 -1
- package/dist/packages/rip-and-tear-checkbox/index.js +0 -4
- package/dist/packages/rip-and-tear-checkbox/react.d.ts +0 -5
- package/dist/packages/rip-and-tear-radio/index.d.ts +0 -1
- package/dist/packages/rip-and-tear-radio/index.js +0 -6
- package/dist/packages/rip-and-tear-radio/radio-group.js.map +0 -7
- package/dist/packages/rip-and-tear-radio/radio.js.map +0 -7
- package/dist/packages/rip-and-tear-radio/radio.stories.d.ts +0 -8
- package/dist/packages/rip-and-tear-radio/radio.stories.js.map +0 -7
- package/dist/packages/steps/index.js.map +0 -7
- package/dist/packages/steps/react.d.ts +0 -3
- /package/dist/packages/{rip-and-tear-checkbox/rip-and-tear-checkbox.react.stories.d.ts → checkbox/checkbox.react.stories.d.ts} +0 -0
- /package/dist/packages/{rip-and-tear-checkbox/rip-and-tear-checkbox.react.stories.js → checkbox/checkbox.react.stories.js} +0 -0
- /package/dist/packages/{rip-and-tear-checkbox → checkbox}/styles.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-checkbox → checkbox}/styles.js +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/dead-toggle.react.stories.d.ts +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/dead-toggle.react.stories.js +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/dead-toggle.stories.d.ts +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/dead-toggle.stories.js +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/dead-toggle.test.d.ts +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/dead-toggle.test.js +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/index.d.ts +0 -0
- /package/dist/packages/{dead-toggle → deadtoggle}/react.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/base-element.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/base-element.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/custom-error-validator.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/custom-error-validator.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/form-associated-element.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/form-associated-element.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/host-styles.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/host-styles.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/invalid.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/invalid.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/math.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/math.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/radio-group-styles.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/radio-group-styles.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/radio-group.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/radio-styles.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/radio-styles.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/radio-styles.js.map +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/radio.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio/rip-and-tear-radio.react.stories.d.ts → radio/radio.react.stories.d.ts} +0 -0
- /package/dist/packages/{rip-and-tear-radio/rip-and-tear-radio.react.stories.js → radio/radio.react.stories.js} +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/react.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/required-validator.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/required-validator.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/slot.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/slot.js +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/watch.d.ts +0 -0
- /package/dist/packages/{rip-and-tear-radio → radio}/watch.js +0 -0
- /package/dist/packages/{steps → slider}/locales/da/messages.d.mts +0 -0
- /package/dist/packages/{steps → slider}/locales/en/messages.d.mts +0 -0
- /package/dist/packages/{steps → slider}/locales/fi/messages.d.mts +0 -0
- /package/dist/packages/{steps → slider}/locales/nb/messages.d.mts +0 -0
- /package/dist/packages/{steps → slider}/locales/sv/messages.d.mts +0 -0
- /package/dist/packages/{steps → stepindicator}/locales/da/messages.mjs +0 -0
- /package/dist/packages/{steps → stepindicator}/locales/en/messages.mjs +0 -0
- /package/dist/packages/{steps → stepindicator}/locales/fi/messages.mjs +0 -0
- /package/dist/packages/{steps → stepindicator}/locales/nb/messages.mjs +0 -0
- /package/dist/packages/{steps → stepindicator}/locales/sv/messages.mjs +0 -0
- /package/dist/packages/{steps/steps.stories.d.ts → stepindicator/stepindicator.stories.d.ts} +0 -0
- /package/dist/packages/{steps → stepindicator}/styles.d.ts +0 -0
- /package/dist/packages/{steps → stepindicator}/styles.js +0 -0
|
@@ -116,3 +116,25 @@ export const RangeError = {
|
|
|
116
116
|
React.createElement(SliderThumb, { slot: "to", name: "to" })));
|
|
117
117
|
},
|
|
118
118
|
};
|
|
119
|
+
export const TestCase = {
|
|
120
|
+
render() {
|
|
121
|
+
const [fromValue, setFromValue] = useState('0');
|
|
122
|
+
const [toValue, setToValue] = useState('150000');
|
|
123
|
+
return (React.createElement(React.Fragment, null,
|
|
124
|
+
React.createElement("form", { id: "overunder", style: { marginBottom: 16 }, lang: "nb", onInput: (val) => {
|
|
125
|
+
const formData = new FormData(val.currentTarget);
|
|
126
|
+
setFromValue(formData.get('from'));
|
|
127
|
+
setToValue(formData.get('to'));
|
|
128
|
+
} },
|
|
129
|
+
React.createElement(Slider, { label: "Pris", min: "0", max: "700000" },
|
|
130
|
+
React.createElement(SliderThumb, { slot: "from", "aria-label": "Fra pris", name: "from", value: fromValue }),
|
|
131
|
+
React.createElement(SliderThumb, { slot: "to", "aria-label": "Til pris", "aria-description": "700000 inkluderer prisen derfra og opp", name: "to", value: toValue }))),
|
|
132
|
+
React.createElement("p", null, "Drag the slider to show the value below. See the Code tab for how to format the labels."),
|
|
133
|
+
React.createElement("output", null,
|
|
134
|
+
React.createElement("dl", null,
|
|
135
|
+
React.createElement("dt", null, "From:"),
|
|
136
|
+
React.createElement("dd", null, fromValue),
|
|
137
|
+
React.createElement("dt", null, "To:"),
|
|
138
|
+
React.createElement("dd", null, toValue)))));
|
|
139
|
+
},
|
|
140
|
+
};
|
|
@@ -16,3 +16,6 @@ export declare const Step: Story;
|
|
|
16
16
|
export declare const OverUnder: Story;
|
|
17
17
|
export declare const SingleError: Story;
|
|
18
18
|
export declare const RangeError: Story;
|
|
19
|
+
export declare const TestCase: Story;
|
|
20
|
+
export declare const CustomError: Story;
|
|
21
|
+
export declare const Description: Story;
|
|
@@ -29,8 +29,16 @@ export const Range = {
|
|
|
29
29
|
render() {
|
|
30
30
|
return html `
|
|
31
31
|
<w-slider label="Range" min="0" max="100">
|
|
32
|
-
<w-slider-thumb
|
|
33
|
-
|
|
32
|
+
<w-slider-thumb
|
|
33
|
+
slot="from"
|
|
34
|
+
aria-label="From value"
|
|
35
|
+
name="from"
|
|
36
|
+
></w-slider-thumb>
|
|
37
|
+
<w-slider-thumb
|
|
38
|
+
slot="to"
|
|
39
|
+
aria-label="To value"
|
|
40
|
+
name="to"
|
|
41
|
+
></w-slider-thumb>
|
|
34
42
|
</w-slider>
|
|
35
43
|
`;
|
|
36
44
|
},
|
|
@@ -43,13 +51,27 @@ export const SuffixSquareMeters = {
|
|
|
43
51
|
},
|
|
44
52
|
render({ locale, suffix }) {
|
|
45
53
|
return html `
|
|
46
|
-
<w-slider
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
<w-slider
|
|
55
|
+
label="Apartment size"
|
|
56
|
+
min="0"
|
|
57
|
+
max="250"
|
|
58
|
+
suffix="${suffix}"
|
|
59
|
+
data-testid="sqm"
|
|
60
|
+
>
|
|
61
|
+
<w-slider-thumb
|
|
62
|
+
slot="from"
|
|
63
|
+
aria-label="From size"
|
|
64
|
+
name="from"
|
|
65
|
+
></w-slider-thumb>
|
|
66
|
+
<w-slider-thumb
|
|
67
|
+
slot="to"
|
|
68
|
+
aria-label="To size"
|
|
69
|
+
name="to"
|
|
70
|
+
></w-slider-thumb>
|
|
49
71
|
</w-slider>
|
|
50
72
|
<script type="module">
|
|
51
73
|
const sqmSlider = document.querySelector('w-slider[data-testid="sqm"]');
|
|
52
|
-
sqmSlider.formatter = window.getNumberFormatter(
|
|
74
|
+
sqmSlider.formatter = window.getNumberFormatter("${locale}").format;
|
|
53
75
|
</script>
|
|
54
76
|
`;
|
|
55
77
|
},
|
|
@@ -61,13 +83,31 @@ export const SuffixCurrency = {
|
|
|
61
83
|
},
|
|
62
84
|
render({ locale, suffix }) {
|
|
63
85
|
return html `
|
|
64
|
-
<w-slider
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
<w-slider
|
|
87
|
+
label="Price"
|
|
88
|
+
min="0"
|
|
89
|
+
max="250000"
|
|
90
|
+
suffix="${suffix}"
|
|
91
|
+
data-testid="currency"
|
|
92
|
+
>
|
|
93
|
+
<w-slider-thumb
|
|
94
|
+
slot="from"
|
|
95
|
+
aria-label="From price"
|
|
96
|
+
name="from"
|
|
97
|
+
></w-slider-thumb>
|
|
98
|
+
<w-slider-thumb
|
|
99
|
+
slot="to"
|
|
100
|
+
aria-label="To price"
|
|
101
|
+
name="to"
|
|
102
|
+
></w-slider-thumb>
|
|
67
103
|
</w-slider>
|
|
68
104
|
<script type="module">
|
|
69
|
-
const currencySlider = document.querySelector(
|
|
70
|
-
|
|
105
|
+
const currencySlider = document.querySelector(
|
|
106
|
+
'w-slider[data-testid="currency"]'
|
|
107
|
+
);
|
|
108
|
+
currencySlider.formatter = window.getNumberFormatter(
|
|
109
|
+
"${locale}"
|
|
110
|
+
).format;
|
|
71
111
|
</script>
|
|
72
112
|
`;
|
|
73
113
|
},
|
|
@@ -79,13 +119,27 @@ export const SuffixKilometers = {
|
|
|
79
119
|
},
|
|
80
120
|
render({ locale, suffix }) {
|
|
81
121
|
return html `
|
|
82
|
-
<w-slider
|
|
83
|
-
|
|
84
|
-
|
|
122
|
+
<w-slider
|
|
123
|
+
label="Distance"
|
|
124
|
+
min="0"
|
|
125
|
+
max="250000"
|
|
126
|
+
suffix="${suffix}"
|
|
127
|
+
data-testid="km"
|
|
128
|
+
>
|
|
129
|
+
<w-slider-thumb
|
|
130
|
+
slot="from"
|
|
131
|
+
aria-label="From distance"
|
|
132
|
+
name="from"
|
|
133
|
+
></w-slider-thumb>
|
|
134
|
+
<w-slider-thumb
|
|
135
|
+
slot="to"
|
|
136
|
+
aria-label="To distance"
|
|
137
|
+
name="to"
|
|
138
|
+
></w-slider-thumb>
|
|
85
139
|
</w-slider>
|
|
86
140
|
<script type="module">
|
|
87
141
|
const kmSlider = document.querySelector('w-slider[data-testid="km"]');
|
|
88
|
-
kmSlider.formatter = window.getNumberFormatter(
|
|
142
|
+
kmSlider.formatter = window.getNumberFormatter("${locale}").format;
|
|
89
143
|
</script>
|
|
90
144
|
`;
|
|
91
145
|
},
|
|
@@ -98,7 +152,13 @@ export const Marks = {
|
|
|
98
152
|
},
|
|
99
153
|
render({ markers, step }) {
|
|
100
154
|
return html `
|
|
101
|
-
<w-slider
|
|
155
|
+
<w-slider
|
|
156
|
+
label="Single"
|
|
157
|
+
min="0"
|
|
158
|
+
max="100"
|
|
159
|
+
step="${step}"
|
|
160
|
+
markers="${markers}"
|
|
161
|
+
>
|
|
102
162
|
<w-slider-thumb name="value"></w-slider-thumb>
|
|
103
163
|
</w-slider>
|
|
104
164
|
`;
|
|
@@ -121,20 +181,31 @@ export const OverUnder = {
|
|
|
121
181
|
render() {
|
|
122
182
|
return html `
|
|
123
183
|
<form id="overunder" style="margin-bottom: 16px" lang="nb">
|
|
124
|
-
<w-slider
|
|
184
|
+
<w-slider
|
|
185
|
+
label="Produksjonsår"
|
|
186
|
+
min="1950"
|
|
187
|
+
max="2025"
|
|
188
|
+
data-testid="overunder"
|
|
189
|
+
allow-values-outside-range
|
|
190
|
+
>
|
|
125
191
|
<w-slider-thumb
|
|
126
192
|
slot="from"
|
|
127
193
|
aria-label="Fra år"
|
|
128
194
|
aria-description="1950 inkluderer kjøretøy produsert fram til 1950"
|
|
129
|
-
name="from"
|
|
195
|
+
name="from"
|
|
196
|
+
></w-slider-thumb>
|
|
130
197
|
<w-slider-thumb
|
|
131
198
|
slot="to"
|
|
132
199
|
aria-label="Til år"
|
|
133
200
|
aria-description="2025 inkluderer kjøretøy produsert etter 2025"
|
|
134
|
-
name="to"
|
|
201
|
+
name="to"
|
|
202
|
+
></w-slider-thumb>
|
|
135
203
|
</w-slider>
|
|
136
204
|
</form>
|
|
137
|
-
<p>
|
|
205
|
+
<p>
|
|
206
|
+
Drag the slider to show the value below. See the Code tab for how to
|
|
207
|
+
format the labels.
|
|
208
|
+
</p>
|
|
138
209
|
<output>
|
|
139
210
|
<dl>
|
|
140
211
|
<dt>From:</dt>
|
|
@@ -145,24 +216,26 @@ export const OverUnder = {
|
|
|
145
216
|
</output>
|
|
146
217
|
<script>
|
|
147
218
|
/** Here is how you can show labels to indicate min and max values are "up to and including" and "this value and above". */
|
|
148
|
-
const overunderSlider = document.querySelector(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
219
|
+
const overunderSlider = document.querySelector(
|
|
220
|
+
'w-slider[data-testid="overunder"]'
|
|
221
|
+
);
|
|
222
|
+
overunderSlider.formatter = function (value, type) {
|
|
223
|
+
if (value === "" && type === "from") {
|
|
224
|
+
return "Før 1950";
|
|
152
225
|
}
|
|
153
|
-
if (value ===
|
|
154
|
-
return
|
|
226
|
+
if (value === "" && type === "to") {
|
|
227
|
+
return "Etter 2025";
|
|
155
228
|
}
|
|
156
229
|
return value;
|
|
157
230
|
};
|
|
158
231
|
|
|
159
232
|
/** Code to show the form values in output */
|
|
160
|
-
document.forms[
|
|
233
|
+
document.forms["overunder"].addEventListener("input", function () {
|
|
161
234
|
const formData = new FormData(this);
|
|
162
|
-
const from = formData.get(
|
|
163
|
-
const to = formData.get(
|
|
164
|
-
document.getElementById(
|
|
165
|
-
document.getElementById(
|
|
235
|
+
const from = formData.get("from");
|
|
236
|
+
const to = formData.get("to");
|
|
237
|
+
document.getElementById("overunder-from").innerText = from;
|
|
238
|
+
document.getElementById("overunder-to").innerText = to;
|
|
166
239
|
});
|
|
167
240
|
</script>
|
|
168
241
|
`;
|
|
@@ -182,13 +255,147 @@ export const SingleError = {
|
|
|
182
255
|
},
|
|
183
256
|
};
|
|
184
257
|
export const RangeError = {
|
|
258
|
+
args: {},
|
|
259
|
+
render() {
|
|
260
|
+
return html `
|
|
261
|
+
<form id="rangeerror" style="margin-bottom: 16px">
|
|
262
|
+
<w-slider label="Production year" min="1950" max="2025" over under>
|
|
263
|
+
<p slot="description">
|
|
264
|
+
Try typing a from value higher than a to value
|
|
265
|
+
</p>
|
|
266
|
+
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
267
|
+
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
268
|
+
</w-slider>
|
|
269
|
+
</form>
|
|
270
|
+
<p>
|
|
271
|
+
Drag the slider to show the value below. See the Code tab for how to
|
|
272
|
+
format the labels.
|
|
273
|
+
</p>
|
|
274
|
+
<output>
|
|
275
|
+
<dl>
|
|
276
|
+
<dt>From:</dt>
|
|
277
|
+
<dd id="rangeerror-from"></dd>
|
|
278
|
+
<dt>To:</dt>
|
|
279
|
+
<dd id="rangeerror-to"></dd>
|
|
280
|
+
</dl>
|
|
281
|
+
</output>
|
|
282
|
+
<script>
|
|
283
|
+
/** Code to show the form values in output */
|
|
284
|
+
document.forms["rangeerror"].addEventListener("input", function () {
|
|
285
|
+
const formData = new FormData(this);
|
|
286
|
+
const from = formData.get("from");
|
|
287
|
+
const to = formData.get("to");
|
|
288
|
+
document.getElementById("rangeerror-from").innerText = from;
|
|
289
|
+
document.getElementById("rangeerror-to").innerText = to;
|
|
290
|
+
});
|
|
291
|
+
</script>
|
|
292
|
+
`;
|
|
293
|
+
},
|
|
294
|
+
};
|
|
295
|
+
export const TestCase = {
|
|
296
|
+
args: {},
|
|
297
|
+
render() {
|
|
298
|
+
return html `
|
|
299
|
+
<form id="overunder" style="margin-bottom: 16px" lang="nb">
|
|
300
|
+
<w-slider
|
|
301
|
+
label="Hestekrefter"
|
|
302
|
+
suffix="hk"
|
|
303
|
+
min="50"
|
|
304
|
+
max="500"
|
|
305
|
+
data-testid="overunder"
|
|
306
|
+
allow-values-outside-range
|
|
307
|
+
step="10"
|
|
308
|
+
>
|
|
309
|
+
<w-slider-thumb
|
|
310
|
+
slot="from"
|
|
311
|
+
aria-label="Fra år"
|
|
312
|
+
aria-description="1950 inkluderer kjøretøy produsert fram til 1950"
|
|
313
|
+
name="from"
|
|
314
|
+
value=""
|
|
315
|
+
></w-slider-thumb>
|
|
316
|
+
<w-slider-thumb
|
|
317
|
+
slot="to"
|
|
318
|
+
aria-label="Til år"
|
|
319
|
+
aria-description="2025 inkluderer kjøretøy produsert etter 2025"
|
|
320
|
+
name="to"
|
|
321
|
+
value=""
|
|
322
|
+
></w-slider-thumb>
|
|
323
|
+
</w-slider>
|
|
324
|
+
</form>
|
|
325
|
+
<p>
|
|
326
|
+
Drag the slider to show the value below. See the Code tab for how to
|
|
327
|
+
format the labels.
|
|
328
|
+
</p>
|
|
329
|
+
<output>
|
|
330
|
+
<dl>
|
|
331
|
+
<dt>From:</dt>
|
|
332
|
+
<dd id="overunder-from"></dd>
|
|
333
|
+
<dt>To:</dt>
|
|
334
|
+
<dd id="overunder-to"></dd>
|
|
335
|
+
</dl>
|
|
336
|
+
</output>
|
|
337
|
+
<script>
|
|
338
|
+
/** Here is how you can show labels to indicate min and max values are "up to and including" and "this value and above". */
|
|
339
|
+
const overunderSlider = document.querySelector(
|
|
340
|
+
'w-slider[data-testid="overunder"]'
|
|
341
|
+
);
|
|
342
|
+
overunderSlider.formatter = function (value, type) {
|
|
343
|
+
if (value === "" && type === "from") {
|
|
344
|
+
return "Under 50";
|
|
345
|
+
}
|
|
346
|
+
if (value === "" && type === "to") {
|
|
347
|
+
return "Over 500";
|
|
348
|
+
}
|
|
349
|
+
return value;
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
/** Code to show the form values in output */
|
|
353
|
+
document.forms["overunder"].addEventListener("input", function () {
|
|
354
|
+
const formData = new FormData(this);
|
|
355
|
+
const from = formData.get("from");
|
|
356
|
+
const to = formData.get("to");
|
|
357
|
+
document.getElementById("overunder-from").innerText = from;
|
|
358
|
+
document.getElementById("overunder-to").innerText = to;
|
|
359
|
+
});
|
|
360
|
+
</script>
|
|
361
|
+
`;
|
|
362
|
+
},
|
|
363
|
+
};
|
|
364
|
+
export const CustomError = {
|
|
365
|
+
args: {
|
|
366
|
+
locale: 'nb',
|
|
367
|
+
},
|
|
368
|
+
render() {
|
|
369
|
+
return html `
|
|
370
|
+
<w-slider
|
|
371
|
+
label="Production year"
|
|
372
|
+
min="1950"
|
|
373
|
+
max="2025"
|
|
374
|
+
over
|
|
375
|
+
under
|
|
376
|
+
error="I'm an external error telling you something is wrong"
|
|
377
|
+
invalid
|
|
378
|
+
>
|
|
379
|
+
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
380
|
+
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
381
|
+
</w-slider>
|
|
382
|
+
`;
|
|
383
|
+
},
|
|
384
|
+
};
|
|
385
|
+
export const Description = {
|
|
185
386
|
args: {
|
|
186
387
|
locale: 'nb',
|
|
187
388
|
},
|
|
188
389
|
render() {
|
|
189
390
|
return html `
|
|
190
|
-
<w-slider
|
|
191
|
-
|
|
391
|
+
<w-slider
|
|
392
|
+
label="Production year"
|
|
393
|
+
min="1950"
|
|
394
|
+
max="2025"
|
|
395
|
+
over
|
|
396
|
+
under
|
|
397
|
+
help-text="Production year of the car"
|
|
398
|
+
>
|
|
192
399
|
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
193
400
|
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
194
401
|
</w-slider>
|
|
@@ -81,3 +81,31 @@ test('deleting from number input works as expected', async () => {
|
|
|
81
81
|
await userEvent.type(page.getByRole('spinbutton').last(), '{Backspace}');
|
|
82
82
|
await expect.element(page.getByRole('spinbutton').last()).not.toHaveValue();
|
|
83
83
|
});
|
|
84
|
+
test('can reset slider by resetting surrounding form', async () => {
|
|
85
|
+
render(html `
|
|
86
|
+
<form>
|
|
87
|
+
<w-slider label="Slider from 0 - 10" min="0" max="10">
|
|
88
|
+
<p slot="description">If you want to slide between 0 and 10, this slider has you covered.</p>
|
|
89
|
+
<w-slider-thumb name="zero-ten" value="3"></w-slider-thumb>
|
|
90
|
+
</w-slider>
|
|
91
|
+
</form>
|
|
92
|
+
`);
|
|
93
|
+
const form = document.querySelector('form');
|
|
94
|
+
const wSlider = document.querySelector('w-slider');
|
|
95
|
+
const wSliderThumb = wSlider.querySelector('w-slider-thumb');
|
|
96
|
+
// sanity
|
|
97
|
+
expect(form).not.toBeNull();
|
|
98
|
+
expect(wSlider).not.toBeNull();
|
|
99
|
+
expect(wSliderThumb).not.toBeNull();
|
|
100
|
+
expect(wSliderThumb.value).toBe('3');
|
|
101
|
+
expect(Object.fromEntries(new FormData(form).entries())['zero-ten']).toBe('3');
|
|
102
|
+
wSliderThumb.value = '5';
|
|
103
|
+
await wSliderThumb.updateComplete;
|
|
104
|
+
expect(wSliderThumb.value).toBe('5');
|
|
105
|
+
expect(Object.fromEntries(new FormData(form).entries())['zero-ten']).toBe('5');
|
|
106
|
+
// Reset the form
|
|
107
|
+
form.reset();
|
|
108
|
+
await wSliderThumb.updateComplete;
|
|
109
|
+
expect(wSliderThumb.value).toBe('3');
|
|
110
|
+
expect(Object.fromEntries(new FormData(form).entries())['zero-ten']).toBe('3');
|
|
111
|
+
});
|
|
@@ -6,9 +6,9 @@ export const wSliderThumbStyles = css `
|
|
|
6
6
|
display: grid;
|
|
7
7
|
pointer-events: none; /* For range inputs we position two of these on top of each other. Let clicks go through the top one. */
|
|
8
8
|
grid-template-areas:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
"slider slider slider"
|
|
10
|
+
"frommarker . tomarker"
|
|
11
|
+
"fromtextfield . totextfield";
|
|
12
12
|
grid-template-columns: 1fr 24px 1fr;
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -39,7 +39,11 @@ export const wSliderThumbStyles = css `
|
|
|
39
39
|
background: var(--w-s-color-background-primary);
|
|
40
40
|
border-radius: 50%;
|
|
41
41
|
height: var(--w-slider-thumb-size);
|
|
42
|
-
margin-top: calc(
|
|
42
|
+
margin-top: calc(
|
|
43
|
+
-1 * calc(var(--w-slider-thumb-offset) - calc(
|
|
44
|
+
var(--w-slider-track-height) / 2
|
|
45
|
+
))
|
|
46
|
+
);
|
|
43
47
|
pointer-events: initial;
|
|
44
48
|
width: var(--w-slider-thumb-size);
|
|
45
49
|
z-index: 1;
|
|
@@ -54,7 +58,11 @@ export const wSliderThumbStyles = css `
|
|
|
54
58
|
border-radius: 50%;
|
|
55
59
|
border-color: transparent;
|
|
56
60
|
height: var(--w-slider-thumb-size);
|
|
57
|
-
margin-top: calc(
|
|
61
|
+
margin-top: calc(
|
|
62
|
+
-1 * calc(var(--w-slider-thumb-offset) - calc(
|
|
63
|
+
var(--w-slider-track-height) / 2
|
|
64
|
+
))
|
|
65
|
+
);
|
|
58
66
|
pointer-events: initial;
|
|
59
67
|
width: var(--w-slider-thumb-size);
|
|
60
68
|
z-index: 1;
|
|
@@ -124,44 +132,44 @@ export const wSliderThumbStyles = css `
|
|
|
124
132
|
}
|
|
125
133
|
|
|
126
134
|
.w-slider-thumb__textfield {
|
|
127
|
-
margin-top:
|
|
135
|
+
margin-top: 12px;
|
|
128
136
|
pointer-events: auto;
|
|
129
137
|
grid-row: 3 / 4;
|
|
130
138
|
grid-column: 1 / 3; /* Single sliders should have the text field use the fromtextfield _and_ gap portion of the CSS grid. */
|
|
131
139
|
}
|
|
132
140
|
|
|
133
|
-
:host([name=
|
|
141
|
+
:host([name="from"]) .w-slider-thumb__textfield {
|
|
134
142
|
grid-column: 1 / 2; /* Range sliders should leave the gap empty. */
|
|
135
143
|
}
|
|
136
144
|
|
|
137
|
-
:host([name=
|
|
145
|
+
:host([name="from"]) .w-slider-thumb__range {
|
|
138
146
|
margin-left: var(--w-slider-thumb-size);
|
|
139
147
|
}
|
|
140
148
|
|
|
141
|
-
:host([name=
|
|
149
|
+
:host([name="to"]) .w-slider-thumb__range {
|
|
142
150
|
margin-right: var(--w-slider-thumb-size);
|
|
143
151
|
}
|
|
144
152
|
|
|
145
|
-
:host([name=
|
|
146
|
-
:host([name=
|
|
153
|
+
:host([name="from"]) .w-slider-thumb__range::-webkit-slider-thumb,
|
|
154
|
+
:host([name="from"]) .w-slider-thumb__tooltip-target {
|
|
147
155
|
transform: translateX(calc(-1 * var(--w-slider-thumb-size) - 1px));
|
|
148
156
|
}
|
|
149
157
|
|
|
150
|
-
:host([name=
|
|
158
|
+
:host([name="from"]) .w-slider-thumb__range::-moz-range-thumb {
|
|
151
159
|
transform: translateX(calc(-1 * var(--w-slider-thumb-size) - 1px));
|
|
152
160
|
}
|
|
153
161
|
|
|
154
|
-
:host([name=
|
|
162
|
+
:host([name="to"]) .w-slider-thumb__textfield {
|
|
155
163
|
grid-row: 3 / 4;
|
|
156
164
|
grid-column: 3 / 4;
|
|
157
165
|
}
|
|
158
166
|
|
|
159
|
-
:host([name=
|
|
160
|
-
:host([name=
|
|
167
|
+
:host([name="to"]) .w-slider-thumb__tooltip-target,
|
|
168
|
+
:host([name="to"]) .w-slider-thumb__range::-webkit-slider-thumb {
|
|
161
169
|
transform: translateX(calc(var(--w-slider-thumb-size) - 1px));
|
|
162
170
|
}
|
|
163
171
|
|
|
164
|
-
:host([name=
|
|
172
|
+
:host([name="to"]) .w-slider-thumb__range::-moz-range-thumb {
|
|
165
173
|
transform: translateX(calc(var(--w-slider-thumb-size) - 1px));
|
|
166
174
|
}
|
|
167
175
|
`;
|
|
@@ -8,9 +8,10 @@ export const wSliderStyles = css `
|
|
|
8
8
|
display: grid;
|
|
9
9
|
width: 100%;
|
|
10
10
|
grid-template-areas:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
"label"
|
|
12
|
+
"description"
|
|
13
|
+
"slider"
|
|
14
|
+
"error";
|
|
14
15
|
grid-template-columns: 1fr;
|
|
15
16
|
|
|
16
17
|
--w-slider-track-background: var(--w-s-color-background-disabled-subtle);
|
|
@@ -18,7 +19,9 @@ export const wSliderStyles = css `
|
|
|
18
19
|
--w-slider-track-height: 4px;
|
|
19
20
|
--w-slider-track-active-height: 6px;
|
|
20
21
|
--w-slider-thumb-background: var(--w-s-color-background-primary);
|
|
21
|
-
--w-slider-thumb-background-hover: var(
|
|
22
|
+
--w-slider-thumb-background-hover: var(
|
|
23
|
+
--w-s-color-background-primary-hover
|
|
24
|
+
);
|
|
22
25
|
--w-slider-thumb-size: 28px;
|
|
23
26
|
--w-slider-thumb-offset: calc(var(--w-slider-thumb-size) / 2);
|
|
24
27
|
--w-slider-marker-color: var(--w-s-color-border);
|
|
@@ -29,26 +32,45 @@ export const wSliderStyles = css `
|
|
|
29
32
|
--_value-range: calc(var(--max) - var(--min));
|
|
30
33
|
|
|
31
34
|
/** Round up to the nearest --step, which defaults to 1 (https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/range#step) */
|
|
32
|
-
--_from-in-range: round(
|
|
35
|
+
--_from-in-range: round(
|
|
36
|
+
up,
|
|
37
|
+
max(calc(var(--from) - var(--min)), 0),
|
|
38
|
+
var(--step, 1)
|
|
39
|
+
);
|
|
33
40
|
|
|
34
41
|
/* limit to maximum value in range so typing a value larger than max doesn't explode layouts */
|
|
35
|
-
--_to-in-range: round(
|
|
42
|
+
--_to-in-range: round(
|
|
43
|
+
up,
|
|
44
|
+
min(calc(var(--to) - var(--min)), var(--_value-range)),
|
|
45
|
+
var(--step, 1)
|
|
46
|
+
);
|
|
36
47
|
|
|
37
48
|
/* Position the starting point of the fill in the case of a non-zero --from value in a range slider.
|
|
38
49
|
* In other words, given a width of 100% how many percent should be left unfilled/blank
|
|
39
50
|
* at the beginning of the range slider (dashes in this ASCII-range-slider: |---O******O|) */
|
|
40
|
-
--_from-as-percent-of-max: calc(
|
|
51
|
+
--_from-as-percent-of-max: calc(
|
|
52
|
+
var(--_from-in-range) / var(--_value-range) * 100
|
|
53
|
+
);
|
|
41
54
|
--_blank-values-before: var(--_from-as-percent-of-max);
|
|
42
55
|
|
|
43
56
|
/* Set the width of the fill as a percentage.
|
|
44
57
|
* In other words, given a width of 100% how many percent should be left unfilled/blank
|
|
45
58
|
* at the end of the slider (dashes in this ASCII-slider: |******O---|) */
|
|
46
|
-
--_to-as-percent-of-max: calc(
|
|
47
|
-
|
|
59
|
+
--_to-as-percent-of-max: calc(
|
|
60
|
+
var(--_to-in-range) / var(--_value-range) * 100
|
|
61
|
+
);
|
|
62
|
+
--_filled-values: calc(
|
|
63
|
+
var(--_to-as-percent-of-max) - var(--_blank-values-before)
|
|
64
|
+
);
|
|
48
65
|
|
|
49
66
|
/* Vertical position of range and markers */
|
|
50
67
|
--_range-top: calc(
|
|
51
|
-
var(--w-slider-thumb-size) / 2 +
|
|
68
|
+
var(--w-slider-thumb-size) / 2 +
|
|
69
|
+
calc(
|
|
70
|
+
var(--w-slider-track-active-height) - calc(
|
|
71
|
+
var(--w-slider-track-height) / 2
|
|
72
|
+
) + 1px
|
|
73
|
+
)
|
|
52
74
|
);
|
|
53
75
|
}
|
|
54
76
|
|
|
@@ -90,8 +112,16 @@ export const wSliderStyles = css `
|
|
|
90
112
|
border-start-start-radius: var(--active-range-border-radius, 0);
|
|
91
113
|
border-end-start-radius: var(--active-range-border-radius, 0);
|
|
92
114
|
|
|
93
|
-
margin-left: calc(
|
|
94
|
-
|
|
115
|
+
margin-left: calc(
|
|
116
|
+
calc(var(--_blank-values-before) * 1%) - var(
|
|
117
|
+
--active-range-inline-start-padding,
|
|
118
|
+
0px
|
|
119
|
+
)
|
|
120
|
+
);
|
|
121
|
+
width: calc(
|
|
122
|
+
calc(var(--_filled-values) * 1%) +
|
|
123
|
+
var(--active-range-inline-end-padding, 0px)
|
|
124
|
+
);
|
|
95
125
|
z-index: 1;
|
|
96
126
|
}
|
|
97
127
|
|
|
@@ -105,13 +135,15 @@ export const wSliderStyles = css `
|
|
|
105
135
|
followed by enough transparent that we can repeat the gradient
|
|
106
136
|
along the X axis and have markers visible where we want them. */
|
|
107
137
|
background: linear-gradient(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
138
|
+
to right,
|
|
139
|
+
var(--w-slider-marker-color) var(--_marker-width),
|
|
140
|
+
rgba(0, 0, 0, 0) 1px calc(100% - 1px),
|
|
141
|
+
var(--w-slider-marker-color) 100%
|
|
142
|
+
)
|
|
143
|
+
repeat-x;
|
|
113
144
|
--_step-width-as-percent: calc(var(--markers) / var(--_value-range) * 100);
|
|
114
|
-
background-size: calc(var(--_step-width-as-percent) * 1%)
|
|
145
|
+
background-size: calc(var(--_step-width-as-percent) * 1%)
|
|
146
|
+
var(--_marker-height);
|
|
115
147
|
|
|
116
148
|
background-position: bottom 0 left 8px right 8px;
|
|
117
149
|
position: absolute;
|
|
@@ -123,6 +155,21 @@ export const wSliderStyles = css `
|
|
|
123
155
|
margin-inline: var(--w-slider-thumb-offset);
|
|
124
156
|
}
|
|
125
157
|
|
|
158
|
+
.w-slider__error {
|
|
159
|
+
grid-area: error;
|
|
160
|
+
padding-top: 8px;
|
|
161
|
+
font-size: var(--w-font-size-xs);
|
|
162
|
+
line-height: var(--w-line-height-xs);
|
|
163
|
+
color: var(--w-s-color-text-negative);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.w-slider__help-text {
|
|
167
|
+
grid-area: error;
|
|
168
|
+
padding-top: 8px;
|
|
169
|
+
font-size: var(--w-font-size-xs);
|
|
170
|
+
line-height: var(--w-line-height-xs);
|
|
171
|
+
}
|
|
172
|
+
|
|
126
173
|
slot::slotted(w-slider-thumb) {
|
|
127
174
|
position: static;
|
|
128
175
|
top: 0;
|