@flightlesslabs/dodo-ui 0.12.1 → 0.14.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 +1 -1
  4. package/dist/stories/components/Form/Button/Button.svelte.d.ts +1 -1
  5. package/dist/stories/components/Form/RangeSlider/RangeSlider.svelte +32 -19
  6. package/{src/lib/stories/components/Form/RangeSlider → dist/stories/components/Form/Toggle}/Color/Color.stories.svelte +4 -4
  7. package/dist/stories/components/Form/Toggle/Color/Color.stories.svelte.d.ts +26 -0
  8. package/dist/stories/components/Form/Toggle/Events/Events.stories.svelte +35 -0
  9. package/dist/stories/components/Form/Toggle/Events/Events.stories.svelte.d.ts +18 -0
  10. package/{src/lib/stories/components/Form/NumericInput → dist/stories/components/Form/Toggle}/Roundness/Roundness.stories.svelte +8 -6
  11. package/dist/stories/components/Form/Toggle/Roundness/Roundness.stories.svelte.d.ts +26 -0
  12. package/{src/lib/stories/components/Form/RangeSlider → dist/stories/components/Form/Toggle}/Size/Size.stories.svelte +4 -4
  13. package/dist/stories/components/Form/Toggle/Size/Size.stories.svelte.d.ts +26 -0
  14. package/dist/stories/components/Form/Toggle/Toggle.stories.svelte +37 -0
  15. package/dist/stories/components/Form/Toggle/Toggle.stories.svelte.d.ts +21 -0
  16. package/dist/stories/components/Form/Toggle/Toggle.svelte +369 -0
  17. package/dist/stories/components/Form/Toggle/Toggle.svelte.d.ts +34 -0
  18. package/dist/stories/components/Form/Toggle/utils/scss/mixins.scss +81 -0
  19. package/package.json +42 -40
  20. package/src/lib/index.ts +4 -0
  21. package/src/lib/stories/components/Form/Button/Button.svelte +2 -2
  22. package/src/lib/stories/components/Form/RangeSlider/RangeSlider.svelte +33 -22
  23. package/src/lib/stories/components/Form/Toggle/Toggle.svelte +262 -0
  24. package/src/lib/stories/components/Form/Toggle/utils/scss/mixins.scss +81 -0
  25. package/src/lib/stories/Home.mdx +0 -59
  26. package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
  27. package/src/lib/stories/components/Form/Button/Button.stories.svelte +0 -61
  28. package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +0 -43
  29. package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +0 -36
  30. package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +0 -43
  31. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +0 -23
  32. package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +0 -16
  33. package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +0 -18
  34. package/src/lib/stories/components/Form/DatePicker/Color/Color.stories.svelte +0 -47
  35. package/src/lib/stories/components/Form/DatePicker/Controls/Controls.stories.svelte +0 -58
  36. package/src/lib/stories/components/Form/DatePicker/Customize/Customize.stories.svelte +0 -167
  37. package/src/lib/stories/components/Form/DatePicker/DatePicker.stories.svelte +0 -107
  38. package/src/lib/stories/components/Form/DatePicker/Events/Events.stories.svelte +0 -147
  39. package/src/lib/stories/components/Form/DatePicker/FilterDates/FilterDates.stories.svelte +0 -61
  40. package/src/lib/stories/components/Form/DatePicker/Positions/AutoPosition/AutoPosition.stories.svelte +0 -46
  41. package/src/lib/stories/components/Form/DatePicker/Positions/Positions.stories.svelte +0 -57
  42. package/src/lib/stories/components/Form/DatePicker/Roundness/Roundness.stories.svelte +0 -38
  43. package/src/lib/stories/components/Form/DatePicker/Size/Size.stories.svelte +0 -41
  44. package/src/lib/stories/components/Form/DatePicker/WithIcon/WithIcon.stories.svelte +0 -41
  45. package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +0 -28
  46. package/src/lib/stories/components/Form/Label/Label.stories.svelte +0 -13
  47. package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +0 -36
  48. package/src/lib/stories/components/Form/Message/Message.stories.svelte +0 -27
  49. package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +0 -22
  50. package/src/lib/stories/components/Form/NumericInput/Events/Events.stories.svelte +0 -134
  51. package/src/lib/stories/components/Form/NumericInput/NumericInput.stories.svelte +0 -84
  52. package/src/lib/stories/components/Form/NumericInput/Size/Size.stories.svelte +0 -16
  53. package/src/lib/stories/components/Form/NumericInput/Validation/Validation.stories.svelte +0 -87
  54. package/src/lib/stories/components/Form/NumericInput/WithIcon/WithIcon.stories.svelte +0 -31
  55. package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +0 -132
  56. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +0 -58
  57. package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +0 -20
  58. package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +0 -16
  59. package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +0 -31
  60. package/src/lib/stories/components/Form/RangeSlider/Events/Events.stories.svelte +0 -63
  61. package/src/lib/stories/components/Form/RangeSlider/RangeSlider.stories.svelte +0 -69
  62. package/src/lib/stories/components/Form/RangeSlider/Roundness/Roundness.stories.svelte +0 -30
  63. package/src/lib/stories/components/Form/RangeSlider/WithIcon/WithIcon.stories.svelte +0 -33
  64. package/src/lib/stories/components/Form/Select/Customize/Customize.stories.svelte +0 -139
  65. package/src/lib/stories/components/Form/Select/DropDownArrow/DropDownArrow.stories.svelte +0 -63
  66. package/src/lib/stories/components/Form/Select/Events/Events.stories.svelte +0 -174
  67. package/src/lib/stories/components/Form/Select/Options/OptionFormat.mdx +0 -40
  68. package/src/lib/stories/components/Form/Select/Positions/AutoPosition/AutoPosition.stories.svelte +0 -58
  69. package/src/lib/stories/components/Form/Select/Positions/Positions.stories.svelte +0 -87
  70. package/src/lib/stories/components/Form/Select/Roundness/Roundness.stories.svelte +0 -32
  71. package/src/lib/stories/components/Form/Select/Select.stories.svelte +0 -125
  72. package/src/lib/stories/components/Form/Select/Size/Size.stories.svelte +0 -28
  73. package/src/lib/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +0 -43
  74. package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +0 -125
  75. package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +0 -21
  76. package/src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte +0 -17
  77. package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +0 -43
  78. package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +0 -47
  79. package/src/lib/stories/components/Info/Calendar/Calendar.stories.svelte +0 -121
  80. package/src/lib/stories/components/Info/Calendar/Color/Color.stories.svelte +0 -23
  81. package/src/lib/stories/components/Info/Calendar/Controls/Controls.stories.svelte +0 -26
  82. package/src/lib/stories/components/Info/Calendar/Customize/Customize.stories.svelte +0 -160
  83. package/src/lib/stories/components/Info/Calendar/Events/Events.stories.svelte +0 -122
  84. package/src/lib/stories/components/Info/Calendar/FilterDates/FilterDates.stories.svelte +0 -70
  85. package/src/lib/stories/components/Info/Calendar/Size/Size.stories.svelte +0 -20
  86. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarControls.stories.svelte +0 -36
  87. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/CalendarMonthSelector.stories.svelte +0 -58
  88. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Color/Color.stories.svelte +0 -23
  89. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Customize/Customize.stories.svelte +0 -30
  90. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Events/Events.stories.svelte +0 -25
  91. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/NameTypes/NameTypes.stories.svelte +0 -25
  92. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Roundness/Roundness.stories.svelte +0 -26
  93. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarMonthSelector/Size/Size.stories.svelte +0 -20
  94. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/CalendarNavigation.stories.svelte +0 -36
  95. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Color/Color.stories.svelte +0 -19
  96. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Customize/Customize.stories.svelte +0 -33
  97. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Events/Events.stories.svelte +0 -37
  98. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarNavigation/Size/Size.stories.svelte +0 -16
  99. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/CalendarYearSelector.stories.svelte +0 -58
  100. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Color/Color.stories.svelte +0 -23
  101. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Customize/Customize.stories.svelte +0 -30
  102. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Events/Events.stories.svelte +0 -25
  103. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Roundness/Roundness.stories.svelte +0 -26
  104. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/CalendarYearSelector/Size/Size.stories.svelte +0 -20
  105. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Color/Color.stories.svelte +0 -23
  106. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Controls/Controls.stories.svelte +0 -21
  107. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Customize/Customize.stories.svelte +0 -69
  108. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Events/Events.stories.svelte +0 -61
  109. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarControls/Size/Size.stories.svelte +0 -20
  110. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/CalendarDateChip.stories.svelte +0 -75
  111. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Color/Color.stories.svelte +0 -41
  112. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Customize/Customize.stories.svelte +0 -45
  113. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Events/Events.stories.svelte +0 -28
  114. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Roundness/Roundness.stories.svelte +0 -31
  115. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/Size/Size.stories.svelte +0 -24
  116. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDateChip/SpecialChips/SpecialChips.stories.svelte +0 -96
  117. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarDatesChart.stories.svelte +0 -104
  118. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/CalendarWeek.stories.svelte +0 -38
  119. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Customize/Customize.stories.svelte +0 -32
  120. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/NameTypes/NameTypes.stories.svelte +0 -28
  121. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/CalendarWeek/Size/Size.stories.svelte +0 -16
  122. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Color/Color.stories.svelte +0 -23
  123. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Customize/Customize.stories.svelte +0 -68
  124. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Events/Events.stories.svelte +0 -24
  125. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarDatesChart/Size/Size.stories.svelte +0 -20
  126. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/CalendarMonthChip.stories.svelte +0 -40
  127. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Color/Color.stories.svelte +0 -29
  128. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Customize/Customize.stories.svelte +0 -33
  129. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Events/Events.stories.svelte +0 -23
  130. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Roundness/Roundness.stories.svelte +0 -26
  131. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthChip/Size/Size.stories.svelte +0 -19
  132. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/CalendarMonthList.stories.svelte +0 -45
  133. package/src/lib/stories/components/Info/Calendar/SubComponents/CalendarMonthList/Color/Color.stories.svelte +0 -22
  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
@@ -91,22 +91,24 @@
91
91
  </span>
92
92
  {/if}
93
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
- />
94
+ <div class="RangeSliderContainer">
95
+ <input
96
+ type="range"
97
+ class="NativeRangeSlider"
98
+ {min}
99
+ {max}
100
+ {step}
101
+ {oninput}
102
+ {onchange}
103
+ {onblur}
104
+ {onfocus}
105
+ {id}
106
+ {name}
107
+ {disabled}
108
+ bind:this={ref}
109
+ bind:value
110
+ />
111
+ </div>
110
112
 
111
113
  {#if after}
112
114
  <span class="content--after">
@@ -147,19 +149,22 @@
147
149
  .dodo-ui-RangeSlider {
148
150
  display: flex;
149
151
 
152
+ .RangeSliderContainer {
153
+ flex: 1;
154
+ display: flex;
155
+ flex-direction: column;
156
+ }
157
+
150
158
  .NativeRangeSlider {
151
- height: 100%;
152
159
  -webkit-appearance: none;
153
160
  appearance: none;
154
161
  background: transparent;
155
162
  cursor: pointer;
156
- width: 100%;
157
163
  margin: 0;
158
164
  padding: 0;
159
165
  overflow: hidden;
160
166
  display: flex;
161
167
  align-items: center;
162
- flex: 1;
163
168
 
164
169
  &:focus {
165
170
  outline: none;
@@ -194,8 +199,10 @@
194
199
 
195
200
  &.size {
196
201
  &--normal {
197
- height: var(--dodo-ui-element-height-normal);
202
+ min-height: var(--dodo-ui-element-height-normal);
198
203
  .NativeRangeSlider {
204
+ height: var(--dodo-ui-element-height-normal);
205
+
199
206
  &::-webkit-slider-runnable-track {
200
207
  height: var(--dodo-ui-track-element-height-normal);
201
208
  }
@@ -233,9 +240,11 @@
233
240
  }
234
241
 
235
242
  &--small {
236
- height: var(--dodo-ui-element-height-small);
243
+ min-height: var(--dodo-ui-element-height-small);
237
244
 
238
245
  .NativeRangeSlider {
246
+ height: var(--dodo-ui-element-height-small);
247
+
239
248
  &::-webkit-slider-runnable-track {
240
249
  height: var(--dodo-ui-track-element-height-small);
241
250
  }
@@ -273,9 +282,11 @@
273
282
  }
274
283
 
275
284
  &--large {
276
- height: var(--dodo-ui-element-height-large);
285
+ min-height: var(--dodo-ui-element-height-large);
277
286
 
278
287
  .NativeRangeSlider {
288
+ height: var(--dodo-ui-element-height-large);
289
+
279
290
  &::-webkit-slider-runnable-track {
280
291
  height: var(--dodo-ui-track-element-height-large);
281
292
  }
@@ -0,0 +1,262 @@
1
+ <script lang="ts" module>
2
+ import type { ComponentColor } from '$lib/types/colors.js';
3
+ import type { ComponentRoundness } from '$lib/types/roundness.js';
4
+ import type { ComponentSize } from '$lib/types/size.js';
5
+
6
+ import type { Snippet } from 'svelte';
7
+ import type { ChangeEventHandler } from 'svelte/elements';
8
+
9
+ export interface ToggleProps {
10
+ /** Toggle contents goes here */
11
+ children?: Snippet;
12
+ /** Toggle ref */
13
+ ref?: HTMLInputElement;
14
+ /** How large should the toggle be? */
15
+ size?: ComponentSize;
16
+ /** What color to use? */
17
+ color?: ComponentColor;
18
+ /** How round should the border radius be? */
19
+ roundness?: ComponentRoundness;
20
+ /** Toggle disabled state */
21
+ disabled?: boolean;
22
+ /** Name */
23
+ name?: string;
24
+ /** Id */
25
+ id?: string;
26
+ /** Title (for tooltip) */
27
+ title?: string;
28
+ /** Custom css class*/
29
+ class?: string;
30
+ /** onchange event handler */
31
+ onchange?: ChangeEventHandler<HTMLInputElement>;
32
+ /** checked */
33
+ checked?: boolean;
34
+ }
35
+ </script>
36
+
37
+ <script lang="ts">
38
+ let {
39
+ children,
40
+ size = 'normal',
41
+ color = 'primary',
42
+ roundness = 3,
43
+ name,
44
+ id,
45
+ title,
46
+ class: className = '',
47
+ disabled = false,
48
+ checked = $bindable<boolean>(),
49
+ ref = $bindable<HTMLInputElement>(),
50
+ onchange,
51
+ }: ToggleProps = $props();
52
+ </script>
53
+
54
+ <label
55
+ class:disabled
56
+ class={[
57
+ 'dodo-ui-Toggle',
58
+ `size--${size}`,
59
+ `color--${color}`,
60
+ `roundness--${roundness}`,
61
+ className,
62
+ ].join(' ')}
63
+ for={id}
64
+ >
65
+ <input type="checkbox" {name} {id} {title} {disabled} {onchange} bind:this={ref} bind:checked />
66
+ <div class="Toggle">
67
+ <span class="ToggleHandle"></span>
68
+ </div>
69
+
70
+ {#if children}
71
+ <div class="ToggleMessage">
72
+ {@render children()}
73
+ </div>
74
+ {/if}
75
+ </label>
76
+
77
+ <style lang="scss">
78
+ @use 'utils/scss/mixins.scss' as *;
79
+
80
+ :global(:root) {
81
+ --dodo-ui-Toggle-disabled-color: var(--dodo-color-neutral-400);
82
+ --dodo-ui-Toggle-disabled-bg: var(--dodo-color-neutral-200);
83
+
84
+ --dodo-ui-ToggleHandle-bg: var(--dodo-color-neutral-500);
85
+ --dodo-ui-ToggleHandle-disabled-bg: var(--dodo-color-neutral-400);
86
+
87
+ @include generate-dodo-ui-toggle-colors(neutral);
88
+ @include generate-dodo-ui-toggle-colors(primary);
89
+ @include generate-dodo-ui-toggle-colors(secondary);
90
+ @include generate-dodo-ui-toggle-colors(safe);
91
+ @include generate-dodo-ui-toggle-colors(warning);
92
+ @include generate-dodo-ui-toggle-colors(danger);
93
+ }
94
+
95
+ :global(.dodo-theme--dark) {
96
+ --dodo-ui-Toggle-disabled-bg: var(--dodo-color-neutral-100);
97
+ --dodo-ui-Toggle-disabled-color: var(--dodo-color-neutral-500);
98
+
99
+ --dodo-ui-ToggleHandle-bg: var(--dodo-color-neutral-300);
100
+ --dodo-ui-ToggleHandle-disabled-bg: var(--dodo-color-neutral-200);
101
+
102
+ @include generate-dodo-ui-toggle-colors-dark(neutral);
103
+ @include generate-dodo-ui-toggle-colors-dark(primary);
104
+ @include generate-dodo-ui-toggle-colors-dark(secondary);
105
+ @include generate-dodo-ui-toggle-colors-dark(safe);
106
+ @include generate-dodo-ui-toggle-colors-dark(warning);
107
+ @include generate-dodo-ui-toggle-colors-dark(danger);
108
+ }
109
+
110
+ .dodo-ui-Toggle {
111
+ cursor: pointer;
112
+ outline: none;
113
+ display: inline-flex;
114
+ padding: 0;
115
+ margin: 0;
116
+
117
+ input {
118
+ opacity: 0;
119
+ width: 0;
120
+ height: 0;
121
+
122
+ &:checked {
123
+ & + .Toggle {
124
+ .ToggleHandle {
125
+ transform: translateX(var(--ToggleHandle-offset));
126
+ }
127
+ }
128
+
129
+ &:not([disabled]) {
130
+ & + .Toggle {
131
+ .ToggleHandle {
132
+ background-color: var(--dodo-color-constant-white);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+
139
+ .Toggle {
140
+ transition: all 150ms;
141
+ text-decoration: none;
142
+ margin: 0;
143
+ display: inline-flex;
144
+ justify-content: flex-start;
145
+ align-items: center;
146
+ font-family: inherit;
147
+ border-style: solid;
148
+ border-width: var(--dodo-ui-element-border-width);
149
+ border-color: transparent;
150
+ outline: 0;
151
+ letter-spacing: 0.3px;
152
+ padding: 0 var(--dodo-ui-space-small);
153
+ border-radius: inherit;
154
+ position: relative;
155
+ }
156
+
157
+ .ToggleMessage {
158
+ display: flex;
159
+ align-items: center;
160
+ margin-left: var(--dodo-ui-space);
161
+ user-select: none;
162
+ }
163
+
164
+ .ToggleHandle {
165
+ display: flex;
166
+ border-radius: 50%;
167
+ transition: all 150ms;
168
+ height: var(--ToggleHandle-size);
169
+ width: var(--ToggleHandle-size);
170
+ background-color: var(--dodo-ui-ToggleHandle-bg);
171
+ position: absolute;
172
+ right: initial;
173
+ }
174
+
175
+ &.size {
176
+ &--normal {
177
+ font-size: 1rem;
178
+ --ToggleHandle-size: calc(var(--dodo-ui-element-height-normal) / 1.8);
179
+ --ToggleHandle-offset: calc(var(--dodo-ui-element-height-normal) / 1.7);
180
+
181
+ .Toggle {
182
+ height: calc(var(--dodo-ui-element-height-normal) / 1.2);
183
+ width: calc(var(--dodo-ui-element-height-normal) * 1.5);
184
+ }
185
+ }
186
+
187
+ &--small {
188
+ font-size: 0.9rem;
189
+ --ToggleHandle-size: calc(var(--dodo-ui-element-height-small) / 1.8);
190
+ --ToggleHandle-offset: calc(var(--dodo-ui-element-height-small) / 1.9);
191
+
192
+ .Toggle {
193
+ height: calc(var(--dodo-ui-element-height-small) / 1.2);
194
+ width: calc(var(--dodo-ui-element-height-small) * 1.5);
195
+ }
196
+ }
197
+
198
+ &--large {
199
+ font-size: 1.1rem;
200
+ --ToggleHandle-size: calc(var(--dodo-ui-element-height-large) / 1.8);
201
+ --ToggleHandle-offset: calc(var(--dodo-ui-element-height-large) / 1.6);
202
+
203
+ .Toggle {
204
+ height: calc(var(--dodo-ui-element-height-large) / 1.2);
205
+ width: calc(var(--dodo-ui-element-height-large) * 1.5);
206
+ }
207
+ }
208
+ }
209
+
210
+ &.roundness {
211
+ &--1 {
212
+ border-radius: var(--dodo-ui-element-roundness-1);
213
+ }
214
+
215
+ &--2 {
216
+ border-radius: var(--dodo-ui-element-roundness-2);
217
+ }
218
+
219
+ &--3 {
220
+ border-radius: var(--dodo-ui-element-roundness-3);
221
+ }
222
+ }
223
+
224
+ &.color {
225
+ @include generate-dodo-ui-toggle-color(neutral);
226
+ @include generate-dodo-ui-toggle-color(primary);
227
+ @include generate-dodo-ui-toggle-color(secondary);
228
+ @include generate-dodo-ui-toggle-color(safe);
229
+ @include generate-dodo-ui-toggle-color(warning);
230
+ @include generate-dodo-ui-toggle-color(danger);
231
+ }
232
+
233
+ &.disabled {
234
+ cursor: initial;
235
+ color: var(--dodo-ui-Toggle-disabled-color);
236
+
237
+ .Toggle {
238
+ background-color: var(--dodo-ui-Toggle-disabled-bg);
239
+ }
240
+
241
+ .ToggleHandle {
242
+ background-color: var(--dodo-ui-ToggleHandle-disabled-bg);
243
+ }
244
+
245
+ &:hover {
246
+ color: var(--dodo-ui-Toggle-disabled-color);
247
+
248
+ .Toggle {
249
+ background-color: var(--dodo-ui-Toggle-disabled-bg);
250
+ }
251
+ }
252
+
253
+ &:active {
254
+ color: var(--dodo-ui-Toggle-disabled-color);
255
+
256
+ .Toggle {
257
+ background-color: var(--dodo-ui-Toggle-disabled-bg);
258
+ }
259
+ }
260
+ }
261
+ }
262
+ </style>
@@ -0,0 +1,81 @@
1
+ /// Mixin: generate-dodo-ui-toggle-colors
2
+ /// Generates CSS custom properties for Dodo UI toggle 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-toggle-colors($color-name) {
6
+ --dodo-ui-Toggle-#{$color-name}-bg: var(--dodo-color-#{$color-name}-200);
7
+ --dodo-ui-Toggle-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-300);
8
+ --dodo-ui-Toggle-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-400);
9
+
10
+ --dodo-ui-Toggle-#{$color-name}-checked-bg: var(--dodo-color-#{$color-name}-500);
11
+ --dodo-ui-Toggle-#{$color-name}-checked-hover-bg: var(--dodo-color-#{$color-name}-600);
12
+ --dodo-ui-Toggle-#{$color-name}-checked-active-bg: var(--dodo-color-#{$color-name}-700);
13
+ }
14
+
15
+ /// Mixin: generate-dodo-ui-toggle-colors
16
+ /// Generates CSS custom properties for Dodo UI toggle styles (text & solid)
17
+ /// across different interaction states (default, hover, active).
18
+ /// @param {String} $color-name - The theme color name (e.g., "primary", "safe", etc.)
19
+ @mixin generate-dodo-ui-toggle-colors-dark($color-name) {
20
+ --dodo-ui-Toggle-#{$color-name}-bg: var(--dodo-color-#{$color-name}-800);
21
+ --dodo-ui-Toggle-#{$color-name}-hover-bg: var(--dodo-color-#{$color-name}-700);
22
+ --dodo-ui-Toggle-#{$color-name}-active-bg: var(--dodo-color-#{$color-name}-600);
23
+
24
+ --dodo-ui-Toggle-#{$color-name}-checked-bg: var(--dodo-color-#{$color-name}-400);
25
+ --dodo-ui-Toggle-#{$color-name}-checked-hover-bg: var(--dodo-color-#{$color-name}-300);
26
+ --dodo-ui-Toggle-#{$color-name}-checked-active-bg: var(--dodo-color-#{$color-name}-200);
27
+ }
28
+
29
+ /// Mixin: generate-dodo-ui-toggle-color
30
+ /// @param {String} $theme - e.g., default, safe, danger, etc.
31
+ @mixin generate-dodo-ui-toggle-color($theme) {
32
+ &--#{$theme} {
33
+ .Toggle {
34
+ background-color: var(--dodo-ui-Toggle-#{$theme}-bg);
35
+ }
36
+
37
+ input:checked:not([disabled]) {
38
+ & + .Toggle {
39
+ background-color: var(--dodo-ui-Toggle-#{$theme}-checked-bg);
40
+ }
41
+ }
42
+
43
+ &:hover {
44
+ .Toggle {
45
+ background-color: var(--dodo-ui-Toggle-#{$theme}-hover-bg);
46
+ }
47
+
48
+ input:checked:not([disabled]) {
49
+ & + .Toggle {
50
+ background-color: var(--dodo-ui-Toggle-#{$theme}-checked-hover-bg);
51
+ }
52
+ }
53
+ }
54
+
55
+ &:active {
56
+ .Toggle {
57
+ background-color: var(--dodo-ui-Toggle-#{$theme}-active-bg);
58
+ }
59
+
60
+ input:checked:not([disabled]) {
61
+ & + .Toggle {
62
+ background-color: var(--dodo-ui-Toggle-#{$theme}-checked-active-bg);
63
+ }
64
+ }
65
+ }
66
+
67
+ input:not([disabled]) {
68
+ &:focus-visible {
69
+ & + .Toggle {
70
+ background-color: var(--dodo-ui-Toggle-#{$theme}-active-bg);
71
+ }
72
+
73
+ &:checked {
74
+ & + .Toggle {
75
+ background-color: var(--dodo-ui-Toggle-#{$theme}-checked-active-bg);
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
@@ -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)
@@ -1,61 +0,0 @@
1
- <script module lang="ts">
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import Button, { buttonTypeArray } from './Button.svelte';
4
- import type { StoryBookArgTypes } from '$lib/storybook-types.js';
5
- import { componentRoundnessArray } from '$lib/types/roundness.js';
6
- import { componentColorArray } from '$lib/types/colors.js';
7
- import { componentWeightArray } from '$lib/types/weight.js';
8
- import { componentSizeArray } from '$lib/types/size.js';
9
-
10
- export const storyButtonArgTypes: StoryBookArgTypes = {
11
- type: {
12
- control: { type: 'select' },
13
- options: buttonTypeArray,
14
- },
15
- color: {
16
- control: { type: 'select' },
17
- options: componentColorArray,
18
- },
19
- variant: {
20
- control: { type: 'select' },
21
- options: componentWeightArray,
22
- },
23
- roundness: {
24
- control: { type: 'select' },
25
- options: componentRoundnessArray,
26
- },
27
- size: {
28
- control: { type: 'select' },
29
- options: componentSizeArray,
30
- },
31
- };
32
-
33
- // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
34
- const { Story } = defineMeta({
35
- component: Button,
36
- tags: ['autodocs'],
37
- argTypes: storyButtonArgTypes,
38
- });
39
- </script>
40
-
41
- <!-- Button with default style -->
42
- <Story name="Primary">Click me!</Story>
43
-
44
- <!-- Button with border around it -->
45
- <Story name="Outline" args={{ outline: true, variant: 'text' }}>Click me!</Story>
46
-
47
- <Story name="Disabled" args={{ disabled: true }}>Click me!</Story>
48
-
49
- <!-- Form submit button -->
50
- <Story name="Sumbit Button" args={{ type: 'submit' }}>Submit Form</Story>
51
-
52
- <!-- Form submit button -->
53
- <Story name="Full width Button" args={{ fullWidth: true }}>Click me!</Story>
54
-
55
- <!-- Anchor Link styled like a Button -->
56
- <Story
57
- name="Link Button"
58
- args={{ href: 'https://www.w3schools.com/tags/tag_a.asp', target: '_blank' }}
59
- >
60
- Link
61
- </Story>
@@ -1,43 +0,0 @@
1
- <script module>
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import Button from '../Button.svelte';
4
- import { storyButtonArgTypes } from '../Button.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: Button,
9
- tags: ['autodocs'],
10
- argTypes: storyButtonArgTypes,
11
- });
12
- </script>
13
-
14
- <Story name="Primary">Click me!</Story>
15
- <Story name="Secondary" args={{ color: 'secondary' }}>Click me!</Story>
16
- <Story name="Neutral" args={{ color: 'neutral' }}>Click me!</Story>
17
- <Story name="Safe" args={{ color: 'safe' }}>Click me!</Story>
18
- <Story name="Warning" args={{ color: 'warning' }}>Click me!</Story>
19
- <Story name="Danger" args={{ color: 'danger' }}>Click me!</Story>
20
-
21
- <Story name="Primary Text" args={{ color: 'primary', variant: 'text' }}>Click me!</Story>
22
- <Story name="Secondary Text" args={{ color: 'secondary', variant: 'text' }}>Click me!</Story>
23
- <Story name="Neutral Text" args={{ color: 'neutral', variant: 'text' }}>Click me!</Story>
24
- <Story name="Safe Text" args={{ color: 'safe', variant: 'text' }}>Click me!</Story>
25
- <Story name="Warning Text" args={{ color: 'warning', variant: 'text' }}>Click me!</Story>
26
- <Story name="Danger Text" args={{ color: 'danger', variant: 'text' }}>Click me!</Story>
27
-
28
- <Story name="Primary Outline" args={{ variant: 'text', outline: true }}>Click me!</Story>
29
- <Story name="Secondary Outline" args={{ color: 'secondary', variant: 'text', outline: true }}>
30
- Click me!
31
- </Story>
32
- <Story name="Neutral Outline" args={{ color: 'neutral', variant: 'text', outline: true }}>
33
- Click me!
34
- </Story>
35
- <Story name="Safe Outline" args={{ color: 'safe', variant: 'text', outline: true }}>
36
- Click me!
37
- </Story>
38
- <Story name="Warning Outline" args={{ color: 'warning', variant: 'text', outline: true }}>
39
- Click me!
40
- </Story>
41
- <Story name="Danger Outline" args={{ color: 'danger', variant: 'text', outline: true }}>
42
- Click me!
43
- </Story>
@@ -1,36 +0,0 @@
1
- <script module lang="ts">
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import Button from '../Button.svelte';
4
- import { storyButtonArgTypes } from '../Button.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: Button,
9
- tags: ['autodocs'],
10
- argTypes: storyButtonArgTypes,
11
- });
12
- </script>
13
-
14
- <Story
15
- name="Click"
16
- args={{
17
- onclick: (e: Event) => {
18
- const target = e.target as HTMLButtonElement;
19
-
20
- alert('Button Clicked');
21
- console.log('Button Clicked', target);
22
- },
23
- }}
24
- asChild
25
- >
26
- <Button
27
- onclick={(e: Event) => {
28
- const target = e.target as HTMLButtonElement;
29
-
30
- alert('Button Clicked');
31
- console.log('Button Clicked', target);
32
- }}
33
- >
34
- Click me!
35
- </Button>
36
- </Story>
@@ -1,43 +0,0 @@
1
- <script module>
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import Button from '../Button.svelte';
4
- import { storyButtonArgTypes } from '../Button.stories.svelte';
5
- import Icon from '@iconify/svelte';
6
-
7
- // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
- const { Story } = defineMeta({
9
- component: Button,
10
- tags: ['autodocs'],
11
- argTypes: storyButtonArgTypes,
12
- });
13
- </script>
14
-
15
- <!-- Compact button with paddings stripped out and fixed size. We are using this icon library https://iconify.design/docs/icon-components/svelte/ -->
16
- <Story name="Icon Button" args={{ compact: true }}>
17
- <Icon icon="material-symbols:app-badging" width="18" height="18" />
18
- </Story>
19
-
20
- <!-- Circualr Icon button. -->
21
- <Story name="Icon Button Circular" args={{ compact: true, roundness: 'full' }}>
22
- <Icon icon="material-symbols:app-badging" width="18" height="18" />
23
- </Story>
24
-
25
- <!-- Button with an icon in front. -->
26
- <Story name="Icon Before" asChild>
27
- <Button>
28
- {#snippet before()}
29
- <Icon icon="material-symbols:content-copy" />
30
- {/snippet}
31
- Copy
32
- </Button>
33
- </Story>
34
-
35
- <!-- Button with an icon in front. -->
36
- <Story name="Icon After" asChild>
37
- <Button>
38
- {#snippet after()}
39
- <Icon icon="material-symbols:download-2" />
40
- {/snippet}
41
- Download
42
- </Button>
43
- </Story>