@flightlesslabs/dodo-ui 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.js +2 -0
  3. package/dist/stories/components/Form/Button/Button.svelte +18 -18
  4. package/dist/stories/components/Form/Button/utils/scss/mixins.scss +3 -3
  5. package/dist/stories/components/Form/DatePicker/DatePicker.svelte +1 -11
  6. package/dist/stories/components/Form/NumericInput/Roundness/Roundness.stories.svelte +20 -0
  7. package/dist/stories/components/Form/NumericInput/Roundness/Roundness.stories.svelte.d.ts +26 -0
  8. package/dist/stories/components/Form/NumericInput/Size/Size.stories.svelte +16 -0
  9. package/dist/stories/components/Form/NumericInput/Size/Size.stories.svelte.d.ts +26 -0
  10. package/dist/stories/components/Form/NumericInput/WithIcon/WithIcon.stories.svelte +31 -0
  11. package/dist/stories/components/Form/NumericInput/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
  12. package/dist/stories/components/Form/RangeSlider/Color/Color.stories.svelte +19 -0
  13. package/dist/stories/components/Form/RangeSlider/Color/Color.stories.svelte.d.ts +26 -0
  14. package/dist/stories/components/Form/RangeSlider/Events/Events.stories.svelte +59 -0
  15. package/dist/stories/components/Form/RangeSlider/Events/Events.stories.svelte.d.ts +18 -0
  16. package/dist/stories/components/Form/RangeSlider/RangeSlider.stories.svelte +64 -0
  17. package/dist/stories/components/Form/RangeSlider/RangeSlider.stories.svelte.d.ts +21 -0
  18. package/dist/stories/components/Form/RangeSlider/RangeSlider.svelte +525 -0
  19. package/dist/stories/components/Form/RangeSlider/RangeSlider.svelte.d.ts +48 -0
  20. package/dist/stories/components/Form/RangeSlider/Roundness/Roundness.stories.svelte +30 -0
  21. package/dist/stories/components/Form/RangeSlider/Roundness/Roundness.stories.svelte.d.ts +26 -0
  22. package/dist/stories/components/Form/RangeSlider/Size/Size.stories.svelte +16 -0
  23. package/dist/stories/components/Form/RangeSlider/Size/Size.stories.svelte.d.ts +26 -0
  24. package/dist/stories/components/Form/RangeSlider/WithIcon/WithIcon.stories.svelte +30 -0
  25. package/dist/stories/components/Form/RangeSlider/WithIcon/WithIcon.stories.svelte.d.ts +18 -0
  26. package/dist/stories/components/Form/RangeSlider/utils/scss/mixins.scss +91 -0
  27. package/dist/stories/developer tools/components/Popper/Popper.stories.svelte +16 -0
  28. package/dist/stories/developer tools/components/Popper/Popper.svelte +10 -14
  29. package/dist/stories/developer tools/components/Popper/Popper.svelte.d.ts +2 -0
  30. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +25 -11
  31. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte.d.ts +2 -0
  32. package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.d.ts +10 -8
  33. package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.js +40 -23
  34. package/dist/stories/developer tools/directives/drag/drag.d.ts +3 -0
  35. package/dist/stories/developer tools/directives/drag/drag.js +40 -0
  36. package/dist/styles/_components.css +5 -0
  37. package/package.json +10 -10
  38. package/src/lib/index.ts +4 -0
  39. package/src/lib/stories/components/Form/Button/utils/scss/mixins.scss +3 -3
  40. package/src/lib/stories/components/Form/DatePicker/DatePicker.svelte +1 -13
  41. package/src/lib/stories/components/Form/RangeSlider/RangeSlider.svelte +476 -0
  42. package/src/lib/stories/components/Form/RangeSlider/utils/scss/mixins.scss +91 -0
  43. package/src/lib/stories/developer tools/components/Popper/Popper.svelte +13 -14
  44. package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +36 -10
  45. package/src/lib/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.ts +45 -31
  46. package/src/lib/stories/developer tools/directives/drag/drag.ts +47 -0
  47. package/src/lib/styles/_components.css +5 -0
