@flightlesslabs/dodo-ui 0.11.1 → 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 (188) 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/{src/lib/stories/components/Form/PasswordInput → dist/stories/components/Form/NumericInput}/Roundness/Roundness.stories.svelte +4 -4
  6. package/dist/stories/components/Form/NumericInput/Roundness/Roundness.stories.svelte.d.ts +26 -0
  7. package/{src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek → dist/stories/components/Form/NumericInput}/Size/Size.stories.svelte +4 -4
  8. package/dist/stories/components/Form/NumericInput/Size/Size.stories.svelte.d.ts +26 -0
  9. package/{src/lib/stories/components/Form/PasswordInput → dist/stories/components/Form/NumericInput}/WithIcon/WithIcon.stories.svelte +10 -10
  10. package/dist/stories/components/Form/NumericInput/WithIcon/WithIcon.stories.svelte.d.ts +26 -0
  11. package/{src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList → dist/stories/components/Form/RangeSlider}/Color/Color.stories.svelte +4 -7
  12. package/dist/stories/components/Form/RangeSlider/Color/Color.stories.svelte.d.ts +26 -0
  13. package/dist/stories/components/Form/RangeSlider/Events/Events.stories.svelte +59 -0
  14. package/dist/stories/components/Form/RangeSlider/Events/Events.stories.svelte.d.ts +18 -0
  15. package/dist/stories/components/Form/RangeSlider/RangeSlider.stories.svelte +64 -0
  16. package/dist/stories/components/Form/RangeSlider/RangeSlider.stories.svelte.d.ts +21 -0
  17. package/dist/stories/components/Form/RangeSlider/RangeSlider.svelte +525 -0
  18. package/dist/stories/components/Form/RangeSlider/RangeSlider.svelte.d.ts +48 -0
  19. package/dist/stories/components/Form/RangeSlider/Roundness/Roundness.stories.svelte +30 -0
  20. package/dist/stories/components/Form/RangeSlider/Roundness/Roundness.stories.svelte.d.ts +26 -0
  21. package/{src/lib/stories/components/Form/PasswordInput → dist/stories/components/Form/RangeSlider}/Size/Size.stories.svelte +4 -4
  22. package/dist/stories/components/Form/RangeSlider/Size/Size.stories.svelte.d.ts +26 -0
  23. package/dist/stories/components/Form/RangeSlider/WithIcon/WithIcon.stories.svelte +30 -0
  24. package/dist/stories/components/Form/RangeSlider/WithIcon/WithIcon.stories.svelte.d.ts +18 -0
  25. package/dist/stories/components/Form/RangeSlider/utils/scss/mixins.scss +91 -0
  26. package/dist/stories/developer tools/directives/drag/drag.d.ts +3 -0
  27. package/dist/stories/developer tools/directives/drag/drag.js +40 -0
  28. package/dist/styles/_components.css +5 -0
  29. package/package.json +23 -21
  30. package/src/lib/index.ts +4 -0
  31. package/src/lib/stories/components/Form/Button/utils/scss/mixins.scss +3 -3
  32. package/src/lib/stories/components/Form/RangeSlider/RangeSlider.svelte +476 -0
  33. package/src/lib/stories/components/Form/RangeSlider/utils/scss/mixins.scss +91 -0
  34. package/src/lib/stories/developer tools/directives/drag/drag.ts +47 -0
  35. package/src/lib/styles/_components.css +5 -0
  36. package/src/lib/stories/Home.mdx +0 -59
  37. package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
  38. package/src/lib/stories/components/Form/Button/Button.stories.svelte +0 -61
  39. package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +0 -43
  40. package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +0 -36
  41. package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +0 -43
  42. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +0 -23
  43. package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +0 -16
  44. package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +0 -18
  45. package/src/lib/stories/components/Form/DatePicker/Color/Color.stories.svelte +0 -47
  46. package/src/lib/stories/components/Form/DatePicker/Controls/Controls.stories.svelte +0 -58
  47. package/src/lib/stories/components/Form/DatePicker/Customize/Customize.stories.svelte +0 -167
  48. package/src/lib/stories/components/Form/DatePicker/DatePicker.stories.svelte +0 -107
  49. package/src/lib/stories/components/Form/DatePicker/Events/Events.stories.svelte +0 -147
  50. package/src/lib/stories/components/Form/DatePicker/FilterDates/FilterDates.stories.svelte +0 -61
  51. package/src/lib/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte +0 -46
  52. package/src/lib/stories/components/Form/DatePicker/Positions/Positions.stories.svelte +0 -57
  53. package/src/lib/stories/components/Form/DatePicker/Roundness/Roundness.stories.svelte +0 -38
  54. package/src/lib/stories/components/Form/DatePicker/Size/Size.stories.svelte +0 -41
  55. package/src/lib/stories/components/Form/DatePicker/WithIcon/WithIcon.stories.svelte +0 -41
  56. package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +0 -28
  57. package/src/lib/stories/components/Form/Label/Label.stories.svelte +0 -13
  58. package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +0 -36
  59. package/src/lib/stories/components/Form/Message/Message.stories.svelte +0 -27
  60. package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +0 -22
  61. package/src/lib/stories/components/Form/NumericInput/Events/Events.stories.svelte +0 -134
  62. package/src/lib/stories/components/Form/NumericInput/NumericInput.stories.svelte +0 -84
  63. package/src/lib/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +0 -87
  64. package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +0 -132
  65. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +0 -58
  66. package/src/lib/stories/components/Form/Select/Customize/Customize.stories.svelte +0 -139
  67. package/src/lib/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +0 -63
  68. package/src/lib/stories/components/Form/Select/Events/Events.stories.svelte +0 -174
  69. package/src/lib/stories/components/Form/Select/Options/OptionFormat.mdx +0 -40
  70. package/src/lib/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +0 -58
  71. package/src/lib/stories/components/Form/Select/Positions/Positions.stories.svelte +0 -87
  72. package/src/lib/stories/components/Form/Select/Roundness/Roundness.stories.svelte +0 -32
  73. package/src/lib/stories/components/Form/Select/Select.stories.svelte +0 -125
  74. package/src/lib/stories/components/Form/Select/Size/Size.stories.svelte +0 -28
  75. package/src/lib/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +0 -43
  76. package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +0 -125
  77. package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +0 -21
  78. package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +0 -17
  79. package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +0 -43
  80. package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +0 -47
  81. package/src/lib/stories/components/Info/Calendar/Calendar.stories.svelte +0 -121
  82. package/src/lib/stories/components/Info/Calendar/Color/Color.stories.svelte +0 -23
  83. package/src/lib/stories/components/Info/Calendar/Controls/Controls.stories.svelte +0 -26
  84. package/src/lib/stories/components/Info/Calendar/Customize/Customize.stories.svelte +0 -160
  85. package/src/lib/stories/components/Info/Calendar/Events/Events.stories.svelte +0 -122
  86. package/src/lib/stories/components/Info/Calendar/FilterDates/FilterDates.stories.svelte +0 -70
  87. package/src/lib/stories/components/Info/Calendar/Size/Size.stories.svelte +0 -20
  88. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarControls.stories.svelte +0 -36
  89. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/CalendarMonthSelector.stories.svelte +0 -58
  90. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Color/Color.stories.svelte +0 -23
  91. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Customize/Customize.stories.svelte +0 -30
  92. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Events/Events.stories.svelte +0 -25
  93. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/NameTypes/NameTypes.stories.svelte +0 -25
  94. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Roundness/Roundness.stories.svelte +0 -26
  95. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Size/Size.stories.svelte +0 -20
  96. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/CalendarNavigation.stories.svelte +0 -36
  97. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Color/Color.stories.svelte +0 -19
  98. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Customize/Customize.stories.svelte +0 -33
  99. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Events/Events.stories.svelte +0 -37
  100. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Size/Size.stories.svelte +0 -16
  101. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/CalendarYearSelector.stories.svelte +0 -58
  102. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Color/Color.stories.svelte +0 -23
  103. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Customize/Customize.stories.svelte +0 -30
  104. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Events/Events.stories.svelte +0 -25
  105. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Roundness/Roundness.stories.svelte +0 -26
  106. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Size/Size.stories.svelte +0 -20
  107. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Color/Color.stories.svelte +0 -23
  108. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Controls/Controls.stories.svelte +0 -21
  109. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Customize/Customize.stories.svelte +0 -69
  110. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Events/Events.stories.svelte +0 -61
  111. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Size/Size.stories.svelte +0 -20
  112. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.stories.svelte +0 -75
  113. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Color/Color.stories.svelte +0 -41
  114. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Customize/Customize.stories.svelte +0 -45
  115. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Events/Events.stories.svelte +0 -28
  116. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Roundness/Roundness.stories.svelte +0 -31
  117. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Size/Size.stories.svelte +0 -24
  118. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/SpecialChips/SpecialChips.stories.svelte +0 -96
  119. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.stories.svelte +0 -104
  120. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/CalendarWeek.stories.svelte +0 -38
  121. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Customize/Customize.stories.svelte +0 -32
  122. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/NameTypes/NameTypes.stories.svelte +0 -28
  123. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Color/Color.stories.svelte +0 -23
  124. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Customize/Customize.stories.svelte +0 -68
  125. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Events/Events.stories.svelte +0 -24
  126. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Size/Size.stories.svelte +0 -20
  127. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/CalendarMonthChip.stories.svelte +0 -40
  128. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Color/Color.stories.svelte +0 -29
  129. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Customize/Customize.stories.svelte +0 -33
  130. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Events/Events.stories.svelte +0 -23
  131. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Roundness/Roundness.stories.svelte +0 -26
  132. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Size/Size.stories.svelte +0 -19
  133. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthList.stories.svelte +0 -45
  134. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Customize/Customize.stories.svelte +0 -36
  135. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Events/Events.stories.svelte +0 -33
  136. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Size/Size.stories.svelte +0 -19
  137. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/CalendarYearChip.stories.svelte +0 -41
  138. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Color/Color.stories.svelte +0 -30
  139. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Customize/Customize.stories.svelte +0 -33
  140. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Events/Events.stories.svelte +0 -24
  141. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Roundness/Roundness.stories.svelte +0 -27
  142. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearChip/Size/Size.stories.svelte +0 -20
  143. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/CalendarYearList.stories.svelte +0 -39
  144. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Color/Color.stories.svelte +0 -23
  145. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Customize/Customize.stories.svelte +0 -36
  146. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Events/Events.stories.svelte +0 -24
  147. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarYearList/Size/Size.stories.svelte +0 -20
  148. package/src/lib/stories/components/Info/Calendar/utils/createDateOfMonth/index.mdx +0 -121
  149. package/src/lib/stories/components/Info/Calendar/utils/getDatesOfMonth/index.mdx +0 -37
  150. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Customize/Customize.stories.svelte +0 -30
  151. package/src/lib/stories/components/Layout/Menu/DynamicMenu/DynamicMenu.stories.svelte +0 -56
  152. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Events/Events.stories.svelte +0 -48
  153. package/src/lib/stories/components/Layout/Menu/DynamicMenu/KeybaordNavigation/KeybaordNavigation.stories.svelte +0 -29
  154. package/src/lib/stories/components/Layout/Menu/DynamicMenu/Options/OptionFormat.mdx +0 -72
  155. package/src/lib/stories/components/Layout/Menu/Menu.stories.svelte +0 -69
  156. package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte +0 -34
  157. package/src/lib/stories/components/Layout/Menu/MenuItem/Size/Size.stories.svelte +0 -16
  158. package/src/lib/stories/components/Layout/Menu/MenuItem/Type/Type.stories.svelte +0 -21
  159. package/src/lib/stories/components/Layout/Menu/Size/Size.stories.svelte +0 -37
  160. package/src/lib/stories/components/Layout/Paper/Color/Color.stories.svelte +0 -63
  161. package/src/lib/stories/components/Layout/Paper/Paper.stories.svelte +0 -50
  162. package/src/lib/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +0 -25
  163. package/src/lib/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +0 -24
  164. package/src/lib/stories/components/Layout/Separator/Color/Color.stories.svelte +0 -19
  165. package/src/lib/stories/components/Layout/Separator/Separator.stories.svelte +0 -30
  166. package/src/lib/stories/developer tools/Intro.mdx +0 -9
  167. package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.stories.svelte +0 -53
  168. package/src/lib/stories/developer tools/components/DynamicInput/Events/Events.stories.svelte +0 -121
  169. package/src/lib/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte +0 -17
  170. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +0 -38
  171. package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +0 -20
  172. package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +0 -16
  173. package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +0 -47
  174. package/src/lib/stories/developer tools/components/Popper/Popper.stories.svelte +0 -140
  175. package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte +0 -64
  176. package/src/lib/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte +0 -92
  177. package/src/lib/stories/developer tools/components/Popper/Positions/Positions.stories.svelte +0 -114
  178. package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +0 -25
  179. package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +0 -30
  180. package/src/lib/stories/developer tools/directives/clickOutside/index.mdx +0 -25
  181. package/src/lib/stories/developer tools/helpers/Numbers/cleanNumericString/index.mdx +0 -20
  182. package/src/lib/stories/developer tools/helpers/Numbers/isValidNumberValue/index.mdx +0 -71
  183. package/src/lib/stories/developer tools/helpers/Time/getMoment/index.mdx +0 -45
  184. package/src/lib/stories/developer tools/helpers/logger/index.mdx +0 -63
  185. package/src/lib/stories/developer tools/philosophy/Colors/Colors.mdx +0 -43
  186. package/src/lib/stories/developer tools/philosophy/Colors/Colors.stories.svelte +0 -22
  187. package/src/lib/stories/developer tools/philosophy/Colors/Opacity.stories.svelte +0 -11
  188. package/src/lib/stories/developer tools/philosophy/Themes.mdx +0 -23
