@flightlesslabs/dodo-ui 0.6.5 → 0.7.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 (241) hide show
  1. package/dist/index.d.ts +32 -9
  2. package/dist/index.js +12 -2
  3. package/dist/stories/Home.mdx +4 -6
  4. package/dist/stories/components/Form/Button/Button.stories.svelte +16 -37
  5. package/dist/stories/components/Form/Button/Button.svelte +45 -47
  6. package/dist/stories/components/Form/Button/Button.svelte.d.ts +16 -12
  7. package/dist/stories/components/Form/Button/Color/Color.stories.svelte +23 -48
  8. package/dist/stories/components/Form/Button/Events/Events.stories.svelte +1 -7
  9. package/dist/stories/components/Form/Button/IconButton/IconButton.stories.svelte +4 -12
  10. package/dist/stories/components/Form/Button/Roundness/Roundness.stories.svelte +5 -31
  11. package/dist/stories/components/Form/Button/Size/Size.stories.svelte +3 -9
  12. package/dist/stories/components/Form/Button/Variant/Variant.stories.svelte +5 -8
  13. package/dist/stories/components/Form/FormControl/FormControl.stories.svelte +11 -12
  14. package/dist/stories/components/Form/FormControl/FormControl.svelte +6 -8
  15. package/dist/stories/components/Form/FormControl/FormControl.svelte.d.ts +1 -1
  16. package/dist/stories/components/Form/Label/Label.stories.svelte +1 -11
  17. package/dist/stories/components/Form/Label/Label.svelte +6 -5
  18. package/dist/stories/components/Form/Label/Label.svelte.d.ts +1 -3
  19. package/dist/stories/components/Form/Message/Color/Color.stories.svelte +9 -9
  20. package/dist/stories/components/Form/Message/Message.stories.svelte +5 -13
  21. package/dist/stories/components/Form/Message/Message.svelte +5 -7
  22. package/dist/stories/components/Form/Message/Message.svelte.d.ts +4 -6
  23. package/dist/stories/components/Form/Message/Size/Size.stories.svelte +3 -5
  24. package/dist/stories/components/Form/PasswordInput/Events/Events.stories.svelte +8 -72
  25. package/dist/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +5 -3
  26. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte +26 -33
  27. package/dist/stories/components/Form/PasswordInput/PasswordInput.svelte.d.ts +6 -5
  28. package/dist/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +4 -4
  29. package/dist/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +2 -2
  30. package/dist/stories/components/Form/Select/Customize/Customize.stories.svelte +120 -0
  31. package/dist/stories/components/Form/Select/Customize/Customize.stories.svelte.d.ts +18 -0
  32. package/dist/stories/components/Form/Select/Events/Events.stories.svelte +138 -0
  33. package/dist/stories/components/Form/Select/Options/OptionFormat.mdx +40 -0
  34. package/dist/stories/components/Form/Select/Roundness/Roundness.stories.svelte +28 -0
  35. package/dist/stories/components/Form/Select/Roundness/Roundness.stories.svelte.d.ts +18 -0
  36. package/dist/stories/components/Form/Select/Select.stories.svelte +114 -0
  37. package/dist/stories/components/Form/Select/Select.stories.svelte.d.ts +22 -0
  38. package/dist/stories/components/Form/Select/Select.svelte +285 -0
  39. package/dist/stories/components/Form/Select/Select.svelte.d.ts +87 -0
  40. package/dist/stories/components/Form/Select/Size/Size.stories.svelte +24 -0
  41. package/dist/stories/components/Form/Select/Size/Size.stories.svelte.d.ts +18 -0
  42. package/dist/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte +39 -0
  43. package/dist/stories/components/Form/Select/WithIcon/WithIcon.stories.svelte.d.ts +18 -0
  44. package/dist/stories/components/Form/TextInput/Events/Events.stories.svelte +7 -63
  45. package/dist/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +4 -4
  46. package/dist/stories/components/Form/TextInput/TextInput.stories.svelte +6 -4
  47. package/dist/stories/components/Form/TextInput/TextInput.svelte +18 -30
  48. package/dist/stories/components/Form/TextInput/TextInput.svelte.d.ts +10 -5
  49. package/dist/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +4 -4
  50. package/dist/stories/components/Layout/Menu/Menu.stories.svelte +65 -0
  51. package/dist/stories/components/Layout/Menu/Menu.stories.svelte.d.ts +21 -0
  52. package/dist/stories/components/Layout/Menu/Menu.svelte +30 -0
  53. package/dist/stories/components/Layout/Menu/Menu.svelte.d.ts +23 -0
  54. package/dist/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte +30 -0
  55. package/dist/stories/components/Layout/Menu/MenuItem/MenuItem.stories.svelte.d.ts +21 -0
  56. package/dist/stories/components/Layout/Menu/MenuItem/MenuItem.svelte +164 -0
  57. package/dist/stories/components/Layout/Menu/MenuItem/MenuItem.svelte.d.ts +49 -0
  58. package/dist/stories/components/Layout/Menu/MenuItem/Size/Size.stories.svelte +16 -0
  59. package/dist/stories/components/Layout/Menu/MenuItem/Type/Type.stories.svelte +21 -0
  60. package/dist/stories/components/{Form/SimpleSelect/WithIcon/WithIcon.stories.svelte.d.ts → Layout/Menu/MenuItem/Type/Type.stories.svelte.d.ts} +3 -3
  61. package/dist/stories/components/Layout/Menu/Size/Size.stories.svelte +37 -0
  62. package/dist/stories/components/{Form/SimpleSelect/Roundness/Roundness.stories.svelte.d.ts → Layout/Menu/Size/Size.stories.svelte.d.ts} +3 -3
  63. package/dist/stories/components/Layout/Paper/Color/Color.stories.svelte +63 -0
  64. package/dist/stories/components/Layout/Paper/Color/Color.stories.svelte.d.ts +26 -0
  65. package/dist/stories/components/Layout/Paper/Paper.stories.svelte +25 -16
  66. package/dist/stories/components/Layout/Paper/Paper.svelte +211 -14
  67. package/dist/stories/components/Layout/Paper/Paper.svelte.d.ts +20 -9
  68. package/dist/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +8 -13
  69. package/dist/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +6 -24
  70. package/dist/stories/components/Layout/Paper/utils/scss/mixins.scss +46 -0
  71. package/dist/stories/components/Layout/Separator/Color/Color.stories.svelte +19 -0
  72. package/dist/stories/components/Layout/Separator/Color/Color.stories.svelte.d.ts +26 -0
  73. package/dist/stories/components/Layout/Separator/Separator.stories.svelte +26 -0
  74. package/dist/stories/components/Layout/Separator/Separator.stories.svelte.d.ts +21 -0
  75. package/dist/stories/components/Layout/Separator/Separator.svelte +66 -0
  76. package/dist/stories/components/Layout/Separator/Separator.svelte.d.ts +22 -0
  77. package/dist/stories/components/Layout/Separator/utils/scss/mixins.scss +24 -0
  78. package/dist/stories/developer tools/Intro.mdx +2 -0
  79. package/dist/stories/developer tools/components/DynamicInput/DynamicInput.stories.svelte +49 -0
  80. package/dist/stories/{components/Form/SimpleSelect/SimpleSelect.stories.svelte.d.ts → developer tools/components/DynamicInput/DynamicInput.stories.svelte.d.ts } +5 -7
  81. package/dist/stories/developer tools/components/DynamicInput/DynamicInput.svelte +92 -0
  82. package/dist/stories/developer tools/components/DynamicInput/DynamicInput.svelte.d.ts +60 -0
  83. package/{src/lib/stories/components/Form/TextInput/Size/Size.stories.svelte → dist/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte } +4 -4
  84. package/dist/stories/developer tools/components/DynamicInput/Size/Size.stories.svelte.d.ts +26 -0
  85. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +5 -5
  86. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +19 -15
  87. package/dist/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte.d.ts +4 -3
  88. package/dist/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +4 -4
  89. package/dist/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +4 -4
  90. package/dist/stories/developer tools/components/Popper/Popper.stories.svelte +119 -0
  91. package/dist/stories/developer tools/components/Popper/Popper.stories.svelte.d.ts +21 -0
  92. package/dist/stories/developer tools/components/Popper/Popper.svelte +77 -0
  93. package/dist/stories/developer tools/components/Popper/Popper.svelte.d.ts +50 -0
  94. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte +60 -0
  95. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.stories.svelte.d.ts +21 -0
  96. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +66 -0
  97. package/dist/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte.d.ts +34 -0
  98. package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.d.ts +21 -0
  99. package/dist/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.js +62 -0
  100. package/dist/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte +89 -0
  101. package/dist/stories/developer tools/components/Popper/Positions/AutoPosition/AutoPosition.stories.svelte.d.ts +18 -0
  102. package/dist/stories/developer tools/components/Popper/Positions/Positions.stories.svelte +111 -0
  103. package/dist/stories/developer tools/components/Popper/Positions/Positions.stories.svelte.d.ts +18 -0
  104. package/dist/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +6 -8
  105. package/dist/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +4 -7
  106. package/dist/stories/developer tools/components/UtilityButton/UtilityButton.svelte +8 -5
  107. package/dist/stories/developer tools/components/UtilityButton/UtilityButton.svelte.d.ts +2 -2
  108. package/dist/stories/developer tools/directives/clickOutside/clickOutside.d.ts +3 -0
  109. package/dist/stories/developer tools/directives/clickOutside/clickOutside.js +14 -0
  110. package/dist/stories/developer tools/directives/clickOutside/index.mdx +25 -0
  111. package/dist/stories/{philosophy/Colors/Colors.mdx → developer tools/philosophy/Colors/Colors.mdx } +2 -2
  112. package/dist/stories/{philosophy/Colors/Swatches/Palette.svelte → developer tools/philosophy/Colors/Swatches/Palette.svelte } +1 -1
  113. package/dist/stories/{philosophy/Colors/Swatches/Swatch.svelte → developer tools/philosophy/Colors/Swatches/Swatch.svelte } +1 -1
  114. package/dist/stories/{philosophy/Colors/Swatches/Swatches.svelte → developer tools/philosophy/Colors/Swatches/Swatches.svelte } +1 -1
  115. package/dist/stories/{philosophy/Colors/utils/color.js → developer tools/philosophy/Colors/utils/color.js } +1 -1
  116. package/dist/stories/{philosophy/Themes.mdx → developer tools/philosophy/Themes.mdx } +1 -1
  117. package/dist/styles/_colors.css +44 -44
  118. package/dist/styles/_components.css +6 -3
  119. package/dist/styles/_shadow.css +13 -20
  120. package/dist/styles/_space.css +7 -0
  121. package/dist/styles/_z-index.css +9 -0
  122. package/dist/styles/global.css +2 -0
  123. package/dist/types/colors.d.ts +7 -0
  124. package/dist/types/colors.js +10 -0
  125. package/dist/types/position.d.ts +4 -0
  126. package/dist/types/position.js +2 -0
  127. package/dist/types/roundness.d.ts +3 -0
  128. package/dist/types/roundness.js +1 -0
  129. package/dist/types/shadow.d.ts +3 -0
  130. package/dist/types/shadow.js +1 -0
  131. package/dist/types/size.d.ts +3 -0
  132. package/dist/types/size.js +1 -0
  133. package/dist/types/weight.d.ts +3 -0
  134. package/dist/types/weight.js +1 -0
  135. package/package.json +26 -24
  136. package/src/lib/index.ts +61 -15
  137. package/src/lib/stories/components/Form/Button/Button.svelte +39 -36
  138. package/src/lib/stories/components/Form/FormControl/FormControl.svelte +9 -11
  139. package/src/lib/stories/components/Form/Label/Label.svelte +5 -8
  140. package/src/lib/stories/components/Form/Message/Message.svelte +11 -16
  141. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.svelte +50 -50
  142. package/src/lib/stories/components/Form/Select/Select.svelte +501 -0
  143. package/src/lib/stories/components/Form/TextInput/TextInput.svelte +43 -60
  144. package/src/lib/stories/components/Layout/Menu/Menu.svelte +65 -0
  145. package/src/lib/stories/components/Layout/Menu/MenuItem/MenuItem.svelte +268 -0
  146. package/src/lib/stories/components/Layout/Paper/Paper.svelte +154 -27
  147. package/src/lib/stories/components/Layout/Paper/utils/scss/mixins.scss +46 -0
  148. package/src/lib/stories/components/Layout/Separator/Separator.svelte +96 -0
  149. package/src/lib/stories/components/Layout/Separator/utils/scss/mixins.scss +24 -0
  150. package/src/lib/stories/developer tools/components/DynamicInput/DynamicInput.svelte +195 -0
  151. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.svelte +22 -18
  152. package/src/lib/stories/developer tools/components/Popper/Popper.svelte +159 -0
  153. package/src/lib/stories/developer tools/components/Popper/PopperPopup/PopperPopup.svelte +120 -0
  154. package/src/lib/stories/developer tools/components/Popper/PopperPopup/utils/getPopupPosition.ts +87 -0
  155. package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.svelte +8 -6
  156. package/src/lib/stories/developer tools/directives/clickOutside/clickOutside.ts +17 -0
  157. package/src/lib/stories/{philosophy/Colors/Swatches/Palette.svelte → developer tools/philosophy/Colors/Swatches/Palette.svelte } +1 -1
  158. package/src/lib/stories/{philosophy/Colors/Swatches/Swatch.svelte → developer tools/philosophy/Colors/Swatches/Swatch.svelte } +1 -1
  159. package/src/lib/stories/{philosophy/Colors/Swatches/Swatches.svelte → developer tools/philosophy/Colors/Swatches/Swatches.svelte } +1 -1
  160. package/src/lib/stories/{philosophy/Colors/utils/color.ts → developer tools/philosophy/Colors/utils/color.ts } +1 -1
  161. package/src/lib/styles/_colors.css +44 -44
  162. package/src/lib/styles/_components.css +6 -3
  163. package/src/lib/styles/_shadow.css +13 -20
  164. package/src/lib/styles/_space.css +7 -0
  165. package/src/lib/styles/_z-index.css +9 -0
  166. package/src/lib/styles/global.css +2 -0
  167. package/src/lib/types/colors.ts +16 -0
  168. package/src/lib/types/position.ts +5 -0
  169. package/src/lib/types/roundness.ts +3 -0
  170. package/src/lib/types/shadow.ts +3 -0
  171. package/src/lib/types/size.ts +3 -0
  172. package/src/lib/types/weight.ts +3 -0
  173. package/dist/stories/components/Form/SimpleSelect/Events/Events.stories.svelte +0 -74
  174. package/dist/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte +0 -24
  175. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte +0 -59
  176. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte +0 -69
  177. package/dist/stories/components/Form/SimpleSelect/SimpleSelect.svelte.d.ts +0 -50
  178. package/dist/stories/components/Form/SimpleSelect/Size/Size.stories.svelte +0 -20
  179. package/dist/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte +0 -36
  180. package/dist/types.d.ts +0 -5
  181. package/dist/types.js +0 -1
  182. package/src/lib/stories/Home.mdx +0 -61
  183. package/src/lib/stories/assets/dark-theme-toggle.png +0 -0
  184. package/src/lib/stories/components/Form/Button/Button.stories.svelte +0 -82
  185. package/src/lib/stories/components/Form/Button/Color/Color.stories.svelte +0 -68
  186. package/src/lib/stories/components/Form/Button/Events/Events.stories.svelte +0 -42
  187. package/src/lib/stories/components/Form/Button/IconButton/IconButton.stories.svelte +0 -51
  188. package/src/lib/stories/components/Form/Button/Roundness/Roundness.stories.svelte +0 -49
  189. package/src/lib/stories/components/Form/Button/Size/Size.stories.svelte +0 -22
  190. package/src/lib/stories/components/Form/Button/Variant/Variant.stories.svelte +0 -21
  191. package/src/lib/stories/components/Form/FormControl/FormControl.stories.svelte +0 -29
  192. package/src/lib/stories/components/Form/Label/Label.stories.svelte +0 -23
  193. package/src/lib/stories/components/Form/Message/Color/Color.stories.svelte +0 -36
  194. package/src/lib/stories/components/Form/Message/Message.stories.svelte +0 -35
  195. package/src/lib/stories/components/Form/Message/Size/Size.stories.svelte +0 -24
  196. package/src/lib/stories/components/Form/PasswordInput/Events/Events.stories.svelte +0 -174
  197. package/src/lib/stories/components/Form/PasswordInput/PasswordInput.stories.svelte +0 -57
  198. package/src/lib/stories/components/Form/PasswordInput/Roundness/Roundness.stories.svelte +0 -20
  199. package/src/lib/stories/components/Form/PasswordInput/Size/Size.stories.svelte +0 -16
  200. package/src/lib/stories/components/Form/PasswordInput/WithIcon/WithIcon.stories.svelte +0 -31
  201. package/src/lib/stories/components/Form/SimpleSelect/Events/Events.stories.svelte +0 -79
  202. package/src/lib/stories/components/Form/SimpleSelect/Roundness/Roundness.stories.svelte +0 -24
  203. package/src/lib/stories/components/Form/SimpleSelect/SimpleSelect.stories.svelte +0 -64
  204. package/src/lib/stories/components/Form/SimpleSelect/SimpleSelect.svelte +0 -159
  205. package/src/lib/stories/components/Form/SimpleSelect/Size/Size.stories.svelte +0 -20
  206. package/src/lib/stories/components/Form/SimpleSelect/WithIcon/WithIcon.stories.svelte +0 -36
  207. package/src/lib/stories/components/Form/TextInput/Events/Events.stories.svelte +0 -153
  208. package/src/lib/stories/components/Form/TextInput/Roundness/Roundness.stories.svelte +0 -21
  209. package/src/lib/stories/components/Form/TextInput/TextInput.stories.svelte +0 -41
  210. package/src/lib/stories/components/Form/TextInput/WithIcon/WithIcon.stories.svelte +0 -47
  211. package/src/lib/stories/components/Layout/Paper/Paper.stories.svelte +0 -41
  212. package/src/lib/stories/components/Layout/Paper/Roundness/Roundness.stories.svelte +0 -30
  213. package/src/lib/stories/components/Layout/Paper/Shadow/Shadow.stories.svelte +0 -42
  214. package/src/lib/stories/developer tools/Intro.mdx +0 -7
  215. package/src/lib/stories/developer tools/components/InputEnclosure/InputEnclosure.stories.svelte +0 -38
  216. package/src/lib/stories/developer tools/components/InputEnclosure/Roundness/Roundness.stories.svelte +0 -20
  217. package/src/lib/stories/developer tools/components/InputEnclosure/Size/Size.stories.svelte +0 -16
  218. package/src/lib/stories/developer tools/components/InputEnclosure/WithIcon/WithIcon.stories.svelte +0 -47
  219. package/src/lib/stories/developer tools/components/UtilityButton/Size/Size.stories.svelte +0 -27
  220. package/src/lib/stories/developer tools/components/UtilityButton/UtilityButton.stories.svelte +0 -33
  221. package/src/lib/stories/philosophy/Colors/Colors.mdx +0 -43
  222. package/src/lib/stories/philosophy/Colors/Colors.stories.svelte +0 -22
  223. package/src/lib/stories/philosophy/Colors/Opacity.stories.svelte +0 -11
  224. package/src/lib/stories/philosophy/Themes.mdx +0 -23
  225. package/src/lib/types.ts +0 -6
  226. /package/dist/stories/components/Form/{SimpleSelect → Select}/Events/Events.stories.svelte.d.ts +0 -0
  227. /package/dist/stories/components/{Form/SimpleSelect → Layout/Menu/MenuItem}/Size/Size.stories.svelte.d.ts +0 -0
  228. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.stories.svelte +0 -0
  229. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.stories.svelte.d.ts +0 -0
  230. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.svelte +0 -0
  231. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Colors.svelte.d.ts +0 -0
  232. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.stories.svelte +0 -0
  233. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.stories.svelte.d.ts +0 -0
  234. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.svelte +0 -0
  235. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.svelte.d.ts +0 -0
  236. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Swatches/Palette.svelte.d.ts +0 -0
  237. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Swatches/Swatch.svelte.d.ts +0 -0
  238. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/Swatches/Swatches.svelte.d.ts +0 -0
  239. /package/dist/stories/{philosophy → developer tools/philosophy}/Colors/utils/color.d.ts +0 -0
  240. /package/src/lib/stories/{philosophy → developer tools/philosophy}/Colors/Colors.svelte +0 -0
  241. /package/src/lib/stories/{philosophy → developer tools/philosophy}/Colors/Opacity.svelte +0 -0
@@ -1,8 +1,9 @@
1
- <script lang="ts">
2
- import type { ComponentRoundness, ComponentSize } from '$lib/types.js';
1
+ <script lang="ts" module>
2
+ import type { ComponentRoundness } from '$lib/types/roundness.js';
3
+ import type { ComponentSize } from '$lib/types/size.js';
3
4
  import type { Snippet } from 'svelte';
4
5
 
5
- interface InputEnclosureProps {
6
+ export interface InputEnclosureProps {
6
7
  /** InputEnclosure contents goes here */
7
8
  children?: Snippet;
8
9
  /** InputEnclosure ref */
@@ -10,7 +11,7 @@
10
11
  /** How large should the button be? */
11
12
  size?: ComponentSize;
12
13
  /** How round should the border radius be? */
13
- roundness?: ComponentRoundness | false;
14
+ roundness?: ComponentRoundness;
14
15
  /** Add a border around the button. Default True */
15
16
  outline?: boolean;
16
17
  /** disabled state */
@@ -26,10 +27,12 @@
26
27
  /** Custom css class*/
27
28
  class?: string;
28
29
  }
30
+ </script>
29
31
 
32
+ <script lang="ts">
30
33
  let {
31
34
  size = 'normal',
32
- roundness = '1x',
35
+ roundness = 1,
33
36
  outline = true,
34
37
  class: className = '',
35
38
  disabled = false,
@@ -61,6 +64,7 @@
61
64
  {#if children}
62
65
  {@render children()}
63
66
  {/if}
67
+
64
68
  {#if after}
65
69
  <span class="content--after">
66
70
  {@render after()}
@@ -70,27 +74,27 @@
70
74
 
71
75
  <style lang="scss">
72
76
  :global(:root) {
73
- --dodo-ui-InputEnclosure-border-color: var(--dodo-color-default-500);
77
+ --dodo-ui-InputEnclosure-border-color: var(--dodo-color-neutral-500);
74
78
  --dodo-ui-InputEnclosure-focus-border-color: var(--dodo-color-primary-500);
75
79
  --dodo-ui-InputEnclosure-error-border-color: var(--dodo-color-danger-500);
76
80
 
77
- --dodo-ui-InputEnclosure-disabled-color: var(--dodo-color-default-400);
78
- --dodo-ui-InputEnclosure-disabled-bg: var(--dodo-color-default-200);
81
+ --dodo-ui-InputEnclosure-disabled-color: var(--dodo-color-neutral-400);
82
+ --dodo-ui-InputEnclosure-disabled-bg: var(--dodo-color-neutral-200);
79
83
  }
80
84
 
81
85
  :global(.dodo-theme--dark) {
82
- --dodo-ui-InputEnclosure-border-color: var(--dodo-color-default-600);
86
+ --dodo-ui-InputEnclosure-border-color: var(--dodo-color-neutral-600);
83
87
  --dodo-ui-InputEnclosure-focus-border-color: var(--dodo-color-primary-600);
84
88
  --dodo-ui-InputEnclosure-error-border-color: var(--dodo-color-danger-600);
85
89
 
86
- --dodo-ui-InputEnclosure-disabled-bg: var(--dodo-color-default-100);
87
- --dodo-ui-InputEnclosure-disabled-color: var(--dodo-color-default-500);
90
+ --dodo-ui-InputEnclosure-disabled-bg: var(--dodo-color-neutral-100);
91
+ --dodo-ui-InputEnclosure-disabled-color: var(--dodo-color-neutral-500);
88
92
  }
89
93
 
90
94
  .dodo-ui-InputEnclosure {
91
95
  display: flex;
92
96
  overflow: hidden;
93
- color: var(--dodo-color-default-800);
97
+ color: var(--dodo-color-neutral-800);
94
98
  transition: all 150ms;
95
99
  border: 0;
96
100
 
@@ -182,16 +186,16 @@
182
186
  }
183
187
 
184
188
  &.roundness {
185
- &--1x {
186
- border-radius: var(--dodo-ui-element-roundness-1x);
189
+ &--1 {
190
+ border-radius: var(--dodo-ui-element-roundness-1);
187
191
  }
188
192
 
189
- &--2x {
190
- border-radius: var(--dodo-ui-element-roundness-2x);
193
+ &--2 {
194
+ border-radius: var(--dodo-ui-element-roundness-2);
191
195
  }
192
196
 
193
- &--3x {
194
- border-radius: var(--dodo-ui-element-roundness-3x);
197
+ &--3 {
198
+ border-radius: var(--dodo-ui-element-roundness-3);
195
199
  }
196
200
  }
197
201
  }
@@ -0,0 +1,159 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from 'svelte';
3
+ import PopperPopup from './PopperPopup/PopperPopup.svelte';
4
+ import type { PaperProps } from '$lib/stories/components/Layout/Paper/Paper.svelte';
5
+ import { clickOutside } from '$lib/stories/developer tools/directives/clickOutside/clickOutside.js';
6
+ import type { PositionX, PositionY } from '$lib/types/position.js';
7
+
8
+ export interface PopperProps {
9
+ /** Popper contents goes here */
10
+ children?: Snippet;
11
+ /** Popper ref */
12
+ ref?: HTMLDivElement;
13
+ /** Id */
14
+ id?: string;
15
+ /** Title (for tooltip) */
16
+ title?: string;
17
+ /** Custom css class*/
18
+ class?: string;
19
+ /** Open popper */
20
+ open?: boolean;
21
+ /** Full width Popper? */
22
+ fullWidth?: boolean;
23
+ /** PopperPopup ref */
24
+ popupRef?: HTMLDivElement;
25
+ /** PopperPopup contents goes here */
26
+ popupChildren?: Snippet;
27
+ /** PaperProps: Paper component props for PopperPopup */
28
+ paperProps?: Partial<PaperProps>;
29
+ /** PopperPopup Max height. Use css compatible value */
30
+ popupMaxHeight?: string;
31
+ /** PopperPopup Width. Use css compatible value */
32
+ popupWidth?: string;
33
+ /** popup Custom css class*/
34
+ popupClass?: string;
35
+ /** Popup stick horizontally */
36
+ popupPositionX?: PositionX;
37
+ /** Popup stick vertically */
38
+ popupPositionY?: PositionY;
39
+ /** vertical offset/gap between Popup and content */
40
+ popupOffsetY?: number;
41
+ /** Horizontal offset/gap between Popup and content */
42
+ popupOffsetX?: number;
43
+ /** Lock positions, disable auto top, bottom position based */
44
+ lockPoistions?: boolean;
45
+ /** Popper Height For Vertical Position, default 300 */
46
+ popperHeightForVerticalPosition?: number;
47
+ /** Click Outside event */
48
+ onClickOutside?: () => void;
49
+ /** Custom Popup */
50
+ customPopup?: (popperLocation?: DOMRect) => Snippet;
51
+ }
52
+ </script>
53
+
54
+ <script lang="ts">
55
+ let {
56
+ children,
57
+ popupChildren,
58
+ id,
59
+ class: className = '',
60
+ ref = $bindable<HTMLDivElement>(),
61
+ open = false,
62
+ popupRef = $bindable<HTMLDivElement>(),
63
+ paperProps,
64
+ popupMaxHeight,
65
+ popupWidth,
66
+ popupClass,
67
+ popupPositionX,
68
+ popupPositionY,
69
+ popupOffsetX,
70
+ popupOffsetY,
71
+ onClickOutside = () => {},
72
+ customPopup,
73
+ popperHeightForVerticalPosition,
74
+ lockPoistions,
75
+ fullWidth = false,
76
+ }: PopperProps = $props();
77
+
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ let customPopupTyped = customPopup as any;
80
+
81
+ let popperContainerRef = $state<HTMLDivElement>();
82
+ let popperLocation = $state<DOMRect>();
83
+
84
+ function capturePopperLocation() {
85
+ if (!popperContainerRef) {
86
+ return;
87
+ }
88
+
89
+ popperLocation = popperContainerRef.getBoundingClientRect();
90
+ }
91
+
92
+ $effect(() => {
93
+ if (!popperContainerRef) {
94
+ return;
95
+ }
96
+
97
+ capturePopperLocation();
98
+
99
+ window.addEventListener('resize', capturePopperLocation);
100
+
101
+ return () => {
102
+ window.removeEventListener('resize', capturePopperLocation);
103
+ };
104
+ });
105
+ </script>
106
+
107
+ <div
108
+ class:fullWidth
109
+ class={['dodo-ui-Popper', className].join(' ')}
110
+ bind:this={ref}
111
+ {id}
112
+ use:clickOutside={onClickOutside}
113
+ >
114
+ <div class="PopperContainer" bind:this={popperContainerRef}>
115
+ {#if children}
116
+ {@render children()}
117
+ {/if}
118
+ </div>
119
+
120
+ {#if customPopupTyped}
121
+ {@render customPopupTyped(popperLocation)}
122
+ {:else if open && popperLocation}
123
+ <PopperPopup
124
+ {popperLocation}
125
+ {paperProps}
126
+ {popupMaxHeight}
127
+ {popupWidth}
128
+ {popupPositionX}
129
+ {popupPositionY}
130
+ {popupOffsetX}
131
+ {popupOffsetY}
132
+ {popperHeightForVerticalPosition}
133
+ {lockPoistions}
134
+ class={popupClass}
135
+ >
136
+ {#if popupChildren}
137
+ {@render popupChildren()}
138
+ {/if}
139
+ </PopperPopup>
140
+ {/if}
141
+ </div>
142
+
143
+ <style lang="scss">
144
+ .dodo-ui-Popper {
145
+ position: relative;
146
+ display: inline-flex;
147
+ flex-wrap: wrap;
148
+
149
+ &.fullWidth {
150
+ display: flex;
151
+ width: 100%;
152
+
153
+ .PopperContainer {
154
+ display: block;
155
+ width: 100%;
156
+ }
157
+ }
158
+ }
159
+ </style>
@@ -0,0 +1,120 @@
1
+ <script lang="ts" module>
2
+ import { Paper } from '$lib/index.js';
3
+ import type { PaperProps } from '$lib/stories/components/Layout/Paper/Paper.svelte';
4
+ import type { PositionX, PositionY } from '$lib/types/position.js';
5
+ import type { Snippet } from 'svelte';
6
+ import { getPopupPosition } from './utils/getPopupPosition.js';
7
+
8
+ export interface PopperPopupProps {
9
+ /** Popup contents goes here*/
10
+ children?: Snippet;
11
+ /** Popup ref */
12
+ ref?: HTMLDivElement;
13
+ /** PaperProps: Paper component props */
14
+ paperProps?: Partial<PaperProps>;
15
+ /** Max height. Use css compatible value */
16
+ popupMaxHeight?: string;
17
+ /** popup Width. Use css compatible value */
18
+ popupWidth?: string;
19
+ /** Custom css class */
20
+ class?: string;
21
+ /** Position of Popper content */
22
+ popperLocation?: DOMRect;
23
+ /** Popup stick horizontally */
24
+ popupPositionX?: PositionX;
25
+ /** Popup stick vertically */
26
+ popupPositionY?: PositionY;
27
+ /** vertical offset/gap between Popup and content */
28
+ popupOffsetY?: number;
29
+ /** Horizontal offset/gap between Popup and content */
30
+ popupOffsetX?: number;
31
+ /** Lock positions, disable auto top, bottom position based */
32
+ lockPoistions?: boolean;
33
+ /** Popper Height For Vertical Position, default 300 */
34
+ popperHeightForVerticalPosition?: number;
35
+ }
36
+ </script>
37
+
38
+ <script lang="ts">
39
+ let {
40
+ children,
41
+ paperProps = {},
42
+ class: className = '',
43
+ popupWidth: width,
44
+ popupMaxHeight: maxHeight,
45
+ popupPositionX: positionX = 'left',
46
+ popupPositionY: positionY = 'bottom',
47
+ popperLocation,
48
+ ref = $bindable<HTMLDivElement>(),
49
+ popupOffsetX: offsetX = 0,
50
+ popupOffsetY: offsetY = 12,
51
+ popperHeightForVerticalPosition = 100,
52
+ lockPoistions = false,
53
+ }: PopperPopupProps = $props();
54
+
55
+ const popperWidth = $derived(width || '100%');
56
+ const popupMaxHeight = $derived(maxHeight || '400px');
57
+
58
+ let left = $state<number | null>(null);
59
+ let right = $state<number | null>(null);
60
+ let top = $state<number | null>(null);
61
+ let bottom = $state<number | null>(null);
62
+
63
+ $effect(() => {
64
+ const values = getPopupPosition({
65
+ positionX,
66
+ positionY,
67
+ height: popperLocation?.height || 0,
68
+ width: popperLocation?.width || 0,
69
+ top: popperLocation?.top || 0,
70
+ bottom: popperLocation?.bottom || 0,
71
+ left: popperLocation?.left || 0,
72
+ right: popperLocation?.right || 0,
73
+ offsetX: offsetX,
74
+ offsetY: offsetY,
75
+ popperHeight: popperHeightForVerticalPosition,
76
+ lockPoistions,
77
+ });
78
+
79
+ left = values.left;
80
+ right = values.right;
81
+ top = values.top;
82
+ bottom = values.bottom;
83
+ });
84
+ </script>
85
+
86
+ <div
87
+ class={[
88
+ 'dodo-ui-PopperPopup',
89
+ `positionX--${positionX}`,
90
+ `positionY--${positionY}`,
91
+ className,
92
+ ].join(' ')}
93
+ bind:this={ref}
94
+ style={`width: ${popperWidth};
95
+ ${left !== null ? `left: ${left}px;` : ''}
96
+ ${right !== null ? `right: ${right}px;` : ''}
97
+ ${top !== null ? `top: ${top}px;` : ''}
98
+ ${bottom !== null ? `bottom: ${bottom}px;` : ''}
99
+ ${positionX === 'center' ? `margin: auto;` : ''}
100
+ `}
101
+ >
102
+ <Paper shadow={3} {...paperProps}>
103
+ <section style={`max-height: ${popupMaxHeight};`}>
104
+ {#if children}
105
+ {@render children()}
106
+ {/if}
107
+ </section>
108
+ </Paper>
109
+ </div>
110
+
111
+ <style lang="scss">
112
+ .dodo-ui-PopperPopup {
113
+ position: absolute;
114
+ z-index: var(--dodo-ui-z-index-4);
115
+
116
+ section {
117
+ overflow: auto;
118
+ }
119
+ }
120
+ </style>
@@ -0,0 +1,87 @@
1
+ import { browser } from '$app/environment';
2
+ import type { PositionX, PositionY } from '$lib/types/position.js';
3
+
4
+ export interface GetPopupPositionProps {
5
+ positionX: PositionX;
6
+ positionY: PositionY;
7
+ height: number;
8
+ width: number;
9
+ top: number;
10
+ bottom: number;
11
+ left: number;
12
+ right: number;
13
+ offsetX?: number;
14
+ offsetY?: number;
15
+ popperHeight: number;
16
+ lockPoistions: boolean;
17
+ }
18
+
19
+ export function getPopupPosition(props: GetPopupPositionProps) {
20
+ let left: null | number = null;
21
+ let right: null | number = null;
22
+ let top: null | number = null;
23
+ let bottom: null | number = null;
24
+
25
+ // exit if not browser
26
+ if (!browser) {
27
+ return {
28
+ left,
29
+ right,
30
+ top,
31
+ bottom,
32
+ };
33
+ }
34
+
35
+ const innerHeight = window.innerHeight;
36
+
37
+ const gapBottom = innerHeight - props.bottom;
38
+ const popperHeight = props.popperHeight;
39
+
40
+ const offsetX = props.offsetX ? props.offsetX : 0;
41
+ const offsetY = props.offsetY ? props.offsetY : 0;
42
+
43
+ const positionX = props.positionX;
44
+ let positionY = props.positionY;
45
+
46
+ if (!props.lockPoistions) {
47
+ if (positionY === 'top' && props.top < popperHeight + offsetY) {
48
+ positionY = 'bottom';
49
+ } else if (positionY === 'bottom' && gapBottom < popperHeight + offsetY) {
50
+ positionY = 'top';
51
+ }
52
+ }
53
+
54
+ switch (positionX) {
55
+ case 'left':
56
+ left = offsetX;
57
+ right = null;
58
+ break;
59
+ case 'center':
60
+ left = 0;
61
+ right = 0;
62
+ break;
63
+ case 'right':
64
+ left = null;
65
+ right = offsetX;
66
+ break;
67
+ }
68
+
69
+ switch (positionY) {
70
+ case 'top':
71
+ case 'middle':
72
+ top = null;
73
+ bottom = props.height + offsetY;
74
+ break;
75
+ case 'bottom':
76
+ top = props.height + offsetY;
77
+ bottom = null;
78
+ break;
79
+ }
80
+
81
+ return {
82
+ left,
83
+ right,
84
+ top,
85
+ bottom,
86
+ };
87
+ }
@@ -1,9 +1,9 @@
1
- <script lang="ts">
2
- import type { ComponentSize } from '$lib/types.js';
1
+ <script lang="ts" module>
2
+ import type { ComponentSize } from '$lib/types/size.js';
3
3
  import type { Snippet } from 'svelte';
4
4
  import type { MouseEventHandler } from 'svelte/elements';
5
5
 
6
- interface UtilityButtonProps {
6
+ export interface UtilityButtonProps {
7
7
  /** Button contents goes here*/
8
8
  children?: Snippet;
9
9
  /** Button ref */
@@ -23,7 +23,9 @@
23
23
  /** The onclick event handler */
24
24
  onclick?: MouseEventHandler<HTMLButtonElement>;
25
25
  }
26
+ </script>
26
27
 
28
+ <script lang="ts">
27
29
  let {
28
30
  children,
29
31
  size = 'normal',
@@ -56,14 +58,14 @@
56
58
  --dodo-ui-UtilityButton-hover: var(--dodo-color-primary-600);
57
59
  --dodo-ui-UtilityButton-active: var(--dodo-color-primary-600);
58
60
 
59
- --dodo-ui-UtilityButton-disabled-color: var(--dodo-color-default-400);
61
+ --dodo-ui-UtilityButton-disabled-color: var(--dodo-color-neutral-400);
60
62
  }
61
63
 
62
64
  :global(.dodo-theme--dark) {
63
65
  --dodo-ui-UtilityButton-hover: var(--dodo-color-primary-600);
64
66
  --dodo-ui-UtilityButton-active: var(--dodo-color-primary-600);
65
67
 
66
- --dodo-ui-UtilityButton-disabled-color: var(--dodo-color-default-500);
68
+ --dodo-ui-UtilityButton-disabled-color: var(--dodo-color-neutral-500);
67
69
  }
68
70
 
69
71
  .dodo-ui-UtilityButton {
@@ -80,7 +82,7 @@
80
82
  border: 0;
81
83
  outline: 0;
82
84
  padding: 0;
83
- color: var(--dodo-color-default-700);
85
+ color: var(--dodo-color-neutral-700);
84
86
  border-radius: 50%;
85
87
  font-family: inherit;
86
88
 
@@ -0,0 +1,17 @@
1
+ export function clickOutside(node: Element, callback: () => void) {
2
+ const handleClick = (event: MouseEvent) => {
3
+ const target = event.target as Node;
4
+
5
+ if (node && !node.contains(target) && !event.defaultPrevented) {
6
+ callback();
7
+ }
8
+ };
9
+
10
+ document.addEventListener('click', handleClick, true);
11
+
12
+ return {
13
+ destroy() {
14
+ document.removeEventListener('click', handleClick, true);
15
+ },
16
+ };
17
+ }
@@ -25,7 +25,7 @@
25
25
  height: 60px;
26
26
  border-radius: 4px;
27
27
  border: 1px solid;
28
- border-color: color-mix(in oklab, var(--dodo-color-default-800) 20%, transparent);
28
+ border-color: color-mix(in oklab, var(--dodo-color-neutral-800) 20%, transparent);
29
29
  background: transparent;
30
30
  min-width: initial;
31
31
  margin: 0;
@@ -22,7 +22,7 @@
22
22
 
23
23
  <style lang="scss">
24
24
  .Swatch {
25
- color: var(--dodo-color-default-900);
25
+ color: var(--dodo-color-neutral-900);
26
26
  display: flex;
27
27
  align-items: center;
28
28
  flex-direction: column;
@@ -29,7 +29,7 @@
29
29
 
30
30
  <style lang="scss">
31
31
  .Swatches {
32
- color: var(--dodo-color-default-900);
32
+ color: var(--dodo-color-neutral-900);
33
33
  margin: 0;
34
34
  padding: 0;
35
35
  width: 150px;
@@ -24,7 +24,7 @@ export const colorPaletteBase = [
24
24
 
25
25
  export const colorPaletteNeutral = ['black', 'white'];
26
26
 
27
- export const colorPalette = ['default', 'primary', 'safe', 'warning', 'danger', 'secondary'];
27
+ export const colorPalette = ['primary', 'secondary', 'neutral', 'safe', 'warning', 'danger'];
28
28
 
29
29
  export const colorPaletteValues = [
30
30
  '50',