@@ -0,0 +1,525 @@
1
+ <script lang="ts" module>export {};
2
+ </script>
3
+
4
+ <script lang="ts">"use strict";
5
+ let { color = 'primary', size = 'normal', roundness = 1, thumbRoundness = 'full', class: className = '', ref = $bindable(), value = $bindable(), disabled = false, id, min = 0, max = 100, step = 0, name, oninput, onchange, onblur, onfocus, before, after, } = $props();
6
+ const percentageValue = $derived(((value - min) / (max - min)) * 100);
7
+ </script>
8
+
9
+ <div
10
+ class:disabled
11
+ class={[
12
+ 'dodo-ui-RangeSlider',
13
+ `size--${size}`,
14
+ `roundness--${roundness}`,
15
+ `thumbRoundness--${thumbRoundness}`,
16
+ `color--${color}`,
17
+ className,
18
+ ].join(' ')}
19
+ style={`--dodo-ui-RangeSlider-value-percent: ${percentageValue};`}
20
+ >
21
+ {#if before}
22
+ <span class="content--before">
23
+ {@render before()}
24
+ </span>
25
+ {/if}
26
+
27
+ <input
28
+ type="range"
29
+ class="NativeRangeSlider"
30
+ {min}
31
+ {max}
32
+ {step}
33
+ {oninput}
34
+ {onchange}
35
+ {onblur}
36
+ {onfocus}
37
+ {id}
38
+ {name}
39
+ {disabled}
40
+ bind:this={ref}
41
+ bind:value
42
+ />
43
+
44
+ {#if after}
45
+ <span class="content--after">
46
+ {@render after()}
47
+ </span>
48
+ {/if}
49
+ </div>
50
+
51
+ <style>:global(:root) {
52
+ --dodo-ui-RangeSlider-track-bg: var(--dodo-color-neutral-200);
53
+ --dodo-ui-RangeSlider-track-filled-disabled-bg: var(--dodo-color-neutral-300);
54
+ --dodo-ui-RangeSlider-thumb-disabled-bg: var(--dodo-color-neutral-300);
55
+ --dodo-ui-RangeSlider-thumb-neutral-bg: var(--dodo-color-neutral-500);
56
+ --dodo-ui-RangeSlider-thumb-neutral-hover-bg: var(--dodo-color-neutral-600);
57
+ --dodo-ui-RangeSlider-thumb-neutral-active-bg: var(--dodo-color-neutral-700);
58
+ --dodo-ui-RangeSlider-track-filled-neutral-bg: var(--dodo-color-neutral-500);
59
+ --dodo-ui-RangeSlider-thumb-primary-bg: var(--dodo-color-primary-500);
60
+ --dodo-ui-RangeSlider-thumb-primary-hover-bg: var(--dodo-color-primary-600);
61
+ --dodo-ui-RangeSlider-thumb-primary-active-bg: var(--dodo-color-primary-700);
62
+ --dodo-ui-RangeSlider-track-filled-primary-bg: var(--dodo-color-primary-500);
63
+ --dodo-ui-RangeSlider-thumb-secondary-bg: var(--dodo-color-secondary-500);
64
+ --dodo-ui-RangeSlider-thumb-secondary-hover-bg: var(--dodo-color-secondary-600);
65
+ --dodo-ui-RangeSlider-thumb-secondary-active-bg: var(--dodo-color-secondary-700);
66
+ --dodo-ui-RangeSlider-track-filled-secondary-bg: var(--dodo-color-secondary-500);
67
+ --dodo-ui-RangeSlider-thumb-safe-bg: var(--dodo-color-safe-500);
68
+ --dodo-ui-RangeSlider-thumb-safe-hover-bg: var(--dodo-color-safe-600);
69
+ --dodo-ui-RangeSlider-thumb-safe-active-bg: var(--dodo-color-safe-700);
70
+ --dodo-ui-RangeSlider-track-filled-safe-bg: var(--dodo-color-safe-500);
71
+ --dodo-ui-RangeSlider-thumb-warning-bg: var(--dodo-color-warning-500);
72
+ --dodo-ui-RangeSlider-thumb-warning-hover-bg: var(--dodo-color-warning-600);
73
+ --dodo-ui-RangeSlider-thumb-warning-active-bg: var(--dodo-color-warning-700);
74
+ --dodo-ui-RangeSlider-track-filled-warning-bg: var(--dodo-color-warning-500);
75
+ --dodo-ui-RangeSlider-thumb-danger-bg: var(--dodo-color-danger-500);
76
+ --dodo-ui-RangeSlider-thumb-danger-hover-bg: var(--dodo-color-danger-600);
77
+ --dodo-ui-RangeSlider-thumb-danger-active-bg: var(--dodo-color-danger-700);
78
+ --dodo-ui-RangeSlider-track-filled-danger-bg: var(--dodo-color-danger-500);
79
+ }
80
+
81
+ :global(.dodo-theme--dark) {
82
+ --dodo-ui-RangeSlider-track-bg: var(--dodo-color-neutral-400);
83
+ --dodo-ui-RangeSlider-track-filled-disabled-bg: var(--dodo-color-neutral-500);
84
+ --dodo-ui-RangeSlider-thumb-disabled-bg: var(--dodo-color-neutral-500);
85
+ --dodo-ui-RangeSlider-thumb-neutral-bg: var(--dodo-color-neutral-500);
86
+ --dodo-ui-RangeSlider-thumb-neutral-hover-bg: var(--dodo-color-neutral-400);
87
+ --dodo-ui-RangeSlider-thumb-neutral-active-bg: var(--dodo-color-neutral-300);
88
+ --dodo-ui-RangeSlider-track-filled-neutral-bg: var(--dodo-color-neutral-500);
89
+ --dodo-ui-RangeSlider-thumb-primary-bg: var(--dodo-color-primary-500);
90
+ --dodo-ui-RangeSlider-thumb-primary-hover-bg: var(--dodo-color-primary-400);
91
+ --dodo-ui-RangeSlider-thumb-primary-active-bg: var(--dodo-color-primary-300);
92
+ --dodo-ui-RangeSlider-track-filled-primary-bg: var(--dodo-color-primary-500);
93
+ --dodo-ui-RangeSlider-thumb-secondary-bg: var(--dodo-color-secondary-500);
94
+ --dodo-ui-RangeSlider-thumb-secondary-hover-bg: var(--dodo-color-secondary-400);
95
+ --dodo-ui-RangeSlider-thumb-secondary-active-bg: var(--dodo-color-secondary-300);
96
+ --dodo-ui-RangeSlider-track-filled-secondary-bg: var(--dodo-color-secondary-500);
97
+ --dodo-ui-RangeSlider-thumb-safe-bg: var(--dodo-color-safe-500);
98
+ --dodo-ui-RangeSlider-thumb-safe-hover-bg: var(--dodo-color-safe-400);
99
+ --dodo-ui-RangeSlider-thumb-safe-active-bg: var(--dodo-color-safe-300);
100
+ --dodo-ui-RangeSlider-track-filled-safe-bg: var(--dodo-color-safe-500);
101
+ --dodo-ui-RangeSlider-thumb-warning-bg: var(--dodo-color-warning-500);
102
+ --dodo-ui-RangeSlider-thumb-warning-hover-bg: var(--dodo-color-warning-400);
103
+ --dodo-ui-RangeSlider-thumb-warning-active-bg: var(--dodo-color-warning-300);
104
+ --dodo-ui-RangeSlider-track-filled-warning-bg: var(--dodo-color-warning-500);
105
+ --dodo-ui-RangeSlider-thumb-danger-bg: var(--dodo-color-danger-500);
106
+ --dodo-ui-RangeSlider-thumb-danger-hover-bg: var(--dodo-color-danger-400);
107
+ --dodo-ui-RangeSlider-thumb-danger-active-bg: var(--dodo-color-danger-300);
108
+ --dodo-ui-RangeSlider-track-filled-danger-bg: var(--dodo-color-danger-500);
109
+ }
110
+
111
+ .dodo-ui-RangeSlider {
112
+ display: flex;
113
+ }
114
+ .dodo-ui-RangeSlider .NativeRangeSlider {
115
+ height: 100%;
116
+ -webkit-appearance: none;
117
+ appearance: none;
118
+ background: transparent;
119
+ cursor: pointer;
120
+ width: 100%;
121
+ margin: 0;
122
+ padding: 0;
123
+ overflow: hidden;
124
+ display: flex;
125
+ align-items: center;
126
+ flex: 1;
127
+ }
128
+ .dodo-ui-RangeSlider .NativeRangeSlider:focus {
129
+ outline: none;
130
+ }
131
+ .dodo-ui-RangeSlider .NativeRangeSlider::-webkit-slider-thumb {
132
+ -webkit-appearance: none; /* Override default look */
133
+ appearance: none;
134
+ border: 0;
135
+ transition: all 150ms;
136
+ }
137
+ .dodo-ui-RangeSlider .NativeRangeSlider::-moz-range-thumb {
138
+ border: 0;
139
+ transition: all 150ms;
140
+ }
141
+ .dodo-ui-RangeSlider .content--before {
142
+ display: flex;
143
+ align-items: center;
144
+ justify-content: center;
145
+ }
146
+ .dodo-ui-RangeSlider .content--after {
147
+ display: flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ }
151
+ .dodo-ui-RangeSlider.size--normal {
152
+ height: var(--dodo-ui-element-height-normal);
153
+ }
154
+ .dodo-ui-RangeSlider.size--normal .NativeRangeSlider::-webkit-slider-runnable-track {
155
+ height: var(--dodo-ui-track-element-height-normal);
156
+ }
157
+ .dodo-ui-RangeSlider.size--normal .NativeRangeSlider::-moz-range-track {
158
+ height: var(--dodo-ui-track-element-height-normal);
159
+ }
160
+ .dodo-ui-RangeSlider.size--normal .NativeRangeSlider::-moz-range-progress {
161
+ height: var(--dodo-ui-track-element-height-normal);
162
+ }
163
+ .dodo-ui-RangeSlider.size--normal .NativeRangeSlider::-webkit-slider-thumb {
164
+ margin-top: -0.5em;
165
+ height: calc(var(--dodo-ui-element-height-normal) / 2);
166
+ width: calc(var(--dodo-ui-element-height-normal) / 2);
167
+ }
168
+ .dodo-ui-RangeSlider.size--normal .NativeRangeSlider::-moz-range-thumb {
169
+ height: calc(var(--dodo-ui-element-height-normal) / 2);
170
+ width: calc(var(--dodo-ui-element-height-normal) / 2);
171
+ }
172
+ .dodo-ui-RangeSlider.size--normal .content--before {
173
+ margin-right: 12px;
174
+ }
175
+ .dodo-ui-RangeSlider.size--normal .content--after {
176
+ margin-left: 12px;
177
+ }
178
+ .dodo-ui-RangeSlider.size--small {
179
+ height: var(--dodo-ui-element-height-small);
180
+ }
181
+ .dodo-ui-RangeSlider.size--small .NativeRangeSlider::-webkit-slider-runnable-track {
182
+ height: var(--dodo-ui-track-element-height-small);
183
+ }
184
+ .dodo-ui-RangeSlider.size--small .NativeRangeSlider::-moz-range-track {
185
+ height: var(--dodo-ui-track-element-height-small);
186
+ }
187
+ .dodo-ui-RangeSlider.size--small .NativeRangeSlider::-moz-range-progress {
188
+ height: var(--dodo-ui-track-element-height-small);
189
+ }
190
+ .dodo-ui-RangeSlider.size--small .NativeRangeSlider::-webkit-slider-thumb {
191
+ margin-top: -0.45em;
192
+ height: calc(var(--dodo-ui-element-height-small) / 2);
193
+ width: calc(var(--dodo-ui-element-height-small) / 2);
194
+ }
195
+ .dodo-ui-RangeSlider.size--small .NativeRangeSlider::-moz-range-thumb {
196
+ height: calc(var(--dodo-ui-element-height-small) / 2);
197
+ width: calc(var(--dodo-ui-element-height-small) / 2);
198
+ }
199
+ .dodo-ui-RangeSlider.size--small .content--before {
200
+ margin-right: 8px;
201
+ }
202
+ .dodo-ui-RangeSlider.size--small .content--after {
203
+ margin-left: 8px;
204
+ }
205
+ .dodo-ui-RangeSlider.size--large {
206
+ height: var(--dodo-ui-element-height-large);
207
+ }
208
+ .dodo-ui-RangeSlider.size--large .NativeRangeSlider::-webkit-slider-runnable-track {
209
+ height: var(--dodo-ui-track-element-height-large);
210
+ }
211
+ .dodo-ui-RangeSlider.size--large .NativeRangeSlider::-moz-range-track {
212
+ height: var(--dodo-ui-track-element-height-large);
213
+ }
214
+ .dodo-ui-RangeSlider.size--large .NativeRangeSlider::-moz-range-progress {
215
+ height: var(--dodo-ui-track-element-height-large);
216
+ }
217
+ .dodo-ui-RangeSlider.size--large .NativeRangeSlider::-webkit-slider-thumb {
218
+ margin-top: -0.6em;
219
+ height: calc(var(--dodo-ui-element-height-large) / 2);
220
+ width: calc(var(--dodo-ui-element-height-large) / 2);
221
+ }
222
+ .dodo-ui-RangeSlider.size--large .NativeRangeSlider::-moz-range-thumb {
223
+ height: calc(var(--dodo-ui-element-height-large) / 2);
224
+ width: calc(var(--dodo-ui-element-height-large) / 2);
225
+ }
226
+ .dodo-ui-RangeSlider.size--large .content--before {
227
+ margin-right: 14px;
228
+ }
229
+ .dodo-ui-RangeSlider.size--large .content--after {
230
+ margin-left: 14px;
231
+ }
232
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-webkit-slider-runnable-track {
233
+ background-color: var(--dodo-ui-RangeSlider-track-neutral-bg);
234
+ }
235
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-moz-range-track {
236
+ background-color: var(--dodo-ui-RangeSlider-track-neutral-bg);
237
+ }
238
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider:focus-visible::-webkit-slider-thumb {
239
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-active-bg);
240
+ }
241
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider:focus-visible::-moz-range-thumb {
242
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-active-bg);
243
+ }
244
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-webkit-slider-runnable-track {
245
+ background: linear-gradient(to right, var(--dodo-ui-RangeSlider-track-filled-neutral-bg) 0%, var(--dodo-ui-RangeSlider-track-filled-neutral-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) 100%);
246
+ }
247
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-moz-range-progress {
248
+ background: var(--dodo-ui-RangeSlider-track-filled-neutral-bg);
249
+ }
250
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-webkit-slider-thumb {
251
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-bg);
252
+ }
253
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-webkit-slider-thumb:hover {
254
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-hover-bg);
255
+ }
256
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-webkit-slider-thumb:active {
257
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-active-bg);
258
+ }
259
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-moz-range-thumb {
260
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-bg);
261
+ }
262
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-moz-range-thumb:hover {
263
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-hover-bg);
264
+ }
265
+ .dodo-ui-RangeSlider.color--neutral .NativeRangeSlider::-moz-range-thumb:active {
266
+ background: var(--dodo-ui-RangeSlider-thumb-neutral-active-bg);
267
+ }
268
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-webkit-slider-runnable-track {
269
+ background-color: var(--dodo-ui-RangeSlider-track-primary-bg);
270
+ }
271
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-moz-range-track {
272
+ background-color: var(--dodo-ui-RangeSlider-track-primary-bg);
273
+ }
274
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider:focus-visible::-webkit-slider-thumb {
275
+ background: var(--dodo-ui-RangeSlider-thumb-primary-active-bg);
276
+ }
277
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider:focus-visible::-moz-range-thumb {
278
+ background: var(--dodo-ui-RangeSlider-thumb-primary-active-bg);
279
+ }
280
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-webkit-slider-runnable-track {
281
+ background: linear-gradient(to right, var(--dodo-ui-RangeSlider-track-filled-primary-bg) 0%, var(--dodo-ui-RangeSlider-track-filled-primary-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) 100%);
282
+ }
283
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-moz-range-progress {
284
+ background: var(--dodo-ui-RangeSlider-track-filled-primary-bg);
285
+ }
286
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-webkit-slider-thumb {
287
+ background: var(--dodo-ui-RangeSlider-thumb-primary-bg);
288
+ }
289
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-webkit-slider-thumb:hover {
290
+ background: var(--dodo-ui-RangeSlider-thumb-primary-hover-bg);
291
+ }
292
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-webkit-slider-thumb:active {
293
+ background: var(--dodo-ui-RangeSlider-thumb-primary-active-bg);
294
+ }
295
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-moz-range-thumb {
296
+ background: var(--dodo-ui-RangeSlider-thumb-primary-bg);
297
+ }
298
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-moz-range-thumb:hover {
299
+ background: var(--dodo-ui-RangeSlider-thumb-primary-hover-bg);
300
+ }
301
+ .dodo-ui-RangeSlider.color--primary .NativeRangeSlider::-moz-range-thumb:active {
302
+ background: var(--dodo-ui-RangeSlider-thumb-primary-active-bg);
303
+ }
304
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-webkit-slider-runnable-track {
305
+ background-color: var(--dodo-ui-RangeSlider-track-secondary-bg);
306
+ }
307
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-moz-range-track {
308
+ background-color: var(--dodo-ui-RangeSlider-track-secondary-bg);
309
+ }
310
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider:focus-visible::-webkit-slider-thumb {
311
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-active-bg);
312
+ }
313
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider:focus-visible::-moz-range-thumb {
314
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-active-bg);
315
+ }
316
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-webkit-slider-runnable-track {
317
+ background: linear-gradient(to right, var(--dodo-ui-RangeSlider-track-filled-secondary-bg) 0%, var(--dodo-ui-RangeSlider-track-filled-secondary-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) 100%);
318
+ }
319
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-moz-range-progress {
320
+ background: var(--dodo-ui-RangeSlider-track-filled-secondary-bg);
321
+ }
322
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-webkit-slider-thumb {
323
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-bg);
324
+ }
325
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-webkit-slider-thumb:hover {
326
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-hover-bg);
327
+ }
328
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-webkit-slider-thumb:active {
329
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-active-bg);
330
+ }
331
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-moz-range-thumb {
332
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-bg);
333
+ }
334
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-moz-range-thumb:hover {
335
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-hover-bg);
336
+ }
337
+ .dodo-ui-RangeSlider.color--secondary .NativeRangeSlider::-moz-range-thumb:active {
338
+ background: var(--dodo-ui-RangeSlider-thumb-secondary-active-bg);
339
+ }
340
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-webkit-slider-runnable-track {
341
+ background-color: var(--dodo-ui-RangeSlider-track-safe-bg);
342
+ }
343
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-moz-range-track {
344
+ background-color: var(--dodo-ui-RangeSlider-track-safe-bg);
345
+ }
346
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider:focus-visible::-webkit-slider-thumb {
347
+ background: var(--dodo-ui-RangeSlider-thumb-safe-active-bg);
348
+ }
349
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider:focus-visible::-moz-range-thumb {
350
+ background: var(--dodo-ui-RangeSlider-thumb-safe-active-bg);
351
+ }
352
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-webkit-slider-runnable-track {
353
+ background: linear-gradient(to right, var(--dodo-ui-RangeSlider-track-filled-safe-bg) 0%, var(--dodo-ui-RangeSlider-track-filled-safe-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) 100%);
354
+ }
355
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-moz-range-progress {
356
+ background: var(--dodo-ui-RangeSlider-track-filled-safe-bg);
357
+ }
358
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-webkit-slider-thumb {
359
+ background: var(--dodo-ui-RangeSlider-thumb-safe-bg);
360
+ }
361
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-webkit-slider-thumb:hover {
362
+ background: var(--dodo-ui-RangeSlider-thumb-safe-hover-bg);
363
+ }
364
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-webkit-slider-thumb:active {
365
+ background: var(--dodo-ui-RangeSlider-thumb-safe-active-bg);
366
+ }
367
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-moz-range-thumb {
368
+ background: var(--dodo-ui-RangeSlider-thumb-safe-bg);
369
+ }
370
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-moz-range-thumb:hover {
371
+ background: var(--dodo-ui-RangeSlider-thumb-safe-hover-bg);
372
+ }
373
+ .dodo-ui-RangeSlider.color--safe .NativeRangeSlider::-moz-range-thumb:active {
374
+ background: var(--dodo-ui-RangeSlider-thumb-safe-active-bg);
375
+ }
376
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-webkit-slider-runnable-track {
377
+ background-color: var(--dodo-ui-RangeSlider-track-warning-bg);
378
+ }
379
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-moz-range-track {
380
+ background-color: var(--dodo-ui-RangeSlider-track-warning-bg);
381
+ }
382
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider:focus-visible::-webkit-slider-thumb {
383
+ background: var(--dodo-ui-RangeSlider-thumb-warning-active-bg);
384
+ }
385
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider:focus-visible::-moz-range-thumb {
386
+ background: var(--dodo-ui-RangeSlider-thumb-warning-active-bg);
387
+ }
388
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-webkit-slider-runnable-track {
389
+ background: linear-gradient(to right, var(--dodo-ui-RangeSlider-track-filled-warning-bg) 0%, var(--dodo-ui-RangeSlider-track-filled-warning-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) 100%);
390
+ }
391
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-moz-range-progress {
392
+ background: var(--dodo-ui-RangeSlider-track-filled-warning-bg);
393
+ }
394
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-webkit-slider-thumb {
395
+ background: var(--dodo-ui-RangeSlider-thumb-warning-bg);
396
+ }
397
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-webkit-slider-thumb:hover {
398
+ background: var(--dodo-ui-RangeSlider-thumb-warning-hover-bg);
399
+ }
400
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-webkit-slider-thumb:active {
401
+ background: var(--dodo-ui-RangeSlider-thumb-warning-active-bg);
402
+ }
403
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-moz-range-thumb {
404
+ background: var(--dodo-ui-RangeSlider-thumb-warning-bg);
405
+ }
406
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-moz-range-thumb:hover {
407
+ background: var(--dodo-ui-RangeSlider-thumb-warning-hover-bg);
408
+ }
409
+ .dodo-ui-RangeSlider.color--warning .NativeRangeSlider::-moz-range-thumb:active {
410
+ background: var(--dodo-ui-RangeSlider-thumb-warning-active-bg);
411
+ }
412
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-webkit-slider-runnable-track {
413
+ background-color: var(--dodo-ui-RangeSlider-track-danger-bg);
414
+ }
415
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-moz-range-track {
416
+ background-color: var(--dodo-ui-RangeSlider-track-danger-bg);
417
+ }
418
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider:focus-visible::-webkit-slider-thumb {
419
+ background: var(--dodo-ui-RangeSlider-thumb-danger-active-bg);
420
+ }
421
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider:focus-visible::-moz-range-thumb {
422
+ background: var(--dodo-ui-RangeSlider-thumb-danger-active-bg);
423
+ }
424
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-webkit-slider-runnable-track {
425
+ background: linear-gradient(to right, var(--dodo-ui-RangeSlider-track-filled-danger-bg) 0%, var(--dodo-ui-RangeSlider-track-filled-danger-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) 100%);
426
+ }
427
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-moz-range-progress {
428
+ background: var(--dodo-ui-RangeSlider-track-filled-danger-bg);
429
+ }
430
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-webkit-slider-thumb {
431
+ background: var(--dodo-ui-RangeSlider-thumb-danger-bg);
432
+ }
433
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-webkit-slider-thumb:hover {
434
+ background: var(--dodo-ui-RangeSlider-thumb-danger-hover-bg);
435
+ }
436
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-webkit-slider-thumb:active {
437
+ background: var(--dodo-ui-RangeSlider-thumb-danger-active-bg);
438
+ }
439
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-moz-range-thumb {
440
+ background: var(--dodo-ui-RangeSlider-thumb-danger-bg);
441
+ }
442
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-moz-range-thumb:hover {
443
+ background: var(--dodo-ui-RangeSlider-thumb-danger-hover-bg);
444
+ }
445
+ .dodo-ui-RangeSlider.color--danger .NativeRangeSlider::-moz-range-thumb:active {
446
+ background: var(--dodo-ui-RangeSlider-thumb-danger-active-bg);
447
+ }
448
+ .dodo-ui-RangeSlider.roundness--1 .NativeRangeSlider::-webkit-slider-runnable-track {
449
+ border-radius: var(--dodo-ui-element-roundness-1);
450
+ }
451
+ .dodo-ui-RangeSlider.roundness--1 .NativeRangeSlider::-moz-range-track {
452
+ border-radius: var(--dodo-ui-element-roundness-1);
453
+ }
454
+ .dodo-ui-RangeSlider.roundness--1 .NativeRangeSlider::-moz-range-progress {
455
+ border-radius: var(--dodo-ui-element-roundness-1);
456
+ }
457
+ .dodo-ui-RangeSlider.roundness--2 .NativeRangeSlider::-webkit-slider-runnable-track {
458
+ border-radius: var(--dodo-ui-element-roundness-2);
459
+ }
460
+ .dodo-ui-RangeSlider.roundness--2 .NativeRangeSlider::-moz-range-track {
461
+ border-radius: var(--dodo-ui-element-roundness-2);
462
+ }
463
+ .dodo-ui-RangeSlider.roundness--2 .NativeRangeSlider::-moz-range-progress {
464
+ border-radius: var(--dodo-ui-element-roundness-2);
465
+ }
466
+ .dodo-ui-RangeSlider.roundness--3 .NativeRangeSlider::-webkit-slider-runnable-track {
467
+ border-radius: var(--dodo-ui-element-roundness-3);
468
+ }
469
+ .dodo-ui-RangeSlider.roundness--3 .NativeRangeSlider::-moz-range-track {
470
+ border-radius: var(--dodo-ui-element-roundness-3);
471
+ }
472
+ .dodo-ui-RangeSlider.roundness--3 .NativeRangeSlider::-moz-range-progress {
473
+ border-radius: var(--dodo-ui-element-roundness-3);
474
+ }
475
+ .dodo-ui-RangeSlider.thumbRoundness--1 .NativeRangeSlider::-webkit-slider-thumb {
476
+ border-radius: var(--dodo-ui-element-roundness-1);
477
+ }
478
+ .dodo-ui-RangeSlider.thumbRoundness--1 .NativeRangeSlider::-moz-range-thumb {
479
+ border-radius: var(--dodo-ui-element-roundness-1);
480
+ }
481
+ .dodo-ui-RangeSlider.thumbRoundness--2 .NativeRangeSlider::-webkit-slider-thumb {
482
+ border-radius: var(--dodo-ui-element-roundness-2);
483
+ }
484
+ .dodo-ui-RangeSlider.thumbRoundness--2 .NativeRangeSlider::-moz-range-thumb {
485
+ border-radius: var(--dodo-ui-element-roundness-2);
486
+ }
487
+ .dodo-ui-RangeSlider.thumbRoundness--3 .NativeRangeSlider::-webkit-slider-thumb {
488
+ border-radius: var(--dodo-ui-element-roundness-3);
489
+ }
490
+ .dodo-ui-RangeSlider.thumbRoundness--3 .NativeRangeSlider::-moz-range-thumb {
491
+ border-radius: var(--dodo-ui-element-roundness-3);
492
+ }
493
+ .dodo-ui-RangeSlider.thumbRoundness--full .NativeRangeSlider::-webkit-slider-thumb {
494
+ border-radius: 50%;
495
+ }
496
+ .dodo-ui-RangeSlider.thumbRoundness--full .NativeRangeSlider::-moz-range-thumb {
497
+ border-radius: 50%;
498
+ }
499
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled] {
500
+ cursor: initial;
501
+ }
502
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-webkit-slider-runnable-track {
503
+ background: linear-gradient(to right, var(--dodo-ui-RangeSlider-track-filled-disabled-bg) 0%, var(--dodo-ui-RangeSlider-track-filled-disabled-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%), var(--dodo-ui-RangeSlider-track-bg) 100%);
504
+ }
505
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-moz-range-progress {
506
+ background: var(--dodo-ui-RangeSlider-track-filled-disabled-bg);
507
+ }
508
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-webkit-slider-thumb {
509
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
510
+ }
511
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-webkit-slider-thumb:hover {
512
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
513
+ }
514
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-webkit-slider-thumb:focus-visible {
515
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
516
+ }
517
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-webkit-slider-thumb:active {
518
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
519
+ }
520
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-moz-range-thumb {
521
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
522
+ }
523
+ .dodo-ui-RangeSlider .NativeRangeSlider[disabled]::-moz-range-thumb:active {
524
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
525
+ }</style>
@@ -0,0 +1,48 @@
1
+ import type { ComponentSize } from '../../../../types/size.js';
2
+ import type { ComponentRoundness } from '../../../../types/roundness.js';
3
+ import type { ChangeEventHandler, FocusEventHandler, FormEventHandler } from 'svelte/elements';
4
+ import type { ComponentColor } from '../../../../types/colors.js';
5
+ import type { Snippet } from 'svelte';
6
+ export interface RangeSliderProps {
7
+ /** How large should the button be? */
8
+ size?: ComponentSize;
9
+ /** What color to use? */
10
+ color?: ComponentColor;
11
+ /** RangeSlider ref */
12
+ ref?: HTMLInputElement;
13
+ /** How round should the border radius be? */
14
+ roundness?: ComponentRoundness;
15
+ /** How round should the thumb border radius be? */
16
+ thumbRoundness?: ComponentRoundness;
17
+ /** RangeSlider value */
18
+ value: number;
19
+ /** disabled state */
20
+ disabled?: boolean;
21
+ /** Id */
22
+ id?: string;
23
+ /** name */
24
+ name?: string;
25
+ /** Icon before button content */
26
+ before?: Snippet;
27
+ /** Icon after button content */
28
+ after?: Snippet;
29
+ /** Custom css class*/
30
+ class?: string;
31
+ /** oninput event handler */
32
+ oninput?: FormEventHandler<HTMLInputElement>;
33
+ /** onchange event handler */
34
+ onchange?: ChangeEventHandler<HTMLInputElement>;
35
+ /** onblur event handler */
36
+ onblur?: FocusEventHandler<HTMLInputElement>;
37
+ /** onfocus event handler */
38
+ onfocus?: FocusEventHandler<HTMLInputElement>;
39
+ /** Min Value */
40
+ min?: number;
41
+ /** Max Value */
42
+ max?: number;
43
+ /** Value Increment step */
44
+ step?: number;
45
+ }
46
+ declare const RangeSlider: import("svelte").Component<RangeSliderProps, {}, "ref" | "value">;
47
+ type RangeSlider = ReturnType<typeof RangeSlider>;
48
+ export default RangeSlider;
@@ -0,0 +1,30 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import RangeSlider from '../RangeSlider.svelte';
4
+ import { storyRangeSliderArgTypes } from '../RangeSlider.stories.svelte';
5
+
6
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
+ const { Story } = defineMeta({
8
+ component: RangeSlider,
9
+ tags: ['autodocs'],
10
+ argTypes: storyRangeSliderArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Roundness 1" />
15
+
16
+ <Story name="Roundness 2" args={{ roundness: 2 }} />
17
+
18
+ <Story name="Roundness 3" args={{ roundness: 3 }} />
19
+
20
+ <Story name="Roundness 0" args={{ roundness: 0 }} />
21
+
22
+ <Story name="Thumb Roundness Full" />
23
+
24
+ <Story name="Thumb Roundness 0" args={{ thumbRoundness: 0 }} />
25
+
26
+ <Story name="Thumb Roundness 1" args={{ thumbRoundness: 1 }} />
27
+
28
+ <Story name="Thumb Roundness 2" args={{ thumbRoundness: 2 }} />
29
+
30
+ <Story name="Thumb Roundness 3" args={{ thumbRoundness: 3 }} />
@@ -0,0 +1,26 @@
1
+ export default Roundness;
2
+ type Roundness = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Roundness: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -0,0 +1,16 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import RangeSlider from '../RangeSlider.svelte';
4
+ import { storyRangeSliderArgTypes } from '../RangeSlider.stories.svelte';
5
+
6
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
+ const { Story } = defineMeta({
8
+ component: RangeSlider,
9
+ tags: ['autodocs'],
10
+ argTypes: storyRangeSliderArgTypes,
11
+ });
12
+ </script>
13
+
14
+ <Story name="Normal" />
15
+ <Story name="Small" args={{ size: 'small' }} />
16
+ <Story name="Large" args={{ size: 'large' }} />
@@ -0,0 +1,26 @@
1
+ export default Size;
2
+ type Size = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const Size: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }