@warp-ds/elements 2.3.2 → 2.4.0-next.2
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 +3851 -0
- package/dist/index.d.ts +859 -0
- 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/checkbox/checkbox.d.ts +66 -0
- package/dist/packages/checkbox/checkbox.js +2591 -0
- package/dist/packages/checkbox/checkbox.js.map +7 -0
- package/dist/packages/checkbox/checkbox.react.stories.d.ts +12 -0
- package/dist/packages/checkbox/checkbox.react.stories.js +10 -0
- package/dist/packages/checkbox/checkbox.stories.d.ts +11 -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/checkbox/react.js +20 -0
- package/dist/packages/checkbox/styles.d.ts +0 -0
- package/dist/packages/checkbox/styles.js +0 -0
- package/dist/packages/combobox/combobox.react.stories.d.ts +28 -0
- package/dist/packages/combobox/combobox.react.stories.js +90 -0
- package/dist/packages/combobox/combobox.stories.d.ts +19 -0
- package/dist/packages/combobox/combobox.stories.js +143 -0
- package/dist/packages/combobox/index.d.ts +91 -0
- package/dist/packages/combobox/index.js +2493 -0
- package/dist/packages/combobox/index.js.map +7 -0
- package/dist/packages/combobox/locales/da/messages.d.mts +1 -0
- package/dist/packages/combobox/locales/da/messages.mjs +1 -0
- package/dist/packages/combobox/locales/en/messages.d.mts +1 -0
- package/dist/packages/combobox/locales/en/messages.mjs +1 -0
- package/dist/packages/combobox/locales/fi/messages.d.mts +1 -0
- package/dist/packages/combobox/locales/fi/messages.mjs +1 -0
- package/dist/packages/combobox/locales/nb/messages.d.mts +1 -0
- package/dist/packages/combobox/locales/nb/messages.mjs +1 -0
- package/dist/packages/combobox/locales/sv/messages.d.mts +1 -0
- package/dist/packages/combobox/locales/sv/messages.mjs +1 -0
- package/dist/packages/combobox/react.d.ts +7 -0
- package/dist/packages/combobox/react.js +17 -0
- package/dist/packages/combobox/styles.d.ts +1 -0
- package/dist/packages/combobox/styles.js +3 -0
- package/dist/packages/deadtoggle/dead-toggle.react.stories.d.ts +15 -0
- package/dist/packages/deadtoggle/dead-toggle.react.stories.js +34 -0
- package/dist/packages/deadtoggle/dead-toggle.stories.d.ts +14 -0
- package/dist/packages/deadtoggle/dead-toggle.stories.js +45 -0
- package/dist/packages/deadtoggle/dead-toggle.test.d.ts +1 -0
- package/dist/packages/deadtoggle/dead-toggle.test.js +9 -0
- package/dist/packages/deadtoggle/index.d.ts +17 -0
- package/dist/packages/deadtoggle/index.js +2547 -0
- package/dist/packages/deadtoggle/index.js.map +7 -0
- package/dist/packages/deadtoggle/react.d.ts +2 -0
- package/dist/packages/deadtoggle/react.js +11 -0
- package/dist/packages/pageindicator/index.d.ts +10 -0
- package/dist/packages/pageindicator/index.js +32 -0
- package/dist/packages/pageindicator/index.js.map +7 -0
- package/dist/packages/pageindicator/pageindicator.react.stories.d.ts +19 -0
- package/dist/packages/pageindicator/pageindicator.react.stories.js +20 -0
- package/dist/packages/pageindicator/pageindicator.stories.d.ts +32 -0
- package/dist/packages/pageindicator/pageindicator.stories.js +71 -0
- package/dist/packages/pageindicator/react.d.ts +2 -0
- package/dist/packages/pageindicator/react.js +11 -0
- package/dist/packages/pageindicator/style.d.ts +1 -0
- package/dist/packages/pageindicator/style.js +26 -0
- package/dist/packages/pagination/index.d.ts +32 -0
- package/dist/packages/pagination/index.js +2500 -0
- package/dist/packages/pagination/index.js.map +7 -0
- package/dist/packages/pagination/locales/da/messages.d.mts +1 -0
- package/dist/packages/pagination/locales/da/messages.mjs +1 -0
- package/dist/packages/pagination/locales/en/messages.d.mts +1 -0
- package/dist/packages/pagination/locales/en/messages.mjs +1 -0
- package/dist/packages/pagination/locales/fi/messages.d.mts +1 -0
- package/dist/packages/pagination/locales/fi/messages.mjs +1 -0
- package/dist/packages/pagination/locales/nb/messages.d.mts +1 -0
- package/dist/packages/pagination/locales/nb/messages.mjs +1 -0
- package/dist/packages/pagination/locales/sv/messages.d.mts +1 -0
- package/dist/packages/pagination/locales/sv/messages.mjs +1 -0
- package/dist/packages/pagination/pagination.react.stories.d.ts +21 -0
- package/dist/packages/pagination/pagination.react.stories.js +45 -0
- package/dist/packages/pagination/pagination.stories.d.ts +14 -0
- package/dist/packages/pagination/pagination.stories.js +56 -0
- package/dist/packages/pagination/pagination.test.d.ts +1 -0
- package/dist/packages/pagination/pagination.test.js +76 -0
- package/dist/packages/pagination/react.d.ts +5 -0
- package/dist/packages/pagination/react.js +15 -0
- package/dist/packages/pagination/styles.d.ts +1 -0
- package/dist/packages/pagination/styles.js +2 -0
- package/dist/packages/radio/base-element.d.ts +46 -0
- package/dist/packages/radio/base-element.js +100 -0
- package/dist/packages/radio/custom-error-validator.d.ts +6 -0
- package/dist/packages/radio/custom-error-validator.js +22 -0
- package/dist/packages/radio/form-associated-element.d.ts +103 -0
- package/dist/packages/radio/form-associated-element.js +282 -0
- package/dist/packages/radio/host-styles.d.ts +1 -0
- package/dist/packages/radio/host-styles.js +12 -0
- package/dist/packages/radio/index.d.ts +2 -0
- package/dist/packages/radio/index.js +2 -0
- package/dist/packages/radio/invalid.d.ts +8 -0
- package/dist/packages/radio/invalid.js +5 -0
- package/dist/packages/radio/math.d.ts +1 -0
- package/dist/packages/radio/math.js +4 -0
- package/dist/packages/radio/radio-group-styles.d.ts +1 -0
- package/dist/packages/radio/radio-group-styles.js +59 -0
- package/dist/packages/radio/radio-group-styles.js.map +7 -0
- package/dist/packages/radio/radio-group.d.ts +72 -0
- package/dist/packages/radio/radio-group.js +2648 -0
- package/dist/packages/radio/radio-group.js.map +7 -0
- package/dist/packages/radio/radio-styles.d.ts +0 -0
- package/dist/packages/radio/radio-styles.js +1 -0
- package/dist/packages/radio/radio-styles.js.map +7 -0
- package/dist/packages/radio/radio.d.ts +38 -0
- package/dist/packages/radio/radio.js +2562 -0
- package/dist/packages/radio/radio.js.map +7 -0
- package/dist/packages/radio/radio.react.stories.d.ts +9 -0
- package/dist/packages/radio/radio.react.stories.js +10 -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/radio/react.d.ts +9 -0
- package/dist/packages/radio/react.js +22 -0
- package/dist/packages/radio/required-validator.d.ts +11 -0
- package/dist/packages/radio/required-validator.js +34 -0
- package/dist/packages/radio/slot.d.ts +20 -0
- package/dist/packages/radio/slot.js +71 -0
- package/dist/packages/radio/watch.d.ts +26 -0
- package/dist/packages/radio/watch.js +39 -0
- package/dist/packages/slider/Slider.d.ts +2 -0
- package/dist/packages/slider/Slider.js +8 -0
- package/dist/packages/slider/SliderThumb.d.ts +2 -0
- package/dist/packages/slider/SliderThumb.js +8 -0
- package/dist/packages/slider/index.d.ts +2 -0
- package/dist/packages/slider/index.js +2 -0
- package/dist/packages/slider/locales/da/messages.d.mts +1 -0
- package/dist/packages/slider/locales/da/messages.mjs +1 -0
- package/dist/packages/slider/locales/en/messages.d.mts +1 -0
- package/dist/packages/slider/locales/en/messages.mjs +1 -0
- package/dist/packages/slider/locales/fi/messages.d.mts +1 -0
- package/dist/packages/slider/locales/fi/messages.mjs +1 -0
- package/dist/packages/slider/locales/nb/messages.d.mts +1 -0
- package/dist/packages/slider/locales/nb/messages.mjs +1 -0
- package/dist/packages/slider/locales/sv/messages.d.mts +1 -0
- package/dist/packages/slider/locales/sv/messages.mjs +1 -0
- package/dist/packages/slider/oddbird-css-anchor-positioning.d.ts +2 -0
- package/dist/packages/slider/oddbird-css-anchor-positioning.js +3 -0
- package/dist/packages/slider/react.d.ts +8 -0
- package/dist/packages/slider/react.js +20 -0
- package/dist/packages/slider/slider-thumb.d.ts +63 -0
- package/dist/packages/slider/slider-thumb.js +2748 -0
- package/dist/packages/slider/slider-thumb.js.map +7 -0
- package/dist/packages/slider/slider.d.ts +55 -0
- package/dist/packages/slider/slider.js +2632 -0
- package/dist/packages/slider/slider.js.map +7 -0
- package/dist/packages/slider/slider.react.stories.d.ts +19 -0
- package/dist/packages/slider/slider.react.stories.js +140 -0
- package/dist/packages/slider/slider.stories.d.ts +21 -0
- package/dist/packages/slider/slider.stories.js +404 -0
- package/dist/packages/slider/slider.test.d.ts +4 -0
- package/dist/packages/slider/slider.test.js +111 -0
- package/dist/packages/slider/styles/w-slider-thumb.styles.d.ts +1 -0
- package/dist/packages/slider/styles/w-slider-thumb.styles.js +175 -0
- package/dist/packages/slider/styles/w-slider.styles.d.ts +1 -0
- package/dist/packages/slider/styles/w-slider.styles.js +148 -0
- package/dist/packages/slider/styles.d.ts +1 -0
- package/dist/packages/slider/styles.js +2 -0
- package/dist/packages/stepindicator/index.d.ts +37 -0
- package/dist/packages/stepindicator/index.js +2465 -0
- 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/da/messages.mjs +1 -0
- package/dist/packages/stepindicator/locales/en/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/en/messages.mjs +1 -0
- package/dist/packages/stepindicator/locales/fi/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/fi/messages.mjs +1 -0
- package/dist/packages/stepindicator/locales/nb/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/nb/messages.mjs +1 -0
- package/dist/packages/stepindicator/locales/sv/messages.d.mts +1 -0
- package/dist/packages/stepindicator/locales/sv/messages.mjs +1 -0
- package/dist/packages/stepindicator/react.d.ts +3 -0
- package/dist/packages/stepindicator/react.js +16 -0
- package/dist/packages/stepindicator/stepindicator.react.stories.d.ts +15 -0
- package/dist/packages/stepindicator/stepindicator.react.stories.js +112 -0
- package/dist/packages/stepindicator/stepindicator.stories.d.ts +12 -0
- package/dist/packages/stepindicator/stepindicator.stories.js +172 -0
- package/dist/packages/stepindicator/styles.d.ts +1 -0
- package/dist/packages/stepindicator/styles.js +2 -0
- package/dist/packages/switch/index.d.ts +23 -0
- package/dist/packages/switch/index.js +2456 -0
- package/dist/packages/switch/index.js.map +7 -0
- package/dist/packages/switch/react.d.ts +5 -0
- package/dist/packages/switch/react.js +15 -0
- package/dist/packages/switch/styles.d.ts +1 -0
- package/dist/packages/switch/styles.js +2 -0
- package/dist/packages/switch/switch.react.stories.d.ts +15 -0
- package/dist/packages/switch/switch.react.stories.js +29 -0
- package/dist/packages/switch/switch.stories.d.ts +9 -0
- package/dist/packages/switch/switch.stories.js +35 -0
- package/dist/packages/switch/switch.test.d.ts +1 -0
- package/dist/packages/switch/switch.test.js +40 -0
- package/dist/packages/tabs/index.d.ts +4 -0
- package/dist/packages/tabs/index.js +3 -0
- package/dist/packages/tabs/react.d.ts +12 -0
- package/dist/packages/tabs/react.js +31 -0
- package/dist/packages/tabs/styles.d.ts +1 -0
- package/dist/packages/tabs/styles.js +2 -0
- package/dist/packages/tabs/tab-panel.d.ts +20 -0
- package/dist/packages/tabs/tab-panel.js +51 -0
- package/dist/packages/tabs/tab.d.ts +18 -0
- package/dist/packages/tabs/tab.js +2464 -0
- package/dist/packages/tabs/tab.js.map +7 -0
- package/dist/packages/tabs/tabs.d.ts +40 -0
- package/dist/packages/tabs/tabs.js +2448 -0
- package/dist/packages/tabs/tabs.js.map +7 -0
- package/dist/packages/tabs/tabs.react.stories.d.ts +15 -0
- package/dist/packages/tabs/tabs.react.stories.js +51 -0
- package/dist/packages/tabs/tabs.stories.d.ts +11 -0
- package/dist/packages/tabs/tabs.stories.js +93 -0
- 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/textarea/textarea.js +2475 -0
- 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/toggle-styles.d.ts +1 -0
- package/dist/packages/toggle-styles.js +108 -0
- package/dist/setup-tests.d.ts +1 -0
- package/dist/setup-tests.js +1 -0
- package/dist/web-types.json +984 -1
- package/package.json +78 -1
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
import { getStorybookHelpers } from '@wc-toolkit/storybook-helpers';
|
|
2
|
+
import { html } from 'lit';
|
|
3
|
+
import '../affix/index.js';
|
|
4
|
+
import '../attention/index.js';
|
|
5
|
+
import '../textfield/index.js';
|
|
6
|
+
import './index.js';
|
|
7
|
+
const { events: sliderEvents, args: sliderArgs, argTypes: sliderArgTypes, } = getStorybookHelpers('w-slider');
|
|
8
|
+
const meta = {
|
|
9
|
+
title: 'Forms/Slider and Range Slider',
|
|
10
|
+
args: sliderArgs,
|
|
11
|
+
argTypes: sliderArgTypes,
|
|
12
|
+
parameters: {
|
|
13
|
+
actions: {
|
|
14
|
+
handles: sliderEvents,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
export default meta;
|
|
19
|
+
export const Single = {
|
|
20
|
+
render() {
|
|
21
|
+
return html `
|
|
22
|
+
<w-slider label="Single" min="0" max="100">
|
|
23
|
+
<w-slider-thumb name="value"></w-slider-thumb>
|
|
24
|
+
</w-slider>
|
|
25
|
+
`;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
export const Range = {
|
|
29
|
+
render() {
|
|
30
|
+
return html `
|
|
31
|
+
<w-slider label="Range" min="0" max="100" step="25">
|
|
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>
|
|
42
|
+
</w-slider>
|
|
43
|
+
`;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
// Take a suffix attribute on `<w-slider>` I think, have `<w-slider-thumb>` get from that.
|
|
47
|
+
export const SuffixSquareMeters = {
|
|
48
|
+
args: {
|
|
49
|
+
locale: 'nb',
|
|
50
|
+
suffix: 'm²',
|
|
51
|
+
},
|
|
52
|
+
render({ locale, suffix }) {
|
|
53
|
+
return html `
|
|
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>
|
|
71
|
+
</w-slider>
|
|
72
|
+
<script type="module">
|
|
73
|
+
const sqmSlider = document.querySelector('w-slider[data-testid="sqm"]');
|
|
74
|
+
sqmSlider.formatter = window.getNumberFormatter("${locale}").format;
|
|
75
|
+
</script>
|
|
76
|
+
`;
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
export const SuffixCurrency = {
|
|
80
|
+
args: {
|
|
81
|
+
locale: 'nb',
|
|
82
|
+
suffix: 'kr',
|
|
83
|
+
},
|
|
84
|
+
render({ locale, suffix }) {
|
|
85
|
+
return html `
|
|
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>
|
|
103
|
+
</w-slider>
|
|
104
|
+
<script type="module">
|
|
105
|
+
const currencySlider = document.querySelector(
|
|
106
|
+
'w-slider[data-testid="currency"]'
|
|
107
|
+
);
|
|
108
|
+
currencySlider.formatter = window.getNumberFormatter(
|
|
109
|
+
"${locale}"
|
|
110
|
+
).format;
|
|
111
|
+
</script>
|
|
112
|
+
`;
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
export const SuffixKilometers = {
|
|
116
|
+
args: {
|
|
117
|
+
locale: 'nb',
|
|
118
|
+
suffix: 'km',
|
|
119
|
+
},
|
|
120
|
+
render({ locale, suffix }) {
|
|
121
|
+
return html `
|
|
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>
|
|
139
|
+
</w-slider>
|
|
140
|
+
<script type="module">
|
|
141
|
+
const kmSlider = document.querySelector('w-slider[data-testid="km"]');
|
|
142
|
+
kmSlider.formatter = window.getNumberFormatter("${locale}").format;
|
|
143
|
+
</script>
|
|
144
|
+
`;
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
export const Marks = {
|
|
148
|
+
args: {
|
|
149
|
+
locale: 'nb',
|
|
150
|
+
step: '5',
|
|
151
|
+
markers: '5',
|
|
152
|
+
},
|
|
153
|
+
render({ markers, step }) {
|
|
154
|
+
return html `
|
|
155
|
+
<w-slider
|
|
156
|
+
label="Single"
|
|
157
|
+
min="0"
|
|
158
|
+
max="100"
|
|
159
|
+
step="${step}"
|
|
160
|
+
markers="${markers}"
|
|
161
|
+
>
|
|
162
|
+
<w-slider-thumb name="value"></w-slider-thumb>
|
|
163
|
+
</w-slider>
|
|
164
|
+
`;
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
export const Step = {
|
|
168
|
+
args: {
|
|
169
|
+
step: 5,
|
|
170
|
+
},
|
|
171
|
+
render({ step }) {
|
|
172
|
+
return html `
|
|
173
|
+
<w-slider label="Single" step="${step}" min="0" max="100">
|
|
174
|
+
<w-slider-thumb name="value"></w-slider-thumb>
|
|
175
|
+
</w-slider>
|
|
176
|
+
`;
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
export const OverUnder = {
|
|
180
|
+
args: {},
|
|
181
|
+
render() {
|
|
182
|
+
return html `
|
|
183
|
+
<form id="overunder" style="margin-bottom: 16px" lang="nb">
|
|
184
|
+
<w-slider
|
|
185
|
+
label="Produksjonsår"
|
|
186
|
+
min="1950"
|
|
187
|
+
max="2025"
|
|
188
|
+
data-testid="overunder"
|
|
189
|
+
allow-values-outside-range
|
|
190
|
+
>
|
|
191
|
+
<w-slider-thumb
|
|
192
|
+
slot="from"
|
|
193
|
+
aria-label="Fra år"
|
|
194
|
+
aria-description="1950 inkluderer kjøretøy produsert fram til 1950"
|
|
195
|
+
name="from"
|
|
196
|
+
></w-slider-thumb>
|
|
197
|
+
<w-slider-thumb
|
|
198
|
+
slot="to"
|
|
199
|
+
aria-label="Til år"
|
|
200
|
+
aria-description="2025 inkluderer kjøretøy produsert etter 2025"
|
|
201
|
+
name="to"
|
|
202
|
+
></w-slider-thumb>
|
|
203
|
+
</w-slider>
|
|
204
|
+
</form>
|
|
205
|
+
<p>
|
|
206
|
+
Drag the slider to show the value below. See the Code tab for how to
|
|
207
|
+
format the labels.
|
|
208
|
+
</p>
|
|
209
|
+
<output>
|
|
210
|
+
<dl>
|
|
211
|
+
<dt>From:</dt>
|
|
212
|
+
<dd id="overunder-from"></dd>
|
|
213
|
+
<dt>To:</dt>
|
|
214
|
+
<dd id="overunder-to"></dd>
|
|
215
|
+
</dl>
|
|
216
|
+
</output>
|
|
217
|
+
<script>
|
|
218
|
+
/** Here is how you can show labels to indicate min and max values are "up to and including" and "this value and above". */
|
|
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";
|
|
225
|
+
}
|
|
226
|
+
if (value === "" && type === "to") {
|
|
227
|
+
return "Etter 2025";
|
|
228
|
+
}
|
|
229
|
+
return value;
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
/** Code to show the form values in output */
|
|
233
|
+
document.forms["overunder"].addEventListener("input", function () {
|
|
234
|
+
const formData = new FormData(this);
|
|
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;
|
|
239
|
+
});
|
|
240
|
+
</script>
|
|
241
|
+
`;
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
export const SingleError = {
|
|
245
|
+
args: {
|
|
246
|
+
locale: 'nb',
|
|
247
|
+
},
|
|
248
|
+
render() {
|
|
249
|
+
return html `
|
|
250
|
+
<w-slider label="Single" min="0" max="100">
|
|
251
|
+
<p slot="description">Try typing a value over 100</p>
|
|
252
|
+
<w-slider-thumb></w-slider-thumb>
|
|
253
|
+
</w-slider>
|
|
254
|
+
`;
|
|
255
|
+
},
|
|
256
|
+
};
|
|
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="Bredde"
|
|
302
|
+
suffix="cm"
|
|
303
|
+
min="200"
|
|
304
|
+
max="350"
|
|
305
|
+
data-testid="overunder"
|
|
306
|
+
allow-values-outside-range
|
|
307
|
+
step="50"
|
|
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 200";
|
|
345
|
+
}
|
|
346
|
+
if (value === "" && type === "to") {
|
|
347
|
+
return "Over 350";
|
|
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 = {
|
|
386
|
+
args: {
|
|
387
|
+
locale: 'nb',
|
|
388
|
+
},
|
|
389
|
+
render() {
|
|
390
|
+
return html `
|
|
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
|
+
>
|
|
399
|
+
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
400
|
+
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
401
|
+
</w-slider>
|
|
402
|
+
`;
|
|
403
|
+
},
|
|
404
|
+
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { userEvent } from '@vitest/browser/context';
|
|
2
|
+
import { html } from 'lit';
|
|
3
|
+
import { expect, test } from 'vitest';
|
|
4
|
+
import { render } from 'vitest-browser-lit';
|
|
5
|
+
import '../attention/index.js';
|
|
6
|
+
import '../affix/index.js';
|
|
7
|
+
import '../textfield/index.js';
|
|
8
|
+
import './index.js';
|
|
9
|
+
test('single slider starts with a default value equal to max', async () => {
|
|
10
|
+
const component = html `
|
|
11
|
+
<form data-testid="form">
|
|
12
|
+
<w-slider label="Single" min="0" max="100">
|
|
13
|
+
<w-slider-thumb name="value"></w-slider-thumb>
|
|
14
|
+
</w-slider>
|
|
15
|
+
</form>
|
|
16
|
+
`;
|
|
17
|
+
const page = render(component);
|
|
18
|
+
await expect.element(page.getByLabelText('Single').first()).toHaveValue('100');
|
|
19
|
+
});
|
|
20
|
+
test('range slider starts with a default from value equal to min, and to value equal to max', async () => {
|
|
21
|
+
const component = html `
|
|
22
|
+
<form data-testid="form">
|
|
23
|
+
<w-slider label="Range" min="0" max="100">
|
|
24
|
+
<w-slider-thumb aria-label="From" name="rangefrom" slot="from"></w-slider-thumb>
|
|
25
|
+
<w-slider-thumb aria-label="To" name="rangeto" slot="to"></w-slider-thumb>
|
|
26
|
+
</w-slider>
|
|
27
|
+
</form>
|
|
28
|
+
`;
|
|
29
|
+
const page = render(component);
|
|
30
|
+
await expect.element(page.getByLabelText('From').first()).toHaveValue('0');
|
|
31
|
+
await expect.element(page.getByLabelText('To').first()).toHaveValue('100');
|
|
32
|
+
});
|
|
33
|
+
test('can set slider value via the range input', async () => {
|
|
34
|
+
const component = html `
|
|
35
|
+
<form data-testid="form">
|
|
36
|
+
<w-slider label="Single" min="0" max="100">
|
|
37
|
+
<w-slider-thumb name="value"></w-slider-thumb>
|
|
38
|
+
</w-slider>
|
|
39
|
+
</form>
|
|
40
|
+
`;
|
|
41
|
+
const page = render(component);
|
|
42
|
+
await userEvent.type(page.getByLabelText('Single').first(), '{ArrowLeft}{ArrowLeft}{ArrowLeft}');
|
|
43
|
+
await expect.element(page.getByLabelText('Single').first()).toHaveValue('97');
|
|
44
|
+
await expect.element(page.getByRole('spinbutton')).toHaveValue(97); // keeps value in sync between inputs
|
|
45
|
+
const formData = new FormData(page.getByTestId('form').element());
|
|
46
|
+
expect(formData.get('value')).toBe('97');
|
|
47
|
+
});
|
|
48
|
+
test('can set slider value via the number input', async () => {
|
|
49
|
+
const component = html `
|
|
50
|
+
<form data-testid="form">
|
|
51
|
+
<w-slider label="Single" min="0" max="100">
|
|
52
|
+
<w-slider-thumb name="value"></w-slider-thumb>
|
|
53
|
+
</w-slider>
|
|
54
|
+
</form>
|
|
55
|
+
`;
|
|
56
|
+
const page = render(component);
|
|
57
|
+
await page.getByRole('spinbutton').fill('50');
|
|
58
|
+
await expect.element(page.getByRole('spinbutton')).toHaveValue(50);
|
|
59
|
+
await expect.element(page.getByLabelText('Single').first()).toHaveValue('50'); // keeps value in sync between inputs
|
|
60
|
+
const formData = new FormData(page.getByTestId('form').element());
|
|
61
|
+
expect(formData.get('value')).toBe('50');
|
|
62
|
+
});
|
|
63
|
+
test('deleting from number input works as expected', async () => {
|
|
64
|
+
const component = html `
|
|
65
|
+
<form data-testid="form">
|
|
66
|
+
<w-slider label="Production year" min="1950" max="2025" over under>
|
|
67
|
+
<p slot="description">Try typing a from value higher than a to value</p>
|
|
68
|
+
<w-slider-thumb slot="from" name="from"></w-slider-thumb>
|
|
69
|
+
<w-slider-thumb slot="to" name="to"></w-slider-thumb>
|
|
70
|
+
</w-slider>
|
|
71
|
+
</form>
|
|
72
|
+
`;
|
|
73
|
+
const page = render(component);
|
|
74
|
+
await expect.element(page.getByRole('spinbutton').last()).toHaveValue(2025);
|
|
75
|
+
await userEvent.type(page.getByRole('spinbutton').last(), '{Backspace}');
|
|
76
|
+
await expect.element(page.getByRole('spinbutton').last()).toHaveValue(202);
|
|
77
|
+
await userEvent.type(page.getByRole('spinbutton').last(), '{Backspace}');
|
|
78
|
+
await expect.element(page.getByRole('spinbutton').last()).toHaveValue(20);
|
|
79
|
+
await userEvent.type(page.getByRole('spinbutton').last(), '{Backspace}');
|
|
80
|
+
await expect.element(page.getByRole('spinbutton').last()).toHaveValue(2);
|
|
81
|
+
await userEvent.type(page.getByRole('spinbutton').last(), '{Backspace}');
|
|
82
|
+
await expect.element(page.getByRole('spinbutton').last()).not.toHaveValue();
|
|
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
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const wSliderThumbStyles: import("lit").CSSResult;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
/* For some reason the pseudoselectors for webkit and moz must be separate blocks :shrug: */
|
|
3
|
+
export const wSliderThumbStyles = css `
|
|
4
|
+
.w-slider-thumb {
|
|
5
|
+
position: relative;
|
|
6
|
+
display: grid;
|
|
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
|
+
grid-template-areas:
|
|
9
|
+
"slider slider slider"
|
|
10
|
+
"frommarker . tomarker"
|
|
11
|
+
"fromtextfield . totextfield";
|
|
12
|
+
grid-template-columns: 1fr 24px 1fr;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.w-slider-thumb__range {
|
|
16
|
+
appearance: none;
|
|
17
|
+
background-color: transparent;
|
|
18
|
+
grid-area: slider;
|
|
19
|
+
height: 44px; /* touch target */
|
|
20
|
+
margin-left: 0;
|
|
21
|
+
pointer-events: none; /* let clicks pass through for range slider where we place two inputs over each other */
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.w-slider-thumb__range::-webkit-slider-runnable-track {
|
|
25
|
+
box-shadow: none;
|
|
26
|
+
color: var(--w-s-color-text);
|
|
27
|
+
height: var(--w-slider-track-height);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
Use anchor positioning to place the tooltip target in relation to the slider thumb.
|
|
32
|
+
We use a polyfill to bring support to older Safari, Firefox at time of writing.
|
|
33
|
+
*/
|
|
34
|
+
.w-slider-thumb__range::-webkit-slider-thumb {
|
|
35
|
+
anchor-name: --thumb;
|
|
36
|
+
|
|
37
|
+
appearance: none;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
background: var(--w-s-color-background-primary);
|
|
40
|
+
border-radius: 50%;
|
|
41
|
+
height: var(--w-slider-thumb-size);
|
|
42
|
+
margin-top: calc(
|
|
43
|
+
-1 * calc(var(--w-slider-thumb-offset) - calc(
|
|
44
|
+
var(--w-slider-track-height) / 2
|
|
45
|
+
))
|
|
46
|
+
);
|
|
47
|
+
pointer-events: initial;
|
|
48
|
+
width: var(--w-slider-thumb-size);
|
|
49
|
+
z-index: 1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.w-slider-thumb__range::-moz-range-thumb {
|
|
53
|
+
anchor-name: --thumb;
|
|
54
|
+
|
|
55
|
+
appearance: none;
|
|
56
|
+
cursor: pointer;
|
|
57
|
+
background: var(--w-s-color-background-primary);
|
|
58
|
+
border-radius: 50%;
|
|
59
|
+
border-color: transparent;
|
|
60
|
+
height: var(--w-slider-thumb-size);
|
|
61
|
+
margin-top: calc(
|
|
62
|
+
-1 * calc(var(--w-slider-thumb-offset) - calc(
|
|
63
|
+
var(--w-slider-track-height) / 2
|
|
64
|
+
))
|
|
65
|
+
);
|
|
66
|
+
pointer-events: initial;
|
|
67
|
+
width: var(--w-slider-thumb-size);
|
|
68
|
+
z-index: 1;
|
|
69
|
+
|
|
70
|
+
box-shadow: none;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.w-slider-thumb__range:active::-webkit-slider-thumb,
|
|
74
|
+
.w-slider-thumb__range:hover::-webkit-slider-thumb {
|
|
75
|
+
background: var(--w-s-color-background-primary-hover);
|
|
76
|
+
box-shadow: var(--w-shadow-slider-handle-hover);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.w-slider-thumb__range:focus,
|
|
80
|
+
.w-slider-thumb__range:focus-visible {
|
|
81
|
+
outline: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.w-slider-thumb__range:focus-visible::-webkit-slider-thumb {
|
|
85
|
+
outline: 2px solid var(--w-s-color-border-focus);
|
|
86
|
+
outline-offset: var(--w-outline-offset, 1px);
|
|
87
|
+
box-shadow: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.w-slider-thumb__range:active::-moz-range-thumb,
|
|
91
|
+
.w-slider-thumb__range:hover::-moz-range-thumb {
|
|
92
|
+
background: var(--w-s-color-background-primary-hover);
|
|
93
|
+
box-shadow: var(--w-shadow-slider-handle-hover);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.w-slider-thumb__range:focus-visible::-moz-range-thumb {
|
|
97
|
+
outline: 2px solid var(--w-s-color-border-focus);
|
|
98
|
+
outline-offset: var(--w-outline-offset, 1px);
|
|
99
|
+
box-shadow: none;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.w-slider-thumb__tooltip-target {
|
|
103
|
+
display: block;
|
|
104
|
+
pointer-events: none;
|
|
105
|
+
position: absolute;
|
|
106
|
+
border: 2px solid transparent;
|
|
107
|
+
border-radius: 20px;
|
|
108
|
+
width: 8px;
|
|
109
|
+
height: 8px;
|
|
110
|
+
position-anchor: --thumb;
|
|
111
|
+
position-area: center; /* Position the tooltip target right on the range thumb */
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Uncomment this to debug the invisible anchor target */
|
|
115
|
+
/* .w-slider-thumb__tooltip-target { border-color: lime; } */
|
|
116
|
+
|
|
117
|
+
.w-slider-thumb__from-marker,
|
|
118
|
+
.w-slider-thumb__to-marker {
|
|
119
|
+
margin-inline: 2px; /* visual alignment with input border, slider thumb */
|
|
120
|
+
color: var(--w-s-color-text-subtle);
|
|
121
|
+
font-size: var(--w-font-size-s);
|
|
122
|
+
line-height: var(--w-line-height-s);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.w-slider-thumb__from-marker {
|
|
126
|
+
grid-area: frommarker;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.w-slider-thumb__to-marker {
|
|
130
|
+
grid-area: tomarker;
|
|
131
|
+
text-align: right;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.w-slider-thumb__textfield {
|
|
135
|
+
margin-top: 12px;
|
|
136
|
+
pointer-events: auto;
|
|
137
|
+
grid-row: 3 / 4;
|
|
138
|
+
grid-column: 1 / 3; /* Single sliders should have the text field use the fromtextfield _and_ gap portion of the CSS grid. */
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
:host([name="from"]) .w-slider-thumb__textfield {
|
|
142
|
+
grid-column: 1 / 2; /* Range sliders should leave the gap empty. */
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
:host([name="from"]) .w-slider-thumb__range {
|
|
146
|
+
margin-left: var(--w-slider-thumb-size);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
:host([name="to"]) .w-slider-thumb__range {
|
|
150
|
+
margin-right: var(--w-slider-thumb-size);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
:host([name="from"]) .w-slider-thumb__range::-webkit-slider-thumb,
|
|
154
|
+
:host([name="from"]) .w-slider-thumb__tooltip-target {
|
|
155
|
+
transform: translateX(calc(-1 * var(--w-slider-thumb-size) - 1px));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
:host([name="from"]) .w-slider-thumb__range::-moz-range-thumb {
|
|
159
|
+
transform: translateX(calc(-1 * var(--w-slider-thumb-size) - 1px));
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
:host([name="to"]) .w-slider-thumb__textfield {
|
|
163
|
+
grid-row: 3 / 4;
|
|
164
|
+
grid-column: 3 / 4;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
:host([name="to"]) .w-slider-thumb__tooltip-target,
|
|
168
|
+
:host([name="to"]) .w-slider-thumb__range::-webkit-slider-thumb {
|
|
169
|
+
transform: translateX(calc(var(--w-slider-thumb-size) - 1px));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
:host([name="to"]) .w-slider-thumb__range::-moz-range-thumb {
|
|
173
|
+
transform: translateX(calc(var(--w-slider-thumb-size) - 1px));
|
|
174
|
+
}
|
|
175
|
+
`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const wSliderStyles: import("lit").CSSResult;
|