@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,21 +1,30 @@
1
1
  <script lang="ts" module>
2
- export type PaperRoundness = ComponentRoundness | false | ComponentRoundnessFull;
3
- export type PaperShadow = false | '1x' | '2x' | '3x' | '4x' | '5x' | '6x' | '7x';
4
- </script>
2
+ import type { ComponentRoundness } from '$lib/types/roundness.js';
3
+ import type { ComponentShadow } from '$lib/types/shadow.js';
4
+ import type { ComponentWeight } from '$lib/types/weight.js';
5
+ import {
6
+ componentColorPriorityArray,
7
+ componentColorSeverityArray,
8
+ type ComponentColor,
9
+ } from '$lib/types/colors.js';
5
10
 
6
- <script lang="ts">
7
- import type { ComponentRoundness, ComponentRoundnessFull } from '$lib/types.js';
8
- import type { Snippet } from 'svelte';
11
+ export type PaperColor = 'default' | ComponentColor;
12
+
13
+ export const paperColorArray: PaperColor[] = [
14
+ 'default',
15
+ ...componentColorPriorityArray,
16
+ ...componentColorSeverityArray,
17
+ ];
9
18
 
10
- interface PaperProps {
19
+ export interface PaperProps {
11
20
  /** Paper contents goes here */
12
21
  children?: Snippet;
13
22
  /** Paper ref */
14
23
  ref?: HTMLDivElement;
15
24
  /** How round should the border radius be? */
16
- roundness?: PaperRoundness;
25
+ roundness?: ComponentRoundness;
17
26
  /** Shadow elevation */
18
- shadow?: PaperShadow;
27
+ shadow?: ComponentShadow;
19
28
  /** Custom css class */
20
29
  class?: string;
21
30
  /** Paper Width */
@@ -24,48 +33,126 @@
24
33
  height?: string;
25
34
  /** Id */
26
35
  id?: string;
27
- /** Test: ⚠️ Unsafe Children String. Do Not use*/
28
- _unsafeChildrenStringForTesting?: string;
36
+ /** Add a border around paper */
37
+ outline?: boolean;
38
+ /** What color to use? */
39
+ color?: PaperColor;
40
+ /** How should paper appear? */
41
+ variant?: ComponentWeight;
42
+ /** Custom background color. Use CSS compatible value */
43
+ customBackgroundColor?: string;
44
+ /** Custom border color. Use CSS compatible value */
45
+ customBorderColor?: string;
29
46
  }
47
+ </script>
48
+
49
+ <script lang="ts">
50
+ import type { Snippet } from 'svelte';
30
51
 
31
52
  let {
32
53
  children,
33
- roundness = '1x',
34
- shadow = '1x',
54
+ roundness = 1,
55
+ shadow = 0,
35
56
  id,
36
57
  class: className = '',
37
- _unsafeChildrenStringForTesting,
38
58
  width,
39
59
  height,
40
60
  ref = $bindable<HTMLDivElement>(),
61
+ color = 'default',
62
+ variant = 'text',
63
+ customBackgroundColor,
64
+ customBorderColor,
65
+ outline = false,
41
66
  }: PaperProps = $props();
42
67
  </script>
43
68
 
44
69
  <div
70
+ class:outline
45
71
  class={[
46
72
  'dodo-ui-Paper',
47
73
  `roundness--${roundness}`,
74
+ `color--${color}`,
75
+ `variant--${variant}`,
76
+ `shadow--${shadow}`,
48
77
  `${shadow ? `shadow--${shadow} dodo-shadow-${shadow}` : `shadow--${shadow}`}`,
49
78
  className,
50
79
  ].join(' ')}
51
80
  {id}
52
81
  bind:this={ref}
53
- style={`${width ? `width:${width};` : ''}${height ? `height:${height};` : ''}`}
82
+ style={`${width ? `width:${width};` : ''}
83
+ ${height ? `height:${height};` : ''}
84
+ ${customBackgroundColor ? `background-color:${customBackgroundColor};` : ''}
85
+ ${customBorderColor ? `border-color:${customBorderColor};` : ''}
86
+ `}
54
87
  >
55
88
  {#if children}
56
89
  {@render children()}
57
- {:else if _unsafeChildrenStringForTesting}
58
- {_unsafeChildrenStringForTesting}
59
90
  {/if}
60
91
  </div>
61
92
 
62
93
  <style lang="scss">
94
+ @use 'utils/scss/mixins.scss' as *;
95
+
63
96
  :global(:root) {
64
- --dodo-ui-Paper-bg: var(--dodo-color-white);
97
+ --dodo-ui-Paper-default-bg: var(--dodo-color-white);
98
+ --dodo-ui-Paper-default-bg-shadow-1: var(--dodo-color-white);
99
+ --dodo-ui-Paper-default-bg-shadow-2: var(--dodo-color-white);
100
+ --dodo-ui-Paper-default-bg-shadow-3: var(--dodo-color-white);
101
+ --dodo-ui-Paper-default-bg-shadow-4: var(--dodo-color-white);
102
+ --dodo-ui-Paper-default-bg-shadow-5: var(--dodo-color-white);
103
+
104
+ --dodo-ui-Paper-outline-default: var(--dodo-color-neutral-300);
105
+
106
+ @include generate-dodo-ui-paper-colors(neutral);
107
+ @include generate-dodo-ui-paper-colors(primary);
108
+ @include generate-dodo-ui-paper-colors(secondary);
109
+ @include generate-dodo-ui-paper-colors(safe);
110
+ @include generate-dodo-ui-paper-colors(warning);
111
+ @include generate-dodo-ui-paper-colors(danger);
65
112
  }
66
113
 
67
114
  :global(.dodo-theme--dark) {
68
- --dodo-ui-Paper-bg: var(--dodo-color-default-100);
115
+ --dodo-ui-Paper-default-bg-mixer: #999999fd;
116
+
117
+ --dodo-ui-Paper-default-bg: color-mix(
118
+ in oklab,
119
+ var(--dodo-color-neutral-50) 98%,
120
+ var(--dodo-ui-Paper-default-bg-mixer)
121
+ );
122
+ --dodo-ui-Paper-default-bg-shadow-1: color-mix(
123
+ in oklab,
124
+ var(--dodo-color-neutral-50) 95%,
125
+ var(--dodo-ui-Paper-default-bg-mixer)
126
+ );
127
+ --dodo-ui-Paper-default-bg-shadow-2: color-mix(
128
+ in oklab,
129
+ var(--dodo-color-neutral-50) 90%,
130
+ var(--dodo-ui-Paper-default-bg-mixer)
131
+ );
132
+ --dodo-ui-Paper-default-bg-shadow-3: color-mix(
133
+ in oklab,
134
+ var(--dodo-color-neutral-50) 85%,
135
+ var(--dodo-ui-Paper-default-bg-mixer)
136
+ );
137
+ --dodo-ui-Paper-default-bg-shadow-4: color-mix(
138
+ in oklab,
139
+ var(--dodo-color-neutral-50) 80%,
140
+ var(--dodo-ui-Paper-default-bg-mixer)
141
+ );
142
+ --dodo-ui-Paper-default-bg-shadow-5: color-mix(
143
+ in oklab,
144
+ var(--dodo-color-neutral-50) 75%,
145
+ var(--dodo-ui-Paper-default-bg-mixer)
146
+ );
147
+
148
+ --dodo-ui-Paper-outline-default: var(--dodo-color-neutral-200);
149
+
150
+ @include generate-dodo-ui-paper-colors-dark(neutral);
151
+ @include generate-dodo-ui-paper-colors-dark(primary);
152
+ @include generate-dodo-ui-paper-colors-dark(secondary);
153
+ @include generate-dodo-ui-paper-colors-dark(safe);
154
+ @include generate-dodo-ui-paper-colors-dark(warning);
155
+ @include generate-dodo-ui-paper-colors-dark(danger);
69
156
  }
70
157
 
71
158
  .dodo-ui-Paper {
@@ -73,26 +160,66 @@
73
160
  transition: all 150ms;
74
161
  font-family: inherit;
75
162
  color: inherit;
76
-
77
- background-color: var(--dodo-ui-Paper-bg);
163
+ border-style: solid;
164
+ border-width: var(--dodo-ui-element-border-width);
165
+ border-color: transparent;
78
166
  overflow: hidden;
79
167
 
80
168
  &.roundness {
81
- &--1x {
82
- border-radius: var(--dodo-ui-element-roundness-1x);
169
+ &--1 {
170
+ border-radius: var(--dodo-ui-element-roundness-1);
83
171
  }
84
172
 
85
- &--2x {
86
- border-radius: var(--dodo-ui-element-roundness-2x);
173
+ &--2 {
174
+ border-radius: var(--dodo-ui-element-roundness-2);
87
175
  }
88
176
 
89
- &--3x {
90
- border-radius: var(--dodo-ui-element-roundness-3x);
177
+ &--3 {
178
+ border-radius: var(--dodo-ui-element-roundness-3);
91
179
  }
92
180
 
93
181
  &--full {
94
182
  border-radius: 50%;
95
183
  }
96
184
  }
185
+
186
+ &.color {
187
+ &--default {
188
+ background-color: var(--dodo-ui-Paper-default-bg);
189
+
190
+ &.outline {
191
+ border-color: var(--dodo-ui-Paper-outline-default);
192
+ }
193
+ }
194
+
195
+ @include generate-dodo-ui-paper-color(neutral);
196
+ @include generate-dodo-ui-paper-color(primary);
197
+ @include generate-dodo-ui-paper-color(secondary);
198
+ @include generate-dodo-ui-paper-color(safe);
199
+ @include generate-dodo-ui-paper-color(warning);
200
+ @include generate-dodo-ui-paper-color(danger);
201
+ }
202
+
203
+ &.color--default.shadow {
204
+ &--1 {
205
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-1);
206
+ }
207
+
208
+ &--2 {
209
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-2);
210
+ }
211
+
212
+ &--3 {
213
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-3);
214
+ }
215
+
216
+ &--4 {
217
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-4);
218
+ }
219
+
220
+ &--5 {
221
+ background-color: var(--dodo-ui-Paper-default-bg-shadow-5);
222
+ }
223
+ }
97
224
  }
98
225
  </style>
@@ -0,0 +1,46 @@
1
+ /// Mixin: generate-dodo-ui-paper-colors
2
+ /// Generates CSS custom properties for Dodo UI paper 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-paper-colors($color-name) {
6
+ --dodo-ui-Paper-outline-#{$color-name}: var(--dodo-color-#{$color-name}-400);
7
+ --dodo-ui-Paper-text-#{$color-name}-bg: var(--dodo-color-#{$color-name}-100);
8
+ --dodo-ui-Paper-solid-#{$color-name}-bg: var(--dodo-color-#{$color-name}-500);
9
+ }
10
+
11
+ /// Mixin: generate-dodo-ui-paper-colors
12
+ /// Generates CSS custom properties for Dodo UI paper styles (text & solid)
13
+ /// across different interaction states (default, hover, active).
14
+ /// @param {String} $color-name - The theme color name (e.g., "primary", "safe", etc.)
15
+ @mixin generate-dodo-ui-paper-colors-dark($color-name) {
16
+ --dodo-ui-Paper-outline-#{$color-name}: var(--dodo-color-#{$color-name}-300);
17
+ --dodo-ui-Paper-text-#{$color-name}-bg: color-mix(
18
+ in oklab,
19
+ var(--dodo-color-#{$color-name}-50) 80%,
20
+ #00000080
21
+ );
22
+ --dodo-ui-Paper-solid-#{$color-name}-bg: var(--dodo-color-#{$color-name}-300);
23
+ }
24
+
25
+ /// Mixin: generate-dodo-ui-paper-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-paper-color($theme) {
29
+ &--#{$theme} {
30
+ &.variant {
31
+ &--text {
32
+ color: var(--dodo-color-#{$theme}-800);
33
+ background-color: var(--dodo-ui-Paper-text-#{$theme}-bg);
34
+
35
+ &.outline {
36
+ border-color: var(--dodo-ui-Paper-outline-#{$theme});
37
+ }
38
+ }
39
+
40
+ &--solid {
41
+ color: var(--dodo-color-constant-white);
42
+ background-color: var(--dodo-ui-Paper-solid-#{$theme}-bg);
43
+ }
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,96 @@
1
+ <script lang="ts" module>
2
+ import type { ComponentColor } from '$lib/types/colors.js';
3
+
4
+ export type SeparatorOrientation = 'horizontal' | 'vertical';
5
+
6
+ export const separatorOrientationArray: SeparatorOrientation[] = ['horizontal', 'vertical'];
7
+
8
+ export interface SeparatorProps {
9
+ /** Separator ref */
10
+ ref?: HTMLDivElement;
11
+ /** Custom css class */
12
+ class?: string;
13
+ /** Id */
14
+ id?: string;
15
+ /** What color to use? */
16
+ color?: ComponentColor;
17
+ /** Separator Width */
18
+ width?: string;
19
+ /** Separator Height */
20
+ height?: string;
21
+ /** Separator orientation, 'horizontal', 'vertical'*/
22
+ orientation?: SeparatorOrientation;
23
+ }
24
+ </script>
25
+
26
+ <script lang="ts">
27
+ let {
28
+ id,
29
+ class: className = '',
30
+ orientation = 'horizontal',
31
+ color = 'neutral',
32
+ ref = $bindable<HTMLDivElement>(),
33
+ width,
34
+ height,
35
+ }: SeparatorProps = $props();
36
+ </script>
37
+
38
+ <div
39
+ class={['dodo-ui-Separator', `color--${color}`, `orientation--${orientation}`, className].join(
40
+ ' ',
41
+ )}
42
+ {id}
43
+ style={`${width ? `width:${width};` : ''}
44
+ ${height ? `height:${height};` : ''}
45
+ `}
46
+ bind:this={ref}
47
+ ></div>
48
+
49
+ <style lang="scss">
50
+ @use 'utils/scss/mixins.scss' as *;
51
+
52
+ :global(:root) {
53
+ @include generate-dodo-ui-separator-colors(neutral);
54
+ @include generate-dodo-ui-separator-colors(primary);
55
+ @include generate-dodo-ui-separator-colors(secondary);
56
+ @include generate-dodo-ui-separator-colors(safe);
57
+ @include generate-dodo-ui-separator-colors(warning);
58
+ @include generate-dodo-ui-separator-colors(danger);
59
+ }
60
+
61
+ :global(.dodo-theme--dark) {
62
+ @include generate-dodo-ui-separator-colors-dark(neutral);
63
+ @include generate-dodo-ui-separator-colors-dark(primary);
64
+ @include generate-dodo-ui-separator-colors-dark(secondary);
65
+ @include generate-dodo-ui-separator-colors-dark(safe);
66
+ @include generate-dodo-ui-separator-colors-dark(warning);
67
+ @include generate-dodo-ui-separator-colors-dark(danger);
68
+ }
69
+
70
+ .dodo-ui-Separator {
71
+ &.color {
72
+ @include generate-dodo-ui-separator-color(neutral);
73
+ @include generate-dodo-ui-separator-color(primary);
74
+ @include generate-dodo-ui-separator-color(secondary);
75
+ @include generate-dodo-ui-separator-color(safe);
76
+ @include generate-dodo-ui-separator-color(warning);
77
+ @include generate-dodo-ui-separator-color(danger);
78
+ }
79
+
80
+ &.orientation {
81
+ &--horizontal {
82
+ display: flex;
83
+ height: var(--dodo-ui-element-border-width);
84
+ width: 100%;
85
+ margin: calc(var(--dodo-ui-space) * 1) 0;
86
+ }
87
+
88
+ &--vertical {
89
+ display: inline-flex;
90
+ height: 100%;
91
+ width: var(--dodo-ui-element-border-width);
92
+ margin: 0 calc(var(--dodo-ui-space) * 1);
93
+ }
94
+ }
95
+ }
96
+ </style>
@@ -0,0 +1,24 @@
1
+ /// Mixin: generate-dodo-ui-button-colors
2
+ /// Generates CSS custom properties for Dodo UI button 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-separator-colors($color-name) {
6
+ --dodo-ui-Separator-color-#{$color-name}: var(--dodo-color-#{$color-name}-300);
7
+ }
8
+
9
+ /// Mixin: generate-dodo-ui-button-colors
10
+ /// Generates CSS custom properties for Dodo UI button styles (text & solid)
11
+ /// across different interaction states (default, hover, active).
12
+ /// @param {String} $color-name - The theme color name (e.g., "primary", "safe", etc.)
13
+ @mixin generate-dodo-ui-separator-colors-dark($color-name) {
14
+ --dodo-ui-Separator-color-#{$color-name}: var(--dodo-color-#{$color-name}-300);
15
+ }
16
+
17
+ /// Mixin: generate-dodo-ui-button-color
18
+ /// Auto-generates .color--[theme] > .variant--text & .variant--solid styles
19
+ /// @param {String} $theme - e.g., default, safe, danger, etc.
20
+ @mixin generate-dodo-ui-separator-color($theme) {
21
+ &--#{$theme} {
22
+ background-color: var(--dodo-ui-Separator-color-#{$theme});
23
+ }
24
+ }
@@ -0,0 +1,195 @@
1
+ <script lang="ts" module>
2
+ import { type ComponentSize, type TextInputType } from '$lib/index.js';
3
+ import type { Snippet } from 'svelte';
4
+ import type {
5
+ ChangeEventHandler,
6
+ ClipboardEventHandler,
7
+ FocusEventHandler,
8
+ FormEventHandler,
9
+ MouseEventHandler,
10
+ } from 'svelte/elements';
11
+
12
+ export type DynamicInputVariant = 'input' | 'button';
13
+
14
+ export const dynamicInputVariantArray: DynamicInputVariant[] = ['input', 'button'];
15
+
16
+ export type DynamicInputClickEvent = MouseEvent & {
17
+ currentTarget: EventTarget & HTMLButtonElement;
18
+ };
19
+
20
+ export type DynamicInputFocusEvent = FocusEvent & {
21
+ currentTarget: EventTarget & (HTMLInputElement | HTMLButtonElement);
22
+ };
23
+
24
+ export interface DynamicInputProps {
25
+ /** How large should the button be? */
26
+ size?: ComponentSize;
27
+ /** Input type? */
28
+ type?: TextInputType;
29
+ /** Input ref */
30
+ ref?: HTMLInputElement | HTMLButtonElement;
31
+ /** Input value */
32
+ value?: string | number;
33
+ /** variant */
34
+ variant?: DynamicInputVariant;
35
+ /** How round should the border radius be? */
36
+ placeholder?: string;
37
+ /** disabled state */
38
+ disabled?: boolean;
39
+ /** Read only ? */
40
+ readonly?: boolean;
41
+ /** Name */
42
+ name?: string;
43
+ /** Id */
44
+ id?: string;
45
+ /** Icon before button content */
46
+ before?: Snippet;
47
+ /** Icon after button content */
48
+ after?: Snippet;
49
+ /** Custom css class*/
50
+ class?: string;
51
+ /** The onclick event handler */
52
+ onclick?: MouseEventHandler<HTMLButtonElement>;
53
+ /** oninput event handler */
54
+ oninput?: FormEventHandler<HTMLInputElement>;
55
+ /** onchange event handler */
56
+ onchange?: ChangeEventHandler<HTMLInputElement>;
57
+ /** onblur event handler */
58
+ onblur?: FocusEventHandler<HTMLInputElement | HTMLButtonElement>;
59
+ /** onfocus event handler */
60
+ onfocus?: FocusEventHandler<HTMLInputElement | HTMLButtonElement>;
61
+ /** onpaste event handler */
62
+ onpaste?: ClipboardEventHandler<HTMLInputElement>;
63
+ /** oncopy event handler */
64
+ oncopy?: ClipboardEventHandler<HTMLInputElement>;
65
+ /** oncut event handler */
66
+ oncut?: ClipboardEventHandler<HTMLInputElement>;
67
+ /** custom Content Formatting for variant button */
68
+ customInputContent?: (value: string | number) => Snippet;
69
+ }
70
+ </script>
71
+
72
+ <script lang="ts">
73
+ let {
74
+ type = 'text',
75
+ name,
76
+ id,
77
+ class: className = '',
78
+ disabled = false,
79
+ onchange,
80
+ oninput,
81
+ onblur,
82
+ onfocus,
83
+ onpaste,
84
+ oncopy,
85
+ oncut,
86
+ value = $bindable<string | number>(),
87
+ placeholder,
88
+ ref = $bindable<HTMLInputElement | HTMLButtonElement>(),
89
+ readonly = false,
90
+ variant = 'input',
91
+ size = 'normal',
92
+ onclick,
93
+ customInputContent,
94
+ }: DynamicInputProps = $props();
95
+
96
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
97
+ let customInputContentTyped = customInputContent as any;
98
+
99
+ function onclickMod(e: DynamicInputClickEvent) {
100
+ if (onfocus) {
101
+ onfocus(e);
102
+ }
103
+
104
+ if (onclick) {
105
+ onclick(e);
106
+ }
107
+ }
108
+ </script>
109
+
110
+ {#if variant === 'button'}
111
+ <button
112
+ {id}
113
+ class={[
114
+ 'dodo-ui-DynamicInput',
115
+ `size--${size}`,
116
+ `variant--${variant}`,
117
+ `${!value ? 'placeholder' : ''}`,
118
+ className,
119
+ ].join(' ')}
120
+ bind:this={ref}
121
+ onclick={onclickMod}
122
+ {onblur}
123
+ {disabled}
124
+ >
125
+ {#if customInputContentTyped}
126
+ {@render customInputContentTyped(value)}
127
+ {:else}
128
+ {`${value}` || placeholder}
129
+ {/if}
130
+ </button>
131
+ {:else}
132
+ <input
133
+ class={['dodo-ui-DynamicInput', `size--${size}`, `variant--${variant}`, className].join(' ')}
134
+ {type}
135
+ {name}
136
+ {id}
137
+ {disabled}
138
+ {oninput}
139
+ {onchange}
140
+ {onfocus}
141
+ {onblur}
142
+ {onpaste}
143
+ {oncopy}
144
+ {oncut}
145
+ {placeholder}
146
+ bind:value
147
+ bind:this={ref}
148
+ {readonly}
149
+ />
150
+ {/if}
151
+
152
+ <style lang="scss">
153
+ .dodo-ui-DynamicInput {
154
+ flex: 1;
155
+ border: 0;
156
+ outline: 0;
157
+ height: 100%;
158
+ background-color: transparent;
159
+ font-family: inherit;
160
+ color: inherit;
161
+ letter-spacing: 0.3px;
162
+
163
+ margin: 0;
164
+
165
+ &.variant {
166
+ &--button {
167
+ display: flex;
168
+ align-items: center;
169
+ justify-content: flex-start;
170
+ cursor: pointer;
171
+
172
+ &.placeholder {
173
+ opacity: 0.6;
174
+ }
175
+ }
176
+ }
177
+
178
+ &.size {
179
+ &--normal {
180
+ font-size: 1rem;
181
+ padding: 0 calc(var(--dodo-ui-space-small) * 2);
182
+ }
183
+
184
+ &--small {
185
+ padding: 0 var(--dodo-ui-space);
186
+ font-size: 0.9rem;
187
+ }
188
+
189
+ &--large {
190
+ font-size: 1.1rem;
191
+ padding: 0 calc(var(--dodo-ui-space) * 2);
192
+ }
193
+ }
194
+ }
195
+ </style>