@@ -0,0 +1,476 @@
1
+ <script lang="ts" module>
2
+ import type { ComponentSize } from '$lib/types/size.js';
3
+ import type { ComponentRoundness } from '$lib/types/roundness.js';
4
+ import type { ChangeEventHandler, FocusEventHandler, FormEventHandler } from 'svelte/elements';
5
+ import type { ComponentColor } from '$lib/types/colors.js';
6
+ import type { Snippet } from 'svelte';
7
+
8
+ export interface RangeSliderProps {
9
+ /** How large should the button be? */
10
+ size?: ComponentSize;
11
+ /** What color to use? */
12
+ color?: ComponentColor;
13
+ /** RangeSlider ref */
14
+ ref?: HTMLInputElement;
15
+ /** How round should the border radius be? */
16
+ roundness?: ComponentRoundness;
17
+ /** How round should the thumb border radius be? */
18
+ thumbRoundness?: ComponentRoundness;
19
+ /** RangeSlider value */
20
+ value: number;
21
+ /** disabled state */
22
+ disabled?: boolean;
23
+ /** Id */
24
+ id?: string;
25
+ /** name */
26
+ name?: string;
27
+ /** Icon before button content */
28
+ before?: Snippet;
29
+ /** Icon after button content */
30
+ after?: Snippet;
31
+ /** Custom css class*/
32
+ class?: string;
33
+ /** oninput event handler */
34
+ oninput?: FormEventHandler<HTMLInputElement>;
35
+ /** onchange event handler */
36
+ onchange?: ChangeEventHandler<HTMLInputElement>;
37
+ /** onblur event handler */
38
+ onblur?: FocusEventHandler<HTMLInputElement>;
39
+ /** onfocus event handler */
40
+ onfocus?: FocusEventHandler<HTMLInputElement>;
41
+ /** Min Value */
42
+ min?: number;
43
+ /** Max Value */
44
+ max?: number;
45
+ /** Value Increment step */
46
+ step?: number;
47
+ }
48
+ </script>
49
+
50
+ <script lang="ts">
51
+ let {
52
+ color = 'primary',
53
+ size = 'normal',
54
+ roundness = 1,
55
+ thumbRoundness = 'full',
56
+ class: className = '',
57
+ ref = $bindable<HTMLInputElement>(),
58
+ value = $bindable<number>(),
59
+ disabled = false,
60
+ id,
61
+ min = 0,
62
+ max = 100,
63
+ step = 0,
64
+ name,
65
+ oninput,
66
+ onchange,
67
+ onblur,
68
+ onfocus,
69
+ before,
70
+ after,
71
+ }: RangeSliderProps = $props();
72
+
73
+ const percentageValue = $derived(((value - min) / (max - min)) * 100);
74
+ </script>
75
+
76
+ <div
77
+ class:disabled
78
+ class={[
79
+ 'dodo-ui-RangeSlider',
80
+ `size--${size}`,
81
+ `roundness--${roundness}`,
82
+ `thumbRoundness--${thumbRoundness}`,
83
+ `color--${color}`,
84
+ className,
85
+ ].join(' ')}
86
+ style={`--dodo-ui-RangeSlider-value-percent: ${percentageValue};`}
87
+ >
88
+ {#if before}
89
+ <span class="content--before">
90
+ {@render before()}
91
+ </span>
92
+ {/if}
93
+
94
+ <input
95
+ type="range"
96
+ class="NativeRangeSlider"
97
+ {min}
98
+ {max}
99
+ {step}
100
+ {oninput}
101
+ {onchange}
102
+ {onblur}
103
+ {onfocus}
104
+ {id}
105
+ {name}
106
+ {disabled}
107
+ bind:this={ref}
108
+ bind:value
109
+ />
110
+
111
+ {#if after}
112
+ <span class="content--after">
113
+ {@render after()}
114
+ </span>
115
+ {/if}
116
+ </div>
117
+
118
+ <style lang="scss">
119
+ @use 'utils/scss/mixins.scss' as *;
120
+
121
+ :global(:root) {
122
+ --dodo-ui-RangeSlider-track-bg: var(--dodo-color-neutral-200);
123
+ --dodo-ui-RangeSlider-track-filled-disabled-bg: var(--dodo-color-neutral-300);
124
+ --dodo-ui-RangeSlider-thumb-disabled-bg: var(--dodo-color-neutral-300);
125
+
126
+ @include generate-dodo-ui-range-slider-colors(neutral);
127
+ @include generate-dodo-ui-range-slider-colors(primary);
128
+ @include generate-dodo-ui-range-slider-colors(secondary);
129
+ @include generate-dodo-ui-range-slider-colors(safe);
130
+ @include generate-dodo-ui-range-slider-colors(warning);
131
+ @include generate-dodo-ui-range-slider-colors(danger);
132
+ }
133
+
134
+ :global(.dodo-theme--dark) {
135
+ --dodo-ui-RangeSlider-track-bg: var(--dodo-color-neutral-400);
136
+ --dodo-ui-RangeSlider-track-filled-disabled-bg: var(--dodo-color-neutral-500);
137
+ --dodo-ui-RangeSlider-thumb-disabled-bg: var(--dodo-color-neutral-500);
138
+
139
+ @include generate-dodo-ui-range-slider-colors-dark(neutral);
140
+ @include generate-dodo-ui-range-slider-colors-dark(primary);
141
+ @include generate-dodo-ui-range-slider-colors-dark(secondary);
142
+ @include generate-dodo-ui-range-slider-colors-dark(safe);
143
+ @include generate-dodo-ui-range-slider-colors-dark(warning);
144
+ @include generate-dodo-ui-range-slider-colors-dark(danger);
145
+ }
146
+
147
+ .dodo-ui-RangeSlider {
148
+ display: flex;
149
+
150
+ .NativeRangeSlider {
151
+ height: 100%;
152
+ -webkit-appearance: none;
153
+ appearance: none;
154
+ background: transparent;
155
+ cursor: pointer;
156
+ width: 100%;
157
+ margin: 0;
158
+ padding: 0;
159
+ overflow: hidden;
160
+ display: flex;
161
+ align-items: center;
162
+ flex: 1;
163
+
164
+ &:focus {
165
+ outline: none;
166
+ }
167
+
168
+ &::-webkit-slider-thumb {
169
+ -webkit-appearance: none; /* Override default look */
170
+ appearance: none;
171
+ border: 0;
172
+ transition: all 150ms;
173
+ }
174
+
175
+ &::-moz-range-thumb {
176
+ border: 0;
177
+ transition: all 150ms;
178
+ }
179
+ }
180
+
181
+ .content {
182
+ &--before {
183
+ display: flex;
184
+ align-items: center;
185
+ justify-content: center;
186
+ }
187
+
188
+ &--after {
189
+ display: flex;
190
+ align-items: center;
191
+ justify-content: center;
192
+ }
193
+ }
194
+
195
+ &.size {
196
+ &--normal {
197
+ height: var(--dodo-ui-element-height-normal);
198
+ .NativeRangeSlider {
199
+ &::-webkit-slider-runnable-track {
200
+ height: var(--dodo-ui-track-element-height-normal);
201
+ }
202
+
203
+ &::-moz-range-track {
204
+ height: var(--dodo-ui-track-element-height-normal);
205
+ }
206
+
207
+ &::-moz-range-progress {
208
+ height: var(--dodo-ui-track-element-height-normal);
209
+ }
210
+
211
+ // Thumb
212
+ &::-webkit-slider-thumb {
213
+ margin-top: -0.5em;
214
+ height: calc(var(--dodo-ui-element-height-normal) / 2);
215
+ width: calc(var(--dodo-ui-element-height-normal) / 2);
216
+ }
217
+
218
+ &::-moz-range-thumb {
219
+ height: calc(var(--dodo-ui-element-height-normal) / 2);
220
+ width: calc(var(--dodo-ui-element-height-normal) / 2);
221
+ }
222
+ }
223
+
224
+ .content {
225
+ &--before {
226
+ margin-right: 12px;
227
+ }
228
+
229
+ &--after {
230
+ margin-left: 12px;
231
+ }
232
+ }
233
+ }
234
+
235
+ &--small {
236
+ height: var(--dodo-ui-element-height-small);
237
+
238
+ .NativeRangeSlider {
239
+ &::-webkit-slider-runnable-track {
240
+ height: var(--dodo-ui-track-element-height-small);
241
+ }
242
+
243
+ &::-moz-range-track {
244
+ height: var(--dodo-ui-track-element-height-small);
245
+ }
246
+
247
+ &::-moz-range-progress {
248
+ height: var(--dodo-ui-track-element-height-small);
249
+ }
250
+
251
+ // Thumb
252
+ &::-webkit-slider-thumb {
253
+ margin-top: -0.45em;
254
+ height: calc(var(--dodo-ui-element-height-small) / 2);
255
+ width: calc(var(--dodo-ui-element-height-small) / 2);
256
+ }
257
+
258
+ &::-moz-range-thumb {
259
+ height: calc(var(--dodo-ui-element-height-small) / 2);
260
+ width: calc(var(--dodo-ui-element-height-small) / 2);
261
+ }
262
+ }
263
+
264
+ .content {
265
+ &--before {
266
+ margin-right: 8px;
267
+ }
268
+
269
+ &--after {
270
+ margin-left: 8px;
271
+ }
272
+ }
273
+ }
274
+
275
+ &--large {
276
+ height: var(--dodo-ui-element-height-large);
277
+
278
+ .NativeRangeSlider {
279
+ &::-webkit-slider-runnable-track {
280
+ height: var(--dodo-ui-track-element-height-large);
281
+ }
282
+
283
+ &::-moz-range-track {
284
+ height: var(--dodo-ui-track-element-height-large);
285
+ }
286
+
287
+ &::-moz-range-progress {
288
+ height: var(--dodo-ui-track-element-height-large);
289
+ }
290
+
291
+ // Thumb
292
+ &::-webkit-slider-thumb {
293
+ margin-top: -0.6em;
294
+ height: calc(var(--dodo-ui-element-height-large) / 2);
295
+ width: calc(var(--dodo-ui-element-height-large) / 2);
296
+ }
297
+
298
+ &::-moz-range-thumb {
299
+ height: calc(var(--dodo-ui-element-height-large) / 2);
300
+ width: calc(var(--dodo-ui-element-height-large) / 2);
301
+ }
302
+ }
303
+
304
+ .content {
305
+ &--before {
306
+ margin-right: 14px;
307
+ }
308
+
309
+ &--after {
310
+ margin-left: 14px;
311
+ }
312
+ }
313
+ }
314
+ }
315
+
316
+ &.color {
317
+ @include generate-dodo-ui-range-slider-color(neutral);
318
+ @include generate-dodo-ui-range-slider-color(primary);
319
+ @include generate-dodo-ui-range-slider-color(secondary);
320
+ @include generate-dodo-ui-range-slider-color(safe);
321
+ @include generate-dodo-ui-range-slider-color(warning);
322
+ @include generate-dodo-ui-range-slider-color(danger);
323
+ }
324
+
325
+ &.roundness {
326
+ &--1 {
327
+ .NativeRangeSlider {
328
+ &::-webkit-slider-runnable-track {
329
+ border-radius: var(--dodo-ui-element-roundness-1);
330
+ }
331
+
332
+ &::-moz-range-track {
333
+ border-radius: var(--dodo-ui-element-roundness-1);
334
+ }
335
+
336
+ &::-moz-range-progress {
337
+ border-radius: var(--dodo-ui-element-roundness-1);
338
+ }
339
+ }
340
+ }
341
+
342
+ &--2 {
343
+ .NativeRangeSlider {
344
+ &::-webkit-slider-runnable-track {
345
+ border-radius: var(--dodo-ui-element-roundness-2);
346
+ }
347
+
348
+ &::-moz-range-track {
349
+ border-radius: var(--dodo-ui-element-roundness-2);
350
+ }
351
+
352
+ &::-moz-range-progress {
353
+ border-radius: var(--dodo-ui-element-roundness-2);
354
+ }
355
+ }
356
+ }
357
+
358
+ &--3 {
359
+ .NativeRangeSlider {
360
+ &::-webkit-slider-runnable-track {
361
+ border-radius: var(--dodo-ui-element-roundness-3);
362
+ }
363
+
364
+ &::-moz-range-track {
365
+ border-radius: var(--dodo-ui-element-roundness-3);
366
+ }
367
+
368
+ &::-moz-range-progress {
369
+ border-radius: var(--dodo-ui-element-roundness-3);
370
+ }
371
+ }
372
+ }
373
+ }
374
+
375
+ &.thumbRoundness {
376
+ &--1 {
377
+ .NativeRangeSlider {
378
+ // Thumb
379
+ &::-webkit-slider-thumb {
380
+ border-radius: var(--dodo-ui-element-roundness-1);
381
+ }
382
+
383
+ &::-moz-range-thumb {
384
+ border-radius: var(--dodo-ui-element-roundness-1);
385
+ }
386
+ }
387
+ }
388
+
389
+ &--2 {
390
+ .NativeRangeSlider {
391
+ // Thumb
392
+ &::-webkit-slider-thumb {
393
+ border-radius: var(--dodo-ui-element-roundness-2);
394
+ }
395
+
396
+ &::-moz-range-thumb {
397
+ border-radius: var(--dodo-ui-element-roundness-2);
398
+ }
399
+ }
400
+ }
401
+
402
+ &--3 {
403
+ .NativeRangeSlider {
404
+ // Thumb
405
+ &::-webkit-slider-thumb {
406
+ border-radius: var(--dodo-ui-element-roundness-3);
407
+ }
408
+
409
+ &::-moz-range-thumb {
410
+ border-radius: var(--dodo-ui-element-roundness-3);
411
+ }
412
+ }
413
+ }
414
+
415
+ &--full {
416
+ .NativeRangeSlider {
417
+ // Thumb
418
+ &::-webkit-slider-thumb {
419
+ border-radius: 50%;
420
+ }
421
+
422
+ // Thumb
423
+ &::-moz-range-thumb {
424
+ border-radius: 50%;
425
+ }
426
+ }
427
+ }
428
+ }
429
+
430
+ .NativeRangeSlider {
431
+ &[disabled] {
432
+ cursor: initial;
433
+
434
+ &::-webkit-slider-runnable-track {
435
+ background: linear-gradient(
436
+ to right,
437
+ var(--dodo-ui-RangeSlider-track-filled-disabled-bg) 0%,
438
+ var(--dodo-ui-RangeSlider-track-filled-disabled-bg)
439
+ calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%),
440
+ var(--dodo-ui-RangeSlider-track-bg)
441
+ calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%),
442
+ var(--dodo-ui-RangeSlider-track-bg) 100%
443
+ );
444
+ }
445
+
446
+ &::-moz-range-progress {
447
+ background: var(--dodo-ui-RangeSlider-track-filled-disabled-bg);
448
+ }
449
+
450
+ &::-webkit-slider-thumb {
451
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
452
+
453
+ &:hover {
454
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
455
+ }
456
+
457
+ &:focus-visible {
458
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
459
+ }
460
+
461
+ &:active {
462
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
463
+ }
464
+ }
465
+
466
+ &::-moz-range-thumb {
467
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
468
+
469
+ &:active {
470
+ background: var(--dodo-ui-RangeSlider-thumb-disabled-bg);
471
+ }
472
+ }
473
+ }
474
+ }
475
+ }
476
+ </style>
@@ -0,0 +1,91 @@
1
+ /// Mixin: generate-dodo-ui-range-slider-colors
2
+ /// Generates CSS custom properties for Dodo UI range-slider styles (text & solid)
3
+ /// across different interaction states (default, hover, active).
4
+ /// @param {String} $color-name - The theme color name (e.g., "primary", "safe", etc.)
5
+ @mixin generate-dodo-ui-range-slider-colors($color-name) {
6
+ --dodo-ui-RangeSlider-thumb-#{$color-name}-bg: var(--dodo-color-#{$color-name}-500);
7
+ --dodo-ui-RangeSlider-thumb-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-600);
8
+ --dodo-ui-RangeSlider-thumb-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-700);
9
+
10
+ --dodo-ui-RangeSlider-track-filled-#{$color-name}-bg: var(--dodo-color-#{$color-name}-500);
11
+ }
12
+
13
+ /// Mixin: generate-dodo-ui-range-slider-colors
14
+ /// Generates CSS custom properties for Dodo UI range-slider styles (text & solid)
15
+ /// across different interaction states (default, hover, active).
16
+ /// @param {String} $color-name - The theme color name (e.g., "primary", "safe", etc.)
17
+ @mixin generate-dodo-ui-range-slider-colors-dark($color-name) {
18
+ --dodo-ui-RangeSlider-thumb-#{$color-name}-bg: var(--dodo-color-#{$color-name}-500);
19
+ --dodo-ui-RangeSlider-thumb-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-400);
20
+ --dodo-ui-RangeSlider-thumb-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-300);
21
+
22
+ --dodo-ui-RangeSlider-track-filled-#{$color-name}-bg: var(--dodo-color-#{$color-name}-500);
23
+ }
24
+
25
+ /// Mixin: generate-dodo-ui-range-slider-color
26
+ /// Auto-generates .color--[theme] > .variant--text & .variant--solid styles
27
+ /// @param {String} $theme - e.g., default, safe, danger, etc.
28
+ @mixin generate-dodo-ui-range-slider-color($theme) {
29
+ &--#{$theme} {
30
+ .NativeRangeSlider {
31
+ &::-webkit-slider-runnable-track {
32
+ background-color: var(--dodo-ui-RangeSlider-track-#{$theme}-bg);
33
+ }
34
+
35
+ &::-moz-range-track {
36
+ background-color: var(--dodo-ui-RangeSlider-track-#{$theme}-bg);
37
+ }
38
+
39
+ &:focus-visible {
40
+ &::-webkit-slider-thumb {
41
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-active-bg);
42
+ }
43
+
44
+ &::-moz-range-thumb {
45
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-active-bg);
46
+ }
47
+ }
48
+
49
+ &::-webkit-slider-runnable-track {
50
+ background: linear-gradient(
51
+ to right,
52
+ var(--dodo-ui-RangeSlider-track-filled-#{$theme}-bg) 0%,
53
+ var(--dodo-ui-RangeSlider-track-filled-#{$theme}-bg)
54
+ calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%),
55
+ var(--dodo-ui-RangeSlider-track-bg)
56
+ calc(var(--dodo-ui-RangeSlider-value-percent, 50%) * 1%),
57
+ var(--dodo-ui-RangeSlider-track-bg) 100%
58
+ );
59
+ }
60
+
61
+ &::-moz-range-progress {
62
+ background: var(--dodo-ui-RangeSlider-track-filled-#{$theme}-bg);
63
+ }
64
+
65
+ // Thumb
66
+ &::-webkit-slider-thumb {
67
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-bg);
68
+
69
+ &:hover {
70
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-hover-bg);
71
+ }
72
+
73
+ &:active {
74
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-active-bg);
75
+ }
76
+ }
77
+
78
+ &::-moz-range-thumb {
79
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-bg);
80
+
81
+ &:hover {
82
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-hover-bg);
83
+ }
84
+
85
+ &:active {
86
+ background: var(--dodo-ui-RangeSlider-thumb-#{$theme}-active-bg);
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,47 @@
1
+ export function drag(node: HTMLElement) {
2
+ let dragging = false;
3
+
4
+ function getX(e: MouseEvent | TouchEvent): number {
5
+ return 'touches' in e ? e.touches[0].clientX : e.clientX;
6
+ }
7
+
8
+ function handleStart(e: MouseEvent | TouchEvent) {
9
+ dragging = true;
10
+ const x = getX(e);
11
+ node.dispatchEvent(new CustomEvent('dragstart', { detail: { x } }));
12
+
13
+ window.addEventListener('mousemove', handleMove);
14
+ window.addEventListener('mouseup', handleEnd);
15
+ window.addEventListener('touchmove', handleMove);
16
+ window.addEventListener('touchend', handleEnd);
17
+ }
18
+
19
+ function handleMove(e: MouseEvent | TouchEvent) {
20
+ if (!dragging) return;
21
+ const x = getX(e);
22
+
23
+ node.dispatchEvent(new CustomEvent('dragging', { detail: { x } }));
24
+ }
25
+
26
+ function handleEnd(e: MouseEvent | TouchEvent) {
27
+ if (!dragging) return;
28
+ dragging = false;
29
+ const x = getX(e);
30
+ node.dispatchEvent(new CustomEvent('dragend', { detail: { x } }));
31
+
32
+ window.removeEventListener('mousemove', handleMove);
33
+ window.removeEventListener('mouseup', handleEnd);
34
+ window.removeEventListener('touchmove', handleMove);
35
+ window.removeEventListener('touchend', handleEnd);
36
+ }
37
+
38
+ node.addEventListener('mousedown', handleStart);
39
+ node.addEventListener('touchstart', handleStart, { passive: true });
40
+
41
+ return {
42
+ destroy() {
43
+ node.removeEventListener('mousedown', handleStart);
44
+ node.removeEventListener('touchstart', handleStart);
45
+ },
46
+ };
47
+ }
@@ -4,6 +4,11 @@
4
4
  --dodo-ui-element-height-normal: 40px;
5
5
  --dodo-ui-element-height-large: 50px;
6
6
 
7
+ /* Size Thin elements */
8
+ --dodo-ui-track-element-height-small: 6px;
9
+ --dodo-ui-track-element-height-normal: 8px;
10
+ --dodo-ui-track-element-height-large: 10px;
11
+
7
12
  /* Roundness */
8
13
  --dodo-ui-element-roundness-1: 0.4375em;
9
14
  --dodo-ui-element-roundness-2: 0.8125em;
@@ -1,59 +0,0 @@
1
- import { Source } from '@storybook/addon-docs/blocks';
2
- import item from '../../../package.json?raw';
3
-
4
- <main style={{ textAlign: 'center' }}>
5
-
6
- <img src="dodo-circle-6.png" style={{ width: 200, height: 'auto' }} />
7
-
8
- # Dodo UI
9
-
10
- <h3 style={{ fontWeight: 500 }}>v{JSON.parse(item)?.version}</h3>
11
-
12
- <h3 style={{ fontWeight: 400 }}>An open-source, opinionated UI framework for Svelte.</h3>
13
-
14
- ### [Github](https://github.com/flightlesslabs/dodo-ui) - [npm](https://www.npmjs.com/package/@flightlesslabs/dodo-ui)
15
-
16
- </main>
17
-
18
- <br />
19
- <br />
20
-
21
- ## Install
22
-
23
- pnpm
24
-
25
- <Source
26
- dark
27
- language="bash"
28
- code={`
29
- pnpm add @flightlesslabs/dodo-ui
30
- `}
31
- />
32
-
33
- npm
34
-
35
- <Source
36
- dark
37
- language="bash"
38
- code={`
39
- npm i @flightlesslabs/dodo-ui
40
- `}
41
- />
42
-
43
- ## Use it!
44
-
45
- Lets import [Button](?path=/docs/components-form-button--docs) component. Checkout documentation for [Button](?path=/docs/components-form-button--docs)
46
-
47
- <Source
48
- dark
49
- language="js"
50
- code={`
51
- import { Button } '@flightlesslabs/dodo-ui';
52
- `}
53
- />
54
-
55
- ## Explore more
56
-
57
- - [Dark Theme](?path=/docs/developer-tools-philosophy-themes--docs#dark-theme)
58
- - [Colors](?path=/docs/developer-tools-philosophy-colors--docs)
59
- - [Adjust Color Opacity](?path=/docs/developer-tools-philosophy-colors--docs#adjusting-opacity)